Corto:
quiero cambiar la resolución de un ráster y suavizar la rampa gris como se muestra en las imágenes a continuación. La preferencia es usar GDAL, PIL o Numpy.
Descripción:
estoy formando puntos en rásteres con una resolución de salida de 20 metros con la Biblioteca geoestadística de alto rendimiento . No quiero cambiar la resolución de salida porque el tiempo de interpolación aumenta exponencialmente.
Con esta resolución, la imagen de salida es fea (pixelada y con alias). No sé si es conceptualmente correcto, pero quiero que la imagen sea más suave como en el siguiente ejemplo. Es algo así como 'reinterpolar' la imagen en una mejor resolución. Estoy usando Python, así que mis preferencias son GDAL, Python Imaging Library o Numpy. La respuesta podría ser teórica, como señalar el nombre del algoritmo o el concepto de este tipo de operación.
Fuente:
Destino:
EDITAR resultados con spline cúbico gdalwarp:
Respuestas:
1) El camino difícil: con un poco de codificación es (relativamente) fácil implementar la interpolación bilineal para lograr un muestreo decente.
2) La manera fácil: use GDAL como se explica en esta publicación anterior de GISSE , pero a la inversa (disminuyendo el tamaño de píxel).
fuente
Use GDALReprojectImage , que se expone en Python:
Para una interpolación suave, use métodos bilineales o cúbicos. Esta función es incómoda, ya que no toma argumentos de palabras clave, por lo tanto, necesita encontrar la posición:
Probablemente, la parte difícil es la configuración
dst_ds
, que necesita tener una geotransformada similarsrc_ds
, pero con tamaños de celda modificados.fuente
GRA_CubicSpline
(intente esto primero) vs.GRA_Cubic
(convolución).Para suavizar las variaciones, necesita un filtro de paso bajo. Podrías escribir el tuyo usando GDAL, o hay uno usando GRASS. No lo he probado, pero aquí hay una guía http://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31
Es posible que desee muestrear su ráster primero antes de aplicar el filtro de paso bajo para obtener una mejor resolución de salida.
fuente
puede usar un filtro de rango / mediana con radio = 5, es decir, tamaño de núcleo = 11, (para cada canal rgb).
fuente