[yt-svn] commit/yt: 7 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Mon Mar 24 10:45:01 PDT 2014
7 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/b459c3cff9d9/
Changeset: b459c3cff9d9
Branch: yt-3.0
User: ngoldbaum
Date: 2014-03-24 08:16:55
Summary: Fixing issues with field detection that were breaking the tests.
Affected #: 2 files
diff -r d25600daca2f3d21df48c4b97abdb782eb673169 -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 yt/analysis_modules/sunyaev_zeldovich/projection.py
--- a/yt/analysis_modules/sunyaev_zeldovich/projection.py
+++ b/yt/analysis_modules/sunyaev_zeldovich/projection.py
@@ -60,13 +60,13 @@
def _t_sz(field, data):
return data["gas","density"]*data["gas","kT"]
-def generate_beta_par(L):
- def _beta_par(field, data):
- vpar = data["density"]*(data["velocity_x"]*L[0]+
+ at derived_field(name=("gas", "beta_par"), units="g/cm**3")
+def _beta_par(field, data):
+ L = data.get_field_parameter('normal')
+ vpar = data["density"]*(data["velocity_x"]*L[0]+
data["velocity_y"]*L[1]+
data["velocity_z"]*L[2])
- return vpar/clight
- return _beta_par
+ return vpar/clight
class SZProjection(object):
r""" Initialize a SZProjection object.
@@ -136,9 +136,8 @@
L = np.zeros((3))
L[axis] = 1.0
+ source.set_field_parameter('normal', L)
- beta_par = generate_beta_par(L)
- self.pf.field_info.add_field(name=("gas","beta_par"), function=beta_par, units="g/cm**3")
proj = self.pf.proj("density", axis, center=ctr, data_source=source)
frb = proj.to_frb(width, nx)
dens = frb["density"]
diff -r d25600daca2f3d21df48c4b97abdb782eb673169 -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 yt/testing.py
--- a/yt/testing.py
+++ b/yt/testing.py
@@ -143,8 +143,8 @@
def fake_random_pf(
ndims, peak_value = 1.0,
- fields = ("density", "velocity_x", "velocity_y", "velocity_z"),
- units = ('g/cm**3', 'cm/s', 'cm/s', 'cm/s'),
+ fields = ("density", "temperature", "velocity_x", "velocity_y", "velocity_z"),
+ units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s'),
negative = False, nprocs = 1, particles = 0, length_unit=1.0):
from yt.data_objects.api import data_object_registry
from yt.frontends.stream.api import load_uniform_grid
https://bitbucket.org/yt_analysis/yt/commits/0d86a3b59168/
Changeset: 0d86a3b59168
Branch: yt-3.0
User: ngoldbaum
Date: 2014-03-24 09:23:40
Summary: Removing the last vestiges of projection_conversion.
Affected #: 6 files
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df doc/source/analyzing/creating_derived_fields.rst
--- a/doc/source/analyzing/creating_derived_fields.rst
+++ b/doc/source/analyzing/creating_derived_fields.rst
@@ -295,8 +295,6 @@
(*Advanced*) Should this field appear in the dropdown box in Reason?
``not_in_all``
(*Advanced*) If this is *True*, the field may not be in all the grids.
- ``projection_conversion``
- (*Advanced*) Which unit should we multiply by in a projection?
How Do Units Work?
------------------
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df doc/source/analyzing/objects.rst
--- a/doc/source/analyzing/objects.rst
+++ b/doc/source/analyzing/objects.rst
@@ -40,8 +40,7 @@
add_enzo_field("Cooling_Time", units=r"\rm{s}",
function=NullFunc,
- validators=ValidateDataField("Cooling_Time"),
- projection_conversion="1")
+ validators=ValidateDataField("Cooling_Time"))
Note that we used the ``NullFunc`` function here. To add a derived field,
which is not expected to necessarily exist on disk, use the standard
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -517,7 +517,7 @@
# Now all the object related stuff
def all_data(self, find_max=False):
- if find_max: c = self.find_max("Density")[1]
+ if find_max: c = self.find_max("density")[1]
else: c = (self.domain_right_edge + self.domain_left_edge)/2.0
return self.region(c,
self.domain_left_edge, self.domain_right_edge)
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df yt/fields/derived_field.py
--- a/yt/fields/derived_field.py
+++ b/yt/fields/derived_field.py
@@ -78,14 +78,14 @@
Used for baryon fields from the data that are not in all the grids
display_name : str
A name used in the plots
- projection_conversion : unit
- which unit should we multiply by in a projection?
+ user_field : boolean
+ This can be set to avoid triggering field detection. This is mostly
+ useful for fields that are part of yt rather than in user scripts.
"""
def __init__(self, name, function, units=None,
take_log=True, validators=None,
particle_type=False, vector_field=False, display_field=True,
- not_in_all=False, display_name=None,
- projection_conversion="cm"):
+ not_in_all=False, display_name=None, user_field=False):
self.name = name
self.take_log = take_log
self.display_name = display_name
@@ -93,6 +93,7 @@
self.display_field = display_field
self.particle_type = particle_type
self.vector_field = vector_field
+ self.user_field = user_field
self._function = function
@@ -124,7 +125,6 @@
dd['display_field'] = True
dd['not_in_all'] = self.not_in_all
dd['display_name'] = self.display_name
- dd['projection_conversion'] = self.projection_conversion
return dd
def get_units(self):
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df yt/fields/geometric_fields.py
--- a/yt/fields/geometric_fields.py
+++ b/yt/fields/geometric_fields.py
@@ -78,7 +78,6 @@
registry.add_field(("index", "zeros"), function=_zeros,
units = "",
- projection_conversion="unitary",
display_field=False)
def _ones(field, data):
@@ -88,7 +87,6 @@
return data.apply_units(arr, field.units)
registry.add_field(("index", "ones"), function=_ones,
- projection_conversion="unitary",
units = "",
display_field=False)
diff -r b459c3cff9d924aad0a7fb3841e0f10f05d0dc12 -r 0d86a3b59168f02578307eb62f7aa39b3e4807df yt/fields/particle_fields.py
--- a/yt/fields/particle_fields.py
+++ b/yt/fields/particle_fields.py
@@ -80,8 +80,7 @@
registry.add_field(("deposit", "%s_count" % ptype),
function = particle_count,
validators = [ValidateSpatial()],
- display_name = "\\mathrm{%s Count}" % ptype,
- projection_conversion = '1')
+ display_name = "\\mathrm{%s Count}" % ptype)
def particle_mass(field, data):
pos = data[ptype, coord_name]
https://bitbucket.org/yt_analysis/yt/commits/d818c22cdbe3/
Changeset: d818c22cdbe3
Branch: yt-3.0
User: ngoldbaum
Date: 2014-03-24 09:23:59
Summary: Reverting an unneded change to fake_random_pf
Affected #: 1 file
diff -r 0d86a3b59168f02578307eb62f7aa39b3e4807df -r d818c22cdbe3ca7328fe5ddaa4905ecc3a50a40a yt/testing.py
--- a/yt/testing.py
+++ b/yt/testing.py
@@ -143,8 +143,8 @@
def fake_random_pf(
ndims, peak_value = 1.0,
- fields = ("density", "temperature", "velocity_x", "velocity_y", "velocity_z"),
- units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s'),
+ fields = ("density", "velocity_x", "velocity_y", "velocity_z"),
+ units = ('g/cm**3', 'cm/s', 'cm/s', 'cm/s'),
negative = False, nprocs = 1, particles = 0, length_unit=1.0):
from yt.data_objects.api import data_object_registry
from yt.frontends.stream.api import load_uniform_grid
https://bitbucket.org/yt_analysis/yt/commits/ad33982ec561/
Changeset: ad33982ec561
Branch: yt-3.0
User: ngoldbaum
Date: 2014-03-24 09:24:31
Summary: Making it possible to avoid field detection errors for yt-defined derived_fields
Affected #: 2 files
diff -r d818c22cdbe3ca7328fe5ddaa4905ecc3a50a40a -r ad33982ec561d498da091fb36a9b8dfc9df0f41c yt/analysis_modules/sunyaev_zeldovich/projection.py
--- a/yt/analysis_modules/sunyaev_zeldovich/projection.py
+++ b/yt/analysis_modules/sunyaev_zeldovich/projection.py
@@ -40,27 +40,27 @@
vlist = "xyz"
- at derived_field(name=("gas","t_squared"), units="g*keV**2/cm**3")
+ at derived_field(name=("gas","t_squared"), units="g*keV**2/cm**3", user_field=False)
def _t_squared(field, data):
return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
- at derived_field(name=("gas","beta_perp_squared"), units="g/cm**3")
+ at derived_field(name=("gas","beta_perp_squared"), units="g/cm**3", user_field=False)
def _beta_perp_squared(field, data):
return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
- at derived_field(name=("gas","beta_par_squared"), units="g/cm**3")
+ at derived_field(name=("gas","beta_par_squared"), units="g/cm**3", user_field=False)
def _beta_par_squared(field, data):
return data["gas","beta_par"]**2/data["gas","density"]
- at derived_field(name=("gas","t_beta_par"), units="keV*g/cm**3")
+ at derived_field(name=("gas","t_beta_par"), units="keV*g/cm**3", user_field=False)
def _t_beta_par(field, data):
return data["gas","kT"]*data["gas","beta_par"]
- at derived_field(name=("gas","t_sz"), units="keV*g/cm**3")
+ at derived_field(name=("gas","t_sz"), units="keV*g/cm**3", user_field=False)
def _t_sz(field, data):
return data["gas","density"]*data["gas","kT"]
- at derived_field(name=("gas", "beta_par"), units="g/cm**3")
+ at derived_field(name=("gas", "beta_par"), units="g/cm**3", user_field=False)
def _beta_par(field, data):
L = data.get_field_parameter('normal')
vpar = data["density"]*(data["velocity_x"]*L[0]+
diff -r d818c22cdbe3ca7328fe5ddaa4905ecc3a50a40a -r ad33982ec561d498da091fb36a9b8dfc9df0f41c yt/fields/local_fields.py
--- a/yt/fields/local_fields.py
+++ b/yt/fields/local_fields.py
@@ -21,10 +21,18 @@
from .field_info_container import \
FieldInfoContainer
+def ensure_user_field(func):
+ def check_and_call(*args, **kwargs):
+ if 'user_field' not in kwargs:
+ kwargs['user_field'] = True
+ ret = func(*args, **kwargs)
+ return ret
+ return check_and_call
+
# Empty FieldInfoContainer
local_fields = FieldInfoContainer(None, [], None)
-add_field = derived_field = local_fields.add_field
+add_field = derived_field = ensure_user_field(local_fields.add_field)
@register_field_plugin
def setup_local_fields(registry, ftype = "gas", slice_info = None):
@@ -33,5 +41,6 @@
# fine.
# Note that we actually don't care about the ftype here.
for f in local_fields:
- registry._show_field_errors.append(f)
+ if local_fields[f].user_field:
+ registry._show_field_errors.append(f)
registry.update(local_fields)
https://bitbucket.org/yt_analysis/yt/commits/7ae814353016/
Changeset: 7ae814353016
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-24 17:57:02
Summary: Alternate method of loading a field plugin for SZ fields.
Affected #: 2 files
diff -r d25600daca2f3d21df48c4b97abdb782eb673169 -r 7ae8143530161553525dfa99673cb3a31ce0366c yt/analysis_modules/sunyaev_zeldovich/projection.py
--- a/yt/analysis_modules/sunyaev_zeldovich/projection.py
+++ b/yt/analysis_modules/sunyaev_zeldovich/projection.py
@@ -40,25 +40,37 @@
vlist = "xyz"
- at derived_field(name=("gas","t_squared"), units="g*keV**2/cm**3")
-def _t_squared(field, data):
- return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
- at derived_field(name=("gas","beta_perp_squared"), units="g/cm**3")
-def _beta_perp_squared(field, data):
- return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+def setup_sunyaev_zeldovich_fields(registry, ftype, sl_info):
+ def _t_squared(field, data):
+ return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
+ registry.add_field(("gas", "t_squared"),
+ function = _t_squared,
+ units="g*keV**2/cm**3")
- at derived_field(name=("gas","beta_par_squared"), units="g/cm**3")
-def _beta_par_squared(field, data):
- return data["gas","beta_par"]**2/data["gas","density"]
+ def _beta_perp_squared(field, data):
+ return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+ registry.add_field(("gas","beta_perp_squared"),
+ function = _beta_perp_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","t_beta_par"), units="keV*g/cm**3")
-def _t_beta_par(field, data):
- return data["gas","kT"]*data["gas","beta_par"]
+ def _beta_par_squared(field, data):
+ return data["gas","beta_par"]**2/data["gas","density"]
+ registry.add_field("gas","beta_par_squared",
+ function = _beta_par_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","t_sz"), units="keV*g/cm**3")
-def _t_sz(field, data):
- return data["gas","density"]*data["gas","kT"]
+ def _t_beta_par(field, data):
+ return data["gas","kT"]*data["gas","beta_par"]
+ registry.add_field(("gas","t_beta_par"),
+ function = _t_beta_par,
+ units="keV*g/cm**3")
+
+ def _t_sz(field, data):
+ return data["gas","density"]*data["gas","kT"]
+ registry.add_field(("gas","t_sz"),
+ function = _t_sz,
+ units="keV*g/cm**3")
def generate_beta_par(L):
def _beta_par(field, data):
@@ -90,6 +102,7 @@
def __init__(self, pf, freqs, mue=1.143, high_order=False):
self.pf = pf
+ pf.field_info.load_plugin(setup_sunyaev_zeldovich_fields)
self.num_freqs = len(freqs)
self.high_order = high_order
self.freqs = pf.arr(freqs, "GHz")
diff -r d25600daca2f3d21df48c4b97abdb782eb673169 -r 7ae8143530161553525dfa99673cb3a31ce0366c yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -172,8 +172,11 @@
self.find_dependencies(loaded)
def load_plugin(self, plugin_name, ftype = "gas", skip_check = False):
+ if callable(plugin_name):
+ f = plugin_name
+ else:
+ f = field_plugins[plugin_name]
orig = set(self.items())
- f = field_plugins[plugin_name]
f(self, ftype, slice_info = self.slice_info)
loaded = [n for n, v in set(self.items()).difference(orig)]
return loaded
https://bitbucket.org/yt_analysis/yt/commits/df732d55dba6/
Changeset: df732d55dba6
Branch: yt-3.0
User: ngoldbaum
Date: 2014-03-24 18:29:17
Summary: Merging with a better solution from Matt.
Affected #: 4 files
diff -r ad33982ec561d498da091fb36a9b8dfc9df0f41c -r df732d55dba6d300deabce5a1e48906d8658e41a yt/analysis_modules/sunyaev_zeldovich/projection.py
--- a/yt/analysis_modules/sunyaev_zeldovich/projection.py
+++ b/yt/analysis_modules/sunyaev_zeldovich/projection.py
@@ -39,34 +39,43 @@
pass
vlist = "xyz"
+def setup_sunyaev_zeldovich_fields(registry, ftype, sl_info):
+ def _t_squared(field, data):
+ return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
+ registry.add_field(("gas", "t_squared"),
+ function = _t_squared,
+ units="g*keV**2/cm**3")
+ def _beta_perp_squared(field, data):
+ return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+ registry.add_field(("gas","beta_perp_squared"),
+ function = _beta_perp_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","t_squared"), units="g*keV**2/cm**3", user_field=False)
-def _t_squared(field, data):
- return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
+ def _beta_par_squared(field, data):
+ return data["gas","beta_par"]**2/data["gas","density"]
+ registry.add_field("gas","beta_par_squared",
+ function = _beta_par_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","beta_perp_squared"), units="g/cm**3", user_field=False)
-def _beta_perp_squared(field, data):
- return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+ def _t_beta_par(field, data):
+ return data["gas","kT"]*data["gas","beta_par"]
+ registry.add_field(("gas","t_beta_par"),
+ function = _t_beta_par,
+ units="keV*g/cm**3")
- at derived_field(name=("gas","beta_par_squared"), units="g/cm**3", user_field=False)
-def _beta_par_squared(field, data):
- return data["gas","beta_par"]**2/data["gas","density"]
+ def _t_sz(field, data):
+ return data["gas","density"]*data["gas","kT"]
+ registry.add_field(("gas","t_sz"),
+ function = _t_sz,
+ units="keV*g/cm**3")
- at derived_field(name=("gas","t_beta_par"), units="keV*g/cm**3", user_field=False)
-def _t_beta_par(field, data):
- return data["gas","kT"]*data["gas","beta_par"]
-
- at derived_field(name=("gas","t_sz"), units="keV*g/cm**3", user_field=False)
-def _t_sz(field, data):
- return data["gas","density"]*data["gas","kT"]
-
- at derived_field(name=("gas", "beta_par"), units="g/cm**3", user_field=False)
-def _beta_par(field, data):
- L = data.get_field_parameter('normal')
- vpar = data["density"]*(data["velocity_x"]*L[0]+
+def generate_beta_par(L):
+ def _beta_par(field, data):
+ vpar = data["density"]*(data["velocity_x"]*L[0]+
data["velocity_y"]*L[1]+
data["velocity_z"]*L[2])
- return vpar/clight
+ return vpar/clight
+ return _beta_par
class SZProjection(object):
r""" Initialize a SZProjection object.
@@ -90,6 +99,7 @@
def __init__(self, pf, freqs, mue=1.143, high_order=False):
self.pf = pf
+ pf.field_info.load_plugin(setup_sunyaev_zeldovich_fields)
self.num_freqs = len(freqs)
self.high_order = high_order
self.freqs = pf.arr(freqs, "GHz")
@@ -136,9 +146,9 @@
L = np.zeros((3))
L[axis] = 1.0
- source.set_field_parameter('normal', L)
- proj = self.pf.proj("density", axis, center=ctr, data_source=source)
+ beta_par = generate_beta_par(L)
+ self.pf.field_info.add_field(name=("gas","beta_par"), function=beta_par, units="g/cm**3")
frb = proj.to_frb(width, nx)
dens = frb["density"]
Te = frb["t_sz"]/dens
diff -r ad33982ec561d498da091fb36a9b8dfc9df0f41c -r df732d55dba6d300deabce5a1e48906d8658e41a yt/fields/derived_field.py
--- a/yt/fields/derived_field.py
+++ b/yt/fields/derived_field.py
@@ -78,14 +78,11 @@
Used for baryon fields from the data that are not in all the grids
display_name : str
A name used in the plots
- user_field : boolean
- This can be set to avoid triggering field detection. This is mostly
- useful for fields that are part of yt rather than in user scripts.
"""
def __init__(self, name, function, units=None,
take_log=True, validators=None,
particle_type=False, vector_field=False, display_field=True,
- not_in_all=False, display_name=None, user_field=False):
+ not_in_all=False, display_name=None):
self.name = name
self.take_log = take_log
self.display_name = display_name
@@ -93,7 +90,6 @@
self.display_field = display_field
self.particle_type = particle_type
self.vector_field = vector_field
- self.user_field = user_field
self._function = function
diff -r ad33982ec561d498da091fb36a9b8dfc9df0f41c -r df732d55dba6d300deabce5a1e48906d8658e41a yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -172,8 +172,11 @@
self.find_dependencies(loaded)
def load_plugin(self, plugin_name, ftype = "gas", skip_check = False):
+ if callable(plugin_name):
+ f = plugin_name
+ else:
+ f = field_plugins[plugin_name]
orig = set(self.items())
- f = field_plugins[plugin_name]
f(self, ftype, slice_info = self.slice_info)
loaded = [n for n, v in set(self.items()).difference(orig)]
return loaded
diff -r ad33982ec561d498da091fb36a9b8dfc9df0f41c -r df732d55dba6d300deabce5a1e48906d8658e41a yt/fields/local_fields.py
--- a/yt/fields/local_fields.py
+++ b/yt/fields/local_fields.py
@@ -21,18 +21,10 @@
from .field_info_container import \
FieldInfoContainer
-def ensure_user_field(func):
- def check_and_call(*args, **kwargs):
- if 'user_field' not in kwargs:
- kwargs['user_field'] = True
- ret = func(*args, **kwargs)
- return ret
- return check_and_call
-
# Empty FieldInfoContainer
local_fields = FieldInfoContainer(None, [], None)
-add_field = derived_field = ensure_user_field(local_fields.add_field)
+add_field = derived_field = local_fields.add_field
@register_field_plugin
def setup_local_fields(registry, ftype = "gas", slice_info = None):
@@ -41,6 +33,5 @@
# fine.
# Note that we actually don't care about the ftype here.
for f in local_fields:
- if local_fields[f].user_field:
- registry._show_field_errors.append(f)
+ registry._show_field_errors.append(f)
registry.update(local_fields)
https://bitbucket.org/yt_analysis/yt/commits/929d2a2983cb/
Changeset: 929d2a2983cb
Branch: yt-3.0
User: MatthewTurk
Date: 2014-03-24 18:44:53
Summary: Merged in ngoldbaum/yt/yt-3.0 (pull request #749)
Fixing issues with field detection that were breaking the tests.
Affected #: 10 files
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 doc/source/analyzing/creating_derived_fields.rst
--- a/doc/source/analyzing/creating_derived_fields.rst
+++ b/doc/source/analyzing/creating_derived_fields.rst
@@ -295,8 +295,6 @@
(*Advanced*) Should this field appear in the dropdown box in Reason?
``not_in_all``
(*Advanced*) If this is *True*, the field may not be in all the grids.
- ``projection_conversion``
- (*Advanced*) Which unit should we multiply by in a projection?
How Do Units Work?
------------------
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 doc/source/analyzing/objects.rst
--- a/doc/source/analyzing/objects.rst
+++ b/doc/source/analyzing/objects.rst
@@ -40,8 +40,7 @@
add_enzo_field("Cooling_Time", units=r"\rm{s}",
function=NullFunc,
- validators=ValidateDataField("Cooling_Time"),
- projection_conversion="1")
+ validators=ValidateDataField("Cooling_Time"))
Note that we used the ``NullFunc`` function here. To add a derived field,
which is not expected to necessarily exist on disk, use the standard
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/analysis_modules/sunyaev_zeldovich/projection.py
--- a/yt/analysis_modules/sunyaev_zeldovich/projection.py
+++ b/yt/analysis_modules/sunyaev_zeldovich/projection.py
@@ -39,26 +39,35 @@
pass
vlist = "xyz"
+def setup_sunyaev_zeldovich_fields(registry, ftype, sl_info):
+ def _t_squared(field, data):
+ return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
+ registry.add_field(("gas", "t_squared"),
+ function = _t_squared,
+ units="g*keV**2/cm**3")
+ def _beta_perp_squared(field, data):
+ return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+ registry.add_field(("gas","beta_perp_squared"),
+ function = _beta_perp_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","t_squared"), units="g*keV**2/cm**3")
-def _t_squared(field, data):
- return data["gas","density"]*data["gas","kT"]*data["gas","kT"]
+ def _beta_par_squared(field, data):
+ return data["gas","beta_par"]**2/data["gas","density"]
+ registry.add_field("gas","beta_par_squared",
+ function = _beta_par_squared,
+ units="g/cm**3")
- at derived_field(name=("gas","beta_perp_squared"), units="g/cm**3")
-def _beta_perp_squared(field, data):
- return data["gas","density"]*data["gas","velocity_magnitude"]**2/clight/clight - data["gas","beta_par_squared"]
+ def _t_beta_par(field, data):
+ return data["gas","kT"]*data["gas","beta_par"]
+ registry.add_field(("gas","t_beta_par"),
+ function = _t_beta_par,
+ units="keV*g/cm**3")
- at derived_field(name=("gas","beta_par_squared"), units="g/cm**3")
-def _beta_par_squared(field, data):
- return data["gas","beta_par"]**2/data["gas","density"]
-
- at derived_field(name=("gas","t_beta_par"), units="keV*g/cm**3")
-def _t_beta_par(field, data):
- return data["gas","kT"]*data["gas","beta_par"]
-
- at derived_field(name=("gas","t_sz"), units="keV*g/cm**3")
-def _t_sz(field, data):
- return data["gas","density"]*data["gas","kT"]
+ def _t_sz(field, data):
+ return data["gas","density"]*data["gas","kT"]
+ registry.add_field(("gas","t_sz"),
+ function = _t_sz,
+ units="keV*g/cm**3")
def generate_beta_par(L):
def _beta_par(field, data):
@@ -90,6 +99,7 @@
def __init__(self, pf, freqs, mue=1.143, high_order=False):
self.pf = pf
+ pf.field_info.load_plugin(setup_sunyaev_zeldovich_fields)
self.num_freqs = len(freqs)
self.high_order = high_order
self.freqs = pf.arr(freqs, "GHz")
@@ -139,7 +149,6 @@
beta_par = generate_beta_par(L)
self.pf.field_info.add_field(name=("gas","beta_par"), function=beta_par, units="g/cm**3")
- proj = self.pf.proj("density", axis, center=ctr, data_source=source)
frb = proj.to_frb(width, nx)
dens = frb["density"]
Te = frb["t_sz"]/dens
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -517,7 +517,7 @@
# Now all the object related stuff
def all_data(self, find_max=False):
- if find_max: c = self.find_max("Density")[1]
+ if find_max: c = self.find_max("density")[1]
else: c = (self.domain_right_edge + self.domain_left_edge)/2.0
return self.region(c,
self.domain_left_edge, self.domain_right_edge)
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/fields/derived_field.py
--- a/yt/fields/derived_field.py
+++ b/yt/fields/derived_field.py
@@ -78,14 +78,11 @@
Used for baryon fields from the data that are not in all the grids
display_name : str
A name used in the plots
- projection_conversion : unit
- which unit should we multiply by in a projection?
"""
def __init__(self, name, function, units=None,
take_log=True, validators=None,
particle_type=False, vector_field=False, display_field=True,
- not_in_all=False, display_name=None,
- projection_conversion="cm"):
+ not_in_all=False, display_name=None):
self.name = name
self.take_log = take_log
self.display_name = display_name
@@ -124,7 +121,6 @@
dd['display_field'] = True
dd['not_in_all'] = self.not_in_all
dd['display_name'] = self.display_name
- dd['projection_conversion'] = self.projection_conversion
return dd
def get_units(self):
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -172,8 +172,11 @@
self.find_dependencies(loaded)
def load_plugin(self, plugin_name, ftype = "gas", skip_check = False):
+ if callable(plugin_name):
+ f = plugin_name
+ else:
+ f = field_plugins[plugin_name]
orig = set(self.items())
- f = field_plugins[plugin_name]
f(self, ftype, slice_info = self.slice_info)
loaded = [n for n, v in set(self.items()).difference(orig)]
return loaded
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/fields/geometric_fields.py
--- a/yt/fields/geometric_fields.py
+++ b/yt/fields/geometric_fields.py
@@ -78,7 +78,6 @@
registry.add_field(("index", "zeros"), function=_zeros,
units = "",
- projection_conversion="unitary",
display_field=False)
def _ones(field, data):
@@ -88,7 +87,6 @@
return data.apply_units(arr, field.units)
registry.add_field(("index", "ones"), function=_ones,
- projection_conversion="unitary",
units = "",
display_field=False)
diff -r b97321eeeceda3ecdbb907d1eaea71e072139e7a -r 929d2a2983cbc7e83a4fec194e19ffc86c6cc366 yt/fields/particle_fields.py
--- a/yt/fields/particle_fields.py
+++ b/yt/fields/particle_fields.py
@@ -80,8 +80,7 @@
registry.add_field(("deposit", "%s_count" % ptype),
function = particle_count,
validators = [ValidateSpatial()],
- display_name = "\\mathrm{%s Count}" % ptype,
- projection_conversion = '1')
+ display_name = "\\mathrm{%s Count}" % ptype)
def particle_mass(field, data):
pos = data[ptype, coord_name]
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list