ノード接続チェックの見直し改良をしてみた2012年11月13日 21時17分47秒

年々まっしになってますが昨年度も道路基盤図データ作業でエラい目に合いましたので
これまでも品質を保つために各種検査ツールなどはあったのですが量とスピードを考慮して時代に沿う 形を模索しています。


ノード接続とは、ネットワーク接続用のデータや路線、道路基盤データ、地番図用の筆ポリゴンを作るために必要な形成線同士の交点が一致しているかどうかを検査してその後の処理に応用するための手法の事です。ひと昔前はプロット出力とかしたり画面チェックでやってたりしたのですが、あまりにも時間がかかり過ぎたり漏れがあったりしたのでツール開発に踏み切るようになりました。しかし処理要素数が増えると遅くなったりしてたのでプログラミングのロジック見直しする事になりました。

○印部分の頂点が接続されていない事がわかる

これまでは使用メモリをセーブする事も考慮して開発してましたが最近はメモリ価格の下落もありアマゾンで1000円程度でDDR2の1GBが購入できます。さっそく入手し実装してハードウェアとソフトウェアのベストな融合作業を発案。

テストデータは2種類用意してテスト。
旧のロジック(2分探索法=バイナリサーチ)
新のロジック(ハッシュ法←よくメモリを食う)とで比較しました。

具体的な目的は接続されていない頂点にマーキングを出すというものでした。
改良結果を以下に示します。


