Conversation
…hway The 1981-2010 baseline is what makes the #564 futures interpretable — a projected 14.1 degC means little without a baseline to difference against, and until now a consumer could not compute warming from this catalog at all. Schema differs from the futures because the source does: this is an observational climatology, one raster per variable with no GCM members. So it is 7 plain columns (bio1, bio4, bio5, bio6, bio12, bio15, bio17) plus h8/h5/h4/h0, rather than five members plus median/min/max. Plain names so a delta reads directly: SELECT AVG(f.bio1_median - b.bio1) FROM <future> f JOIN <baseline> b USING (h8) Same pathway as #564 otherwise: one hex job per (h0, variable) = 854 jobs at the measured 8Gi / 4 cores, masked to land before staging, then one join per h0 that refuses a partial set. Parents 5,4,0 per the scope agreed on the issue, so the baseline meets the futures at h8 and coarser catalog assets at h5/h4. Raw was already staged during the #564 build, so no download is needed. Scoped to the seven variables the futures carry, so the pair is symmetric and deltas are defined for every column. Extending both to all 19 bioclim variables stays a follow-up. Koppen-Geiger and WorldClim, the other two products on #448, are separate ingests and not touched here.
Three dimensions over-requested on the same build, all by inheriting a number from a neighbouring job rather than measuring, and each throttled throughput differently: memory 32 Gi requested, 5.2 Gi peak -> '4,231 jobs do not fit on any node' cpu 8 cores requested, 3.3 mean -> halved the pods fitting in the core budget ephemeral 40 Gi requested, kilobytes -> job unschedulable outright The ephemeral case is the one worth spelling out. A join pod asked for 40Gi to write a 2KB partition and then cycled Leased -> Pending -> LeaseReturned indefinitely, because no node had that much free, while 121 identical jobs placed fine. It did not run slowly; it never ran. And nothing in the logs says the request is too large — the job simply never starts, which reads like a cluster problem rather than a spec problem. Adds the df/du measurement recipe alongside the existing kubectl top ones.
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 the CHELSA v2.1 1981–2010 observed baseline at H3 resolution 8, which is what makes the #564 future projections interpretable. Until now a consumer could not compute warming from this catalog at all — there was nothing to difference against.
Published and verified:
verify-stac.pyexits 0 against live S3.What ships
chelsa-2-1/baseline-1981-2010h8/h5/h4/h05,4,0as scoped on the issueThe schema deliberately differs from the futures, because the source does. This is an observational climatology — one raster per variable, no GCM members — so it carries plain
bio1,bio4, … rather than five members plus median/min/max. Plain names so a delta reads directly:Validation: Arctic amplification, reproduced
Global land mean for 1981–2010 comes out at 9.409 °C, in line with published land climatology. Joining against the projections at h0 79.2°N (mean cell latitude 76°N), across 456,928 cells:
Against a global land mean of +4.7 °C, that is ~1.8× amplification at high latitude. Nothing in the pipeline can manufacture that — it requires the baseline, the futures, the land mask, the units and the H3 alignment to be simultaneously correct. Structural checks also pass: zero nulls, zero parent mismatches on
h3_cell_to_parent.Reuses the #564 Armada pathway
854 hex jobs (one per h0 × variable) then 122 joins, at the measured 8 Gi / 4 cores. Raw was already staged during #564, so no download. The hex phase finished with zero gaps — consistent with the ~0.02% transient failure rate measured over ~30,000 jobs there.
Two defects caught before publishing
A path mismatch. The data landed at
baseline/1981-2010/while the STAC pointed atbaseline-1981-2010/. With a slash the last path segment is1981-2010, which would have produced the asset key1981-2010-hex— undescriptive and the same naming defect caught during #564. Moved the data (108/108, old path emptied) rather than degrade the key.An ephemeral over-request, now recorded in the
hex-tuningskill. One join asked for 40 Gi of ephemeral storage to write a 2 KB partition and cycledLeased → Pending → LeaseReturnedindefinitely, because no node had that much free — while 121 identical jobs placed fine. It did not run slowly; it never ran, and nothing in the logs says the request is too large.That makes three dimensions over-requested on this build by inheriting a number instead of measuring it — memory (~6×), cpu (~2.4×), ephemeral (enormous) — each throttling throughput a different way. The skill now covers all three with measurement recipes.
Scope
Seven variables, matching the futures so the pair is symmetric and every column has a defined delta. Extending both to all 19 bioclim variables stays a follow-up.
#448 stays open: Köppen-Geiger (CC-BY-4.0, categorical,
modereducer) and WorldClim (non-redistributable, MinIO-only) are separate ingests with different licences and reducers, not touched here.