[Yt-svn] yt-commit r608 - in branches/yt-generalization/yt: lagos raven

mturk at wrangler.dreamhost.com mturk at wrangler.dreamhost.com
Mon Jun 23 06:27:11 PDT 2008


Author: mturk
Date: Mon Jun 23 06:27:09 2008
New Revision: 608
URL: http://yt.spacepope.org/changeset/608

Log:
Added a mask.  Images for Orion now look broadly correct, but projections are
still not mathematically correct.



Modified:
   branches/yt-generalization/yt/lagos/BaseDataTypes.py
   branches/yt-generalization/yt/lagos/PointCombine.c
   branches/yt-generalization/yt/raven/PlotTypes.py

Modified: branches/yt-generalization/yt/lagos/BaseDataTypes.py
==============================================================================
--- branches/yt-generalization/yt/lagos/BaseDataTypes.py	(original)
+++ branches/yt-generalization/yt/lagos/BaseDataTypes.py	Mon Jun 23 06:27:09 2008
@@ -823,7 +823,6 @@
                           % (level, self._max_level), len(grids_to_project))
         for pi, grid in enumerate(grids_to_project):
             g_coords, g_fields = self._project_grid(grid, fields, zero_out)
-            print "FIGHTIN'", na.where(g_coords[0]<0)[0].size
             self.__retval_coords[grid.id] = g_coords
             self.__retval_fields[grid.id] = g_fields
             for fi in range(len(fields)): g_fields[fi] *= dls[fi]
@@ -887,8 +886,9 @@
                 args += self.__retval_coords[grid2.id] + [self.__retval_fields[grid2.id]]
                 args += self.__retval_coords[grid1.id] + [self.__retval_fields[grid1.id]]
                 args.append(1) # Refinement factor
+                args.append(na.ones(args[0].shape, dtype='int64'))
                 kk = PointCombine.CombineGrids(*args)
-                goodI = na.where(self.__retval_coords[grid2.id][0] > -1)
+                goodI = args[-1].astype('bool')
                 self.__retval_coords[grid2.id] = \
                     [coords[goodI] for coords in self.__retval_coords[grid2.id]]
                 self.__retval_fields[grid2.id] = \
@@ -909,8 +909,9 @@
                     args += self.__retval_coords[grid2.id] + [self.__retval_fields[grid2.id]]
                     args += self.__retval_coords[grid1.id] + [self.__retval_fields[grid1.id]]
                     args.append(int(grid2.dx / grid1.dx))
+                    args.append(na.ones(args[0].shape, dtype='int64'))
                     kk = PointCombine.CombineGrids(*args)
-                    goodI = (self.__retval_coords[grid2.id][0] > -1)
+                    goodI = args[-1].astype('bool')
                     self.__retval_coords[grid2.id] = \
                         [coords[goodI] for coords in self.__retval_coords[grid2.id]]
                     self.__retval_fields[grid2.id] = \
@@ -931,7 +932,6 @@
         dxs = []
         for level in range(0, self._max_level+1):
             my_coords, my_dx, my_fields = self.__project_level(level, fields)
-            print "MID COORDS", level, na.where(my_coords[0,:] < 0)[0].size
             coord_data.append(my_coords)
             field_data.append(my_fields)
             dxs.append(my_dx * na.ones(my_coords.shape[1], dtype='float64'))
@@ -950,8 +950,6 @@
         # We now convert to half-widths and center-points
         self.data['pdx'] = dxs
         xax, yax = x_dict[self.axis], y_dict[self.axis]
-        print "FINAL COORDS", na.where(coord_data[0,:]<0)[0].size,\
-                              na.where(coord_data[1,:]<0)[0].size
         self.data['px'] = (coord_data[0,:]+0.5) * self['pdx']
         self.data['py'] = (coord_data[1,:]+0.5) * self['pdx']
         self.data['pdx'] *= 0.5
@@ -987,7 +985,6 @@
         start_index = grid.get_global_startindex()
         xpoints = (xind + (start_index[x_dict[self.axis]])).astype('int64')
         ypoints = (yind + (start_index[y_dict[self.axis]])).astype('int64')
