ヤマレコなら、もっと自由に冒険できる

Yamareco

HOME > ヤマノート > 写真の位置情報から GPX ファイルを構築する
更新日:2024年08月24日 訪問者数:672
ジャンル共通 IT
写真の位置情報から GPX ファイルを構築する
ふ〜
これは何か
昨今はスマホでもGPSの性能が良くなり、沢登りでも普通にGPSログが取れるようになってきました。しかし、少し前まではちょっとでも谷筋にでも入ろうものならGPSなど役に立たずで正確なログなど期待できませんでした。
そこで私がログ情報保存に使っていた手段が、カシミール3Dのデジカメプラグインを利用して、写真に位置情報を書きこむ事でした。
以前はこの方法で位置情報を書きこんだ写真を Picasa (現 Google フォト)にアップすると、写真が地図上にプロットされてトラックログのように使えたのですが、 Google のサービス劣化のためにこの表示方法が使えなくなってしまいました。
そこで、写真の位置情報を取り出してトラックログへ変換する方法を探していて見つけたのが以下のページです。
しかし、こちらで配布されていたファイルにはいくつかバグがあり、正常に動作しないものでした。
そこで、こちらの製作者の方に許可を取って私が修正、公開する許可を得ましたのでこちらにて公開します。
何ができるの
・ 位置情報が設定された写真からGPSログファイルを作成する
・ GPXトラックログをKMLに変換する
・ Google MapやGoogle Earthでルート上に写真を表示するKMLを作成する
・ 複数のGPXトラックログを一つのファイルにまとめる
など
何がうれしいの
GPSログがない山行のログを写真を元に作り出せます。
もちろん、その他のツールで手作業でログを構築する方法はありますが、写真はGPSの位置情報がなくとも、だいたいの撮影位置を推定できます。カシミール3Dのデジカメプラグインを使い写真を地図上に配置するだけで、時間、緯度、経度、標高のポイントを地図上に落とし込めるのです。
地図上にルートを構築するだけなら他に同様の手段がありますが、時間は手作業で入力しなければなりません。時間が記録された写真を利用できるというのがとても大きいのです。
ダウンロード
上記ファイルをダウンロードし、 ZIP を展開して Excel ファイルを保存してください。
基本的な使い方(位置情報付き写真からGPXログファイルを生成する)
1). フォルダにトラックログを生成したい日の写真ファイルを集める
2). 写真に位置情報がない時はカシミール3Dのデジカメプラグインなどで位置情報を書きこむ
3). Exif2GPX.xlsm を開く
※この警告が出た時は「マクロを有効にする」をクリックしてください
※この警告が出た時は「コンテンツの有効化」をクリックしてください
4). 「写真フォルダを開く」をクリック
5). (1)のフォルダを選択

写真の読み込みが始まり EXIF データがワークシートに入力されます
終わるまでしばらくお待ちください
6). 「ファイルに保存」をクリック
7). ファイルの保存先とファイル名を決定
8). 保存された GPX ファイルをカシミール3Dなどで適宜修正、ウェブサービスにアップ

※ ヤマレコにアップする時は GPS ログとしてアップしてください。

↑ 関係ないけどヤマレコの文字符号化方式が未だ EUC でビックリ。丸囲い文字使ったら化けた。。。久々に見たよ文字化け。。。
技術情報
以上で当初の目的「写真の位置情報からGPSトラックログを生成したい」は達成できます。
以下はそれ以外の使い方、さらに上級、専門知識のある方向けの情報です。
Level 1. 初心者向け
操作のUIは Excel 上部の「クイックアクセスツールバー」に集約してあります。基本的操作はこちらから行ってください。
新規作成 : GPSデータを扱うワークシートを追加します。
写真フォルダを開く : ワークシートを追加してフォルダを選択して含まれる写真のEXIFデータをインポートします。
ファイルに保存 : 表示中のワークシートからGPSデータを生成して GPX か KML に保存します。
写真を追加 : 表示中のワークシートに追加で写真のEXIFデータをインポートします。フォルダ名が異なる時は初期状態では別のトラックになります。一つのトラックログにするときはトラック名を統一してください。
GPSログをインポート : 表示中のワークシートに既存のGPXトラックログをインポートします。トラックログ以外は非対応です。
ワークシート名を変更 : 表示中のワークシートの名前を変更します。
ワークシートをクリア : 表示中のワークシートの内容を消去します。GPSデータを Excel に保存する必要のない時は新規作成せずにこちらでワークシートを使いまわしてください。
ワークシートを削除 : 表示中のワークシートを削除します。不要となったワークシートはこちらで削除してください。
マクロの表示 : 登録済みのマクロの一覧が表示されます。マクロ名は日本語で登録してあるので、なにを行うものか一目瞭然化と思います。
更に右側のボタンはいくつかの動作を集約したマクロとなっています。動作と使い方は実際にクリックして確認してください。
Level 2.マクロぐらい書けるよ!
初期状態で利用できるマクロは
UserMacros
という標準モジュールに集約してあります。
内容は全て
E2G.
で始まるプロシージャの組み合わせのみとなっています。これらのプロシージャの動作は名前から分かるものとなっていますので、これらの組み合わせでお好きなマクロを作成してください。
Level 3. VBAが書けます!
メインのプログラムは
E2G
という標準モジュール、また、設定情報は
UserSettings
という標準モジュールに書いてあります。
条件分岐や、ファイルのUI、ワークブックの構成などを変更する時はこれらを編集します。
Level 4. 自分で違うアプリを作りたい!
実際にEXIF情報やGPSファイルを扱う API は
whoGPSDataConverter
というクラスモジュールとなります。
謝辞
私が最近急にヤマレコにログをアップし始めたのはこのツールのおかげです。
冒頭に書いたとおり、今はGPS性能も良くなったのであまり需要は無いと思いますが、古い山行を掘り起こすには便利かと思います。
当初はデバッグと小さな修正だけ行うつもりでしたが、自分用に色々カスタマイズした結果、内部コードを含めほぼほぼ全く別のものに仕上がってしまいました。とはいえ、こちらのアイディアと必要な情報がなければできませんでした。
オリジナルを作成された IyoShuh さんに心より御礼申し上げます。
お問い合わせ
使い方、バグ報告、要望、苦情などは私の方へお寄せください。
更新履歴
2024-08-10 2.00.0000 公開
2024-08-15 2.00.0002 内部処理修正、ファイル名のサンプル表示
2024-08-20 2.01.0006 複数のフォルダ複数のトラックログに対応,PNG対応,サブフォルダ対応
2024-08-24 3.00.0016 KMLに対応,GPXトラックログのインポートに対応,複数のワークシート編集,クイックアクセスツールバーにUIを集約
お気に入りした人
拍手で応援
拍手した人
拍手

