Estoy tratando de escribir una secuencia de comandos de procesamiento utilizando el r.neighbors
algoritmo de hierba para rásteres. Cuando usa la Gui para este algoritmo, puede dejar el campo de extensión de capa de GRASS en blanco para usar la extensión mínima. Por el contrario, cuando se usa en la consola de Python, no puedo encontrar cómo ingresar este tipo de valor "predeterminado".
Vi en https://docs.qgis.org/2.2/en/docs/user_manual/processing/console.html que parece ser obligatorio ingresar las cuatro coordenadas para un parámetro de extensión. Intenté usarlo, iface.mapCanvas().extent()
pero el objeto devuelto no se acepta como parámetro y no puedo encontrar cómo obtener sus coordenadas.
¿Hay alguna forma de obtener la xmin, ymin, xmax, ymax
capa en PyQGIS para ingresarlos en el algoritmo? ¿Lo estoy haciendo totalmente mal?
extent
, por lo que no estaba funcionando ... .Respuestas:
La respuesta está casi completamente contenida en una publicación que escribí recientemente.
La extensión se devuelve como un objeto QgsRectangle () con el siguiente código:
Para obtener las coordenadas de los vértices de la capa actual, puede ejecutar este código:
Finalmente, puede ejecutar el siguiente código para usar el
r.neighbors
módulo desde la Consola Python:fuente
estabas en el camino correcto, solo necesitas ir un paso más allá. Consulte la documentación de QGIS para QgsRectangle
Básicamente, haces:
obtener la capa actual
obtener la extensión que es un objeto QgsRectangle
y allí extrae los valores con:
fuente