国土数値情報(旧形式)→シェープファイル
以前、国土数値情報の、行政区域を、シェープファイル・PostGISデータにしました。 道路も表示したいと思ったのですが、 JPGIS準拠データには 道路が無いみたいで・・・旧フォーマット だと「道路(線)」があるけど、この シェープファイルへの変換ツールは使用できません。
よく参考にさせてもらうYaskeyさんのサイトに 国土数値情報のラインデータをShapefileに変換する方法 が説明されていたので、それに従ってやってみました。
必要なソフトは、 Shapefile C Libraryと gen2shpと dbftools(txt2dbf,dbf2txt)。 Windowsへのインストールの仕方はYaskeyさんの テキストファイルをShapefileに変換する方法 に書かれています。簡単に言うと、Shaplib129_bin_win.zipとgen2shp-0.3.1.bin.msw.zipと dbftools-cygwin.zipを解凍して中身を同じフォルダ(C:¥Program Files¥gen2shp-0.3.1¥とか) に入れれて、あとMSVCRTD.DLLをC:¥WINDOWS¥system32に入れる。
道路(線)は都道府県別になっていて、山口県のファイルは N01-07L-35-01.0a.zip。
これを解凍すると、次のファイルができます。
N01-07L-2K-35.txt
N01_07L_台.txt
KS-META-N01-07L-35.html
N01-07L.html
N01-07L-2K-35.txtの線分データの部分(左にL。下部2/3強) だけを抜き出してこれをgenファイルに整形します。
国土数値情報の線データのフォーマットは、 こちらに説明があります。 Lがあるのがリンクデータ(線分データ)の1行目で、 2行目以降に中間点(X座標 Y座標)が、1行に5点ずつはいります。 座標は、東経をX、北緯をYとして0.1秒単位で表しています。 例えば、X座標4712954というのは、東経130度54分55.4秒ということです。
genデータ(Arc/Info Generate files)のフォーマットは
番号 経度,緯度 経度,緯度 ENDという感じ。データとファイルの最後にENDが入ります。経度緯度は度の十進数。 フォーマットについてよくわからなくても、Yaskeyさんのページをよくみて やれば大丈夫です。
attファイル
Yaskeyさんのページでは、genファイルに整形する方法は丁寧に説明してあるのですが、
attファイルの整形についてはあっさり書いてありますので、勝手に少し補足してみます。
・属性データを編集する
N01_07L_台.txtをExcelにインポートしたもので、後に必要となるのは、
路線コード、路線種別コード、路線名、線名、通称。
だから、1,2行目やA列・C列は不要です。削除してもよいけど、
残しておいても問題はないと思います。
・attファイルに属性をマッチングさせる
「整形したエクセルのattワークシート」とは、genファイルを整形した時に作っておいたatt
というシート。1列目に路線コードがはいったものです。
これに、VLOOKUP関数で路線名、線名、通称、路線種別コードをつけてやります。
N01_07L_台.txtをインポートしたワークシートがsheet1、attワークシートがattで同じファイルに
あるとして、attのB1はこんな感じ。(E列に路線名がある場合)
=IF(ISNA(VLOOKUP(A1,sheet1!A:G,5,FALSE)),"",
(VLOOKUP(A1,sheet1!A:G,5,FALSE)))
C1、D1にも同様に、線名・通称がはいるようにして、これらのセルを下までコピーします。
また、よくわからないのですが、2列目には何か一意のNo.が要るようなので、
AとBの間に列を挿入して連番をつけました。
あとの「genデータをShapefileへ変換する」や「txt2dbfを使用してattファイルをdbfファイルに投入する」 はわかりやすく書かれてあり、それにしたがってやれば大丈夫です。
| 固定リンク | コメント (0) | トラックバック (0)


最近のコメント