The keys
Key availability by dataset
PK = primary key. opt. = emitted when the relevant entity is known. — = not applicable.
Join examples
Civic decisions in high-signal cells
Join Civic Intelligence to Urban Signal Grid viah3_index to find recent zoning decisions in high-scoring cells:
Full event detail for a jurisdiction
Join Events Timeline to Civic Intelligence viaevent_id to get entities, blockers, and hostility scores for civic events:
Vessel positions around dark events
Join AIS Maritime to Events Timeline viaevent_id to find vessels and their positions around Overwatch dark events:
Commuter inflow to high-signal cells
Join LEHD Commuter Flows to Urban Signal Grid viah3_index:
Joins that will not work
Key construction rules
h3_index
Always resolution 8. Stored as the canonical H3 hexadecimal string (e.g. 88283082b9fffff). When a record covers an area, the dataset either emits a separate row per H3 cell or an array column h3_indexes — the choice is documented in each dataset’s schema.
jurisdiction_slug
Lowercase, hyphen-separated:
- Cities:
{city}-{state-abbr}(e.g.philadelphia-pa,san-francisco-ca) - Counties:
{county}-county-{state-abbr}(e.g.harris-county-tx) - States:
{state-full-name}(e.g.texas) - Special districts:
{name}-{state-abbr}(e.g.port-authority-ny)
mmsi vs. imo
mmsi is the runtime identifier on every AIS position — use it for linking positions to vessel records during ingest. imo is the permanent vessel identifier (IMO A.600) that survives ownership, flag, and name changes. Use imo as the primary vessel key when available. Vessels without an IMO number (some fishing vessels and small craft) carry has_imo=false.
entity_urn
Format: urn:aprs:entity:{type}:{canonical-id} where type is one of person, company, agency, trust, vessel, or nonprofit. Two source records share the same entity_urn when Codex entity resolution determines they refer to the same real-world entity.