Cortar (clip) un ráster por máscara (vectorial tipo polígono) es otra de las opciones también disponibles en processing a través del método gdalogr:cliprasterbymasklayer. Sin embargo, no produce una capa perfectamente alineada con el ráster base; algo que posteriormente habría que solucionar en el parámetro 'EXTRA'.
Los parámetros a ser usados se encuentran a continuación:
y la situación a considerar es la siguiente:
El código completo desarrollado corresponde a:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import processing mask = processing.getObjectFromName('polygon2') input = processing.getObjectFromName('utah_demUTM2') path = processing.runalg('gdalogr:cliprasterbymasklayer', input, #INPUT <ParameterRaster> mask, #MASK <ParameterVector> "0", #NO_DATA <ParameterString> False, #ALPHA_BAND <ParameterBoolean> True, #CROP_TO_CUTLINE <ParameterBoolean> True, #KEEP_RESOLUTION <ParameterBoolean> 5, #RTYPE <ParameterSelection> 0, #COMPRESS <ParameterSelection> 1, #JPEGCOMPRESSION <ParameterNumber> 1, #ZLEVEL <ParameterNumber> 1, #PREDICTOR <ParameterNumber> False, #TILED <ParameterBoolean> 0, #BIGTIFF <ParameterSelection> False, #TFW <ParameterBoolean> "", #EXTRA <ParameterString> None) #OUTPUT <OutputRaster> clipped = QgsRasterLayer(path['OUTPUT'], 'clipped') QgsMapLayerRegistry.instance().addMapLayer(clipped) |
Después de ejecutado en la Python Console de QGIS, un Zoom al ráster resultante permite tener lo siguiente:
Se corroboró que el ráster producido no está alineado con el ráster base. Esto se puede solucionar con:
1 | -te xmin ymin xmax ymax
|
colocado como string en el parámetro 'EXTRA'. Sin embargo, esto requiere código adicional para determinar precisamente los valores de (xmin, ymin) y (xmax, ymax).
No hay comentarios:
Publicar un comentario