Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
1b2f68c
Add cli, xarray and extractions
jochenklar May 23, 2025
c97f06e
Add plot and get/set_attrs
jochenklar May 27, 2025
0827f3b
Add pandas and refactor
jochenklar May 28, 2025
0618550
Add xarray.init_dataset and refactor netcdf.init_dataset
jochenklar Jun 4, 2025
17ecb3b
Update dependencies
jochenklar Jun 4, 2025
2adc345
Refactor isimip_utils.pandas.compute_mean
jochenklar Jun 4, 2025
3f67af0
Add parse_parameters
jochenklar Jun 4, 2025
97117cb
Add plot_grid
jochenklar Jun 4, 2025
0b4ce40
Refactor ArgumentParser, use toml instead of config, and move to cli
jochenklar Jun 5, 2025
9c7ac3f
Remove config.py
jochenklar Jun 5, 2025
c731066
Refactor fetch.py
jochenklar Jun 5, 2025
67d7075
Update utils.py
jochenklar Jun 6, 2025
967e522
Fix dependencies
jochenklar Jun 4, 2025
15cc5a4
Fix pandas.conpute_mean
jochenklar Aug 20, 2025
ee94b0e
Add join_parameters function
jochenklar Sep 1, 2025
c4f45f6
Add default_color
jochenklar Aug 14, 2025
1b24269
Add compute_temporal_average and rename compute_spatial_average
jochenklar Sep 2, 2025
8071ab3
Refactor plot.py
jochenklar Sep 2, 2025
6c0b6c7
Refactor xarray.py
jochenklar Sep 2, 2025
92002bb
Add cache to open_dataset
jochenklar Sep 11, 2025
9cca986
Add files module
jochenklar Sep 11, 2025
21f2bdf
Fix plot_grid
jochenklar Sep 11, 2025
a3316ff
Add copy_placeholders and update_year utils
jochenklar Sep 11, 2025
ffae8f1
Ignore case in find_files
jochenklar Sep 11, 2025
662f5e4
Fix plot_grid
jochenklar Sep 12, 2025
acacc29
Update logging
jochenklar Sep 24, 2025
dcaeb9c
Fix plot_grid
jochenklar Sep 24, 2025
d3063ed
Add get_plot_title
jochenklar Sep 25, 2025
ce347ea
Ensure log_file path
jochenklar Sep 25, 2025
275cfc4
Add log_console option
jochenklar Sep 25, 2025
b9b2580
Move normalize out of the group functions in pandas.py
jochenklar Oct 7, 2025
92d795c
Add resolve_scale arguments to plot_grid
jochenklar Oct 7, 2025
97e491d
Refactor plot_line
jochenklar Oct 7, 2025
373321b
Refactor plot_map
jochenklar Oct 7, 2025
64c9949
Update pre-commit config
jochenklar Oct 7, 2025
ceb20cf
Add save_index to plot.py
jochenklar Oct 8, 2025
c796101
Add log_rich argument to setup logs
jochenklar Oct 9, 2025
5e7cc18
Add set_nan_to_fill_value to write_dataset
jochenklar Oct 14, 2025
70dd97f
Add config.py
jochenklar Oct 22, 2025
277255f
Move Singleton to utils
jochenklar Oct 22, 2025
261a421
Add inverse argument to mask_mask
jochenklar Oct 22, 2025
ac428ae
Remove load_dataset and cache_dataset
jochenklar Oct 22, 2025
c4cd404
Update README.md
jochenklar Oct 24, 2025
f813707
Add docstrings and types
jochenklar Oct 27, 2025
3232c3c
Add mkdocs documentation
jochenklar Oct 27, 2025
ae46cee
Fix ArgumentParser
jochenklar Oct 27, 2025
6ea510f
Add load_dataset again
jochenklar Oct 27, 2025
a269689
Move cached_property to utils.py
jochenklar Oct 27, 2025
1279953
Move find_files to patterns.py
jochenklar Oct 27, 2025
e2af16d
Move parse_filelist to cli.py
jochenklar Oct 27, 2025
74ffdc8
Fix minor issues
jochenklar Oct 27, 2025
b164d6e
Add show_time and show_path arguments to setup_logs
jochenklar Oct 28, 2025
8b7074c
Fix netcdf.init_dataset
jochenklar Oct 29, 2025
de612dc
Fix concat_extraction
jochenklar Oct 29, 2025
fb24bf5
Refactor plot.py
jochenklar Oct 30, 2025
9df3744
Refactor find_json
jochenklar Nov 4, 2025
11e5c53
Add tests
jochenklar Nov 4, 2025
52b7d57
Add overwrite to netcdf.init_dataset
jochenklar Nov 12, 2025
c44854c
Add test_netcdf.py and fix issues
jochenklar Nov 12, 2025
3b23baf
Use decode_cf=True as default
jochenklar Nov 17, 2025
81b57f3
Filter one value coords and data_vars in to_dataframe
jochenklar Nov 17, 2025
9c83376
Refactor pandas.py
jochenklar Nov 17, 2025
ceef144
Use setup.py instead of setup.sh
jochenklar Nov 17, 2025
4561a85
Add test_pandas.py
jochenklar Nov 17, 2025
685914c
Fix xarray.py
jochenklar Nov 18, 2025
19dfa86
Add text_xarray.py
jochenklar Nov 18, 2025
839c217
Update test_xarray.py
jochenklar Nov 18, 2025
08c32ec
Refactor find_files
jochenklar Nov 19, 2025
b4a9612
Add test_patterns.py
jochenklar Nov 19, 2025
fc32242
Update get_permutations
jochenklar Nov 19, 2025
e9ff449
Add test_utils.py
jochenklar Nov 19, 2025
e3f5797
Refactor extractions.py
jochenklar Nov 21, 2025
1ccf109
Refactor tests.py
jochenklar Nov 21, 2025
fc545c5
Add test_extractions.py
jochenklar Nov 21, 2025
2c42c56
Add typos pre-commit hook, update pyproject.toml and fix issues
jochenklar Nov 24, 2025
8a8338c
Refactor optional dependencies
jochenklar Nov 24, 2025
503dd46
Use setuptools_scm and importlib.metadata to determine version
jochenklar Nov 24, 2025
daf4cb9
Update pandas.py and plot.py
jochenklar Nov 24, 2025
73129ee
Add test_plot.py
jochenklar Nov 24, 2025
2cc1fbd
Refactor tests
jochenklar Nov 24, 2025
806fa0c
Update .pre-commit-config.yaml
jochenklar Nov 24, 2025
944123a
Fix find_files
jochenklar Nov 24, 2025
6601ac5
User first data var by default in pandas.py
jochenklar Nov 24, 2025
2f75e23
Fix log messages
jochenklar Nov 24, 2025
1ff3676
Split setup.py and download.py
jochenklar Nov 25, 2025
0893954
Fix dependencies
jochenklar Nov 26, 2025
3218f30
Refactor xarray.init_dataset
jochenklar Nov 26, 2025
a04454b
Pin dependencies
jochenklar Nov 26, 2025
bfde49d
Add compression to xarray write_dataset
jochenklar Nov 27, 2025
47a946c
Add convert_time method and support time as string array
jochenklar Nov 27, 2025
0a63e3f
Fix convert_time
jochenklar Nov 28, 2025
8fcf7f1
Refactor init_dataset
jochenklar Dec 3, 2025
19d7a05
Use float32 for FILL_VALUE
jochenklar Dec 9, 2025
8befeaa
Add parse_locations and parse_parameters
jochenklar Dec 12, 2025
9018cb7
Add dim argument to extractions.count_values
jochenklar Dec 13, 2025
64f055d
Add protocol.py and refactor fetch.py
jochenklar Dec 14, 2025
36216e9
Add apply_placeholders
jochenklar Dec 15, 2025
9950386
Fix concat_extractions
jochenklar Dec 16, 2025
d41fe90
Revert previous changes to parse_paramers
jochenklar Dec 23, 2025
2b98b80
Add update methods to Settings
jochenklar Dec 23, 2025
d209978
Add add separate parameters module
jochenklar Dec 23, 2025
9ba214b
Refactor find_files, remove update_year and add get_min_value and get…
jochenklar Dec 23, 2025
88a0869
Refactor and fix tests
jochenklar Dec 24, 2025
7f616d8
Add GitHub Actions workflow
jochenklar Nov 25, 2025
2239cba
Use float64 for _FillValue and float32 for missing_value
jochenklar Dec 10, 2025
bdc51c6
Update GitHub actions
jochenklar Dec 10, 2025
b1cc435
Adjust rioxarray version for Python 3.11
jochenklar Dec 10, 2025
33e5c93
Update GitHub actions
jochenklar Dec 10, 2025
935b0af
Check for existing files in testing/setup.py
jochenklar Dec 10, 2025
00ae6e1
Refactor GitHub action
jochenklar Dec 24, 2025
52cf7ba
Add conversion of date type in compute_time
jochenklar Dec 25, 2025
26945fb
Add type argument to compute_average
jochenklar Dec 25, 2025
14ca4cc
Refactor tests
jochenklar Dec 25, 2025
797d185
Fix constants.py
jochenklar Dec 25, 2025
1782d41
Fix f-strings
jochenklar Dec 26, 2025
a2baade
Add more tests
jochenklar Dec 26, 2025
9430b6a
Fix tests
jochenklar Dec 26, 2025
dc31a2a
Try to find matching fragment in pattern.match_string
jochenklar Jan 7, 2026
488ece9
Make target optional for fetch_file and load_file
jochenklar Jan 10, 2026
14980c8
Remove base_path from find_files
jochenklar Jan 10, 2026
be2e553
Use short name in plots
jochenklar Jan 10, 2026
5e4df3a
Strip trailing slash in parse_locations
jochenklar Jan 10, 2026
771fdae
Refactor parsing functions in cli.py
jochenklar Jan 10, 2026
91b33b3
Refactor plot_grid
jochenklar Jan 10, 2026
54ce2d1
Improve error message in apply_placeholders
jochenklar Jan 10, 2026
a35d6a7
Rename optional dependencies
jochenklar Jan 10, 2026
eca5096
Fix tests and update cli.py
jochenklar Jan 10, 2026
3d9c550
Revert changes to cli.py
jochenklar Jan 11, 2026
4054333
Use env_prefix with ArgumentParser
jochenklar Jan 12, 2026
1eb3abb
Refactor exclude_path and include_path
jochenklar Jan 12, 2026
c74553e
Omit title for empty plots
jochenklar Jan 12, 2026
b7e0d36
Fix Settings.update
jochenklar Jan 13, 2026
b272fb8
Fix growing season handling
jochenklar Jan 13, 2026
ca2c38f
Refactor config file handling in cli.py
jochenklar Jan 13, 2026
a70259c
Remove update methods from Settings
jochenklar Jan 13, 2026
9ecfc1e
Fix build_default_args
jochenklar Jan 13, 2026
34bc233
Fix set_nan_to_fill_value
jochenklar Jan 19, 2026
be6f1d5
Add Settings.from_toml
jochenklar Jan 20, 2026
88bae2d
Refactor extraction functions
jochenklar Jan 26, 2026
a9cf2a7
Add compute_aggregation and refactor extractions again
jochenklar Jan 27, 2026
a5e0a31
Fix convert_time
jochenklar Jan 27, 2026
6902aae
Remove layer option from plot_grid
jochenklar Jan 27, 2026
853a98a
Add title for empty plots again
jochenklar Jan 27, 2026
d23fbab
Fix build_default_args
jochenklar Jan 27, 2026
56097aa
Update docs and README.md
jochenklar Jan 28, 2026
71bdf1e
Add CITATION.cff file
jochenklar Jan 28, 2026
254618b
Fix empty plot handling
jochenklar Jan 30, 2026
49fb451
Fix plot_line and plot_map for empty arguments
jochenklar Jan 30, 2026
2b9ec33
Remove fetch_resource
jochenklar Feb 6, 2026
b189ec1
Fix convert_time
jochenklar Feb 23, 2026
a3cca87
Add PyPI publication to workflow
jochenklar Mar 2, 2026
88cdef3
Update CITATION.cff, LICENSE and pyproject.toml
jochenklar Mar 2, 2026
3f9d6db
Merge pull request #3 from ISI-MIP/test
jochenklar Mar 2, 2026
53573de
Fix write_dataset and refactor missing value handling
jochenklar Mar 3, 2026
1f2140d
Refactor decode_times=False fallback
jochenklar Mar 3, 2026
22c790e
Use warning instead of warn as log level
jochenklar Mar 4, 2026
42bb2a4
Fix xarray DEFAULT_ATTRS
jochenklar Mar 3, 2026
3a93261
Add "years since <datetime>" to open_dataset fallback
jochenklar Mar 6, 2026
d731b6a
Fix GitHub workflow
jochenklar Mar 6, 2026
78a332a
Fix tests
jochenklar Mar 6, 2026
b048d8f
Use hatchling as build-system
jochenklar Mar 7, 2026
82562d3
Fix build_default_args for arguments with const
jochenklar Mar 9, 2026
fda3f35
Update CITATION.cff
jochenklar Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 132 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: CI

