[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