iamrobothahaha/Analyzes_Floating_Solar_Anomalies
☀️ Floating Solar Thermal Anomaly Analysis
  
Detect anomalies on floating solar farms from drone thermal images. Upload DJI thermal photos → the app finds hot spots and bypass-diode faults, pins them on a satellite map using the GPS embedded in each photo, and exports an Excel report plus a Google Earth (KMZ) file.
<!-- TODO: add a screenshot or GIF here, e.g. -->
▶ Try it live: https://huggingface.co/spaces/iamrobothahaha/AnalyzesFloatingSolar_Anomalies
How it works
Thermal image (DJI drone)
│
├─► YOLOv8 (fine-tuned best.pt) ──► bounding boxes + confidence
│
└─► ExifTool ──► GPS lat/lon from EXIF/XMP metadata
│
┌─────────────────────┘
▼
Interactive map (Folium) · Results table · Excel report · Google Earth KMZFeatures
Model
Metrics
<!-- TODO: fill in real numbers. Get them by running: yolo val model=best.pt data=path/to/data.yaml or from runs/detect/train/results.csv of your training run. -->
Usage
- Single File Analysis — upload one image for a detailed view: original vs. annotated side-by-side, per-detection confidence, GPS map.
- Multiple Files Analysis — batch process many images and get a full report: summary metrics, anomaly map, filterable table, Excel + KMZ downloads.
- Confidence slider — only detections above the threshold are shown (default 0.40).
Run locally
# 1. Install Python dependencies
pip install -r requirements.txt
# 2. Install ExifTool (needed for GPS extraction)
# - Windows: download from https://exiftool.org, rename to exiftool.exe,
# and place it in the project root (the app auto-detects it there)
# - Linux: sudo apt install libimage-exiftool-perl
# - macOS: brew install exiftool
# 3. Start the app
streamlit run app.pyOptional — GPU acceleration (local machines with NVIDIA GPU):
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118The Hugging Face Space runs on CPU (free tier); GPU only applies when running locally.
Project structure
├── app.py # Main Streamlit application
├── best.pt # Fine-tuned YOLOv8 weights
├── requirements.txt # Python dependencies
└── packages.txt # System packages for HF Spaces (ExifTool)Limitations
- Trained on a limited dataset — detects 2 anomaly classes only; other defects (soiling, vegetation shading, string outages, cracked cells) are not yet recognised.
- Reports bounding boxes and confidence, not actual temperatures — radiometric ΔT readout from DJI thermal data is planned.
- GPS accuracy depends on the drone's metadata; images without GPS tags still get analysed but won't appear on the map.
- Tested primarily with DJI drone thermal JPEGs.
Roadmap
- [ ] Sample images folder so visitors can test without their own data
- [ ] Severity scoring (Critical / Major / Minor) per detection
- [ ] Radiometric temperature (ΔT) extraction from DJI XMP data
- [ ] More anomaly classes + larger base model (YOLOv8s / YOLOv11)
- [ ] PDF inspection report export
- [ ] Cluster nearby detections into single faults (DBSCAN)
Credits
Built with Ultralytics YOLOv8, Streamlit, Folium, and ExifTool.
