Db2地理空間分析
シリーズ
当記事は「3. JGD2011座標系の設定」です。
- Db2の地理空間分析機能
- 地理空間分析機能を有効にする
- JGD2011座標系の設定
- SHAPEファイルのインポート
- 緯度・経度情報をインポート
- DBeaverでDb2の地理空間情報を表示してみる
- 空間処理変数を使ってみる
1. JGD2011座標系
Db2 Spatial Analysisには事前によく使いそうな空間参照系の定義が
ビューSYSGEO.ST_SPATIAL_REFERENCE_SYSTEMS
にあり、ここにあるもののみが、空間参照系として指定できます。
ここにない場合は、
ビューSYSGEO.ST_COORDINATE_SYSTEMS
に5000 を超える座標系が用意されており、そのいずれかに基づいて新しい空間参照系を作成可能です。
Db2地理空間分析
シリーズ 「4. SHAPEファイルのインポート」で国土交通省国土数値情報ダウンロードサービスから東京都の行政区域データ のSHAPEファイルをダウンロードしてインポートするのですが、このSHAPEファイルで使用されている空間参照系がJGD2011
です。
このデータをそのまま(変換せずに)インポートするには、 JGD2011
の空間参照系がSYSGEO.ST_SPATIAL_REFERENCE_SYSTEMS
に定義されている必要がありますが、この空間参照系の定義はデフォルトで入っていません。
よって、「4. SHAPEファイルのインポート」 の前準備として、JGD2011
の空間参照系を設定します。
またはSHAPEファイルの座標系を現在SYSGEO.ST_SPATIAL_REFERENCE_SYSTEMS
に定義されている座標系に変換してもOKです(geopandasで簡単にできますが、ここでは説明しません)。
JGD2011
の空間参照系を設定はDb2 Spatial Analysisに必須ではありませんが、今後のDb2地理空間分析
シリーズではここで作成したJGD2011
の空間参照系を使っていきますので、そのままコードを実行したい方はここでJGD2011
の空間参照系を設定を行ってください。
JGD2011
について詳しく知りたい方は以下を参照してみてください:
https://www.gsi.go.jp/sokuchikijun/datum-main.html
2. JGD2011座標系の設定
JGD2011
はSYSGEO.ST_COORDINATE_SYSTEMS
には定義されています。
ESPGコードは6668なので、以下で確認します。
SELECT * FROM SYSGEO.ST_COORDINATE_SYSTEMS
WHERE ORGANIZATION='EPSG' AND ORGANIZATION_COORDSYS_ID = 6668;
結果:
COORDSYS_NAME COORDSYS_TYPE DEFINITION ORGANIZATION ORGANIZATION_COORDSYS_ID DESCRIPTION
------------- ------------- ------------------------------------------------------------------------------------------------------------------------------------------------- ------------ ------------------------ -----------------------------------------
GCS_JGD_2011 GEOGRAPHIC GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] EPSG 6668 JGD 2011 touhokutaiheiyouoki - was 104020
これを使ってJGD2011座標系の設定します。
いろいろたくさん書きましたが、要は以下のコマンドを使用するDbに対して発行して、JGD2011座標系の設定を行ってください。
各パラメーターの設定はDb2ドキュメント空間参照系の作成を参照してください。SRS_IDは2011
で登録しています。今後はこの2011
をSRS_IDとして指定していきます。もちろんパラメーターはご自身の環境に合わせて変更可能です。
CALL ST_CREATE_SRS('GCS_JGD_2011', 2011, -180, -90, 1000000, 0, 1, 0, 1, 'GCS_JGD_2011', 'GCS_JGD_2011')
Db2 CLIで対象のDbに接続後、あるいはDb2 Warehouse on CloudのWebコンソールの「SQLの実行」画面より実行してください。
無事設定できたかはSYSGEO.ST_SPATIAL_REFERENCE_SYSTEMS
を確認してみましょう:
SELECT * FROM SYSGEO.ST_SPATIAL_REFERENCE_SYSTEMS WHERE COORDSYS_NAME = 'GCS_JGD_2011';
結果:
SRS_NAME SRS_ID X_OFFSET X_SCALE Y_OFFSET Y_SCALE Z_OFFSET Z_SCALE M_OFFSET M_SCALE MIN_X MAX_X MIN_Y MAX_Y MIN_Z MAX_Z MIN_M MAX_M COORDSYS_NAME COORDSYS_TYPE ORGANIZATION ORGANIZATION_COORDSYS_ID DEFINITION DESCRIPTION DEFINER
------------ ------ -------- --------- -------- --------- -------- ------- -------- ------- ------ ------------------ ----- ------------------ ----- -------------------- ----- -------------------- ------------- ------------- ------------ ------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------- ------------ ----------
GCS_JGD_2011 2011 -180.0 1000000.0 -90.0 1000000.0 0.0 1.0 0.0 1.0 -180.0 9.00719907474099E9 -90.0 9.00719916474099E9 0.0 9.007199254740989E15 0.0 9.007199254740989E15 GCS_JGD_2011 GEOGRAPHIC EPSG 6668 GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] GCS_JGD_2011 XXXXXXXX
もし間違って登録して削除したい場合は、以下の以下のコマンドをを使用するDbに対して発行してください:
CALL ST_DROP_SRS('GCS_JGD_2011')
(パラメータはSYSGEO.ST_SPATIAL_REFERENCE_SYSのSRS_NAMEです)
以上です。