iphoneをGPSにする
私は以前、山ではGPSにガーミンを使っていました。昨年iphoneを5cにしたのを切っ掛けに、GPSにはiphoneを使うようになりました。使用しているアプリはDIY GPSで、地図にはカシミール3Dで切り出した10mメッシュ等高線地形図を用いています。iphoneのGPSの精度はかなりのもので、もうガーミンのGPSに負けていません。A-GPSの有効な範囲ではiphoneの方が勝っているとともに、ログの飛びも無くなりました。
図は兵庫県の後山の地図で、ログは12月末の山行の記録です。歩いた経路は登山道の無いルートで、雪道だからこそ歩けるのですが、10mメッシュ等高線地形図が役立ちました。
地図の切り出し方や、DIY GPSの使い方は、アプリ開発者の下記を参照して下さい。
http://diygps.net/
図は兵庫県の後山の地図で、ログは12月末の山行の記録です。歩いた経路は登山道の無いルートで、雪道だからこそ歩けるのですが、10mメッシュ等高線地形図が役立ちました。
地図の切り出し方や、DIY GPSの使い方は、アプリ開発者の下記を参照して下さい。
http://diygps.net/
GPXファイルから自分用のコースタイムを作成
またGPSの利点は、ホワイトアウトでも道迷いを防止し、目的地にたどり着けることにもあります。一昨年、視界3mの雪の中でも、道に迷うことなく、氷ノ山の三の丸までたどり着けたのは、ガーミンのGPSのおかげでした。
ガーミンと比べiphoneの画面は大きいので、地図が見やすくなり、GPSが使いやすくなりました。今後は、iphoneが私のGPSとして活躍すること間違いなしです。
また、iphoneには山と高原地図のアプリと地図も入れているので、代表的な山であれば、地図を忘れて行っても、コースタイムを確認することが出来ます。自分独自のコースタイムも、カシミール3Dを使って作成しておけば、iphoneで確認することも出来ます。
自分独自のコースタイムは、GPSのログを分析して、自分の歩く特徴を把握して作成しています。左図は私の低山での速度係数と勾配の関係です。2000m以下の山では、気圧の影響をあまり受けないので、大峰山,雪彦山,後山,段ヶ峰に行った時の平均値から速度係数の推定値を求めています。これをカシミール3Dの補正ファイルとして読み込ませ、平地での移動速度を入力すれば、自分のコースタイムを作成することが出来ます。
図がこの作成例で、これをjpegでiphoneに入れておけば、山の中で所要時間を確認することが出来ます。
ガーミンと比べiphoneの画面は大きいので、地図が見やすくなり、GPSが使いやすくなりました。今後は、iphoneが私のGPSとして活躍すること間違いなしです。
また、iphoneには山と高原地図のアプリと地図も入れているので、代表的な山であれば、地図を忘れて行っても、コースタイムを確認することが出来ます。自分独自のコースタイムも、カシミール3Dを使って作成しておけば、iphoneで確認することも出来ます。
自分独自のコースタイムは、GPSのログを分析して、自分の歩く特徴を把握して作成しています。左図は私の低山での速度係数と勾配の関係です。2000m以下の山では、気圧の影響をあまり受けないので、大峰山,雪彦山,後山,段ヶ峰に行った時の平均値から速度係数の推定値を求めています。これをカシミール3Dの補正ファイルとして読み込ませ、平地での移動速度を入力すれば、自分のコースタイムを作成することが出来ます。
図がこの作成例で、これをjpegでiphoneに入れておけば、山の中で所要時間を確認することが出来ます。
GPXログ分析マクロ(1)
このコースタイム作成に必要なGPSのログ分析にはカシミール3Dとエクセルを使っています。GPSで記録したGPXファイルをカシミール3Dに読み込ませ、トラックエディタを開くと、図が表示されます。
GPXログ分析マクロ(2)
このテキストを一行目から末尾までコピーして、メモ帳に貼り付けます。それをテキストファイルとして書き出した上で、エクセルでカンマ区切りのファイルとしてインポートすると図のようなシートが出来ます。
GPXログ分析マクロ(3)
これに図のように3行挿入して、A1にログ点数、2,3行目に注釈を入れ、ダブっている緯度,経度のM,N列を削除すると準備完了。後はマクロを動かすと、ログの分析が出来ます。
私が作ったログ分析のマクロを以下に掲載しますので、コピーペーストして使ってみてください。
−−−−− マクロのソース −−−−−
Sub Macro1()
'
' Macro1 Macro
' GPXログ分析
'
' Keyboard Shortcut: Ctrl+a
'
Dim avesp(25), ISP(25)
For i = 1 To 25
avesp(i) = 0
ISP(i) = 0
Next i
IX = Range("A1").Value
For IC = 2 To IX
If (Range("J" & (3 + IC)).Value <= 0) Then GoTo 1000
SP = Range("L" & (3 + IC)).Value
kob = (Range("D" & (3 + IC)).Value - Range("D" & (2 + IC)).Value) / Range("J" & (3 + IC)).Value / 10
Range("M" & (3 + IC)).Value = kob
If (SP <= 0.2 Or SP > 10) Then GoTo 1000
If (kob < -105) Then ISP(1) = ISP(1) + 1: avesp(1) = avesp(1) + SP: GoTo 1000
If (kob < -95 And kob >= -105) Then ISP(2) = ISP(2) + 1: avesp(2) = avesp(2) + SP: GoTo 1000
If (kob < -85 And kob >= -95) Then ISP(3) = ISP(3) + 1: avesp(3) = avesp(3) + SP: GoTo 1000
If (kob < -75 And kob >= -85) Then ISP(4) = ISP(4) + 1: avesp(4) = avesp(4) + SP: GoTo 1000
If (kob < -65 And kob >= -75) Then ISP(5) = ISP(5) + 1: avesp(5) = avesp(5) + SP: GoTo 1000
If (kob < -55 And kob >= -65) Then ISP(6) = ISP(6) + 1: avesp(6) = avesp(6) + SP: GoTo 1000
If (kob < -45 And kob >= -55) Then ISP(7) = ISP(7) + 1: avesp(7) = avesp(7) + SP: GoTo 1000
If (kob < -35 And kob >= -45) Then ISP(8) = ISP(8) + 1: avesp(8) = avesp(8) + SP: GoTo 1000
If (kob < -25 And kob >= -35) Then ISP(9) = ISP(9) + 1: avesp(9) = avesp(9) + SP: GoTo 1000
If (kob < -15 And kob >= -25) Then ISP(10) = ISP(10) + 1: avesp(10) = avesp(10) + SP: GoTo 1000
If (kob < -5 And kob >= -15) Then ISP(11) = ISP(11) + 1: avesp(11) = avesp(11) + SP: GoTo 1000
If (kob < -1 And kob >= -5) Then ISP(12) = ISP(12) + 1: avesp(12) = avesp(12) + SP: GoTo 1000
If (kob < 1 And kob >= -1) Then ISP(13) = ISP(13) + 1: avesp(13) = avesp(13) + SP: GoTo 1000
If (kob < 5 And kob >= 1) Then ISP(14) = ISP(14) + 1: avesp(14) = avesp(14) + SP: GoTo 1000
If (kob < 15 And kob >= 5) Then ISP(15) = ISP(15) + 1: avesp(15) = avesp(15) + SP: GoTo 1000
If (kob < 25 And kob >= 15) Then ISP(16) = ISP(16) + 1: avesp(16) = avesp(16) + SP: GoTo 1000
If (kob < 35 And kob >= 25) Then ISP(17) = ISP(17) + 1: avesp(17) = avesp(17) + SP: GoTo 1000
If (kob < 45 And kob >= 35) Then ISP(18) = ISP(18) + 1: avesp(18) = avesp(18) + SP: GoTo 1000
If (kob < 55 And kob >= 45) Then ISP(19) = ISP(19) + 1: avesp(19) = avesp(19) + SP: GoTo 1000
If (kob < 65 And kob >= 55) Then ISP(20) = ISP(20) + 1: avesp(20) = avesp(20) + SP: GoTo 1000
If (kob < 75 And kob >= 65) Then ISP(21) = ISP(21) + 1: avesp(21) = avesp(21) + SP: GoTo 1000
If (kob < 85 And kob >= 75) Then ISP(22) = ISP(22) + 1: avesp(22) = avesp(22) + SP: GoTo 1000
If (kob < 95 And kob >= 85) Then ISP(23) = ISP(23) + 1: avesp(23) = avesp(23) + SP: GoTo 1000
If (kob < 105 And kob >= 95) Then ISP(24) = ISP(24) + 1: avesp(24) = avesp(24) + SP: GoTo 1000
ISP(25) = ISP(25) + 1: avesp(25) = avesp(25) + SP
1000 Rem
Next IC
Range("O4").Value = "No"
Range("P4").Value = "勾配"
Range("Q4").Value = "平均速度"
Range("R4").Value = "計数"
Range("S4").Value = "速度係数"
For i = 1 To 25
If (ISP(i) = 0) Then GoTo 2000
avesp(i) = avesp(i) / ISP(i)
2000 Rem
Range("O" & (4 + i)).Value = i
Range("Q" & (4 + i)).Value = avesp(i)
Range("R" & (4 + i)).Value = ISP(i)
Next i
For i = 1 To 25
Range("S" & (4 + i)).Value = avesp(i) / avesp(13)
Next i
Range("P" & (4 + 1)).Value = -200
Range("P" & (4 + 2)).Value = -100
Range("P" & (4 + 3)).Value = -90
Range("P" & (4 + 4)).Value = -80
Range("P" & (4 + 5)).Value = -70
Range("P" & (4 + 6)).Value = -60
Range("P" & (4 + 7)).Value = -50
Range("P" & (4 + 8)).Value = -40
Range("P" & (4 + 9)).Value = -30
Range("P" & (4 + 10)).Value = -20
Range("P" & (4 + 11)).Value = -10
Range("P" & (4 + 12)).Value = -3
Range("P" & (4 + 13)).Value = 0
Range("P" & (4 + 14)).Value = 3
Range("P" & (4 + 15)).Value = 10
Range("P" & (4 + 16)).Value = 20
Range("P" & (4 + 17)).Value = 30
Range("P" & (4 + 18)).Value = 40
Range("P" & (4 + 19)).Value = 50
Range("P" & (4 + 20)).Value = 60
Range("P" & (4 + 21)).Value = 70
Range("P" & (4 + 22)).Value = 80
Range("P" & (4 + 23)).Value = 90
Range("P" & (4 + 24)).Value = 100
Range("P" & (4 + 25)).Value = 200
End Sub
−−−−− ソース終了 −−−−−
私が作ったログ分析のマクロを以下に掲載しますので、コピーペーストして使ってみてください。
−−−−− マクロのソース −−−−−
Sub Macro1()
'
' Macro1 Macro
' GPXログ分析
'
' Keyboard Shortcut: Ctrl+a
'
Dim avesp(25), ISP(25)
For i = 1 To 25
avesp(i) = 0
ISP(i) = 0
Next i
IX = Range("A1").Value
For IC = 2 To IX
If (Range("J" & (3 + IC)).Value <= 0) Then GoTo 1000
SP = Range("L" & (3 + IC)).Value
kob = (Range("D" & (3 + IC)).Value - Range("D" & (2 + IC)).Value) / Range("J" & (3 + IC)).Value / 10
Range("M" & (3 + IC)).Value = kob
If (SP <= 0.2 Or SP > 10) Then GoTo 1000
If (kob < -105) Then ISP(1) = ISP(1) + 1: avesp(1) = avesp(1) + SP: GoTo 1000
If (kob < -95 And kob >= -105) Then ISP(2) = ISP(2) + 1: avesp(2) = avesp(2) + SP: GoTo 1000
If (kob < -85 And kob >= -95) Then ISP(3) = ISP(3) + 1: avesp(3) = avesp(3) + SP: GoTo 1000
If (kob < -75 And kob >= -85) Then ISP(4) = ISP(4) + 1: avesp(4) = avesp(4) + SP: GoTo 1000
If (kob < -65 And kob >= -75) Then ISP(5) = ISP(5) + 1: avesp(5) = avesp(5) + SP: GoTo 1000
If (kob < -55 And kob >= -65) Then ISP(6) = ISP(6) + 1: avesp(6) = avesp(6) + SP: GoTo 1000
If (kob < -45 And kob >= -55) Then ISP(7) = ISP(7) + 1: avesp(7) = avesp(7) + SP: GoTo 1000
If (kob < -35 And kob >= -45) Then ISP(8) = ISP(8) + 1: avesp(8) = avesp(8) + SP: GoTo 1000
If (kob < -25 And kob >= -35) Then ISP(9) = ISP(9) + 1: avesp(9) = avesp(9) + SP: GoTo 1000
If (kob < -15 And kob >= -25) Then ISP(10) = ISP(10) + 1: avesp(10) = avesp(10) + SP: GoTo 1000
If (kob < -5 And kob >= -15) Then ISP(11) = ISP(11) + 1: avesp(11) = avesp(11) + SP: GoTo 1000
If (kob < -1 And kob >= -5) Then ISP(12) = ISP(12) + 1: avesp(12) = avesp(12) + SP: GoTo 1000
If (kob < 1 And kob >= -1) Then ISP(13) = ISP(13) + 1: avesp(13) = avesp(13) + SP: GoTo 1000
If (kob < 5 And kob >= 1) Then ISP(14) = ISP(14) + 1: avesp(14) = avesp(14) + SP: GoTo 1000
If (kob < 15 And kob >= 5) Then ISP(15) = ISP(15) + 1: avesp(15) = avesp(15) + SP: GoTo 1000
If (kob < 25 And kob >= 15) Then ISP(16) = ISP(16) + 1: avesp(16) = avesp(16) + SP: GoTo 1000
If (kob < 35 And kob >= 25) Then ISP(17) = ISP(17) + 1: avesp(17) = avesp(17) + SP: GoTo 1000
If (kob < 45 And kob >= 35) Then ISP(18) = ISP(18) + 1: avesp(18) = avesp(18) + SP: GoTo 1000
If (kob < 55 And kob >= 45) Then ISP(19) = ISP(19) + 1: avesp(19) = avesp(19) + SP: GoTo 1000
If (kob < 65 And kob >= 55) Then ISP(20) = ISP(20) + 1: avesp(20) = avesp(20) + SP: GoTo 1000
If (kob < 75 And kob >= 65) Then ISP(21) = ISP(21) + 1: avesp(21) = avesp(21) + SP: GoTo 1000
If (kob < 85 And kob >= 75) Then ISP(22) = ISP(22) + 1: avesp(22) = avesp(22) + SP: GoTo 1000
If (kob < 95 And kob >= 85) Then ISP(23) = ISP(23) + 1: avesp(23) = avesp(23) + SP: GoTo 1000
If (kob < 105 And kob >= 95) Then ISP(24) = ISP(24) + 1: avesp(24) = avesp(24) + SP: GoTo 1000
ISP(25) = ISP(25) + 1: avesp(25) = avesp(25) + SP
1000 Rem
Next IC
Range("O4").Value = "No"
Range("P4").Value = "勾配"
Range("Q4").Value = "平均速度"
Range("R4").Value = "計数"
Range("S4").Value = "速度係数"
For i = 1 To 25
If (ISP(i) = 0) Then GoTo 2000
avesp(i) = avesp(i) / ISP(i)
2000 Rem
Range("O" & (4 + i)).Value = i
Range("Q" & (4 + i)).Value = avesp(i)
Range("R" & (4 + i)).Value = ISP(i)
Next i
For i = 1 To 25
Range("S" & (4 + i)).Value = avesp(i) / avesp(13)
Next i
Range("P" & (4 + 1)).Value = -200
Range("P" & (4 + 2)).Value = -100
Range("P" & (4 + 3)).Value = -90
Range("P" & (4 + 4)).Value = -80
Range("P" & (4 + 5)).Value = -70
Range("P" & (4 + 6)).Value = -60
Range("P" & (4 + 7)).Value = -50
Range("P" & (4 + 8)).Value = -40
Range("P" & (4 + 9)).Value = -30
Range("P" & (4 + 10)).Value = -20
Range("P" & (4 + 11)).Value = -10
Range("P" & (4 + 12)).Value = -3
Range("P" & (4 + 13)).Value = 0
Range("P" & (4 + 14)).Value = 3
Range("P" & (4 + 15)).Value = 10
Range("P" & (4 + 16)).Value = 20
Range("P" & (4 + 17)).Value = 30
Range("P" & (4 + 18)).Value = 40
Range("P" & (4 + 19)).Value = 50
Range("P" & (4 + 20)).Value = 60
Range("P" & (4 + 21)).Value = 70
Range("P" & (4 + 22)).Value = 80
Range("P" & (4 + 23)).Value = 90
Range("P" & (4 + 24)).Value = 100
Range("P" & (4 + 25)).Value = 200
End Sub
−−−−− ソース終了 −−−−−
速度補正ファイルの完成
このマクロを動かすと、O〜S列に No,勾配,平均速度,計数,速度係数 が表示されます。それをグラフ化すると図のようになり、独自の速度係数補正ファイルを作ることが出来るようになります。
お気に入りした人
人
拍手で応援
拍手した人
拍手
※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。
ぜひご協力ください!
私もiPhoneのGPSを愛用しています。
私の愛用アプリは、FieldAccess です。
このアプリ、見慣れた1/25,000地形図が使えるのが良いところです。
ログも精度良く取れますが、私のiPhone4は電池がだいぶ弱っているので、ログ取りは専用ロガーです。
最近細かい物が見にくくなってきたので、ピンチアウトで簡単に拡大できる点が、紙の地図に比べて最大のアドバンテージですね。
もちろん、紙の地図も持ち歩きますけれど
コメントを編集
いいねした人
コメントを書く
ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。ヤマレコにユーザ登録する