ClimateTools.jl
A collection of commonly-used tools in climate science. Basics of climate field analysis are covered, with some forays into exploratory techniques associated with climate scenarios design.
https://github.com/juliaclimate/climatetools.jl
Category: Climate Change
Sub Category: Climate Data Processing and Analysis
Keywords
bias-correction climate-analysis climate-indices climate-science julia multiple-threads netcdf-files parallel-computing timeseries
Keywords from Contributors
climate climate-change julialang oceanography geo energy-system data-assimilation automatic-differentiation spatiotemporal ecology
Last synced: about 4 hours ago
JSON representation
Repository metadata
Climate science package for Julia
- Host: GitHub
- URL: https://github.com/juliaclimate/climatetools.jl
- Owner: JuliaClimate
- License: other
- Created: 2016-12-12T20:41:47.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-05-30T15:21:41.000Z (11 months ago)
- Last Synced: 2025-12-14T07:12:29.102Z (5 months ago)
- Topics: bias-correction, climate-analysis, climate-indices, climate-science, julia, multiple-threads, netcdf-files, parallel-computing, timeseries
- Language: Julia
- Homepage: https://juliaclimate.github.io/ClimateTools.jl/stable/
- Size: 12.6 MB
- Stars: 121
- Watchers: 4
- Forks: 16
- Open Issues: 8
- Releases: 44
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
README.md
ClimateTools.jl
ClimateTools.jl is a climate-analysis toolkit built on top of YAXArrays.jl for gridded observations, reanalyses, and climate-model simulations.
The package focuses on the typical climate-services workflow:
- Read CF-style gridded datasets as
YAXArrayorCubeobjects. - Subset them in time and space.
- Regrid simulations and observations onto a common domain.
- Bias-correct simulations with quantile mapping, extreme-value correction, or time-variability correction.
- Compute indicators, aggregations, and diagnostics.
ClimateTools switched to YAXArrays xmap and mapCube pattern for whole-dimension transforms and reductions instead of the custom ClimGrid.
Status
- Active development
- Julia 1.10+
- Data model:
YAXArray/Cube - YAXArrays compatibility:
0.7
Installation
using Pkg
Pkg.add("ClimateTools")
For local development:
using Pkg
Pkg.develop(path="/path/to/ClimateTools")
Quick Start
using ClimateTools
using YAXArrays
obs = Cube(open_dataset("obs.nc"))
ref = Cube(open_dataset("ref.nc"))
fut = Cube(open_dataset("fut.nc"))
qq = qqmap(obs, ref, fut; method="additive", detrend=true)
ann = annualmax(qq)
That small example already illustrates the main ClimateTools workflow: open data, bias-correct, then compute a climate summary.
For quantile mapping, qqmap is the seasonally varying method: it removes leap days, groups samples by day of year using a moving +/- window, and applies an additive or multiplicative correction that changes through the annual cycle. Use qqmap_bulk only when one full-sample correction is acceptable and seasonal variation in the bias is not important.
Main Capabilities
- Dataset opening and subsetting with YAXArrays and DimensionalData selectors
- Regridding on regular, curvilinear, and rotated-pole grids
- Bias correction with
qqmap,qqmap_bulk,biascorrect_extremes, andtvc - Aggregations such as
daymean,daysum,annualmax,annualmean, andannualsum - A large catalog of temperature, precipitation, threshold, and spell-duration indices
- Ensemble summaries and time-series diagnostics
- Thermodynamic helper functions and return-level estimation
Documentation Map
The stable documentation is organized around workflows first and reference second.
- Quick start: open data, inspect dimensions, compute a first result
- Data and subsetting: time ranges, polygons, coordinate conventions
- Interpolation and regridding: regular, rotated, and curvilinear workflows
- Bias correction: method selection, assumptions, and validation
- Building climate scenarios: observations plus simulations, interpolation, correction, diagnostics, and derived indicators
- Indices and aggregations: grouped by climate-analysis task
- API overview: exported functions by category
Climate Scenarios
One of the primary use cases for ClimateTools is climate-scenario construction. A typical scenario workflow is:
- Choose a reference observation or reanalysis dataset.
- Open one or more model simulations for a historical and future period.
- Align calendars, time windows, and grids.
- Interpolate observations and simulations to a common grid if necessary.
- Bias-correct the model series using a method suited to the variable and objective.
- Validate the corrected fields and compute indicators, maps, or summary tables.
The documentation includes a dedicated guide for this workflow.
Documentation
See the built documentation at:
Owner metadata
- Name: JuliaClimate
- Login: JuliaClimate
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/41747566?v=4
- Repositories: 13
- Last ynced at: 2023-03-03T21:10:45.271Z
- Profile URL: https://github.com/JuliaClimate
GitHub Events
Total
- Watch event: 8
- Delete event: 2
- Push event: 7
- Pull request event: 5
- Create event: 2
Last Year
- Watch event: 5
- Delete event: 1
- Push event: 3
- Pull request event: 2
- Create event: 1
Committers metadata
Last synced: 4 months ago
Total Commits: 1,280
Total Committers: 20
Avg Commits per committer: 64.0
Development Distribution Score (DDS): 0.103
Commits in past year: 2
Committers in past year: 1
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| Philippe Roy | b****r@y****a | 1148 |
| DominiqueCaron | d****1@u****a | 69 |
| github-actions[bot] | 4****] | 17 |
| Trevor James Smith | t****h@l****m | 11 |
| CompatHelper Julia | c****y@j****g | 9 |
| DL2594 | r****4@h****a | 3 |
| Philippe | p****y@p****n | 3 |
| Pietro Monticone | 3****e | 3 |
| Roy, Philippe [4] | R****4@h****m | 3 |
| Tony Kelman | t****y@k****t | 2 |
| femtocleaner[bot] | f****] | 2 |
| Éloïse Nolet-Gravel | e****l@p****a | 2 |
| Elliot Saba | s****t@g****m | 1 |
| Trevor James Smith | t****s@m****l | 1 |
| Philippe Roy | r****e@o****a | 1 |
| Gabriel Gobeil | h****9@i****a | 1 |
| Fidel Thomet | me@f****m | 1 |
| Julia TagBot | 5****t | 1 |
| Miles Lubin | m****n@g****m | 1 |
| gaelforget | g****t@m****u | 1 |
Committer domains:
- mit.edu: 1
- fidelthomet.com: 1
- it-255.ouranos.ca: 1
- ouranos.ca: 1
- polymtl.ca: 1
- kelman.net: 1
- hydroquebec.com: 1
- pop-os.localdomain: 1
- hydro.qc.ca: 1
- julialang.org: 1
- umontreal.ca: 1
- yahoo.ca: 1
Issue and Pull Request metadata
Last synced: 5 months ago
Total issues: 49
Total pull requests: 195
Average time to close issues: 7 months
Average time to close pull requests: 5 months
Total issue authors: 17
Total pull request authors: 14
Average comments per issue: 5.84
Average comments per pull request: 0.75
Merged pull request: 126
Bot issues: 0
Bot pull requests: 91
Past year issues: 0
Past year pull requests: 3
Past year average time to close issues: N/A
Past year average time to close pull requests: about 8 hours
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- Balinus (27)
- Zeitsperre (5)
- gaelforget (3)
- juliohm (1)
- njdepsky (1)
- JuliaTagBot (1)
- joa-quim (1)
- cvitolo (1)
- ghost (1)
- rfourquet (1)
- dmetivie (1)
- attobot (1)
- dk-zen (1)
- natgeo-wong (1)
- Datseris (1)
Top Pull Request Authors
- github-actions[bot] (89)
- Balinus (80)
- DominiqueCaron (11)
- Zeitsperre (3)
- pitmonticone (2)
- femtocleaner[bot] (2)
- tkelman (2)
- gaelforget (2)
- houton199 (1)
- mlubin (1)
- staticfloat (1)
- fidelthomet (1)
- elnol (1)
- JuliaTagBot (1)
Top Issue Labels
- enhancement (27)
- help wanted (7)
- bug (4)
- deprecate (3)
- good first issue (2)
- Polls (1)
- question (1)
- upstream (1)
Top Pull Request Labels
- bug (1)
- enhancement (1)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 31
juliahub.com: ClimateTools
Climate science package for Julia
- Homepage: https://juliaclimate.github.io/ClimateTools.jl/stable/
- Documentation: https://docs.juliahub.com/General/ClimateTools/stable/
- Licenses: ISC
- Latest release: 0.24.1 (published almost 3 years ago)
- Last Synced: 2026-01-11T04:36:02.940Z (4 months ago)
- Versions: 31
- Dependent Packages: 1
- Dependent Repositories: 0
- Downloads: 0 Total
-
Rankings:
- Stargazers count: 6.707%
- Forks count: 9.348%
- Dependent repos count: 9.94%
- Average: 12.241%
- Dependent packages count: 22.97%
Dependencies
- ArgCheck 1.0.0
- AxisArrays 0.3.0
- BinDeps 0.4
- CondaBinDeps *
- Images 0.17.3
- Interpolations 0.8.0
- IterTools 1.1.0
- NCDatasets 0.9.2
- NaNMath 0.3.2
- NetCDF 0.7.1
- Polynomials 0.5.1
- ProgressMeter 0.6.0
- PyCall 1.90.0
- PyPlot 2.6.3
- Reexport 0.2.0
- Shapefile 0.4.0
- julia 0.7
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-docdeploy releases/v1 composite
- julia-actions/setup-julia v1 composite
Score: 7.855544677915663