
Geospatial Analysis
- 86 installs
- 31 repo stars
- Updated April 12, 2026
- itallstartedwithaidea/agent-skills
Geospatial Analysis is an agent skill that runs satellite imagery, GeoPandas GIS, and spatial statistics into reproducible Earth observation pipelines.
About
Geospatial Analysis is an Agent Skills™ package for solo builders and small teams shipping location-aware products, research notebooks, or internal geo tools. It teaches agents to treat spatial data correctly—coordinate reference systems, scale-dependent patterns, and spatial independence—while wiring Sentinel and Landsat multispectral steps together with vector sources like shapefiles and GeoJSON. Typical flows move from raw Earth observation rasters through classification or change detection into vector summaries and maps suitable for reports or APIs. Use it when you are past vague maps-in-a-slide and need scripted, repeatable geographic intelligence during product build, or when validation work needs defensible spatial methods before you commit to a data model. The skill is advanced: expect Python, GeoPandas, and domain literacy around CRS and autocorrelation. It complements generic data-science skills by encoding GIS-specific pitfalls so agents do not treat lat/long like ordinary columns.
- End-to-end workflows: satellite imagery (Sentinel, Landsat), GeoPandas GIS, spatial statistics, Earth observation
- Encodes CRS transformations, spatial joins, buffers, raster-vector interoperability, and spatial autocorrelation
- Supports land use classification, urban heat island thermal analysis, and temporal change detection
- Aims at publication-quality cartographic output from reproducible pipelines
Geospatial Analysis by the numbers
- 86 all-time installs (skills.sh)
- +4 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #856 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Security screen: CRITICAL risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill geospatial-analysisAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 86 |
|---|---|
| repo stars | ★ 31 |
| Security audit | 2 / 3 scanners passed |
| Last updated | April 12, 2026 |
| Repository | itallstartedwithaidea/agent-skills ↗ |
What it does
Build reproducible GeoPandas and satellite-imagery pipelines for land use, change detection, and map-ready geographic intelligence.
Who is it for?
Best when you're creating environmental, civic, logistics, or climate-adjacent features that need correct GIS and Earth observation workflows.
Skip if: Quick one-off charts without CRS discipline or teams with no Python/GeoPandas environment prepared.
When should I use this skill?
When building reproducible pipelines for satellite imagery, GeoPandas GIS operations, spatial statistics, or Earth observation analysis.
What you get
You get reproducible geospatial pipelines from raw imagery and vectors through analysis to actionable geographic intelligence and publication-quality maps.
- Reproducible geospatial analysis scripts or notebooks
- Processed rasters/vectors and summary statistics
- Publication-quality map outputs
By the numbers
- Sentinel and Landsat multispectral imagery workflows
- Spatial autocorrelation and raster-vector interoperability called out in SKILL.md
Files
Geospatial Analysis
Part of Agent Skills™ by googleadsagent.ai™
Description
Geospatial Analysis provides workflows for satellite imagery processing, GIS operations with GeoPandas, spatial statistics, and Earth observation data analysis. The agent builds reproducible geospatial pipelines that transform raw spatial data into actionable geographic intelligence, from raster processing through vector operations to publication-quality cartographic output.
Geospatial data is fundamentally different from tabular data: it has coordinate reference systems that must be respected, spatial relationships that affect statistical independence, and scale-dependent patterns that change with resolution. This skill encodes the domain knowledge needed to handle these challenges correctly: CRS transformations, spatial joins, buffer operations, raster-vector interoperability, and spatial autocorrelation tests.
The skill integrates satellite imagery analysis (Sentinel, Landsat) with vector data processing (shapefiles, GeoJSON), enabling workflows like land use classification from multispectral imagery, urban heat island analysis from thermal bands, and environmental change detection from temporal image stacks.
Use When
- Processing satellite imagery (Sentinel-2, Landsat, MODIS)
- Performing spatial joins, buffers, or overlay operations
- Computing spatial statistics (Moran's I, hot spot analysis)
- Creating publication-quality maps and cartographic outputs
- Analyzing land use, land cover, or environmental change
- Working with coordinate reference systems and projections
How It Works
graph TD
A[Spatial Data Input] --> B{Data Type}
B -->|Raster| C[Satellite Imagery Processing]
B -->|Vector| D[GeoPandas Operations]
C --> E[Band Math + Indices: NDVI, NDWI]
E --> F[Classification / Change Detection]
D --> G[Spatial Joins + Overlay]
G --> H[Spatial Statistics]
F --> I[Raster-Vector Integration]
H --> I
I --> J[Cartographic Output]
J --> K[Publication Map]Raster and vector paths converge at the integration step, where classified imagery is combined with administrative boundaries, point observations, or infrastructure data to produce the final analytical product.
Implementation
import geopandas as gpd
import rasterio
from rasterio.mask import mask
from shapely.geometry import Point
import numpy as np
from pysal.explore import esda
from pysal.lib import weights
import matplotlib.pyplot as plt
import contextily as cx
def load_and_reproject(filepath: str, target_crs: str = "EPSG:4326") -> gpd.GeoDataFrame:
gdf = gpd.read_file(filepath)
return gdf.to_crs(target_crs)
def spatial_join_points_to_polygons(
points: gpd.GeoDataFrame, polygons: gpd.GeoDataFrame
) -> gpd.GeoDataFrame:
assert points.crs == polygons.crs, "CRS mismatch: reproject before joining"
return gpd.sjoin(points, polygons, how="inner", predicate="within")
def compute_ndvi(nir_path: str, red_path: str) -> np.ndarray:
with rasterio.open(nir_path) as nir_src, rasterio.open(red_path) as red_src:
nir = nir_src.read(1).astype(np.float32)
red = red_src.read(1).astype(np.float32)
ndvi = np.where((nir + red) > 0, (nir - red) / (nir + red), 0)
return ndvi
def spatial_autocorrelation(gdf: gpd.GeoDataFrame, column: str) -> dict:
w = weights.Queen.from_dataframe(gdf)
w.transform = "r"
moran = esda.Moran(gdf[column], w)
return {
"morans_i": moran.I,
"p_value": moran.p_sim,
"z_score": moran.z_sim,
"significant": moran.p_sim < 0.05,
"interpretation": "Clustered" if moran.I > 0 and moran.p_sim < 0.05 else
"Dispersed" if moran.I < 0 and moran.p_sim < 0.05 else
"Random",
}
def publication_map(gdf: gpd.GeoDataFrame, column: str, title: str, output: str):
fig, ax = plt.subplots(1, 1, figsize=(10, 8))
gdf.plot(column=column, ax=ax, legend=True, cmap="YlOrRd", edgecolor="0.5", linewidth=0.3)
cx.add_basemap(ax, crs=gdf.crs.to_string(), source=cx.providers.CartoDB.Positron)
ax.set_title(title, fontsize=14, fontweight="bold")
ax.set_axis_off()
fig.tight_layout()
fig.savefig(output, dpi=300, bbox_inches="tight")
plt.close(fig)Best Practices
- Always verify CRS alignment before spatial operations—mismatched CRS produce silent errors
- Use projected CRS (meters) for distance and area calculations, geographic CRS (degrees) for display
- Apply Moran's I to test for spatial autocorrelation before using non-spatial statistics
- Validate NDVI and other index ranges (NDVI should be -1 to 1) as a data quality check
- Include scale bars, north arrows, and CRS labels on all published maps
- Store geospatial data in GeoParquet for performance; use GeoJSON only for interchange
Platform Compatibility
| Platform | Support | Notes |
|---|---|---|
| Cursor | Full | Python + geospatial libs |
| VS Code | Full | Jupyter + map rendering |
| Windsurf | Full | Scientific Python |
| Claude Code | Full | Pipeline generation |
| Cline | Full | GIS workflows |
| aider | Partial | Code generation only |
Related Skills
- Data Analysis
- Machine Learning
- Research Methodology
- Batch Processing
Keywords
geospatial geopandas satellite-imagery ndvi spatial-statistics gis rasterio cartography earth-observation
---
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License
Related skills
How it compares
Domain GIS and Earth-observation workflow skill—not a generic pandas tutorial or a hosted map SaaS integration.
FAQ
Who is geospatial-analysis for?
Developers and analysts building location-based apps, research deliverables, or data products who need Sentinel/Landsat and GeoPandas done correctly.
When should I use geospatial-analysis?
During Build/backend for pipeline implementation, Idea/research when exploring competitor or site geography from imagery, and Grow/analytics when turning spatial metrics into ongoing reporting.
Is geospatial-analysis safe to install?
It may drive large downloads and local compute for imagery—review the Security Audits panel on this page and constrain network and filesystem access to trusted EO sources.