堆肥の炭素・窒素比計算ツール
良好な堆肥化には、エネルギー源となる十分な炭素と、微生物の増殖を支える十分な窒素が必要です。この計算ツールは、茶色系材料と緑色系材料の量および一般的な炭素・窒素比を組み合わせ、混合後のC:N比を推定して、推奨される25:1から30:1の範囲内かを示します。キログラム、ポンド、バケツ、手押し車など、すべての材料に同じ数量単位をお使いください。各材料の寄与も明示されるため、堆肥の山を作る前や切り返す前に配合を調整できます。
無料で実行
統一した単位で堆肥配合を入力します
配合を茶色系材料と緑色系材料に分け、材料ごとに1行追加してください。茶色系材料は、落ち葉、細断した段ボール、わら、おがくず、木材チップなど、一般に乾燥して炭素を多く含むものです。緑色系材料は、刈草、生ごみ、コーヒーかす、家畜ふんなど、一般に新鮮で窒素を多く含むものです。各行には数量と、その材料に適した資料から得た一般的なC:N比を入力します。数量の基準は必ず統一してください。重量ならすべてをキログラムまたはポンドで、体積ならすべてをバケツで測れますが、正確な推定を望む場合は重量と体積を混在させないでください。予定材料を表に残すための数量0は使用できますが、負の数量は物理的な意味がないため拒否されます。一般的な比率は推定値であり、水分、熟成度、種類、保管状態によって実際の組成は変わります。結果は実用的な計画値として扱い、使用材料そのものの試験室分析とはみなさないでください。
質量収支による計算方法を確認します
このツールはC:N比の単純な加重平均を求めません。比率は2つの成分割合を表すため、60:1の材料は全61部分のうち炭素60部分、窒素1部分として扱います。推定炭素割合は60を61で割った値、窒素割合は1を61で割った値です。それぞれを材料の数量に掛けます。全行の炭素寄与を合計し、窒素寄与も別に合計した後、総炭素を総窒素で割って混合比を求めます。この質量収支法なら、比率が大きく異なる材料も正しく処理できます。出力には炭素単位、窒素単位、最終比率、各行の寄与が表示されるため、計算内容をご確認いただけます。表示桁数は再現性に役立ちますが、試験室精度を保証するものではありません。茶色系と緑色系という分類は配合整理のためであり、どちらも同じ計算方法で処理されます。
結果を判断して配合を調整します
25:1から30:1までの両端を含む結果は理想的と判定されます。25:1未満では窒素過多です。山が締まり、水分過多や悪臭、アンモニア損失が起こる場合があるため、乾燥した高炭素の茶色系材料を加えると、比率を上げながら構造も改善できます。30:1を超える場合は炭素過多です。相対的な窒素不足で分解が遅くなるため、適切な緑色系材料を加えると比率を下げられます。現実的な数量を変更して再計算し、望む答えに合わせるためだけに材料の一般的な比率を変えないでください。比率は堆肥化の一要素にすぎません。水分は固く絞ったスポンジ程度に保ち、大きめの粒子で通気を確保し、十分な山の大きさと適度な切り返しも必要です。比率が理想的でも状態が悪い場合は、これらの物理条件と入力した代表値をご確認ください。反復確認を自動化する場合、APIは1リクエストあたり$0.002です。
活用例
家庭用の堆肥配合を計画
落ち葉、段ボール、刈草、生ごみを積み重ねる前に組み合わせ、目標範囲へ近づくよう数量を調整できます。
季節ごとの材料を比較
落葉期、草刈り期、冬季の生ごみ回収など、利用できる材料が変わるたびに配合を比較できます。
共同作業の配合を標準化
統一したバケツ、台車、重量を用い、各寄与が見える再現可能な配合をボランティア向けに記録できます。
よくある質問
堆肥の理想的なC:N比はいくつですか?
この計算ツールでは、混合する初期材料の目標範囲を両端を含む25:1から30:1としています。
キログラムとバケツを混在できますか?
できません。すべての数量で同じ測定基準をお使いください。重量と体積を混ぜると相対量を比較できません。
比率の加重平均を使わないのはなぜですか?
C:N比は炭素と窒素の成分割合を表します。各比率を成分割合へ変換し、それぞれを合計して総量同士を割ります。
一般的な材料比率は正確ですか?
正確な固定値ではありません。水分、経過時間、種類、管理方法で変動します。計画には代表値を使い、厳密さが必要なら分析値をご利用ください。
数量が負の場合はどうなりますか?
負の数量は混合物中に存在する材料を表せないため、無効な入力としてエラーが返されます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/eco/compost-ratio-carbon-nitrogen \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"browns":[{"material":"Dry leaves","quantity":3,"cn_ratio":60},{"material":"Cardboard","quantity":1,"cn_ratio":350}],"greens":[{"material":"Grass clippings","quantity":2,"cn_ratio":17},{"material":"Kitchen scraps","quantity":1,"cn_ratio":20}]}'const res = await fetch("https://api.kit.forhosting.com/eco/compost-ratio-carbon-nitrogen", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"browns": [
{
"material": "Dry leaves",
"quantity": 3,
"cn_ratio": 60
},
{
"material": "Cardboard",
"quantity": 1,
"cn_ratio": 350
}
],
"greens": [
{
"material": "Grass clippings",
"quantity": 2,
"cn_ratio": 17
},
{
"material": "Kitchen scraps",
"quantity": 1,
"cn_ratio": 20
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eco/compost-ratio-carbon-nitrogen",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"browns": [
{
"material": "Dry leaves",
"quantity": 3,
"cn_ratio": 60
},
{
"material": "Cardboard",
"quantity": 1,
"cn_ratio": 350
}
],
"greens": [
{
"material": "Grass clippings",
"quantity": 2,
"cn_ratio": 17
},
{
"material": "Kitchen scraps",
"quantity": 1,
"cn_ratio": 20
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eco/compost-ratio-carbon-nitrogen", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"browns":[{"material":"Dry leaves","quantity":3,"cn_ratio":60},{"material":"Cardboard","quantity":1,"cn_ratio":350}],"greens":[{"material":"Grass clippings","quantity":2,"cn_ratio":17},{"material":"Kitchen scraps","quantity":1,"cn_ratio":20}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"browns":[{"material":"Dry leaves","quantity":3,"cn_ratio":60},{"material":"Cardboard","quantity":1,"cn_ratio":350}],"greens":[{"material":"Grass clippings","quantity":2,"cn_ratio":17},{"material":"Kitchen scraps","quantity":1,"cn_ratio":20}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eco/compost-ratio-carbon-nitrogen", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"browns": [
{
"material": "Dry leaves",
"quantity": 3,
"cn_ratio": 60
},
{
"material": "Cardboard",
"quantity": 1,
"cn_ratio": 350
}
],
"greens": [
{
"material": "Grass clippings",
"quantity": 2,
"cn_ratio": 17
},
{
"material": "Kitchen scraps",
"quantity": 1,
"cn_ratio": 20
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eco.compost_ratio_carbon_nitrogen",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_materials_per_group | 100 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |