4 ms·
The hard part was obtaining information such as solar azimuth, altitude, declination, hour angle, etc without using external APIs. Spent around 5 days implement
by Amithv 3y ago
The hard part was obtaining information such as solar azimuth, altitude, declination, hour angle, etc without using external APIs. Spent around 5 days implementing backend.
- antgiant 3y agoWay too late now, but to help others this fancy Excel sheet provided by NOAA is awesome! It implements all of these equations in Excel and is pretty easily portable to your programming language of choice. https://gml.noaa.gov/grad/solcalc/calcdetails.html https://gml.noaa.gov/grad/solcalc/calcdetails.html P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are.
- grecy 3y ago> P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are. That may just be a function of how you define "sunrise" and "sunset". It is never as simple as "when the sun hits the horizon", but something about some number of arc minutes from something something.
- antgiant 3y agoTo be clear I was complaining that basically everyone calculates “sunrise” and “sunset” differently. If you check half a dozen different “sunset” calculators you will get a surprisingly wide variation in the times they provide. At least where I live the error seems to average 5-10 minutes.
- grecy 3y ago> At least where I live the error seems to average 5-10 minutes And what I meant was you are not seeing "error", it's just a difference in definition.
- wizzwizz4 3y agoDependent on the refractive index, which depends on air density and temperature and humidity too; and we have to integrate over the region between the horizon and the upper atmosphere (diagonally, of course)…
- grecy 3y agoHaha, thanks ,yep. I learned all this when I lived in the Yukon and sunset takes about 2 hours...
- Gorgor 3y agoCalculating the solar position is also pretty important when simulating power production of photovoltaics plants. So, the Python library pvlib has nice functions for working with this: https://pvlib-python.readthedocs.io/en/stable/reference/solarposition.html https://pvlib-python.readthedocs.io/en/stable/reference/sola...
- manchego 3y agoFor anyone wanting to do this calculation yourself, this site is really good: https://www.aa.quae.nl/en/reken/zonpositie.html https://www.aa.quae.nl/en/reken/zonpositie.html I've previously used the formulas on this site to calculate the altitude/azimuth of the Sun and all the planets from a given lat/long/time on Earth.
- tppiotrowski 3y agoI'm not sure what you mean by external APIs but is there a reason you're not using SunCalc[1] on the client to process the route after it's returned from the routing engine? [1] https://www.npmjs.com/package/suncalc https://www.npmjs.com/package/suncalc