[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