[cig-commits] r5633 - in cs/spatialdata-0.1/trunk: modulesrc/geocoords spatialdata/geocoords tests/pytests/geocoords

brad at geodynamics.org brad at geodynamics.org
Tue Jan 2 23:05:40 PST 2007


Author: brad
Date: 2007-01-02 23:05:39 -0800 (Tue, 02 Jan 2007)
New Revision: 5633

Modified:
   cs/spatialdata-0.1/trunk/modulesrc/geocoords/geocoords.pyxe
   cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSCart.py
   cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeo.py
   cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeoProj.py
   cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSCart.py
   cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeo.py
   cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoLocalCart.py
   cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoProj.py
Log:
Changed geocoords module and pyre interfaces to accept different numbers of spatial dimensions for coordinate systems (where appropriate).

Modified: cs/spatialdata-0.1/trunk/modulesrc/geocoords/geocoords.pyxe
===================================================================
--- cs/spatialdata-0.1/trunk/modulesrc/geocoords/geocoords.pyxe	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/modulesrc/geocoords/geocoords.pyxe	2007-01-03 07:05:39 UTC (rev 5633)
@@ -105,6 +105,24 @@
       return CSCart_toMeters_get(self.thisptr)
 
 
+  property spaceDim:
+    def __set__(self, ndims):
+      """Set number of dimensions for coordinates."""
+      # create shim for method 'spaceDim'
+      #embed{ void CSCart_spaceDim_set(void* pObj, int ndims)
+      ((spatialdata::geocoords::CSCart*) pObj)->spaceDim(ndims);
+      #}embed
+      CSCart_spaceDim_set(self.thisptr, ndims)
+
+    def __get__(self):
+      """Get number of dimensions for coordinates."""
+      # create shim for method 'spaceDim'
+      #embed{ int CSCart_spaceDim_get(void* pObj)
+      return ((spatialdata::geocoords::CSCart*) pObj)->spaceDim();
+      #}embed
+      return CSCart_spaceDim_get(self.thisptr)
+
+
 # ----------------------------------------------------------------------
 cdef class CSGeo(CoordSys):
 
@@ -211,6 +229,24 @@
       return CSGeo_toMeters_get(self.thisptr)
 
 
+  property spaceDim:
+    def __set__(self, ndims):
+      """Set number of dimensions for coordinates."""
+      # create shim for method 'spaceDim'
+      #embed{ void CSGeo_spaceDim_set(void* pObj, int ndims)
+        ((spatialdata::geocoords::CSGeo*) pObj)->spaceDim(ndims);
+      #}embed
+      CSGeo_spaceDim_set(self.thisptr, ndims)
+
+    def __get__(self):
+      """Get number of dimensions for coodinates."""
+      # create shim for method 'spaceDim'
+      #embed{ int CSGeo_spaceDim_get(void* pObj)
+        return ((spatialdata::geocoords::CSGeo*) pObj)->spaceDim();
+      #}embed
+      return CSGeo_spaceDim_get(self.thisptr)
+
+
 # ----------------------------------------------------------------------
 cdef class CSGeoLocalCart(CSGeo):
 
@@ -421,13 +457,13 @@
 
 # ----------------------------------------------------------------------
 # create shim for Converter method 'convert'
-#embed{ void CppConverter_convert(double* coords, int numLocs, void* pCSDestObj, void* pCSSrcObj, int is2D)
+#embed{ void CppConverter_convert(double* coords, int numLocs, int numDims, void* pCSDestObj, void* pCSSrcObj)
 spatialdata::geocoords::CoordSys* pCSDest =
   (spatialdata::geocoords::CoordSys*) pCSDestObj;
 spatialdata::geocoords::CoordSys* pCSSrc =
   (spatialdata::geocoords::CoordSys*) pCSSrcObj;
-spatialdata::geocoords::Converter::convert(coords, numLocs,
-                                           pCSDest, pCSSrc, is2D);
+spatialdata::geocoords::Converter::convert(coords, numLocs, numDims,
+                                           pCSDest, pCSSrc);
 #}embed
 
 def Converter_convert(coordsSrc, csDest, csSrc):
