Planetary-scale answers, unlocked.
A Hands-On Guide for Working with Large-Scale Spatial Data. Learn more.
Authors
Satellite imagery analysis is the process of extracting information from images of the Earth's surface captured by satellites and aircraft. It turns pixels into answers: which land is forest, where every building and field sits, how tall the trees are, and what changed since last year. The AI in satellite imagery analysis described here is computer vision: models that classify, detect, segment, and measure what the pixels show.
Methods range from an analyst tracing a shoreline by hand to a neural network labeling every pixel on a continent. They developed in this order:
The input is always a raster: a grid of pixels with one or more spectral bands. It is stored as a GeoTIFF, a Cloud Optimized GeoTIFF, or a cloud-native array format such as Zarr. The Cloud Optimized GeoTIFF has been a standard of the Open Geospatial Consortium (OGC) since 2023, and it lets a reader fetch only the tiles it needs over HTTP. The output is often vector data: polygons and points that join to parcels, roads, and other tables. Remote sensing satellite imagery analysis covers optical, radar, and thermal sensors, and the same methods apply to aerial photographs.
The model is one step in a longer pipeline, and the output is usable only when the surrounding steps work.
Steps 2, 3, 5, and 6 grow with the area. Mosaicking a county is manageable; mosaicking a continent means managing tens of thousands of scenes, projections, and seams.
Validation borrows its measures from computer vision. Intersection over union (IoU) divides the area two shapes share by the area they cover together, so 1.0 is a perfect match. The PASCAL VOC challenge (Everingham et al., International Journal of Computer Vision, 2010) counted a detection as correct when its IoU with the reference exceeded 0.5. VOC stands for Visual Object Classes. That 0.5 threshold is now the usual cutoff. Precision is the share of detections that are real, and recall is the share of real objects found. Classified maps use an error matrix, covered under measuring accuracy below.
The examples in this article fall into classification, object detection, semantic segmentation, regression, and change detection.
Instance segmentation sits between detection and segmentation: it returns a separate mask for every object, so two adjacent roofs stay two features. Change detection compares two or more dates of the same place, with each date run through the same classification or segmentation step. Foundation models, models pretrained on large general datasets, now cover several of these tasks at once. One promptable model can detect roofs, roads, and solar panels from text prompts with no task-specific training, as in the Wherobots example below.
Ground sample distance, the ground width of one pixel, sets the smallest object a model can find. A rule of thumb is several pixels across the smallest object of interest.
Landsat 1 launched on July 23, 1972, which makes Landsat the longest continuous record. The Sentinel-2 mission paper (Drusch et al., 2012) describes the 13-band design. Spectral depth matters as much as pixel size: near-infrared separates vegetation from everything else, which is why NAIP's fourth band and Sentinel-2's red-edge bands carry information the eye cannot see. Hyperspectral imagery extends this to hundreds of narrow bands for mineral and crop stress mapping.
Each of these well-known projects pairs one task with one sensor:
RasterFlow (Public Preview) builds mosaics from imagery, runs computer vision inference on them, and writes the results as vectorized outputs on the same platform. A Python API drives it. Mosaics and predictions are written as Zarr, and vector results as GeoParquet. Built-in models cover common tasks:
Custom PyTorch models run through the bring-your-own-model path. Sentinel-2 mosaics skip scenes with 75% or more cloud cover, mask cloud, shadow, and cirrus pixels with the Scene Classification Layer, and take a per-pixel median of what remains.
Pricing is calculated before a task runs, from area, resolution, bands, and time periods. Finding every solar panel array across a 500 km² county with SAM3 on 30 cm NAIP costs $35.00, mosaic and inference included.
# Detect solar panels across a county from a text prompt with SAM3 on 30 cm NAIP from datetime import datetime from rasterflow_remote import RasterflowClient from rasterflow_remote.data_models import GeometryModelRecipes rf = RasterflowClient() detections = rf.predict_mosaic_geometries_recipe( aoi="s3://your-bucket/county.parquet", start=datetime(2022, 1, 1), end=datetime(2023, 1, 1), model_recipe=GeometryModelRecipes.SAM3_TEXT_GEOMETRY, text_prompt="solar panel", confidence_threshold=0.5, ) print(detections.uri) # GeoParquet containing detected solar-panel polygons
The GeoParquet output loads into WherobotsDB, built by the original creators of Apache Sedona, where a spatial join links each polygon to parcels, buildings, or hazard zones in SQL.
In Marion County, Oregon, one RasterFlow pipeline built a 133 GB mosaic from 2022 NAIP imagery. It ran SAM3 with eight text prompts in a single pass and kept detections with a confidence of 0.5 or more. Wherobots publishes the output as wherobots_open_data.rasterflow_output_samples.marion_county_sam3_vector.
wherobots_open_data.rasterflow_output_samples.marion_county_sam3_vector
label
bbox_score
geometry
Raster and vector stay on one platform: RasterFlow wrote the polygons from the imagery, and WherobotsDB queried them. Most stacks pick raster or vector. This query reads the one detections table and summarizes it per prompt. Areas are computed in Universal Transverse Mercator (UTM) zone 10N, so they come out in square meters. That system's code in the EPSG registry of coordinate systems is EPSG:32610:
SELECT label, COUNT(*) AS n, ROUND(AVG(bbox_score), 3) AS mean_score, ROUND(SUM(ST_Area(ST_Transform(geometry, 'EPSG:4326', 'EPSG:32610'))) / 1e6, 3) AS area_km2 FROM wherobots_open_data.rasterflow_output_samples.marion_county_sam3_vector GROUP BY label ORDER BY n DESC
The table holds 1,006,232 detections, and every row carries the same time stamp, 1 January 2022, the start of the 2022 NAIP window used to build the mosaic.
The county-wide evaluation of SAM3 roofs against Overture building footprints used three inputs:
roofs
The evaluation joined SAM3 roofs to Overture buildings where they intersect, in EPSG:32610. It then computed IoU for every intersecting pair. The join returned 207,109 candidate pairs. Total roof area agreed within 7%, and SAM3 matched the shape of three-quarters of known buildings. Many unmatched detections were real rural houses and outbuildings missing from Overture. The authors therefore judged real precision likely higher than 75%.
Satellite imagery analysis rests on fifty years of research, from texture statistics computed on the first Landsat scenes to promptable segmentation models.
The first computer analyses of satellite images classified one pixel at a time from its spectral values. Haralick, Shanmugam, and Dinstein added spatial context in Textural features for image classification (IEEE Transactions on Systems, Man, and Cybernetics, 1973). Their features are statistics of how often gray tones occur together in a neighborhood. They tested them on aerial photographs and on multispectral imagery from the Earth Resources Technology Satellite, later renamed Landsat 1. Compton Tucker's study of red and photographic infrared combinations (Remote Sensing of Environment, 1979) compared linear combinations of red and near-infrared bands for monitoring vegetation. The normalized difference it favored became NDVI.
Comparing dates came next. Ashbindu Singh's review of digital change detection techniques (International Journal of Remote Sensing, 1989) evaluated the procedures developed by then for comparing images of one place from different dates. It remains the starting point for the field. The Hansen forest map above ran that idea globally on Landsat time series.
Sub-meter imagery changed the unit of analysis. Once a house spans hundreds of pixels, a pixel classifier assigns roof texture, shadow, and lawn to separate classes. Thomas Blaschke's Object based image analysis for remote sensing (ISPRS Journal of Photogrammetry and Remote Sensing, 2010) describes the response. Segment the image into objects first, then classify each object by its spectra, shape, and relations to its neighbors. Instance segmentation models such as SAM3 complete that shift, returning one polygon per object straight from the network.
Russell Congalton's review of assessing the accuracy of classifications of remotely sensed data (Remote Sensing of Environment, 1991) set the error matrix as the core tool. An error matrix counts, for each true class, how many sample pixels the map put in each class. Congalton named the choices that decide whether an accuracy number means anything: the classification scheme, the sampling design, the sample size, and spatial autocorrelation between samples. Nearby pixels are similar, so samples drawn close together are not independent. Object detection added the IoU threshold from PASCAL VOC, the measure behind the Marion County comparison.
The open problem is the reference itself. Overture buildings are a curated, multi-source dataset, and they still likely miss buildings in rural areas. For that reason the Marion County evaluation treated many SAM3 "false positives" as real buildings. Roofs also differ from footprints: overhangs and occlusion mean a roof outline and a footprint seldom match. Any accuracy number on overhead imagery compares two datasets. Report the reference's dates, definitions, and gaps beside it.
Zhu, Tuia, Mou, and colleagues reviewed the arrival of neural networks in remote sensing. Their review is Deep learning in remote sensing: a comprehensive review and list of resources (IEEE Geoscience and Remote Sensing Magazine, 2017). Two things brought about the shift: architectures from other fields and labeled benchmarks for overhead imagery.
U-Net (Ronneberger, Fischer, and Brox, MICCAI 2015) was designed for biomedical images. It became a common segmentation network for satellite imagery because of its expanding path. That path scales features back up to full resolution. It recovers the precise localization that building and road edges need. The benchmarks followed, alongside Fields of the World and Tile2Net from the examples above:
Every benchmark above needs labels for its task. Foundation models move most of the learning to unlabeled imagery or to large general datasets.
Promptable segmentation. Kirillov and colleagues' Segment Anything (ICCV 2023) released over 1 billion masks on 11 million images and segmented an object from a point or a box. Meta's SAM 3 (Carion et al., 2025) replaced the click with a concept: a noun phrase such as "roofs" or an example image. It returns every matching instance. It was trained on a dataset with 4 million unique concept labels. That change is what lets one RasterFlow run detect roofs, roads, and solar panels across a county with no labels.
Pretrained Earth observation encoders. NASA and IBM's Prithvi (Jakubik et al., 2023) was pretrained on more than 1 TB of Harmonized Landsat Sentinel-2 imagery for fine-tuning on downstream tasks with small labeled datasets. Meta's canopy height model in the examples above used a DINOv2 encoder, an image model trained on unlabeled images.
Embeddings as a product. Rolf and colleagues' MOSAIKS (Nature Communications, 2021) computes image encodings once and shares them across tasks, so each new task needs only a linear regression on the user's own labels. Google DeepMind's AlphaEarth Foundations (Brown et al., 2025) takes the same approach with a learned model. It compresses each location's imagery into annual global embedding layers from 2017 through 2024. An embedding is a list of numbers that summarizes a location. With these layers, similarity and change become distance calculations.
At county scale the model is the hard part. At continental scale the data movement is. Gorelick and colleagues described one answer in Google Earth Engine: planetary-scale geospatial analysis for everyone (Remote Sensing of Environment, 2017): a catalog of analysis-ready imagery next to parallel compute. The Cloud Optimized GeoTIFF layout defined above serves the same goal on object storage, where each reader fetches only the tiles it needs.
The vector side scales too. A billion model polygons need a spatial engine to join them to parcels, buildings, and boundaries. Jia Yu, Jinxuan Wu, and Mohamed Sarwat introduced GeoSpark (ACM SIGSPATIAL 2015) for distributed spatial queries on Apache Spark. Yu, Zongsi Zhang, and Sarwat detailed its spatial partitioning, indexing, and join design in Spatial data management in Apache Spark: the GeoSpark perspective and beyond (GeoInformatica, 2019). GeoSpark became Apache Sedona. Kanchan Chowdhury and Sarwat's GeoTorch (ACM SIGSPATIAL 2022) brought a spatiotemporal deep learning framework into the same research line.
The numbers at the far end come from the Fields of the World global release. Taylor Geospatial ran PRUE, its latest Fields of the World model, on RasterFlow, generating 348.7 TB across 540,794 objects to produce 8.2 billion field boundaries.
The evidence above shows what satellite imagery analysis needs to produce usable maps and counts: the right resolution, a pipeline around the model, and checks against independent data.
Run a built-in RasterFlow model from the Model Hub at cloud.wherobots.com.
AI analyzes satellite images with computer vision models that classify each pixel, draw boxes or outlines around objects, estimate values such as tree height, and compare dates to find change. A pipeline builds a cloud-free mosaic, splits it into patches, runs the model on each patch, stitches the predictions back together, and converts them to polygons for analysis.
Start with what the sensor records: its resolution, bands, and capture date. True color shows the scene as the eye sees it, and false color combinations such as near-infrared, red, and green make vegetation stand out. Analysts read tone, texture, shape, size, shadow, and context, and AI models are trained on the same cues from labeled examples.
Sentinel-2 is a free source with 10 m bands and a revisit of about five days. Landsat adds a record back to 1972 at 30 m. In the United States, USDA NAIP aerial imagery reaches 30 cm to 1 m, fine enough for roofs and sidewalks. Sentinel-1 radar images through clouds.
Object detection finds individual things, such as cars or roofs, and returns a box or outline for each one with a confidence score. Semantic segmentation labels every pixel with a class, such as road or sidewalk, without separating one object from the next. Instance segmentation combines both and returns a separate mask for each object.
Yes, with promptable models. Meta’s SAM 3 takes a short noun phrase such as “roofs” or “solar panels” and returns a mask for every matching object, with no task-specific training. Results on overhead imagery vary by object, so teams check a sample against reference data before using the output.
The object sets the resolution. A rule of thumb is several pixels across the smallest object. Fields and forests work at 10 m, buildings need about 1 m or finer, and roofs, solar panels, sidewalks, and vehicles need 30 to 60 cm. Finer imagery costs more to store and process per square kilometer.
A well-known example is Hansen and colleagues’ 2013 global forest map, which classified Landsat images at 30 m to find 2.3 million km² of forest lost from 2000 to 2012. Other examples include grading building damage after a hurricane, mapping every farm field boundary from Sentinel-2, and detecting roofs and solar panels in aerial imagery. In Marion County, Oregon, SAM3 on Wherobots RasterFlow returned 1,006,232 detections from eight text prompts, including 312,245 roofs.
Most Maxar imagery is commercial and licensed for a fee. Its Open Data Program, now run under the Vantor name, releases before and after imagery of major sudden-onset disasters for free. The license is Creative Commons Attribution-NonCommercial 4.0, so the imagery can be used with attribution for non-commercial purposes such as humanitarian response and research.
No. Google Earth and Google Maps show stored imagery from satellites and aircraft. The capture date varies by location. Free satellites such as Sentinel-2 revisit about every five days at 10 m, too coarse to show a single house in detail.
For classified maps, compare a sample of pixels against reference data in an error matrix, as Congalton’s 1991 review set out. For detected objects, compute intersection over union (IoU) between each detection and a reference shape: a detection usually counts as correct above 0.5. Precision is the share of detections that are real and recall is the share of real objects found.
What is a Geofence? How Geofencing Works, With Examples
A geofence is a virtual boundary that triggers an action when a device enters or leaves it. How geofencing works, its uses and limits, and a test on ship data.
What is Map Matching? GPS Traces, Methods and Examples
Map matching places each GPS record on the road a vehicle drove. How it works, nearest-road snapping vs hidden Markov models, and a test on Ann Arbor drives.
Geospatial Big Data: Why Analytics Is Hard to Scale
Teams struggle to scale geospatial analytics for five reasons: data volume, mixed formats, many coordinate systems, spatial joins and pipeline upkeep.
share this article
Awesome that you’d like to share our articles. Where would you like to share it to: