xclim: xarray-based climate data analytics
Bibliographic record
Abstract
Contributors to this version: Trevor James Smith (@Zeitsperre), Éric Dupuis (@coxipi). New features and enhancements New properties: Bivariate Spell Length (xclim.sdba.properties.bivariate_spell_length), Generalized Spell Lengths with an argument for window, and Specific Spell Lengths with window fixed to '1' (xclim.sdba.properties.threshold_count, xclim.sdba.properties.bivariate_threshold_count). (PR/1758). New option normalize in sdba.measures.taylordiagram to obtain normalized Taylor Diagrams (divide standard deviations by standard deviation of the reference). (PR/1764). Breaking changes pint has been pinned below v0.24 until xclim can be updated to support the latest version. (GH/1771, PR/1772). numpy has been pinned below v2.0.0 until xclim can be updated to support the latest version. (PR/1783). Calendar utilities that have an equivalent in xarray have been deprecated and will be removed in xclim v0.51.0. (GH/1010, PR/1761). This concerns the following members of xclim.core.calendar: convert_calendar : Use Dataset.convert_calendar, DataArray.convert_calendar or xr.coding.calendar_ops.convert_calendar instead. If your code passes target as an array, first convert the source to the target's calendar and then reindex the result to target. If you were using the doy=True option, replace it with xc.core.calendar.convert_doy(source, target_cal).convert_calendar(target_cal). "default" is no longer a valid calendar name for any xclim functions and will not be returned by get_calendar. Xarray has a use_cftime argument, xclim exposes it when the distinction is needed. date_range : Use xarray.date_range instead. date_range_like: Use xarray.date_range_like instead. interp_calendar : Use Dataset.interp_calendar or xarray.coding.calendar_ops.interp_calendar instead. days_in_year : Use xarray.coding.calendar_ops._days_in_year instead. datetime_to_decimal_year : Use xarray.coding.calendar_ops._datetime_to_decimal_year instead. Internal changes Synchronized tooling versions across pyproject.toml and tox.ini and pinned them to the latest stable releases in GitHub Workflows. (PR/1744). Fixed a few small spelling and grammar issues that were causing errors with codespell. Now ignoring SVG files. (PR/1769). Temporarily skipping the test_hawkins_sutton_smoke test due to strange behaviour with xarray. (PR/1769). Fixed some previously uncaught errors raised from recent versions of pylint and codespell. (PR/1772). Set the doctest examples to all use h5netcdf with worker-separated caches to load datasets. (PR/1772). Bug fixes xclim.indices.{cold|hot}_spell_total_length now properly uses the argument window to only count spells with at least window time steps. (GH/1765, PR/1777). Addressed an error in xclim.ensembles._filters._concat_hist where remnants of a scenario selection were not being dropped properly. (PR/1780).
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.004 | 0.018 |
| Meta-epidemiology (narrow) | 0.003 | 0.002 |
| Meta-epidemiology (broad) | 0.002 | 0.002 |
| Bibliometrics | 0.004 | 0.004 |
| Science and technology studies | 0.001 | 0.001 |
| Scholarly communication | 0.007 | 0.008 |
| Open science | 0.006 | 0.007 |
| Research integrity | 0.001 | 0.004 |
| Insufficient payload (model declined to judge) | 0.245 | 0.288 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".