@@ -452,18 +488,12 @@
     raise TypeError, \
           "Argument 'csSrc' must be extension module type 'CSGeo'."
 
-  (numLocs, numCoords) = coordsSrc.shape
-  is2D = 0
-  if numCoords < 2 or numCoords > 3:
-    raise TypeError, "Number of coordinates must be at 2 or 3."
-  elif 2 == numCoords:
-    is2D = 1
+  (numLocs, numDims) = coordsSrc.shape
 
   cdef double* vals
   vals = <double*> PyCObject_AsVoidPtr(coordsSrc.data)
-  CppConverter_convert(vals, numLocs,
-                       ptrFromHandle(csDest), ptrFromHandle(csSrc),
-                       is2D)
+  CppConverter_convert(vals, numLocs, numDims,
+                       ptrFromHandle(csDest), ptrFromHandle(csSrc))
   return
 
 

Modified: cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSCart.py
===================================================================
--- cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSCart.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSCart.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -29,6 +29,7 @@
     ##
     ## \b Properties
     ## @li \b units Name of units
+    ## @li \b space_dim Number of dimensions for coordinate system
     ##
     ## \b Facilities
     ## @li None
@@ -38,6 +39,9 @@
     units = pyre.inventory.str("units", default="m")
     units.meta['tip'] = "Units of coordinates."
 
+    spaceDim = pyre.inventory.int("space_dim", default=3)
+    spaceDim.meta['tip'] = "Number of dimensions for coordinate system."
+
   # PUBLIC METHODS /////////////////////////////////////////////////////
 
   def initialize(self):
@@ -48,6 +52,8 @@
     coordUnits = uparser.parse(self.units)
     self.cppHandle.toMeters = coordUnits.value
 
+    self.cppHandle.spaceDim = self.spaceDim
+
     CoordSys.initialize(self)
     return
 
@@ -59,6 +65,7 @@
     import spatialdata.geocoords.geocoords as bindings
     self.cppHandle = bindings.CSCart()
     self.units = "m"
+    self.spaceDim = 3
     return
 
 
@@ -68,10 +75,8 @@
     """Setup members using inventory."""
 
     self.units = self.inventory.units
+    self.spaceDim = self.inventory.spaceDim
     return
 
 
-# version
-__id__ = "$Id$"
-
 # End of file 

Modified: cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeo.py
===================================================================
--- cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeo.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeo.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -29,10 +29,11 @@
     ##
     ## \b Properties
     ## @li \b ellipsoid Name of ellipsoid
-    ## @li \b datum-horiz Name of horizontal datum
-    ## @li \b datum-vert Name of vertical datum
-    ## @li \b is-geocentric True if geocentric, false if lon/lat
+    ## @li \b datum_horiz Name of horizontal datum
+    ## @li \b datum_vert Name of vertical datum
+    ## @li \b is_geocentric True if geocentric, false if lon/lat
     ## @li \b units Name of units
+    ## @li \b space_dim Number of dimensions for coordinate system
     ##
     ## \b Facilities
     ## @li None
@@ -42,18 +43,21 @@
     ellipsoid = pyre.inventory.str("ellipsoid", default="WGS84")
     ellipsoid.meta['tip'] = "Name of ellipsoid."
 
-    datumHoriz = pyre.inventory.str("datum-horiz", default="WGS84")
+    datumHoriz = pyre.inventory.str("datum_horiz", default="WGS84")
     datumHoriz.meta['tip'] = "Name of horizontal datum."
 
-    datumVert = pyre.inventory.str("datum-vert", default="ellipsoid")
+    datumVert = pyre.inventory.str("datum_vert", default="ellipsoid")
     datumVert.meta['tip'] = "Name of vertical datum."
 
-    isGeocentric = pyre.inventory.bool("is-geocentric", default=False)
+    isGeocentric = pyre.inventory.bool("is_geocentric", default=False)
     isGeocentric.meta['tip'] = "Flag indicating geocentric coordinate system."
 
     units = pyre.inventory.str("units", default="m")
     units.meta['tip'] = "Units of coordinates."
 