ハッシュ法とは、hash=切り刻むという語源から来てるアルゴリズムでハヤシライス(hashed beef rice)とかでもネーミングされています。
(関係ないけど、そういえば私は20歳くらいまでハヤシライスはハヤシさんが発案したからついた名前だと本気で思ってた(-o-;)

その中でもPerl等の連想配列で使われているチェイン法は格納部に衝突が起こると劇的に遅くなる事からノード数に変動あると実装が難しいと言われるオープンアドレス法を採用(超大変でしたが)。効果は・・・それなりに出ているようです。

旧ロジックのテストではMicroStationSE(V7)を使いましたが105万点のデータでやったところ処理数が1/3くらい(約5分)の所で暴走しました。32MBの壁を超えたようです。
効果の所は13.5倍ですが、たぶん暴走せずに3/3までやりきった事を想定して時間計算すると×3倍として40倍速いスピードになると思われます。

体感速度があがる事で技術者の成果品質も上がる・・・と期待します。

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

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

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

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

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

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

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


DMProで作られたDGNの属性を取得2012年09月27日 12時10分45秒

MicroStationで使われているDMProですが、属性情報をユーザーリンク情報に埋め込んで使用されてたりします。
これがクロスプラットフォームで利用するときや、データ変換するときにとっても厄介で困るときがあります。

例えば地形データですと、分類コードや図形区分、取得年月日や、3次元の高さ情報などを要素1つ1つにユーザーデータで付加されており、取り出すに取り出せない事が多いそうな。
フォーマルな使い方ならば、データベースファイルにMSLINK番号でリンクすると思うのですが、DMPRO特有のこの使用は、DMPROを持っていない人にとってはほぼ扱うのは不可能な感じです。(特殊な技術が必要です

とりあえず、そんな人たちのために、その情報をテキストファイルに引き出すツールを開発 しました。

※DM地形データは表現分類が多い上に最近はコード情報 化が複雑な使用になってきている。

※MicroStation V7でユーザーデータ(16進数)を表示したころ
V7(SE,J)などでは、「ユーザーデータリンク」という表記で16進数の数値がズラズラと表示されているだけです。最初これを見たときは私も引いてしまいました。

※MicroStation V8でユーザーデータリンク(16進数)を見えるように属性表示したところ。
V8になって、その16進数の数値が何を表しているのかが属性タブで簡易的に解るようになりました。でも1つ1つ要素をクリックしていかないといけない。

※ツールを使ってテキストファイルに出力し秀丸エディタで オープンしたところ。
そこで一括でそれらを取得するツール開発案が登場です。
基盤地図情報やDM地形図作成などの仕事は数千面単位の図面ファイル数になり、また表現分類は複雑に縮尺が入り交じる事があるので数千のレイヤーに分かれたりします。
クリックして調べて行くのは現実的に無理です。

という事で途方に暮れてる人から、たまたま相談の連絡が入ったので作り込んでみました。
DMPROのデザインファイルをシェープファイルに変換したいが属性データベースはない・・・という最初は良くわからない状況でしたが、要素に埋め込まれているものを展開していく他ないそうです。
これで他の形式に変換可能ですね!

お困りの方、是非ご相談ください。

セルライブラリを画像ファイルに書き出すツール2012年07月05日 17時32分41秒

マイクロステーションで、たくさんのシンボル記号のライブラリファイルであるセルライブラリですが、数が多くなると管理するのも割と大変です。
そんなときに一気に画像ファイルに書き出すツールです。


※ツールを実行して地形図1/2500のセルを自動で画像化してるところ
 なんと200種類以上のセル図形全部が30秒以内で画像化可能!σ( ̄∇ ̄;)


新しいシンボル記号が増えたりしたら既存のセルライブラリにあるのかないのか・・・。
新しい記号だったり古い記号が混じってたり。 いちいちセルを配置してから作るなんて事してたらコストがかかってしゃあないという事で開発しました。


※エクスプローラで出力されたJPGファイルを表示したところ

画像ファイル(BMPやJPG)に指定した大きさで1枚1枚を作ってくれるので画像データベース化や電子ファイリングする事も可能です。

マイクロステーションのdgnの場合、セル名をdgnからでなく、セルライブラリから取り出す場合はちょっとテクニックが必要です。
(セルヘッダじゃなくてセルライブラリヘッダのとき)
具体的にはテキストのくせに要素共用体の中にlong値として保存されています。何でやねん!
MDL側でも大丈夫ですが仕組み的にはlong値のデータはradix-50のCharacterCodeとしてエンコードで取り出せます。



・・・・。説明がしにくいけど、わかりにくくて申し訳ない。

とりあえずセルライブラリのセルを調べたいとかあれば、いいのができました・・・というお知らせでした。

これでiPhone、Android用のアプリに埋め込めそうです。
たぶん、そのうち作り込みすると思います。

お困りの方は是非相談ください。

ライン瞬殺ぶつ切りツール2012年02月24日 17時38分02秒

シンプルなんですが、マウスクリックした場所で
線を分割するツールです。

意外なことにマイクロステーションでは、この機能がなく、
似ているもの(トリミング機能)で線をカットするものは、
私にとってお世辞にも使い易いと言えません。

仕方なく実用レベルのものを開発。

ちょっとした小ワザツールとして、あなたの作業のお供に。

・その場所に頂点がなくても近い線上の座標で切断。
・分割後のMSLINK,図形キーもちゃんと保持。
・キーポイントスナップ、間近スナップ対応

プチ技術ですが積み重ねで少しでもコストダウンを図れるように、
今お仕事をさせて頂いている発注元のお客様に
「カワイイ」と言われるような、
「安くて早くて良い品質」と言われるような
理由の1つにしたいです。

これでコーヒー1杯分を飲むくらいの時間をセーブできるかも。

MicroStationとGoogleMapの夢のシンクロツール!2011年10月20日 21時08分16秒

以前から似たようなのはあったのですが、この度めでたくパッケージ化販売する事になりましたので、弊社ページに載せる前にフライングで少しですがまじめに紹介します。
お客様のウケも最高に良いツールの1つです。

これでもか!」っていうくらい費用対効果のバツグンに高いシステムですので、是非導入をご検討ください。必ず経費をコストダウンできます。
MicroStationV7(95,SE,J)とMicroStation V8 MDL対応で99,800円(税込み)です。
(残念ながらPowerDraft,PowerMapには対応していませんが)

1)MicroStationのビューをクリックしたらGoogleMapが連動します。
  GoogleMapをクリックしたらMicroStationのビューが連動します。
  Googleのジオコーディング機能による住所入力による位置特定が可能。
      MicrostationやGoogleのクリックした場所の住所を表示可能。

2)その場所の航空写真が見れます。簡易的な意味でオルソ写真の代わりになるかも。

3)その場所のストリートビューが見れます。現場行く手間が大幅に省けるかも。
 ちょっとした微笑ましいオマケ機能として、2次元上の指定ポイントが
   ストリートビューの3次元パノラマ部分の該当箇所に写っている!
