Skip to content

Add a seafloor age (isochron) layer - #7

Merged
veillette merged 2 commits into
mainfrom
claude/oceanic-crust-age-checkbox-8891zu
Aug 5, 2026
Merged

Add a seafloor age (isochron) layer#7
veillette merged 2 commits into
mainfrom
claude/oceanic-crust-age-checkbox-8891zu

Conversation

@veillette

Copy link
Copy Markdown
Contributor

Adds a checkbox that draws the isochrons of the ocean floor — the lines
along which the crust is all one age, at 10, 20, 40 … 180 Ma — coloured
red at the young end and blue at the old one.

The point of the layer is the seafloor spreading argument: the youngest
crust runs a degree or two either side of every spreading ridge, the same
age turns up at about the same distance on both flanks, and it all stops
at about 180 Ma because everything older has been subducted.

Data comes from the EarthByte present-day age grid (Seton et al., 2020),
a 6-arc-minute netCDF-3 grid built from marine magnetic anomalies dated
against the geomagnetic polarity timescale. The new seafloor-age build
step contours it with marching squares on a 0.3° mesh and simplifies the
result to 229 polylines, and two new script modules carry the work: a
minimal classic-netCDF reader alongside the existing GeoTIFF one, and a
marching-squares contourer that skips cells with missing corners so a
contour ends at the coast instead of running onto land.

Each isochron vertex carries the plate that carries it, so the layer
rides the reconstruction: run the clock back and matched pairs walk
towards the ridge that made them, while crust younger than the
reconstruction has reached is not drawn at all, because it did not exist.

The layer is added to EarthCanvasNode, so it appears on the flat map and
the globe alike, and starts switched off. tests/geophysicalData.test.ts
asserts the physics: across the Atlantic at 24° N every isochron crosses
on both flanks, each older one further out than the last, and the two
flanks stay within a few degrees of symmetric about the axis.

Layer-panel spacings are tightened slightly so the extra checkbox does not
push the geological-time controls off the bottom of the screen.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01MjMJZcbUDbkZX5VCrTjzNq

claude added 2 commits August 5, 2026 22:12
Adds a checkbox that draws the isochrons of the ocean floor — the lines
along which the crust is all one age, at 10, 20, 40 … 180 Ma — coloured
red at the young end and blue at the old one.

The point of the layer is the seafloor spreading argument: the youngest
crust runs a degree or two either side of every spreading ridge, the same
age turns up at about the same distance on both flanks, and it all stops
at about 180 Ma because everything older has been subducted.

Data comes from the EarthByte present-day age grid (Seton et al., 2020),
a 6-arc-minute netCDF-3 grid built from marine magnetic anomalies dated
against the geomagnetic polarity timescale. The new `seafloor-age` build
step contours it with marching squares on a 0.3° mesh and simplifies the
result to 229 polylines, and two new script modules carry the work: a
minimal classic-netCDF reader alongside the existing GeoTIFF one, and a
marching-squares contourer that skips cells with missing corners so a
contour ends at the coast instead of running onto land.

Each isochron vertex carries the plate that carries it, so the layer
rides the reconstruction: run the clock back and matched pairs walk
towards the ridge that made them, while crust younger than the
reconstruction has reached is not drawn at all, because it did not exist.

The layer is added to `EarthCanvasNode`, so it appears on the flat map and
the globe alike, and starts switched off. `tests/geophysicalData.test.ts`
asserts the physics: across the Atlantic at 24° N every isochron crosses
on both flanks, each older one further out than the last, and the two
flanks stay within a few degrees of symmetric about the axis.

Layer-panel spacings are tightened slightly so the extra checkbox does not
push the geological-time controls off the bottom of the screen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MjMJZcbUDbkZX5VCrTjzNq
main made every layer start off and gave the flat map a camera. The
isochron layer keeps its own default of off, which is now the same as
every other layer rather than an exception, and its comment says so.
It draws through `EarthCanvasNode.appendFeature`, so panning, zooming and
viewport culling apply to it without any change here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MjMJZcbUDbkZX5VCrTjzNq
@cursor

cursor Bot commented Aug 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@veillette
veillette merged commit 77545f4 into main Aug 5, 2026
7 of 8 checks passed
@veillette
veillette deleted the claude/oceanic-crust-age-checkbox-8891zu branch August 6, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants