Rooftop Solar-Potential Analysis with Convolutional Neural Networks

Azati built a computer-vision prototype that classifies rooftops from satellite imagery to estimate solar potential, supporting municipal energy and subsidy planning. The project won Local Winner and Local People's Choice at NASA Space Apps Challenge 2017 and was nominated globally.

Discuss your project
2x

winner at NASA Space Apps Challenge 2017, Local Winner and Local People's Choice

5

solar parameters estimated per analyzed area, from roof surface to monthly energy output

Global

nominee at NASA Space Apps Challenge 2017

Technologies used

Python
Python
Docker
Docker
iOS
iOS
Jupyter
Jupyter
Theano
Theano
Lasagne
Lasagne

Motivation

Solar panels keep dropping in price, and rooftop installation is the most efficient way to place them: close to the consumer, with minimal transmission loss, and without occupying agricultural land. The hard part for any municipality or energy planner is knowing, at scale, which roofs across an area are actually suitable and how much generation that area could realistically support. Surveying buildings one by one is slow and expensive.

Azati built SolarCity for the NASA Space Apps Challenge 2017 to answer those questions automatically from satellite imagery, turning raw aerial pixels into aggregate, decision-ready figures that support investment planning, subsidy design, and long-term energy strategy. The project deliberately stops short of calculating economic returns; it supplies the underlying surface and energy data on which such strategies are built. It sits at the intersection of AI for infrastructure and real estate intelligence and renewable energy planning.

Technical challenges

Challenge 01

Detecting rooftops reliably from satellite imagery

Roofs vary widely in shape, orientation, color, and surrounding clutter. Satellite tiles introduce shadows, occlusion, and inconsistent resolution, making classification harder than standard image tasks:

  • Highly variable roof shapes, colors, and orientations
  • Shadows and occlusion in satellite tiles distorting boundaries
  • Inconsistent resolution across tile sources
  • Cluttered surroundings requiring clean segmentation
#1
Challenge 02

Training a reliable model within a hackathon timeframe

Training a deep network from scratch was not realistic given the time and labeled data available. The team used transfer learning on a pretrained ResNet-50 backbone, adapting an established ImageNet model to the narrower task of roof classification:

#2
Challenge 03

Converting pixel classifications into actionable solar parameters

Classification alone doesn't help a planner make a decision. The system had to translate classified roof areas into the five concrete figures that municipal energy planning actually requires:

  • Effective roof surface area estimation from classified pixels
  • Monthly energy production calculation per analyzed area
  • Total panel surface area aggregation
  • Average output per roof for comparison across zones
#3
Challenge 04

Making the output usable for planners

Numbers without context don't drive decisions. Raw classification output needed to be turned into something a municipal planner could actually use, not a spreadsheet, but a visual, interactive tool:

  • Classified roofs displayed on satellite map with panel placement
  • Results accessible on mobile without desktop dependency
  • iOS app for interactive field exploration of area analysis
  • Area-level aggregation readable at a glance
#4

Our approach

Computer-vision pipeline with GPU acceleration

Satellite imagery is tiled and passed through the roof-classification model in a fully containerized pipeline. Docker and NVIDIA-Docker ensure reproducible, GPU-accelerated runs that can be pointed at any neighborhood, town, or city without environment setup overhead. The pipeline was built and delivered end-to-end within the NASA Space Apps Challenge 48-hour format.

Transfer learning over a bespoke architecture

A pretrained ResNet-50 backbone (Theano / Lasagne) was adapted for roof classification rather than training a custom model from scratch. The decision was deliberate: within hackathon constraints of time and labeled data, transfer learning delivered a dependable classifier faster and more reliably than any bespoke architecture could have. The judges at Space Apps noticed, the approach was cited as technically credible, not just creative.

From classified pixels to planning-ready solar parameters

Classification is the starting point, not the finish line. Classified roof areas are aggregated into effective surface estimates and converted into the five figures that actually matter to an energy planner: roof count, total roof area, total panel area, monthly energy production, and average output per roof. This translation layer was what set SolarCity apart from a pure research submission at the challenge.

Visualization and open-source release

Results are rendered on an OpenStreetMap-based satellite view with classified roofs and prospective panel placement shown in geographic context. A companion iOS app makes the analysis accessible in the field. The project was open-sourced under Apache 2.0 immediately after the challenge, a deliberate choice to make the work available to municipalities and energy planners beyond the competition context.

Building something with computer vision or geospatial AI?

Azati has been applying machine learning to real-world spatial problems since 2017. Let's talk about what you're building.

Talk to our ML team

Solution

01

