Releases: GeoGeekLab/ipcc-wg1-scientific-plotting-skill
Release list
v2.3.0 — Benchmark it. Regress it. Ship it.
v2.3.0 — Benchmark it. Regress it. Ship it.
AR6 plotting now has cross-library benchmarks, verified colour assets, collision-aware labels, and reference-figure contracts.
Highlights
- Native Figanos 0.7.0 cross-library benchmark on shared scenario and map inputs
- Collision-aware
label_line_ends() - Fixed-size
map_panel_grid() add_uncertainty_legend()for agreement, missing data, and significance- Reference width / height / panel-count / projection checks in Python and
ar6plot IPCC-WG1/colormapspinned tob7d3849d4fa521d2583b91360e875e38f191d209- Git blob verification for all 43 official RGB assets
- Verified colormap source metadata used by strict map audit
- Structured contracts for AR6 WGI Chapter 3 Figure 3.2b, Chapter 6 Figure 6.18 source, and Chapter 10 Figure 10.20b
- PNG regression metrics: dimensions, mean absolute error, changed-pixel fraction, thumbnail error, SHA256
- Compact audit output with requested checks only
- Rebuilt GitHub README with benchmark and regression data front and center
Benchmark snapshot
| Check | Figanos 0.7.0 | ar6-sciplot 2.3.0 |
|---|---|---|
| WGI-2022 SSP colours | exact | exact |
| SSP endpoint label collision | SSP1-1.9 / SSP1-2.6 | none |
| 3-panel controlled map | 180 × 72 mm | 180 × 72 mm |
| Xarray-native faceting | yes | explicit panel grid |
| Report-era SSP profile | — | yes |
| Reference geometry audit | — | yes |
Reference regression
The committed AR6 source-data gallery reproduces at zero pixel error in CI.
Chapter 2 Figure 2.3 exact PNG regression
Chapter 3 Figure 3.2b contract + exact PNG regression
Chapter 6 Figure 6.18 contract + exact PNG regression
Chapter 10 Figure 10.20b contract + exact PNG regression
Install
python -m pip install -U ar6-sciplotClimate extras:
python -m pip install -U "ar6-sciplot[climate]"v2.2.0 — Plot it. Audit it. Prove it.
v2.2.0 — Plot it. Audit it. Prove it.
This release turns the project from a collection of AR6-oriented plotting
helpers into an installable, auditable scientific-figure toolkit.
Highlights
- Fidelity audit as a product surface.
AuditCheck,AuditReport,
andaudit_figure_report()provide structured pass/fail/skip results
with stable check codes, actual values, and expected values. - New
ar6plotCLI. Audit a Matplotlib figure factory from the
terminal, emit human-readable or JSON reports, and use exit codes in CI. - One-line installation. The distribution is
ar6-sciplot; the
stable Python import remainsipcc_sciplot. - A stronger visual story. The README now shows the progression from
Matplotlib defaults to appearance-only “IPCC-ish” styling, explicit
adapted profiles, and a fidelity-aware AR6 contract. - Reference-first evidence. Four figures remain reproducible from
pinned official AR6 WGI source repositories with recorded provenance. - Release engineering. Versions now derive from Git tags, package
artifacts are built and checked in CI, and original project code is
MIT-licensed with explicit third-party/IPCC licensing boundaries.
Install
python -m pip install ar6-sciplotAudit a figure
ar6plot audit examples/audit_demo.py --strict-dimensionsMachine-readable output:
ar6plot audit examples/audit_demo.py \
--strict-dimensions \
--format json \
--output audit.jsonExit codes are 0 for pass, 1 for fidelity failure, and 2 when
an audit cannot run.
Fidelity boundary
Machine checks do not replace reference-specific scientific review.
Projection choices, panel geometry, scientific methods, and exact
reproduction still require evidence and visual comparison. Strict
typography also requires Arial to be legally installed locally.
This is an independent project. It is not an official IPCC product and
does not imply IPCC endorsement.
v2.1.0 — Source it. Render it. Prove it.
v2.1.0 — Source it. Render it. Prove it.
IPCC visual fidelity now has reference data behind it.
This release adds a source-data regression layer built directly from pinned
official IPCC AR6 WGI repositories.
Reference gallery
Four distinct AR6 WGI figure families are now reproducible from source:
- Chapter 2 Figure 2.3 — paleo CO₂ proxies + uncertainty
- Chapter 3 Figure 3.2b — scatter + fitted relationship
- Chapter 6 Figure 6.18 source — historical + scenario CH₄ emissions
- Chapter 10 Figure 10.20b — Mediterranean station map
Each reference records:
- immutable upstream Git commit
- physical figure dimensions
- 350 ppi output
- output SHA256
- machine-readable provenance
Fidelity regression
The reference workflow now rebuilds the gallery and verifies that committed
outputs do not drift.
CI validates:
- source-data retrieval
- figure generation
- 90 / 180 mm delivery geometry
- output pixel dimensions
- SHA256 manifest
- committed reference consistency
CI is read-only: GitHub Actions validates the repository but does not write
commits back to it.
Project surface
README and repository structure were tightened around the actual execution model:
evidence → tokens → archetypes → render → audit → reference
IPCC style is not a Matplotlib theme.
It is a visual grammar with evidence behind it.
v2.0.0 — Visual grammar, distilled.
v2.0.0 — Fidelity, not vibes.
A ground-up refactor of the IPCC AR6 WGI plotting skill around one goal:
faithful visual grammar, backed by evidence.
What changed
- Distilled AR6 WGI visual rules from official guides, colormaps, chapter code, TSU review comments, and Atlas guidance
- Added separate
ar6-reportandwgi-guide-2022style profiles - Added semantic SSP/RCP colours
- Added strict loading of official IPCC WGI colormaps
- Added 90 / 180 mm figure geometry, 9 / 11 pt typography, 0.5 pt axes, and 350 ppi print output
- Added figure archetypes for time series, ensemble bands, maps, and multi-panel layouts
- Separated model agreement, missing data, and statistical significance encodings
- Added machine-checkable fidelity audits
- Added an evidence matrix for rule scope and confidence
- Removed fake “IPCC defaults” for statistical choices such as median, 17–83% ranges, and 80% agreement
- Expanded CI across Python 3.11 and 3.12 with end-to-end artifact checks
Fidelity modes
Strict
For IPCC AR6 WGI-faithful output.
Adapted
For IPCC-inspired work when exact assets or constraints are unavailable.
Philosophy
IPCC style is not a Matplotlib theme.
It is a visual grammar.
This release treats it that way.
IPCC-WG1 Scientific Plotting Skill
Release notes
Overview
This is the first public release of IPCC-WG1 Scientific Plotting Skill, a reusable and reproducible toolkit for publication-quality climate science visualization.
The project distills scientific plotting practices from representative IPCC Working Group I repositories and restructures them into a modern, configuration-driven Python workflow. It is designed for climate diagnostics, model ensembles, spatial statistics, uncertainty communication, and figure delivery for reports, papers, and technical assessments.
Highlights
- Reproducible scientific plotting workflow
- Configuration-driven figure recipes
- Publication-ready Matplotlib defaults
- Climate model ensemble summaries
- Explicit uncertainty and model-agreement encoding
- Multiple-testing control using Benjamini–Hochberg FDR
- Area-weighted spatial statistics
- IPCC-style low-agreement hatching
- PDF and high-resolution PNG export
- Machine-readable provenance and input-file hashing
- Unit tests and an end-to-end quick-start example
Core capabilities
Ensemble statistics
The package provides utilities for calculating:
- Ensemble median or mean
- Configurable quantile intervals
- Grid-cell model counts
- Sign agreement across models
- Low-agreement and insufficient-sample classifications
These functions are intended to make ensemble aggregation assumptions explicit and auditable.
Statistical significance
The included fdr_bh_mask() implementation applies the Benjamini–Hochberg procedure to control the false discovery rate when testing multiple grid cells or regions.
Scientific visual encoding
The plotting utilities support:
- Single-column and double-column publication dimensions
- Conservative typography and vector-font settings
- Discrete and continuous scientific colour scales
- Low-agreement hatching overlays
- Separation of statistical results from visual styling
- Local loading of licensed or externally distributed RGB colour maps
Spatial analysis
The package includes area-aware spatial aggregation using:
- Cosine-latitude weighting for regular latitude–longitude grids
- Explicit cell-area weighting when grid-cell areas are available
Provenance
Each figure workflow can record:
- Input file SHA-256 hashes
- Git commit identifier
- Software and dependency versions
- Analysis parameters
- Random seeds
- Data and method citations
Repository structure
The release includes:
SKILL.md— complete skill definition and methodologyREADME.md— installation and usage guidancepyproject.toml— Python project configuration- Environment and dependency definitions
- Reusable plotting and statistical modules
- YAML figure recipe example
- Unit tests
- Quick-start workflow
- Example PDF and PNG figures
- Example NetCDF plotted-data output
- Example provenance metadata
Recommended workflow
Scientific question
→ Figure contract
→ Data validation
→ Explicit statistical transformation
→ Compact plotted-data product
→ Declarative visual mapping
→ PDF and PNG export
→ Provenance, tests, and citations
Validation
This release has been checked using:
- Unit tests for core statistical utilities
- An end-to-end synthetic ensemble example
- NetCDF plotted-data generation
- PDF and 300 dpi PNG export
- Provenance JSON generation
- Rendered-figure inspection for clipping, overlap, and typography issues
Installation
Download and extract the release archive, then install the package from the repository root:
python -m pip install -e .For development and testing:
python -m pip install -e ".[dev]"
pytestIntended use
This project is suitable for:
- Climate model evaluation
- Multi-model ensemble analysis
- Detection and attribution diagnostics
- Regional climate assessment
- Extreme-event analysis
- Scientific reports and journal figures
- Reproducible figure pipelines
Important note
This is an independent methodological toolkit inspired by publicly available IPCC-WG1 code and reproducibility practices. It is not an official IPCC software product and does not imply endorsement by the IPCC.
Initial release
As the first stable release, v1.0.0 establishes the core API, repository structure, reproducibility conventions, and reference plotting workflow.