ラベル ワールドファイル の投稿を表示しています。 すべての投稿を表示
ラベル ワールドファイル の投稿を表示しています。 すべての投稿を表示

2026年11月7日土曜日

技術メモ QGISワールドファイルによる画像貼りつけ

 Technical Note: Importing Images into QGIS Using World Files


I imported 16 systematically arranged images into QGIS (EPSG:6677) using world files. The world files were generated via Python. This Python-based approach is inherently more accurate than standard georeferencing, as it eliminates the need for the manual, analog process of plotting points at the four corners of each image. Furthermore, utilizing Python has significantly improved the efficiency of the workflow.


体系的に配置された画像16枚をQGIS(EPSG6677)にワールドファイルを使って貼りつけました。ワールドファイル作成はPythonによりました。Pythonによる方法は、四隅に点を手作業で打つというアナログ作業がないので、ジオリファレンスと比べて原理的に高精度です。Pythonを使うことにより高効率的に作業が進みだしました。

1 画像配置の体系


分析区と作業単位

55分析区の16作業単位の画像をワールドファイルによりQGISに貼りつけう作業を行いました。


55分析区の16枚画像とEPSG6677上の配置イメージ

QGISEPSG6677で、画像1枚は25㎝×25㎝の大きさです。


16枚の画像

2 Pythonによるワールドファイル作成


ワールドファイル(.pgw)に記述する情報

ワールドファイル(.pgw)には次の6項目を数値で記述する必要があります。

1 横方向の1ピクセルの実寸

2 回転成分

3 回転成分

4 縦方向の1ピクセルの実寸(負の値)

5 左上ピクセルの中心の東方向座標

6 左上ピクセルの中心の北方向座標

この6項目を画像毎に作成するPythonスクリプトを作成しました。

Pythonスクリプトを画像があるフォルダーに置いて、そのフォルダーでそのPythonスクリプトを走らせて6項目の.pgwファイルを作成します。

Pythonスクリプトには16画像を配置した時の左上の座標Y:2.0、X:5.0を記入することにより、全ての画像の東方向座標、北方向座標が計算できるロジックを組み込んであります。

また、Pythonスクリプトには当該画像のピクセル単位の大きさを取得するロジックを組み込んであります。

さらに、これら2つのロジックからつぎの数値を計算するロジックをくみこんであり、それを書き出します。

1 横方向の1ピクセルの実寸

4 縦方向の1ピクセルの実寸(負の値)

5 左上ピクセルの中心の東方向座標

6 左上ピクセルの中心の北方向座標

このPythonスクリプトにより、16枚画像のピクセル単位大きさは極小さい数値で変動しますが、その誤差を吸収することができます。

このPythonスクリプトは55分析区専用ですが、別の分析区で使う場合は記述における2つの座標値を変更するだけで済みます。

3 画像ファイル貼りつけ手順


55分析区画像フォルダーの様子

実際のQGISへの画像貼りつけはつぎの手順でおこないました。

1) フォルダーにPythonスクリプトと画像16枚を配置

2) このフォルダーでPythonスクリプトを走らせる。

3) 16のワールドファイルと座標一覧csvファイルが生成する。


座標一覧csvファイル

座標一覧csvファイルはPythonスクリプトが正しく動作したか、確認するためのものです。

4) 画像16枚をQGIS画面(EPSG6677)へdrag and dropする。

5) 画像16枚がQGIS画面に正確に貼り付く


画像16枚がQGIS画面に正確に貼り付いた様子

画像と同じフォルダーに同名のワールドファイルがあるので、そのワールドファイル情報に従って、正確に貼り付きます。

6) フォルダーにQGISによるXMLファイルが生成する。

4 メモ

・これまで手作業でPhotoshopによる画像切り抜き・画質調整、ジオリファレンス手作業によるQGISへの画像プロットを実施してきました。しかし、2つのPythonスクリプトによりこれら手作業を自動化することが出来ました。ファブリック分析作業の効率が大幅に向上するステップを1段のぼることができました。

・類似の1枚もの画像貼りつけにおけるQGISジオリファレンス作業をワールドファイル利用に置き換えるPythonスクリプト作成にもチャレンジすることにします。(QGISジオリファレンス手作業における点打ちのアナログ不正確さを回避したいです。)