Rooftop Classification Model

A CNN-based classifier built on a ResNet-50 backbone with transfer learning identifies rooftops suitable for solar installation from satellite imagery. Satellite tiles covering the selected area are processed in sequence through the classification pipeline, with GPU-accelerated execution via NVIDIA-Docker ensuring practical run times.

Key capabilities:
  • ResNet-50 backbone with ImageNet transfer learning
  • Tile-based processing of any selected neighborhood or city area
  • GPU-accelerated containerized execution via Docker and NVIDIA-Docker
  • Binary roof suitability classification per tile
02

Solar Parameter Estimation

Classified roof areas are aggregated into effective surface estimates and translated into the five solar parameters that planners care about. The output moves from raw pixel classifications to concrete, decision-ready figures without requiring the planner to handle intermediate data.

Key capabilities:
  • Effective roof surface area estimation from classified pixels
  • Monthly energy production estimate for the analyzed area
  • Total roof count, total roof area, and total panel surface area
  • Average energy production per suitable roof
03

Map-Based Visualization

Results are rendered directly on an OpenStreetMap-based satellite view, with classified roofs highlighted and prospective panel placement shown in context. The visual output makes the analysis legible at a glance for planners who need to communicate findings to decision-makers.

Key capabilities:
  • Classified roofs displayed on OpenStreetMap satellite layer
  • Prospective panel placement visualization per roof
  • Area-level aggregation view for city or neighborhood scale
04

Companion iOS Application

A native iOS app provides a mobile front end for exploring analysis results interactively, allowing planners and field teams to review area data without being tied to a desktop environment.

Key capabilities:
  • Native iOS interface built with CocoaPods
  • Interactive area analysis review
  • Mobile access to solar parameter estimates and map view

Results & recognition

NASA Space Apps Challenge 2017

SolarCity was recognized as Local Winner, Local People's Choice Winner, and Global Nominee in the "You are my Sunshine" challenge category, competing against teams worldwide on solar and renewable energy applications.

Working end-to-end prototype

From satellite tile to classified roofs to area-level solar parameters, with map visualization and a mobile app, a complete pipeline delivered within hackathon constraints.

Open-sourced under Apache 2.0

The full project was released publicly under the Apache 2.0 license, making the rooftop classification pipeline and solar estimation code available for anyone building on top of it.

Early applied-AI track record

A production-style computer-vision pipeline delivered in 2017, well before the current wave of AI adoption. Part of Azati's long-standing depth in machine learning and computer vision, dating back years before these became mainstream engineering topics.

Strategic wins

What makes this project worth noting beyond the awards:

Transfer learning as a practical constraint solver

The choice to use ResNet-50 with transfer learning rather than training from scratch wasn't a shortcut: it was the right engineering decision given the constraints of labeled data availability and time. That same pragmatism, choosing the approach that delivers a working result within real constraints, carries through into how Azati approaches production ML projects.

From classification to actionable output

The step from "these pixels are a roof" to "this area can generate X kWh per month" is where the real engineering work sits. Building that translation layer, and making it reliable enough that a planner can use the output directly, is what distinguished SolarCity from a pure classification exercise.

Computer vision for physical-world planning problems

Applying deep learning to satellite imagery for infrastructure and energy planning is a pattern with broad applicability: roof assessment, land use classification, construction monitoring, agricultural analysis. The technical foundations built in this project transfer directly to any domain where geospatial imagery needs to be turned into structured decisions.

Team composition

SolarCity was built by Azati's engineering team as an internal R&D and competition project for NASA Space Apps Challenge 2017.

  • Engineering team (Azati) responsible for the CNN classification pipeline, transfer learning fine-tuning, solar parameter estimation logic, Docker containerization, OpenStreetMap visualization integration, and iOS application development.

The described expertise is relevant for

  • Computer vision pipelines for satellite or aerial imagery analysis
  • Deep learning applied to infrastructure, real estate, or energy planning
  • Transfer learning for domain-specific classification tasks with limited labeled data
  • Geospatial ML and OpenStreetMap integration
  • Sustainability intelligence and renewable energy planning tools
  • R&D prototypes requiring end-to-end delivery from model to visualization

Last updated

Got a job for Azati? Let’s talk business!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

What's next?

  • 1. Tell Us Your Story
    Describe your project. We come back within 24 hours with team availability and a rough plan. NDA on request before the first call.
  • 2. Get Your Roadmap
    Receive a detailed proposal with scope, team composition, timeline, and costs tailored to your goals.
  • 3. Start Building
    Azati aligns on details, finalize terms, and launch your project with full transparency.