detect-objects
Run pre-trained AI models on geospatial imagery. Detect buildings, cars, ships, solar panels, agriculture fields, or use…
Search and download satellite imagery from Microsoft Planetary Computer. Browse available collections, search by bbox and time range, list assets, and download specific items.
Claude Code
$ npx -y skills add opengeos/geoai-skills --skill search-stac --agent claude-code
Codex
$ npx skills add opengeos/geoai-skills --skill search-stac -a codex -y
Cursor
$ npx skills add opengeos/geoai-skills --skill search-stac -a cursor -y
Gemini CLI
$ npx skills add opengeos/geoai-skills --skill search-stac -a gemini-cli -y
GitHub Copilot
$ npx skills add opengeos/geoai-skills --skill search-stac -a github-copilot -y
OpenCode
$ npx skills add opengeos/geoai-skills --skill search-stac -a opencode -y
Windsurf
$ npx skills add opengeos/geoai-skills --skill search-stac -a windsurf -y
name: search-stac description: > Search and download satellite imagery from Microsoft Planetary Computer. Browse available collections, search by bbox and time range, list assets, and download specific items. argument-hint: <collection|list> [--bbox <minx,miny,maxx,maxy>] [--datetime <range>] [--download] [--output DIR] allowed-tools: Bash
You are helping the user search and download satellite imagery from the Planetary Computer STAC catalog using geoai.
Input: `$@`
Follow these steps in order.
Parse `$@` to identify what the user wants:
python3 -c " import geoai df = geoai.pc_collection_list() print(df.to_string()) "
If the user provided a filter keyword, pass it:
python3 -c " import geoai df = geoai.pc_collection_list(filter_by='FILTER') print(df.to_string()) "
Report the available collections and stop (unless the user also specified a search).
Parse the collection name, bounding box (`--bbox`), and optional datetime range (`--datetime`).
The datetime range should be in the format `YYYY-MM-DD/YYYY-MM-DD` (start/end).
python3 -c "
import geoai
items = geoai.pc_stac_search(
collection='COLLECTION',
bbox=[MINX, MINY, MAXX, MAXY],
time_range='TIME_RANGE',
limit=LIMIT,
)
print(f'Found {len(items)} items')
print('---')
for item in items[:20]:
assets = list(item.assets.keys())
print(f' {item.id}: {item.datetime} - assets: {assets}')
"Replace `COLLECTION`, `MINX`, `MINY`, `MAXX`, `MAXY`, `TIME_RANGE`, and `LIMIT` with actual values. Use `limit=10` by default.
If `time_range` was not specified, omit it or pass `None`.
If the user asks about available assets or bands for a specific item:
python3 -c "
import geoai
assets = geoai.pc_item_asset_list(item_id='ITEM_ID', collection='COLLECTION')
for name, info in assets.items():
print(f' {name}: {info}')
"python3 -c "
import geoai, os
items = geoai.pc_stac_search(
collection='COLLECTION',
bbox=[MINX, MINY, MAXX, MAXY],
time_range='TIME_RANGE',
limit=LIMIT,
)
output_dir = 'OUTPUT_DIR'
os.makedirs(output_dir, exist_ok=True)
result = geoai.pc_stac_download(
items,
output_dir=output_dir,
)
print(f'Downloaded to: {output_dir}')
for f in os.listdir(output_dir):
fpath = os.path.join(output_dir, f)
if os.path.isfile(fpath):
size_mb = os.path.getsize(fpath) / (1024 * 1024)
print(f' {f} ({size_mb:.1f} MB)')
"Default output directory: `./stac_data/`
Summarize the search or download results. Then suggest:
A Claude Code plugin that adds GeoAI-powered skills for geospatial data exploration, satellite imagery download, AI-based object detection, and session memory. Built on the GeoAI Python library.
Run pre-trained AI models on geospatial imagery. Detect buildings, cars, ships, solar panels, agriculture fields, or use…
Download NAIP aerial imagery for a bounding box. Specify coordinates as minx,miny,maxx,maxy in WGS84 and optionally a year.
Inspect any raster or vector geospatial file. Returns CRS, bounds, bands, resolution, dtype, attribute summaries, and band…
Verify that the geoai Python package is installed and functional. If not, provide installation instructions. Optionally check…
Download Overture Maps data (buildings, places, roads, land use, water, etc.) for a bounding box. Returns a GeoDataFrame saved as…
Process raster data: clip by bounding box, stack multiple bands, mosaic GeoTIFFs, or convert between raster and vector formats.
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…