1 votos

La fusión de Rasterio salió mal

Intento fusionar algunos archivos raster multibanda (datos de Sentinel 2) con Rasterio en un único archivo raster, pero el resultado es incorrecto. Los archivos son demasiado grandes para caber completamente en mi RAM, pero tengo suficiente SWAP y no obtengo un Mensaje de Error. ¿Alguna idea de lo que podría haber ido mal?

Mi código:

import rasterio
from rasterio.merge import merge
import glob

files = glob.glob("../data_multiband/*.tif")
mosaic = []
for file in files:
    tmp = rasterio.open(file)
    mosaic.append(tmp)
mosaic, out_trans = merge(mosaic)
out_meta = tmp.meta.copy()
out_meta.update({"driver": "GTiff",
                 "height": mosaic.shape[1],
                 "width": mosaic.shape[2],
                 "transform": out_trans})
with rasterio.open("../data_merged/test.tif", "w", **out_meta) as dest:
    dest.write(mosaic)

Este es el resultado:

enter image description here

Como puede ver (marcas rojas), algunos archivos raster aparecen dos veces. Los de la izquierda son erróneos. Así es como se ven los archivos originales:

enter image description here

0voto

Maziar Moaddel Puntos 26

He resuelto el problema. Los archivos tienen el mismo crs, pero están en zonas diferentes. Reproyectando lo solucioné

0voto

Antti Sykäri Puntos 10381

Puede utilizar gdalwarp (o gdal.Warp si utiliza Python) para ello. Esto le permitirá fusionar y reproyectar de una sola vez. A menudo una buena idea para establecer la resolución x / y cuando reproyección en caso de GDAL termina dando algo así como 9,34 m en lugar de 10 m

gdalwarp  -t_srs "EPSG:XXXX" -tr X Y in1.tif in2.tif out.tif

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X