WHOA!! How cool is this?
Terrain shading is NOW LIVE across the Solcast API!
Until last week, Solcast only supported user-supplied horizons, and only for our Advanced PV Model data product. It was a good start that we made a couple of years ago, but we wanted to go further.
And so now, I'm stoked to say that automatic terrain shading is live as an option across the entire Solcast API!! Congratulations to the software dev and modelling teams at Solcast.
For you, our users, this means that every time you include a little "&terrain_shading=true" argument in your API request, our system will scan all of the high-resolution terrain data surrounding your location, compare it to the position of the sun, and recalculate your irradiance data (eg GHI, DNI, DHI) instantly!
If you're in a valley, or you have mountains or hills nearby, this can greatly improve the accuracy of your irradiance data.
How does it work?The calculation is relatively simple. The irradiance data that at you get back will be modified based on the local sky view and beam blocking effects from the combination of the sun's position with your local horizons that we calculate from terrain data. The sky view effect progressively reduces your diffuse irradiance, while the beam blocking effect removes your beam irradiance. Real testing against measurements at terrain-affected locations shows consistent improvements, which are large in their relative magnitude.
If it's so simple, what's the big deal?The key innvoation behind this feature release is in the scalability.
The Solcast API is the world's highest volume data service for solar energy, and is a low-latency, high-availability system. We serve tens of millions of data points to our customers every day, and the customers decide which locations to request, and when.
Whilst the terrain shading algorithm is simple, the storage, retreival and real-time analysis of high-resolution terrain data is challenging, especially when you have such high request volumes for seemingly random points all across the planet. To accurately calculate horizons, we need to look at terrain data across a large area around the site, around 1000 square kilometres or more - that's a lot of terrain tiles and pixels!
The Solcast team made two design choices to ensure scalability of this new feature. Firstly, the more intensive handling of the heavy terrain data and calculation of horizon elevations is performed close to the API for efficiency. Secondly, the horizon elevations are only calculated the first time a lat/lon location is requested (this takes about 500 miliseconds), and thereafter these horizons are cached indefinitely and reused whenever any request is made for that same location, making subsequent requests lighter and faster to calculate.