8.4. Lesson: 補足実習
このレッスンでは、QGISでの完全なGIS解析を通して案内します。
注釈
このレッスンは、Linfiniti Consulting(南アフリカ)とSiddique Motala(ケープペニンシュラ工科大学)によって開発されました
8.4.1. 問題文
あなたは、ケープ半島とその周辺で、珍しいフィンボス植物種に適した生息地を見つけるという任務を負っています。調査範囲は、北のメルクボスストラントと南のストランドの間のケープタウンとケープ半島をカバーしています。植物学者は、問題の種が好む次の条件を提供しました:
東向きの斜面で育ちます
15%から60%の勾配の斜面で育ちます
年間降水量 > 1000 mmの地域で育ちます
人里から250m以上離れた場所でのみ発見されます
発生する植生の区域は面積で6000㎡以上
大学の学生として、あなたは土地の4つの異なる適地でその植物を探すことに同意しました。あなたは、住んでいるケープタウン大学に最も近い区域の中からこの4つの適地を選びたいと思います。 GISスキルを使って、どこを見に行くべきかを判断してください。
8.4.2. 解決策の概要
この演習のデータは、 exercise_data/more_analysis
フォルダにあります。
ケープタウン大学に最も近い4つの適地を見つけます。
解決策は次
DEMラスタレイヤを解析して、東向きの斜面と正しい勾配の斜面を見つけます
降雨ラスタレイヤを解析して、正しい降雨量のエリアを見つけます
ゾーニングベクタレイヤを解析して、人里から離れた適切な大きさの区域を見つけます
8.4.3. Follow Along: 地図を設定する
画面の右下隅にある 現在のCRS ボタンをクリックします。表示されるダイアログの CRS タブで、[フィルター]ツールを使用して「33S」を検索します。エントリ WGS 84 / UTMゾーン33S (EPSGコード
32733
)を選択します。OK をクリックします
プロジェクトを保存 ツールバーボタンをクリックするか、 メニュー項目を使い、プロジェクトファイルを保存します。
これを
Rasterprac
という新しいディレクトリに保存します。これは、コンピュータのどこかに作る必要があります。作成したレイヤもこのディレクトリに保存します。プロジェクトをyour_name_fynbos.qgs
として保存します。
8.4.4. 地図へデータを読み込む
データを処理するためには、必要なレイヤ(街路名、ゾーン、雨量、DEM、地区)をマップキャンバスに読み込む必要があります。
ベクタについては...
データソースマネージャツールバー の データソースマネージャーを開く ボタンをクリックし、表示されるダイアログの ベクタ タブを選ぶか、または メニュー項目を使用します
... ボタンをクリックして、ベクタデータセットをブラウズします
表示されたダイアログで、
exercise_data/more_analysis/Streets
ディレクトリを開いてくださいファイル
Street_Names_UTM33S.shp
を選択します開く をクリックします。
ダイアログが閉じ、元のダイアログが表示されます。その際、 ベクタデータセット の隣のテキストフィールドにファイルパスが指定されています。これにより、正しいファイルが選択されていることを確認することができます。また、このフィールドにファイルパスを手動で入力することもできます。
追加 をクリックします。ベクタレイヤがマップに読み込まれます。色は自動的に割り当てられます。色は後で変更します。
レイヤの名前を
Streets
に変更しますレイヤ パネル(デフォルトでは、画面の左側に沿ったペイン)で、そのアイコンを右クリックします
表示されたダイアログで レイヤの名前を変更 をクリックして名前を変更し、完了したら Enter キーを押してください
ベクタの追加を繰り返しますが、今回は
Zoning
ディレクトリにあるGeneralised_Zoning_Dissolve_UTM33S.shp
ファイルを選びます。その名前を
Zoning
に変更します。ベクタレイヤ
admin_boundaries/Western_Cape_UTM33S.shp
も地図に読み込みます。その名前を
Districts
に変更します。
ラスタについては...
8.4.5. レイヤ順序を変更する
レイヤ パネルでレイヤをクリック、上下にドラッグして、地図上に表示される順序を変え、できるだけ多くのレイヤが見えるようにします。
これですべてのデータが読み込まれ、正しく表示されるようになったので、解析を開始することができます。最初にクリッピング操作を行うとよいでしょう。これは、どうせ使わない部分の値を計算するために処理能力を浪費しないためです。
8.4.6. 正しい地区の検索
前述の調査区域の関係で、地区を以下のものに限定する必要があります:
Bellville
Cape
Goodwood
Kuils River
Mitchells Plain
Simon Town
Wynberg
レイヤ パネルで
Districts
レイヤを右クリックします。表示されたメニューから、 フィルタ... メニュー項目を選択します。クエリビルダ ダイアログが表示されます。
ここで、候補となる地区のみを選択するクエリを作成します:
属性 リストで
NAME_2
フィールドをダブルクリックして、下の プロバイダ特有のフィルタ式 テキストフィールドに表示させますIN ボタンをクリックすると、SQLクエリに追加されます
始め丸括弧を入力します
(現在は空の) 値 リストの下にある すべて ボタンをクリックします。
少しすると、選択されたフィールド(
NAME_2
)の値で 値 リストが構成されます。値 リストの中の値
Bellville
をダブルクリックして、SQLクエリに追加します。コンマを追加し、
Cape
地区を追加するためにダブルクリックします残りの地区についても、前のステップを繰り返してください
括弧を閉じます
最終的なクエリは次のようになります(括弧内の地区の順序は重要ではありません):
"NAME_2" in ('Bellville', 'Cape', 'Goodwood', 'Kuils River', 'Mitchells Plain', 'Simon Town', 'Wynberg')
注釈
また、
OR
演算子も使うことができます。クエリは次のようになります:"NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR "NAME_2" = 'Goodwood' OR "NAME_2" = 'Kuils River' OR "NAME_2" = 'Mitchells Plain' OR "NAME_2" = 'Simon Town' OR "NAME_2" = 'Wynberg'
OK を二回クリックします。
地図に表示される地区は、上記のリストに記載されているものに限定されるようになりました。
8.4.7. ラスタのクリップ
関心領域を手に入れたので、この区域へラスタを切り抜くことができます。
メニュー
を選択して、クリッピングダイアログを表示させます入力レイヤ ドロップダウンリストで、
DEM
レイヤを選びますマスクレイヤ ドロップダウンリストから、
Districts
レイヤを選びますスクロールダウンして、 出力ファイル テキストフィールドに出力先を指定します。 ... ボタンをクリックして ファイルに保存... を選びます
Rasterprac
ディレクトリに移動しますファイル名に
DEM_clipped.tif
を入力します保存します
実行 をクリックします
クリッピング操作が完了したら、クリッピング領域を再利用するために マスクレイヤで切り抜く ダイアログを開いたままにします
入力レイヤ ドロップダウンリストから
Rainfall
ラスタレイヤを選択し、Rainfall_clipped.tif
という名前で出力を保存します他のオプションは変更しないでください。すべてそのままにして、実行 をクリックします。
2回目のクリッピング操作が完了したら、 マスクレイヤで切り抜く ダイアログを閉じます
地図を保存します
ラスタを揃える
解析のためには、ラスタが同じCRSを持ち、位置が揃っていることが必要です。
まず、雨量データの解像度を30m(ピクセルサイズ)に変更します:
レイヤ パネルで、
Rainfall_clipped
がアクティブレイヤであることを確認します(つまり、クリックされることでハイライトされます)再投影(warp) ダイアログを開きます
メニューをクリックし、リサンプリング法 で、ドロップダウンメニューから バイリニア(bilinear) を選択します
変換先CSRの単位での解像度 を
30
に設定します再投影したラスタファイル までスクロールし、出力を
rainfall/reprojected
ディレクトリにRainfall30.tif
という名前で保存します。
それではDEMを位置合わせします:
レイヤ パネルで、
DEM_clipped
をアクティブレイヤにします(つまり、クリックしてハイライトさせます)再投影(warp) ダイアログを開きます
メニューをクリックし、ラスタのCRS の下にあるドロップダウンメニューから プロジェクトCRS: EPSG:32733 - WGS 84 / UTM zone 33S を選択します
リサンプリング法 で、ドロップダウンメニューから バイリニア(bilinear) を選択します
変換先CSRの単位での解像度 を
30
に設定します出力ファイルの矩形範囲 までスクロールダウンします。テキストボックスの右側のボタンを使って、 を選択します。
Reprojected までスクロールして、出力を
DEM/reprojected
ディレクトリにDEM30.tif
という名前で保存します。
何が起こっているのかを適切に確認するために、レイヤーのためのシンボルを変更する必要があります。
8.4.8. ベクタレイヤのシンボロジを変更する
レイヤ パネルで、 Streets レイヤを右クリックします
表示されるメニューから プロパティ を選びます
表示されたダイアログで シンボロジ タブに切り替えます
トップウィジェットの Fill エントリをクリックします
下のリストから記号を選択するか、新しい記号を設定します(色、透明度、...)
OK をクリックして レイヤプロパティ ダイアログを閉じます。これで Streets レイヤのレンダリングが変更されます。
同様の手順で、 Zoning レイヤに適切な色を選びます
8.4.9. ラスタレイヤのシンボロジを変更する
ラスタレイヤのシンボロジはいくらか異なります。
ラスタレイヤ Rainfall30`の :guilabel:`プロパティ ダイアログを開きます
シンボロジ タブに切り替えます。このダイアログは、ベクタレイヤに使用されるバージョンと大きく異なっていることにお気づきでしょう。
最小/最大値設定 を展開します
ボタン 平均 +/- 標準偏差 が選択されていることを確認します
関連するボックスの値が
2.00
になっていることを確認しますコントラスト に 最小最大値に引き伸ばす と表示されていることを確認します
グラデーション は、白から黒 に変更します
OK をクリックします
Rainfall30
ラスタが表示されていれば、色が変わり、各ピクセルの異なる輝度値を見ることができるはずですこの作業を
DEM30
レイヤーに対して繰り返します。ただし、引き伸ばしに使用する標準偏差は4.00
に設定します
8.4.10. 地図をクリーンアップします
オリジナルの
Rainfall
とDEM
レイヤ、およびRainfall_clipped
とDEM_clipped
を レイヤ パネルから削除します:これらのレイヤ上で右クリックし、 削除 を選択します。
注釈
これは、記憶装置からデータを削除しません。地図から外すだけです。
地図を保存します
レイヤ パネル中のベクタレイヤを、横にあるボックスをオフにして非表示にできます 。これによって地図のレンダリングが速くなり、時間の節約になります。
8.4.11. 陰影図の作成
陰影図を作成するには、この目的のために書かれたアルゴリズムを使う必要があります。
レイヤ パネルで、
DEM30
がアクティブレイヤであることを確認します(つまり、クリックしてハイライトにします)メニューから 陰影図(hillshade) ダイアログが表示されます
を選択すると、陰影図(hillshade) までスクロールし、
Rasterprac
ディレクトリにhillshade.tif
として出力を保存します実行 をクリックします
処理が完了するのを待ちます。
新しい hillshade
レイヤが レイヤ パネルに表示されました。
レイヤ パネルで
hillshade
レイヤーを右クリックして、 プロパティ ダイアログを表示します透過性 タブをクリックし、 グローバルな不透明度 スライダを
20%
に設定しますOK をクリックします
透明な陰影図が切り取られたDEMの上に重なっているときの効果に注意してください。効果を確認するため、レイヤの順番を変えるか、``Rainfall30``のレイヤをクリックしてオフにする必要があるかもしれません。
8.4.12. 傾斜
傾斜(slope) アルゴリズムのダイアログを開きます
メニュー項目をクリックし、DEM30
を 入力レイヤ に選択します傾斜の単位はパーセント(デフォルトは度) をチェックします。傾斜は異なる単位(パーセントまたは度)で表現することができます。我々の基準では、対象の植物は15%から60%の勾配の斜面に生育するとされています。そこで、傾斜データがパーセントで表現されていることを確認する必要があります。
出力のための適切なファイル名と場所を指定します。
実行 をクリックします
傾斜画像が計算され、地図に追加されました。いつも通りグレースケールでレンダリングされています。もっとカラフルなシンボロジに変更します:
レイヤの プロパティ ダイアログを開きます(通常通り、レイヤの右クリックメニューから行います)
シンボロジ タブをクリックします
単バンドグレー ( レンダリングタイプ ドロップダウンメニュー)と書かれている箇所を 単バンド疑似カラー に変更します
最小 / 最大値設定 の 平均 +/- 標準偏差 x に
2.0
を選びます適当な カラーランプ を選びます
実行 をクリックします
8.4.13. Try Yourself 傾斜方位
傾斜を計算するのと同じ方法で、 傾斜方位... を選択します。
メニューから定期的にプロジェクトを保存することを忘れないでください。
8.4.14. ラスターを再分類する
:menuselection:`ラスタ --> ラスタ計算機...`を選択します
出力レイヤ の場所として
Rasterprac
ディレクトリを指定し( ... ボタンをクリックします)、slope15_60.tif
というファイル名で保存します結果をプロジェクトに追加する のボックスが選択されていることを確認します。
左側の バンド リストには、 レイヤ パネルにあるすべてのラスタレイヤが表示されています。傾斜レイヤが slope という名前であれば、
slope@1
という名前で表示されます。これは傾斜ラスタのバンド1であることを示しています。勾配は15度から60度の間である必要があります。
インターフェイスのリスト項目とボタンを使って、次の式を組み立ててください:
(slope@1 > 15) AND (slope@1 < 60)
適切な場所とファイル名で 出力レイヤー フィールドを設定してください。
実行 をクリックします。
次に、同じ方法で正しい傾斜方位(東向き:45
から 135
度の間)を求めます。
次の式を組み立てます:
(aspect@1 > 45) AND (aspect@1 < 135)
出来上がったラスタで、東向きの斜面がすべて白くなっていれば、うまくいったことがわかります(まるで朝日に照らされているかのようです)。
同じ方法で正しい雨量(1000
mm以上)を求めてください。次の式を使います:
Rainfall30@1 > 1000
3つの条件がそれぞれ別々のラスタになったので、それらを組み合わせて、どの区域がすべての条件を満たしているかを確認する必要があります。そのために、ラスタは互いに掛け合わされます。このとき、値が 1
で重複しているピクセルはすべて 1
の値を保持します(つまり、その場所は条件を満たしています)。しかし、3つのラスタのうち、いずれかのピクセルが 0
の値を持つ場合(つまり、その場所は条件を満たしていない)、それは結果としては 0
となります。このようにして、結果には適切な基準をすべて満たす重複領域のみが含まれることになります。
8.4.15. ラスタを組み合わせる
ラスタ計算機 を開きます (
)次の式を組み立てます(レイヤの適切な名前を付けてください):
[aspect45_135] * [slope15_60] * [rainfall_1000]
出力先を
Rasterprac
ディレクトリに設定します出力するラスタに
aspect_slope_rainfall.tif
という名前を付けます実行 をクリックします
新しいラスタでは、3つの条件をすべて満たした領域が適切に表示されるようになりました。
プロジェクトを保存してください。
次に満たすべき基準は、その地域が都市部から 250
m 離れていることです。この条件を満たすには、計算する地域が農村部の中にあり、その地域の端から 250
m 以上離れていることを確認する必要があります。したがって、まずすべての農村地域を見つける必要があります。
8.4.16. 農村地域を検索する
レイヤ パネル内のすべてのレイヤを非表示にします
Zoning
ベクタレイヤの非表示を解除しますその上で右クリックして、 属帝テーブル ダイアログを表示します。ここでは、土地がさまざまな方法でゾーニングされていることに注意してください。私たちは、農村部を分離したいのです。属性テーブルを閉じます。
Zoning
レイヤを右クリックして フィルタ... を選択し、 クエリビルダ ダイアログを表示させます次のクエリを組み立てます:
"Gen_Zoning" = 'Rural'
行き詰まったときは、先の説明を参照してください。
OK をクリックして、 クエリビルダ ダイアログを閉じます。クエリは1つの地物を返すはずです。
Zoning
レイヤにある農村部のポリゴンが表示されるはずです。これらを保存する必要があります。
Zoning
の右クリックメニューで、 を選びます。レイヤを
Rasterprac
ディレクトリの下に保存します出力ファイルを
rural.shp
と名付けますOK をクリックします
プロジェクトを保存してください
ここで農村地域の端から 250m
内にある領域を除外する必要があります。これは以下に説明するように、負のバッファを作成することによって行います。
8.4.17. 負のバッファを作成する
メニュー項目
をクリックします表示されたダイアログで、入力ベクタレイヤとして
rural
を選択します(選択した地物のみ` にはチェックを入れません)距離 に
-250
を設定します。負の値は、内部バッファになることを意味します。ドロップダウンメニューで、単位がメートルであることを確認します。出力レイヤ では、出力ファイルを
Rasterprac
ディレクトリに置き、その名前をrural_buffer.shp
とします保存 をクリックします
実行 をクリックし、処理が完了するのを待ちます
バッファ ダイアログを閉じます。
:rural_buffer`` レイヤと
rural
レイヤがどのように違うかを見て、バッファが正しく機能したことを確認してください。違いを観察するために、描画順序を変更する必要があるかもしれません。rural
レイヤを削除しますプロジェクトを保存してください
ここで、rural_buffer
のベクタレイヤと aspect_slope_rainfall
のラスタを結合する必要があります。これらを結合するためには、どちらかのレイヤのデータ形式を変更する必要があります。今回の場合、面積を計算するにはベクタレイヤの方が便利なので、ラスタをベクトル化することにします。
8.4.18. ラスタをベクタ化する
メニュー項目
をクリックしますaspect_slope_rainfall
ラスタを 入力レイヤ として選びます作成するフィールドの名前 に
suitable
を設定します(デフォルトのフィールド名はDN
- デジタル番号データです)出力を保存します。ベクタ化 の下にある ファイルに保存 を選択します。保存場所を
Rasterprac
に設定し、ファイル名をaspect_slope_rainfall_all.shp
にします。実行 をクリックします
処理が完了したらダイアログを閉じます
ラスタのすべての領域がベクタ化されているので、suitable
フィールドの値が 1
である領域のみを選択する必要があります。(デジタルナンバー
新しいベクタレイヤ用に クエリビルダ ダイアログを開きます(右クリック - フィルタ... )
次のクエリを組み立てます:
"suitable" = 1
OK をクリックします
クエリの完了(3つの条件をすべて満たす、つまり値が
1
の領域だけが表示される)を確認したら、レイヤの右クリックメニューの エクスポート --> 新規ファイルに地物を保存... を使い、結果から新しいベクタファイルを作成しますファイルを
Rasterprac
ディレクトリに保存しますファイルは
aspect_slope_rainfall_1.shp
と名付けます地図から
aspect_slope_rainfall_all
レイヤを削除しますプロジェクトを保存します
あるアルゴリズムを使ってラスタをベクタ化する際、「無効なジオメトリ」と呼ばれるものが生成されることがあります。つまり、空のポリゴンや、間違いのあるポリゴンが存在し、将来的に解析が困難になる可能性があるのです。そこで、「ジオメトリの修復」ツールを使う必要があります。
8.4.19. ジオメトリを修復する
プロセシングツールボックス で 「ジオメトリの修復」を検索し、 実行... します
入力レイヤ には
aspect_slope_rainfall_1
を選択します出力レイヤ で ファイルに保存... を選択し、出力を
Rasterprac
に、ファイル名をfixed_aspect_slope_rainfall.shp
にして保存します。実行 をクリックします
処理が完了したらダイアログを閉じます
ラスタをベクトル化し、ジオメトリを修復したので、 fixed_aspect_slope_rainfall
レイヤと rural_buffer
レイヤとの交点を見つけることによって、傾斜方位、勾配、雨量基準と人里からの距離基準を組み合わせることができるようになりました。
8.4.20. ベクタの交点を求める
メニューの
をクリックします表示されたダイアログで、
rural_buffer
レイヤを 入力レイヤ` として選択しますオーバーレイレイヤ で、
fixed_aspect_slope_rainfall
レイヤを選択します交差 では、出力ファイルを
Rasterprac
ディレクトリに配置します出力ファイル名は
rural_aspect_slope_rainfall.shp
とします保存 をクリックします
実行 をクリックし、処理が完了するのを待ちます
交差 ダイアログを閉じます
重なっている部分だけが残っていることを確認し、交差が正しく行われたことを確認します
プロジェクトを保存してください
リストにある次の条件は、面積が 6000
㎡以上であることです。このプロジェクトに適した大きさのエリアを特定するために、これからポリゴン面積を計算することになります。
8.4.21. 各ポリゴンの面積を計算する
新しいベクタレイヤの右クリックメニューを開く
属性テーブルを開く を選択します
表示されたダイアログで、 新規フィールドを作成 がチェックされていることを確認し、 出力する属性(フィールド)の名前 を
area
に設定します。フィールド型は小数点付き数値(real)である必要があります。精度 を1
(小数点以下1桁)に設定します。式 エリアに次を入力します:
$area
これはフィールド計算機がベクタレイヤの各ポリゴンの面積を計算し、新しい整数列(
area
という)に計算された値を入力することを意味します。OK をクリックします
同じことを
id
という別の新しいフィールドに対しても行います。フィールド計算機式 に次を入力します:$id
これは、各ポリゴンは識別目的のためのユニークなIDを持っていることを保証します。
8.4.22. 与えられたサイズの面積を選択する
今この面積が知られています:
6000
㎡以上のポリゴンのみを選択するクエリを(いつも通りに)作成します。クエリは次のようになります:"area" > 6000
選択範囲を
Rasterprac
ディレクトリにsuitable_areas.shp
という名前の新しいベクタレイヤとして保存します。
これで、希少なフィンボス植物の生息条件をすべて満たす適地が揃いました。この中から、ケープタウン大学に最も近い4つの地域を選びます。
8.4.23. ケープタウン大学のデジタイズ
以前と同様に
Rasterprac
ディレクトリに新しいベクタレイヤを作成します。ただし今回は ジオメトリタイプ として 点(Point) を使用し、university.shp
という名前を付けます正しいCRS(
プロジェクトCRS: EPSG:32733 - WGS 84 / UTM zone 33S
)であることを確認してください新しいレイヤの作成を完了します(OK をクリックします)
新しい
university
レイヤとStreets
レイヤ以外のすべてのレイヤを非表示にします。背景地図(OSM)を追加します
:guilabel:`ブラウザ`パネルから :menuselection:`XYZ Tiles --> OpenStreetMap`に移動します
OpenStreetMap`` のエントリを レイヤ パネルの一番下にドラッグ&ドロップします
インターネットブラウザで、ケープタウン大学の所在地を調べてみてください。ケープタウンのユニークな地形を考えると、大学は非常にわかりやすい場所にあります。QGISに戻る前に、大学の場所とその近くにあるものをメモしておきましょう。
レイヤ パネルで ‘‘Streets`` レイヤが有効になっていること、そして
university
レイヤがハイライトされていることを確認してくださいメニューから デジタイジングツールバー が選択されていることを確認します。すると、鉛筆が描かれたツールバーアイコン( 編集モード切替)が表示されているはずです。これは 編集モード切替 ボタンです。
を選択し、編集モード切替 ボタンをクリックすると、編集モード になります。これにより、ベクタレイヤを編集することができます
地物を追加 ツールをアクティブにし、ケープタウン大学の推定位置を左クリックします
id
を要求されたら、任意の整数を指定しますOK をクリックします
編集を中止するには 編集モード切替 ボタンをクリックします
プロジェクトを保存してください
8.4.24. ケープタウン大学から最寄りの場所を検索します
プロセシングツールボックス から、属性の最近接結合 アルゴリズム(
)を選択し、実行します。入力レイヤ は
university
、 第2の入力レイヤ はsuitable_areas
とします適切な出力場所と名前を設定します (出力レイヤ)
近接地物の個数 を
4
に設定します残りのパラメータはデフォルト値のままにします
実行 をクリックします
出来上がったポイントレイヤには4つの地物が含まれ、それらはすべて大学の位置とその属性、さらに近くの適切な領域の属性(``id``を含む)とその位置までの距離を持ちます。
結合結果の属性テーブルを開きます
最も近い4つの適切な領域の
id
を記録し、属性テーブルを閉じますsuitable_areas
レイヤの属性テーブルを開きます大学に最も近い4つの地域を選択するクエリを作成します(
id
フィールドを使って選択します)
これは、研究の質問への最終的な答えです。
提出物は、あなたの選んだ魅力的なラスタ(例えば、DEMや傾斜ラスタなど)の上に半透明の陰影図レイヤを含む、完全にラベル付けされたレイアウトを作成してください。また、大学名と suitable_areas
レイヤを含み、大学に最も近い4つの適切なエリアをハイライトしてください。地図製作のベストプラクティスにしたがって、出力地図を作成してください。