心拍数からカーディオトレーニングゾーンを判定
最大心拍数190で現在152なら最大値の80 %で、ゾーン4(閾値)の入口にあたります。信頼できる最大心拍数をそのまま使い、年齢から推定することはありません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 現在の心拍数
- 152
- 最大心拍数
- 190
- 最大値に対する割合
- 80
- ゾーン
- 4
- ゾーン名
- Threshold
- 強度範囲
- 80–<90%
この計算ツールは、現在の心拍数をあらかじめ算出済みの最大心拍数と比較し、標準的な5ゾーンのどこに該当するかを判定します。最大値に対する割合、ゾーン番号と名称、運動強度の範囲、指定した最大値を超えたかどうかを返します。計算は常に同じ入力から同じ結果を出し、年齢から最大心拍数を推定するものではありません。ご自身が選んだ計算法、検査、医療従事者、指導者、機器から得た最大値を使用し、それを上回る測定値を許可するか明示的に指定してください。
2つの心拍数を同じ単位で入力してください
現在心拍数と算出済みの最大心拍数を、どちらも1分間当たりの拍動数で入力してください。現在値には胸部ストラップ、腕時計、運動器具、または手作業による脈拍測定の値を利用できます。最大値には、事前に選択した方法で求めた値を使用します。
この機能は年齢から最大心拍数を計算しません。年齢式による推定値と実測値は目的が異なり、基準値も一致しない場合があるためです。測定元よりも一貫性が重要ですので、複数の運動や推移を比較するときは同じ最大値をお使いください。
結果には現在値と最大値、最大値に対する割合を小数第2位まで丸めた数値、ゾーン番号、分かりやすいゾーン名、該当する運動強度の範囲が含まれます。両方の入力値は、400以下の有限な正数でなければなりません。最大値の50%未満の場合は、標準5ゾーンの範囲外であることを示すため、ゾーン0および「ゾーン1未満」として返します。
5つの境界と境界値の扱いをご確認ください
判定には最大心拍数に対する割合を用い、各範囲の下限を含み上限を含まない形で境界を明確にしています。ゾーン1の「回復」は50%以上60%未満、ゾーン2の「持久力」は60%以上70%未満です。ゾーン3の「有酸素」は70%以上80%未満、ゾーン4の「閾値」は80%以上90%未満となります。
ゾーン5の「最大」は90%以上で、100%も含みます。したがって、境界と完全に一致する値は上位ゾーンに入ります。ちょうど60%ならゾーン2、70%ならゾーン3、90%ならゾーン5です。
この規則により、範囲の空白や重複を避け、繰り返し計算しても安定した結果を得られます。ここで扱うのは最大心拍数に対する割合であり、心拍予備能やカルボーネン法によるゾーンではありません。安静時心拍数、乳酸性作業閾値、換気性作業閾値、競技固有の範囲を使う計画では、名称や境界がこの結果と異なる場合があります。
算出した最大値を超える測定値は慎重に扱ってください
初期設定では、現在心拍数が指定された最大心拍数を上回ると、入力エラーとして処理します。これにより、項目の入れ違い、転記ミス、古い推定値、センサーの一時的な異常値を検出し、不自然な割合を通常の運動データとして扱うことを防ぎます。その場合はゾーン5を使用し、運動強度を「100%超」と表示します。
最大値を超えたという結果だけで、その測定が安全であることや、各数値が医学的に正確であることは証明できません。適切な監督下の検査で確定した場合を除き、算出最大値は推定にすぎず、一般向けセンサーにも誤測定があり得ます。本結果は分類であり、医療上の助言ではありません。
胸痛、失神、通常と異なる息切れ、動悸などがあれば、表示ゾーンにかかわらず運動を中止し、資格を持つ医療従事者にご相談ください。
活用例
運動中の測定値にゾーンを付ける
ウェアラブル機器の心拍データを一貫したゾーンへ変換し、運動画面やトレーニング記録に利用できます。
インターバルの強度を確認する
境界を手計算せずに、測定したインターバルが最大値に対する目標ゾーンへ到達したか確認できます。
取り込んだ運動データを検証する
保存済み最大値を超えるデータを標準で検出するか、確認時に明示的な超過印を付けて保持できます。
よくある質問
最大心拍数も計算できますか?
いいえ。 別の方法で算出または測定した最大心拍数をご指定ください。この機能は現在値をその最大値と比較して分類するだけです。
最大値の50%未満ではどうなりますか?
ゾーン0と「ゾーン1未満」を返し、標準的な5つのトレーニングゾーンの範囲外であることを明示します。
境界と完全に一致する値はどのゾーンですか?
上位のゾーンに入ります。たとえば、ちょうど60%はゾーン2、ちょうど90%はゾーン5です。
医療上の助言として利用できますか?
いいえ。 入力値を数学的に分類するものであり、健康状態、センサー精度、運動の安全性を評価するものではありません。
最大心拍数を超えた値を入力するとどうなりますか?
初期設定では入力ミスとして受け付けません。意図した値なら、上限超えを許可する設定を選ぶとゾーン5として扱われ、最大値を超えたことも結果に示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/fitness2/cardio-zone-from-hr \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_heart_rate":152,"max_heart_rate":190}'const res = await fetch("https://api.kit.forhosting.com/fitness2/cardio-zone-from-hr", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_heart_rate": 152,
"max_heart_rate": 190
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fitness2/cardio-zone-from-hr",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_heart_rate": 152,
"max_heart_rate": 190
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fitness2/cardio-zone-from-hr", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_heart_rate":152,"max_heart_rate":190}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_heart_rate":152,"max_heart_rate":190}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fitness2/cardio-zone-from-hr", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"current_heart_rate": 152,
"max_heart_rate": 190
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fitness2.cardio_zone_from_hr",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
算出した最大値を超える測定値は慎重に扱ってください
意図した測定値であれば、allow_over_maxをtrueに設定してください。算出した割合を保持し、over_maxもtrueになるため、後続の処理で通常のゾーン5の運動と区別できます。
技術的な質問
1回の計算料金はいくらですか?
APIは1リクエスト当たり$0.002です。同じ決定論的な計算をブラウザー内でも実行できます。
現在心拍数が最大値を超えてもよいですか?
allow_over_maxがtrueの場合に限ります。それ以外はinvalid_inputとなり、許可した場合はゾーン5かつover_maxがtrueです。