ESRIのFileGeo(ファイルジオ)データベースをAPIでいじってみた2012年10月16日 20時13分27秒

ArcGISの進化系というか最近流行?のFileGEO DataBase(ファイルジオデータベース)ですが、ESRIからAPIが公開されていたので少しいじってみました。
実はジオデータベースの種類としては2種類あります。

1つはFileGEO(ファイルジオ)データベースファイルで拡張子がgdbで、格納容量に制限がなくベクトルの 他にラスターも埋め込めます。
もう1つはPersonalGEO(パーソナルジオ)データベースで、
拡張子がmdb(つまりAccessデータベース)になり、
ファイル制限が2GBになります。

今回は面白そうなので、FileGEO(ファイルジオ)の方にしました。

ただ、ESRIから公開されているAPIは私の嫌いなVisualStudio用と、まぁまぁ好きなLinux用、そして身近なMacOSX用がありましたので、今回は環境も整っているMacOSX用を使い、コンパイル環境としてGCC4.2、そして統合開発環境としてAndroidアプリ開発でおなじみのEcripse(JUNO)を使いました。

※Ecripseでコーディングしたところ

基本的にはlibFileGDBAPI.dylibというライブラリにアクセスする事でジオデータベースへの読み書きを行います。
(これはWindowsで言う所のDLL(ダイナミックリンクライブラリ)です)
MacOSXはベースがdarwinというBSD系のUNIX環境ですのでUNIX経験者であればそれらしく使えます。
もちろんライブラリを組み込まないと行けませんが。

※FileGeo(ファイルジオ)データベースのシェープファイルにアクセスしたところ

上の画像サンプルは緯度経度が表示されているのですが、これを図形化するには平面直角座標に変換してOpenGLのGLUTなどを使い、Canvas展開すればそれらしいGISシステムになると思います。スピードも速い感じがしてますが、どちらかというとアプリやシステム化というよりは、最終納品形式がファイルジオ形式だったとしたときに、ArcGISでちまちま手作業でシェープファイル集めて仕上げてやるような事よりもこれらのAPIを使い一括でやる方が良い気がしました。


ちなみに、またいつかDelphiとかでも使う可能性があったのでとりあえず、Embacadero(旧Borland)のimplibユーティリティコマンドでVisulalStudio2010のDLLを処理してみたら330 個程の関数が使われているようでした。さーっと見てみるとGetGeometryTypeとかがあるのでトポロジー系の処理もこれでいけるんでしょうか。もう少し研究が必要なようです。

とりあえず、まだ誰もやってないみたいなので、やってみました報告でした。
そのうち、MicroStationやその他のGIS系アプリケーションからダイレクトで読み書き できるようにしてみたいと思います。

生(ナマ)でデザインファイル(dgn)の情報を抜き出してみた2012年10月26日 12時57分24秒

デザインファイルの処理は通常はMicroStation(マイクロステーション)そのものを使って内部から処理しないと情報を引き出せません。

今回は、マイクロステーションもMDLも使わずにダイレクトにデザインファイルから情報を引き出す事に成功。
仕様言語はC++(とc)でWindows 32bit環境で作りました。


一応まだV7のレベルですがそれらしく引き出せました。
TCBの情報やアクティブ設定値(画層、色、線種、線幅等)、図形グループキー、MSLINK番号、座標値、要素タイプなどなど。

処理速度は「バカっ速」(o_o)!なようです。

そういえば、TCB(Terminal Control Block)の 中を見てて気づいたのですが、対象となるデザインファイルの色番号に対する色の定義などもありました。
(いわゆる0=白で、1=紺などの)

その昔、JICA(ジャイカ)の方からバンコクから入手したデザインファイルに関する、ある依頼があって開けてみると背景がオレンジ色のデザインファイルを見た事がありました。そのときに知ったのですが当時、デザインファイル(dgn)は軍でメインで使われているとかでした。
図形を処理するには何も問題がなかったのですがこの辺りの値を変更したらそういうファイルが出来上がるのも頷けます。
処理速度といい、まだまだ奥が深いものです。

ただたぶん、この前にやったFileGEO(ファイルジオ)への処理と組み合わすとマイクロステーションからダイレクトにFileGEOやSHAPE(シェープファイル)への書き出しが可能だという見解がでました。
近い将来の生産体制に大きく変化をもたらしそうです。

とりあえずご報告。

秒殺ポリゴン生成ツール2012年10月30日 18時41分49秒

コストダウンは小さな努力からコツコツと・・・という事で繁忙期に備えて破壊力のある装備を準備中。毎年口を開けて仕事を待っているだけの業者もいるようですが、当社は日頃からお仕事を発注してくれているお客様へ感謝の意を込めて、昨年よりも少しでも進化する事を目標にしてます。

最近は1都市分全てのポリゴンを作ったりするので、そのへんにあるGISソフトでは時間がかかり過ぎて処理が追いつかない。
(10数万ポリゴンの生成等を何度もやる事が増えました)

このツールは以前から作ってはいたのですが、ノードエラーがあったときに無限ループに入るなどのえらい問題がありまして、それをバグフィックスカバーしたものです。

緑色の線データから水色のポリゴンができる 。ボタン1つで一撃!速っ!

処理速度は、私のマシンでは3000ポリゴンくらいで4秒くらいでした。
数百ポリゴンでも3秒くらいだったので、たぶん数万ポリゴンになっても時間 はそんなにかわらないと思います。やってないけど。
(最初の読み込みセッションだけに時間がかかっているようです)
これで夜中に処理流して帰って朝になっても終わってないなんて事もなくなります。
もし処理が途中で止まってたりしたら撃沈ですし。

とりあえず、これの優れていると思った所は、管理者でなくても入力オペレーターさんが編集しながらエラー検査ができ、検査を繰り返す事でデータクリーニングの質が向上します。
通常よくあるGIS系のソフトなら線をぶちぶちにするかセグメント化したりしないといけないのですが、これはポリゴン形成線の対象となる画層や色を指定するだけです。
あと、大外のポリゴン作成(自動的に左回りになります)やホール図形にも対応。