Usgs earthquake geojson
Parse and work with USGS earthquake GeoJSON data, extracting IDs, magnitudes, coordinates, times, and place descriptions.From its SKILL.md
npx -y skills add cxcscmu/SkillLearnBench --skill usgs-earthquake-geojsonAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 478 tokens by cl100k_base, as published. Nobody here has run it
USGS Earthquake GeoJSON Parsing
Data Structure
USGS earthquake GeoJSON follows the standard FeatureCollection format:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"mag": 5.1,
"place": "13 km NW of Port-Vila, Vanuatu",
"time": 1735537742808, // Unix timestamp in milliseconds
"mag": 5.1,
"magType": "mww"
},
"geometry": {
"type": "Point",
"coordinates": [168.2183, -17.6555, 66.612] // [lon, lat, depth_km]
},
"id": "us6000pgf9"
}
]
}
Loading into GeoDataFrame
import geopandas as gpd
import json
from datetime import datetime, timezone
with open("earthquakes_2024.json") as f:
eq_data = json.load(f)
records = []
for feat in eq_data["features"]:
props = feat["properties"]
coords = feat["geometry"]["coordinates"]
time_ms = props["time"]
time_iso = datetime.fromtimestamp(time_ms / 1000, tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
records.append({
"id": feat["id"],
"place": props["place"],
"time": time_iso,
"magnitude": props["mag"],
"longitude": coords[0],
"latitude": coords[1],
})
gdf = gpd.GeoDataFrame(
records,
geometry=gpd.points_from_xy([r["longitude"] for r in records], [r["latitude"] for r in records]),
crs="EPSG:4326"
)
Key Notes
timefield is Unix timestamp in milliseconds (divide by 1000 for seconds)geometry.coordinatesis[longitude, latitude, depth_km]— NOT[lat, lon]- Use
datetime.fromtimestamp(ms/1000, tz=timezone.utc)for ISO 8601 UTC formatting
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.