nbodykit 笔记

import numpy as np
from nbodykit.lab import ArrayCatalog
_cat  = ArrayCatalog({‘Position’: Position}) #Position是一个(nc**3,3)的的np数组
bs=1216
nc=Position.shape[0]**(1/3)
BoxSize=[bs, bs, bs]
Nmesh=[nc, nc, nc]
_mesh = _cat.to_mesh(BoxSize=BoxSize, Nmesh=Nmesh,
                         resampler=’cic’, position=’Position’)
#

_mesh.compute(mode=’real’).value等于

_mesh.preview(axes=[0,1,2])等于_mesh.preview(), 都是(nc,nc,nc)的np数组
#

_mesh.preview(axes=[0,1])[0,0]等于

sum(_mesh.preview(axes=[0,1,2])[0,0])
from matplotlib import pyplot as plt
plt.imshow(_mesh.preview(axes=[0,1]))
plt.colorbar()
Smilie Vote is loading.
✿ 阅读数:3,477  分类:文章

nbodykit 笔记”下有一个评论:

  1. gatget2 二进制文件读法:
    _dtype = np.dtype([
    (“block1”, np.int32), #0
    (“npart”, np.uint32, 6), #4
    (“mass”, np.float64, 6), #28
    (“time”, np.float64),#76
    (“redshift”, np.float64),#84
    (“flag_sfr”, np.int32),#92
    (“flag_feedback”, np.int32),#96
    (“npartTotal”, np.int32, (6,)),#100
    (“flag_cooling”, np.int32),#124
    (“num_files”, np.int32),#128
    (“BoxSize”, np.float64),#132
    (“Omega0”, np.float64),#140
    (“OmegaLambda”, np.float64),#148
    (“HubbleParam”, np.float64),#156
    (“fill”, np.int32, 24),#164
    (“block2”, np.int32),#260
    (“block_p1”, np.int32),#264
    (“Position”, np.float32, nc*3),#这里nc等于”npart”的总和#268
    (“block_p2”, np.int32),#268+nc*12
    (“block_v1”, np.int32),#272+nc*12
    (“Velocity”, np.float32, nc*3),#276+nc*12
    (“block_v2″, np.int32)#276+nc*24
    ])
    f = open(‘/home/xxx/snp00100.000.0’, mode=”rb”)
    #f.seek(0) #在第二次读取之前,使用f.seek(0)将文件的位置指针重置到文件的开头,这样我们才能从头开始读取数据

    block = np.fromfile(f, dtype=_dtype, count=1)
    print(block[“npart”])

发表评论

邮箱地址不会被公开。 必填项已用*标注

Captcha Code