+    spaceDim = pyre.inventory.int("space_dim", default=3)
+    spaceDim.meta['tip'] = "Number of dimensions for coordinate system."
+
   # PUBLIC METHODS /////////////////////////////////////////////////////
 
   def initialize(self):
@@ -68,6 +72,8 @@
     coordUnits = uparser.parse(self.units)
     self.cppHandle.toMeters = coordUnits.value
 
+    self.cppHandle.spaceDim = self.spaceDim
+
     CoordSys.initialize(self)
     return
 
@@ -83,6 +89,7 @@
     self.datumVert = "ellipsoid"
     self.isGeocentric = False
     self.units = "m"
+    self.spaceDim = 3
     return
 
 
@@ -96,10 +103,8 @@
     self.datumVert = self.inventory.datumVert
     self.isGeocentric = self.inventory.isGeocentric
     self.units = self.inventory.units
+    self.spaceDim = self.inventory.spaceDim
     return
 
 
-# version
-__id__ = "$Id$"
-
 # End of file 

Modified: cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeoProj.py
===================================================================
--- cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeoProj.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/spatialdata/geocoords/CSGeoProj.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -70,7 +70,4 @@
     return
 
 
-# version
-__id__ = "$Id$"
-
 # End of file 

Modified: cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSCart.py
===================================================================
--- cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSCart.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSCart.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -18,13 +18,13 @@
     from spatialdata.geocoords.CSCart import CSCart
     cs = CSCart()
     cs.units = "km"
+    cs.spaceDim = 2
     cs.initialize()
 
     self.assertEqual(1.0e+3, cs.cppHandle.toMeters)
+    self.assertEqual(2, cs.cppHandle.spaceDim)
 
     return
 
-# version
-__id__ = "$Id$"
 
 # End of file 

Modified: cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeo.py
===================================================================
--- cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeo.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeo.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -21,6 +21,7 @@
     cs.datumHoriz = "NAD27"
     cs.datumVert = "mean sea level"
     cs.units = "km"
+    cs.spaceDim = 2
     cs.initialize()
 
     self.assertEqual(cs.ellipsoid, cs.cppHandle.ellipsoid)
@@ -28,10 +29,9 @@
     self.assertEqual(cs.datumVert, cs.cppHandle.datumVert)
     self.assertEqual(cs.isGeocentric, cs.isGeocentric)
     self.assertEqual(1.0e+3, cs.cppHandle.toMeters)
+    self.assertEqual(2, cs.cppHandle.spaceDim)
 
     return
 
-# version
-__id__ = "$Id$"
 
 # End of file 

Modified: cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoLocalCart.py
===================================================================
--- cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoLocalCart.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoLocalCart.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -32,6 +32,7 @@
     self.assertEqual(cs.datumVert, cs.cppHandle.datumVert)
     self.assertEqual(True, cs.isGeocentric)
     self.assertEqual(1.0e+3, cs.cppHandle.toMeters)
+    self.assertEqual(3, cs.cppHandle.spaceDim)
 
     (lon, lat, elev) = cs.cppHandle.getOrigin()
     self.assertAlmostEqual(cs.originLon, lon, 6)

Modified: cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoProj.py
===================================================================
--- cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoProj.py	2007-01-03 06:46:37 UTC (rev 5632)
+++ cs/spatialdata-0.1/trunk/tests/pytests/geocoords/TestCSGeoProj.py	2007-01-03 07:05:39 UTC (rev 5633)
@@ -30,6 +30,7 @@
     cs.datumHoriz = "NAD27"
     cs.datumVert = "mean sea level"
     cs.units = "km"
+    cs.spaceDim = 2
     cs.projector = proj
     cs.initialize()
     
@@ -38,10 +39,9 @@
     self.assertEqual(cs.datumVert, cs.cppHandle.datumVert)
     self.assertEqual(cs.isGeocentric, cs.isGeocentric)
     self.assertEqual(1.0e+3, cs.cppHandle.toMeters)
+    self.assertEqual(2, cs.cppHandle.spaceDim)
 
     return
 
-# version
-__id__ = "$Id$"
 
 # End of file 



More information about the cig-commits mailing list