Metter. / Mixtapes / Methods Mixtape / AI-Assisted Field Research Methods

07 · AI-Assisted Field Research Methods

Satellite Imagery & Remote Sensing for Outcome Measurement

An approach that derives quantitative outcome variables from satellite imagery — including vegetation indices, night-time light intensity, building footprints, and land cover — enabling measurement of agricultural, economic, and infrastructure outcomes across large geographies at low cost. Satellite data from free sources such as Landsat, Sentinel, and MODIS, and from commercial providers such as Planet and Maxar, can be matched to survey data by GPS coordinates or administrative unit, expanding what is measurable without sending enumerators to every site.


What it is

Satellites capture images of the Earth’s surface at regular intervals, collecting data across multiple spectral bands — including visible light, near-infrared, and radar — that reveal surface properties not visible to the naked eye. These raw measurements can be processed into outcome variables: NDVI (Normalised Difference Vegetation Index — a measure of vegetation greenness derived from the ratio of near-infrared to red light reflectance) as a proxy for crop growth; night-time light luminosity as a proxy for local economic activity; building footprints from high-resolution imagery; flood extent from radar data; and road or infrastructure condition from optical imagery.

The core advantage over conventional field measurement is coverage at scale: a single satellite overpass captures data for an entire country simultaneously, enabling panel measurement across thousands of villages or agricultural plots at near-zero marginal cost per additional observation once the processing pipeline is in place.

When to use it

Satellite-derived outcomes are appropriate when the phenomenon of interest leaves a detectable signal in satellite imagery, when field enumeration of the same outcome would be expensive or slow, and when a validation sample links satellite measures to ground-truth observations.

Agricultural outcomes. NDVI timed to the peak growing season is a reliable proxy for smallholder crop growth and yield. Studies evaluating agricultural interventions — input subsidies, irrigation, crop variety adoption — routinely use NDVI as either a primary or supplementary outcome where plot-level survey measurement is expensive.

Economic activity proxies. Night-time light intensity from VIIRS (Visible Infrared Imaging Radiometer Suite) and its predecessor DMSP satellites measures the brightness of light emitted at night, which correlates strongly with electrification, commercial activity, and GDP at district and national scales. Henderson, Storeygard, and Weil (2012) established this approach for cross-country analysis; subsequent work has applied it at sub-district resolution.

Infrastructure and land use. Satellite imagery can verify treatment take-up — whether a borehole was installed, a road was built, a building was constructed — without enumerator visits. It can also measure deforestation, land titling compliance, and electrification rollout at administrative-unit level.

Counterfactual construction. In quasi-experimental designs, satellite-derived baseline characteristics (soil quality, market access, pre-period vegetation) can be used as matching variables to construct comparison groups, provided the characteristics are plausibly exogenous to treatment assignment.

Outcome verification at scale. For large programmes where physical verification of hundreds of sites is prohibitively expensive, satellite imagery provides low-cost spot-check evidence of implementation fidelity.

How it works

Step 1: Identify the appropriate satellite data source. Landsat (30m resolution, 16-day revisit, free) and Sentinel-2 (10m resolution, 5-day revisit with two-satellite constellation, free) provide multispectral imagery for vegetation and land cover analysis. MODIS (250m–1km, daily surface reflectance and 16-day composite vegetation index products, free) provides dense temporal coverage for regional agricultural monitoring. VIIRS (~750m, daily) provides night-time light data. Sentinel-1 (radar, free) penetrates cloud cover. Commercial providers such as Planet (3–5m, near-daily) offer finer detail at significant cost.

Step 2: Define the geographic unit of analysis. Satellite pixels must be aggregated to a meaningful unit — agricultural plot, village boundary, district, or GPS buffer around a survey point. Obtain the relevant boundary files or GPS coordinates buffered to a fixed radius. The unit of analysis determines which satellite products are appropriate: plot-level analysis requires sub-30m resolution, while village- or district-level analysis can use Landsat or MODIS.

Step 3: Extract and compute outcome measures. For vegetation outcomes, compute NDVI = (NIR − Red) / (NIR + Red) within each geographic unit. This ranges from −1 to 1; well-developed cropland in active growth typically registers 0.4–0.8. Sparse or early-season smallholder plots may register 0.2–0.4 and are still indicative of active crop growth. For night-light outcomes, extract the average radiance value within the unit. Google Earth Engine (described in Getting Started) enables all extraction steps without downloading raw imagery locally.

Step 4: Handle cloud contamination. Optical satellites cannot see through clouds. The standard solution is temporal compositing: take the median pixel value across all images within a defined window (for example, the 45-day peak growing season) after applying a cloud-mask to exclude affected observations. Cloud-masking algorithms are built into most satellite data products and are available natively in Google Earth Engine.

Step 5: Match to survey data. Merge extracted satellite values to the survey dataset using the geographic identifier — GPS coordinates, village ID, or administrative code. Each survey observation receives satellite-derived variables as additional columns.

Step 6: Validate against ground-truth data. Before using satellite-derived variables as primary outcomes, validate them against a sample of directly measured observations. Report the correlation between the satellite measure and the ground-truth measure, the validation sample size, and whether the relationship is stable across subgroups (seasons, agro-ecological zones, treatment arms).