on:
push:
branches:
- main
- test
tags:
- "*"
pull_request:
branches:
- main

permissions:
contents: read
actions: read

env:
PYTHONDONTWRITEBYTECODE: 1
FORCE_COLOR: 1
PYTHON_VERSION: "3.12"

jobs:
test:
name: Run tests 🧪
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout repo 🛎️
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up Python 🐍
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: pip

- name: Restore testing cache 📥
uses: actions/cache@v4
with:
path: |
testing/datasets
testing/extractions
testing/protocol
testing/share
key: testing-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('isimip_utils/tests/constants.py') }}
restore-keys: |
testing-${{ runner.os }}-${{ env.PYTHON_VERSION }}-

- name: Install cdo 🌍
run: |
sudo apt-get update
sudo apt-get install -y cdo netcdf-bin --no-install-recommends

- name: Install package 📦
run: pip install -e .[all]

- name: Run download script 🌐
run: python testing/download.py

- name: Run setup script 🔧
run: python testing/setup.py

- name: Save testing cache 📤
if: always()
uses: actions/cache/save@v4
with:
path: |
testing/datasets
testing/extractions
testing/protocol
testing/share
key: testing-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('isimip_utils/tests/constants.py') }}

- name: Run pytest 🧪
run: pytest --cov=isimip_utils --cov-fail-under=90 --cov-report=term-missing

