おしらせ

UTM1Kmグリッドへグリッド番号の付与

2014年08月08日

ArcGIS10.0以降で、MGRS(Military Grid Reference System)座標値の取得ができる。
このMGRS座標値を、UTM1Kmグリッドの作成で作成したUTM1Kmグリッド(ポリゴン)の属性値として付与できる。
ArcGIS10.0やQGIS2.4を利用した方法は、以下の手順となる。

  1. 経緯度(度(10 進))を取得
  2. 経緯度(度(10 進))からMGRS座標値を取得
  3. 東距、北距が4桁のMGRS座標値を作成
  4. UTM1Kmグリッド(ポリゴン)へMGRS座標値の付与

詳しくは次項を参照。

ちなみに、グリッド番号は規則的な番号の並びなので、地理院地図で必要な場所のグリッド番号を確認し、Microsoft ExcelもしくはLibreOffice Calcなどで必要な分を作成する事もできる。

MGRS座標値とUTMグリッド番号もしくはポイント番号の関係

まずは、MGRS座標値とUTMグリッド番号もしくはポイント番号の関係について。
地理院地図で表示される表記とArcGISのMGRS座標値が同様と思われる(以前、電子国土Web.Nextで表示された表記は異なっていた)。
ただし、地理院地図(UTMグリッド番号もしくはポイント番号)は東距、北距が4桁表記に対して、ArcGISのMGRS座標値は、東距、北距が5桁まで。
ArcGISのMGRS座標値の東距、北距を4桁までに丸めれば、地理院地図(UTMグリッド番号もしくはポイント番号)と同じになる。
MGRS座標値は、以下の手順で、ArcGIS(ArcMap)のステータス バーに表示されるようになる。

  1. データフレームプロパティ|一般タブをクリック
  2. 単位|表示|MGRSをクリック

経緯度(度(10 進))を取得

事前に、MGRS座標値を取得するフィーチャの経緯度(度(10 進))を取得しておく。
新規フィールドを作成し、ArcGISのジオメトリ演算を利用する。

グリッドの中心のポイント番号を取得する時

以下の手順で、グリッドの中心の経緯度(度(10 進))が取得できる。
これで、グリッドの中心のポイント番号が取得できるようになる。

  1. UTM1Kmグリッド(ポリゴン)を読み込む
  2. データフレームプロパティ|座標系タブをクリック一時的に、地理座標系に変更する
    日本測地系JGD2000などを選択、OKボタンをクリック
  3. 属性テーブルを開く
  4. テーブルオプションボタン|フィールドの追加ボタンをクリック
    名前:B、Lなど適宜
    タイプ:FloatもしくはDoubleを選択
    OKボタンをクリック
    経度と緯度の2つ分(2回)行う
  5. 追加したフィールド名を右クリック
    ジオメトリ演算をクリック
    プロパティ:重心のX座標(重心のY座標)を選択
    座標系:データフレームの座標系を使用(GCS:JGD2000)を選択
    単位:度(10 進)
  6. OKボタンをクリック
グリッド番号を取得する時

グリッド番号を取得するには、以下の手順でできる。
これで、UTM1Kmグリッド(ポリゴン)左下のポイント番号(グリッド番号)が取得できるようになる。

  1. UTM1Kmグリッド(ポリゴン)からラインフィーチャへ変換
  2. そのラインフィーチャの頂点のポイントフィーチャを作成
  3. UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみを抽出する
  4. そのポイントフィーチャに対し、グリッドの中心のポイント番号の時と同じ手順で経緯度(度(10 進))を取得する
UTM1Kmグリッド(ポリゴン)からラインフィーチャの変換

以下の方法で変換を行う。
ESRIジャパンのサポートサイトには記してないが、ジオメトリ変換ツールのバージョン2がArcGIS10.0で使用できる。
もしくはQGIS2.4にある同様の機能を使用する。
この2つであれば、UTM1Kmグリッド(ポリゴン)が持つ属性が引き継がれる。

  • ジオメトリ変換ツールのバージョン2|ポリゴンタブ|枠線からライン
  • QGIS2.4|ベクタ|ジオメトリツール|ポリゴンをラインにする

