Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
itallstartedwithaidea avatar

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-analysis

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs86
repo stars31
Security audit2 / 3 scanners passed
Last updatedApril 12, 2026
Repositoryitallstartedwithaidea/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

SKILL.mdMarkdownGitHub ↗

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

PlatformSupportNotes
CursorFullPython + geospatial libs
VS CodeFullJupyter + map rendering
WindsurfFullScientific Python
Claude CodeFullPipeline generation
ClineFullGIS workflows
aiderPartialCode 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.

Data Science & MLpipelinesanalytics

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.