面積・体積から人口密度を計算するツール
個体群密度は、一定の生息空間にどれだけの生物が存在するかを表します。この計算ツールでは、観察した個体数を調査対象の面積または体積で割り、入力した生息地単位のまま結果を返します。野外調査、実験容器、生態系モニタリング、授業、研究の予備的な集計に利用できます。計算は決定的で透明性があり、単位変換、推定、隠れた生態学的仮定を加えません。そのため、返された値を元の個体数と調査範囲まで直接たどって確認できます。
無料で実行
同じ標本に属する個体数と生息地量を選びます
密度を正しく解釈するには、分子と分母が同じ標本を表している必要があります。調査境界内で実際に観察または推定した個体数と、その境界が覆う面積または体積を入力してください。方形区調査なら、12 平方メートル内に根を張る植物をすべて数える場合があります。プランクトンや微生物では、採取した水量などの体積に対応することがあります。この文脈を残すため、面積か体積かを明示します。本ツールは、値が全数調査、部分標本、個体数推定のどれかを判断せず、検出漏れ、境界を越える移動、調査努力の差も補正しません。複数区画がある場合は、区画別密度と統合密度のどちらが研究目的に合うかを決めてください。大きさの異なる区画を統合する場合、通常は全個体数を合計面積で割ります。区画密度の単純平均ではありません。この対応関係を守ることで、計算自体は正しくても生態学的には誤る結果を防げます。
単位を明記し、商を正しく読み取ります
基本式は、個体群密度=個体数÷生息地量です。240 個体が 12 平方キロメートルに存在する場合、密度は 1 平方キロメートル当たり 20 個体です。入力した単位は表示名として維持され、自動変換されません。そのため、数値と単位を一致させてください。ヘクタールで測った面積に平方キロメートルという表示を付けたり、分母の単位をそろえずに結果を比較したりしないでください。1 平方メートル当たりと 1 立方メートル当たりは同じではないため、面積と体積を区別します。精度の設定は表示時の丸めだけを変え、観察の正確さを高めるものではありません。情報を失わない程度の桁数を選び、調査設計以上の見かけの精密さは避けます。正の範囲で個体が見つからなければ密度 0 は有効ですが、生息地量 0 は分母にできません。出力には確認用として入力値と式も示されます。
調査の限界を踏まえて密度を比較します
密度を使うと、異なる広さで得た個体数を標準化し、地点、時期、処理、深度、実験容器などを比較できます。標本地点に代表性があり、外挿の仮定を記録している場合は、より大きな生息地の個体数推定にも役立ちます。ただし、密度だけでは空間分布を表せません。全体密度が同じでも、一方では均一に分布し、他方では局所的に集中している可能性があります。また、バイオマス、個体群構成、占有確率、環境収容力、検出確率も示しません。季節移動により、実際の個体群が同じ割合で変化していなくても記録密度が変わる場合があります。再現性のため、元の個体数、正確な調査範囲、単位、面積・体積の別、日付、方法、事前補正を保存してください。複数標本では、統合値だけでなく標本別密度と不確実性も示すと有用です。API の各リクエストは $0.002 で、決定的な出力は表計算、調査処理、再現可能な記録に適しています。
活用例
生態調査区画を比較する
大きさの異なる区画の個体数を標準化してから、地点や調査時期を比較します。
一定体積内の生物を測る
プランクトン、微生物、水生生物を、立方メートル、リットルなど指定単位当たりで表します。
授業や野外計算を確認する
個体数、範囲、面積・体積の別、単位、式を再掲した検証可能な商を得られます。
よくある質問
どの式を使用しますか?
個体群密度は、個体数を調査した生息地の面積または体積で割って求めます。
生息地の単位は変換されますか?
変換されません。入力した生息地量で計算し、指定された単位を密度の表示に使います。
個体数を 0 にできますか?
はい。正の範囲で個体数が 0 なら、個体群密度は 0 になります。
生息地量を正にする必要があるのはなぜですか?
0 以下の面積や体積は、有効な標本の分母として使用できないためです。
複数区画の密度を平均すべきですか?
区画の大きさが異なる場合、通常は総個体数を総範囲で割りますが、適切な要約は調査設計によります。
API の利用料金はいくらですか?
API の各リクエストは $0.002 からです。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/bio/population-density \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"individuals":240,"habitat_size":12,"habitat_dimension":"area","habitat_unit":"square kilometer"}'const res = await fetch("https://api.kit.forhosting.com/bio/population-density", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"individuals": 240,
"habitat_size": 12,
"habitat_dimension": "area",
"habitat_unit": "square kilometer"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/population-density",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"individuals": 240,
"habitat_size": 12,
"habitat_dimension": "area",
"habitat_unit": "square kilometer"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/population-density", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"individuals":240,"habitat_size":12,"habitat_dimension":"area","habitat_unit":"square kilometer"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"individuals":240,"habitat_size":12,"habitat_dimension":"area","habitat_unit":"square kilometer"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/population-density", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"individuals": 240,
"habitat_size": 12,
"habitat_dimension": "area",
"habitat_unit": "square kilometer"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.population_density",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |