Skip to content

Commit 15a9820

Browse files
author
Perry
committed
make the readme look less trash
1 parent 19965a9 commit 15a9820

1 file changed

Lines changed: 74 additions & 36 deletions

File tree

README.md

Lines changed: 74 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,87 @@
11
![Panel Segmentation Icon](docs/_static/panel_segmentation_cropped_icon.png)
22

3-
This repo contains the scripts for automated metadata extraction of solar PV installations,
4-
using satellite imagery coupled with computer vision techniques. In this package, the user
5-
can perform the following actions:
6-
- Automatically generate a satellite image using a set of lat-long coordinates, and a Google
7-
Maps API key. To get a Google Maps API key, go to the following site and set up an account:
8-
https://developers.google.com/maps/documentation/maps-static/get-api-key
9-
- Determine the presence of a solar array in the satellite image (boolean True/False), using a
10-
classification model (VGG16_classification_model.h5).
11-
- Perform image segmentation on the satellite image, to locate the solar array(s) in the
12-
image on a pixel-by-pixel basis, using an image segmentation model (VGG16Net_ConvTranpose_complete.h5).
13-
- Using connected components clustering, isolate individual solar arrays in the masked image.
14-
- Perform azimuth estimation on each solar array cluster in the masked image.
15-
- Using an object detection model (Faster R-CNN Resnet 50 trained via transfer learning), detect
16-
and classify mounting type and configuration of solar installations in satellite imagery. This includes
17-
classification of fixed tilt and single-axis trackers, as well as the rooftop,
18-
ground, and carport mounting configurations.
19-
- Detect solar panels and get its latitude, longitude, and address within a geographic bounding box through the SOL-Searcher Pipeline.
20-
- Detect and calculate hurricane damage on solar installations given pre-hurricane and post-hurricane satellite imagery through the Hurricane Detection Pipeline.
21-
- Detect and calculate hail damage on solar installations given satellite imagery through the Hail Detection pipeline.
22-
- Convert NOAA MESH (Maximum Estimated Size of Hail) grib2 files into kml or geojson files.
23-
- Estimate tilt and azimuth of a solar array by processing USGS LiDAR data for the array's location.
24-
- Automatically estimate the solar array's tilt and azimuth by pulling and processing USGS LiDAR data
25-
within a shapely polygon outlining the solar array.
26-
27-
To install Panel-Segmentation, perform the following steps:
28-
29-
1. You must have Git large file storage (lfs) on your computer in order to download the deep learning models in this package. Go to the following site to download Git lfs:
30-
31-
https://git-lfs.github.com/
32-
33-
2. Once git lfs is installed, you can now install Panel-Segmentation on your computer. We are still working on making panel-segmentation available via PyPi, so entering the following in the command line will install the package locally on your computer:
34-
35-
git clone https://github.com/NatLabRockies/Panel-Segmentation.git
3+
# Panel-Segmentation
4+
5+
Automated metadata extraction for solar PV installations using satellite imagery and computer vision.
6+
7+
[![PyPI version](https://badge.fury.io/py/panel-segmentation.svg)](https://badge.fury.io/py/panel-segmentation)
8+
[![Build Status](https://github.com/NREL/Panel-Segmentation/actions/workflows/pytest.yaml/badge.svg)](https://github.com/NREL/Panel-Segmentation/actions)
9+
[![Documentation Status](https://readthedocs.org/projects/panel-segmentation/badge/?version=latest)](https://panel-segmentation.readthedocs.io/en/latest/)
10+
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
11+
12+
---
13+
14+
## Overview
15+
16+
Panel-Segmentation provides tools to detect, locate, and characterize solar PV installations from satellite and aerial imagery. It is developed at the [National Renewable Energy Laboratory (NREL)](https://www.nrel.gov/).
17+
18+
**Capabilities include:**
19+
20+
- **Satellite image retrieval** — pull imagery for any lat/lon coordinate via the Google Maps Static API
21+
- **Solar panel detection** — locate panels and retrieve their latitude, longitude, and address within a geographic bounding box (SOL-Searcher Pipeline)
22+
- **Storm damage assessment** — detect and quantify hurricane or hail damage on solar installations from before/after satellite imagery
23+
- **NOAA MESH conversion** — convert NOAA Maximum Estimated Size of Hail (MESH) grib2 files to KML or GeoJSON
24+
- **Tilt and azimuth estimation** — estimate array tilt and azimuth from USGS LiDAR data
25+
- **Mounting configuration classification** — identify roof-mount, ground-mount, carport, and other configurations using an instance segmentation model
26+
- **Site autotagging** — geolocate tracker rows, fixed-tilt rows, and inverters at utility-scale ground-mount sites using a deep learning pipeline
27+
28+
---
29+
30+
## Installation
31+
32+
### Prerequisites
33+
34+
Panel-Segmentation stores deep learning model weights via [Git Large File Storage (LFS)](https://git-lfs.github.com/). Install Git LFS before cloning:
35+
36+
```bash
37+
# macOS
38+
brew install git-lfs
39+
40+
# Linux
41+
sudo apt install git-lfs
42+
43+
# Then initialize
44+
git lfs install
45+
```
46+
47+
### Install from source
48+
49+
```bash
50+
git clone https://github.com/NREL/Panel-Segmentation.git
3651
cd Panel-Segmentation
3752
pip install .
53+
```
54+
55+
### Install MMCV (required for storm damage models)
3856

39-
3. Panel-Segmentation requires the MMCV package, which can be tricky to install for CPU-only, and needs to be installed from source. To install MMCV for source, run the following in the command line:
57+
The storm-related CV models depend on MMCV, which must be built from source:
4058

59+
```bash
4160
pip install git+https://github.com/open-mmlab/mmcv.git@v2.1.0
61+
```
62+
63+
> **Note:** MMCV installation may take several minutes.
64+
65+
---
66+
67+
## Documentation
68+
69+
Full documentation — including installation guides, API reference, pipeline tutorials, and example notebooks — is available at **[panel-segmentation.readthedocs.io](https://panel-segmentation.readthedocs.io/en/latest/)**.
70+
71+
---
72+
73+
## Contributing
74+
75+
Contributions are welcome. Please open an issue or pull request on [GitHub](https://github.com/NREL/Panel-Segmentation).
4276

43-
Please note that installation will likely take several minutes, but is necessary for running any of the storm-related CV models.
77+
---
4478

45-
3. When initiating the PanelDetection() class, be sure to point your file paths to the model paths in your local Panel-Segmentation folder!
79+
## Citation
4680

81+
If you use Panel-Segmentation in your research, please cite it using the information in [`CITATION.cff`](CITATION.cff).
4782

83+
---
4884

85+
## License
4986

87+
Panel-Segmentation is released under the [BSD 3-Clause License](LICENSE).

0 commit comments

Comments
 (0)