[Yt-svn] yt-commit r1253 - in trunk/yt: lagos raven
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Thu Apr 16 20:16:52 PDT 2009
Author: mturk
Date: Thu Apr 16 20:16:51 2009
New Revision: 1253
URL: http://yt.spacepope.org/changeset/1253
Log:
First pass toward adding display_name, with refactored autoset_label.
Modified:
trunk/yt/lagos/FieldInfoContainer.py
trunk/yt/raven/PlotTypes.py
Modified: trunk/yt/lagos/FieldInfoContainer.py
==============================================================================
--- trunk/yt/lagos/FieldInfoContainer.py (original)
+++ trunk/yt/lagos/FieldInfoContainer.py Thu Apr 16 20:16:51 2009
@@ -166,14 +166,14 @@
def has_field_parameter(self, param): return True
def convert(self, item): return 1
-class DerivedField:
+class DerivedField(object):
def __init__(self, name, function,
convert_function = None,
units = "", projected_units = "",
take_log = True, validators = None,
particle_type = False, vector_field=False,
display_field = True, not_in_all=False,
- projection_conversion = "cm"):
+ display_name = None, projection_conversion = "cm"):
"""
This is the base class used to describe a cell-by-cell derived field.
@@ -189,6 +189,7 @@
:param display_field: governs its appearance in the dropdowns in reason
:param not_in_all: is used for baryon fields from the data that are not in
all the grids
+ :param display_name: a name used in the plots
:param projection_conversion: which unit should we multiply by in a
projection?
"""
@@ -208,12 +209,15 @@
self.vector_field = vector_field
self.projection_conversion = projection_conversion
self.display_field = display_field
+ self.display_name = display_name
self.not_in_all = not_in_all
+
def check_available(self, data):
for validator in self.validators:
validator(data)
# If we don't get an exception, we're good to go
return True
+
def get_dependencies(self, *args, **kwargs):
e = FieldDetector(*args, **kwargs)
if self._function.func_name == '<lambda>':
@@ -221,10 +225,13 @@
else:
self(e)
return e
+
def get_units(self):
return self._units
+
def get_projected_units(self):
return self._projected_units
+
def __call__(self, data):
ii = self.check_available(data)
original_fields = data.fields[:] # Copy
@@ -234,9 +241,20 @@
if field_name not in original_fields:
del data[field_name]
return dd
+
def get_source(self):
return inspect.getsource(self._function)
+ def get_label(self, projected=False):
+ name = self.name
+ if self.display_name is not None: name = self.display_name
+ data_label = r"$\rm{%s}" % name
+ if projected: units = self.get_projected_units()
+ else: units = self.get_units()
+ if units != "": data_label += r"\/\/ (%s)" % (units)
+ data_label += r"$"
+ return data_label
+
class FieldValidator(object):
pass
Modified: trunk/yt/raven/PlotTypes.py
==============================================================================
--- trunk/yt/raven/PlotTypes.py (original)
+++ trunk/yt/raven/PlotTypes.py Thu Apr 16 20:16:51 2009
@@ -384,31 +384,26 @@
def selfSetup(self):
pass
+ def autoset_label(self):
+ if self.datalabel is None:
+ field_name = self.axis_names["Z"]
+ proj = "Proj" in self._type_name and \
+ self.data._weight is None
+ data_label = self.pf.field_info[field_name].get_label(proj)
+ else: data_label = self.datalabel
+ if self.colorbar != None:
+ self.colorbar.set_label(str(data_label))
+
class FixedResolutionPlot(VMPlot):
# This is a great argument in favor of changing the name
# from VMPlot to something else
_type_name = "FixedResolution"
- _projected = False
def _get_buff(self, width=None):
return self.data[self.axis_names["Z"]]
- def autoset_label(self):
- if self.datalabel != None:
- self.colorbar.set_label(str(self.datalabel))
- return
- field_name = self.axis_names["Z"]
- data_label = r"$\rm{%s}" % field_name.replace("_","\hspace{0.5}")
- if self.pf.field_info.has_key(field_name):
- if self._projected:
- data_label += r"\/\/ (%s)" % (self.pf.field_info[field_name].get_projected_units())
- else:
- data_label += r"\/\/ (%s)" % (self.pf.field_info[field_name].get_units())
- data_label += r"$"
- if self.colorbar != None: self.colorbar.set_label(str(data_label))
-
def set_width(self, width, unit):
#mylog.debug("Not changing FixedResolution width")
self._refresh_display_width()
@@ -438,17 +433,6 @@
from Callbacks import QuiverCallback
self.add_callback(QuiverCallback(xf, yf, factor))
- def autoset_label(self):
- if self.datalabel != None:
- self.colorbar.set_label(str(self.datalabel))
- return
- field_name = self.axis_names["Z"]
- data_label = r"$\rm{%s}" % field_name.replace("_","\hspace{0.5}")
- if self.pf.field_info.has_key(field_name):
- data_label += r"\/\/ (%s)" % (self.pf.field_info[field_name].get_units())
- data_label += r"$"
- if self.colorbar != None: self.colorbar.set_label(str(data_label))
-
class NNVMPlot:
def _get_buff(self, width=None):
import delaunay as de
@@ -485,19 +469,6 @@
class ProjectionPlot(VMPlot):
_type_name = "Projection"
- def autoset_label(self):
- if self.datalabel != None:
- self.colorbar.set_label(str(self.datalabel))
- return
- field_name = self.axis_names["Z"]
- data_label = r"$\rm{%s}" % field_name.replace("_","\hspace{0.5}")
- if self.pf.field_info.has_key(field_name):
- if self.data._weight is None:
- data_label += r"\/\/ (%s)" % (self.pf.field_info[field_name].get_projected_units())
- else:
- data_label += r"\/\/ (%s)" % (self.pf.field_info[field_name].get_units())
- data_label += r"$"
- if self.colorbar != None: self.colorbar.set_label(str(data_label))
def switch_z(self, field):
mylog.warning("Choosing not to change the field of a projection instance")
More information about the yt-svn
mailing list