Toutes mes excuses si la question suivante est quelque peu stupide, mais je ne suis que TRÈS novice dans ce domaine SIG.
J'essaie de convertir des images geoTiff projetées en WGS84 en utilisant gdal en python. J'ai trouvé un article qui décrit le processus de transformation des points dans les GeoTiffs projetés en utilisant quelque chose de similaire à ce qui suit:
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)
Ma question est, si je veux convertir ces points et créer un nouveau fichier GeoTiff WGS84, est-ce la meilleure façon de procéder? Existe-t-il une fonction qui fera comme une tâche en 1 étape?
Merci!
Comme l'a dit mdsumner, il est beaucoup plus facile d'utiliser la ligne de commande que les liaisons python, sauf si vous souhaitez exécuter des tâches très complexes.
Donc, si vous aimez python, comme moi, vous pouvez exécuter l'outil de ligne de commande avec:
ou parcourez une liste de fichiers:
Et même utiliser des outils de multitraitement utiliser toute la puissance de votre machine pour exécuter de grandes tâches.
la source
os.sys
est un module intégré; vous voulez laos.system
commande