トブラーのハイキング速度計算(上り・下り対応)
トブラーのハイキング速度計算では、斜面の傾きと進行方向から歩行速度を推定します。勾配は符号付きのパーセント値でご入力ください。正の値は上り、負の値は下り、ゼロは平坦な地形を表します。結果には、時速キロメートルと秒速メートルによる速度に加え、1キロメートル当たりの所要分数も表示されます。同じ入力には常に同じ結果を返すトブラー関数を使用し、完全な平地より緩やかな下りのほうが速いという特性も反映します。
無料で実行
地形の勾配を符号付きで入力します
勾配は、水平距離に対する高度変化の割合です。10パーセントなら、水平に100メートル進む間に高度が10メートル上がることを意味します。上り方向に歩く場合は正の10、同じ区間を下る場合は負の10をご入力ください。トブラー関数は上りと下りで対称ではないため、この符号が重要です。同じ道でも進行方向が逆なら、推定速度は同じになりません。平地の場合はゼロをご入力ください。地図ツールがパーセントではなく小数の傾斜を表示する場合は、入力前に100を掛けます。たとえば 0.08 は8パーセントです。平均勾配は、傾きがほぼ一定の区間に限ってご利用ください。上りと下りが交互に現れるルートは区間に分け、それぞれを計算することをお勧めします。反対向きの勾配を平均すると、両方で必要な労力が見えなくなるためです。入力範囲は -100 から 100 パーセントまでです。非常に急な登山地形を含みつつ、非現実的な値や単位の取り違えを防げる範囲に設定しています。
トブラーのハイキング関数を理解します
計算には v = 6 × exp(−3.5 × |s + 0.05|) という式を使用します。v は時速キロメートル単位の歩行速度、s は高度差を水平距離で割った符号付きの傾斜です。0.05 のずれによって、この曲線には特徴的な最適点があります。予測速度が最大になるのは平地ではなく、5パーセントの緩やかな下りです。上りが急になるほど速度は低下し、下りでも最適点を越えて急になると速度が低下します。緩い下りは歩行を助けますが、急な下りでは歩幅を縮め、制動し、より慎重に進む必要があるという実際の傾向を表しています。この関数は経験式であり、かつ決定論的ですので、同じ入力からは常に同じ結果が得られます。結果では、時速キロメートルに加えて秒速メートルへ変換し、1キロメートル当たりの分数も算出します。安定した結果にするため表示値は小数点以下六桁に丸めますが、内部計算には丸め前の値を使用します。使用した式と正規化済みの小数勾配も返すため、推定の内容を確認し、容易に再現していただけます。
ルート計画に推定値を活用します
結果は地形に基づく基準値としてお使いください。個人の実際のペースを保証するものではありません。トブラー関数が表すのは勾配と歩行速度の一般的な関係です。体力、荷物の重さ、標高、路面、天候、疲労、休憩、道迷いによる遅れ、技術的な障害は考慮されません。傾きが一定の区間について所要時間を求めるには、キロメートル単位の距離を、結果の時速キロメートルで割ります。変化の多いルートでは、各区間をそれぞれの符号付き勾配で計算し、区間ごとの時間を合計してください。この方法なら、ルート全体を一つの平均勾配にしたときに消えてしまう上りと下りの違いを保持できます。勾配が急に変化する場所では区間を短くしますが、標高データにばらつきがある場合は見せかけの精度にご注意ください。分速表示は区間比較に便利で、秒速メートルは地理処理やシミュレーションで役立ちます。休憩や現地条件に備え、特に浮石、凍結、露出部、道のない地形では十分な余裕を加えてください。本計算は計画と比較を支援するもので、安全性の評価や最新の登山道情報、ご自身の判断に代わるものではありません。
活用例
上り方向と下り方向を比較する
同じ斜面を反対方向へ歩く場合に、推定速度がどのように変わるかをご確認いただけます。
区間ごとの所要時間を計画する
傾きがほぼ一定の区間ごとに速度を求め、各時間を合計してルート推定を改善できます。
地図モデルやシミュレーションを検証する
勾配を考慮する地理分析、レクリエーション分析、アクセシビリティ分析向けに、透明で再現可能な速度値を生成します。
よくある質問
正の勾配は何を意味しますか?
正の勾配は上り、負の勾配は下りを表します。ゼロは平坦な地形です。
5パーセント程度の下りで最速になるのはなぜですか?
トブラーの経験曲線は、小数勾配 -0.05、つまり緩やかな下りで最大になるよう定義されているためです。
登山全体の平均勾配を使えますか?
概算には使えますが、変化するルートを符号付き勾配の区間に分けると、平均による上りと下りの相殺を避けられます。
休憩や歩きにくい路面も含まれますか?
含まれません。勾配だけをモデル化しており、休憩、体力、荷重、天候、標高、路面状態、技術的な地形は考慮しません。
API での計算料金はいくらですか?
API の各リクエストは $0.002 です。同じ決定論的な計算をブラウザーでも実行していただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/sport-hike-tobler \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"gradient_percent":10}'const res = await fetch("https://api.kit.forhosting.com/hobby/sport-hike-tobler", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"gradient_percent": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/sport-hike-tobler",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"gradient_percent": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/sport-hike-tobler", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"gradient_percent":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"gradient_percent":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/sport-hike-tobler", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"gradient_percent": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.sport_hike_tobler",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |