ベクタデータのラスタ化について(データファイルは出力されるのに描画されない)

707 views
Skip to first unread message

ななか

unread,
Jun 21, 2020, 2:39:21 PM6/21/20
to QGIS初心者質問グループ
QGISにて,ベクタデータ(シェープデータ)をラスタ化しようと考えています.
実際に,ラスタ>変換>ベクタのラスタ化より,ラスタ化を試みましたが,出力されたファイルは真っ白でした.
出力されたファイルのプロパティを見ると,範囲(座標4点)や幅・高さ,ピクセルの大きさ等は指定した通りの値となっていました.

これまでこちらのグループに同様の質問をされている方がおりましたので,それらの内容から以下の点は確認済みです.
・パス内に日本語がないか→英数字のみにしています
・元データの属性に日本語はないか→英数字のみにしています
・ラスタ化する際に参照するデータ(QGIS内で「焼き込む値の属性(フィールド)[オプション]」と称されているところ)のフィールド型はどうなっているか→属性のリファクタリングを用いてInteger64からIntegerに変更しました
・ラスタ化する際に参照するデータの長さはどうなっているか→属性のリファクタリングを用いて18から9に変更しました
(参照可能なデータは2つありましたが,両者のフィールド型と長さを上記の通り変更しております.なお,どちらを選択した場合であっても,今回の問題は生じます.)
・出力ラスタサイズの単位はどうなっているか→ピクセルとしています
・鉛直・水平方向の解像度はどうなっているか→現在,シェープデータと同領域のラスタデータ(シェープデータとは異なるデータが入っております)を所有しているため,それと同じ解像度にしています(のちに,ラスタ化したシェープデータと,既に所有しているラスタデータをピクセル単位で参照し,比較するため,解像度を揃える必要があります.もちろん両データの領域(座標等)は揃えております).

これらを確認し,シェープデータが正しく描画されている状態でラスタ化を試みても真っ白なラスタデータが出力されました.

いろいろ試してみましたが,解決できず困っております.
なにかアドバイスをいただけたら幸いです.

福岡

unread,
Jun 22, 2020, 1:49:51 AM6/22/20
to QGIS初心者質問グループ
ななか 様

こんにちは
ラスタを自由自在に扱うには中~上級のスキルが必要だと思っていますのでお力になれるかどうかわかりませんが、いくつか確認させてください。

投稿内容を拝見すると、Shapeデータの属性テーブルから指定したフィールドの値を与えたラスタを作成したいということだと思います。
そうすると、見かけよりもデータがどうなっているかが気に掛かります。
プラグインの「Value Tool」をお使いになって、値を確認すると良いかと思います。マウスのカーソル位置の値を確認することができます。

これも値の確認のためなのですが、出力されたラスタのプロパディを確認することも大事だと思います。
「シンポロジ」タブの「最小/最大値設定」の横向きの三角をクリックして展開してください。
そして「精度」を「実際の値(低速)」にして「Apply」ボタンをクリックしてください。
「バンドレンダリング」のところにある「最小」と「最大」の値はどのようになっているでしょうか?
真っ白に見えても全セルが同じ値だとは限りませんので、このようなチェックも必要だと思います。

最後にですが、どのようなShapeファイルなのでしょうか?
ポイント、ライン、ポリゴンといった種類や属性テーブルのデータについてのおおまかなイメージや値幅などもあった方が回答しやすくなると思います。

ななか

unread,
Jun 22, 2020, 10:05:35 AM6/22/20
to QGIS初心者質問グループ
福岡様

早速のお返事ありがとうございます.

Value Toolをインストールし,出力したラスタデータの値を確認したところ,最下部にある座標を示すところには「Coordinate:X座標の値,Y座標の値,out of extent」という表記があり,
カーソルを動かすと,X,Y座標も同様に変化しておりました.
また,パン距離というものも同様に出ております.
TableタブではLayerには「出力ファイル(ラスタデータのファイル名)」,Valueには「out of extent」と書いてあるだけでした.
Graphタブではグラフ内に青い点がひとつあるだけです.
Optionラブでは,Layerに「出力ファイル」,Bandsには「[1]」とありました.

また,精度を実際の値(低速)とした場合の最小・最大値は,1.79769e+308と-1.79769e+308でした.

シェープファイルは,国土地理院が出している道路縁データです.
元データの拡張子はxmlですが,同じく国土地理院が出しているビュアーを使用して,シェープに変換しております.
データは座標3点がセットとなっており,描画すると,名前のままですが,道路の縁を線で描いたようになっております.

福岡

unread,
Jun 22, 2020, 2:51:37 PM6/22/20
to QGIS初心者質問グループ
ななか 様

おはようございます。

今日はこれから現場に出かけて、帰宅も遅くなるため投稿がしばらくできません。
もし、ななかさんからの投稿があって、フォローできる方がいらっしゃいましたら、よろしくお願いいたします。m(__)m

さて、投稿内容を拝見すると道路縁のベクタをラスタに変換して、何らかの解析を行いたいという様に解釈いたしました。
もしそうであれば、次の資料は参考になるように思いました。

カッパ(妖怪)の生息適地マップ作成入門

17~18ページあたりが参考になると思います。
題名やスライド表紙のデザインは怪しさ満点ですが、内容はとても為になります。

ななか

unread,
Jun 23, 2020, 1:30:23 AM6/23/20
to QGIS初心者質問グループ
福岡様

