Solshade: Terrain-aware Solar Illumination Modelling using Digital Elevation Models and Orbital Geometry

Solshade: Terrain-aware Solar Illumination Modelling using Digital Elevation Models and Orbital Geometry - Published in JOSS (2026)

https://github.com/amanchokshi/solshade

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 9 days ago · JSON representation

Repository

Terrain-aware solar illumination modeling using DEMs and orbital sun geometry

Basic Info
Statistics
  • Stars: 4
  • Watchers: 0
  • Forks: 1
  • Open Issues: 1
  • Releases: 1
Created 10 months ago · Last pushed 16 days ago
Metadata Files
Readme Contributing License

README.md

PyPI Python CI codecov Docs License

Black

solshade is a Python toolkit for simulating solar radiation across landscapes, accounting for terrain shadows, solar angles, and orbital geometry. It’s designed for interdisciplinary research at the intersection of astronomy, glaciology, botany, and geology. Capturing the dance of sol (Sun) and shade (Shadow) over landscapes.


What does solshade do?

  • Computes per-pixel solar exposure over time from a DEM
  • Generates terrain-aware horizon maps to determine shadowing
  • Uses precise solar ephemerides (via Skyfield)
  • Calculates:
    • Total annual insolation
    • Date of maximum sunlight
    • Mean solar incidence angle
    • Terrain shading based on real orbital paths

solshade is designed to install cleanly with a single invocation of the standard Python package tool:

pip install solshade

Here are some essential project links:

Example Applications

  • Studying microhabitats in extreme environments
  • Predicting snowmelt timing in complex terrain
  • Understanding glacial melt and shadowed regions
  • Modeling plant growing seasons across topography

License

MIT License — see LICENSE file.


Acknowledgments

Inspired by many interesting conversations with Anna O'Flynn, Anthony Zerafa & Chris Omelon at the McGill Arctic Research Station (MARS) on Axel Heiberg Island, 2025.

Owner

  • Name: Aman Chokshi
  • Login: amanchokshi
  • Kind: user
  • Location: Montreal
  • Company: McGill TSI

Postdoctoral Fellow @mcgill TSI ↟‎‎ ‎Radio Astronomer ↟ Coder ↟ Photographer

JOSS Publication

Solshade: Terrain-aware Solar Illumination Modelling using Digital Elevation Models and Orbital Geometry
Published
June 02, 2026
Volume 11, Issue 122, Page 9944
Authors
Aman Chokshi ORCID
Department of Physics, McGill University, Montréal, Québec H3A 2T8, Canada, Trottier Space Institute, McGill University, Montréal, Québec H3A 2A7, Canada
Editor
Monica Bobra ORCID
Tags
Solar Radiation Terrain Analysis Geospatial Modelling Digital Elevation Models

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Push event: 17
  • Public event: 1
  • Create event: 1
Last Year
  • Issues event: 2
  • Watch event: 2
  • Push event: 17
  • Public event: 1
  • Create event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 70
  • Total Committers: 1
  • Avg Commits per committer: 70.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 70
  • Committers: 1
  • Avg Commits per committer: 70.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Aman Chokshi a****i@m****a 70
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 2 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • amanchokshi (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 118 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: solshade

Terrain-aware solar illumination modeling using DEMs and orbital sun geometry.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 118 Last month
Rankings
Dependent packages count: 8.5%
Average: 30.2%
Forks count: 30.7%
Stargazers count: 33.5%
Dependent repos count: 48.0%
Maintainers (1)
Last synced: about 1 month ago

Dependencies

docs/requirements.txt pypi
  • mkdocs *
  • mkdocs-autorefs *
  • mkdocs-gen-files *
  • mkdocs-git-revision-date-localized-plugin *
  • mkdocs-jupyter *
  • mkdocs-literate-nav *
  • mkdocs-material *
  • mkdocs-section-index *
  • mkdocstrings *
  • nbformat *
  • pymdown-extensions *
pyproject.toml pypi
  • cmasher >=1.9.2
  • joblib >=1.5.1
  • matplotlib >=3.10.5
  • more-itertools >=10.7.0
  • numba ==0.61.2
  • numpy ==2.2
  • pandas >=2.3.1
  • rasterio >=1.4.3
  • rich >=14.1.0
  • rioxarray >=0.19.0
  • scipy >=1.16.1
  • skyfield >=1.53
  • typer >=0.16.0
uv.lock pypi
  • 176 dependencies