Disculpas si la siguiente pregunta es algo estúpida, pero solo soy MUY nuevo en todo este asunto SIG.
Estoy tratando de convertir algunas imágenes geoTiff proyectadas a WGS84 usando gdal en python. He encontrado una publicación que describe el proceso para transformar puntos dentro de GeoTiffs proyectados usando algo similar a lo siguiente:
from osgeo import osr, gdal
# get the existing coordinate system
ds = gdal.Open('path/to/file')
old_cs= osr.SpatialReference()
old_cs.ImportFromWkt(ds.GetProjectionRef())
# create the new coordinate system
wgs84_wkt = """
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]]"""
new_cs = osr.SpatialReference()
new_cs .ImportFromWkt(wgs84_wkt)
# create a transform object to convert between coordinate systems
transform = osr.CoordinateTransformation(old_cs,new_cs)
#get the point to transform, pixel (0,0) in this case
width = ds.RasterXSize
height = ds.RasterYSize
gt = ds.GetGeoTransform()
minx = gt[0]
miny = gt[3] + width*gt[4] + height*gt[5]
#get the coordinates in lat long
latlong = transform.TransformPoint(x,y)
Mi pregunta es, si quiero convertir estos puntos y crear un nuevo archivo GeoTiff WGS84, ¿es esta la mejor manera de hacerlo? ¿Existe una función que haga tal tarea en 1 paso?
¡Gracias!
fuente
Como dijo mdsumner, es mucho más fácil usar la línea de comandos que los enlaces de python, a menos que desee ejecutar tareas muy complejas.
Entonces, si te gusta Python, como a mí, puedes ejecutar la herramienta de línea de comando con:
o iterar a través de una lista de archivos:
E incluso use herramientas de multiprocesamiento , use toda la potencia de su máquina para ejecutar grandes tareas.
fuente
os.sys
es un módulo incorporado; quieres elos.system
comando