これ!って書いてる矢印の先の所です)スゲェ。(ハリソン風に)

4)その場所の国土地理院の電子国土基本図(1/25000)ウォっちずが見れます。
 DM編集とかに役に立つかも。

5)その場所のMapFan(Web)が見れます。情報探しに良いかも。
  広告映ってしまうけど。

6)その場所のMAPPLE(ちず丸)が見れます。MapFanにない情報があるかも。
  これも広告映ってしまうけど。

7)その場所のYahoo地図が見れます。航空写真はパスコさんのが表示される。
 Googleの衛生写真に比べて新しくてキレイかも。これも広告映りますが。


日本測地系、世界測地系に対応。TKY2JGD.PARのパラメータファイルの読み込みをする高精度機能。都市計画作業に。地番図編集に。地目照合に。評価替えの画地計測に。路線図編集に。現地調査に。経年変化修正に。家屋調査に。構造物名称特定に。防災マップに。地形編集に。道路台帳に。河川台帳に。上下水道施設設計に。住居表示に。社員教育に。

あなたの作業の全ての手助けをしてくれるこのシステムの導入を是非ご検討ください。
お呼び頂ければデモンストレーションをさせて頂きます。

ポリゴンの自動修正ツール2011年03月25日 15時05分07秒

地形図等を利用していると以下のように、見るに耐えない、きちんとオン処理されていない汚い図形にたくさん出くわしますので、また社内用として開発させられました。
        (↓↓誰や!過去にこんな成果で納めたやつは!↓↓)

一括の自動処理できちんとオン処理されたポリゴンを生成します。

汚い図形が1個存在してたら大抵、その地域の図形は同じオペレータや会社によって入力されている可能性が高いので多い所では数千個〜数万個の建物図形が存在しますのでそれをいちいち手作業でやるのは大変という所から生まれたツールです。
他に応用的な使い道があれば良いのですが・・・。

GoogleMapとMicroStationの連動アプリ2011年01月29日 15時48分01秒

また社員たちに開発させられました。

マイクロステーションとGoogleMapを連動させるツールです。
※動きを確認させる動画のため、ファイルサイズを抑えるために画質をあえて落としてます

要素をクリックする事でGoogleMapが連動して表示されるのが わかります
航空写真などでも表示できるので、使い方によってはものすごい威力を発揮するかと思います。
このアプリケーションはMDL(C言語)とDelphi(Pascal)とJavaScriptとHTMLの4つの言語を組み合わせて開発したので大変苦労しました




このブログ画面からオーバーしててすみません

旗揚げツール2010年10月28日 17時41分51秒

また社員たちに開発させられました。

君らは困った時しか私のところに来ないのか?

以前にも下水の作業とかで生産スピードが間に合わないとかで
似たようなのを作らされましたが、今回は道路台帳用として



仕様としてはシンプルなもので、引出線(旗揚げ線)は
3点入力で2点目の角度が鋭角にならないように、
文字列は左下原点書き出しで自動的に垂直配置するもの。
本来なら文字列とラインを慎重に別々に2回に分けて
入力する必要がありますが、これで一発配置

MicroStation専用入力メニュー22010年10月25日 16時31分26秒

アクティブメニュー2と言いましてこれまでMDLの中だけで
作ってきましたがコントロールを今の時代にあったものに合わせ一新しました。
エクセルで記述できるこのメニューは旧バージョンでもおなじみのものです。


※MicroStation上でダブルクリックする事で目的の設定値が一瞬でセット。

特徴として次のような事ができます。

・メニューウィンドウの大きさを変更可能
・レポートリスト表示(画層、色など、要素タイプ)が可能
・各行のバックカラー、フォントカラーを指定可能
・項目名の幅を任意に調整可能
クイック検索(キーワード検索)が可能
アイコン表示、リスト表示
・リロード簡易化

※BMPを作る事でアイコン表示も可能。初心者や外国人にもわかり易い!

このメニューがあれば基本的な事は何でも間に合います。
正規表現などによるキーワード検索も可能。

※実際にはサイズ変更やカテゴリとアイテムの割合など自由自在。

地形図入力などでは項目数が700種類以上あるのでそのレイヤーとして登録するのは普通なら非常に難しいですがこれで解決される部分は多いと思います。

開発は結構しんどかったです。