geotiffの中心座標の作成方法

271 views
Skip to first unread message

QGIS初心者

unread,
May 11, 2021, 11:14:42 PM5/11/21
to QGIS初心者質問グループ
お世話になります。
フォルダ内に複数のGeotiffがあり、それらの画像の場所が分かりにくいため、中心座標をポイントレイヤとして出力させたいです。ポイントレイヤでラベルを表示させると、当該Geotiff名称が表示されるようにしたいです。
何か方法はありますでしょうか?
よろしくお願いします。

福岡

unread,
May 14, 2021, 2:32:23 AM5/14/21
to QGIS初心者質問グループ
GIS初心者 様

discordでのお話しをヒントに、簡単なグラフィカルモデラーを作ってみました。
※内容的にはプロセッシングツールの「レイヤツール - レイヤ範囲の抽出」と「ベクタジオメトリ - 重心」を組み合わせただけです。
試してみた結果、使えそうな感じでしたので、投稿いたします。

Windows環境しか知らないのですが

C:\Users\ユーザー名\AppData\Roaming\QGIS\QGIS3\profiles\default\processing\models

に添付ファイルを保存すると、プロセッシングツールボックスの下の方に表示されると思いますので、ダブルクリックで呼び出してお使いください。

ところで、問題は処理するラスタファイルが多い場合だと思っています。この場合はバッチ処理で対処します。
左下にある「バッチプロセスで実行」を押します。

※ラスタファイルをQGISに読み込んでいるものとして、説明します。

ラスタレイヤに関しては「オートフィル」とあるところをクリックして、「レイヤを開くから選択」を選びます。
pic01.png

例の場合、全てが対象のラスタなので「全てを選択」ボタンで選んで「OK」をクリックします。
pic02.png

center列の方は、これと比べるちょっと面倒です。
同じく「オートフィル」とあるところをクリックして、今度は「式による計算」を選びます。

デスクトップに「ortho」というフォルダを作っていますので、ここに新たに作成する重心のファイルを保存させるようにファイル名とパスを書き込みます。
私の試した式は次のようなものです。

'C:\\Users\\ユーザー名\\Desktop\\ortho\\' || left( array_get( @layer_ids , @row_number ),13) || '.gpkg'

ユーザー名は各自それぞれなので、適宜設定してください。
また「13」という数値は、ラスタファイル名がちょうど13文字で一定でしたので、それを抜き出して同名のgeopackageファイルにするためのものです。

次のようにうまく設定されたら、実行ボタンを押して処理します。
pic03.png

バッチ処理についてはQiitaに以前投稿した記事があります。

QGISでのバッチ処理

今回とは別の処理に関するものですが、バッチ処理の手順を理解するのに少しは助けになるかもしれません。
よろしければご覧ください。


Create_Center.zip

mooya

unread,
May 15, 2021, 12:55:58 AM5/15/21
to QGIS初心者質問グループ
福岡さま

 小ネタですが。 
 モデルの追加は深い階層のフォルダを開かなくても、プロセッシングツールボックスの上の3つの歯車のボタンのメニュー ツールボックスにモデルを追加 からできますよ。


2021年5月14日金曜日 15:32:23 UTC+9 福岡:

福岡

unread,
May 15, 2021, 5:16:49 AM5/15/21
to QGIS初心者質問グループ
mooya 様

ご教示ありがとうございます。m(__)m

グラフィカルモデラーを業務で使うことが無いもので利用回数が少なく、ファイルパスで覚えていました。(^_^;アセアセ

2021年5月15日土曜日 13:55:58 UTC+9 mooya:

mooya

unread,
May 15, 2021, 8:42:05 AM5/15/21
to QGIS初心者質問グループ
福岡さま

 こんばんは、実はこのメニューに気づいたのは今日で、取り立てホヤホヤの小ネタです⁄(⁄ ⁄•⁄-⁄•⁄ ⁄)⁄

2021年5月15日土曜日 18:16:49 UTC+9 福岡:

wata909

unread,
May 15, 2021, 11:15:37 PM5/15/21
to QGIS初心者質問グループ
みなさま

別件を探していたら、こんなのを見つけました。
http://adhoc.osgeo.osuosl.org/livedvd/docs/ja/quickstart/gdal_quickstart.html

「gdaltindex によるラスタタイルインデックスの作成」というので、領域を作成することはできそうです。
ただし、ヌル値は無視しないで、四角いものしかできないかもしれません。
また、ファイル名を記述するところですが、オプションでは「絶対パスを保存する」のON、OFFが変えられるとなっていますが、チェックを入れなくても絶対パスが出力に記載されます。
QGISのメニューからだと、「ラスタ→その他→タイルインデックス」になります。
DEMでやってみたところ、以下のような感じになりました。あとは、ジオメトリの中心に変換すれば、できると思います。

別の方法もありますよ、ということで。

2021-05-16 12_10_49-_無題のプロジェクト — QGIS.png

2021年5月15日土曜日 21:42:05 UTC+9 mooya:

QGIS初心者

unread,
May 16, 2021, 8:44:16 PM5/16/21
to QGIS初心者質問グループ
福岡様
グラフィカルモデラーの添付ありがとうございます。
ファイル名をここで取り出す処理が必要なのですね。
参考になりました。

wata909様
この方法を使用して、文字列を抽出するようにすればすっきりしたデータが得られそうです。
ありがとうございました。

2021年5月16日日曜日 12:15:37 UTC+9 wata909:

福岡

unread,
May 17, 2021, 2:27:25 AM5/17/21
to QGIS初心者質問グループ
皆様へ

wata909さんの方法はとても良いと思いました。

試してみた際に、ファイル名だけを属性テーブルに書き出したいと思いましたので、フィールド計算機を使って書き出してみました。
念のため作業に使った式を掲載しますので、作業を行うことがありましたらお役立てください。

replace( regexp_substr( "location", '[^/]*$' ), '.tif', '')

2021年5月17日月曜日 9:44:16 UTC+9 QGIS初心者:
Reply all
Reply to author
Forward
0 new messages