星の軌跡スタッキング枚数
30秒露光で1時間の星の軌跡を作るには120枚が必要です。1枚の露光時間と欲しい軌跡の時間を入れると、必要な枚数、撮影全体の時間、空の回転角が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 1枚の露光時間 (s)
- 30
- 希望する星の軌跡の長さ (s)
- 3,600
- 間隔 (秒)
- 0
- フレーム数
- 120
- 合計積算時間 (s)
- 3,600
- 合計撮影時間 (s)
- 3,600
固定三脚で長く連続した星の軌跡を得るには、一時間を一度に開けるのではなく、短いフレームを多数重ねるのが一般的です。長い単発露光はセンサーを熱し、ヒストグラムをノイズで埋め、飛行機・雲・振動の一発で夜全体を台無しにする恐れがあります。この星の軌跡スタッキング枚数計算機は、各サブ露光の秒数と望む連続軌跡の時間という二つの数値から、その開放シャッター合計を満たす最小フレーム数を求め、任意のインターバルタイマー間隔を加えてセッション実時間も正直に示します。式は完全に決定的で、フレーム数は望む軌跡秒を単発露光秒で割った天井です。一時間の軌跡に三十秒シャッターなら百二十枚、四十五分に二十秒なら百三十五枚です。
なぜスタッキングするのか、応答に何が含まれるか
連続した星の軌跡は、地球の自転を夜空の弧として記録します。撮影者は、超長時間の一枚より、中程度の長さのフレームを多数ソフトで重ねることを好むことが多く、理由は失敗フレームを捨てられること、ダークとバイアスで校正できること、ホットピクセルを扱いやすいことです。
計画の核心は単純です。 各フレームが固定秒数開いているとき、開放シャッター合計が望む軌跡長に達するには何枚必要か。本ページは、点像を保ちたいときの最大シャッターを見積もる五百ルールや NPF 規則の代替ではありません。鋭い星を計画するときはそれらを、スタックから連続弧を意図するときは本計算機をご利用ください。
スタック枚数が現場・教育・ソフトウェアで役立つ場面
夜空の撮影者は、後で長い軌跡に合成する天の川アーチ用インターバルタイマー設定、静止したスカイライン上で回る星の都市景観、月出前にスタックを終える講習デモでこの枚数を使います。教育者は、複数時間のバルブ一枚より多数の短いフレームを重ねる理由を教えるとき、また平均恒星自転下の天球弧の近似度と開放シャッター時間を結ぶときに天井式を紹介します。
アプリとツール開発者は、夜のプランナー用の決定的テストベクトル、推奨枚数表示前のユーザー入力の正規化、手勘ではなく安定したスタックサイズを求める課題文のために同一契約をスクリプトから呼び出します。講習では、積分時間とセッション実時間を混同する不透明な携帯アプリに頼らずカメラを設定できるよう、オフラインで速い枚数源がしばしば必要です。
製品・教育ツールは、学習者が三十秒シャッターと二時間目標を入力し、UI が百二十または二百四十枚と一秒隙間のセッション長を示す場面で本計算を使います。星を点のままにする逆問題には五百ルールや NPF ヘルパーと併用し、総積分が正しくても遅延が露光に対して大きいと間隔隙間が微小な破線軌跡になり得ることを文書化してください。
活用例
インターバルタイマーの夜間計画
選んだサブ露光と一〜二時間の軌跡目標を、最小スタック枚数と隙間秒を含むセッション実時間に変換します。
スタックと長い単発露光の比較を教える
軌跡時間をシャッター長で割った天井がスタック枚数を決め、間隔隙間がセッションを延ばす理由を学習者に示します。
よくある質問
五百ルールと同じですか?
いいえ。 五百ルールと NPF は星を点のままにする最大シャッターを見積もります。本ツールは連続軌跡が欲しいときのスタック枚数を見積もります。
1時間の星の軌跡には何枚必要ですか?
30秒露光なら120枚です。3600秒を30で割ると120になるためです。枚数は軌跡が短くならないよう常に切り上げられます。
コマ間の間隔を入れると必要枚数は変わりますか?
変わりません。枚数はシャッターが開いている時間だけで決まります。間隔は撮影全体の時間を延ばし、枚数×露光時間に、間隔の数×間隔の長さが加わります。
撮影中に星はどのくらい回転しますか?
露光時間の合計を恒星日にもとづいて空の回転角に換算します。1時間の露光では、天の極を中心に約15度の弧になります。
枚数が切り上げになるのはなぜですか?
合成した軌跡が希望の長さより短くならないようにするためです。軌跡の時間が露光時間で割り切れないときは1枚追加され、余る秒数は別に表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/photo-star-trail-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"single_exposure_seconds":30,"desired_trail_seconds":3600}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-star-trail-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"single_exposure_seconds": 30,
"desired_trail_seconds": 3600
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-star-trail-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"single_exposure_seconds": 30,
"desired_trail_seconds": 3600
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-star-trail-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"single_exposure_seconds":30,"desired_trail_seconds":3600}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"single_exposure_seconds":30,"desired_trail_seconds":3600}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-star-trail-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"single_exposure_seconds": 30,
"desired_trail_seconds": 3600
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_star_trail_count",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
現地計画ではブラウザで無料、アプリ・表計算・CIフィクスチャが同じ枚数を手計算の天井除算なしで必要なら API を成功一件あたり $0.002 でご利用ください。
なぜスタッキングするのか、応答に何が含まれるか
本計算機は frame_count を desired_trail_seconds を single_exposure_seconds で割った天井として答えます。また frame 数×露光の total_integration_seconds(天井のため常に望む時間以上)、その余剰の excess_integration_seconds、任意の interval_seconds を挟んだ total_session_seconds、固定の平均恒星日八万六千百六十四点零九零五秒から積分時間に基づき推定する trail_arc_degrees を返します。メソッドタグ star_trail_stack_count と式文字列により API クライアントと表は自己説明的になります。カメラデータベースもネットワーク経路もなく、エンジンは対応範囲内で閉形式を評価するか invalid_input で拒否します。拒否例は欠落フィールド、非有限値、非正の露光や軌跡時間、負の間隔、文書化上限を超えるスタック枚数を要する組み合わせです。
露光・望む軌跡・間隔の読み取りと再現性
間隔は非負でなければならず、負の隙間は物理的遅延ではなく時間の重なりを意味するため拒否されます。推奨フィールドは各スタックシャッター長の single_exposure_seconds と、望む連続開放シャッター合計の desired_trail_seconds ですが、フレーム長の alias として exposure・shutter・sub_exposure、目標軌跡の trail_seconds・duration・trail_duration も受け付け、表計算・クエリ文字列・型付きフォームが同一契約を再利用できます。任意の interval_seconds(alias は interval・gap・delay)は一露光終了から次開始までの隙間をモデル化し、インターバルタイマー遅延と読み出しを含み、理想的な連続撮影では既定値は零です。数値文字列の先頭プラスと科学記数法は有限小数として解釈できる場合に許可され、埋め込み空白や非数値トークンは明確な invalid_input で失敗し、悪いセルが誤った夜の計画にならないようにします。同一の数学結果が自動パイプラインで必要なら、本ページの無料ブラウザ実行と有料 API を組み合わせてください。
スタック枚数が現場・教育・ソフトウェアで役立つ場面
本ページでは処理はすべてブラウザ内で完結し、API では成功照会ごとに $0.002、失敗した検証は課金されず、応答後に保存されません。無料の対話探索と有料で同一の API という分割は KIT の tier A カタログ全体と一致し、教室デモから自動パイプラインへ数学結果を変えずに移れます。
連携の活用例
決定的なテストフィクスチャ
単体テスト・プロパティ検査・CI アサーション向けに、再現可能な frame_count・total_integration_seconds・trail_arc_degrees を生成します。
技術的な質問
星の軌跡スタッキング枚数計算機の料金は?
このページではブラウザで無料です。API では成功した要求が $0.002、無効入力は課金されません。
frame_count はどう計算されますか?
frame_count は desired_trail_seconds を single_exposure_seconds で割った天井です。開放シャッター合計が望む軌跡を覆う最小の等しいサブ露光枚数です。
single_exposure_seconds が零または負の場合は?
invalid_input で拒否されます。非正の露光はスタック用フレームの有効な開放シャッター長ではありません。
interval_seconds は枚数を変えますか?
いいえ。間隔はフレーム間の total_session_seconds を延ばすだけです。枚数は望む軌跡時間と単発露光長のみに依存します。