[yt-dev] Issue #1267: Profile datasets don't save profile.field_info dict data (yt_analysis/yt)
Nathan Goldbaum
issues-reply at bitbucket.org
Mon Aug 29 11:34:11 PDT 2016
New issue 1267: Profile datasets don't save profile.field_info dict data
https://bitbucket.org/yt_analysis/yt/issues/1267/profile-datasets-dont-save
Nathan Goldbaum:
This is illustrated by the following script:
```
import yt
ds = yt.load('IsolatedGalaxy/galaxy0030/galaxy0030')
ad = ds.all_data()
prof = yt.create_profile(ad, [('gas', 'H_number_density'), ('gas', 'temperature')\
], fields='cell_mass')
print (prof.field_info)
prof.save_as_dataset()
prof_ds = yt.load('galaxy0030_Profile2D.h5')
print (prof_ds.profile.field_info)
plot = yt.PhasePlot(prof_ds.data, "H_number_density", "temperature", "cell_mass",\
weight_field=None)
```
On my machine this prints:
```
{('gas', 'temperature'): Alias Field for "('enzo', 'Temperature')" (gas, temperature): (units: K), ('gas', 'H_number_density'): Derived Field (gas, H_number_density): (units: cm**(-3)), ('gas', 'cell_mass'): Derived Field (gas, cell_mass): (units: g)}
{}
```
And then crashes with the following traceback:
```
Traceback (most recent call last):
File "test.py", line 11, in <module>
weight_field=None)
File "/Users/goldbaum/Documents/yt-hg/yt/visualization/profile_plotter.py", line 745, in __init__
if isinstance(data_source.ds, YTProfileDataset):
File "/Users/goldbaum/Documents/yt-hg/yt/visualization/profile_plotter.py", line 775, in _initialize_instance
obj._setup_plots()
File "/Users/goldbaum/Documents/yt-hg/yt/visualization/profile_plotter.py", line 856, in _setup_plots
x_scale, y_scale, z_scale = self._get_field_log(f, self.profile)
File "/Users/goldbaum/Documents/yt-hg/yt/visualization/profile_plotter.py", line 815, in _get_field_log
zfi = profile.field_info[field_z]
KeyError: ('data', 'cell_mass')
```
@brittonsmith any chance you can take a look at this?
More information about the yt-dev
mailing list