17.6. 空間参照系・再投影

注釈

この課題で、私たちは空間参照系を利用したプロセシングの方法を議論します。私たちはまた、再投影というとても便利なアルゴリズムについて見てみます。

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

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

../../../_images/crs_layer.png
  • 入力レイヤがない場合、アルゴリズムに特定のCRSフィールドが含まれていなければ、プロジェクトのCRSを使用します(前回のgraticuleアルゴリズムのレッスンで起こったように)

このレッスンに対応するプロジェクトを開いてください。23030と4326という名前の2つのレイヤが表示されるでしょう。それら両方には同じ点が含まれていますが、CRSは異なっています(EPSG:23030とEPSG:4326)。QGISによりプロジェクトCRS(EPSG:4326)にその場で再投影されたので、それらは同じ場所に表示されますが、それらは実際には同じレイヤではありません。

ジオメトリ列の出力/追加 アルゴリズムを開く。

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

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

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

アルゴリズムの他のパラメーターは、アルゴリズムが結果のレイヤに追加する新たな値を計算するために、どのように座標を使用するかを設定できます。ほとんどのアルゴリズムはこのようなオプションがなく、単に座標を直接使用します。座標をそのまま使用する場合は、レイヤCRS オプションを選択します。これは、ほとんどすべての地理アルゴリズムの動作方法です。

他の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を使わないので、特定の場合を表しています。

レイヤを再投影 アルゴリズムを開く。

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

入力として、レイヤのいずれかを選択し、出力CRSとしてEPSG:23029を選択します。アルゴリズムを実行すると、入力レイヤと同じで、異なるCRSを持つ新しいレイヤが生成されます。QGISではそれをその場で再投影するのでキャンバスの同じ領域に表示されますが、元の座標は異なっています。この新しいレイヤを入力として ジオメトリ列をエクスポート/追加 アルゴリズムを実行すると、追加された座標が前に計算した2つのレイヤの属性テーブルのものと異なっていることを確認することができます。