Design & media

Geoskill: Impervious Surface Mapping

Try it

Estimate impervious surface fraction from multi-band satellite imagery (Sentinel-2) using spectral indices (NDBI, NDVI, MNDWI). Supports binary classification and continuous fraction estimation, with zone-level aggregation and change detection. Use when mapping urban impervious surfaces, computing impervious ratios by watershed/admin unit, or analyzing temporal changes in built-up areas.

What it does

Estimate impervious surface fraction from multi-band satellite imagery (Sentinel-2) using spectral indices (NDBI, NDVI, MNDWI). Supports binary classification and continuous fraction estimation, with zone-level aggregation and change detection. Use when mapping urban impervious surfaces, computing impervious ratios by watershed/admin unit, or analyzing temporal changes in built-up areas.

The skill document

Impervious Surface Mapping

GIS/remote sensing workflow for estimating impervious surface fraction from multi-band satellite imagery. Uses spectral indices and sub-pixel estimation to produce continuous impervious fraction maps, with optional binary thresholding, zone aggregation, and change detection.

Trigger

Use when the user wants to:

  • Estimate impervious surface fraction from satellite imagery
  • Map built-up areas using NDBI and related spectral indices
  • Compute impervious ratios by street, community, or watershed
  • Compare impervious surface changes between years
  • Mask out water and vegetation before impervious analysis

CLI Usage

# Basic fraction estimation
python scripts/impervious_surface_mapping.py \
  --raster sentinel2.tif \
  --year 2024 \
  --mode fraction

# Binary classification with threshold
python scripts/impervious_surface_mapping.py \
  --raster sentinel2.tif \
  --year 2024 \
  --mode binary \
  --threshold 0.5

# Zone aggregation
python scripts/impervious_surface_mapping.py \
  --raster sentinel2.tif \
  --year 2024 \
  --mode fraction \
  --aggregation-layer watersheds.geojson

# Change detection
python scripts/impervious_surface_mapping.py \
  --raster sentinel2_2024.tif \
  --year 2024 \
  --compare-year 2020 \
  --raster-compare sentinel2_2020.tif \
  --mode fraction

Data Download

This skill can auto-fetch a Sentinel-2 L2A scene from the Microsoft Planetary Computer when given a bounding box + date range. The script picks the B04 (red) asset by default; you can change prefer_assets in the code to use visual for an RGB composite.

python scripts/impervious_surface_mapping.py \
  --bbox 116,39,117,40 \
  --date-range 2024-06-01,2024-06-30 \
  --output-dir ./impervious-output

The PYTHONPATH must include the parent of _geoskill_data_fetcher/ (the same directory the 50 skills live in). Set it once:

export PYTHONPATH="/path/to/行业Skill创意-20260727"

Parameters

ParameterDefaultDescription
--rasterrequiredMulti-band raster (Sentinel-2: B2,B3,B4,B8,B11)
--yearrequiredAnalysis year
--modefractionbinary or fraction
--training-dataNoneTraining samples GeoJSON (with impervious field)
--threshold0.5Threshold for binary mode
--aggregation-layerNoneZone layer GeoJSON for aggregation
--compare-yearNoneComparison year for change detection
--raster-compareNoneRaster for comparison year
--ndvi-mask0.6NDVI threshold to mask dense vegetation
--mndwi-mask0.0MNDWI threshold to mask water
--output-dir./impervious-outputOutput directory

Output

FileDescription
impervious_fraction.tifContinuous impervious fraction [0, 1]
impervious_binary.tifBinary impervious mask (1=impervious)
zones_summary.csvZone-level statistics (if aggregation-layer given)
change.tifChange raster (fraction difference)
accuracy.jsonAccuracy metrics (if training-data given)

Exit Codes

CodeMeaning
0Success
2Argument error
3Dependency missing
6Data validation failure
7Processing failure

Related skills

Detect and quantify urban expansion from multi-temporal built-up rasters. Use when the user wants to analyze changes, compare multi-temporal rasters, compute indices, or generate assessment reports.

1 installs

Analyze urban heat island intensity and ventilation index from land surface temperature, NDVI, impervious surface and building morphology.

1 installs

Compute forest fire burn severity from pre/post-fire NIR and SWIR imagery using differenced Normalized Burn Ratio (dNBR). Classifies severity into unburned, low, moderate, and high categories. Use when the user wants to assess burn severity, map fire damage, or generate burn severity reports.

1 installs

Analyze land subsidence from InSAR displacement data. Use when the user wants to analyze changes, detect hazards, or generate assessment reports.

1 installs

Overlay flood extent with population, buildings, roads, and cropland to estimate affected objects and generate impact reports. Use when the user wants to assess flood impact, count affected population/roads/buildings, or generate flood impact summaries from a flood extent raster.

1 installs

Multi-criteria suitability analysis for infrastructure site selection. Use when the user wants to analyze changes, compare multi-temporal rasters, compute indices, or generate assessment reports.

1 installs