Refs #25588 -- Added the srid property to GDALRaster

Geometry objects have an srid property, so this addition makes the raster api
more similar to the geometries api.
This commit is contained in:
Daniel Wiesmann 2015-10-28 12:05:22 +00:00 committed by Claude Paroz
parent e5ab75d2fd
commit 48548d1a47
3 changed files with 39 additions and 0 deletions

View File

@ -214,6 +214,20 @@ class GDALRaster(GDALBase):
capi.set_ds_projection_ref(self._ptr, srs.wkt.encode()) capi.set_ds_projection_ref(self._ptr, srs.wkt.encode())
self._flush() self._flush()
@property
def srid(self):
"""
Shortcut to access the srid of this GDALRaster.
"""
return self.srs.srid
@srid.setter
def srid(self, value):
"""
Shortcut to set this GDALRaster's srs from an srid.
"""
self.srs = value
@property @property
def geotransform(self): def geotransform(self):
""" """

View File

@ -1204,6 +1204,21 @@ blue.
>>> rst.srs.srid >>> rst.srs.srid
3086 3086
.. attribute:: srid
The Spatial Reference System Identifier (SRID) of the raster. This
property is a shortcut to getting or setting the SRID through the
:attr:`srs` attribute.
>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.srid
4326
>>> rst.srid = 3086
>>> rst.srid
3086
>>> rst.srs.srid # This is equivalent
3086
.. attribute:: geotransform .. attribute:: geotransform
The affine transformation matrix used to georeference the source, as a The affine transformation matrix used to georeference the source, as a

View File

@ -83,6 +83,16 @@ class GDALRasterTests(unittest.TestCase):
self.assertEqual(self.rs.srs.srid, 3086) self.assertEqual(self.rs.srs.srid, 3086)
self.assertEqual(self.rs.srs.units, (1.0, 'metre')) self.assertEqual(self.rs.srs.units, (1.0, 'metre'))
def test_rs_srid(self):
rast = GDALRaster({
'width': 16,
'height': 16,
'srid': 4326,
})
self.assertEqual(rast.srid, 4326)
rast.srid = 3086
self.assertEqual(rast.srid, 3086)
def test_geotransform_and_friends(self): def test_geotransform_and_friends(self):
# Assert correct values for file based raster # Assert correct values for file based raster
self.assertEqual(self.rs.geotransform, self.assertEqual(self.rs.geotransform,