21 votos

Obtener el nombre del sistema de coordenadas de SpatialReference usando GDAL/Python

En Python, utilizando GDAL, he extraído la proyección de un raster 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]]'

Usando la cadena WKT, puedo crear una instancia de SpatialReference como sigue:

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

Esto es muy fácil. Puedo extraer varios parámetros de la proyección de src como la zona UTM, etc., con bastante facilidad. Pero no puedo averiguar cómo extraer algo como el nombre de la proyección, es decir "GDA_1994_Transverse_Mercator" . Seguramente tiene que ser posible, pero la documentación de la API de Python bien podría ser inexistente para todo el uso que se le da.

¿Cómo puedo extraer los nombres de la proyección y del sistema de coordenadas geográficas?

51voto

Lucas Puntos 128

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

He aquí 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 trama esto se 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'

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X