원클릭으로
search-stac
// Search and download satellite imagery from Microsoft Planetary Computer. Browse available collections, search by bbox and time range, list assets, and download specific items.
// Search and download satellite imagery from Microsoft Planetary Computer. Browse available collections, search by bbox and time range, list assets, and download specific items.
Run pre-trained AI models on geospatial imagery. Detect buildings, cars, ships, solar panels, agriculture fields, or use text-prompted segmentation with GroundedSAM. Requires GPU for best performance.
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 statistics. Supports GeoTIFF, Shapefile, GeoJSON, GeoPackage, GeoParquet, and more.
Verify that the geoai Python package is installed and functional. If not, provide installation instructions. Optionally check extra dependencies for deep learning models.
Download Overture Maps data (buildings, places, roads, land use, water, etc.) for a bounding box. Returns a GeoDataFrame saved as GeoJSON or GeoPackage.
Process raster data: clip by bounding box, stack multiple bands, mosaic GeoTIFFs, or convert between raster and vector formats.
| 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:
list, collections, or asks "what is available": list collections.--bbox are provided: search for items.--download is present: download items after searching.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:
/geoai-skills:inspect-geo to examine any downloaded files."/geoai-skills:process-raster to clip or mosaic the imagery."import geoai fails -> delegate to /geoai-skills:install-geoai.