DATE : 2007/10/26 (Fri)
空間情報ビューア、エディタの uDig は、PostGIS の geometry 型の列を認識して表示してくれます。
初めは、OpenGIS 仕様にのっとって、GEOMETRY_COLUMNS テーブルで指定されている列しか認識しないものと思っていたのですが、試しにビューを作って動的に幾何オブジェクトを生成した場合でも、uDig は認識して表示してくれました。
これで、uDig での表示用にビューを活用できることが分かりました。これまでは、わざわざ問い合わせからテーブルを生成していました。しかし、問い合わせからのテーブルの生成では、問い合わせ元のテーブルが更新されても生成されたテーブルは更新されません。そのため、表示用にビューが使えると、更新作業がいらず、楽になります。
DATE : 2007/10/22 (Mon)
「DS 文学全集」(任天堂)を購入しました。著作権の切れた名作が100本収録された電子ブックソフトです。作品のデータのほとんどは青空文庫のものが基になっているようです。
青空文庫はむかし使っていたことがあったのですが、PC 上で長文のテキストデータを読むというのは私にとって結構苦痛で、3、4作読んだところでまったく足を運ばなくなってしまいました。それでも、いつか青空文庫の本が読めないかと思って、テキストデータの表示できる携帯端末を探してみたりしていたのですが、ここにきて望みどおりのものが出てきました。
縦書き表示で、フォントも綺麗です。ただ、文庫本と比べると画面サイズが小さいので、ページをめくるのはどうしても頻繁になります。しかし、画面の隅を軽くタッチするだけで次のページに進みますし、紙のめくれる動きも再現されているので、あまり違和感は感じませんでした。
とくに便利と感じたのは「あらすじ」機能です。作品の内容を簡潔にまとめた文章が読めます。本来は、時間がないときやじっくり読む作品を選ぶ際に利用する機能だと思うのですが、私はもっぱら作品本文を読んだ後に使います。昔の作品が多いので、言い回しが古かったり漢字が難しかったりと、意味の汲み取れないところがところどころに出てくることがあります。しかし、あらすじは現代文で書かれているので、意味の汲み取れなかったところも改めてチェックできるというわけです。
(;^ω^)今秋は名作を読みふけることになりそうです。
(;´Д`)もっとも、これで一気に100冊の積読ができた……とも言えますが。
DATE : 2007/10/16 (Tue)
「エキスパート C プログラミング ――知られざる C の深層」(Peter van der Linden 著、梅原 系訳、アスキー、1996)を読みました。歴史から言語仕様、プログラミングの際のノウハウなど、C 言語をより深く知り、使いこなすための本です。
この類の本は堅苦しい内容のものが多いのですが、本書ではところどころハイテンションな調子で文章が進んでいきます。それに乗せられて、読む側もついつい先へ先へとページをめくってしまう魅力がありました。また、著者らが経験したややこしいバグの例なども掲載されています。
とはいえ、内容はかなりしっかりしています。C の宣言を言語仕様から読み解いたり、ポインタと配列の違いが語られていたり、リンカ、実行時のデータ構造、メモリモデルなど、ハードウェア寄りの章もありました。C の宣言を言語仕様から読み解く部分では、読み解き方が遷移図で示されており、他人のソースコードを読む際に役立ちそうでした。
ただ、1996年(原著は1994年)の本なので、本書に登場する OS は古いものとなっています。主に登場するのは SunOS と MS-DOS です。しかし、C 言語そのものの話題は現在でも十分通用するものばかりでした。
(;^ω^)むしろ、読まないと気付けないような部分がかなりあって驚きました。勉強不足のせいかもしれませんが、例えば setjump / longjump の使用法や、宣言と定義の違いは初めて知りました。
DATE : 2007/10/10 (Wed)
国土地理院が提供する数値地図2500には、道路線の情報が含まれています。しかし、交差点や各道路のつなぎ目の情報は収録されていません。
そこで、次の SQL 文を実行すると、各道路線のつなぎ目が取得できます。ここで、道路情報は road テーブルの the_geom 列に格納されているとします。
SELECT DISTINCT ON ( ST_AsEWKB( location ) ) location FROM ( ( SELECT ST_StartPoint( the_geom ) AS location FROM road ) UNION ALL ( SELECT ST_EndPoint( the_geom ) AS location FROM road ) ) AS vertex_source;
(;^ω^)道路線の両端点を抽出して、重複する点を省いているだけです。
参考文献
- 数値地図2500を MapServer で表示させる 数値地図2500を PostGIS に格納するには、このページを参照してください。
DATE : 2007/10/07 (Sun)
「コンピュータ・ジオメトリ ――計算幾何学:アルゴリズムと応用――」(M・ドバーグ他著、浅野哲夫訳、近代科学社、2000)を読みました。点や線、多角形といった、幾何学的なデータを扱うためのアルゴリズムとデータ構造の本です。
本書では、CG や GIS など、幾何学と直接結び付く応用のほかにも、データベースの検索など、データを幾何学的に解釈することで、計算幾何学分野のアルゴリズムが応用できることも示されています。例えば、身長と体重のデータがあったとすると、それを2次元平面上の点と見なせば、身長・体重が特定の範囲にあるデータを素早く求めることができる、といった具合です。
各章で紹介されている方法を見ると、木構造を活用する例が多く見られます。私は今まで1次元データを扱う木構造しか知らなかったので、本書に出てくるような2次元以上の多次元データも扱える木構造はとても新鮮でした。
また、言語に依存しない範囲でアルゴリズムも具体的に書かれています。そのため、今後も長く使える本だと思います。