面積の求め方

898 views
Skip to first unread message

初心者

unread,
Oct 12, 2023, 3:59:56 AM10/12/23
to QGIS初心者質問グループ

お世話になります。QGIS初心者です。いろいろと試してみたのですが、以下のことができず、質問させていただきました。

 

「目的」複数の地域の植生データ(自然環境Web-GISデータからダウンロード)をつなぎ合わせ、各植生の面積を調べたい。

 

「データ」

G空間情報センターhttps://www.geospatial.jp/ckan/dataset/biodic-vege-25000

生物多様性センター http://gis.biodic.go.jp/webgis/sc-025.html?kind=vg67

 

「方法」

(例)長野県の植生データをマージして面積を求める。

(1)新規プロジェクトを開き、ダウンロードした複数のshapeファイルを読み込み、マージする。

面積を計算するため、座標系 (JGD2000 VIII)を(WGS 84/UTM zone 53N)に変え、名前をつけて保存(ファイル1)。

 

(2)新たな新規プロジェクトを開き、座標系をWGS 84/UTM zone 53 Nに設定。ファイル1を読み込む。

 

(3)Group Statsを利用して面積を計算。

 

「問題」

*このやり方で計算すると正しい面積がでない。座標系がJGD2000 VIIIのままになっているよう(QGISの座標をみると度数表示になっているため)、ただ、ファイルのCRSをみると、WGS 84/UTM zone 53 Nになっている。

 

*なお、複数のファイルをマージせず、単一のファイルのみで同様の処理を行うと正し い面積が計算できる。

 

この問題の解決の仕方をご教授頂ける方、何卒よろしくお願いいたします。

futoshi kidani

unread,
Oct 12, 2023, 6:37:48 AM10/12/23
to QGIS初心者質問グループ
まず、座標系の変換についてですが、保存の際に座標系の設定を変更するだけではレイヤの座標系は変更されません。
この機能は、狭い範囲のCADデータからデータを起こしたときなど、元々座標系の設定がされていないデータを保存する場合などに使います。

ですので、座標系を変更して保存してやるにはQGISのベクタ→データ管理ツール→ベクタレイヤを再投影で変換してやる必要があります。


2023年10月12日木曜日 16:59:56 UTC+9 初心者:

キタ

