てくてくダイアリー

GISとか使ってました

でむでむでーむーでぇむー

2008-06-27 | ひとりごと
記事タイトルは,どなどなどーなーどぉなーのメロディーにあわせてよんでください.

訳あって,23区のDEMデータを作ることになった.うーん,過去にも作った気がするが,そのデータを発掘できないのだ.


23区のDEMを作るのはちょっと面倒で,なぜかというと埋立地があるために,補間がうまくいかないのだ.ちょっとしり込み気味.

で,やってみたらやっぱりうまくいかない.なんで,数値地図をポイントに変換する際に海を-9999に指定しても,それがNodataとして認識されないのか.もしかしたら,データの型がIntegerとかだとダメとかあるんだろうか.まったく,わからん.



しかし,そういえば,確かすんごく昔の日記に,海がある場合の数値地図の変換方法をメモっておいた気がする.昔の日記を検索してみたら...あったあった.

以下,昔の日記からの抜粋です.

=====ここから
数値地図50mメッシュDEMを平面直角などに投影して,何も考えずにArcGISでスプライン補間すると,すごく大きい標高値やすごく小さい標高値が出力されるセルが出来てしまい,ArcGISのデフォルトでの標高表示ではうまく表示されない.これは投影するとデータの最大・最小XYの範囲の中に,元々のデータのサンプルポイントがない領域がデータの周囲にできてしまうせいだ(つまり外挿になる).

これに打ち勝つ(デフォルトでもきれいに表示できるサーフェスを作成するため)には,Spatial Analystのオプションで範囲として補間の対象とするポイントデータを指定する.

ということはこれまで分かっていたんだけど,海があるとこれだけではうまくいかんやん!私が今必要なのは,東京23区のDEMなのだ.東京には東京湾という海がある.埋立地がある.海があろうとなかろうと,きれいに表示できるDEMができないと気持ち悪いやん!

ちなみにうまくいかなかったのは,数値地図変換ツールで海部に対して-9999を割り当てた場合だった.-9999というのはNodataという意味で,Spatial Analystでの解析の対象外とするマジックナンバーなのだ.

試しにSpatial Analystのオプションのマスクにも,補間の対象とするポイントデータを指定するが,やっぱりうまくいかず.東京湾の埋立地の淵がやたらと大きな値になってしまう(例えば90mとか.どんな防波堤や!).まったく,どうせいっちゅうん?

これに打ち勝つには,数値地図変換ツールで海部を「出力しない」設定にし,Spatial Analystの範囲とマスクとして補間の対象とするポイントデータを指定する.どうやら,Nodata値の入ったポイントが存在するのと,ポイント自体が存在しないのとでは処理が違うみたいだ.もしかすると,補間処理の時には-9999をNoData値として認識していないのかもしれない(あくまでも推測だが.)

しかしこの回避策がわかるまで,結構時間がかかったぞ.これは,試行錯誤自体に時間がかかったことと,使っているコンピュータが非力で(4年前のコンピュータ)CPUを使う処理は格段に処理が遅いことが原因だ.一度処理を流したら,50分ぐらい待たなければならない(23区の範囲を補間しようとする場合).その間コンピュータ君もうぃーーーーんとうなってなんだか大変そうだ.そろそろ新しいコンピュータ欲しいな.

=====ここまで

そっか,この時(2年前だった)は2002年に買ったコンピュータを使っていたのか...それは,遅かろうに.今使っているコンピュータだと同じ補間処理でも,10分弱で終了する.でもこれも1年半ほど前に買ったPC(しかもノートなのでメモリが少ない)なので,最近のPCならもうちょっと早いんじゃないだろうか.

しかし,作業はメモっておくものですね.

最新の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。