[yt-svn] commit/yt: 2 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Tue Jun 24 16:45:37 PDT 2014


2 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/0f7ac9cdcb17/
Changeset:   0f7ac9cdcb17
Branch:      yt-3.0
User:        MatthewTurk
Date:        2014-06-24 22:54:54
Summary:     Adding output_units to field definitions.

In practice, this is not that relevant for nearly anyone.  It's a mostly
internal parameter, which we will use to adjust the logic for determining the
returned values of particle fields that are used in aliases.
Affected #:  4 files

diff -r 0e28105c1c3bbaeb901e4a1ad14b72577f6ba8c7 -r 0f7ac9cdcb17fb22efda10ae569d5a332ae056e6 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -623,11 +623,13 @@
                                         fluids, self, self._current_chunk)
         for f, v in read_fluids.items():
             self.field_data[f] = self.pf.arr(v, input_units = finfos[f].units)
+            self.field_data[f].convert_to_units(finfos[f].output_units)
 
         read_particles, gen_particles = self.index._read_particle_fields(
                                         particles, self, self._current_chunk)
         for f, v in read_particles.items():
             self.field_data[f] = self.pf.arr(v, input_units = finfos[f].units)
+            self.field_data[f].convert_to_units(finfos[f].output_units)
 
         fields_to_generate += gen_fluids + gen_particles
         self._generate_fields(fields_to_generate)

diff -r 0e28105c1c3bbaeb901e4a1ad14b72577f6ba8c7 -r 0f7ac9cdcb17fb22efda10ae569d5a332ae056e6 yt/fields/derived_field.py
--- a/yt/fields/derived_field.py
+++ b/yt/fields/derived_field.py
@@ -78,11 +78,15 @@
        Used for baryon fields from the data that are not in all the grids
     display_name : str
        A name used in the plots
+    output_units : str
+       For fields that exist on disk, which we may want to convert to other
+       fields or that get aliased to themselves, we can specify a different
+       desired output unit than the unit found on disk.
     """
     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):
+                 not_in_all=False, display_name=None, output_units = None):
         self.name = name
         self.take_log = take_log
         self.display_name = display_name
@@ -90,6 +94,8 @@
         self.display_field = display_field
         self.particle_type = particle_type
         self.vector_field = vector_field
+        if output_units is None: output_units = units
+        self.output_units = output_units
 
         self._function = function
 

diff -r 0e28105c1c3bbaeb901e4a1ad14b72577f6ba8c7 -r 0f7ac9cdcb17fb22efda10ae569d5a332ae056e6 yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -66,14 +66,22 @@
         pass
 
     def setup_particle_fields(self, ptype, ftype='gas', num_neighbors=64 ):
+        skip_output_units = ("code_length",)
         for f, (units, aliases, dn) in sorted(self.known_particle_fields):
             units = self.pf.field_units.get((ptype, f), units)
+            if (f in aliases or ptype not in self.pf.particle_types_raw) and \
+                units not in skip_output_units:
+                u = Unit(units, registry = self.pf.unit_registry)
+                output_units = str(u.get_cgs_equivalent())
+            else:
+                output_units = units
             self.add_output_field((ptype, f),
-                units = units, particle_type = True, display_name = dn)
+                units = units, particle_type = True, display_name = dn,
+                output_units = output_units)
             if (ptype, f) not in self.field_list:
                 continue
             for alias in aliases:
-                self.alias((ptype, alias), (ptype, f))
+                self.alias((ptype, alias), (ptype, f), units = output_units)
 
         # We'll either have particle_position or particle_position_[xyz]
         if (ptype, "particle_position") in self.field_list or \

diff -r 0e28105c1c3bbaeb901e4a1ad14b72577f6ba8c7 -r 0f7ac9cdcb17fb22efda10ae569d5a332ae056e6 yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -80,16 +80,16 @@
         ("particle_position_x", ("code_length", [], None)),
         ("particle_position_y", ("code_length", [], None)),
         ("particle_position_z", ("code_length", [], None)),
-        ("particle_velocity_x", (vel_units, [], None)),
-        ("particle_velocity_y", (vel_units, [], None)),
-        ("particle_velocity_z", (vel_units, [], None)),
+        ("particle_velocity_x", (vel_units, ["particle_velocity_x"], None)),
+        ("particle_velocity_y", (vel_units, ["particle_velocity_y"], None)),
+        ("particle_velocity_z", (vel_units, ["particle_velocity_z"], None)),
         ("creation_time", ("code_time", [], None)),
         ("dynamical_time", ("code_time", [], None)),
         ("metallicity_fraction", ("code_metallicity", [], None)),
         ("metallicity", ("", [], None)),
         ("particle_type", ("", [], None)),
         ("particle_index", ("", [], None)),
-        ("particle_mass", ("code_mass", [], None)),
+        ("particle_mass", ("code_mass", ["particle_mass"], None)),
         ("GridID", ("", [], None)),
         ("identifier", ("", ["particle_index"], None)),
         ("level", ("", [], None)),


https://bitbucket.org/yt_analysis/yt/commits/35cecc8a0a24/
Changeset:   35cecc8a0a24
Branch:      yt-3.0
User:        ngoldbaum
Date:        2014-06-25 01:45:22
Summary:     Fixing a boneheaded mistake in the code that checks if images are all nans.
Affected #:  1 file

diff -r 0f7ac9cdcb17fb22efda10ae569d5a332ae056e6 -r 35cecc8a0a24bbf074956ef320f70e0e686478a7 yt/visualization/plot_window.py
--- a/yt/visualization/plot_window.py
+++ b/yt/visualization/plot_window.py
@@ -813,7 +813,7 @@
                 elif np.nanmax(image) <= 0:
                     msg = "Plot image for field %s has no positive " \
                           "values.  Max = %d." % (f, np.nanmax(image))
-                elif np.all(np.isfinite(image)):
+                elif np.all(np.logical_not(np.isfinite(image))):
                     msg = "Plot image for field %s is filled with NaNs." % (f,)
                 if msg is not None:
                     mylog.warning(msg)

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