6. ファイル変換とデータ・フォーマット

(1) 貿易コンバータ

景観シミュレータでは、当初、モデリング機能については、既に普及しているCAD等に依存することとし、景観検討に固有の機能を重視する、という考え方から、コンバータを作成する、という方針を採ってきました。

Ver.2.05においては、現場のユーザーの要望などに基づき、システムの基本機能のデバッグと平行して、モデリング機能の拡充を進めてきました。この結果、Iでも紹介したように、かなり複雑な歴史的建築物のディテールも作り込むことができるようになりました。しかし、引続き、コンバータの機能も重要と考え、デバッグを進めてきました。

主なものとしては、CADデータとして、DXF形式、MiniCadのテキスト形式を用いています。

また、ステレオ空中写真の自動解析結果をLSS-G形式に変換するコンバータも、幾つかの現場での使用経験、及びトラブルへの対処に基づき、改良を行っています。

一方、イメージ・データに関しては、当初、PC系の画像関連ソフトが少なかった状況の中で、殆ど唯一のファイル・コンバータであったCNVARTというソフトの使用を前提としていたのですが、SGI形式の出力段階にバグがあり、欠陥のあるデータを出力するものであったため、このバグを解決する(ファイル・ヘッダー部分の情報が欠落した箇所に、常識値を埋め込む)処理を、コンバータとして作りました。しかし、Ver.2.05では、この欠陥のあるファイルでも直接読み込めるように、シミュレータの側の入力段階にこの機能を作り込んであるので、殆ど不要になりました。また、シミュレータの側でも、bmp形式のデータを読込めるようにしてあります。また、市販の画像処理も、PC上で動かせるソフトが増えてきています。

a.ステレオ空中写真自動解析結果の利用

(DTM2LSS)

基本的には、国土地理院が、同名の建設技術評価を行った際に、各社に提出を求めた評価用のデータ形式を入力形式としています。

標準的には、2バイト(1ワード)で一つの点の標高値を表現しています。数値は0.1mを1とする整数値で、2バイトのうち、先頭バイトが上位バイトです。

一つの行を左から右に横にスキャンします(ロウ)。一つの行が終ると、セパレータなしにただちに次の行が始まります。行は、南から北に向けて縦に並んでいます。

このようにして長方形の区域の標高データが一つのバイナリー・ファイルとして表現されています。

一般には長方形の区域は、東西南北ではなく角度が振れています。そこで、補足情報として、開始位置・終了位置の座標値、横長さ、縦長さ、傾斜角が添付されてきます。この情報を、メニューの詳細設定で入力することにより、正しく変換が行われます。

時に、行北から南という順で並んでいる場合があります。このような場合、南北が逆転したような地形データが生成してしまします。これを避けるために、縦長さの入力に際して、マイナス値(例えば10kmならば、-10000)と入力することにより、正しく変換されます。

解析区域を定義するためには、始点座標、縦横長さ、傾斜角を示すだけで十分なのですが、一般にはデータには終点座標も記入されています。これは上記の情報があれば計算で求められます。そこで、詳細設定に際しては、この計算を行い、データに添付された終点座標の値と比較することにより、正しく入力が行われたかどうかを検算することを可能としています。

DTMデータをそのまま用いると、2mメッシュの地形データを作成することが可能ですが、この場合、データが非常に大きくなり、ロードあるいは表示に非現実的な時間を要する場合があります。そこでコンバータでは間引き処理を行えるようにしています。間引きに際しては、平均値などはとらずに、途中区間のデータを捨てるという処理をしています(格子点の情報は、その点に関する情報であって、その周辺の平均値ではない)。

また、DTMデータの全範囲ではなく、一部だけを切出して用いることも可能としています。縦横それぞれについて、何%から何%までの範囲、という形で指定を行います。この場合であれば、間引きを行わなくとも実用的なデータ・サイズに収まる場合もあると考えられます。

貿易コンバータでは、解析結果をもとに、地面を三角形分割して地形を表現しています。三角形は、正方形を2分割した直角二等辺三角形です。

