プラグイン(Qneat3)を使ったポイントからの到達圏(Iso-Area)ポリゴン作成の繰り返し処理

795 views
Skip to first unread message

AkaAkaYA Tsuki

unread,
Apr 7, 2023, 4:17:59 AM4/7/23
to QGIS初心者質問グループ
こんにちは。初心者のモリヤマと申します。

<やりたいこと>
200個の点データからなるベクタレイヤ(point)の、各点からの到達圏(Iso-Area)ポリゴンを個別に作成したいと考えています。

プラグインのQneat3ではポリゴン作成ツールとして、①「Iso-Area as Polygon(from Point)」と②「Iso-Area as Polygon(from Layer)」が用意されていますが、

①は、ポイント入力を手動で行う必要があり(引数 Start Point(x,y) / Coordinate pair / obtain by clicking on map canvas)、200個の点について手動で指定するのは現実的でありません。

②は、入力レイヤ内の全ポイントからの到達圏を合成したポリゴンが作成されてしまい、個別の到達圏ポリゴンを作成したい目的とは異なります。

<聞きたいこと>
①「Iso-Area as Polygon(from Point)」を使って、レイヤ内のポイントデータの座標を自動的に入力する方法(繰り返し処理)についてお伺いしたいです。

<試したこと>
(1)バッチ処理 ⇒ Start Pointの項目をどのように入力すればよいのかが分かりませんでした。「式による計算」で、レイヤ指定>レイヤ内のポイント列挙>各ポイントの座標取得、のようなことができるのでしょうか。

(2)Pythonコンソール ⇒ 引数の指定方法が悪いのかエラーが出て、解決方法が分からず挫折しています。

processing.run('qneat3:isoareaaspolygonsfrompoint', {'Network Layer': nw,
    'Size of Iso-Area': 7000....})
のようにすると、
TypeError: QgsProcessingAlgorithm.run(): argument 1 has unexpected type 'str' 
となる。

<補足>
繰り返し処理により、200のポリゴンレイヤが作成されると思いますが、
最終的には、それぞれのポリゴンの属性で、元のポイントデータのIDと紐づけしつつ、1つのレイヤにマージしたいと考えております。

<環境>
QGIS  3.22.7-Białowieża
Python 3.9.5
OS Windows 10 Version 2009
QNEAT3 1.0.4

yoichi...@gmail.com

unread,
Apr 7, 2023, 7:19:05 AM4/7/23
to QGIS初心者質問グループ
かやまと申します

可能なら QGIS3.28でやってみると プロセッシングのダイアログの左下に 「詳細パラメータ」というボタンがあるので
そこをクリックすると指定したパラメータを Pythonコマンドや qgis_process  コマンドにしてくれる機能が
追加されています。

ダイアログで手動で設定が1件でもできるなら、そこで作成した設定をこの機能でPythonかqgis_processのコマンド
にしてみて実行できることを確認してみるといいと思います。
(JSONは多分バッチ実行用の入力かもしれません)


あとは必要なポイントの座標をテキストではきだして、上記のコマンドかJSONに埋め込んだリストつくって
実行するとか。

ポイントのテキスト出力はいろいろな方法があると思いますがポイントのレイヤでフィールド計算機を使って
ジオメトリのXとYの座標をカラムに吐き出したものを作成するとかして、それをレイヤのエキスポート機能で
CSVに出力する。

出力したCSVファイルを1行づつ読んで上記でつくったコマンドテキストに埋め込むとか(Pythonで書くか
Excelとかでなんとかするか)。このとき出力先も指定も全部別ファイルにするならそういう指定をするとか。

Windows版だとqgis_process  というのが多分メニューにある OSGeo4w shell というところで利用できます。
batファイルというやつを作って、そこに上記の qgis_process コマンドというやつをたくさん書いてバッチ処理することもできます。

あたりでできるかもしれません。



スクリーンショット 2023-04-07 200232.png


2023年4月7日金曜日 17:17:59 UTC+9 akaaka...@gmail.com:

AkaAkaYA Tsuki

unread,
Apr 19, 2023, 10:50:38 PM4/19/23
to QGIS初心者質問グループ
かやまさま

QGIS 3.28で、コマンドとしてコピーができるのですね!知りませんでした、、素晴らしい機能追加ですね!

「Pythonコマンドとしてコピー」で、コンソールを通じてプラグインが機能しましたので、
ポイントデータを引数の形式に合わせてリストに出力( x座標、y座標、EPSG)し、
コピーされたコマンドを一部書き変えて、繰り返し処理することができました。

解決策をご教示いただき誠にありがとうございました。

2023年4月7日金曜日 20:19:05 UTC+9 yoichi...@gmail.com:
Reply all
Reply to author
Forward
0 new messages