Subject: [ts-mag:00132] OpenGIS Mail Magazine for T.S.U 【第 124号】 Date: Fri, 07 Nov 2003 20:55:05 +0900 From: Taichi FURUHASHI OpenGIS Mail Magazine for Technical Support Users 2003/11/7 Keywords: OpenGIS,TNTmips,Attribute,Attach,Label,ByScript,BMP,GPS オープンGIS テクニカル・サポート専用メールマガジン 第124号「 み ん な で 楽 し く ? ? ? 属 性 入 力 . . . 」 ################################################################# 株式会社 オープンGIS 一人はみんなの為に... みんなは一人の為に... なんて、三銃士の言葉ではありませんが、沢山のラインやポリゴンデータ に対して属性を入力する際に、部分部分を何人かで分かれて入力したい場 合があります。 例えば膨大なポリゴンデータは完成しており、あとは属性入力を行うだけ だったり、等高線のデジタイジングは終わっているものの、まだ高さ情報 は入力されていない... そんなときは、マージ(Merge)という手法を用いることで、別個に入力しま した属性情報や、形状情報を1つのベクタデータにまとめてくれます。 今週はそのマージ、しかも、形状はまったく同じで、標高や属性だけを正 しくマージする方法についてご紹介いたします。 ● 先に結論を申しますと、ラインのマージとポリゴンのマージで、扱い方 が多少異なります。どう違うかといいますと、 ☆ラインのマージは、選択したオブジェクト順に属性や標高値が上書きされる ☆ポリゴンのマージは、選択の順序に関係なくすべて結合する という点です。 と言われても、このままでは、よくわかりませんので、具体的な作業の 流れをご紹介いたしましょう。 【1】デジタイズ済みの等高線に対して、みんなで標高入力 まず、自動トレース機能を使いまして、このようなサンプル等高線データ を作ってみました。 ▽こちらからサンプルデータもダウンロードできます [0.3MB] http://www.opengis.co.jp/img/faq/14all_all41/Sample4Merge.zip まだ、単なるラインデータだけで、高さ情報は持っておりません。これ から高さ情報を与えていきましょう。 a) トポロジレベルを変更 そもそも、ベクタデータを作成する場合、デフォルトはポリゴン生成も 自動的に行う「ポリゴナル(Polygonal)」トポロジタイプが設定されます。 但し、今回の場合、作成するのは等高線ですので、ポリゴンを生成する 必要はありません。そこでまずは、トポロジタイプを等高線に合うよう に「ポリゴナル(Polygonal)」から「プレイナー(Planar)」へと変更しま しょう。既に「プレイナー(Planar)」になっていましたらそのままで結 構です。 ▼メインメニューより [Edit]-[Spatial Data...] を実行 ▼[File]-[Open...] メニューで等高線ベクタオブジェクトを開く ▼[Layer]-[Properties...] メニューを選択 ▼Topology level:欄 を [Planar] に変更 ▼Coordinates:欄 を [3D-XY] に変更 ▼[OK] ボタンを押して Object Properties ウィンドウを閉じる ■[File]-[Save...] で変更内容を上書き保存 詳しいトポロジレベルについてはメルマガ第117号をご覧ください。 http://www.opengis.co.jp/htm/kako_mail/mail_mag_117.htm b) みんなにコピー 最適なトポロジレベルに変更できましたら、いよいよ元になる等高線ベク タデータを、人数分コピーします。 RVC ファイルごとコピーしてもいい ですし、等高線以外のデータも沢山含まれているようであれば、メインメ ニューより [Support]-[Maintenance]-[Project File...] を実行して、 オブジェクト単位でコピーしても良いかと思います。 c) 高さ情報の入力 みなさんに、等高線ベクタがいき渡りましたら、それぞれ高さ情報を入力 していただきます。等高線への標高値入力方法は、もちろん1本1本手入 力してもいいのですが、なかなか大変ですので、[Set Contour Z Values] 機能を利用するのが便利ですね。 ▽この機能についてはこちらの解説サイトをご覧ください。 http://www.opengis.co.jp/htm/basic/z_value.htm 例えば、ここでAさんがこのように標高値を入力し、 Bさんがこのように入力したとします。 重要なことは、お互いに別の場所を入力しているのですが、わざと部分 的にオーバーラップしてみました。 d) 入力ラインだけを抽出 高さ情報を与えましたら、すぐにでもマージしたくなりますが、残念なが ら、そのままマージしましても、予想通りの結果になりません。マージし たはずなのに、どちらかの高さ情報だけしか残らないのです。これは、 ラインのマージ処理に関しましては、選択した順番に属性が転写され、 元々与えられていた高さ情報が置き換わってしまう為に発生してしまう 問題です。その対応策としまして、高さ情報を与えたラインだけを抽出 (言い換えると、高さ情報が与えられていないラインを削除)することで 乗り切れます。 ▼メインメニューより [Edit]-[Spatial Data...] を実行 ▼[File]-[Open...] メニューで標高入力済みベクタオブジェクトを開く ▼Spatial Data Editor ウィンドウの青矢印(Show Details)マークを 下に向け、ライン要素の Show Table ボタンを押して、LINESTATS テーブルボタンを押します。これで、LINESTATS というテーブルが 表示されます。 ▼更に、上に並ぶ View All Record ボタンを押してすべてのラインの 情報を表示し、各ラインの中心Z座標(つまりは標高値)を意味する、 CentZ フィールドが見えるようにスクロールバーを調整します。 ▼CentZ フィールド名の上で右クリックをして、[Sort On This Field] メニューを選択します。これで、各ラインの情報が標高ごとに並びま す。 ▼標高0m(つまり、標高値が未入力)の各レコード左端にある Select Record チェックをすべて入れ(Shift キーを使うと、複数選択が 一度にできます)、メニューより [Record]-[Select Elements] を 選びます。これで、標高値が未入力のラインがすべて選択されました。 ▼あとは、選択したラインを削除するだけです。Vector Tools ウィン ドウの [Edit Elements...(Ctrl+E)] ボタンを押しまして、[Delete Element] Operation に切り替え、[Selected] ボタンを押します。 これで、標高値が未入力のラインが消えました。 ■最後に、Spatial Data Editor ウィンドウから [File]-[Save...] メニューを実行して変更内容を上書き保存して準備完了です。 この「標高未入力ラインの削除」を、すべての作業ベクタデータに対して 行っておいたほうがトラブルが少ないです。 e) すべてをマージ 今までの作業の結果、このようなデータが出来上がりました。 ▽Aさんが標高を入力した等高線ベクタ ▽Bさんが標高を入力した等高線ベクタ ▽標高値がまだ入力されていない、元の等高線ベクタ 最後にこれらをマージ(Merge)します。 ▼メインメニューより [Process]-[Vector]-[Merge...] を実行します。 ▼[Select] ボタンを押して、上記3つのベクタを選択します。 その際の、選択する順番(特に最初)が重要です。 i.元の等高線ベクタオブジェクトを選択 ii.Aさんが標高を入力した等高線ベクタ(Bさんと逆でもOK) iii.Bさんが標高を入力した等高線ベクタ(Aさんと逆でもOK) 最初に、標高値の入力されていないベクタを用意して、後は次々 と、入力済みのラインを被せて高さを置き換えていく方法です。 ▼あとは、デフォルト設定のまま [Run...] ボタンを押します。 ■最後に、出力先のオブジェクトを指定して終了です。 ▽最終的に得られた結果を、色づけしてみますとこのようになります。 元々の、 ▽Aさんが標高を入力した等高線ベクタ ▽Bさんが標高を入力した等高線ベクタ とじっくり比較してみてください。 また、大きなデータを扱う場合は、かならず、小さなサンプルデータを 作ってみて、テストを行ってくださいね。 【2】デジタイズ済みのポリゴンに対して、みんなで属性入力 今度は、ポリゴン同士の場合です。といっても、身構える必要はありま せん。 先ほどの等高線と比べると、圧倒的にカンタンです。 サンプルデータとしては、こんなポリゴンを作ってみました。 ▽ダウンロード先は、先ほどと同じファイルです [0.3MB] http://www.opengis.co.jp/img/faq/14all_all41/Sample4Merge.zip まだ、単なるポリゴンデータだけで、属性情報は持っておりませんので これから入力していきましょう。 a) 属性テーブルの準備 まずは、ポリゴンに対して、属性を入力する為のテーブルとフィール ドを作成します。このあたりの作業は、普段されていると思いますの で省略いたします。詳しいテクニックについては、TNT入門「ベクタ地 理データの編集」のp.18 に記されておりますのでご参考ください。 http://www.opengis.co.jp/getstartj/editvect.pdf [1.8MB] b) みんなにコピー 属性入力用のテーブルが用意できましたら、ポリゴンベクタ・オブジ ェクトをみんなにコピーします。このあたりの作業も問題ないですね。 c) 属性の入力 あとは、みなさんがそれぞれポリゴンデータに対して属性を入力します。 属性の入力方法もTNT入門「ベクタ地理データの編集」のp.19 に記され ておりますのでご参考ください。 http://www.opengis.co.jp/getstartj/editvect.pdf [1.8MB] 今回も、わざと属性を重複させてみたりしてみました。 d) すべてをマージ さきほどと違い、一気に話が進んでいきますが、それぞれ属性が入力 された状態から話を続けます。現状では次の2つのデータが出来上が っているとします。先ほどと異なるのは、特に、属性を与えたポリゴ ンだけを取り出すような処理はまったく行っていないということです (この点で等高線よりも気楽です)。そして、元データすら必要ありま せん。 ▽Aさんが属性を入力したポリゴンベクタ ▽Bさんが属性を入力したポリゴンベクタ 最後にこれらをマージ(Merge)します。 ▼メインメニューより [Process]-[Vector]-[Merge...] を実行します。 ▼[Select] ボタンを押して、上記2つのベクタを選択します。 ▼Table Joining Options:欄を [If Same Table Name and structure] に切り替え、3つのトグルボタンをすべてオンにします。 ■あとは [Run...] ボタンを押して、出力先オブジェクトを指定する とマージ処理が実行されます。 ▽最終的に得られた結果を、文字で表現するとこのようになります。 くれぐれも、出力結果は、元々の ▽Aさんが標高を入力した等高線ベクタ ▽Bさんが標高を入力した等高線ベクタ などとじっくり比較してみてください。 同じポリゴンに対して、ポリゴンBとポリゴンFを割り当ててみました が、どちらの属性もきちんと結合されているのがわかるかと思います。 このように、ポリゴンのマージは、比較的想像通りの処理が行われ、 ラインのマージは、排他的に属性を当てはめなおすため、元々の属性が 外れてしまうことがあるのです。そういった点で、ターゲット以外を削 除する準備作業がどうしても必要になります。 最後に、もう一度まとめてみます。 ☆ラインのマージは、選択したオブジェクト順に属性や標高値が上書きされる ☆ポリゴンのマージは、選択の順序に関係なくすべて結合する 今週の過去プチ・テクニック """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " ポリゴンについている2つの属性を真ん中に表示したい... " " 1種類だけであれば Vector Layer Controls ウィンドウの Polygons " タブで Label: 欄を By Attribute に変え Specify ボタンで属性テー " ブル名とフィールド名を指定すれば可能ですが、2つ以上の情報を同 " 時に指定することはできません。 " " " そんなときは、Label: 欄を By Script に変えて、Specify ボタンで " 簡単なスクリプトを書いてあげましょう。 " " といっても本当にカンタン。次の2行を書くだけです。 " " print(テーブル名.フィールド名A); " print(テーブル名.フィールド名B); " " テーブル名やフィールド名の入力は、Insert/Field... メニューから " 選択すればスペルミスもありません。 " " ● " " また、フィールド名は同じだけれど、レコードが異なる属性の場合は " こんな感じです。 " " print(テーブル名[レコード番号].フィールド名); " print(テーブル名[レコード番号].フィールド名); " " 1つのポリゴンが、複数のレコードとリンクすることが可能ですので " このような表記方法も知っておくと便利です。 " " " 最後に Lable Style... ボタンでフォントの設定もお忘れなく... " " (プチテクニック第41号を改良) " """" 隔 週 で 新 / 過 去 テ ク ニ ッ ク を 交 互 に 発 信 """" New Things 最新情報 ================================================================= = = ハイパースペクトル機能の波長情報転写SML 公開【SML解説】 = http://www.opengis.co.jp/sml/sml_index.htm = = インポート機能の「32bit BMP フォーマット」対応【修正パッチ】 = http://www.opengis.co.jp/htm/patch/patch.htm = = カラーマップ透明時の「縦すじノイズバグ」修正【修正パッチ】 = http://www.opengis.co.jp/htm/patch/patch.htm = = 数値地図2500[SDF]インポート時の「頭文字化けバグ」修正【修正パッチ】 = http://www.opengis.co.jp/htm/patch/patch.htm = = GPS 現在地プロット機能の「Signal Lost 現象」修正【修正パッチ】 = http://www.opengis.co.jp/htm/patch/patch.htm = ================================================================= ■■■■■■ 今 年 も テ キ ス ト 販 売 中 !! ■■■■■■ 昨年部数限定でご提供しました「リモートセンシングテキスト」の改訂版を 今年も作りました!! しかも、値段は安く、中身は濃くなりお買い得です!! 同時に、TNTlite の日本語解説セットも、オープンGIS 独自パッチや、 北海道地図さんの GISMAPTerrain サンプルデータと共にリリースしました。 詳しい内容はこちらをご覧ください。 http://www.opengis.co.jp/htm/info/book.htm ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ バグ・トラブル情報 ??? ??? ??? あれれ、 ??? GPS レシーバはちゃんと衛星を捕捉しているのに... ??? ??? ??? TNTmips では、GPS とケーブルで接続すると、現在位置を画面上に ??? プロットしてくれる、簡易カーナビ機能があります。 ??? http://www.opengis.co.jp/htm/basic/gps_trace_win.htm ??? http://www.opengis.co.jp/htm/basic/gps_trace_mac.htm ??? ??? ところが、MacOSX にて GPS 衛星が 5個〜10個キャッチできている ??? 状態にも関わらず、TNTmips での表示や、ログの保存時に、情報が ??? いくつか欠落する現象が確認されました。 ??? 具体的には Log の保存を始めると Status がしばらく、Acquiring ??? になったり、Status が Good の状態で安定せず、定期的(1分ごとく ??? らい)に Signal Lost したり、Acquiring の状態になる場合がありま ??? す。 ??? ??? もし、このような現象が現れましたら、大変お手数ですが、最新の ??? 修正パッチ(29oct03 以降)を以下のサイトよりダウンロードし充て ??? ていただけますでしょうか。 ??? http://www.microimages.com/freestuf/tntpatch/ ??? ??? お手数お掛けいたしますが、よろしくお願いいたします。 ??? ??? ??? ??? 今週の話題 on メーリングリスト ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ 今週は特にありませんでした。 ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ メーリングリストに参加されたい方は、 info@opengis.co.jp までご連絡ください。 弊社からの対応は バグ対応と、新製品告知のみですが、 ユーザーさまの間での情報交換の場として 多くの方に利用されています。 ■■■■■■■ 現 在 の T N T m i p s の 価 格 ■■■■■■■ ・TNTmips シングルライセンス 840,000円(税別・送料別) ・年間バージョンアップ(2回分) 140,000円(税別) ・年間テクニカルサポート 90,000円(税別) 普段より、元価格にあまり上乗せしていない分、 円相場に応じて価格が変動いたしますことを ご理解よろしくお願いいたします。 わからない点などありましたら、 info@opengis.co.jp までご連絡ください。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ############# このメールマガジンの配信について ################ このメールマガジンは、 年間テクニカル・サポートに加入されている、 ユーザーさまのみを対象としております。 基本的には、登録アカウント1つに対して 1ユーザーを配信対象としておりますが、 例えば、研究室の予算で加入された場合などは、 ご購入いただいた指導教官と、実際に TNTmips で作業を行う学生1名の、 計2ユーザーを対象として配信させていただきます。 1アカウントに対して合計3名以上の配信は行いません。 学生さん2名が同じくらい使用する場合は、 申し訳ありませんが、じゃんけん等で1人に決めてください。 また、テクニカル・サポートの期限を半年以上過ぎてしまった場合は、 メールマガジンの配信を停止させていただきます。 メールマガジンが配信されなくなった時は、 サポート期限が半年過ぎたとお考えください。 転勤、ドメイン変更などでメールアドレスが変わった場合は、 お手数ですが、弊社までご連絡ください。 テクニカル・サポート活用案内 >サービスその1:緊急なバグ情報はすぐにメール配信します。 >サービスその2:TNTmips に関するどんな質問にも TEL/e-mail/FAX で対応。 >サービスその3:対応は最優先で行います。 >サービスその4:専用FAX質問用紙をお送りします。 >サービスその5:週に1回メールマガジンを配信します。 >サービスその6:展示ブースへご来場の方には特製オリジナルグッズを進呈。 >サービスその7:サポート対応で FTP サイトを 20MB まで利用できます。 >サービスその8:メルマガ・バックナンバー・サイトも利用できます。 >サービスその9:現在計画中です... 「これで年間9万円は安い!!」と感じていただけるような サービスを提供していきたいと考えております。 よろしくお願いいたします。 ============ おことわり ============= ※OpenGIS Mail Magazine for T.S.Uでは、 TNTmipsに関わる新しいニュースを、 毎週金曜日に、皆さまへご提供させていただきます。 ※このメールマガジンの転載・転送はご遠慮ください。 ================================