-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calculate solar intensity / insolation for a segment/run/ski area #28
Comments
Agreed, it's best to start simple and ignore shadowing effects, which would require the use of continuous raster data (digital elevation maps + canopy height / digital surface maps) beyond the ski area of interest. To begin, it appears the Python photovoltaic library pvlib possesses the functionalities we are interested in. Using position on earth (latitude/longitude), trail segment aspect, and trail segment slope, and assuming either a single day/hour (winter solstice @ solar noon), we can produce solar irradiance values (W/m²) for each trail segment, then aggregate. Obviously limited, but I think a necessary step to infer capacity for melt dependent on "which way you ski". A couple of later considerations / improvements:
Happy to discuss/work on an MVP with @nbarbier-s2 which ideally capitalizes on the existing outputs from the project. |
sunpath3d is helpful for building mental models of the sun's path by latitude and date.
A single day / hour is a nice simplifying assumption for a first pass. Do we ultimately expect integrating over all daylight hours across a typical ski season will produce proportionally similar results, or could it change the ranking of ski areas?
Presumably we want to scale or weight somehow. For example, if adding a trail to a ski area, it should not increase its solar irradiance unless the trail receives more sun than the average of the remaining ski area. What do we weight by? Vertical, 3d distance, etc? We have observed an eastward orientation preference across the totality of ski areas, presumably because morning sun exposure is preferable when temperatures are cooler. If we were to eventually model this, it seems to be going beyond just solar irradiance by including temperature to model melt-inducing irradiance. Is there terminology for this phenomenon? |
Here is what ChatGPT o1 suggested for:
|
I think integrating across all daylight hours will cause a reordering of ski area rankings in terms of seasonal insolation received. Especially because ski seasons are not evenly centered on the solstice, thus ski areas which experience rapid accelerations in daylight hours post solstice (higher latitudes) may rise more rapidly in cumulative insolation (dependent on the timeframe considered "ski-season"). Whatever we choose as ski season start and end dates, I think should be fixed for each hemisphere so as to compare the total without some need for normalization (by # of days in season, light-hours, etc...). If integrating over season, which seems like an important step after we produce a solar irradiance MVP, I propose a start date of Dec 1st and end date of Apr 15th (for N Hemipshere). Arbitrary and based on little beyond when it feels like ski season!
Slope (vertical and distance) are in part baked into the solar irradiance. I lean towards weighting by 3d distance.
It's a good point - and probably so. Also, evaporative flux increases during the daylight hours as wind speeds increase due to solar induced thermal gradients. Wind plays a huge role in refreshing locally moist air at the snow-air interface with drier air which accepts more water vapor off of the snow surface during melt. These winds vary by altitude and geographic setting, and are not easily resolved. If we do aim to estimate potential melt conditions beyond solar irradiance, I think incorporating both temperature and wind is important. But this would represent a large step into modeling melt as opposed to our current attempts at correlating static (driven solely by geostationary data - lat, long, elevation) mountain characteristics with melt potential. |
Using a similar ChatGPT output I began yesterday and modifying it to represent Dartmouth Skiway, on the solstice, for the NbNW aspects and a slope of 20, here is a plot of irradiance through the day (peaking at 60 W/m2). No built in functionality for irradiance on SunPath3d. Will look into this more, but as a gut check I feel these values are in the right ballpark. |
Plotting daily irradiance sums (Wh/m2/day) across an arbitrarily defined ski season (Dec 01 2024 to Apr 15, 2025), than summing those, we can produce total irradiance for any lat/long aspect slope combo. Perhaps we preserve the daily irradiance and produce daily normalized sums for each ski area. Then we can produce an animation or interactive graphic/table of solar irradiance through the season (which may vary more radically for mountains with narrower aspect distributions). To do:
|
Co-authored-by: Joshua Himmelstein <[email protected]> refs #28
Co-authored-by: Joshua Himmelstein <[email protected]> refs #28
Calculating the amount of sunlight (insolation) that hits a run segment would be a powerful way for us to quantify the effect of trail orientation. I think it's most helpful to start thinking here in terms of run segments, because I imagine we could then aggregate any metric to the level of a whole run, ski area, or ski area aggregation.
For the MVP, I could see us incorporating:
This would assume no vegetative shadowing, cloud cover, and limited topographic shadowing. Up for discussion.
Let's use this issue to discuss methods and implementations. @joshimmel is interested in methods here. @nbarbier-s2 has opened a POC in #24.
The text was updated successfully, but these errors were encountered: