Anyone know of a good webservice or api that I can use to get the sunrise/sunset times in bulk? Every thing I have found so far only gives a day at a time or has a limitation on what dates can be used.

13

Best Answer


http://sunrise-sunset.org/api

It's free to use. Just needs a credit link back to the website.

It's not a web service, but this SO question has links to algorithms, so you can create a table or your own web service with all the dates you need.

I recently found this JavaScript library that performs calculation based on date and lat/lon coordinates. It seems to be very precise.

Link: https://github.com/mourner/suncalc

It is also available as NodeJs package through npm.

NASA has the calculation in nicely laid out JS. View the source of this page:

http://www.esrl.noaa.gov/gmd/grad/solcalc/

NOTE: I'm not a lawyer but I believe the US Government cannot copyright anything, hold patents, etc. so one should be able to copy as use as one needs.

This is a nice and free sunrise and sunset times API: http://sunrise-sunset.org/api

PHP has built in functions to calculate sunrise/sunset:

  • http://php.net/manual/en/function.date-sunrise.php
  • http://php.net/manual/en/function.date-sunset.php

Weather underground has this:

wunderground astronomy feature

Keys are free and they have a pretty generous policy for volume. Been using their weather actuals and forecast json forecast for about year, couldn't be happier.

EarthTools comes up first on google here at webservices sunrise sunset

The NASA one is cool, but the US Naval Observatory has one (below) that could actually pass for an API. If you want to make it useful beyond its intended purpose:

  1. inspect the http headers to find out what parameters are being sent
  2. parse the hell out of the response

It was a fun exercise. You should be able to send a location (long/lat or City/State) along with a year to obtain a list of sunrise and sunset times for an entire year (and other data as well).

http://aa.usno.navy.mil/data/docs/RS_OneYear.php

Go to this website > https://www.esrl.noaa.gov/gmd/grad/solcalc/

1. Set your location

Select your location. You can zoom in to your location and move the pin manually.

enter image description here

2. Verify your Location and Date

Scroll down to the 'Location' under the map and verify your location.
The date is automatically taken, if not set it manually.

enter image description here

3. Get the details

Click the button 'Create Sunrise/Sunset Tables for the Year'.

enter image description here

4. Output in a Table

New window opens and all the details are displayed as table.

enter image description here

Thanks to @noctonura for the link.

Let's go to http://www.earthtools.org/webservices.htmIt's free web service that provides Timezone and Sun times from Latitude/Longitude location.

There is a way to calculate the sunrise/sunset without the need of an API. Its mostly based on location. Sorry I dont have much more info.

  • Home page

  • Query url

  • Url syntax:

    http://sunpath.azurewebsites.net/api/values/LAT/LON/ALT/TIMEZONE

    You must replace LAT, LON, ALT and TIMEZONE with your data.

  • JSON result:

     {"zenith":55.365660255995422,"azimuth180":25.434155784212443,"azimuth":205.43415578421244,"incidence":55.365660255995422,"suntransit":12.423540739046871,"sunrise":6.9577562375305817,"sunset":17.899687249200021,"time":"2016-02-23T13:49:31.3816733Z"}

Or you can access online version of SPA.c algorithm:

  • Online query for SPA algorithm

Output is not in JSON format, but you can specify multiple times and get multiple results:

Date,Time,Top. azimuth angle (westward from S),Topocentric sun declination,Topocentric sun right ascension,Top. elevation angle (uncorrected)2/23/2016,0:00:00,168.224314,-10.130760,335.659091,-57.6439462/23/2016,1:00:00,-164.161551,-10.115560,335.699290,-57.2279192/23/2016,2:00:00,-140.171655,-10.100376,335.739465,-51.9638012/23/2016,3:00:00,-122.026618,-10.085209,335.779585,-43.5290142/23/2016,4:00:00,-108.202194,-10.070054,335.819621,-33.4256952/23/2016,5:00:00,-96.857772,-10.054907,335.859549,-22.5445812/23/2016,6:00:00,-86.694509,-10.039764,335.899355,-11.4060962/23/2016,7:00:00,-76.801678,-10.024618,335.939030,-0.3766242/23/2016,8:00:00,-66.440121,-10.009464,335.978575,10.2033982/23/2016,9:00:00,-54.907983,-9.994297,336.017999,19.930206