agentsclimarketplace

Geospatial plate analysis

Skill cxcscmu/SkillLearnBench/skills/b4-skill-creator-claude-opus-4-6/earthquake-plate-calculation/geospatial-plate-analysis

[COLM'26] SkillLearnBench is the first benchmark for evaluating continual learning methods that automatically generate agent skills.

Install
npx -y skills add cxcscmu/SkillLearnBench --skill geospatial-plate-analysis

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Analyze tectonic plate geometries using GeoPandas with proper coordinate projections. Use this skill whenever working with PB2002 plate boundary/plate polygon data, filtering points by plate membership, or extracting plate-specific boundaries. Triggers on: plate tectonics, tectonic plates, plate boundaries, PB2002 dataset.

SKILL.md

2.5 KB, 595 tokens by cl100k_base, as published. Nobody here has run it

Geospatial Plate Analysis

Purpose

Load and process PB2002 tectonic plate data (boundaries and plate polygons) using GeoPandas, then perform spatial operations like point-in-polygon tests and boundary extraction.

Data Format

PB2002_plates.json

  • GeoJSON FeatureCollection with plate polygons
  • Properties: Code (e.g., "PA"), PlateName (e.g., "Pacific")
  • Geometry: Polygon or MultiPolygon (lon/lat, EPSG:4326)
  • The Pacific plate ("PA") is a MultiPolygon that crosses the antimeridian (±180°)

PB2002_boundaries.json

  • GeoJSON FeatureCollection with plate boundary LineStrings
  • Properties: PlateA, PlateB (two-letter plate codes), Name, Type
  • To get all boundaries of a plate (e.g., "PA"), filter where PlateA == "PA" OR PlateB == "PA"

Earthquake GeoJSON (USGS format)

  • Features with Point geometry: [longitude, latitude, depth]
  • Properties include: mag, place, time (Unix ms), type
  • Feature id field contains the earthquake ID

Workflow

1. Load data

import geopandas as gpd

plates = gpd.read_file("PB2002_plates.json")
boundaries = gpd.read_file("PB2002_boundaries.json")
earthquakes = gpd.read_file("earthquakes_2024.json")

All data loads in EPSG:4326 (WGS84 lon/lat).

2. Extract a specific plate polygon

pacific_plate = plates[plates["Code"] == "PA"]

3. Filter points inside a plate

Use a spatial join or within test:

quakes_in_plate = gpd.sjoin(earthquakes, pacific_plate, predicate="within")

4. Extract plate boundaries

Filter boundaries where the plate code appears in either PlateA or PlateB:

pa_boundaries = boundaries[
    (boundaries["PlateA"] == "PA") | (boundaries["PlateB"] == "PA")
]

Antimeridian Handling

The Pacific plate crosses the ±180° meridian. GeoPandas handles MultiPolygon geometries natively, so sjoin with predicate="within" works correctly for point-in-polygon tests as long as the plate polygon is properly defined (which PB2002 data is).

Key Libraries

  • geopandas — spatial data frames, spatial joins
  • shapely — geometry operations (union, distance, nearest_points)
  • pyproj — CRS transformations

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,132. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.