Add a seafloor age (isochron) layer - #7
Merged
Conversation
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
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-agebuildstep 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 andthe globe alike, and starts switched off.
tests/geophysicalData.test.tsasserts 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