unread,
Oct 12, 2023, 11:25:43 AM10/12/23
to QGIS初心者質問グループ
質問者様の「正しい」面積というのは、いわゆる測量などで求められる平面積(デカルト)のことだと推測します。
QGISの面積計算については、過去ログ(https://groups.google.com/g/qgisshitumon01/c/y2S_zgpe7aQ)などにありた氏が詳しい説明がされている記事がありますので、「面積」などで検索してみるといいです。
この場合、平面直角座標系(長野県であれば「JGD2000 / Japan Plane Rectangular CS VIII EPSG:2450」に変換すれば、デカルト座標で計算することが出来ます。
(地球上で正しい面積というと本当は地球の球体を勘案した楕円体の面積になるのですが、実測量などで算出される平面積を「正しい」と表記される事が多々ありますが、正確には正しくはありません)
「Group Stats」は使ったことがないので、どのように面積が計算されるかわかりませんが、私がやるなら次の手順で行います。

1,ダウンロードした複数のShapeファイルをQGISでマージする
2,マージしたレイヤをエクスポートし、その際にCRSを「 JGD2000 / Japan Plane Rectangular CS VIII EPSG:2450」に変換する。
  (メニュー ベクタ→データ管理ツール→ベクタレイヤを再投影 でもOK)
3,プロセシングツール→ツールボックス→ジオメトリ属性を追加で「レイヤのCRS」で面積を属性データに追加する。
4,属性テーブルを開き、属性データをすべてコピーし、Excelなどで種別ごとに集計する。

このような感じでしょうか。
面積計算はフィールド計算機でも行うことが可能です。その際は、上の「面積計算をするときに」の記事にあるように「area($geometry) 」を使用します。

キタ

2023年10月12日木曜日 16:59:56 UTC+9 初心者:

お世話になります。QGIS初心者です。いろいろと試してみたのですが、以下のことができず、質問させていただきました。

初心者

unread,
Oct 12, 2023, 9:30:18 PM10/12/23
to QGIS初心者質問グループ
kidaniさま、キタさま

早速の御返事とアドバイス、ありがとうございます。

・データ管理ツール→ベクタレイヤを再投影(あるいはエクスポートして保存)
・ジオメトリ属性の追加

ご教授ありがとうございました。とても参考になります。

早速お教えいただきました方法で、面積を測定してみました。

・ベクタファイルの再投影
・エクスポートして保存

の2つの方法で試みたのですが、なぜか面積が想定よりもはるかに小さくなってしまいました。

添付の写真は、上記の方法と結果をまとめたものです。

たびたび申し訳ないのですが、この原因について、ご教授いただけたら幸いです。

何卒よろしくお願いいたします。

QGIS_面積の求め方.jpg

tomohiro watada (Wata_san)

unread,
Oct 13, 2023, 4:08:21 AM10/13/23
to QGIS初心者質問グループ
質問者さま

ひとまず、私が気付いた点を記載しておきます。

「レイヤの座標参照系とは、各レイヤごとに定義された座標参照系で、レイヤを作成したときに作成者が決めたもの
(「業務で使うQGIS Ver.3 P84 から引用)」ですので、
画像にある1.の工程時にCRSを「EPSG:2450」に設定されていますが、
まずは、レイヤ作成時に設定したCRSと合わせたCRSに設定する必要があります。

該当レイヤをダウンロードして、展開したフォルダの「Readme.txt」を確認すると、
「(3)座標系
世界測地系(日本測地系2000)に基づく10進緯度経度座標系で作成されています。
※日本測地系の2次メッシュ図郭で作成したものを、世界測地系(日本測地系2000)に変換したものです。」
と記載されています。
「緯度経度座標系」とのことなので、地理座標系で「世界測地系(日本測地系2000)」とのことなので
「JGD2000(EPSG:4612)」なのではないかと思います。(詳しい方、違っていたらすみません。訂正願います)

そうして、CRSを「レイヤ作成者が設定したCRS」に「設定」したうえで、
面積を計算したいので、平面直角座標系に「変換」するために、
「ベクタファイルの再投影」を行います。

kidaniさまやキタさまが「変換」という表現をされているのはそういう理由です。

実際、長野県の植生データをG空間情報センターからダウンロードし、
任意の箇所のフォルダを展開し、CRSを「JGD2000(EPSG:4612)」に設定したうえで、
「ベクタファイルの再投影」で「 JGD2000 / Japan Plane Rectangular CS VIII EPSG:2450」に変換し
変換したレイヤで「ジオメトリ属性の追加」を行ったところ、
最も大きい面積で「4420814.715519428(m2)」と計算されました。

参考としてください。




2023年10月13日金曜日 10:30:18 UTC+9 初心者:

初心者

unread,
Oct 13, 2023, 10:07:04 PM10/13/23
to QGIS初心者質問グループ

Watada さま

早速の御返事ありがとうございます。

的確なアドバイスのおかげで、私が理解していないところわかり、ご指示通りに実行したところ、面積が求められました。

 

この流れを整理したところ、少し気になるところがありました。それは「レイヤのCRSを変換した結果、レイヤとプロジェクトのCRSと異なってしまう。その際にどんな不具合が生じるのか」です。

ダウンロードしたshapeファイルをレイヤとしてインポートし、面積を計算する過程を整理しますと


(1)レイヤは植生データ作成時のCRSJGD2000地理座標系:EPSG 4612)と設定

   (レイヤ:EPSG 4612、プロジェクトのCRSもレイヤにあわせてEPSG 4612としました)

 (2)面積計算のために、レイヤのCRSを平面直角座標系(EPGS 2450)に変換

  (レイヤ:EPGS 2450、プロジェクト:EPSG 4612

 (3)面積計算成功

 

この過程において、(1)ではレイヤープロジェクトのCRSが一致していますが、(2)では異なっています。


この相違について気になり、関連する情報を調べてみたところ

a)レイヤに設定されている空間参照系とプロジェクトの空間参照系は独立していること

b)プロジェクトのCRSは地図の見た目を、レイヤのCRSはデータ自体を定義していること

c)レイヤのCRSが違っていても、「オンザフライ機能」でプロジェクトの地図上では相互関係が正しく表示されること

  *ただ、私の使っているQISバーション3.28.11.では、関連書籍にありましたた「オンザフライ機能」に関する項目「プロジェクトのプロパティ→CRS→オンザフライCRS変換を有効にする」はありませんでした

 

などの情報が得られました。

 

これらを参考にすると、

・面積の計算は「レイヤのCRS」に基づいて行われたため、プロジェクトのCRSは関連していないこと

・空間参照系の異なるレイヤであっても(CRS変換前後の植生データ)、オンザフライ機能により、プロジェクト上でズレることなく表示されること

と理解しました(正しいでしょうか?)。

 

