第1章 概要
著者:梅谷 武
語句:ToposNote, 概要, フィールドノート, 画面構成, メニュー構成
ToposNoteの概要について述べる。
作成:2009-12-17
更新:2011-03-08
 ToposNoteとは一言で言えば、位置を属性としてもつさまざまな情報を3次元の地図上に表示し、整理・管理するためのフィールドノートです。このような目的のツールとしては、Google Earthという素晴らしい電子地球儀があります。作者のパソコンのデスクトップにも、これがいつでもすぐに使えるようにアイコンが置いてあります。
 作者は山歩きや史跡探訪が好きで、その目的でさまざまな地図や航空写真を収集してきました。10年ほど前からは紙の地図から電子地図に移行し、山歩きには必須の国土地理院の二万五千分の一地形図用としてカシミール3DやGarmin社の地図内蔵型GPSを、ドライブルートの探索にはアルプス社(現ヤフー)やゼンリンの地図ソフトを使ってきました。もっとも最近は、Google MapsYahoo!地図のようなインターネット地図サービスが充実してきた関係で、地図ソフトを立ち上げる回数はかなり減っています。
 しかし、携帯機器を使えば手軽に山に持っていけることから、スタンドアロン型の電子地図の需要がなくなることはありません。むしろ、最近の電子機器の小型化・高性能化によって、需要が増加していく傾向が見られます。また、一回のフィールドワークの計画段階から実施完了までに取り扱う情報の量が一昔前と比べると考えられないほど増大しています。特に写真やビデオのような映像情報を扱うとすぐにギガバイト単位の容量になってしまいます。このようなことから、これらの膨大な情報をどのように整理すればいいかということが課題になっています。
 本格的なGISや専用アプリケーションを除いて、個人レベルでこのような情報を整理するために適したツールといえば、まず次の三つが思い浮かびます。
  1. カシミール3D
  2. Google Maps
  3. Google Earth
 作者はこれらをかなり詳細に調べ、さまざまな使い方を研究してきました。その結果としてフィールドワークの計画立案の段階では大変便利に活用できるようになりました。しかし、収集したデータをこれらを使って整理することはあまりうまくいっていません。そして、これらのデータを自分が満足できるように整理しようとすれば、そのためのツールを自分で開発しなければならないということがわかってきました。
 ToposNoteとはこのような経緯で開発を始めたものです。
 Google EarthやGoogle Mapsにおいては、KMLKeyhole Markup Languageと呼ばれるXML形式の地理情報マークアップ言語が使われています。これはさまざまな情報に位置情報を付加するだけでなく、さらにそれをどのように見せるかという表示上の制御情報も含めることができるものです。KMLは、2008年に地理情報の標準化団体であるOGCOpen Geospatial Consortiumの標準として承認されました。国際標準となった地理情報マークアップ言語は他にも存在していますが、一般向けとしてはKMLが実質的に唯一の国際標準となっています。KMLがフィールドワークで収集したデータを整理する際に必要となる機能をほぼすべて網羅していることから、当初は整理したデータを最終的にKMLで表現することを目指していました。
 2007年に夏休みを利用して、熊野古道伊勢路を一週間かけて回り、GPSとデジタルカメラを使って大量の情報を収集してきました。このときは最初からKMLで整理することを想定して準備しました。そしてその後、数ヶ月に渡ってそのデータを整理するためにカシミール3D、Google Earth、Photoshop、メタセコイア等のソフトと格闘しました。しかし、その結果出来上がったものは、 コース付近の衛星写真の解像度が悪いこと、位置ずれがかなり大きいこと等の理由で、地理情報としての資料的な価値は低く、人に見せられるようなものではありませんでした。
 このような経験を通じてわかってきたことは大雑把に二つあります。
  1. Google Earthは山歩きを表現するには適していない。
  2. 地理情報マークアップ言語は、人が読み書きし易いものでなくてはならない。
 作者はプログラマですから、3Dモデルや地理情報等のデータを作成する際には、GUIが必ずしも適しているとは限らないということを経験的に知っています。少し頭を使えば数十秒で数値入力できることが、GUIでやると数十分かかり、しかも不正確なものができあがるというのはよくあることです。またGUIでは何時間もかかる作業を、簡単なプログラムで一瞬のうちに終わらせてしまうということもあります。
 このような経緯からToposNote開発の基本方針として、次の二項目を定めました。
  1. 国土地理院の二万五千分の一地形図をベースとし、それに標高データを加えて3次元表示する。
  2. 地理情報マークアップ言語は、誰でも手軽にプログラミングできるスクリプト言語を拡張したものとする。*1
 このスクリプト言語としては、プログラミングよりもデータ記述をおもな目的としていることから、小さくて軽いLuaポルトガル語で月を意味するスクリプト言語を選びました。
 作者は現在、3DモデラーとしてメタセコイアBlenderSketchUpを併用しています。CGデザイナーではありませんので、簡単なものだけ自分でモデリングして、後は素材集から適当なものを選び、変換・加工・編集して使っています。CGの使い方としては、計測データや数値シミュレーションを空間的に表現する目的が多いため、だいたいはOpenGLを使ってC/C++でプログラミングしています。
 ToposNoteにはGUIベースの3Dモデラーのようなモデリング機能を実装せずに、既存の3Dモデラーで制作した3DモデルをWavefront OBJ形式で読み込んで利用するようになっています。その代わりにスクリプト言語Luaを拡張して、3Dモデルをプログラミングできるようにしました。これによりC/C++コンパイラを使う手間を省くことができ、数値モデリングが手軽に行なえるようになりました。
 多面体や関数のグラフのように数値だけで定義できる図形は容易にプログラミングできます。またLuaには標準的な数学関数が実装されていますので、簡単なものであれば数値計算と数値モデリングを組み合わせて数学ソフトのように使うことができます。
 本格的な数値計算や数値解析の結果を表示する場合は、Fortran、C/C++等のコンパイラやPythonやRubyのようなスクリプト言語における計算結果を表示するためのデータとしてLuaスクリプトを生成し、ToposNoteを可視化ツールとして利用することになるでしょう。
 さらにToposNoteでは、物体の運動軌跡をデータとして持つことができるため、剛体力学のシミュレーションができます。しかし、CGデータを静的に扱う設計になっているため、動的に変化する弾性体や流体を表現することはできません。
 ToposNoteはプログラムランチャーとして各情報に対応するアプリケーションを起動する機能を提供しています。例えば写真をサムネイルとして貼り付けたときに、その原画を拡大して見たい、あるいは編集したいというときがあるでしょう。その場合、そのサムネイルをダブルクリックすることで、JPEG形式に関連付けられているアプリケーションが起動するようになっています。また、貼り付けた情報にURLを関連付けた場合は、ブラウザが起動してそのURLの情報を表示します。
 ToposNoteは3D地形図エンジンを内蔵していますが、地図や標高データ自体は含まれていません。データとしては国土地理院発行の次の3種類のものを用います。
  1. 10mメッシュ標高データ(基盤地図情報):オンライン/無料
  2. 数値地図25000(地図画像):オンライン・CD-ROM/有料
  3. 数値地図200000(地図画像):CD-ROM/有料
