GRASSおよびSAGAモジュールをPythonスクリプトにインポートする


13

私はこれが初めてです。私はqgis用のPythonプラグインを「ビルド」しています。GRASSとSAGAからモジュールをインポートしたいのですが、その方法がわかりません。インポートするプラグインは、SAGAからのクリギング補間、GRASSからのv.surf.idw、またはRaster qgisからの補間プラグインです。グリッド内のポイントを変換する補間方法が必要です。

手伝って頂けますか?


もう一つ疑問があります。

私のコードで次の行を実行します。

vectorlayer_vector =  ftools_utils.getVectorLayerByName(inputLayer)
Elevation = self.lineAttrib.currentText()
cellSize = int(self.linePix.value())
outPath = self.inputLayerCombo3.text()
output = ftools_utils.getRasterLayerByName(outPath) 

Processing.runAlgorithm("saga:shapestogrid", vectorlayer_vector, Elevation, 0, 0, 4, None, cellSize, output)

実行すると、tiffイメージが得られますが、何もありません。.auxファイルは作成されず、作成したTIFFイメージを開こうとすると、次のメッセージが表示されます。

c:... teste3.tifはサポートされているラスターデータソースではありません

したがって、出力が間違っていると思います。正しい出力を得るために何をしなければなりませんか?私は何が欠けていますか?

回答:


15

QGISの処理フレームワークは、これらの関数をPythonから直接呼び出すことができます。

QGIS Pythonコンソールから:

>>>import processing
>>>outputs_0=Processing.runalg("saga:ordinarykriging", vectorlayer_pointtable, z, True, 0, 0, True, 100, True, 0.0, 10.0, 100.0, 1.0, 0.1, 1, 0.5, 1000.0, 4, 20, 1.0, True, None, None, None)
>>>outputs_1=Processing.runalg("grass:r.surf.idw", outputs_0['GRID'], 12, True, None, 0.0, None)

Processing Frameworkでモデルとして構築する場合、そのモデルをPythonスクリプトとして保存できます。runalg関数を処理するための一種のGUIビルダーを提供します。

処理モデル

ここに画像の説明を入力してください


あなたの答えはとても役に立ちました。ありがとう。それで、sextanteモデルからPythonスクリプトを作成する場合、プラグインにそのコードを組み込むことができますか?
バルバラドゥアルテ

はい、コードもプラグインで実行されます。
ヤコブ

コードを実行すると、「AttributeError:class Processing has no attribute 'runalg'」というメッセージが表示されます。どうして?処理をインポートします。
バルバラドゥアルテ

私の質問に対する答えを知っています。私のQGISバージョンでは、runalgの代わりに関数runAlgorithmを使用しています。これで問題なく動作します。ありがとうございました。
バルバラドゥアルテ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.