All Projects → kdmayer → 3D-PV-Locator

kdmayer / 3D-PV-Locator

Licence: MIT license
Repo for "3D-PV-Locator: Large-scale detection of rooftop-mounted photovoltaic systems in 3D" based on Applied Energy publication.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to 3D-PV-Locator

ChangeFormer
Official PyTorch implementation of our IGARSS'22 paper: A Transformer-Based Siamese Network for Change Detection
Stars: ✭ 220 (+528.57%)
Mutual labels:  remote-sensing, satellite-imagery, climate-change
Sentinelsat
Search and download Copernicus Sentinel satellite images
Stars: ✭ 576 (+1545.71%)
Mutual labels:  remote-sensing, satellite-imagery
Notebooks
interactive notebooks from Planet Engineering
Stars: ✭ 339 (+868.57%)
Mutual labels:  remote-sensing, satellite-imagery
Modistsp
An "R" package for automatic download and preprocessing of MODIS Land Products Time Series
Stars: ✭ 118 (+237.14%)
Mutual labels:  remote-sensing, satellite-imagery
shipsnet-detector
Detect container ships in Planet imagery using machine learning
Stars: ✭ 30 (-14.29%)
Mutual labels:  remote-sensing, satellite-imagery
Torchsat
🔥TorchSat 🌏 is an open-source deep learning framework for satellite imagery analysis based on PyTorch.
Stars: ✭ 261 (+645.71%)
Mutual labels:  remote-sensing, satellite-imagery
Label Maker
Data Preparation for Satellite Machine Learning
Stars: ✭ 377 (+977.14%)
Mutual labels:  remote-sensing, satellite-imagery
Instancesegmentation sentinel2
🌱 Deep Learning for Instance Segmentation of Agricultural Fields - Master thesis
Stars: ✭ 206 (+488.57%)
Mutual labels:  remote-sensing, satellite-imagery
Awesome Satellite Imagery Datasets
🛰️ List of satellite image training datasets with annotations for computer vision and deep learning
Stars: ✭ 2,447 (+6891.43%)
Mutual labels:  remote-sensing, satellite-imagery
Geetools Code Editor
A set of tools to use in Google Earth Engine Code Editor (JavaScript)
Stars: ✭ 157 (+348.57%)
Mutual labels:  remote-sensing, satellite-imagery
geoblaze
Blazing Fast JavaScript Raster Processing Engine
Stars: ✭ 80 (+128.57%)
Mutual labels:  remote-sensing, satellite-imagery
sits
Satellite image time series in R
Stars: ✭ 342 (+877.14%)
Mutual labels:  remote-sensing, satellite-imagery
open-impact
To help quickstart impact work with Satellogic [hyperspectral] data
Stars: ✭ 21 (-40%)
Mutual labels:  remote-sensing, satellite-imagery
Geospatial Machine Learning
A curated list of resources focused on Machine Learning in Geospatial Data Science.
Stars: ✭ 289 (+725.71%)
Mutual labels:  remote-sensing, satellite-imagery
Landsat578
Very simple API to download Landsat [1-5, 7, 8] data from Google
Stars: ✭ 54 (+54.29%)
Mutual labels:  remote-sensing, satellite-imagery
land-cover-to-land-use-classification
Satellite image processing pipeline to classify land-cover and land-use
Stars: ✭ 64 (+82.86%)
Mutual labels:  remote-sensing, satellite-imagery
trends.earth
trends.earth - measure land change
Stars: ✭ 69 (+97.14%)
Mutual labels:  remote-sensing, climate-change
dea-coastlines
Extracting tidally-constrained annual shorelines and robust rates of coastal change from freely available Earth observation data at continental scale
Stars: ✭ 24 (-31.43%)
Mutual labels:  remote-sensing, satellite-imagery
S2p
Satellite Stereo Pipeline
Stars: ✭ 136 (+288.57%)
Mutual labels:  remote-sensing, satellite-imagery
iris
Semi-automatic tool for manual segmentation of multi-spectral and geo-spatial imagery.
Stars: ✭ 87 (+148.57%)
Mutual labels:  remote-sensing, satellite-imagery