これらを内部形式に変換して利用しますが、この形式のデータをユーザーが独自に作成することもできます。
 日本国内で山登りをしようとする人間にとっては、国土地理院発行の二万五千分の一地形図に描かれた等高線で地形を読むことは最低限必要なスキルです。しかし現実には、十分に地形を読んでいたつもりでも道に迷うことがありますし、土砂崩れ、気象の急変等の要因で事前に想定していた計画を現場で変更しなければならないような事態も起こり得ます。このようなときに3D地形図は威力を発揮します。訓練を積んでいない初心者であっても、一目瞭然で現場周辺の地形を把握し、その状況に応じたコースを選択することができるでしょう。
 ToposNoteはポケットPCに標高データや地形図とともにインストールし、GPSと組み合わせることによって「山歩き用3D地形ナビゲーター」として使うことができます。
OS Windows XP/Vista/7
メモリ 512MB以上
グラフィックス 解像度640×480×256色以上, OpenGL対応アクセラレータ
OS Windows7
メモリ 3GB以上
グラフィックス OpenGL 2.x以上
 ToposNoteの各機能を使うためのメニューです。
 世界座標系とは、あらゆる物体の位置を記述するための基準となる右手系の 正規直交座標系のことで、その原点付近を格子によって表します。
 画面を写しているカメラの視参照点を原点とする右手系の正規直交座標系をカーソルと呼びます。この座標系は物体を定義するときの基準となるため物体座標系とも呼ばれます。常に世界座標系を平行移動した姿勢を保ち、世界座標系に対して回転することはありません。カーソルの原点付近を座標軸によって表します。
 カーソルの位置を世界座標系の座標値で表します。
 編集モードにおいて物体を選択した場合は、物体の位置を表します。
 画面を写しているカメラの視方向を角度で表し、視野範囲を半径で表します。
 編集モードにおいて物体を選択した場合は、物体の姿勢を表します。
 操作モードには閲覧モードと編集モードがあります。
 編集モードにおいては物体を操作することができます。
保存 現在カーソル位置・カメラ姿勢とトポスオブジェクトを保存する。
GPS GPSモニタを起動する。
コンパスON コンパス連動機能をONする。
コンパスOFF コンパス連動機能をOFFする。
終了 プログラムを終了する。
閲覧モード 閲覧モードへ切り替える。
編集モード 編集モードへ切り替える。
切り取り 選択された物体を切り取る。
コピー 選択された物体をコピーする。
貼り付け コピーされた物体を複写する。
削除 選択された物体を削除する。
全削除 すべての物体を削除する。
全画面表示 全画面表示にする。ESCキーで元に戻る。
静止 アニメーション動作を行なわない。
ステップ ステップモードでアニメーション動作を行なう。
アニメーション アニメーション動作を行なう。
平面表示 上空から平行投影し、X-Y平面を表示する。
立体表示 カメラ位置から透視投影し、空間を俯瞰する。
幾何座標系 幾何座標系で座標表示する。
測地座標系 測地座標系で座標表示する。
カーソル表示 カーソル表示をON/OFFする。
世界座標枠表示 世界座標枠表示をON/OFFする。
文字表示 文字表示をON/OFFする。
地図表示 地図表示をON/OFFする。
地形表示 地形表示をON/OFFする。
マニュアル オンラインマニュアルをブラウザで開く。
版数情報 版数情報を表示する。
地図画像変換 地図画像変換処理を行なう。
ライセンス認証 ライセンス認証を行なう。
注  記
*1地理情報マークアップ言語はXMLで表現するのが一般的になっていることから、なかなかそこから離れることができず、独自仕様のXML形式を定義し、試作したことがあります。この過程でXMLは自分が考えている目的には適していないということが確認できて、スクリプト言語に移行することになりました。
語  句
KML Keyhole Markup Language
OGC Open Geospatial Consortium
Lua ポルトガル語で月を意味するスクリプト言語
リオデジャネイロ・カトリカ大学の情報工学科TeCGrafによって開発され、MITライセンスで公開されている。
 
Published by SANENSYA Co.,Ltd.