Skip to content
 
 

Repository files navigation

概要

コスモリウムの展示で、Text Loadingなどのデータ外部取得で利用するGitHub Pages用リポジトリです。

リポジトリの公開状態について

GitHub Pagesを利用するため、このリポジトリはpublicになっており、誰でも閲覧できます。

現在の対象コンテンツ

衛星地球儀から取得されるデータ

CelesTrakのAPIから取得した展示対象の衛星の軌道データを、TLE形式で返します。

Text Loading用です。

データ確認用 URL

https://akinomizuki.github.io/SatelliteData/satellites.txt

https://akinomizuki.github.io/SatelliteData/satellites.png

更新頻度

毎時12分ごろに更新。 (1時間に1回更新)

実行ログ

https://github.com/AkinoMizuki/SatelliteData/actions/workflows/build-and-deploy.yaml

取得対象の衛星の変更

YAML形式の配列で記述された satellites.yaml を書き替えます。

※masterブランチへのpush権限が必要。

探査機リアルタイムトラッキング用データ

JPL Horizons Lookup APIで探査機名からSPK IDを自動解決し、JPL Horizons APIから太陽中心・J2000黄道座標の位置速度ベクトルを取得してJSON形式で返します。

現在はHAYABUSA2、James Webb Space Telescope(JWST)、Tesla Roadsterを取得します。

データ確認用 URL

https://akinomizuki.github.io/SatelliteData/spacecraft.json

更新範囲

GitHub Actions実行日のUTC日付から8日後までを、1時間間隔で取得します。

日時、API URL、座標系、単位はfetch-data.js側で自動設定します。通常の対象ではSPK IDもHorizons Lookupから自動解決します。

出力形式

spacecraft.jsonの各サンプルは、次の順序です。

[jdTdb, x, y, z, vx, vy, vz]

位置の単位はAU、速度の単位はAU/日です。

取得対象の探査機の変更

spacecraft.yamlへ、次の形式で1行追加します。

出力用ID: JPL Horizonsで検索する探査機名

現在の登録内容は次のとおりです。

HAYABUSA2: Hayabusa 2
JWST: JWST

# Lookupで検索できない対象のみnameとcommandを指定
TESLA_ROADSTER:
  name: Tesla Roadster
  command: "-143205"

例えばVoyager 1を追加する場合は、通常どおり次の1行だけを追加します。

VOYAGER1: Voyager 1

Horizons Lookupで検索できない対象だけ、namecommandを指定します。対象固有のIDはfetch-data.jsへベタ書きせず、登録情報をspacecraft.yamlへ集約します。

通信節約と前回データの継続使用

GitHub Actionsは、最初に公開済みのspacecraft.jsonを1回読み込みます。

同じUTC日付のデータが既に公開されている探査機は、そのデータをそのまま再利用し、Horizons Lookup APIとHorizons APIへの通信を行いません。このため、GitHub Actions自体は毎時実行されても、探査機データのJPL通信は原則としてUTC日付が変わった最初の実行時だけです。

UTC日付が変わった場合も、前回データに保存されているcommand(SPK ID)を再利用できる対象はHorizons Lookup APIを省略し、状態ベクトル取得だけを行います。

JPL APIへの通信は、通信例外またはHTTP 408/425/429/500/502/503/504の場合に最大5回試行します(初回+再試行4回)。再試行間隔は2秒、5秒、15秒、30秒です。

新しい状態ベクトルを取得できなかった場合は、該当する探査機について公開済みの前回データをspacecraft.jsonへ残します。前回データを使用した対象IDは、トップレベルのstaleObjectIdsへ記録されます。前回データも存在しない場合だけ、その探査機をスキップします。エラー内容と前回データ使用の有無はGitHub Actionsのログへ記録されます。

公開済みspacecraft.jsonを取得できなかった場合は、前回データなしとして通常のJPL取得を試行します。

spacecraft.yaml自体がYAMLとして不正、またはルート形式が異なる場合は、設定ファイル全体の誤りとしてビルドを停止します。

※masterブランチへのpush権限が必要。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages