質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
QGIS

QGISは、オープンソースの地理情報システムです。無料でありながら、GISに必要な地理空間情報の作成・編集・可視化・解析といった多くの機能を備えています。さらに、無料のプラグインで機能追加を行うことも可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2123閲覧

【QGIS】pythonコンソール上でsubprocessを用いてGDALコマンドを実行したい

osuzu

総合スコア16

QGIS

QGISは、オープンソースの地理情報システムです。無料でありながら、GISに必要な地理空間情報の作成・編集・可視化・解析といった多くの機能を備えています。さらに、無料のプラグインで機能追加を行うことも可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/02/29 14:59

実現したいこと

QGIS上で「マスクレイヤによる切り抜き」をする際に表示されるgdalのコードをpythonのコードに読み替えて、これをsubprocessを用いてコンソール上で実行したいのですがうまくいきません(実行はされるが何も起きない)

subprocess.call内の表記が悪いと思うのですが、正しい表記をご教示いただけないでしょうか。

該当のソースコード

gdal

1gdalwarp -of GTiff 2     -cutline マスクレイヤのパス 3     -crop_to_cutline 入力レイヤのパス 出力先 4 5#これを以下のpythonコードに読み替え

python

1from osgeo import gdal 2import subprocess 3 4shp = "マスクレイヤのパス" 5ori_tif = "入力レイヤのパス" 6cre_tif = "出力先のパス" 7 8subprocess.call(['gdalwarp','-of GTiff','-cutline'+ shp, '-crop_to_cutline'+ ori_tif,cre_tif])

補足情報(FW/ツールのバージョンなど)

QGIS: ver 3.6.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

gdalwarp使ったことありませんが、一般的なコマンドの使い方として

  • コマンド文字列の間は空白文字で区切る
  • パスに空白を含む場合は"で囲む

ことが必要です。
さらに、何か問題が起きターミナル上で実行した結果と比較したいときに備え、コマンドをひとつの文字列としてshell=Trueで呼び出す方がよいでしょう。
これであればコマンド文字列をコピペするだけでよいです。

Python

1cmd = 'gdalwarp -of GTiff -cutline "マスクレイヤのパス" -crop_to_cutline "入力レイヤのパス" "出力先"' 2subprocess.call(cmd, shell=True)

投稿2020/03/01 00:14

can110

総合スコア38234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

osuzu

2020/03/01 03:01

ありがとうございます。ご教示いただいたコードで無事実行することができました。 ただ、今回のマスクレイヤには複数の地物(切り抜き用の枠)が入っており、上記コードを実行するとすべての地物(枠)でtifをクリップしてしまいます。このうち選択した一つの地物(枠)のみを使ってtifをクリッピングをするコマンドなどはあるのでしょうか。もしご存じでしたらご教示いただけないでしょうか。
can110

2020/03/01 04:11

すみません、GIS自体使ったことないのでちょっと分かりません。
osuzu

2020/03/01 04:41

ご返信ありがとうございます。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問