3 votos

Código abierto, opción Python para la herramienta Con de Arcpy?

Me pregunto si existe un método para realizar una función similar a la herramienta Con de Arc, utilizando opciones de código abierto en python. Tengo dos rásters, uno que muestra ubicaciones de nubes y el otro es sólo una banda landsat. Si un valor es >x en el raster de nubes, quiero tomar el pixel de la banda landsat, y si es

2voto

Steve Puntos 11

Con es un cálculo raster condicional, por lo tanto podría hacerse como una serie de pasos o directamente con una calculadora raster/funciones que soporten condicionales. Hay varias opciones ya cubiertas en otras preguntas aquí en SE. Esto puede ser en realidad un duplicado de uno, pero voy a enlazarlos ya que usted está pidiendo cualquier opción de código abierto basado en python y estos son específico a QGIS, SAGA y R:

Como se menciona en algunas de esas respuestas, QGIS con el RasterCalc plugin ( no la calculadora de trama por defecto) admite sentencias condicionales.

1voto

xenny Puntos 670

Además de QGIS, también puede utilizar OTB que implementa la muParser y pueden envolverse en Python. Es muy eficiente.

#!/usr/bin/python 

# Import the otb applications package 
import otbApplication 

# The following line creates an instance of the BandMath application 
BandMath = otbApplication.Registry.CreateApplication("BandMath") 

# The following lines set all the application parameters: 
BandMath.SetParameterStringList("il", ['cloud_r.tif', 'landsat_nir.tif']) 

BandMath.SetParameterString("out", "apTvUtBandMathOutput.tif") 

BandMath.SetParameterString("exp", "(im1b1>1)?(im2b1):(0)") 

# The following line execute the application 
BandMath.ExecuteAndWriteOutput()

Otra alternativa es gdal_calc.py que puede utilizarse como aquí (se puede lanzar con subprocess.call() desde Python )

gdal_calc.py -A cloud.tif -B landsat_NIR.tif --outfile=out_NIR.tif --calc="B*(A>1)" 

nota: Asumo aquí que tu "x" es 1 , pero puedes cambiar el valor

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