10. 投影法の利用方法

座標参照系(CRS)は、数値座標を地球の表面上の位置に関連付ける方法です。 QGISでは、それぞれに異なる使用例や長所・短所がある約7,000の標準CRSに対応しています!QGISプロジェクトやデータに対して適切な参照系を選択するのは複雑な作業になることがありますが、幸いなことにQGISではこの選択の手引きとなり、さまざまなCRSをできるだけ透過的かつ正確に使用できるようにしています。

10.1. 投影法サポートの概要

QGISでは約7,000の既知のCRSをサポートしています。これらの標準CRSは、欧州石油探査グループ(European Petroleum Search Group:EPSG)およびフランス国土地理院(Institut Geographique National de France:IGNF)によって定義されたものに基づいており、基礎となる「Proj」投影ライブラリを通じてQGISで利用できます。通常、これらの標準的な投影法は、組織:コードの組み合わせを使用して識別されます。ここで、組織は「EPSG」や「IGNF」などの組織名であり、コードは特定のCRSに関連付けられた一意の番号です。たとえば、一般的なWGS 84緯度/経度CRSは識別子「EPSG:4326」で知られており、Webマッピング標準CRSは「EPSG:3857」です。

ユーザが作成したカスタムCRSは、ユーザCRSデータベースに保存されます。カスタム座標参照システムの管理については カスタム座標参照系 のセクションを参照してください。

10.2. レイヤの座標参照系

特定のターゲットCRSにデータを正しく投影するためには、データにその座標参照系に関する情報が含まれている必要があるか、またはレイヤに正しい CRSを手動で割り当てる必要があります。PostGISレイヤの場合は、QGISはその PostGISレイヤの作成時に指定された空間参照識別子を使用します。OGRまたは GDALでサポートされているデータの場合、QGISはCRSを指定するための認識された手段の存在に依存します。例えば、シェープファイル形式の場合はレイヤの CRS のESRI Well-Known Text (WKT) 表現を含むファイルがこれに当たります。この投影法ファイルは .shp ファイルと同じベース名で、 .prj 拡張子を持っています。例を挙げると、 alaska.shp ファイルに対応する投影法ファイルは alaska.prj という名前のファイルです。

QGISにレイヤが読み込まれるたびに、QGISはそのレイヤの正しいCRS を自動的に判断しようと試みます。ただし、CRS情報を持たずにレイヤが読み込まれた場合など、 場合によっては自動判別が不可能な場合もあります。レイヤの正しいCRSを自動的に判断できない場合のQGISの動作を以下の手順で設定することができます。

  1. 設定 ► options オプション... ► 座標参照系(CRS) を開く

    ../../../_images/options_crs.png

    図 10.1 QGISオプションダイアログの座標参照系(CRS)タブ

  2. レイヤのCRS グループで、 新規レイヤが作成されるか、あるいはCRSのないレイヤが読み込まれた場合... のアクションとして、以下のうちどれかを設定します。

    • radioButtonOn 未知のCRSのまま: CRSを持たないレイヤがロードされた時にCRSを選択するプロンプトを表示せず、CRSの選択は後回しにされます。一度にたくさんのレイヤを読み込むときに便利です。CRSの選択が後回しになっているレイヤは、 レイヤ パネル内でレイヤの横にある indicatorNoCRS アイコンで識別可能です。これらのレイヤは座標参照されず、レイヤの座標は純粋な数値の非地球投影の値として扱われます。これはつまり プロジェクトのCRSが「投影なし」に設定された場合 と同じ動作です。

    • radioButtonOff CRSダイアログを表示: CRSを手動で選択するよう、ダイアログが表示されます。正しい選択をすることが非常に重要です。なぜなら、間違ったCRSを選択をすると、レイヤが地表の間違った位置に置かれてしまいます!付随するメタデータにレイヤの正しいCRSが記述されていることもありますが、場合によっては、使用すべき正しいCRSを決定するためにデータの元の作成者に連絡する必要があるでしょう。

    • radioButtonOff プロジェクトCRSを使う

    • radioButtonOff デフォルトCRSを使う フレーム上部にある、 レイヤのデフォルトCRS コンボボックスで設定されたものを使います。

ちなみに