-        print "FUCK", grid.id, na.where(xpoints < 0)[0].size, na.where(ypoints < 0)[0].size
         return ([xpoints, ypoints,
                 subgrid_mask[used_points].ravel(),
                 weight_proj[used_points].ravel()],

Modified: branches/yt-generalization/yt/lagos/PointCombine.c
==============================================================================
--- branches/yt-generalization/yt/lagos/PointCombine.c	(original)
+++ branches/yt-generalization/yt/lagos/PointCombine.c	Mon Jun 23 06:27:09 2008
@@ -43,23 +43,29 @@
 Py_CombineGrids(PyObject *obj, PyObject *args)
 {
     PyObject    *ogrid_src_x, *ogrid_src_y, *ogrid_src_vals,
-        *ogrid_src_mask, *ogrid_src_wgt;
+        *ogrid_src_mask, *ogrid_src_wgt, *ogrid_used_mask;
     PyObject    *ogrid_dst_x, *ogrid_dst_y, *ogrid_dst_vals,
         *ogrid_dst_mask, *ogrid_dst_wgt;
 
     PyArrayObject    *grid_src_x, *grid_src_y, **grid_src_vals,
-            *grid_src_mask, *grid_src_wgt;
+            *grid_src_mask, *grid_src_wgt, *grid_used_mask;
     PyArrayObject    *grid_dst_x, *grid_dst_y, **grid_dst_vals,
             *grid_dst_mask, *grid_dst_wgt;
 
+    grid_src_x = grid_src_y = //grid_src_vals =
+            grid_src_mask = grid_src_wgt = grid_used_mask =
+    grid_dst_x = grid_dst_y = //grid_dst_vals = 
+            grid_dst_mask = grid_dst_wgt = NULL;
+
     int NumArrays, src_len, dst_len, refinement_factor;
+    NumArrays = 0;
 
-    if (!PyArg_ParseTuple(args, "OOOOOOOOOOi",
+    if (!PyArg_ParseTuple(args, "OOOOOOOOOOiO",
             &ogrid_src_x, &ogrid_src_y, 
         &ogrid_src_mask, &ogrid_src_wgt, &ogrid_src_vals,
             &ogrid_dst_x, &ogrid_dst_y,
         &ogrid_dst_mask, &ogrid_dst_wgt, &ogrid_dst_vals,
-        &refinement_factor))
+        &refinement_factor, &ogrid_used_mask))
     return PyErr_Format(_combineGridsError,
             "CombineGrids: Invalid parameters.");
 
@@ -97,6 +103,15 @@
     goto _fail;
     }
 
+    grid_used_mask  = (PyArrayObject *) PyArray_FromAny(ogrid_used_mask,
+                    PyArray_DescrFromType(NPY_INT64), 1, 1,
+                    NPY_INOUT_ARRAY | NPY_UPDATEIFCOPY, NULL);
+    if((grid_used_mask == NULL) || (PyArray_SIZE(grid_used_mask) != src_len)) {
+    PyErr_Format(_combineGridsError,
+             "CombineGrids: src_x and used_mask must be the same shape.");
+    goto _fail;
+    }
+
     grid_dst_x    = (PyArrayObject *) PyArray_FromAny(ogrid_dst_x,
                     PyArray_DescrFromType(NPY_INT64), 1, 1,
                     NPY_INOUT_ARRAY | NPY_UPDATEIFCOPY, NULL);
@@ -172,6 +187,7 @@
     npy_int64     *src_y    = (npy_int64 *) PyArray_GETPTR1(grid_src_y,0);
     npy_float64 *src_wgt  = (npy_float64 *) PyArray_GETPTR1(grid_src_wgt,0);
     npy_int64     *src_mask = (npy_int64 *) PyArray_GETPTR1(grid_src_mask,0);
+    npy_int64    *src_used_mask = (npy_int64 *) PyArray_GETPTR1(grid_used_mask,0);
 
     npy_int64     *dst_x    = (npy_int64 *) PyArray_GETPTR1(grid_dst_x,0);
     npy_int64     *dst_y    = (npy_int64 *) PyArray_GETPTR1(grid_dst_y,0);
@@ -200,7 +216,7 @@
                   ((refinement_factor != 1) && (dst_mask[di])));
               // So if they are on the same level, then take the logical and
               // otherwise, set it to the destination mask
-              src_x[si] = -2;
+              src_used_mask[si] = 0;
               for (i = 0; i < NumArrays; i++) {
                 dst_vals[i][di] += src_vals[i][si];
               }
@@ -215,6 +231,7 @@
     Py_DECREF(grid_src_y);
     Py_DECREF(grid_src_mask);
     Py_DECREF(grid_src_wgt);
+    Py_DECREF(grid_used_mask);
 
     Py_DECREF(grid_dst_x);
     Py_DECREF(grid_dst_y);
@@ -241,6 +258,7 @@
     Py_XDECREF(grid_src_y);
     Py_XDECREF(grid_src_wgt);
     Py_XDECREF(grid_src_mask);
+    Py_XDECREF(grid_used_mask);
 
     Py_XDECREF(grid_dst_x);
     Py_XDECREF(grid_dst_y);

Modified: branches/yt-generalization/yt/raven/PlotTypes.py
==============================================================================
--- branches/yt-generalization/yt/raven/PlotTypes.py	(original)
+++ branches/yt-generalization/yt/raven/PlotTypes.py	Mon Jun 23 06:27:09 2008
@@ -259,7 +259,6 @@
     def _get_buff(self, width=None):
         x0, x1 = self.xlim
         y0, y1 = self.ylim
-        print "LIMITS BITCHES", x0, x1, y0, y1
         if width is None:
             l, b, width, height = self._axes.bbox.get_bounds()
         else:



More information about the yt-svn mailing list