Key decisions

Spatial resolution vs. cost. A typical smallholder plot in South Asia is 500–2,000 m². A 30m Landsat pixel covers 900 m², meaning a small plot may be one or two pixels — spatial averaging is coarse and mixes neighbouring land uses. Planet imagery at 3m resolves individual plots clearly; academic research access is typically through Planet’s Education and Research Programme (a free or subsidised licence) rather than commercial per-km² pricing — contact Planet directly before budgeting. For village- or district-level outcomes, Landsat resolution is adequate and free. A common compromise is free imagery for the main analysis and commercial imagery for a validation subsample.

Timing relative to the crop calendar. Satellite vegetation measurements are only informative if timed correctly. NDVI at peak greenness (2–4 weeks before harvest) predicts yield; NDVI after harvest or during the dry season reflects bare soil. Before beginning analysis, obtain the local crop calendar and identify the target acquisition window. In multi-cropping systems, separate windows are needed for each season.

Temporal compositing window. Shorter windows reduce phenological mixing but leave fewer cloud-free observations. A 30–45 day window centred on peak greenness usually balances these concerns in South Asian settings. Check cloud-free observation counts within the window for each unit and flag units with fewer than three cloud-free images as potentially unreliable.

Validation design. A randomly selected subsample of 50–200 units with field-measured outcomes is typically sufficient to characterise the satellite-to-ground correlation and detect systematic bias. Use the lower end of this range when the satellite-ground correlation is expected to be high (r > 0.7, as is typical for NDVI against measured crop yield in dense canopy settings); use the upper end when you need to detect heterogeneity in the correlation across subgroups (e.g., by agro-ecological zone or treatment arm). If the study has a pilot survey or independent monitoring visits, these can double as validation data without additional field costs. Validation should cover the range of conditions in the full sample, not just easily accessible sites.

Pre-registering the outcome definition. The choice of image window, compositing method, spatial aggregation boundary, and cloud-mask threshold all affect the resulting outcome variable. These choices can influence results if made after seeing the data. Pre-register all satellite outcome definitions — including the exact image window and cloud-mask procedure — before accessing the outcome-period data.

Caveats & common mistakes

Wrong image timing relative to crop stage. The single most common error. Always plot the NDVI time series for a representative sample of plots to verify that the chosen window captures peak greenness, and cross-check against local crop calendars or agricultural extension records.

Resolution mismatch with the unit of analysis. Treating 30m NDVI as a precise plot-level measure and reporting standard errors as though measurement error is negligible overstates precision. Either use higher-resolution imagery for plot-level analysis or aggregate to village or larger units where averaging is appropriate.

Ignoring cloud contamination. A single cloud-contaminated pixel in a composite will produce an outlier. Check the distribution of NDVI values for implausible clusters near 0 or negative values. Visual inspection of a random sample of flagged images before finalising extraction is good practice.

Using VIIRS night-lights for within-district village comparisons. VIIRS has ~750m resolution. Comparing individual villages within a district largely captures differences in proximity to a single bright point source (a petrol station, a highway) rather than household electricity access. Night-light data is reliable for district-level and above; not for village-level welfare comparisons within a small geographic area.

Mixing DMSP and VIIRS series without cross-calibration. DMSP operated 1992–2013; VIIRS from 2012 onward. The two sensors have different spectral responses and saturation behaviour. Studies using panel data spanning both periods must use a cross-calibrated product; the Colorado School of Mines Earth Observation Group provides one. Do not concatenate raw DMSP and VIIRS values.

Using top-of-atmosphere reflectance instead of surface reflectance. NDVI computed from Level-1 (top-of-atmosphere) imagery differs systematically from NDVI computed from Level-2 (atmospherically corrected) surface reflectance. Most standard GEE products now provide surface reflectance by default (Landsat Collection 2 Level-2, Sentinel-2 Level-2A), but it is easy to accidentally use a Level-1 product. Always confirm the processing level before extraction.

Ignoring spatial autocorrelation in standard errors. When satellite-derived outcomes are aggregated to administrative units, neighbouring units share correlated imagery values. Standard errors that assume independent residuals will be downward-biased. Cluster standard errors by administrative unit or use spatial HAC estimators when the unit of analysis is a geographic area.

Not accounting for terrain and shadow. In hilly or mountainous areas, topographic shadow reduces reflectance in ways that can be misinterpreted as lower vegetation or lower economic activity. Terrain correction (available for most satellites) should be applied before analysis in non-flat landscapes.

Analysis Guide

# Extract NDVI from Sentinel-2 for a set of GPS points using Google Earth Engine Python API
import ee
import pandas as pd
import geopandas as gpd

ee.Authenticate()
ee.Initialize(project="your-gee-project")

# Load GPS coordinates (survey plots)
plots_df = pd.read_csv("survey_plots.csv")   # cols: plot_id, longitude, latitude

