QGIS2.14,2.16,2.18のフィールド計算について

434 views
Skip to first unread message

sakuya_izayoi

unread,
May 2, 2017, 9:45:09 PM5/2/17
to QGIS初心者質問グループ
QGIS2.14,2.16,2.18の3種類で確認したことなのですが、
フィールド計算機の[$area]関数を使用して、地物の面積を求めようとしたのですが、
オンザフライなしの時、オンザフライ機能ありの時で計算結果値が異なるという事に気が付きました。

そのため、試しに愛知県庁付近(直交座標で7系)にてCADで、0.5mメッシュを九つ作成し、QGISに取り込ませ、ラインからポリゴンshpを作成しました。
面積が0.25平方メートルになるようにつくってあるので、オンザフライなしの時、オンザフライ機能ありの時で計算結果値が違えばすぐにわかります。
なお、取り込ませたレイヤーの座標系はJGD2000のⅦ系で設定してあります。

[$area]コマンドを使用し、面積計算を実行した結果、以下のようになりました。
OTFなし、つまりオンザフライなしの場合にはすべての格子で設定した通りの面積が出ております。(0.25平方メートル)
OTFあり(Ⅶ、つまり、プロジェクトプロパティにてオンザフライ機能を有効にして7系に変換してくれと指示した場合ですが、すべての格子で面積がバラバラに出てきてしまいました。何がかえってきているのかが正直わかりません。


計算コマンドが違うのかとおもい
[$area]計算コマンドの説明をみてみると、
[$area]コマンドは、プロジェクトの楕円体と領域単位の設定に基づいて計算を行います、と訳せました。
似たコマンド
で[area]コマンドがあり
[area]
コマンドはジオメトリポリゴンの領域を返します。計算はジオメトリの空間参照系(SRS)で面積計測を行い、領域(面積)の単位はSRSの単位と一致します。
これは[$area]関数で実行される計算とは異なる。と訳せました。

今回は面積計算を[$area]コマンドで計算をしていたのですが、プロジェクトを平面直角座標系(Ⅶ系)を指定していましたが、m単位系で答えを返してくれているような
気がします。

平面直角座標系(Ⅶ系)は単位系がmだと思っていたのですがここ自体が違うのでしょうか?

[area]コマンドを使用してみたかったのですが、どのように計算していしてやればよいのか、例を見てもわかりませんでした。例の場合は4点の座標を直接入力して
答えを返させているみたいでして、どのようにしてやれば[$area]コマンドのようにレイヤーの地物全て、あるいは選択地物の面積を返してくれるように設定できるのか
分からず試せませんでした。

長くなりましたが、お聞きしたい事は

①オンザフライを無しのばあいと、オンザフライをありにした場合で面積が変わってしまうのはなぜなのか?
(とくに今回はプロジェクトの座標系とレイヤーの座標系を同一にしてのオンザフライオンであったにも関わらず結果が変わっております。
プロジェクトの座標系とレイヤーの座標系が違えばおそらく気が付きませんでした。)

②[area]コマンドを使用してレイヤーの地物全て、あるいは選択地物の面積を返してくれるようにするにはarea(ジオメトリ)のなかの(ジオメトリ)
になにを入れればよいのか。

③[$area]コマンドと[area]コマンドの使い分け方法

です。お力、お知恵をお貸しください。

なお、上記の図を作成したプロジェクトファイルとCAD図などを添付いたします。よろしくお願いします。

0.5m_mesh.zip
Auto Generated Inline Image 1

福岡

unread,
May 3, 2017, 12:22:06 AM5/3/17
to QGIS初心者質問グループ
sakuya_izayo 様

こんにちは
とりあえず2番目のご質問についてだけわかりましたので、お知らせします。

area( $geometry ) が $area と同じ意味になるそうです。
Google翻訳先生の力を借りて、次のサイトから情報を得ることができました。
https://gis.stackexchange.com/questions/178803/qgis-field-calculator-functions

「You could say that $area is the same thing as area($geometry)」と書かれているところが,該当箇所です。

福岡

unread,
May 3, 2017, 12:26:08 AM5/3/17
to QGIS初心者質問グループ
前の投稿に記載し忘れましたので、追記します。

ちょっと実験してみたのですが、area( $geometry ) で面積を得ると、オンザフライがオンでもオフ時と同じ結果が得られました。
なぜなんでしょう?

sakuya_izayoi

unread,
May 3, 2017, 1:18:44 AM5/3/17
to QGIS初心者質問グループ
福岡さま
ありがとうございます。
このサイトは見つけれませんでした。
area( $geometry )ですか。

同じになった理由をちょっと考えたのですが、
[area]コマンドに書かれている説明を翻訳すると、(あっているとは思いますが)
[area]
コマンドはジオメトリポリゴンの領域を返します。計算はジオメトリの空間参照系(SRS)で面積計測を行い、領域(面積)の単位はSRSの単位と一致する。
とありますので、こちらのコマンドはいつでもレイヤーの空間参照に一致するのでしょうか?
でも、そうなると、[$area]コマンドとちょっと違う意味になりますよね。ふ~む。

ご存じの方がお見えでしたらお力をお貸し願います。
Reply all
Reply to author
Forward
0 new messages