build:
name: Build distribution 👷
needs: test
runs-on: ubuntu-latest

steps:
- name: Checkout repo 🛎️
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up Python 🐍
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: pip

- name: Install build 🧱
run: python3 -m pip install build --user

- name: Build a binary wheel and a source tarball 🛠️
run: python3 -m build

- name: Store the distribution packages 📤
uses: actions/upload-artifact@v5
with:
name: python-package-distributions
path: dist/

pypi:
name: Publish distribution to PyPI 📦
if: startsWith(github.ref, 'refs/tags/')
needs: build
runs-on: ubuntu-latest

environment:
name: pypi
url: https://pypi.org/p/isimip-utils

permissions:
id-token: write

steps:
- name: Download the distribution packages 📥
uses: actions/download-artifact@v6
with:
name: python-package-distributions
path: dist/

- name: Publish to PyPI 🚀
uses: pypa/gh-action-pypi-publish@release/v1
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,19 @@ __pycache__/
/build
/dist
/*.egg-info

/.aider*
/.pytest_cache
/.ruff_cache

/.coverage
/htmlcov

/site

/testing/datasets
/testing/extractions
/testing/output
/testing/plots
/testing/protocol
/testing/share
10 changes: 8 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@ repos:
hooks:
- id: check-hooks-apply
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v6.0.0
hooks:
- id: check-ast
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: debug-statements

- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.284
rev: v0.14.6
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]

- repo: https://github.com/crate-ci/typos
rev: v1.39.2
hooks:
- id: typos
19 changes: 19 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
cff-version: 1.2.0
message: If you use this software in your research, please cite it using the provided Digital Object Identifier (DOI).

title: ISIMIP utils
abstract: Common functionality for different ISIMIP tools.

authors:
- family-names: Klar
given-names: Jochen
orcid: https://orcid.org/0000-0002-5883-4273
- family-names: Büchner
given-names: Matthias
orcid: https://orcid.org/0000-0002-1382-7424
- family-names: Inga
given-names: Sauer
orcid: https://orcid.org/0000-0002-9302-2131

license: MIT
repository-code: https://github.com/ISI-MIP/isimip-utils
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 Potsdam Institute for Climate Impact Research
Copyright (c) 2022-2026 Potsdam Institute for Climate Impact Research

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
87 changes: 62 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,85 @@
ISIMIP utils
============

[![Latest release](https://shields.io/github/v/release/ISI-MIP/isimip-utils)](https://github.com/ISI-MIP/isimip-utils/releases)
[![PyPI Release](https://img.shields.io/pypi/v/isimip-utils)](https://pypi.org/project/isimip-utils/)
[![Python Version](https://img.shields.io/badge/python->=3.8-blue)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/ISI-MIP/django-datacite/blob/master/LICENSE)
[![Python Version](https://img.shields.io/badge/python->=3.11-blue)](https://www.python.org/)
[![License](https://img.shields.io/github/license/ISI-MIP/isimip-utils?style=flat)](https://github.com/rdmorganiser/isimip-utils/blob/main/LICENSE)
[![CI status](https://github.com/ISI-MIP/isimip-utils/actions/workflows/ci.yml/badge.svg)](https://github.com/ISI-MIP/isimip-utils/actions/workflows/ci.yml)
[![Coverage status](https://coveralls.io/repos/ISI-MIP/isimip-utils/badge.svg?branch=main&service=github)](https://coveralls.io/github/ISI-MIP/isimip-utils?branch=main)
[![Latest release](https://img.shields.io/pypi/v/isimip-utils.svg?style=flat)](https://pypi.python.org/pypi/isimip-utils/)

This package contains common functionality for different ISIMIP tools, namely:

* https://github.com/ISI-MIP/isimip-publisher
* https://github.com/ISI-MIP/isimip-qa
* https://github.com/ISI-MIP/isimip-qc
[ISIMIP](https://isimip.org) offers a framework for consistently projecting the impacts
of climate change across affected sectors and spatial scales. An international network
of climate-impact modellers contribute to a comprehensive and consistent picture of the
world under different climate-change scenarios.

It comprises of:
This package contains various utility methods for use in custom scripts as well
as in different ISIMIP tools:

* `isimip_utils.checksum`: Functions to compute the SHA-512 checksum of a file.
* `isimip_utils.config`: A settings class to combine input from `argparse`, the environment (via `python-dotenv`) and config files.
* `isimip_utils.exceptions`: Custom exceptions for ISIMIP tools.
* `isimip_utils.fetch`: Functions to fetch files from the machine-actionable ISIMIP protocols.
* `isimip_utils.netcdf`: Functions to open and read NetCDF files.
* `isimip_utils.patterns`: Functions to match the file names and extract the ISIMIP specifiers.
* `isimip_utils.utils`: Additional utility functions.
* [ISIMIP quality control](https://github.com/ISI-MIP/isimip-qc)
* [ISIMIP quality assurance](https://github.com/ISI-MIP/isimip-qa)
* [ISIMIP publisher](https://github.com/ISI-MIP/isimip-publisher)


The different methods are described are [documented here](docs/index.md).


Setup
=====
-----

Working on the package requires a running Python3 on your system. Installing those prerequisites is covered [here](https://github.com/ISI-MIP/isimip-utils/blob/master/docs/releases.md).
Using the package requires a running Python 3 on your system. The installation for different systems is covered
[here](docs/releases.md).

The package itself can be installed via pip:
Unless you already use an environment manager (e.g. `conda` or `uv`), it is highly recommended to use a
[virtual environment](https://docs.python.org/3/library/venv.html), which can be created using:

```
pip install isimip-utils
```bash
python3 -m venv env
source env/bin/activate # needs to be invoked in every new terminal session
```

The package can also be installed directly from GitHub:
The package itself can be installed via `pip`:

```
pip install git+https://github.com/ISI-MIP/isimip-utils
```bash
pip install isimip-utils
```

For a development setup, the repo should be cloned and installed in *editable* mode:

```
```bash
git clone git@github.com:ISI-MIP/isimip-utils
pip install -e isimip-utils
```


Usage
-----

Once installed, the modules can be used like any other Python library, e.g. in order to create a ISIMIP
compliant NetCDF file, you can use:

```python
from isimip_utils.xarray import init_dataset, write_dataset

time = np.arrange(0, 365, dtype=np.float64)
var = np.ones((365, 360, 720), dtype=np.float32)

attrs={
'global': {
'contact': 'mail@example.com'
},
'var': {
'standard_name': 'var',
'long_name': 'Variable',
'units': '1',
}
}

# create an xarray.Dataset
ds = init_dataset(time=time, var=var, attrs=attrs)

# write the dataset as NetCDF file
write_dataset(ds, 'output.nc')
```

Please also note our [examples page](examples.md) and the [API reference](api.md).
3 changes: 3 additions & 0 deletions docs/api/checksum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.checksum

::: isimip_utils.checksum
3 changes: 3 additions & 0 deletions docs/api/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.cli

::: isimip_utils.cli
3 changes: 3 additions & 0 deletions docs/api/config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.config

::: isimip_utils.config
3 changes: 3 additions & 0 deletions docs/api/exceptions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.exceptions

::: isimip_utils.exceptions
3 changes: 3 additions & 0 deletions docs/api/extractions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.extractions

::: isimip_utils.extractions
3 changes: 3 additions & 0 deletions docs/api/fetch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.fetch

::: isimip_utils.fetch
3 changes: 3 additions & 0 deletions docs/api/files.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.files

::: isimip_utils.files
3 changes: 3 additions & 0 deletions docs/api/netcdf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.netcdf

::: isimip_utils.netcdf
3 changes: 3 additions & 0 deletions docs/api/pandas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.pandas

::: isimip_utils.pandas
3 changes: 3 additions & 0 deletions docs/api/parameters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.parameters

::: isimip_utils.parameters
3 changes: 3 additions & 0 deletions docs/api/patterns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.patterns

::: isimip_utils.patterns
3 changes: 3 additions & 0 deletions docs/api/plot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.plot

::: isimip_utils.plot
3 changes: 3 additions & 0 deletions docs/api/protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.protocol

::: isimip_utils.protocol
3 changes: 3 additions & 0 deletions docs/api/utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.utils

::: isimip_utils.utils
3 changes: 3 additions & 0 deletions docs/api/xarray.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# isimip_utils.xarray

::: isimip_utils.xarray
2 changes: 2 additions & 0 deletions docs/examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Examples
========
Loading
Loading