Skip to content

Releases: GeoGeekLab/ipcc-wg1-scientific-plotting-skill

v2.3.0 — Benchmark it. Regress it. Ship it.

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:15

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/colormaps pinned to b7d3849d4fa521d2583b91360e875e38f191d209
  • 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-sciplot

Climate extras:

python -m pip install -U "ar6-sciplot[climate]"

v2.2.0 — Plot it. Audit it. Prove it.

Choose a tag to compare

@github-actions github-actions released this 20 Sep 04:30
a2d0ba3

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,
    and audit_figure_report() provide structured pass/fail/skip results
    with stable check codes, actual values, and expected values.
  • New ar6plot CLI. 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 remains ipcc_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-sciplot

Audit a figure

ar6plot audit examples/audit_demo.py --strict-dimensions

Machine-readable output:

ar6plot audit examples/audit_demo.py \
  --strict-dimensions \
  --format json \
  --output audit.json

Exit 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.

Choose a tag to compare

@GeoGeekLab GeoGeekLab released this 19 Sep 15:21

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.

Choose a tag to compare

@GeoGeekLab GeoGeekLab released this 19 Sep 14:15
aea3342

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-report and wgi-guide-2022 style 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

Choose a tag to compare

@GeoGeekLab GeoGeekLab released this 04 Aug 05:29

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 methodology
  • README.md — installation and usage guidance
  • pyproject.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]"
pytest

Intended 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.