2010年04月30日

カシミール3D + 数値地図5mメッシュ(標高) 横浜及川崎

カシミール3Dで5mメッシュの横浜及川崎を表示させると、ところどころおかしなことになる。
62417128.jpg
↑こんな感じに、主に海上に縞状に他地点のデータらしきものが出現する。

で、ちょっと調べて場当たり的な対策をした。

現象:
標高データのヘッダ(データファイルの属性を記述したテキストファイル)のレコードごとのフラグが「0(記述なし)」になっていると、その部分に関してカシミールが誤作動するようだ。

対策:
ここを「1」に書き換えてカシミールでlemファイルを読み込み直せばきちんと表示される。なんとも場当たり的だけど。データいじっちゃってるし。

ヘッダファイルはたくさんあるので、全部を手動で修正するのは大変。
複数ファイルの検索置換をまとめて実行できるテキストエディタかなにかでHEADERフォルダ内の「フラグ,0」を「フラグ,1」に置換するか、一行だけのこのスクリプトで処理。スクリプトの文字コードはSJIS(ヘッダがSJISなので)。

スクリプトを使ってMac OS Xで修正する例:
1) デスクトップにYOKOHAMAというフォルダを作って、その中に5mメッシュCDのDATAフォルダとHEADERフォルダをコピー。次に上記スクリプトもYOKOHAMAフォルダに入れる。
2) ターミナル(アプリケーション→ユーティリティ→ターミナル)でYOKOHAMAフォルダに移動。
$ cd Desktop/YOKOHAMA
3) コマンドを実行。
$ perl fix_header.pl HEADER/*.csv
処理が終わったらHEADERフォルダ内のbakファイルを取り除き、YOKOHAMA フォルダをWindowsにコピー、DATAフォルダ内のlemファイルをカシミールで開けば、正しく表示される、はず。