UTM1Kmグリッドへグリッド番号の付与
2014年08月08日
ArcGIS10.0以降で、MGRS(Military Grid Reference System)座標値の取得ができる。
このMGRS座標値を、UTM1Kmグリッドの作成で作成したUTM1Kmグリッド(ポリゴン)の属性値として付与できる。
ArcGIS10.0やQGIS2.4を利用した方法は、以下の手順となる。
- 経緯度(度(10 進))を取得
- 経緯度(度(10 進))からMGRS座標値を取得
- 東距、北距が4桁のMGRS座標値を作成
- 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)のステータス バーに表示されるようになる。
- データフレームプロパティ|一般タブをクリック
- 単位|表示|MGRSをクリック
経緯度(度(10 進))を取得
事前に、MGRS座標値を取得するフィーチャの経緯度(度(10 進))を取得しておく。
新規フィールドを作成し、ArcGISのジオメトリ演算を利用する。
グリッドの中心のポイント番号を取得する時
以下の手順で、グリッドの中心の経緯度(度(10 進))が取得できる。
これで、グリッドの中心のポイント番号が取得できるようになる。
- UTM1Kmグリッド(ポリゴン)を読み込む
- データフレームプロパティ|座標系タブをクリック一時的に、地理座標系に変更する
日本測地系JGD2000などを選択、OKボタンをクリック - 属性テーブルを開く
- テーブルオプションボタン|フィールドの追加ボタンをクリック
名前:B、Lなど適宜
タイプ:FloatもしくはDoubleを選択
OKボタンをクリック
経度と緯度の2つ分(2回)行う - 追加したフィールド名を右クリック
ジオメトリ演算をクリック
プロパティ:重心のX座標(重心のY座標)を選択
座標系:データフレームの座標系を使用(GCS:JGD2000)を選択
単位:度(10 進) - OKボタンをクリック
グリッド番号を取得する時
グリッド番号を取得するには、以下の手順でできる。
これで、UTM1Kmグリッド(ポリゴン)左下のポイント番号(グリッド番号)が取得できるようになる。
- UTM1Kmグリッド(ポリゴン)からラインフィーチャへ変換
- そのラインフィーチャの頂点のポイントフィーチャを作成
- UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみを抽出する
- そのポイントフィーチャに対し、グリッドの中心のポイント番号の時と同じ手順で経緯度(度(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グリッド(ポリゴン)の左下に該当するポイントフィーチャのみを抽出できる。
- 上記で作成したラインの頂点のポイントフィーチャの属性テーブルを開く
- テーブルオプション|フィールドの追加ボタンをクリック
FIDのレコードをコピーする準備
名前:FIDのコピーだと分かり易いもの。例えば、FID2
タイプ:Long Integer
フィールドプロパティ(精度):デフォルトの0のままでOK。
OKボタンをクリック - 作成したフィールドを選択し、右クリック|フィールド演算をクリック
FID2=FID
OKボタンをクリック - ArcToolbox|解析ツール|統計情報|要約統計量(Summary Statistics)をクリック
- 入力テーブル:上記で作成したラインの頂点のポイントフィーチャを選択
- 出力テーブル:「PageNumber」の重複した番号5つを1つにするテーブル名と出力先を指定
- 統計フィールド:2で作成したフィールド(FID2)選択
統計の種類:MIN - ケースフィールド(オプション):「PageNumber」を選択
- OKボタンをクリック
- ラインの頂点のポイントフィーチャを右クリック|属性の結合とリレート|結合ボタンをクリック
- このレイヤへの結合の対象は?
「テーブルの属性を結合」を選択 - 結合に利用する値を持つフィールド
2で作成したフィールド(FID2)選択 - 結合対象のレイヤまたはテーブル
9で作成した(6で指定した)テーブル名を選択 - 結合のマッチングに利用するフィールド
MIN_FID2
2で作成したフィールド(FID2)の前に、MIN_が付いたフィールド - 結合オプション
一致するレコードのみを保持を選択 - OKボタンをクリック
インデックス構築のメッセージが表示される。はい、いいえどちらでも可。 - ラインの頂点のポイントフィーチャを右クリック|データ|データのエクスポートボタンをクリック
エクスポート:すべてのフィーチャ
座標系の選択:レイヤのソースデータと同じ座標系を選択
出力フィーチャクラス:UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャの名前、出力先を指定 - OKボタンをクリック
以上で、「PageNumber」の番号に重複は無くなる。
UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャのみが作成されていることを確認する。
ちなみに、属性検索で以下のSQL文が有効になれば、上記の手順は簡略できる。
Microsoft Accessではできたが、ArcGIS上ではWHERE に続く SQL 式の一部から記述を始めるスタイルのためか、条件式にエラーがあるとメッセージが表示されできなかった。
- select min("FID") from test_point group by "PageNumber" ←これができなかった
- "FID" in (1の結果)
グリッドの中心のポイント番号の時と同じ手順で経緯度(度(10 進))を取得する
最後に、左下に該当するポイントフィーチャに、グリッドの中心のポイント番号の時と同じ手順で経緯度(度(10 進))を取得する。
経緯度(度(10 進))からMGRS座標値を取得
経緯度(度(10 進))が取得できたら、以下の手順でMGRS座標値を取得する。
これで、「PageNumber(1から始まる連番)」とMGRS座標値(東距、北距が5桁)を持つポイントフィーチャが作成できる。
- ArcToolbox|データ管理ツール|投影変換と座標変換|座標表記の変換(Convert Coordinate Notation)をクリック
- 入力テーブル:上記で作成した経緯度(度(10 進))の属性値を持つ、UTM1Kmグリッド(ポリゴン)の中心に該当するポイントフィーチャもしくはUTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャを選択
- 出力フィーチャクラス:これから作成する、MGRS座標値のフィールドを持つポイントフィーチャの名前、場所を指定
- Xフィールド(経度):経度(度(10 進))の属性値を持つフィールドを指定
- Yフィールド(緯度):緯度(度(10 進))の属性値を持つフィールドを指定
- 入力座標の形式:DDを選択
- 出力座標の形式:MGRSを選択
- ID(オプション):UTM1Kmグリッド(ポリゴン)もしくはライン交点のポイントフィーチャに作成された「PageNumber」を選択
「PageNumber」には、1から始まる連番が作成されている - 空間参照(オプション):UTM1Kmグリッド(ポリゴン)に定義したUTM座標系を選択
- OKボタンをクリック
東距、北距が4桁のMGRS座標値を作成
上記で作成した、「PageNumber(1から始まる連番)」とMGRS座標値(東距、北距が5桁)を持つポイントフィーチャに新規フィールドを作成し、ArcGISのフィールド演算を利用する。
Microsoft ExcelもしくはLibreOffice CalcでDBFファイルを開いて同様に編集も可。
以下の手順で、東距、北距が4桁のMGRS座標値を作成する。
- ポイントフィーチャの属性テーブルを開く
- テーブルオプション|フィールドの追加ボタンをクリック
4つフィールドを追加する
名前:適宜分かり易いもの。例えば、1つ目:GZD_MT。2つ目:Easting。3つ目:Northing。4つ目:MGRS4。
タイプ:4つともText
フィールドプロパティ(長さ):デフォルトの50のままでもOK。
OKボタンをクリック - 作成したフィールドを選択し、右クリック|フィールド演算をクリック
以下の感じで4つのフィールドに値を入れる
1フィールドごとに順番に行う
GZD_MT=Left( [MGRS],5 )
Easting=Mid( [MGRS],6,4 )
Northing=Mid( [MGRS],11,4 )
MGRS4=[GZD_MT] & [Easting] & [Northing]
OKボタンをクリック - 4つ目のフィールド(MGRS4)に入った値が、東距、北距が4桁のMGRS座標値となる
UTM1Kmグリッド(ポリゴン)へMGRS座標値の付与
以下の手順で、UTM1Kmグリッド(ポリゴン)の属性値に、グリッド番号(MGRS座標値)を付与できる。
- UTM1Kmグリッド(ポリゴン)を読み込む
- UTM1Kmグリッド(ポリゴン)を右クリック|属性の結合とリレート|結合ボタンをクリック
- このレイヤへの結合の対象は?
「テーブルの属性を結合」を選択 - 結合に利用する値を持つフィールド
「PageNumber」を選択 - 結合対象のレイヤまたはテーブル
上記で作成した、東距、北距が4桁のMGRS座標値がある、UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャを選択 - 結合のマッチングに利用するフィールド
「PageNumber」を選択 - 結合オプション
すべてのレコードを保持を選択 - OKボタンをクリック
インデックス構築のメッセージが表示される。はい、いいえどちらでも可。 - UTM1Kmグリッド(ポリゴン)を右クリック|データ|データのエクスポートボタンをクリック
エクスポート:すべてのフィーチャ
座標系の選択:レイヤのソースデータと同じ座標系を選択
出力フィーチャクラス:UTM1Kmグリッド(ポリゴン)の左下に該当するポイントフィーチャの名前、出力先を指定
以上で、グリッド番号を属性値として持つ、UTM1Kmグリッドの作成で作成したUTM1Kmグリッド(ポリゴン)が完成する。