gpx2shp
は GPXファイル(GPS Exchange
Format: *.gpx)を ESRIシェープファイルに変換するコンバーターです。
GPXについては
http://www.topografix.com/gpx.aspを
ご覧ください。
ニュー
ス
Windows
バイナリ作ってみました
結構需要があるようですので
MINGWを使ってコンパイルしてみました。でも、ほかの人の環境で動くのかどうか心配です。もしお試しになったら動作したかしなかったかを私までご連絡
いただけると幸いです。
(2005/2/25)
ター
ゲットを変更しました
SVG関連やgps2shpの機
能について開発を中止しました。よく探してみるとSVG関係のツールはほか
にもありますし、Unixのツールは小さいほどよいので。その代わりshp2gpxの開発をしていきます。アクセスログによるとこの需要は小さくないみた
いですから。
(2005/2/20)
0.69
リリース
バグフィックス(Debian
Bug #292514: Segfaults when called
only with -v)とコンパイルチェックの追加などを変更しています。
(2005/2/20)
rpmできます
谷村さんのご協力によりVine3.1用のRPMパッケージが出来ました。
http://www.ring.gr.jp/pub/linux/Vine/VinePlus/3.1/i386/
pool/gpx2shp-0.68-1vl1.i386.rpm
(2005/1/27)
apt
-getできます
ペー
ターさんがメンテナーになってくれdebianパッケージに入りました。debianお使いでしたら"apt-get install
gpx2shp"で簡単にインストールできます。
http://packages.debian.org/unstable/science/gpx2shp
(2005/1/10)
0.68
リリース.
以前はXMLパーサーとしてlibxml2を使用していましたが、巨大ファイルの変換を行うとメモリを山盛り消費します。このためパーサーとして
expatを使用することとし、一からプログラムを書き直しました。このバージョンでは巨大ファイルの変換にも数MBのメモリ消費で事足りるようになって
います。また、新しいオプションとして-f, -b, --min-points, --min-length and
--min-speedを追加しました。
(2005/1/7)
基本
GPXファイル内には
waypoint, trkpoint, route.という3タイプのデータがあります。
アーカイブ内にある"pinatest2.gpx"をつかって以下のコマンドを実行してみてください。
prompt>
gpx2shp pinatest2.gpx
prompt> ls
pinatest2.gpx (source gpx)
pinatest2_meta.txt (meta data)
pinatest2_rte.dbf (route)
pinatest2_rte.shp (route)
pinatest2_rte.shx (route)
pinatest2_trk.dbf (trackpoint)
pinatest2_trk.shp (trackpoint)
pinatest2_trk.shx (trackpoint)
pinatest2_wpt.dbf (waypoint)
pinatest2_wpt.shp (waypoint)
pinatest2_wpt.shx (waypoint) |
コマンドを実行すると10
のファイルが作成されていると思います。シェープファイルは3種のファイル(dbf, shp,
shx)で表現され、GPXファイルには3種類のデータとメタデータが格納されているため3x3+1=10ファイルできます。ファイル名とシェープフォー
マットは下表のとおりです。
data
type |
file
name |
format |
way
point |
[basename]_wpt.* |
point |
track
point |
[basename]_trk.* |
arc |
route |
[basename]_rte.* |
arc |
meta
data |
[basename]_meta.txt |
text |
特定データのみの変換
GPXファイルから特定
データのみを変換することも出来ます。waypointだけを変換したい場合は'-w'オプションを使用し、同様にrouteには'-r'、
trackpointには'-t'を指定します。
prompt>
gpx2shp -r pinatest2.gpx
prompt> ls
pinatest2.gpx (source gpx)
pinatest2_meta.txt (meta data)
pinatest2_rte.dbf (route)
pinatest2_rte.shp (route)
pinatest2_rte.shx (route) |
パスデータを点データなどに変換
デフォルトでは
trackpointとrouteのパスで表されるデータは線データとして変換されますが、もし点データとして変換したい場合は'-p'オプションを、各
辺ごとに変換したい場合は'-e'オプションを使用します。'-p'オプションを使用したときの変換ファイルには'_pnt"が'-e'オプションを使用
した場合には'_edg'がファイル名につきます。
prompt>
gpx2shp -p -e pinatest2.gpx
prompt> ls
pinatest2_meta.txt
pinatest2_rte.dbf (route path data)
pinatest2_rte.shp
pinatest2_rte.shx
pinatest2_rte_edg.dbf (route each edge)
pinatest2_rte_edg.shp
pinatest2_rte_edg.shx
pinatest2_rte_pnt.dbf (route each point)
pinatest2_rte_pnt.shp
pinatest2_rte_pnt.shx
pinatest2_trk.dbf (track path data)
pinatest2_trk.shp
pinatest2_trk.shx
pinatest2_trk_edg.dbf (track each each)
pinatest2_trk_edg.shp
pinatest2_trk_edg.shx
pinatest2_trk_pnt.dbf (track each point)
pinatest2_trk_pnt.shp
pinatest2_trk_pnt.shx
pinatest2_wpt.dbf (waypoint is always as point)
pinatest2_wpt.shp
pinatest2_wpt.shx |
統計情報
'-s'オプションを使え
ば変換後以下のように簡単な統計情報が得られます。
prompt>
gpx2shp -s pinatest2.gpx
Track Points:
track count: 4
point count: 658
total length: 156565.627989
unconverted: 0( 0.00%)
Routes:
route count: 1
point count: 323
total length: 9258.618971
unconverted: 0( 0.00%)
Waypoints:
point count: 118 |
ノイズリダ
クション
このソフトでは線データの
変換用の閾値を設定できます。もし線データが短すぎたり、動きがなかったりする場合変換を行いません。'--min-points',
'--min-length', 'min-time'オプションでこれらを設定できます。
prompt>
gpx2shp
--min-points 6 -s pinatest2.gpx
gpx2shp:../pinatest3.gpx:3962 track was not converted because of less
then 6 points.
Track Points:
track count: 3
point count: 653
total length: 156439.490642
unconverted: 1(25.00%)
Routes:
route count: 1
point count: 323
total length: 9258.618971
unconverted: 0( 0.00%)
Waypoints:
point count: 118
|
距離と時間の単位について
距離と回転楕円体の単位と
してproj4のサポートする単位を使用することが出来ます。これらの単位は'geod -lu' と 'geod
-le'の2コマンドで参照でき、以下のオプションで変更することが出来ます。
'--length-unit'
(for length column, default: m),
'--time-unit'
(for time column, default: sec),
'--speed-length-unit' (for speed column, default: km),
'--speed-time-unit' (for speed column, default: hour) and
'--length-ellipsoid' (for length calculation, default: UGS84).
時間の単位としては
'sec', 'min', 'hour', 'day'が使用できます。.
その他
この他にもいくつかのオプ
ションがあります。以下のコマンドを参照してください。
GNU C library
http://www.gnu.org/software/libc
expat
http://expat.sourceforge.net/
proj-4
http://www.remotesensing.org/
元ファイルとWindowsバイナリ
http://sourceforge.jp/projects/gpx2shp/files/
Debianバイナリ (by Petter Reinholdtsen)
http://packages.debian.org/unstable/science/gpx2shp
Vine3.1バイナリ(by Susumu Tanimura)
http://www.ring.gr.jp/pub/linux/Vine/VinePlus/3.1/i386/
pool/gpx2shp-0.68-1vl1.i386.rpm
現在ノルウェー人のペーターさ
んと2人で作成していますが、以下の個所で私たちのスキルが足りません。お手伝いいただけると幸いです。
--
binary packages (win, 各種rpm,
osx and etc.)
-- GUI environment
また、バグレポート、ご意見などもお待ちしています。英語か日本語でメールください。
|