CRSのない、あるいはCRSを間違った複数のレイヤに対して、同じCRSを一度の操作で設定するには、

  1. レイヤ パネルで複数のレイヤを選択します

  2. Ctrl+Shift+C を押します。あるいは選択したレイヤのうち一つを右クリックするか、 レイヤ ► レイヤCRSの設定 メニューをクリックします。

  3. 使用する正しいCRSを探し、選択します

  4. OK ボタンを押します。レイヤのプロパティダイアログの ソース タブで、CRSが正しく設定されていることを確認できます。

この設定で CRS を変更しても、基礎となっているデータソースは全く変更されないことに留意してください。QGISがレイヤの生座標を現在のQGISプロジェクト内においてどのように解釈するかを変更するだけです。

10.3. プロジェクトの座標参照系

QGISの各プロジェクトも、プロジェクトに関連づけられた座標参照系を持っています。プロジェクトのCRSは、データがその基礎となる生の座標からQGISのマップキャンバス内にレンダリングされる地図平面に投影される方法を決定します。

QGIS はラスタデータとベクタデータの両方に対して「オンザフライ」の CRS 変換をサポートしています。これは、プロジェクト内の特定のマップレイヤの本来のCRS に関係なく、レイヤのCRSを常にプロジェクト用に定義された共通のCRSに自動的に変換します。舞台裏では、QGIS はプロジェクト内に含まれるすべてのレイヤを透過的にプロジェクトの CRS に再投影します。これによって、全てのレイヤがお互いに対して正しい位置にレンダリングされるのです!

QGISプロジェクトに適切なCRSを選択することが大切です。不適切なCRSを選択すると、地図が歪んで表示されたり、現実世界の地物の相対的な大きさや位置が正しく反映されない可能性があります。通常、狭い地理的領域での作業では、特定の国や行政区域内で使用される標準的なCRSが多数存在します。図化する地域にどのCRSが適当か、あるいは標準的な選択であるかを調査し、QGISプロジェクトがこれらの標準に従っていることを確認することが重要です。

デフォルトでは、QGISはグローバルなデフォルトの投影法を使用して新しいプロジェクトを開始します。このデフォルトのCRSは EPSG:4326 (「WGS 84」としても知られています)であり、グローバルな緯度/経度ベースの参照系です。このデフォルトCRSは 設定 ► options オプション...図 10.1 を参照)の 座標参照系(CRS) タブで、 新しいプロジェクトが作られた時のCRS の設定で変更することができます。 プロジェクトのCRSを新規プロジェクトに読み込まれた最初のレイヤのCRSに合わせて自動的に設定するオプションや、新規作成されたすべてのプロジェクトで使用するデフォルトのCRSを選択するオプションがあります。この選択はその後のQGISセッションで使用するために保存されます。

プロジェクトのCRSは プロジェクト ► プロパティ... ダイアログの 座標参照系 タブからも設定できます。また、QGISのステータスバーの右下にも表示されます。

../../../_images/projectionDialog.png

図 10.2 プロジェクトのプロパティダイアログ

利用可能なオプションは次のとおりです。

  • unchecked CRSなし(または未知/非地球): この設定をチェックすると、QGISプロジェクト内の全ての投影処理が無効となり、全てのレイヤとマップ座標が単純な2Dデカルト座標として扱われ、地表上の位置とは無関係になります。この設定はレイヤのCRSを(生の座標に基づいて)推測したり、ロールプレイングゲームのマップや建物のマップ、微視的な事柄のような地球以外の用途でQGISを使ったりする場合に使用できます。この場合、以下のような設定が適用されます。

    • レイヤのレンダリング時に再投影は行われません。地物は生の座標を使って描画されるだけです。

    • 距離面積の計算で前提となる楕円体は強制的に「None/Planimetric」で固定されます。

    • 距離や面積の単位、座標表示は強制的に「不明な単位」で固定され、距離や面積の測定値はすべて未知の地図単位となり、変換はできません。

  • または、既存の座標参照系で 地理的座標系投影された座標系 あるいは ユーザ定義の座標系 を使用することができます。CRSの地球上における適用範囲のプレビューが表示されるため、適切なCRSを選択するのに役立ちます。プロジェクトに追加されたレイヤは、重ね合わせるために元のCRSに関係なくオンザフライでこのCRSに変換されます。使用する単位や楕円体の設定が可能かつ意味を持ち、これに応じて距離や面積の計算を行うことができます。

QGISプロジェクトで新しいCRSを選択すると、 プロジェクトのプロパティ ダイアログ( プロジェクト ► プロパティ... )の 一般情報 タブにある計測単位が選択したCRSに適合するように自動的に変更されます。例えば、一部のCRSは座標をメートルではなくフィートで定義するため、QGISプロジェクトをこれらのCRSのいずれかに設定すると、デフォルトでフィートを使用して測定するようにプロジェクトが設定されます。

