Tensim のバックエンドで動いている EOP API を Ruby on Rails 製から Go 製に作り直した(*´ェ`)
EOP API は指定時刻の地球姿勢パラメータ(EOP)を返すだけの API なので、Rails だと少し大げさだったかなと思っていた(*´ェ`)
rake タスクでやっていた EOP データの変換や取り込みは eopctl というコマンドにまとめた(*´ェ`)
IERS から finals2000A.all をダウンロードして取り込むところまで eopctl fetch 一発でできるようになった(*゚ェ゚*)
コンテナイメージも Ruby と bundle install が要らなくなったので、Go でビルドしたバイナリを Alpine に置くだけになった(*゚ェ゚*)
Ruby と Rails のバージョンアップのたびに手間取っていたので気が楽になった(*゚ェ゚*)
ついでにうるう秒の日もちゃんと扱えるようにした(*´ェ`)
23:59:60 を受け付けて、UT1−UTC が翌日に 1 秒跳ぶ分を除いて補間している(*゚ェ゚*) ただ2027年からうるう秒は挿入されなくなるので、うるう秒の表はもう更新しなくてよさそう(*´ェ`)
それから Tensim の地球の地表画像もアップデートした(*´ェ`)

NASA が公開している Blue Marble Next Generation などの画像を使っている(*゚ェ゚*)
- 昼の画像は 1月〜12月の 12枚を用意して、日付に合わせて前後の月をブレンド
- 夜の街の明かりは Black Marble 2016
- 標高データ(GEBCO)から作られた画像を元に山や谷の凸凹の陰影をつけた
- 端末に合わせて 8192 と 4096 の 2種類の解像度を使い分け
- ズームしたときは元画像の解像度のまま 8×4 に分割したタイル画像に切り替え
季節によって雪や植物の色が変わるのが見られる(*´ェ`)

元画像は GeoTIFF で 2億画素以上あるので、sharp で WebP に変換している(*゚ェ゚*)
それでも全部で 200MB くらいになったので、画像は Git の管理外にして外部のホストに置くようにした(*´ェ`)




