Hello!
I've recently discovered yt, and I found the rendering examples really
encouraging. I'm now trying to visualize a large 3D dataset via volume
rendering technique. I have come up with the following script that is
intended to plot a part of the dataset:
---
import yt
from yt.config import ytcfg
import h5py
f = h5py.File('ims-p.hdf5')
intens = f['intensity'][:256,:256,:256]
print(intens.shape)
ds = yt.load_uniform_grid({'Intensity': intens}, intens.shape)
print(ds)
sc = yt.create_scene(ds, ('Intensity'), lens_type = 'perspective')
sc[0].set_log(True)
sc[0].tfh.plot('transfer_function.png', profile_field = 'Intensity')
sc.camera.resolution = 1024
sc.annotate_axes(alpha = 0.1)
sc.annotate_domain(ds, color = [1, 1, 1, 0.1])
sc.save_annotated('vr_grids.png', sigma_clip = 4)
---
I get some really fascinating rendering (attached), and now I want to
tweak it. I would be really happy if you could help me with the
following questions:
1) What is the best way to configure the camera viewpoint so the
complete data cube fits into the view? How to quickly render the domain
axes without performing the costly volume rendering (to find the
"optimal" viewpoint experimentally)?
2) What is the best way to specify axes scales, so that rendered volume
appears as cuboid, not cube? I want the resulting cuboid to be scaled as
3:2:2. How to specify resulting image size, e.g. how to get image of
1600x1200 pixels?
3) In my dataset, the grid is not in fact uniform, but rather X
coordinates are specified by (non-decreasing) array rettime, Y
coordinates are specified by (non-decreasing) array mz. What is the best
way to pass this information (to load_uniform_grid)?
4) Is it possible to use inverse transfer function model, i.e. white
background?
5) My complete dataset is rather large and doesn't readily fit into RAM.
However it seems that for ray-tracing algorithm, it shouldn't be
required that all data is available simultaneously. Is it possible to
feed dataset by chunks?
Your help is greatly appreciated!
Best wishes,
Andrey Paramonov
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.