slope-exclusion

A Python tool for creating slope-based exclusion masks to support renewable energy planning.

https://github.com/climatecompatiblegrowth/slope-exclusion

Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A Python tool for creating slope-based exclusion masks to support renewable energy planning.

Basic Info
  • Host: GitHub
  • Owner: ClimateCompatibleGrowth
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 140 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

SlopeEXCL - Slope-based Exclusion

SlopeEXCL generates .tif files to exclude areas unsuitable for wind and solar energy placements based on slope thresholds.

  • Wind Turbines: Applies a uniform slope threshold across all aspects.
  • Solar Panels: Allows distinct thresholds for south-facing and north-east-west-facing slopes.

The generated .tif files can be integrated as exclusion layers in renewable energy planning tools like GLAES. For example, in Glaes:

python ec.excludeRasterType(os.path.join(data_path, 'exclude_slope_pv.tif'), value=1, prewarp=True)


Getting Started

Download of files is indicated by 📋.

Code execution is indicated by 👉.

Set up Python and install the required dependencies (rasterio, numpy, scipy, os, argparse).

📋 This repository requires a 3-arc-second resolution Digital Elevation Model (DEM) from HydroSHEDS. Place the downloaded DEM in the data folder and rename to "fulLdem_".

Clip the DEM

DEMs for entire continents are often too large to process efficiently. To avoid excessive file sizes, clip the DEM to your area of interest (e.g., a country).

📋 You can download country boundary GeoJson files from opendatasoft based on their ISO3 code. Place the .geojson file in the data folder and rename to "countryboundary_".

👉 Clip the DEM to your country using the provided script:

bash python clip_raster_to_boundary.py --raster data/full_dem.tif --boundary data/country_boundary.geojson --output data/dem.tif


How to Run

👉 Execute the script from the terminal: bash python exclude_slope.py --type [solar|wind|both] --solar-nea [value] --solar-s [value] --wind-thresh [value] --output [filename] Example with custom values: bash python exclude_slope.py --type both --solar-nea 6.28 --solar-s 33 --wind-thresh 8.53 --output exclusion.tif

To use the default values, omit the optional arguments: bash python exclude_slope.py --type both

The script will then use: - --solar-nea: 6.28 (degrees) - --solar-s: 33 (degrees) - --wind-thresh: 8.53 (degrees) - --sigma: 1 - --output: exclusion.tif


Repository Structure

  • exclude_slope.py: Python script for generating exclusion files.
  • exclude_slope.ipynb: Jupyter notebook for running the same code interactively.
  • data: Directory for raw input file dem.tif.
  • output: Directory where generated .tif files will be saved.

Owner

  • Name: Climate Compatible Growth
  • Login: ClimateCompatibleGrowth
  • Kind: organization
  • Location: United Kingdom

Citation (citation)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Schirren"
  given-names: "Lukas"
  orcid: "https://orcid.org/0009-0009-4317-5680"
title: "Slope-Exclusion"
date-released: 2025-02-01
url: "https://github.com/ClimateCompatibleGrowth/Slope-Exclusion"

GitHub Events

Total
  • Push event: 8
Last Year
  • Push event: 8