ちなみに

レイヤのCRSをプロジェクトに設定する

レイヤのCRSを使用して、プロジェクトにCRSを割り当てることができます。

  1. レイヤ パネルでCRSを使用したいレイヤを右クリックする

  2. レイヤのCRSをプロジェクトのCRSに設定 を選択する

プロジェクトのCRSはレイヤのCRSで再定義されます。マップキャンバスの範囲や座標表示はこれに応じて更新され、プロジェクト内の全てのレイヤがオンザフライで新しいプロジェクトのCRSに変換されます。

10.4. 座標参照系セレクタ

このダイアログには投影法データベースが備わっており、プロジェクトやレイヤに対してCRSを割り当てるのに役立ちます。ダイアログ内の項目には以下のものがあります:

  • フィルタ :利用したいCRSのEPSGコードの識別子または名前を知っている場合は、検索機能を使用して見つけることができます。EPSGコードの識別子または名前を入力して下さい。

  • 最近使用したCRS :日常のGIS作業でよく使うCRSがあれば、このリストに表示されます。これらのいずれかひとつをクリックするとCRSを選択できます。

  • あらかじめ定義されたCRS :これは、地理的座標系、投影された座標系およびユーザ定義の座標系など、QGISでサポートされているすべてのCRSのリストです。CRSを定義するには、該当するノードを展開してリストからCRSを選択します。現在アクティブなCRSは事前に選択されています。

  • PROJ text :投影変換エンジンであるPROJで使われるCRS文字列です。この文字列は読み取り専用であり、情報提供のために表示されています。

座標参照系のセレクタには、選択したCRSが使用可能な地理的領域の大まかなプレビューも表示されます。多くのCRSは、狭い地理的領域でのみ使用するように設計されているため、設計された領域以外では使用しないようにしてください。プレビュー地図は、CRSがリストから選択されるたびに、おおよその使用可能領域をシェーディングします。さらに、このプレビュー地図には現在のメインキャンバス地図範囲の目安も表示されます。

10.5. カスタム座標参照系

QGISで必要な座標参照系が提供されていない場合は、カスタムCRSを定義できます。CRSを定義するには 設定 メニューから customProjection カスタム投影法... を選択します。カスタムCRSはQGISのユーザデータベースに格納されます。カスタムCRSに加えて、このデータベースには空間ブックマークやその他のカスタムデータも含まれています。

QGISでカスタムCRSを定義するには、PROJ投影ライブラリの十分な理解が必要です。まずは Gerald I. Evenden による1990年の米国地質調査所オープンファイルレポート90-284「Cartographic Projection Procedures for the UNIX Environment - A User's Manual」を参照してください( https://pubs.usgs.gov/of/1990/of90-284/ofr90-284.pdf から入手可能です)。

このマニュアルには、 proj および関連するコマンドラインユーティリティの使用方法が説明されています。 proj で使用される地図パラメータはこのユーザマニュアルに記載されており、QGISも同じものを使っています。

カスタム座標参照系の定義 ダイアログでは、CRSを定義するために必要とするパラメーターは2つだけです。

  1. わかりやすい名前

  2. PROJまたはWKT形式の地図パラメータ

新しいCRSを作成するには:

  1. symbologyAdd 新規CRSを追加 ボタンをクリックします

  2. わかりやすい名前を入力します

  3. 形式を選択します: Proj文字列 もしくは WKT です

  4. CRSの パラメータ を追加します

    注釈

    CRS定義はWKT形式による保存を推奨

    Proj 文字列WKT の両形式をサポートしていますが、投影法の定義はWKT形式で保存することを強くお勧めします。使用したい投影法の定義がproj形式の場合には、まずproj形式を選択してパラメータを入力し、それからフォーマットをWKTに切り替えます。すると、QGISがその定義をWKT形式に変換するので、それから保存してください。

  5. 検証 ボタンをクリックすると、CRSの定義が問題ない投影定義であるかどうかをテストします。

../../../_images/customProjectionDialog.png

図 10.3 カスタムCRSダイアログ

CRSのパラメータをテストして、正常な結果が得られるかどうかを確認することができます。これを行うには、既知のWGS84の緯度と経度の値をそれぞれ フィールドに入力します。 計算 をクリックして、結果を座標参照系の既知の値と比較します。

