GDAL / Python: ¿Cómo obtengo el nombre del sistema de coordenadas de SpatialReference?

16

En Python, utilizando GDAL, extraje la proyección de un ráster como una cadena WKT de la siguiente manera:

wkt = dataset.GetProjection()
# wkt is 'PROJCS["GDA_1994_Transverse_Mercator",GEOGCS["GDA_1994",DATUM["GDA_1994",SPHEROID["GRS_1980",6378137,298.2572221010002],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],UNIT["Meter",1]]'

Utilizando la cadena WKT, puedo crear una instancia de SpatialReference de la siguiente manera:

src = osr.SpatialReference()
src.ImportFromWkt(wkt)

Esto es fácil-peasy. Puedo extraer varios parámetros de la proyección de src como la zona UTM, etc., con la suficiente facilidad. Pero no puedo averiguar cómo extraer algo como el nombre de la proyección, es decir, "GDA_1994_Transverse_Mercator" . Seguramente esto tiene que ser posible, pero la documentación de la API de Python puede no existir para todo el uso que se haga.

¿Cómo extraigo los nombres de la proyección y el sistema de coordenadas geográficas?

    
pregunta hendra 10.05.2013 - 07:17

1 respuesta

39

Consulte el Tutorial de proyecciones de OGR y OGRSpatialReference de la clase. En particular, el método GetAttrValue .

Aquí hay un ejemplo trabajado.

from osgeo import gdal,osr
ds=gdal.Open(r'SOMERASTER.TIF')
prj=ds.GetProjection()
print prj

srs=osr.SpatialReference(wkt=prj)
if srs.IsProjected:
    print srs.GetAttrValue('projcs')
print srs.GetAttrValue('geogcs')

Para mi raster esto imprime:

PROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32655"]]
'WGS 84 / UTM zone 55N'
'WGS 84'
    
respondido por el Luke 10.05.2013 - 07:55

Lea otras preguntas en las etiquetas