※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。 ぜひご協力ください!

詳しくはこちら

コメント

まだコメントはありません
プロフィール画像
ニッ にっこり シュン エッ!? ん? フフッ げらげら むぅ べー はー しくしく カーッ ふんふん ウィンク これだっ! 車 カメラ 鉛筆 消しゴム ビール 若葉マーク 音符 ハートマーク 電球/アイデア 星 パソコン メール 電話 晴れ 曇り時々晴れ 曇り 雨 雪 温泉 木 花 山 おにぎり 汗 電車 お酒 急ぐ 富士山 ピース/チョキ パンチ happy01 angry despair sad wobbly think confident coldsweats01 coldsweats02 pout gawk lovely bleah wink happy02 bearing catface crying weep delicious smile shock up down shine flair annoy sleepy sign01 sweat01 sweat02 dash note notes spa kissmark heart01 heart02 heart03 heart04 bomb punch good rock scissors paper ear eye sun cloud rain snow thunder typhoon sprinkle wave night dog cat chick penguin fish horse pig aries taurus gemini cancer leo virgo libra scorpius sagittarius capricornus aquarius pisces heart spade diamond club pc mobilephone mail phoneto mailto faxto telephone loveletter memo xmas clover tulip apple bud maple cherryblossom id key sharp one two three four five six seven eight nine zero copyright tm r-mark dollar yen free search new ok secret danger upwardright downwardleft downwardright upwardleft signaler toilet restaurant wheelchair house building postoffice hospital bank atm hotel school fuji 24hours gasstation parking empty full smoking nosmoking run baseball golf tennis soccer ski basketball motorsports cafe bar beer fastfood boutique hairsalon karaoke movie music art drama ticket camera bag book ribbon present birthday cake wine bread riceball japanesetea bottle noodle tv cd foot shoe t-shirt rouge ring crown bell slate clock newmoon moon1 moon2 moon3 train subway bullettrain car rvcar bus ship airplane bicycle yacht

コメントを書く

ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。
ヤマレコにユーザ登録する
Notice [PHP]: Undefined index: yr_viewmode in file /export/httpd/html/mainfile.php line 145
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VOTE_NOTIFY - assumed '_MI_YAMARECO_VOTE_NOTIFY' in file /export/httpd/html/modules/yamanote/xoops_version.php line 81
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VOTE_NOTIFYDSC - assumed '_MI_YAMARECO_VOTE_NOTIFYDSC' in file /export/httpd/html/modules/yamanote/xoops_version.php line 82
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VC_TITLE - assumed '_MI_YAMARECO_VC_TITLE' in file /export/httpd/html/modules/yamanote/xoops_version.php line 89
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VC_CAPTION - assumed '_MI_YAMARECO_VC_CAPTION' in file /export/httpd/html/modules/yamanote/xoops_version.php line 90
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VC_DESC - assumed '_MI_YAMARECO_VC_DESC' in file /export/httpd/html/modules/yamanote/xoops_version.php line 91
Notice [PHP]: Use of undefined constant _MI_YAMARECO_VC_SUBJECT - assumed '_MI_YAMARECO_VC_SUBJECT' in file /export/httpd/html/modules/yamanote/xoops_version.php line 93
Warning [PHP]: array_multisort(): Argument #1 is expected to be an array or a sort flag in file /export/httpd/html/kernel/comment.php line 446