QGISモデラーを使用して処理結果をファイルに保存しますか?


9

モデルから、処理結果をファイルに保存したい。私のモデルには、Extract by location妥当な結果を生成するいくつかのアルゴリズム(2つのベクトル入力を使用)がありますが、一時的なレイヤーとしてのみSave as...であり、手動で行う必要があるため、山積みの解析では面倒で時間がかかります。

最善の方法は、モデルへのパスを渡し、結果をシェープファイルとして(最初のステップで)保存することです。

こちらがモデルです。出力ベクター(ファイル)は処理結果に接続できないことに注意してください。

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

スクリーンショットa)でわかるように、Save selected featuresアルゴリズムb)でも、最終結果の名前を渡すことはできますが、ファイルを渡すことはできません。

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

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

私はこれをpythonスクリプトで実現する方法を漠然と考えていますが、これは既存のツールの組み合わせで行うことができますか?

回答:


6

モデルにパスを渡してシェープファイルを手動で保存する代わりにに保存したい場合は、おそらくカスタムスクリプトが適しています。場所による抽出ツールを実行して出力のパスを定義するスクリプトを記述できます。このような何か:

##Extract_by_location=name
##Layer=vector
##Additional_layer=vector

layer = processing.getObject(Layer)
output_path = "C:/Users/You/Desktop/" + layer.name() + ".shp"

processing.runalg("qgis:extractbylocation", Layer, Additional_layer, u'contains', 0.00, output_path)

モデル内のロケーションによる抽出ツールをこのスクリプトに置き換えます。これにより、指定したパスのシェイプファイルに結果が保存されます。


5

QGISモデラーは、特に明記されていない限り、ツールを中間出力として扱い、出力を保存しません。

モデルに結果をエクスポートさせるには、ツールの行にレイヤー出力名を入力する必要があります。

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

上記の結果をレイヤーとしてエクスポートする場合は、次のように出力に値を入力します。 ここに画像の説明を入力してください

これにより、出力ファイルを設定できるツールを実行したときにダイアログボックスが追加されます。

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

モデル自体は、データのタイプを色で示します。入力は紫、出力はシアン


1
これは確かに本当ですが、出力ベクターを一時ファイルとして残し、rightclick > Save As...それぞれに対して行うのと同じ努力です。
Jochen Schwarze
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.