空中写真の元データがある場合、これを用いて地形を着色することができます。解析結果としてのDTMデータは2mメッシュであるのに対して、この元データは0.2mメッシュと、一桁細かくなっています。そこで、貿易コンバータでは、それぞれの三角形の中にある点のRGB値の平均値を求め、これを三角形の色としています。

色データは、RGB値(各1バイト)を、標高と同じような順序で並べたものです。中には、0.2m以外のメッシュであったり、DTM形式ではなく、TIFF等の画像ファイルの形式で提出された場合もあるようなので、注意が必要です。TIFF形式では、別途画像ソフトなどを用いて空中写真として眺めることが可能なのですが、景観シミュレータのための地形データに着色する目的には不適当です。

法線ベクトルを各頂点に定義することにより、見かけ上、地形をなめらかにすることが可能です。このような処理を行う場合には、チェックボックスにチェックを入れます。

以上が正しく設定されていれば、変換処理自体は単純なので、問題が発生する可能性は小さいと思われます。メモリ(仮想記憶を含む)が小さなシステムの場合、読込んだデータを格納するための配列が切れないために失敗する場合がある程度です。

地形データはバイナリ形式なので、パラメータとして設定した条件に基づいてバイナリ・ファイルを読み込んだ場合、途中でファイルが終ってしまったり、読み込み終了後もファイルが終っていないような場合には、設定したパラメータの誤りが考えられますが、データ形式から規則違反や異常を検出することはできません。

正常に変換されたかどうかは、生々したLSS-Gファイルを景観シミュレータで読み込んで表示してみて初めて確認することができます。

これまでに生じたいくつかの異常現象を列挙してみますので参考にして下さい。

【変換異常の例】

・ 針の筵のような地形が生成する場合

元のバイナリデータのワードが、下位バイト→上位バイトの順で並んでいることが考えられます。ワークステーションやマッキントッシュで作成したデータをコンバータでPC用に変換する際の設定の手違いなどにより生じるエラーです。変換しなおすことが困難であれば、適当なプログラム言語で小さなコンバータを作成すればよいでしょう。数行で書けます。

・ バリが付く場合

変換範囲を、0〜100%ではなく、例えば1〜99%とすることで掃除します。

・ 南北が逆転する場合

これはロウが北から南に向っているためです。縦長さを負値として入力すれば解決します。

[参考]国土地理院が審査時に指定したデータ形式(DTM:数値標高データ)に基づき、貿易コンバータで処理しているDTMデータの仕様

長方形の領域を対象とする。

回転角がゼロのとき、カラム(X)方向は真東、レコード(Y)方向は真北となる。カラム方向の長さを「横長さ」、レコード方向の長さを「縦長さ」と呼ぶ。

原点の座標は別途資料で示される。

傾きは原点のを中心に反時計回りの回転角を度で示す。

データは、原データの格子間隔おきにZ値を並べたものである。格子間隔は、航空写真の撮影縮尺に応じて任意である(別途資料で示す)。

Z値は2バイト・バイナリーで、Hibyte->Lobyteの順に並んでいる。一番下のラインから始め、一つのラインを左から右にスキャンした後、上のラインに順次進む。テキストデータ形式の場合もある。

オルソ画像(カラー)は、RGBの順に3バイトで1ピクセルを表す。DTMデータの8倍の解像度である(これは可変であるべき、との指摘もあります。必要があれば対応します)。

b.DXF形式

この形式は、元来は、AudoDesk社のAutoCADのデータ形式ですが、説明書に仕様が公開されていたことから、CADデータの交換のために広く用いられている形式です。

景観シミュレータでは、仕様が公開されているRelease12Jまでを対象としています。この場合、ソリッド・モデルなどは扱えないので、形状を線分の集合体として受取り、接続関係などを復元解析して、立体を生成し、これに基づいてLSS−G形式を生成しています。

頂点座標の照合のために、大きな辞書を作成するので、巨大なデータの場合には、メモリがパンクするか膨大な時間がかかるおそれがあります。なるべく、小さなブロックに分割されたデータとして処理することが望ましいでしょう。

線分の集合体から面を復元する過程で、同一平面上にある、という条件を重要な判定指標としていますので、例えば捻れた四角形(同一平面上にない)等が頻出するようなデータでは、甚だ寂しい変換結果となります。