10.5.1. NTv2変換をQGISに統合する

NTv2変換ファイルをQGISに統合するには、もう1ステップ必要です。

  1. NTv2ファイル (.gsb)をQGISが使用するCRS/Proj フォルダに配置します(例えばwindowsユーザは C:\OSGeo4W64\share\proj です)

  2. nadgrids+nadgrids=nameofthefile.gsb )を カスタム座標系の定義設定►カスタム投影法... )の パラメータ フィールドのProj定義に追加します。

    ../../../_images/nadgrids_example.png

    図 10.4 NTv2変換の設定

10.6. 測地系変換

QGIS では、デフォルトで「オンザフライ」の CRS 変換が有効になっており、異なる座標系を持つレイヤを使用すると、QGIS が透過的にプロジェクトの CRS へ再投影を行います。いくつかの CRS については、プロジェクトの CRS に再投影するために利用可能な変換が複数あります!

デフォルトでは、QGIS は利用可能な最も正確な変換を使用しようとします。しかし、変換するために追加のサポートファイルが必要な場合など、場合によってはこれが不可能な場合もあります。より正確な変換があるものの現在使用できない場合には、QGIS は警告メッセージを表示し、より正確な変換が利用可能であることと、システム上でそれを有効にするための方法を知らせてくれます。これは大抵、変換サポートファイルの外部パッケージをダウンロードし、QGISの ユーザープロファイル フォルダの下にある proj フォルダに展開する必要があるというものです。

必要に応じて、2つのCRS間で複数の変換が可能な場合にはQGISはプロンプトを表示し、データに使用する最も適切な変換を情報に基づいて選択することができます。

この設定は、 設定 ► options オプション ► 変換 タブメニューの デフォルトの測地系変換 グループで行えます。

  • checkbox 測地系変換が複数利用可能な場合は尋ねる: をチェックすると、変換元CRS/変換先CRSの組み合わせに対して2つ以上の適切な測地系変換が存在する場合には、ダイアログが自動的に開き、プロジェクトで使用するものとしてそれらの測地系変換のうちどれを選択するかをユーザに尋ねます。このダイアログから変換を選択する際に デフォルト変換 のチェックボックスをオンにすると、選択した内容が保存され、新しく作成されたQGISプロジェクトに自動的に適用されます。

  • あるいは、プロジェクトにレイヤをロードしたり、レイヤを再投影したりする際にデフォルトとして使用する適切な測地系変換のリストを定義します。

    symbologyAdd ボタンを押して 測地系変換を選択 ダイアログを開きます。それから、以下の手順で測地系変換リストの定義を行います。

    1. ドロップダウンメニューを使用するか、 setProjection CRSの選択 ウィジェットを使用してレイヤの 変換元CRS を選択します。

    2. 変換先CRS も同様に設定します。

    3. 変換元から変換先への利用可能な変換方法がテーブルに一覧表示されます。行をクリックすると、適用された設定の詳細と、対応する変換精度および変換の使用エリアが表示されます。

      ../../../_images/datumTransformation.png

      図 10.5 デフォルトの測地系変換の選択

      場合によっては、ご利用のシステムでは利用できない変換があります。この場合には、変換はリストに(灰色網掛けで)表示されますが、変換サポートに必要なパッケージをダウンロードしてインストールしない限りは選択はできません。通常は、対応するグリッドをダウンロードしインストールするためのボタンがあります。このグリッドは、アクティブな ユーザープロファイル ディレクトリ内の proj フォルダに保存されます。

    4. お好みの変換方法を見つけて、選択します

    5. checkbox 優先される演算が失敗した場合、Fallback変換を許可 するかどうかを設定します

    6. OK をクリックします。

      デフォルトの測地系変換 のテーブルに行が追加され、 変換元CRS変換先CRS に関する情報、 変換に適用される 操作Fallback変換を許可 が有効になっているかどうかの情報があります。

    今後は、リストからそれを削除する (symbologyRemove) か、リスト内のエントリを変更する (toggleEditing) までは、QGISは選択された測地系変換を自動的に使用して、これら2つのCRS間で変換を行います。

設定 ► options オプション ► 変換 タブで設定された測地系変換は、システム上で作成されるすべての新しいQGISプロジェクトにも継承されます。さらに、プロジェクトは プロジェクトのプロパティ ダイアログ( プロジェクト ► プロパティ... )の 座標参照系 タブで指定した固有の変換セットを持つこともできます。この設定は現在のプロジェクトにのみ適用されます。