3D-PV-Locator

Pipeline Overview

Repo with documentation for "3D-PV-Locator: Large-scale detection of rooftop-mounted photovoltaic systems in 3D" published in Applied Energy.

In case you would like to explore the code with which we created the image datasets and pre-processed the CityGML files, please have a look at the following GitHub repo.

About

3D-PV-Locator is a joint research initiative between Stanford University, University of Freiburg, and LMU Munich that aims at democratizing and accelerating the access to photovoltaic (PV) systems data in Germany and beyond.

To do so, we have developed a computer vision-based pipeline leveraging aerial imagery with a spatial resolution of 10 cm/pixel and 3D building data to automatically create address-level and rooftop-level PV registries for all counties within Germany's most populous state North Rhine-Westphalia.

Exemplary Pipeline Output

Address-level registry

For every address equipped with a PV system in North Rhine-Westphalia, the automatically produced address-level registry in GeoJSON-format specifies the respective PV system's:

  • geometry: Real-world coordinate-referenced polygon describing the shape of the rooftop-mounted PV system
  • area_inter: The total area covered by the PV system in square meters
  • area_tilted: The total area covered by the PV system in square meters, corrected by the respective rooftop tilt
  • capacity_not_tilted_area: The total PV capacity in kWp of area_inter
  • capacity_titled_area: The total PV capacity in kWp of area_tilted
  • location of street address in latitude and longitude
  • street address
  • city and
  • ZIP code

Rooftop-level registry

For every rooftop equipped with a PV system in North Rhine-Westphalia, the automatically produced rooftop-level registry in GeoJSON-format specifies the respective PV system's:

  • Azimuth: Orientation of the rooftop-mounted PV system, with 0° pointing to the North
  • Tilt: Tilt of the rooftop-mounted PV system, with 0° being flat
  • RoofTopID: Identifier of the respective rooftop
  • geometry: Real-world coordinate-referenced polygon describing the shape of the rooftop-mounted PV system
  • area_inter: The total area covered by the PV system in square meters
  • area_tilted: The total area covered by the PV system in square meters, corrected by the respective rooftop tilt
  • capacity_not_tilted_area: The total PV capacity in kWp of area_inter
  • capacity_titled_area: The total PV capacity in kWp of area_tilted
  • street address
  • city and
  • ZIP code

For a detailed description of the underlying pipeline and a case study for the city of Bottrop, please have a look at our spotlight talk at NeurIPS 2020:

You might also want to take a look at other projects within Stanford's EnergyAtlas initiative:

Datasets and pre-processing code are public

Please note that apart from the pipeline code and documentation, we also provide you with

  • A pre-trained model checkpoint for PV classification on aerial imagery with a spatial resolution of 10cm/pixel.
  • A pre-trained model checkpoint for PV segmentation on aerial imagery with a spatial resolution of 10cm/pixel.
  • A 100,000+ image dataset for PV system classification.
  • A 4,000+ image dataset for PV system segmentation.
  • Pre-processed 3D building data in .GeoJSON format for the entire state of North Rhine-Westphalia.

In case you would like to explore the code with which we created the image datasets and pre-processed the CityGML files, please have a look at the following GitHub repo.

When using these resources, please cite our work as specified at the bottom of this page.

NOTE: All images and 3D building data is obtained from openNRW. Labeling of the images for PV system classification and segmentation has been conducted by us.

Usage Instructions:

git clone https://github.com/kdmayer/3D-PV-Locator.git
cd 3D-PV-Locator

Download pre-trained classification and segmentation models for PV systems from our public AWS S3 bucket. This bucket is in "requester pays" mode, which means that you need to configure your AWS CLI before being able to download the files. Instructions on how to do it can be found here.

Once you have configured your AWS CLI with

aws configure

you can list and browse our public bucket with

aws s3 ls --request-payer requester s3://pv4ger/

Please download our pre-trained networks for PV system classification and segmentation by executing

