6 votos

Paquete de búsqueda de Python WKT o Proj4

Estoy buscando un paquete de Python que me permita ingresar un código de zona UTM y geo_referencing distintas secuencias (por ejemplo, WKT o Proj4) de salida. ¿Hay cualquier ligeros, utilizados paquetes que hay que realizan esta función?

3voto

Antonio Haley Puntos 2588

GDAL contiene la más completa aplicación de código abierto y no soy consciente de cualquier puerto a Python.

Rasterio hace el mismo tipo de cosa que enlaces de Python de GDAL y llama a las funciones de biblioteca C mismo.

Rasterio no es ligera por cualquier medida.

2voto

Nikola Puntos 21

Yo uso los enlaces Python para GDAL y OGR. Si GDAL/OGR es instalado en nuestra máquina, el pcs.csv archivo gdal-data directorio contiene un extracto de la EPSG Registro sobre proyectada sistemas de coordenadas de referencia, por lo que podemos filtrar este archivo para obtener el resultado. Supongamos que estamos interesados en la zona 33, he aquí un rápido y sucio solución:

from osgeo import ogr, osr

in_ds = ogr.GetDriverByName('CSV').Open('pcs.csv')
layer = in_ds.GetLayer()
zone = '33' #'33N'
layer.SetAttributeFilter("COORD_REF_SYS_NAME LIKE '%UTM zone {0}%'".format(zone))
for feature in layer:
    code = feature.GetField("COORD_REF_SYS_CODE")
    name = feature.GetField("COORD_REF_SYS_NAME")
    srs = osr.SpatialReference()
    srs.ImportFromEPSG(int(code))
    print 'EPSG:' + code + ' - ' + name
    print 'Proj4: ', srs.ExportToProj4()
    print 'WKT: ', srs.ExportToWkt()
    print

Nota: podemos refinar la búsqueda seleccionando también el hemisferio (por ejemplo, 33N) cambiar el valor de la zone variable en el código.

Esto es un extracto del resultado:

EPSG:2078 - ELD79 / UTM zone 33N
Proj4:  +proj=utm +zone=33 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,0,0,0 +units=m +no_defs 
WKT:  PROJCS["ELD79 / UTM zone 33N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","2078"]]

EPSG:2312 - Garoua / UTM zone 33N
Proj4:  +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs 
WKT:  PROJCS["Garoua / UTM zone 33N",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","2312"]]

EPSG:2313 - Kousseri / UTM zone 33N
Proj4:  +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs 
WKT:  PROJCS["Kousseri / UTM zone 33N",GEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","2313"]]

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