お忙しい中,ご助言いただきありがとうございます.
また,面白そうな資料を教えていただきありがとうございます.
資料を読み,なにか進展がありましたら,ご連絡させていただきます.

ななか

unread,
Jun 23, 2020, 2:55:25 AM6/23/20
to QGIS初心者質問グループ
福岡様

先ほど,いただいた資料を参考にラスタ化を行ったのですが,上手く描画されませんでした.
資料によると,ラスタデータを出力した際,バンドレンダリングより色グラデージョンを黒から白(最小は0,最大は1)とすることで,黒地に白のラインが描画されておりましたが,こちらで作成したラスタデータを見ると,そもそもバンドの値がn/aとなっておりました.
(バンド数はバンド1と2の2つ,両者とも左から0 n/a n/aという値になっておりました)
これは何が原因なのでしょうか・・・

福岡

unread,
Jun 23, 2020, 10:46:30 PM6/23/20
to QGIS初心者質問グループ
ななか 様

基盤地図情報からデータをダウンロードして、QGIS3.10.6で試してみました。

まず、インターフェイスが変わっているようで、コマンドをいじらなくても良いようになっているみたいです。
以下のように設定しました。

入力レイヤ:道路縁のベクタデータ
焼き込む値の属性:設定しません
固定値:1(ここがコマンドで設定したところだと思います)
出力ラスタサイズの単位:地理単位
水平方向の解像度:0.5(道路ですので、細かい値が良いと思います。適宜設定してください)
鉛直方向の解像度:同上
出力領域:「レイヤの領域を使う」で道路縁データを指定します。
出力バンドに指定nodata値を割り当てる:道路以外を「0」にしたい場合、デフォルトの0.00000を削除して「未設定」にします。
高度なパラメータ:「指定値で事前に初期化する」以外はデフォルトのままにします。
指定値で事前に初期化する:「0」
出力ファイル:「一時ファイルへの保存」のままにして、要望どおりの出力だったらレイヤ上で右クリックして「エクスポート 名前を付けて保存」で良いと思います。

以上の設定でお試しください。m(__)m

ななか

unread,
Jun 23, 2020, 11:34:55 PM6/23/20
to QGIS初心者質問グループ
福岡様

データをダウンロードし,検証していただきありがとうございます.
おかげさまで,無事ラスタ化することができました.
これまでは,高度なパラメータ等,いくつかの設定を初期設定のままで行っていたせいか,できていなかったようです.
改めて自身でもしっかり設定内容を確認しようと思います.

最後に,ひとつ質問させていただきたいのですが,座標をもたない画像(写真など)の端4点の座標(単位はメートル)のみが分かっている場合,QGISにてその4点の座標(任意の座標系)を画像に与えることは可能でしょうか.
例えば,空中写真等であれば,いくらかの地物の位置と実際の座標を照らし合わせ,ジオリファレンサにて座標を与えるかと思いますが,端の4点しか分かっていない場合はどうすれば良いでしょうか.
よろしければ,お手すきの際に教えていただけたらと思います.

福岡

unread,
Jun 25, 2020, 4:51:54 AM6/25/20
to QGIS初心者質問グループ
ななか 様

こんにちは
ラスタで4隅の座標値のみがわかっている場合の取り込み方法ですが、すぐに思い浮かぶ方法は2つです。

1つ目は、空中写真と同じようにジオリファレンサーを使う方法です。
4隅にGCPポイントを打って、座標値を手入力します。
変換タイプは、ゆがみが無いものであれば「ヘルマート」、ゆがみがあれば「多項式1」で良いと思います。

2つ目はワールドファイルを作って、ラスタと一緒に読み込ませる方法です。
ワールドファイルはアフィン変換のパラメータを記述したものですので、ゆがみの無い画像しか取り扱えないと思います。
ただ、大量のラスタに対応する場合などに便利かと思います。

手元にあったワールドファイルですが、次のように記述されています。

0.250000
0.000000
0.000000
-0.250000
-33999.875000
50999.875000

1行目はピクセルのX方向の幅
4行目はピクセルのY方向の幅(原点が左上になっている関係でマイナス数値になっています)
5行目は左上ピクセルの中心位置のX座標
6行目は左上ピクセルの中心位置のY座標

回転の無いものであれば、上記の記述を参考にすると比較的簡単に作成できると思います。
回転が有るものは表計算ソフトなどで1~4行目を計算する必要が出てきますので少し面倒だと思いますが、頑張ればできそうな感じです。

英語版のwikipediaに図入りで説明したものがありましたので、リンクを張っておきます。

日本語版のwikipediaです。おおまかなイメージとワールドファイルの拡張子については参考になると思います。

ななか

unread,
Jul 1, 2020, 1:30:42 PM7/1/20
to QGIS初心者質問グループ
福岡様

返信が遅くなってしまい,申し訳ありません.

ワールドファイルというものは初めて知りました.
お送りいただいたwikipediaを参考にもう少し勉強してみようと思います.
恐らくゆがみ/回転等はないと思いますので,そのような場合は福岡様が仰っている通り簡単にできそうな気がしますので,ジオリファレンサでできそうでなければ,2つ目の方法を試してみようと思います.

本題と関係のない質問にまでお答えいただきありがとうございました.
非常に助かりました.

Reply all
Reply to author
Forward
0 new messages