Estou tentando escrever um script de processamento usando o r.neighbors
algoritmo de grama para rasters. Ao usar o Gui para esse algoritmo, você pode deixar o campo de extensão da camada GRASS em branco para usar a extensão mínima. Pelo contrário, quando usado no console python, não consigo encontrar como inserir esse tipo de valor "padrão".
Vi em https://docs.qgis.org/2.2/en/docs/user_manual/processing/console.html que parece ser obrigatório inserir as quatro coordenadas para um parâmetro de extensão. Eu tentei usar, iface.mapCanvas().extent()
mas o objeto retornado não é aceito como parâmetro e não consigo encontrar como obter suas coordenadas.
Existe uma maneira de obter a xmin, ymin, xmax, ymax
camada do PyQGIS para inseri-los no algoritmo? Estou fazendo isso totalmente errado?
fonte
extent
estão faltando, portanto não estava funcionando .. .Respostas:
A resposta está quase completamente contida em um post que escrevi recentemente.
A extensão é retornada como um objeto QgsRectangle () com o seguinte código:
Para obter as coordenadas dos vértices da camada atual, você pode executar este código:
Por fim, você pode executar o código a seguir para usar o
r.neighbors
módulo no Python Console:fonte
você estava no caminho certo, basta dar um passo adiante. Consulte a documentação do QGIS para QgsRectangle
Basicamente, você faz:
obter a camada atual
obter a extensão que é um objeto QgsRectangle
e extrair os valores com:
fonte