[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