変換結果が期待と大きく異なる場合には、解析に失敗し、捨てられたデータが大量にあることが考えられますので、一度、[□立体を復原する]のチェックを外して、ワイヤーフレーム型のデータとして変換し、景観シミュレータで読込んで確認してみることをお勧めします。

正八面体を二分する正方形のように、最終的に出力される面ではない面を面として認識することでおかしなデータを生じる場合があります。これはコンバータのロジックの未熟に起因するもので、今後の改良に期すものです。通常の建築物などの場合には、滅多にありません。

線分データでありながら、起点の座標と終点の座標が同じ値となっているようなケースもしばしばあります。このような場合、変換に際して、[変換経過を表示する]をチェックし、コンソールで確認することができます(そのような箇所で一度停止するので、改行キーを叩いて確認すると先に進みます)。余りに多いようでしたら、元のデータ入力の際の問題を疑ってみる必要があるかも知れません。

c.MiniCADテキスト形式

このデータは、景観シミュレータのLSS−Gにやや近い構造を持っています。仕様書などはないのですが、意味を連想させるようなキーワードが用いられているので、コンバータ作成が可能でした。但し、メーカー側で仕様を拡張し、変換できなくなる場合もありえます。掃引空1面に近い立体の生成が多用されています。また、一度生成した立体を回転させることも行われています。一般論として、このようなパラメトリックな形でデータが記述されていると、CAD等においても、一度保存して、再度読み込んだあとでも、パラメータを変更するような編集が可能となります。景観シミュレータにおいても、例えばパラメトリックな部品として生成したままの球であれば、保存し、再読込みした後に直径を変更することが可能です。しかし、タイル分割された面単位で色彩などを編集した結果、パラメトリックな部品としての属性が外れ、唯の多数の多角形の集合体(閉多面体)となってしまった後に、半径だけを変更するような処理はもはや不可能です。

変換結果に疑問がある場合には、DXFと同様に、[□変換経過を表示する]をチェックし、途中のエラー・メッセージなどを監視してみると、原因が類推できる可能性があります。

(2) SGI形式の問題点

【NEW】SGI形式のイメージ・データは、建設省版・景観シミュレータで当初から採用してきたデータ形式です。特徴としては、フルカラーで、テクスチャや不透明度などの様々の高度な表現を記述できるほか、ややマイナーであるだけにヴァージョンが枯れていて、仕様変更が頻繁でないことが挙げられます。一方欠点として、このデータ形式を標準で入出力できるシステムが少なく、ファイル・コンバータなどに苦労する、という点が指摘されてきました。以前の版では、数少ないコンバータを紹介したのですが、Ver2.05では、あまり使われていない前景を用いて、BMP形式,JPEG形式のファイルを読み込み、SGI形式で保存することができるようにしました。また、以前は貿易コンバータを通してしか利用できなかった、RGB形式(同じFormatであるが、仕様と少し違う点があるもの)でも、一応、コンバータを通さないで読み込めるようにしました。パワー・ユーザーの中には、常用しているPhotoShopに、ファイル変換のプラグイン(フリーウェア, RGBFORMAT.8BI)を追加導入して、SGI形式の入出力ができるようにしています。出力に関しては、画面をAlt+PrtScrキーにより、ペイントブラシ等にコピーし、保存することができます。これを.BMPなどの任意の形式で保存すれば良いでしょう。

(3) その他のファイル変換

景観シミュレータには、様々の形式のファイルが存在します。とりわけ、VRML形式は、似たような発想で(共通の祖形であるOpenInventor形式)から作成されているので、類似した構造を有しています。

現在、韓国との共同研究の中で、コンバータなどの作成に取組んでいます。 

7. トラブル・シューティング

Ver.2.03で生じていた問題は全て解決してあります。導入時の障害については、前述のように、メッセージとして出力するようにしていますので、インストールの参考として下さい。操作段階で生じるエラー・メッセージに関しては、付録の中で記述してありますので、そちらを参照して下さい。報告があればここに追記します。

建設省建築研究所ホームページ

http://www.kenken.go.jp

の、景観シミュレータのコーナー(日本語ページの研究トピックスで第六研究部から入る)に、本マニュアルと同じものを掲載しますので、この部分を見て下さい。