Tengo dos juegos de glib2 de datos de diferentes fuentes en las que me gustaría proceso juntos.
Cada imagen tiene una proyección diferentes y resolución (no sé si la resolución es la palabra correcta aquí.)
por ejemplo, aquí están mis dos imágenes:
y
estas dos imágenes generadas por el análisis de la glib2 de datos y la escritura de la salida a geotiff. Aquí está mi código:
data = gdal.Open(file)
driver = gdal.GetDriverByName('GTiff')
image = driver.Create(output_file, sizex, sizey, 4, gdal.GDT_Byte)
image.SetGeoTransform(data.GetGeoTransform())
image.SetProjection(data.GetProjection())
band = data.GetRasterBand(1).ReadAsArray()
shape = numpy.shape(band)
r = image.GetRasterBand(1)
g = image.GetRasterBand(2)
b = image.GetRasterBand(3)
a = image.GetRasterBand(4)
aarray = a.ReadAsArray()
#.. scale arrays
r.WriteArray(band)
r.FlushCache()
g.WriteArray(band)
g.FlushCache()
b.WriteArray(band)
b.FlushCache()
a.WriteArray(aarray)
a.FlushCache()
image = None
He tratado de analizar en ambos conjuntos de glib2 de datos y, a continuación, en el punto donde estoy ajuste de la proyección y geotransform yo uso el otro conjunto de transformaciones de los datos.
Como este:
data_1 = gdal.Open(file_1)
data_2 = gdal.Open(file_2)
image.SetGeoTransform(data_2.GetGeoTransform())
image.SetProjection(data_2.GetProjection())
band = data_1.GetRasterBand(1).ReadAsArray()
Así que los datos que utiliza es diferente de la transformación y de proyección utilizado.
Cuando hago esto, no hace ninguna diferencia visible. Parece que el cambio en la transformación y proyección no tienen ningún impacto.
Sé que estoy muy lejos de la base aquí, porque yo creo que es necesario utilizar la misma transformación y proyección de datos como puedo hacer que los datos reales, pero no sé cómo transformar la imagen a otra proyección.
¿Cómo puedo hacer esto?