aws s3 cp --request-payer requester s3://pv4ger/NRW_models/inceptionv3_weights.tar models/classification/
aws s3 cp --request-payer requester s3://pv4ger/NRW_models/deeplabv3_weights.tar models/segmentation/

Next, set up your conda environment with all required dependencies by executing

conda env create --file environment.yml
conda activate pv4ger

Lastly, to create PV registries for any county within North Rhine-Westphalia, you need to

  1. Download the 3D building data for your desired county from our S3 bucket by executing and replacing <YOUR_DESIRED_COUNTY.geojson> with a county name from the list below:

     aws s3 cp --request-payer requester s3://pv4ger/NRW_rooftop_data/<YOUR_DESIRED_COUNTY.geojson> data/nrw_rooftop_data/
    

    Example for the county of Essen:

     aws s3 cp --request-payer requester s3://pv4ger/NRW_rooftop_data/Essen.geojson data/nrw_rooftop_data/
    
  2. Specify the name of your desired county for analysis in the config.yml next to the "county4analysis" element by choosing one of the counties from the list below:

    Example:

     county4analysis: Essen
    
  3. OPTIONAL STEP: Obtain your Bing API key for geocoding from here and paste it in the config.yml file next to the "bing_key" element

    Example:

     bing_key: <YOUR_BING_KEY>
    

    NOTE: If you leave <YOUR_BING_KEY> empty, geocoding will be done by the free OSM geocoding service.

  4. Put a "1" next to all the pipeline steps that you would like to run

    Example:

     run_tile_creator: 1
    
     run_tile_downloader: 1
    
     run_tile_processor: 1
    
     run_tile_coords_updater: 0
    
     run_registry_creator: 1
    

    and execute run_pipeline.py in the root directory.

List of available counties:

Please choose the county you would like to run the pipeline for from the following list:

  • Düren
  • Essen
  • Unna
  • Mönchengladbach
  • Solingen
  • Dortmund
  • Gütersloh
  • Olpe
  • Steinfurt
  • Bottrop
  • Coesfeld
  • Leverkusen
  • Köln
  • Soest
  • Mülheim-a.d.-Ruhr
  • Münster
  • Heinsberg
  • Oberhausen
  • Euskirchen
  • Krefeld
  • Warendorf
  • Recklinghausen
  • Bochum
  • Rhein-Kreis-Neuss
  • Rheinisch-Bergischer-Kreis
  • Herne
  • Kleve
  • Bonn
  • Minden-Lübbecke
  • Herford
  • Rhein-Sieg-Kreis
  • Düsseldorf
  • Hagen
  • Paderborn
  • Wuppertal
  • Oberbergischer-Kreis
  • Viersen
  • Rhein-Erft-Kreis
  • Märkischer-Kreis
  • Städteregion-Aachen
  • Remscheid
  • Mettmann
  • Lippe
  • Ennepe-Ruhr-Kreis
  • Hochsauerlandkreis
  • Gelsenkirchen
  • Höxter
  • Borken
  • Hamm
  • Bielefeld
  • Duisburg
  • Siegen-Wittgenstein
  • Wesel

OpenNRW Platform:

For the German state of North Rhine-Westphalia (NRW), OpenNRW provides:

  • Aerial imagery at a spatial resolution of 10cm/pixel
  • Extensive 3D building data in CityGML format

License:

MIT

BibTex Citation:

Please cite our work as

@article{MAYER2022,
title = {3D-PV-Locator: Large-scale detection of rooftop-mounted photovoltaic systems in 3D},
journal = {Applied Energy},
volume = {310},
pages = {118469},
year = {2022},
issn = {0306-2619},
doi = {https://doi.org/10.1016/j.apenergy.2021.118469},
url = {https://www.sciencedirect.com/science/article/pii/S0306261921016937},
author = {Kevin Mayer and Benjamin Rausch and Marie-Louise Arlt and Gunther Gust and Zhecheng Wang and Dirk Neumann and Ram Rajagopal},
keywords = {Solar panels, Renewable energy, Image recognition, Deep learning, Computer vision, 3D building data, Remote sensing, Aerial imagery},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].