Hi, helpful folks. Another issue I have been struggling with, which is similar to this thread http://lists.spacepope.org/pipermail/yt-users-spacepope.org/2013-May/003652.... I am working on some FLASH data with the current version of yt using MacOS 10.7.5. Using this exact same data set, I managed to create some nice phaseplots using spheres centered on the densest spot. However, I now want to make some plots for a much larger volume of scientific interest... Here is the code from yt.mods import * %matplotlib inline import matplotlib.pyplot as plt import numpy as np pf = load("Strat_Box_hdf5_plt_cnt_0064") pc = PlotCollection(pf, [0.5, 0.5, 0.5]) plane = pf.h.region([0.5,0.5,0.5],[0.0,0.0,0.4],[1.0,1.0,0.6]) pc.save("plane_cnt_0064") I then get the following error ValueError: Data has no positive values, and therefore can not be log-scaled Following the advice in the thread listed above, John Wise suggested "For your "empty" plot, do you have any gas with densities between 1e-26 and 1e-27 g/cm^3 in this sphere? If there's no gas in this range, then CellVolume will be zero and will give you that error message when it tries to take the log of CellVolume. If you want to manually inspect the CellVolume field, you can print out the following variable pc.plots[-1].data['CellVolume'] which will give you the CellVolume as a function of the x-variable for the last plot you have added to your PlotCollection." The writer did not respond in the next thread, so I'm not sure if this worked. But when I try it, I get the following: KeyError Traceback (most recent call last)<ipython-input-18-71f93f9e2cb6> in <module>()----> 1 pc.plots[-1].data["CellVolume"] /Users/kde/yt-x86_64/src/yt-hg/yt/data_objects/profiles.pyc in __getitem__(self, key) 160 # This raises a KeyError if it doesn't exist 161 # This is because we explicitly want to add all fields--> 162 return self.field_data[key] 163 164 def __setitem__(self, key, value): KeyError: 'CellVolume' Even though CellVolume is explicitly listed in my list of derived fields... Also, I did try the same command for Density rather than CellVolume, and the numbers were in the e-24 g cm-3 range...in fact, all the numbers were exactly the same. So I don't know if I've screwed up my data container somehow, or if the density values really are too low? any ideas? thanks SO much kathy -- Kathy DeGioia Eastwood, Ph.D. Professor of Physics and Astronomy Northern Arizona University Flagstaff, AZ 86011-6010 Ph: 928-523-7159 FX: 928-523-1371 Kathy.Eastwood@nau.edu deliveries: 602 S. Humphreys St., Bldg 19 Rm 209
Hi Kathy,
On Tue, Nov 26, 2013 at 2:41 PM, Kathy Eastwood
Hi, helpful folks. Another issue I have been struggling with, which is similar to this thread http://lists.spacepope.org/pipermail/yt-users-spacepope.org/2013-May/003652....
I am working on some FLASH data with the current version of yt using MacOS 10.7.5. Using this exact same data set, I managed to create some nice phaseplots using spheres centered on the densest spot. However, I now want to make some plots for a much larger volume of scientific interest... Here is the code
from yt.mods import * %matplotlib inline import matplotlib.pyplot as plt import numpy as np pf = load("Strat_Box_hdf5_plt_cnt_0064") pc = PlotCollection(pf, [0.5, 0.5, 0.5]) plane = pf.h.region([0.5,0.5,0.5],[0.0,0.0,0.4],[1.0,1.0,0.6]) pc.save("plane_cnt_0064")
Hmm, is there a line missing here, where you create a profile or phase object?
I then get the following error
ValueError: Data has no positive values, and therefore can not be log-scaled
Following the advice in the thread listed above, John Wise suggested "For your "empty" plot, do you have any gas with densities between 1e-26 and 1e-27 g/cm^3 in this sphere? If there's no gas in this
range, then CellVolume will be zero and will give you that error message when it tries to take the log of CellVolume. If you want to manually inspect the CellVolume field, you can print out the following variable pc.plots[-1].data['CellVolume'] which will give you the CellVolume as a function of the x-variable for the last plot you have added to your PlotCollection."
The writer did not respond in the next thread, so I'm not sure if
this worked. But when I try it, I get the following: KeyError Traceback (most recent call last) <ipython-input-18-71f93f9e2cb6> in <module>() ----> 1 pc.plots[-1].data["CellVolume"]
/Users/kde/yt-x86_64/src/yt-hg/yt/data_objects/profiles.pyc in __getitem__(self, key) 160 # This raises a KeyError if it doesn't exist 161 # This is because we explicitly want to add all fields --> 162 return self.field_data[key] 163 164 def __setitem__(self, key, value):
KeyError: 'CellVolume'
Even though CellVolume is explicitly listed in my list of derived fields...
Also, I did try the same command for Density rather than CellVolume,
and the numbers were in the e-24 g cm-3 range...in fact, all the numbers were exactly the same. So I don't know if I've screwed up my data container somehow, or if the density values really are too low?
Well, one thing that immediately comes to mind is that your region object looks smaller than what I'm used to in FLASH datasets, which are typically in cgs. If you want to take the relative units (relative to the box width) and scale them to be absolute in your domain, you could do this like so: C = np.array([0.5,0.5,0.5]) * pf.domain_width + pf.domain_left_edge LE = np.array([0.0,0.0,0.4]) * pf.domain_width + pf.domain_left_edge RE = np.array([1.0,1.0,0.6]) * pf.domain_width + pf.domain_left_edge You can try making a plane again with these C, LE, RE values, but you can also check the existing one by looking at plane["Ones"] and seeing how many values are returned there. Do you get anything back? Hope that helps, Matt
any ideas? thanks SO much kathy
-- Kathy DeGioia Eastwood, Ph.D. Professor of Physics and Astronomy Northern Arizona University Flagstaff, AZ 86011-6010 Ph: 928-523-7159 FX: 928-523-1371 Kathy.Eastwood@nau.edu deliveries: 602 S. Humphreys St., Bldg 19 Rm 209
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
Hi, Matt
Yes, changing the limits as you suggested, e.g.
C = np.array([0.5,0.5,0.5]) * pf.domain_width + pf.domain_left_edge
LE = np.array([0.0,0.0,0.4]) * pf.domain_width + pf.domain_left_edge
RE = np.array([1.0,1.0,0.6]) * pf.domain_width + pf.domain_left_edge
worked. Thanks!!
kathy
On Wed, Nov 27, 2013 at 7:11 AM, Matthew Turk
Hi Kathy,
On Tue, Nov 26, 2013 at 2:41 PM, Kathy Eastwood
wrote: Hi, helpful folks. Another issue I have been struggling with, which is similar to this thread
http://lists.spacepope.org/pipermail/yt-users-spacepope.org/2013-May/003652....
I am working on some FLASH data with the current version of yt using
MacOS
10.7.5. Using this exact same data set, I managed to create some nice phaseplots using spheres centered on the densest spot. However, I now want to make some plots for a much larger volume of scientific interest... Here is the code
from yt.mods import * %matplotlib inline import matplotlib.pyplot as plt import numpy as np pf = load("Strat_Box_hdf5_plt_cnt_0064") pc = PlotCollection(pf, [0.5, 0.5, 0.5]) plane = pf.h.region([0.5,0.5,0.5],[0.0,0.0,0.4],[1.0,1.0,0.6]) pc.save("plane_cnt_0064")
Hmm, is there a line missing here, where you create a profile or phase object?
I then get the following error
ValueError: Data has no positive values, and therefore can not be
log-scaled
Following the advice in the thread listed above, John Wise suggested "For your "empty" plot, do you have any gas with densities between 1e-26 and 1e-27 g/cm^3 in this sphere? If there's no gas in this
range, then CellVolume will be zero and will give you that error message when it tries to take the log of CellVolume. If you want to manually inspect the CellVolume field, you can print out the following variable pc.plots[-1].data['CellVolume'] which will give you the CellVolume as a function of the x-variable for the last plot you have added to your PlotCollection."
The writer did not respond in the next thread, so I'm not sure if
this worked. But when I try it, I get the following: KeyError Traceback (most recent call
last)
<ipython-input-18-71f93f9e2cb6> in <module>() ----> 1 pc.plots[-1].data["CellVolume"]
/Users/kde/yt-x86_64/src/yt-hg/yt/data_objects/profiles.pyc in __getitem__(self, key) 160 # This raises a KeyError if it doesn't exist 161 # This is because we explicitly want to add all fields --> 162 return self.field_data[key] 163 164 def __setitem__(self, key, value):
KeyError: 'CellVolume'
Even though CellVolume is explicitly listed in my list of derived fields...
Also, I did try the same command for Density rather than CellVolume,
and the numbers were in the e-24 g cm-3 range...in fact, all the numbers were exactly the same. So I don't know if I've screwed up my data container somehow, or if the density values really are too low?
Well, one thing that immediately comes to mind is that your region object looks smaller than what I'm used to in FLASH datasets, which are typically in cgs. If you want to take the relative units (relative to the box width) and scale them to be absolute in your domain, you could do this like so:
C = np.array([0.5,0.5,0.5]) * pf.domain_width + pf.domain_left_edge LE = np.array([0.0,0.0,0.4]) * pf.domain_width + pf.domain_left_edge RE = np.array([1.0,1.0,0.6]) * pf.domain_width + pf.domain_left_edge
You can try making a plane again with these C, LE, RE values, but you can also check the existing one by looking at
plane["Ones"]
and seeing how many values are returned there. Do you get anything back?
Hope that helps,
Matt
any ideas? thanks SO much kathy
-- Kathy DeGioia Eastwood, Ph.D. Professor of Physics and Astronomy Northern Arizona University Flagstaff, AZ 86011-6010 Ph: 928-523-7159 FX: 928-523-1371 Kathy.Eastwood@nau.edu deliveries: 602 S. Humphreys St., Bldg 19 Rm 209
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
-- Kathy DeGioia Eastwood, Ph.D. Professor of Physics and Astronomy Northern Arizona University Flagstaff, AZ 86011-6010 Ph: 928-523-7159 FX: 928-523-1371 Kathy.Eastwood@nau.edu deliveries: 602 S. Humphreys St., Bldg 19 Rm 209
participants (2)
-
Kathy Eastwood
-
Matthew Turk