[yt-users] Generic UniGrid Data
Junhwan Choi (최준환)
choi.junhwan at gmail.com
Thu May 15 21:25:20 PDT 2014
Dear yt user,
I try to use Generic UnicGrid Data (256^3 gas density cube + position
of particle that is subset of a huge simulation).
It is preliminary work, but I still have some questions.
1. In order to set density unit as cgs, I made following script:
......
data = dict(density = (map, "g/cm**3")) #map is 256^3 density data array
bbox = np.array([[0., boxsize], [0., boxsize], [0.,boxsize]])
ds = load_uniform_grid(data, data['density'][0].shape, 3.086e24,
bbox=bbox, nprocs=4)
.....
Then, I got the following error message:
Traceback (most recent call last):
File "cutout2.py", line 62, in <module>
ds = load_uniform_grid(data, data['density'][0].shape, 3.086e24,
bbox=bbox, nprocs=4)
File "/Users/jhchoi/common/lib/python2.7/site-packages/yt-3.0dev-py2.7-macosx-10.4-x86_64.egg/yt/frontends/stream/data_structures.py",
line 461, in load_uniform_grid
psize = get_psize(np.array(data[key].shape), nprocs)
AttributeError: 'tuple' object has no attribute 'shape'
Hence, I modify "data = dict(density = (map, "g/cm**3"))" --> "data =
dict(density = map)" and it work.
If this is the case, how can I define the density unit and show it
when I make Slice/Projection?
In addition, I would like to know how I can set the unit in Generic
UnicGrid Data in general?
The length unit can be provide to script in load_uniform_grid(...
3.086e24 ....) but I do not know how to set other units.
2. When I add particle information as follow:
.....
npart = 100000 # number of particles
data = dict(density = map,
number_of_particles = npart,
particle_position_x = posx,
particle_position_y = posy,
particle_position_z = posz)
bbox = np.array([[0., boxsize], [0., boxsize], [0.,boxsize]])
ds = load_uniform_grid(data, data['density'][0].shape, 3.086e24,
bbox=bbox, nprocs=4)
...
I got the following error message:
Traceback (most recent call last):
File "cutout.py", line 107, in <module>
ds = load_uniform_grid(data, data['density'][0].shape, 3.086e24,
bbox=bbox, nprocs=4)
File "/Users/jhchoi/common/lib/python2.7/site-packages/yt-3.0dev-py2.7-macosx-10.4-x86_64.egg/yt/frontends/stream/data_structures.py",
line 519, in load_uniform_grid
assign_particle_data(spf, pdata)
File "/Users/jhchoi/common/lib/python2.7/site-packages/yt-3.0dev-py2.7-macosx-10.4-x86_64.egg/yt/frontends/stream/data_structures.py",
line 371, in assign_particle_data
pdata.pop("number_of_particles")
KeyError: 'number_of_particles'
So, I change "number_of_particles = npart," --> "number_of_particles =
100000," and it works.
How could it happen?
3. Can I do halo finder (hop/fof) using the above particle data?
Or, what information do I need to provide to do grouping?
In this case, how can I set the units and linking length?
4. Can I make particle distribution to particle data like
data['Dark_Matter_position_x']?
This process will allow me additional analysis such as profile and
obtaining total value.
I may ask too many for new tool, but it will help a lot to use yt for
general data set.
Thank you,
Junhwan
More information about the yt-users
mailing list