[Yt-svn] yt-commit r478 - in trunk/yt: lagos reason
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Fri May 16 09:05:24 PDT 2008
Author: mturk
Date: Fri May 16 09:05:19 2008
New Revision: 478
URL: http://yt.spacepope.org/changeset/478
Log:
Reason now only displays those fields that the hierarchy file has detected as being available. Hierarchy file now detects derived fields.
Modified:
trunk/yt/lagos/DerivedFields.py
trunk/yt/lagos/HierarchyType.py
trunk/yt/reason/Notebook.py
Modified: trunk/yt/lagos/DerivedFields.py
==============================================================================
--- trunk/yt/lagos/DerivedFields.py (original)
+++ trunk/yt/lagos/DerivedFields.py Fri May 16 09:05:19 2008
@@ -339,6 +339,11 @@
add_field("particle_%s" % pf, function=pfunc,
validators = [ValidateSpatial(0)],
particle_type=True)
+for pf in ["creation_time", "dynamical_time", "metallicity_fraction"]:
+ pfunc = particle_func(pf)
+ add_field(pf, function=pfunc,
+ validators = [ValidateSpatial(0)],
+ particle_type=True)
add_field("particle mass", function=particle_func("particle_mass"),
validators=[ValidateSpatial(0)], particle_type=True)
Modified: trunk/yt/lagos/HierarchyType.py
==============================================================================
--- trunk/yt/lagos/HierarchyType.py (original)
+++ trunk/yt/lagos/HierarchyType.py Fri May 16 09:05:19 2008
@@ -326,7 +326,7 @@
mylog.info("Caching hierarchy information")
allArrays = na.zeros((self.num_grids,18),'float64')
allArrays[:,0:3] = self.gridDimensions[:]
- allArrays[:,3:6] = self.gridStartIndices[:]
+ allArrays[:,3:6] = self.gridStartIndices[:]
allArrays[:,6:9] = self.gridEndIndices[:]
allArrays[:,9:12] = self.gridLeftEdge[:]
allArrays[:,12:15] = self.gridRightEdge[:]
@@ -410,21 +410,7 @@
grid._prepare_grid()
self.__setup_grid_dxs()
mylog.debug("Prepared")
- field_list = self.get_data("/", "DataFields")
- if field_list == None:
- mylog.info("Gathering a field list (this may take a moment.)")
- field_list = sets.Set()
- if self.num_grids > 40:
- starter = na.random.randint(0, 20)
- random_sample = na.mgrid[starter:len(self.grids)-1:20j].astype("int32")
- mylog.debug("Checking grids: %s", random_sample.tolist())
- else:
- random_sample = na.mgrid[0:max(len(self.grids)-1,1)].astype("int32")
- for grid in self.grids[(random_sample,)]:
- gf = grid.getFields()
- mylog.debug("Grid %s has: %s", grid.id, gf)
- field_list = field_list.union(sets.Set(gf))
- self.field_list = list(field_list)
+ self.__setup_field_lists()
self.levelIndices = {}
self.levelNum = {}
ad = self.gridEndIndices - self.gridStartIndices + 1
@@ -475,6 +461,33 @@
if grid.Parent: grid._guess_properties_from_parent()
if pbar: pbar.finish()
+ def __setup_field_lists(self):
+ field_list = self.get_data("/", "DataFields")
+ if field_list == None:
+ mylog.info("Gathering a field list (this may take a moment.)")
+ field_list = sets.Set()
+ if self.num_grids > 40:
+ starter = na.random.randint(0, 20)
+ random_sample = na.mgrid[starter:len(self.grids)-1:20j].astype("int32")
+ mylog.debug("Checking grids: %s", random_sample.tolist())
+ else:
+ random_sample = na.mgrid[0:max(len(self.grids)-1,1)].astype("int32")
+ for grid in self.grids[(random_sample,)]:
+ gf = grid.getFields()
+ mylog.debug("Grid %s has: %s", grid.id, gf)
+ field_list = field_list.union(sets.Set(gf))
+ self.field_list = list(field_list)
+ self.derived_field_list = []
+ for field in fieldInfo:
+ fd = fieldInfo[field].get_dependencies(pf = self.parameter_file)
+ available = na.all([f in self.field_list for f in fd.requested])
+ if available: self.derived_field_list.append(field)
+ for field in self.field_list:
+ if field not in self.derived_field_list:
+ self.derived_field_list.append(field)
+
+
+
def __select_level(self, level):
# We return a numarray of the indices of all the grids on a given level
indices = na.where(self.gridLevels[:,0] == level)[0]
@@ -654,7 +667,7 @@
def export_particles_pb(self, filename, filter = 1, indexboundary = 0, fields = None, scale=1.0):
"""
Exports all the star particles, or a subset, to pb-format *filename*
- for viewing in partiview. Filters based on particle_type=*filter*,
+ for viewing in partiview. Filters based on particle_type=*filter*,
particle_index>=*indexboundary*, and exports *fields*, if supplied.
Otherwise, index, position(x,y,z). Optionally *scale* by a given
factor before outputting.
Modified: trunk/yt/reason/Notebook.py
==============================================================================
--- trunk/yt/reason/Notebook.py (original)
+++ trunk/yt/reason/Notebook.py Fri May 16 09:05:19 2008
@@ -621,11 +621,11 @@
self.plot = be.SlicePlot(self.data, self.field, figure=self.figure, axes=self.axes)
def QueryFields(self):
- nativeFields = self.outputfile.hierarchy.field_list
- nativeFields.sort()
- derivedFields = lagos.fieldInfo.keys()
- derivedFields.sort()
- return nativeFields + [""] + derivedFields
+ fields = []
+ for f in self.outputfile.hierarchy.derived_field_list:
+ if f in lagos.fieldInfo and lagos.fieldInfo[f].particle_type: continue
+ fields.append(f)
+ return sorted(fields)
class ProjPlotPage(VMPlotPage):
def makePlot(self):
More information about the yt-svn
mailing list