[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