なお、その一方で、プロジェクトとレイヤのCRSが異なった場合、地図の見た目に影響を及ぼすこともわかりました。

https://www.aeroasahi.co.jp/fun/column/23/

 

これらの情報をふまえ、プロジェクトとレイヤのCRSが異なっていた場合、地図の見た目が変わる以外にどんな不具合が起こり得るのか、気になりました。

これまでプロジェクトとレイヤのCRSは一致させるべきもの、と考えていたこともあり、CRSの相違がもたらす違いに関心があります。

 

何度も質問をしてしまい、大変恐縮なのですが、何卒よろしくお願いいたします。


2023年10月13日金曜日 17:08:21 UTC+9 tomohiro watada (Wata_san):

futoshi kidani

unread,
Oct 13, 2023, 11:42:48 PM10/13/23
to QGIS初心者質問グループ
よくある不具合は、異なるCRSのものを空間演算した場合の結果ですかね。

平面で定義されている座標系と、曲率を考慮している座標系のものを空間演算(クリップ等)をすると、
地球の丸みのせいで本来は2点間を直線で結んでいたものに途中に折れ点が発生する、とか
面積の計算結果に影響が出ます。

実空間で例えると、円筒形のものをガラス越しに見て、ガラスの上にトレーシングペーパーを置いて曲面方向の輪郭をなぞったとします。
その場合のトレースした円筒の直径と、実際の円筒の輪郭を結んだ距離(円筒状に曲線に沿わせてメジャーで測った円周の半分)は差が出ますよね?
曲率を考慮したもので面積を出すと、半径×π×幅となりますが、トレーシングペーパーでトレースしたような平面空間では直径×幅となり、
結果が違います。
このように、曲面を考慮した座標系のものを平面で定義されている座標系で切り出す、あるいはその逆をすると、影響が出ます。

その他、平面直角座標系などでは原点より東西方向に離れるにつれ真北方向が変わりますので、角度計算の計算結果なども変わってきます。
2023年10月14日土曜日 11:07:04 UTC+9 初心者:

ありた

unread,
Oct 14, 2023, 12:53:12 AM10/14/23
to QGIS初心者質問グループ
こんにちは

オンザフライ機能は標準的に適用されるようになったため、今ではチェックはありません。

ご存知のように、地図にはメルカトル図法や平面直角座標系(横メルカトル図法)、
また、モルワイデ図法のような楕円形の地図や、正距方位図法のような円形の地図
円錐図法のように子午線が放射状の図法(天気予報の台風情報図など)など
さまざまな図法があり、目的に応じて使い分けたりしています。
(特に印刷物などの最終成果の段階で)

プロジェクト CRS は、どういった地図として描画するかを指定したものになりますので
その際のデータ(レイヤ)の座標系は極論すれば何でも構いません。

レイヤの CRS (データをどのような座標系で解釈するかの設定)が適切に設定され、
正しく読み込むことができたデータであれば、地球上のどこに位置する地物なのか
QGIS は認識できているからです。
正しくインプットできたものであれば、どのような形でアウトプットしても構いません。
また更に言えば、複数存在するデータは、 CRS がそれぞれ異なっていても、
適切に読み込まれていれば、データを重ね合わせて表示することができます。



敢えて、「プロジェクト CRS とデータの CRS の相違」によるデメリットといえば
プロジェクト CRS に従ってマップを描画するため、データを座標変換する必要があり、
特に背景地図などのラスタデータでは座標変換処理にパワーを要します。
このため、 QGIS のマップキャンバスを遷移するときなど、動作が遅くなることがあります。
そのような場合は、(最終成果がたとえ平面直角座標系やモルワイデなどであっても)
プロジェクト CRS として、ラスタと同一の CRS を設定したほうがよいでしょう。



色々な座標系(図法)があるのは、それぞれにおいて長所と短所があるからです。
「プロジェクト CRS とデータの CRS の相違」によるものではありませんが、
使用し方によっては、その短所が表にでることもあります。

たとえば GIS の処理では、データの(読み取り CRS として設定されている)座標系を
暗黙的に使用するものがあります。(バッファにおけるバッファ距離設定など)
そのような処理を行う場合には、あらかじめ目的の座標系に再投影しておく必要があります。

また複数のデータを使った空間分析処理では、(データ間の CRS が異なっても
最近ではちゃんと認識あるいは内部で1つ目の CRS に自動変換処理されるため)
以前にくらべ、あまり不具合のようなものは聞かなくなりましたが、今でも
分析する場合はデータ間の CRS を揃えた方が無難。ということは耳にします。
Reply all
Reply to author
Forward
0 new messages