自治体オープンデータをOpenStreetMapで利用するために


これはFOSS4G Advent Calendar 2013参加による12/17分の記事です(遅くなって大変すみません)

今回は,最近急速な拡大を見せている自治体によるオープンデータ(以下「自治体オープンデータ」とします)をOpenStreetMapで活用するための実例として,shape形式のファイルをosm形式のファイルへ変換する方法,またそうした作業の後に現在進められている作業・課題について,紹介したいと思います

<変換作業>

自治体オープンデータをOpenStreetMapで活用するために,下記のwikiが公開されています

http://wiki.openstreetmap.org/wiki/Japan_OpenData

OpenStreetMapで利用可能な地理的データの多くはGISでよく用いられるshape形式のファイルで公開が行われていることが多いのですが,shape形式のファイルをJOSMなどのOSMの編集ソフトウェアで直接読み込むことは今の所ができません.そのため,こうしたデータをOSMの編集ソフトウェアで読み込むことの可能なosm形式への変換を行います*.

今回の作業は,静岡県から公開された「ふじのくにオープンデータカタログ」をJOSMで利用しようとした下り専門さんのOSM-TokaiMLへの投稿

https://groups.google.com/forum/?hl=ja#!topic/OSM-Tokai/MQZTmy6bSb0

で文字コードの問題が生じてしまう問題を解決するために行った作業レシピです

作業は大まかに分けて,1)文字コードの変換と2)ogr2osmによるshapeファイルのosm形式のファイルへの変換となります(なおMacOS10.9環境上で作業は行っていますが,同じことはWindowsなどの他のプラットホーム上でもできるはずです)

1)文字コードの変換
これはQGISなどのデスクトップGISを利用する際に問題となる文字コードの変換作業としても使える方法です

基礎知識:GISの属性データは.shpと同じ名前の同じディレクトリにあるdbf形式(dbaseIV)のファイルに格納されています.このファイルの文字コードをSJISからunicodeに変換します

今年のFOSS4G Advent Calendarにも記事を書かれているradoschさんが紹介されている方法をMacOS X上で行ったものです.

http://blog.goo.ne.jp/radosch/e/91abc1fc6c4e903798101215d290455f

1.LibreOfficeを使って,dbfを開きます(dbfはexcelでも開くことができるはずなのですが,なぜかうまくいかなかったりします.また,巨大なファイルだと時間がかかるという問題があります)
2.miに開いたファイルのセルをコピーアンドペーストします
3.utf-8形式でテキストを保存します.
4.libreofficeで保存したテキストを開いて,dbf形式で保存します

これで,dbf形式のファイルの文字コードがunicodeに変換されました

2)ogr2osmによるshape形式からosm形式への変換

http://wiki.openstreetmap.org/wiki/Ogr2osm

ogr2osmはOGRがサポートするベクター形式のファイルをosm形式のファイルに変換するPythonスクリプトです.gdalライブラリのogrモジュールが必要ですが,QGISがインストールされていれば,既にインストール済みなので,shapeファイルを取り扱うときにはQGISもインストールしておくことをおすすめします(http://www.qgis.org/).

xcode並びにコマンドラインツールはインストールしておきます(xcodeはappstoreから.またコマンドラインツールはインストールしていない場合には下記のリンクをクリックするとインストールを要求される画面が出ます)

wikiの
UVM Version
Download via gitのリンクをクリックするか,

ターミナルから
git clone git://github.com/andrewguertin/ogr2osm.git
と入力すると

ogr2osmがインストールされます.

次に実際の変換作業は,homeディレクトリ直下にogr2osmディレクトリがつくられていると思うので,

ターミナルで
cd ogr2osm
として,ディレクトリ移動して,

python ogr2osm.py ???.shp

とします(???.shpの部分は,先ほどの変換したshapeファイルを,そのディレクトリの位置から指定して入力します.面倒であれば,ターミナルの画面に変換したいshape形式のファイルをドラッグ&ドロップすればディレクトリ・ファイル名とも自動で入力されます)

で,下記のような画面が出てくれば成功です



変換後のosm形式のファイルはogr2osmのディレクトリにあるので,これをJOSMなどで開きます

参考までに変換後のデータをgithub上に公開しましたので下記からダウンロードできます.

https://github.com/nissyyu/shizuokadata

<変換後の作業とその課題>

これでオープンデータになった自治体の地図データをじゃんじゃん取り込んでしまえばいいのでは・・・と思ったあなた

実際には一筋縄には行きません!!

先ほどのogr2osm http://wiki.openstreetmap.org/wiki/Ogr2osm のページにも注意書きとして「データのインポートや自動編集については,OSMのコミュニティの地図作成方法をよく理解して,ローカルコミュニティと事前の計画と相談の上行ってね」と書かれています

すでにオープンデータに先行して取り組み,OpenStreetMapでの利用を進めようとしている鯖江においても,データの作成方法の違いやスケール・精度の問題などから既存のデータときれいに重なることはないこと,また自治体から公開されている地図データの作成年次が必ずしも新しくなくOSMのデータより古い場合もあるため,単純にデータをインポートするのではなく,既存のデータとすりあわせて手作業で進めるようなデータの利用の方法が,日本のOSMコミュニティで議論されています

OpenStreetMapでは,自治体や政府のオープンデータを利用することが可能になってきているのですが,公開されたデータをそのまますべて使うというわけではありません,OpenStreetMapでは数多のマッパーによって行われてきたフィールドワークによるデータや,衛星画像によるトレースによるデータなどの蓄積があり,ある意味,自治体や政府のオープンデータはそれらのデータと同列に扱われます.こうしたところにも「下からのオープンデータ」であるOpenStreetMapの特徴が表れているといえます.

自治体オープンデータをOSMで利用したい場合,Talk-Jaで行われている議論が大変参考になりますので,MLを講読することをおすすめします

https://lists.openstreetmap.org/listinfo/talk-ja


*その逆にosm形式のファイルからshape形式のファイルへの変換する方法として既に東大CSISの瀬戸さんが下記のblogで紹介されているようにQGISを使う方法があります.
http://tosseto.info/blog/?p=175

コメント

人気の投稿