Estou tentando converter posições em um raster que representa um .tif para as coordenadas globais correspondentes. Convertendo todo o array para um tif e carregá-lo para QGIS tudo é referenciado corretamente, mas usando o método de cálculo abaixo para pontos únicos, há um ligeiro deslocamento (para leste-nordeste nas coordenadas resultantes ....
raster.tif usa ETRS 89 UTM Zona 32N
Alguém tem uma ideia?
from osgeo import ogr, gdal, osr
import numpy as np
raster = gdal.Open("rasters/raster.tif")
raster_array = np.array(raster.ReadAsArray())
def pixel2coord(x, y):
xoff, a, b, yoff, d, e = raster.GetGeoTransform()
xp = a * x + b * y + xoff
yp = d * x + e * y + yoff
return(xp, yp)
print(pixel2cood(500,598))
Acho que o problema pode ser que xoff e yoff contêm coordenadas do canto superior esquerdo do pixel superior esquerdo, e você precisa calcular as coordenadas do centro do pixel.
def pixel2coord(x, y):
xoff, a, b, yoff, d, e = raster.GetGeoTransform()
xp = a * x + b * y + a * 0.5 + b * 0.5 + xoff
yp = d * x + e * y + d * 0.5 + e * 0.5 + yoff
return(xp, yp)
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras