Loading...
Loading...
Process raster data: clip by bounding box, stack multiple bands, mosaic GeoTIFFs, or convert between raster and vector formats.
npx skill4agent add opengeos/geoai-skills process-raster$@$@| Operation | Triggers | Required inputs |
|---|---|---|
| "clip", "crop", "subset", | input raster + bbox |
| "stack", "combine bands" | list of input rasters |
| "mosaic", "merge" | input directory or list of rasters |
| "to vector", "vectorize", "polygonize" | input raster |
| "to raster", "rasterize", "burn" | input vector + pixel size |
clipraster-to-vectorvector-to-rasterfind "$PWD" -name "INPUT_FILENAME" -not -path '*/.git/*' 2>/dev/nullstackmosaicfind "INPUT_DIR" -name "*.tif" -o -name "*.tiff" 2>/dev/null | sortSTATE_DIR=""
test -f .geoai-skills/state.json && STATE_DIR=".geoai-skills"
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")"
PROJECT_ID="$(echo "$PROJECT_ROOT" | tr '/' '-')"
test -f "$HOME/.geoai-skills/$PROJECT_ID/state.json" && STATE_DIR="$HOME/.geoai-skills/$PROJECT_ID"python3 -c "
import json
with open('STATE_DIR/state.json') as f:
state = json.load(f)
if 'last_inspected' in state:
print(f'Last inspected: {state[\"last_inspected\"][\"path\"]}')
if 'downloaded_files' in state:
for f in state['downloaded_files']:
print(f'Downloaded: {f}')
"python3 -c "
import geoai
result = geoai.clip_raster_by_bbox(
input_raster='INPUT_PATH',
output_raster='OUTPUT_PATH',
bbox=[MINX, MINY, MAXX, MAXY],
)
print(f'Clipped raster saved to: {result}')
info = geoai.get_raster_info(result)
for k, v in info.items():
print(f'{k}: {v}')
"./clipped_<original_name>.tifpython3 -c "
import geoai
result = geoai.stack_bands(
input_files=['FILE1', 'FILE2', 'FILE3'],
output_file='OUTPUT_PATH',
)
print(f'Stacked raster saved to: {result}')
info = geoai.get_raster_info(result)
for k, v in info.items():
print(f'{k}: {v}')
"python3 -c "
import geoai
result = geoai.mosaic_geotiffs(
input_dir='INPUT_DIR',
output_file='OUTPUT_PATH',
)
print(f'Mosaic saved to: {result}')
info = geoai.get_raster_info(result)
for k, v in info.items():
print(f'{k}: {v}')
"python3 -c "
import geoai
gdf = geoai.raster_to_vector(
raster_path='INPUT_PATH',
output_path='OUTPUT_PATH',
)
print(f'Vectorized: {len(gdf)} features')
print(f'Saved to: OUTPUT_PATH')
print(f'Columns: {list(gdf.columns)}')
"./<original_name>.gpkgpython3 -c "
import geoai
result = geoai.vector_to_raster(
vector_path='INPUT_PATH',
output_path='OUTPUT_PATH',
pixel_size=PIXEL_SIZE,
)
print(f'Rasterized: {result}')
info = geoai.get_raster_info(result)
for k, v in info.items():
print(f'{k}: {v}')
"./<original_name>.tif/geoai-skills:inspect-geoimport geoai/geoai-skills:install-geoaifind