SatNOGS DBには SiDS API(SatNOGS Integration Data Service) が用意されており、観測結果を経由せずに直接AX.25フレームを登録・確認できます。
打ち上げ前でも、サンプルフレームを送って デコーダ動作の事前検証 が可能です。
Step 1. APIトークンの取得
- SatNOGS DB にログイン
- 右上プロフィール → Profile → API Key をコピー
- 取得したキーを
$token
またはTOKEN
に設定
Step 2. 単発送信(Packet1例)
PowerShell版
powershell
$token = "取得したAPIキー"
$noradID = "98654" # RSP-03 NORAD ID
$source = "JS1YOY" # コールサイン
$ts = "2025-01-01T00:00:00Z"
$lon = "137.06E"
$lat = "35.01N"
# サンプルフレームHEX(スペース・改行なし)
$frameHex = "94A662B2A08260...(省略)...000000A041"
$body = "noradID=$noradID&source=$source×tamp=$ts&frame=$frameHex&locator=longLat&longitude=$lon&latitude=$lat"
$r = Invoke-WebRequest -Uri "https://db.satnogs.org/api/telemetry/" `
-Method POST -Body $body `
-ContentType "application/x-www-form-urlencoded" `
-Headers @{ Authorization = "Token $token" }
"POST status: $($r.StatusCode) $($r.StatusDescription)"
curl版
bash
TOKEN="取得したAPIキー"
NORAD="98654"
SOURCE="JS1YOY"
TS="2025-01-01T00:00:00Z"
LON="137.06E"
LAT="35.01N"
FRAME="94A662B2A08260...(省略)...000000A041"
curl -X POST "https://db.satnogs.org/api/telemetry/" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data "noradID=$NORAD&source=$SOURCE×tamp=$TS&frame=$FRAME&locator=longLat&longitude=$LON&latitude=$LAT"
結果
lua
POST status: 201 Created
Step 3. 複数Packet送信(Packet1 / Packet2 / Packet3)
PowerShell版
powershell
$frames = @(
@{ Name = "Packet1"; Hex = "94A662B2A08260...(略)..." };
@{ Name = "Packet2"; Hex = "94A662B2A08260...(略)..." };
@{ Name = "Packet3"; Hex = "94A662B2A08260...(略)..." }
)
foreach ($frame in $frames) {
$ts = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
$body = "noradID=$noradID&source=$source×tamp=$ts&frame=$($frame.Hex)&locator=longLat&longitude=$lon&latitude=$lat"
$r = Invoke-WebRequest -Uri "https://db.satnogs.org/api/telemetry/" `
-Method POST -Body $body `
-ContentType "application/x-www-form-urlencoded" `
-Headers @{ Authorization = "Token $token" }
Write-Host "[$($frame.Name)] POST status: $($r.StatusCode) $($r.StatusDescription)"
Start-Sleep -Seconds 2
}
curl版
bash
frames=("Packet1:94A662B2A08260...(略)..."
"Packet2:94A662B2A08260...(略)..."
"Packet3:94A662B2A08260...(略)...")
for item in "${frames[@]}"; do
name="${item%%:*}"
hex="${item#*:}"
TS=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
curl -X POST "https://db.satnogs.org/api/telemetry/" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data "noradID=$NORAD&source=$SOURCE×tamp=$TS&frame=$hex&locator=longLat&longitude=$LON&latitude=$LAT"
echo "[$name] 送信完了"
sleep 2
done
送信結果
csharp
[Packet1] POST status: 201 Created
[Packet2] POST status: 201 Created
[Packet3] POST status: 201 Created
全てのフレーム送信が完了しました。
Step 4. 登録データの確認(GET)
PowerShell版
powershell
Invoke-RestMethod -Uri "https://db.satnogs.org/api/telemetry/?satellite=$noradID&source=$source&limit=10" `
-Headers @{ Authorization = "Token $token" }v
curl版
bash
curl -H "Authorization: Token $TOKEN" \
"https://db.satnogs.org/api/telemetry/?satellite=$NORAD&source=$SOURCE&limit=10"
Step 5. 検証のポイント
- 201 Created が返れば登録成功
- DB反映には数秒〜数分かかる場合あり
- frame はAX.25形式HEX(スペース・改行なし)
- timestamp はUTC(Z付きISO8601形式)
SatNOGSメンバーより受信されている旨の連絡を受けました
これで、打ち上げ前にデコーダ動作を事前確認でき、
問題があればSatNOGSコミュニティに早めの相談ができます。
関連記事リンク
0. 初めに — リーマンサット RSP-03 受信チャレンジの歩み
6.SatNOGSコミュニティとのやりとり
7.トラブルとその解決の記録
8.今後の実施項目・メンテナンス リーマンサット RSP-03 受信チャレンジの歩み