Estoy teniendo muchos problemas con GDAL. Además de la falta de documentación, parece haber poco soporte en Python. De todos modos, esto es solo un script de reproyección por lotes que va así:
source_file = gdal.Open(filepath.encode("ascii"))
source_wkt = source_file.GetProjectionRef()
source_srs = osr.SpatialReference()
source_srs.ImportFromWkt(source_wkt)
reproj_file = gdal.AutoCreateWarpedVRT(source_file, source_wkt, dest_wkt)
gdal.ReprojectImage(source_file, reproj_file, source_wkt, dest_wkt)
reproj_attributes = reproj_file.GetGeoTransform()
driver = gdal.GetDriverByName("GTiff")
dest_file = driver.CreateCopy(outputpath.encode("ascii"), reproj_file, 0)
La parte dest_srs y des_wkt no están definidas en este fragmento de código, pero está en algún lugar fuera del bucle (ya que solo necesita definirse una vez). Parece que funciona una vez, puedo obtener un aspecto bonito de él, luego darme un 'ERROR 6 WriteBlock () no compatible' y Python se bloquea. Todos son GeoTIFF creados de la misma manera con los mismos datos básicos (solo en diferentes momentos).
También debido a la naturaleza de la reproyección (de GCS a PCS), el AutoCreateWarpedVRT tiende a crear mucho espacio en blanco, pero le da un valor de 0, que es un problema ya que podría ser un valor de datos real. ¿Hay alguna forma de establecer el valor de nodata en -99 en su lugar?
gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' raw_spot.tif utm11.tif
. Ha existido desde hace mucho tiempo, tiene muchas funciones, está bien probado y probablemente sea más rápido que un enfoque de Python puro.