ESRIジャパンのサポートサイトには、ArcView(Basic)の時、以下の方法が記されている。
この方法だと、属性が何も引き継がれないので、今回は使用しない。

  • ラインフィーチャを新規作成|ポリゴンとラインを編集開始|ポリゴンを選択しコピー|ラインへ貼り付け|編集終了(保存)
ラインフィーチャの頂点のポイントフィーチャを作成

以下の方法で作成する。
作成したポイントにも属性が引き継がれている。
ただし、作成したポイントの属性テーブルを開き、「PageNumber」を見ると同じ番号が5つある。
四角形のラインの頂点に対して全てポイントを作成したため。

  • ジオメトリ変換ツール(バージョン2またはバージョン3)|頂点からポイント
    ポイントの重複を許可にチェック
  • QGIS2.4|ベクタ|ジオメトリツール|ノードを展開する
UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみを抽出する

以下の手順で、「PageNumber」の重複した番号5つを1つにする。
これで、UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみを抽出できる。

  1. 上記で作成したラインの頂点のポイントフィーチャの属性テーブルを開く
  2. テーブルオプション|フィールドの追加ボタンをクリック
    FIDのレコードをコピーする準備
    名前:FIDのコピーだと分かり易いもの。例えば、FID2
    タイプ:Long Integer
    フィールドプロパティ(精度):デフォルトの0のままでOK。
    OKボタンをクリック
  3. 作成したフィールドを選択し、右クリック|フィールド演算をクリック
    FID2=FID
    OKボタンをクリック
  4. ArcToolbox|解析ツール|統計情報|要約統計量(Summary Statistics)をクリック
  5. 入力テーブル:上記で作成したラインの頂点のポイントフィーチャを選択
  6. 出力テーブル:「PageNumber」の重複した番号5つを1つにするテーブル名と出力先を指定
  7. 統計フィールド:2で作成したフィールド(FID2)選択
    統計の種類:MIN
  8. ケースフィールド(オプション):「PageNumber」を選択
  9. OKボタンをクリック
  10. ラインの頂点のポイントフィーチャを右クリック|属性の結合とリレート|結合ボタンをクリック
  11. このレイヤへの結合の対象は?
    「テーブルの属性を結合」を選択
  12. 結合に利用する値を持つフィールド
    2で作成したフィールド(FID2)選択
  13. 結合対象のレイヤまたはテーブル
    9で作成した(6で指定した)テーブル名を選択
  14. 結合のマッチングに利用するフィールド
    MIN_FID2
    2で作成したフィールド(FID2)の前に、MIN_が付いたフィールド
  15. 結合オプション
    一致するレコードのみを保持を選択
  16. OKボタンをクリック
    インデックス構築のメッセージが表示される。はい、いいえどちらでも可。
  17. ラインの頂点のポイントフィーチャを右クリック|データ|データのエクスポートボタンをクリック
    エクスポート:すべてのフィーチャ
    座標系の選択:レイヤのソースデータと同じ座標系を選択
    出力フィーチャクラス:UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャの名前、出力先を指定
  18. OKボタンをクリック

以上で、「PageNumber」の番号に重複は無くなる。
UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみが作成されていることを確認する。

ちなみに、属性検索で以下のSQL文が有効になれば、上記の手順は簡略できる。
Microsoft Accessではできたが、ArcGIS上ではWHERE に続く SQL 式の一部から記述を始めるスタイルのためか、条件式にエラーがあるとメッセージが表示されできなかった。

  1. select min("FID") from test_point group by "PageNumber" ←これができなかった
  2. "FID" in (1の結果)
グリッドの中心のポイント番号の時と同じ手順で経緯度(度(10 進))を取得する

最後に、左下に該当するポイントフィーチャに、グリッドの中心のポイント番号の時と同じ手順で経緯度(度(10 進))を取得する。

経緯度(度(10 進))からMGRS座標値を取得

