重要

翻訳は あなたが参加できる コミュニティの取り組みです。このページは現在 77.27% 翻訳されています。

17.6. CRS・再投影

注釈

この課題で、私たちはプロセシングがどのようにCRSを使うかを説明します。私たちはまた、再投影というとても便利なアルゴリズムについて見てみます。

CRSはQGISプロセシングのユーザーにとって大いなる混乱の源です。そこで、新しいレイヤを作成するときにジオアルゴリズムがそれをどのように扱うかについて、いくつかの一般的なルールを紹介します。

  • 入力レイヤが複数存在する場合は、最初のレイヤのCRSが使用されます。全ての入力レイヤのCRSは同じ必要があり、これがそのCRSであると想定されます。CRSが一致していないレイヤを使うと、QGISがそれを警告します。入力レイヤのCRSはパラメータダイアログ中にその名前と一緒に表示されていることに注意してください。

../../../_images/crs_layer.png
  • 入力レイヤがない場合はプロジェクトのCRSが使用されますが、アルゴリズムに具体的なCRSフィールドが含まれていれば、(経緯線網アルゴリズムを使った前回のレッスンのように)それが使われます

Open the project corresponding to this lesson and you will see two layers named 23030 and 4326. They both contain the same points, but in different CRSs (EPSG:23030 and EPSG:4326). They appear in the same place because QGIS is reprojecting on the fly to the project CRS (EPSG:4326), but they are not actually the same layer.

Open the Add geometry attributes algorithm.

../../../_images/add_geom.png

このアルゴリズムは、ベクタレイヤの属性テーブルに新しい列を追加します。列の内容は、レイヤのジオメトリの種類によって異なります。ポイントの場合、各点のX及びY座標で新しい列を追加します。

入力レイヤのフィールドにある使用可能なレイヤのリストには、各レイヤとそれに対応するCRSが表示されています。それは、キャンバスの同じ場所に表示されても異なる方法で処理されることを意味します。4326レイヤを選択してください。

The other parameter of the algorithm allows to set how the algorithm uses coordinates to calculate the new value that it will add to the resulting layers. Most algorithms do not have an option like that, and just use the coordinates directly. Select the Layer CRS option to just use coordinates as they are. This is how almost all geoalgorithms work.

他の2つのレイヤとまったく同じポイントを持つ新しいレイヤが作成されるはずです。レイヤの名前を右クリックしてプロパティを開くと、入力レイヤと同じCRS、つまりEPSG:4326を共有していることが分かります。このレイヤがQGISに読み込まれる際、レイヤのCRSはQGISがすでに知っているので、それを入力するよう求められることはありません。

新しいレイヤの属性テーブルを開くと、それが各ポイントのXとY座標を持つ2つの新しいフィールドが含まれていることが分かります。

../../../_images/attribs2.png

それらの座標値は、そうするオプションを選んだので、そのレイヤの CRS で与えられています。しかし他のオプションを選んでも、入力CRSは出力レイヤのCRSを設定するのに使われるので、レイヤの出力CRSは同じであったはずです。他のオプションを選ぶと、値は異なりますが、結果の点が変わったり、出力レイヤのCRSが入力レイヤのCRSと異なったりすることはありません。

もう一方のレイヤを使って、同じ計算をしてみてください。出来上がったレイヤは他のレイヤと全く同じ場所にレンダリングされ、入力レイヤと同じ EPSG:23030 CRS を持つはずです。

その属性テーブルに行くと、最初に作成したレイヤのものとは異なる値が表示されるでしょう。

../../../_images/attribs.png

これは元のデータが異なる(異なるCRSを使用している)ためであり、座標はそれから取られています。

ここから何を学ぶべきでしょうか?これらの例の背後にある重要な考えは、地理アルゴリズムは元のデータソースのレイヤをそのまま使用し、QGISでレンダリングする前に行われているかもしれない再投影は完全に無視しているということです。言い換えれば、キャンバスに見えているものは信用せず、常に元のデータが使われることを念頭に置いてください。ここでは一度に1つのレイヤだけを使用しているのでそれほど重要ではありませんが、複数のレイヤを必要とするアルゴリズム(例えばクリップアルゴリズム)では、一致したり重なったりするように見えるレイヤが、異なるCRSを持っていて、互いに非常に離れていることがあります。

アルゴリズムは(次に見る再投影アルゴリズムを除いて)再投影を行わないので、レイヤのCRSが一致していることを確認することは自分の責任です。

CRSを扱う興味深いモジュールのひとつが再投影モジュールです。それが特殊なケースを代表するのは、入力レイヤ(再投影の対象となるもの)を持つが、そのCRSを出力レイヤに使わないからです。

Open the Reproject layer algorithm.

../../../_images/reprojection.png

Select any of the layers as input, and select EPSG:23029 as the destination CRS. Run the algorithm and you will get a new layer, identical to the input one, but with a different CRS. It will appear on the same region of the canvas, like the other ones, since QGIS will reproject it on the fly, but its original coordinates are different. You can see that by running the Add geometry attributes algorithm using this new layer as input, and verifying that the added coordinates are different to the ones in the attribute tables of both of the two layers that we had computed before.