5 votos

¿Existe una calculadora de rasterización con restricciones espaciales en QGIS?

Esta es una pregunta un poco aleatoria, y difícil de encontrar material relevante en línea. Tengo curiosidad por saber si hay una manera de utilizar la funcionalidad de la calculadora de trama en sólo la sección de una trama cubierta por un polígono.

Me gustaría usar esto para actualizar secciones dentro de mi trama con cierta fórmula, pero no toda la superficie como actuaría normalmente la calculadora de trama.

Encontré el plugin 'Serval', que parece ser un paso en la dirección correcta, pero todavía no hace lo que estoy buscando.

0 votos

¿Qué pasa con la caja de herramientas de procesamiento? En primer lugar Clip raster por capa de máscara y Raster cálculo de SAGA o GRASS r.mapcalc. Usted puede crear un modelo o crear un script de python para hacer el proceso repetible.

0 votos

Hola @zoltan, gracias por tus sugerencias. Eso funcionaría, pero crearía un archivo rasterizado separado que habría que superponer al original. ¿Alguna idea de cómo 'sobrescribir' los valores en el raster original con los nuevos valores?

2voto

Mat Puntos 196

Creo que el término es "enmascaramiento".

Podrías intentar un enfoque como este:-

  • utilizar gdal_rasterize para crear una imagen "máscara" (0=fuera del polígono, 1=dentro del polígono)
  • aplicar el filtro a la trama "original" para obtener una trama "procesada
  • utilice la siguiente función en la calculadora de rasterización de QGIS para mezclar los resultados

    (("mask@1"=0) * "original@1") + (("mask@1"=1) * "processed@1")

Esto funciona bajo el supuesto de que "falso" es 0 y "verdadero" es 1 - lo que parece ser el caso en todas las calculadoras de trama que he probado (algunas permiten if / else, otras no). También se podría aplicar una fórmula similar con r.mapcalc , gdal_calc o SAGA Grid Calculus/Raster Calculator pero tendrá que cambiar la sintaxis.

GRASS también dispone de una instalación para producir máscaras, véase r.máscara . Esto parece prometedor, especialmente si no quiere que su análisis considere las celdas fuera del polígono.

2voto

xenny Puntos 670

El propio QGIS suele utilizar otras bibliotecas para manipular los datos, y suele crear nuevos archivos.

Si quieres actualizar un archivo, yo no usaría la calculadora de rasterización sino que utilizaría la función gdal_rasterize. Sin embargo, sólo puede "quemar" un valor (que parece bien en su caso) pero no es capaz de hacer matemáticas complejas.

gdal_rasterize -burn value_to_burn -l your_shapefile your_shapefile.shp your_raster.tif

Aquí arriba quemo el "valor_para_quemar" en "tu_raster.tif" donde existe el polígono. El ráster debe soportar el acceso en modo de actualización, por supuesto. Si quieres algo un poco más complejo, puedes usar un campo de valores (con -a) o puedes usar una cláusula SQL basada en algunos valores de tu banda raster. Si tiene varias bandas, puede utilizar la opción -b.

Ten cuidado, no hay vuelta atrás después de la quema.

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