経緯度(度(10 進))が取得できたら、以下の手順でMGRS座標値を取得する。
これで、「PageNumber(1から始まる連番)」とMGRS座標値(東距、北距が5桁)を持つポイントフィーチャが作成できる。

  1. ArcToolbox|データ管理ツール|投影変換と座標変換|座標表記の変換(Convert Coordinate Notation)をクリック
  2. 入力テーブル:上記で作成した経緯度(度(10 進))の属性値を持つ、UTM1Kmグリッド(ポリゴン)の中心に該当するポイントフィーチャもしくはUTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャを選択
  3. 出力フィーチャクラス:これから作成する、MGRS座標値のフィールドを持つポイントフィーチャの名前、場所を指定
  4. Xフィールド(経度):経度(度(10 進))の属性値を持つフィールドを指定
  5. Yフィールド(緯度):緯度(度(10 進))の属性値を持つフィールドを指定
  6. 入力座標の形式:DDを選択
  7. 出力座標の形式:MGRSを選択
  8. ID(オプション):UTM1Kmグリッド(ポリゴン)もしくはライン交点のポイントフィーチャに作成された「PageNumber」を選択
              「PageNumber」には、1から始まる連番が作成されている
  9. 空間参照(オプション):UTM1Kmグリッド(ポリゴン)に定義したUTM座標系を選択
  10. OKボタンをクリック
東距、北距が4桁のMGRS座標値を作成

上記で作成した、「PageNumber(1から始まる連番)」とMGRS座標値(東距、北距が5桁)を持つポイントフィーチャに新規フィールドを作成し、ArcGISのフィールド演算を利用する。
Microsoft ExcelもしくはLibreOffice CalcでDBFファイルを開いて同様に編集も可。
以下の手順で、東距、北距が4桁のMGRS座標値を作成する。

  1. ポイントフィーチャの属性テーブルを開く
  2. テーブルオプション|フィールドの追加ボタンをクリック
    4つフィールドを追加する
    名前:適宜分かり易いもの。例えば、1つ目:GZD_MT。2つ目:Easting。3つ目:Northing。4つ目:MGRS4。
    タイプ:4つともText
    フィールドプロパティ(長さ):デフォルトの50のままでもOK。
    OKボタンをクリック
  3. 作成したフィールドを選択し、右クリック|フィールド演算をクリック
    以下の感じで4つのフィールドに値を入れる
    1フィールドごとに順番に行う
    GZD_MT=Left( [MGRS],5 )
    Easting=Mid( [MGRS],6,4 )
    Northing=Mid( [MGRS],11,4 )
    MGRS4=[GZD_MT] & [Easting] & [Northing]
    OKボタンをクリック
  4. 4つ目のフィールド(MGRS4)に入った値が、東距、北距が4桁のMGRS座標値となる
UTM1Kmグリッド(ポリゴン)へMGRS座標値の付与

以下の手順で、UTM1Kmグリッド(ポリゴン)の属性値に、グリッド番号(MGRS座標値)を付与できる。

  1. UTM1Kmグリッド(ポリゴン)を読み込む
  2. UTM1Kmグリッド(ポリゴン)を右クリック|属性の結合とリレート|結合ボタンをクリック
  3. このレイヤへの結合の対象は?
    「テーブルの属性を結合」を選択
  4. 結合に利用する値を持つフィールド
    「PageNumber」を選択
  5. 結合対象のレイヤまたはテーブル
    上記で作成した、東距、北距が4桁のMGRS座標値がある、UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャを選択
  6. 結合のマッチングに利用するフィールド
    「PageNumber」を選択
  7. 結合オプション
    すべてのレコードを保持を選択
  8. OKボタンをクリック
    インデックス構築のメッセージが表示される。はい、いいえどちらでも可。
  9. UTM1Kmグリッド(ポリゴン)を右クリック|データ|データのエクスポートボタンをクリック
    エクスポート:すべてのフィーチャ
    座標系の選択:レイヤのソースデータと同じ座標系を選択
    出力フィーチャクラス:UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャの名前、出力先を指定

以上で、グリッド番号を属性値として持つ、UTM1Kmグリッドの作成で作成したUTM1Kmグリッド(ポリゴン)が完成する。