はじめに
無料で公開されているSunrise and sunrise times APIを使って、日出・日没時間を取得する方法を紹介する。
動作確認完了
- Ubuntu 20.04
- Ubuntu 22.04
方法
APIの仕様
URLに、緯度経度などのパラメータをつけてアクセスすると、JSON形式で日出時間、日没時間などを取得できる。
パラメータ | 型 | 必須 | デフォルト | 概要 | 例 |
---|---|---|---|---|---|
lat | float | 〇 | - | 緯度 | 36.720160 |
lon | float | 〇 | - | 経度 | -4.420340 |
date | string | 現在日時 | YYYY-MM-DD形式の日時 | 2024-08-11 | |
callback | string | - | JSONPのコールバック関数名 | ||
formatted | integer | 1 | 0の場合、ISO 8601形式 | 0 | |
tzid | string | UTC | タイムゾーン | Asia/Tokyo |
詳細は、以下をを参照。
使い方
例
東京駅(緯度=35.6809591,経度=139.7673068)、ISO 8601形式、タイムゾーン=東京の場合
https://api.sunrise-sunset.org/json?lat=35.6809591&lng=139.7673068&formatted=0&tzid=Asia/Tokyo
上記アドレスを、ブラウザに入力すると、JSON形式で下記のような値が返ってくる。
{
"results": {
"sunrise": "2024-08-11T04:55:35+09:00",
"sunset": "2024-08-11T18:36:40+09:00",
"solar_noon": "2024-08-11T11:46:08+09:00",
"day_length": 49265,
"civil_twilight_begin": "2024-08-11T04:29:37+09:00",
"civil_twilight_end": "2024-08-11T19:02:38+09:00",
"nautical_twilight_begin": "2024-08-11T03:56:42+09:00",
"nautical_twilight_end": "2024-08-11T19:35:33+09:00",
"astronomical_twilight_begin": "2024-08-11T03:21:56+09:00",
"astronomical_twilight_end": "2024-08-11T20:10:19+09:00"
},
"status": "OK",
"tzid": "Asia/Tokyo"
}
Bashで取得する場合
curlを用いる。
- 依存関係のインストール
sudo apt-get install curl jq
- curl -sコマンドを利用して、APIを使う
例:東京駅(緯度=35.6809591,経度=139.7673068)、ISO 8601形式、タイムゾーン=東京の場合curl -s https://api.sunrise-sunset.org/json?lat=35.6809591&lng=139.7673068&formatted=0&tzid=Asia/Tokyo
Script化
JSONの戻り値から、jq
コマンドを使って、日出時間と日没時間を抽出するスクリプト。
#!/bin/bash
# 緯度と経度を設定
LATITUDE="35.6809591"
LONGITUDE="139.7673068"
# Sunset and sunrise times API呼び出し
RESPONSE=$(curl -s "https://api.sunrise-sunset.org/json?lat=$LATITUDE&lng=$LONGITUDE&formatted=0&tzid=Asia/Tokyo")
# 日出時間を抽出
SUNRISE_JST=$(echo $RESPONSE | jq -r '.results.sunrise')
# 日没時間を抽出
SUNSET_JST=$(echo $RESPONSE | jq -r '.results.sunset')
echo "日出時間 (JST): $SUNRISE_JST"
echo "日没時間 (JST): $SUNSET_JST"
exit 0
まとめ
無料公開されているSunrise and sunrise times APIを使って、簡単に日出時間と日没時間を取得することができた。簡単なテスト用などには使えることが分かった。ただし、大量アクセスする場合は、サイトにリンクを掲載する必要があるとのことなので注意が必要。詳細は下記参照。
参考