Gostaria de chamar a função de plug-in de interpolação QGIS (método TIN) (Raster-> Interpolate) no console python.
Não consigo encontrar a função correspondente na API do QGIS ou na lista do algoritmo de processamento. Encontrei o algoritmo de triangulação SAGA, que funciona bem, mas é 5-10 vezes mais lento e a velocidade é importante no meu caso.
Alguma idéia de como executá-lo?
qgis
python
qgis-plugins
pyqgis
Vincent D.
fonte
fonte
from rasterinterpolation import rasterinterpolation
mas não tenho certeza, de qual módulo ligar (ou como ligar).Respostas:
Consegui fornecer uma solução completa na seguinte pergunta:
Como calcular uma varredura de interpolação no console python no QGIS?
Também vou repassar a resposta aqui, devido ao grande interesse que parece atrair:
Responda:
A documentação sobre pyqgis não é muito auto-explicativo, mas eu descobri como chamar corretamente as classes de interpolação associados (
QgsInterpolator
,QgsTINInterpolator
,QgsIDWInterpolator
,QgsGridFileWriter
) a partir de python. Vou descrever cada etapa do script em grandes detalhes:Passo 1:
Importe o núcleo e o módulo de análise e obtenha a camada vetorial desejada para interpolação, selecionando-a com um clique de mouse na guia Camada.
Passo 2:
Prepare as classes de interpolação com os parâmetros necessários. Os parâmetros exatos para a inicialização da estrutura LayerData podem ser encontrados nos documentos da API do QGIS (searchterm: QgsInterpolator).
Observe que eu não uso a coordenada z, obtenho o primeiro campo disponível (índice = 0) como atributo de interpolação e uso POINTS como tipo de entrada.
Etapa 3:
Escolha seu mecanismo de interpolação. Aqui você pode escolher entre o método de interpolação TIN (
QgsTINInterpolator
) e interpolação IDW (QgsIDWInterpolator
). Eu peguei oQgsTINInterpolator
no meu código.Lembre-se de que você deve passar uma lista python
layer_data
para o mecanismo de interpolação! Isso também permite adicionar vários cenários de layer_data.Passo 4:
Configure os parâmetros necessários para a exportação da saída de interpolação (consulte a documentação de
QgsGridFileWriter
). Isso inclui informações semelhantes às da GUI de interpolação (caminho do arquivo, extensão, resolução, número de colunas e linhas).Esteja ciente da extensão do arquivo do seu raster de saída, pois
QgsGridFileWriter
apenas grava ASCII-grids (.asc
). Os dados são gravados no disco chamando owriteFile()
método Após a exportação, você pode adicionar o arquivo de grade como varredura à tela.Script completo para referência:
Lembre-se de que a API do QGIS está atualmente reescrita para a versão 3.0 e as classes de interpolação usadas foram movidas de
qgis.analysis
paraqgis.core
! Isso terá um enorme impacto na funcionalidade desse script, para que ele seja reescrito para a versão 3.0!fonte
Você pode fazer isso se tiver o plug-in Interpolação de varredura instalado usando o Plugin Manager.
Nota: eu realmente não sei o que o código acima faz, exceto o fato de que ele imprimiu um valor. Mas provavelmente ajudaria você a entender o uso.
fonte