2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

無料公開されているAPIで、日出・日没時間を取得する

Posted at

はじめに

 無料で公開されている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を用いる。

  1. 依存関係のインストール
    sudo apt-get install curl jq
    
  2. 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を使って、簡単に日出時間と日没時間を取得することができた。簡単なテスト用などには使えることが分かった。ただし、大量アクセスする場合は、サイトにリンクを掲載する必要があるとのことなので注意が必要。詳細は下記参照。

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?