def get_ndvi(lon, lat, start_date, end_date, buffer_m=50):
  point  = ee.Geometry.Point([lon, lat]).buffer(buffer_m)
  s2     = (ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
              .filterBounds(point)
              .filterDate(start_date, end_date)
              .filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 20)))
  ndvi   = s2.map(lambda img: img.normalizedDifference(["B8", "B4"])
                                 .rename("ndvi")).median()
  value  = ndvi.reduceRegion(ee.Reducer.mean(), point, scale=10).getInfo()
  return value.get("ndvi", None)

# Peak growing season window — adjust to local crop calendar
START, END = "2023-09-01", "2023-10-15"

plots_df["ndvi"] = [get_ndvi(row.longitude, row.latitude, START, END)
                  for _, row in plots_df.iterrows()]
plots_df.to_csv("plots_with_ndvi.csv", index=False)

# Summary
print(plots_df["ndvi"].describe().round(3))
print("Implausible values (NDVI < 0):", (plots_df["ndvi"] < 0).sum())

Reading the output

  • NDVI values below 0 indicate cloud contamination that passed the cloud mask; flag these plots for manual inspection and exclude from primary analysis if they exceed 5% of the sample.
  • NDVI between 0.2 and 0.4 corresponds to sparse or early-season smallholder vegetation; values 0.4–0.8 indicate well-developed active cropland. Values consistently below 0.2 during the expected peak-greenness window suggest the image window is mis-timed relative to the crop calendar.
  • Validation correlation between NDVI and ground-truth yield below 0.50 means the satellite measure is a weak proxy for the outcome of interest; do not use as a primary outcome variable without substantially improving the validation.
  • If the validation correlation differs by more than 0.15 across treatment arms, the satellite measure is differentially accurate by treatment status, which would bias treatment effect estimates.
  • Units with fewer than three cloud-free observations in the compositing window should be flagged; median composites from sparse observations are unreliable and may need replacement with a wider temporal window or an alternative satellite (e.g., Sentinel-1 radar, which penetrates cloud cover).

Getting started

  • Google Earth Engine — The standard platform for processing satellite imagery at scale without downloading data locally. Free for research after account approval. Provides the full Landsat, Sentinel, MODIS, and VIIRS archives with pre-built cloud-masking and spectral index functions via JavaScript and Python APIs. Most published RCT-based satellite analyses use GEE for extraction.

  • NASA Earthdata — NASA’s portal for direct download of Landsat, MODIS, VIIRS, and other products. Use when offline processing is preferred or when the required product is not available in GEE.

  • Copernicus Data Space Ecosystem — ESA’s portal for downloading Sentinel-1 (radar) and Sentinel-2 (multispectral) imagery (replaces the legacy Copernicus Open Access Hub, decommissioned in 2023). Free, global coverage, 5–12 day revisit. Sentinel-2’s 10m resolution makes it the preferred free option for plot-level agricultural analysis where Landsat is too coarse.

  • VIIRS Night-Time Lights — Earth Observation Group — Colorado School of Mines processed VIIRS monthly and annual night-light composites, including cross-calibrated DMSP/VIIRS products. The standard source for night-light data in economic research: pre-processed, cloud-masked, and available as ready-to-use GeoTIFF files.

  • geemap Python package — Python library for working with Google Earth Engine interactively, including time-series analysis and export to survey data formats. For researchers more comfortable with Python than GEE’s native JavaScript API, geemap provides equivalent functionality with a lower learning curve.

References

Gorelick, N., Hancher, M., Dixon, M., Ilyushchenko, S., Thau, D., & Moore, R. (2017). Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sensing of Environment, 202, 18–27. https://doi.org/10.1016/j.rse.2017.06.031

Burke, M., Driscoll, A., Lobell, D. B., & Ermon, S. (2021). Using satellite imagery to understand and promote sustainable development. Science, 371(6535), eabe8628. https://doi.org/10.1126/science.abe8628

Donaldson, D., & Storeygard, A. (2016). The view from above: Applications of satellite data in economics. Journal of Economic Perspectives, 30(4), 171–198. https://doi.org/10.1257/jep.30.4.171

Jayachandran, S., de Laat, J., Lambin, E. F., Stanton, C. Y., Audy, R., & Thomas, N. E. (2017). Cash for carbon: A randomized trial of payments for ecosystem services to reduce deforestation. Science, 357(6348), 267–273. https://doi.org/10.1126/science.aan0568

Jean, N., Burke, M., Xie, M., Davis, W. M., Lobell, D. B., & Ermon, S. (2016). Combining satellite imagery and machine learning to predict poverty. Science, 353(6301), 790–794. https://doi.org/10.1126/science.aaf7894

Henderson, J. V., Storeygard, A., & Weil, D. N. (2012). Measuring economic growth from outer space. American Economic Review, 102(2), 994–1028. https://doi.org/10.1257/aer.102.2.994

Lobell, D. B., Thau, D., Seifert, C., Engle, E., Little, B., Becker-Reshef, I., & Justice, C. (2015). A scalable satellite-based crop yield mapper. Remote Sensing of Environment, 164, 324–333. https://doi.org/10.1016/j.rse.2015.04.021

Last updated: 5 June 2026