climalab


Nameclimalab JSON
Version 4.6.3 PyPI version JSON
download
home_pageNone
SummaryA Python toolkit for climate data processing and analysis
upload_time2025-07-17 11:20:54
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2024 climalab Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords climate meteorology atmospheric science data analysis climate data
VCS
bugtrack_url
requirements numpy pandas xarray netcdf4 matplotlib cartopy cdsapi cfgrib filewise pygenutils paramlib
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # climalab

[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![PyPI Version](https://img.shields.io/pypi/v/climalab.svg)](https://pypi.org/project/climalab/)

**climalab** is a Python toolkit designed to facilitate climate data analysis and manipulation, including tools for data extraction, processing, and visualisation. It leverages external tools and standards like CDO (Climate Data Operators), NCO (NetCDF operators), and CDS (Copernicus Climate Data Store) to streamline workflows for climate-related research.

## Features

- **Meteorological Tools**:
  - Comprehensive handling of meteorological variables and data
  - Unit conversions (temperature, wind speed, angles)
  - Wind direction calculations using meteorological criteria
  - Dewpoint temperature and relative humidity calculations using Magnus' formula
  - Weather software input file generation (EnergyPlus EPW format)

- **NetCDF Tools**:
  - Advanced CDO operations for netCDF file manipulation (merge, remap, statistical operations)
  - NCO tools for efficient data processing and variable modifications
  - Faulty file detection and reporting
  - Basic information extraction from netCDF files (lat/lon bounds, time information)
  - Time coordinate manipulation and correction tools

- **Supplementary Analysis Tools**:
  - Visualisation tools for maps and basic plots
  - Bias correction methods (parametric and non-parametric quantile mapping)
  - Statistical analysis and evaluation tools
  - Auxiliary functions for data processing and plotting

- **Data Analysis Project Templates**:
  - Sample project structure with configuration-based approach
  - Automated data download scripts for CORDEX, E-OBS, ERA5, and ERA5-Land datasets
  - YAML configuration files for different climate datasets
  - Standardised directory organisation for climate data projects

## Installation

### Prerequisites

Before installing, please ensure the following dependencies are available on your system:

- **External Tools** (required for full functionality):
  - CDO (Climate Data Operators) - for netCDF processing
  - NCO (NetCDF Operators) - for netCDF manipulation

### For regular users (from PyPI)

```bash
pip install climalab
```

**Note:** PyPI installation includes all core dependencies automatically. The interdependent packages (`filewise`, `pygenutils`, `paramlib`) are available as separate packages on PyPI.

### For contributors/developers (with interdependent packages)

If you're planning to contribute to the project or work with the source code, follow these setup instructions:

#### Quick Setup (Recommended)

```bash
# Clone the repository
git clone https://github.com/EusDancerDev/climalab.git
cd climalab

# Install all dependencies including Git packages
pip install -r requirements.txt

# Install in editable mode
pip install -e .
```

**Note**: The `-e` flag installs the package in "editable" mode, meaning changes to the source code are immediately reflected without reinstalling.

This will install all dependencies, including the required `filewise`, `pygenutils`, and `paramlib` packages directly from their GitHub repositories.

#### Manual Setup (Alternative)

If you prefer to set up dependencies manually:

```bash
# Clone the repository
git clone https://github.com/EusDancerDev/climalab.git
cd climalab

# Install with development dependencies (includes latest Git versions)
pip install -e .[dev]

# Alternative: Use requirements-dev.txt for explicit Git dependencies
pip install -r requirements-dev.txt
pip install -e .
```

This approach gives you the latest development versions of all interdependent packages for testing and development.

### Troubleshooting

If you encounter import errors after cloning:

1. **For regular users**: Run `pip install climalab` (all dependencies included)
2. **For developers**: Run `pip install -e .[dev]` to include development dependencies
3. **Verify Python environment**: Make sure you're using a compatible Python version (3.10+)

### Verify Installation

To verify that your installation is working correctly, you can run this quick test:

```python
# Test script to verify installation
try:
    import climalab
    from filewise.general.introspection_utils import get_type_str
    from pygenutils.strings.text_formatters import format_string
    from paramlib.global_parameters import BASIC_ARITHMETIC_OPERATORS
    
    print("✅ All imports successful!")
    print(f"✅ climalab version: {climalab.__version__}")
    print("✅ Installation is working correctly.")
    
except ImportError as e:
    print(f"❌ Import error: {e}")
    print("💡 For regular users: pip install climalab")
    print("💡 For developers: pip install -e .[dev]")
```

### Implementation Notes

This project implements a **dual-approach dependency management** system:

- **Production Dependencies**: Version-constrained dependencies for PyPI compatibility
- **Development Dependencies**: Git-based dependencies for latest development versions
- **Installation Methods**:
  - **Regular users**: Simple `pip install climalab` with all dependencies included
  - **Developers**: `pip install -e .[dev]` for latest Git versions and development tools
- **PyPI Compatibility**: All packages can be published without Git dependency issues
- **Development Flexibility**: Contributors get access to latest versions for testing and development

## Usage

### Basic Example - Meteorological Variables

```python
from climalab.meteorological import variables
import numpy as np

# Convert temperature from Kelvin to Celsius using angle converter for degrees
temp_kelvin = np.array([273.15, 283.15, 293.15])
# Convert wind speeds
wind_mps = 10.0
wind_kph = variables.ws_unit_converter(wind_mps, "mps_to_kph")
print(f"Wind speed: {wind_mps} m/s = {wind_kph} km/h")

# Calculate dewpoint temperature
temperature = np.array([20, 25, 30])  # °C
relative_humidity = np.array([60, 70, 80])  # %
dewpoint = variables.dewpoint_temperature(temperature, relative_humidity)
print(f"Dewpoint temperatures: {dewpoint}")
```

### Advanced Example - NetCDF Processing

```python
from climalab.netcdf_tools import cdo_tools
from climalab.netcdf_tools.detect_faulty import scan_ncfiles

# Merge multiple NetCDF files with time steps
file_list = ['temp_2000.nc', 'temp_2001.nc', 'temp_2002.nc']
cdo_tools.cdo_mergetime(
    file_list=file_list,
    variable='temperature',
    freq='daily',
    model='ERA5',
    experiment='reanalysis',
    calc_proc='mergetime',
    period='2000-2002',
    region='global',
    ext='nc'
)

# Select specific years from a dataset
cdo_tools.cdo_selyear(
    file_list=['climate_data_full.nc'],
    selyear_str='2000/2010',
    freq='monthly',
    model='CORDEX',
    experiment='historical',
    calc_proc='subset',
    region='europe',
    ext='nc'
)

# Detect faulty NetCDF files
scan_ncfiles('/path/to/netcdf/files')
```

### Bias Correction Example

```python
from climalab.supplementary_tools import auxiliary_functions
import numpy as np

# Generate sample data
obs_data = np.random.normal(25, 3, 1000)  # observed temperature data
sim_data = np.random.normal(27, 4, 1000)  # simulated temperature data

# Apply bias correction using delta method
obs_mean = np.mean(obs_data)
sim_mean = np.mean(sim_data)
corrected_data = auxiliary_functions.ba_mean(sim_data, sim_mean, obs_mean)

# Apply quantile mapping
corrected_qm = auxiliary_functions.ba_nonparametric_qm(
    sim_data, sim_data, obs_data
)
```

### Data Download Example

```python
# The data_analysis_projects_sample provides ready-to-use scripts
# for downloading climate data with configuration files:

# 1. Configure your dataset in the YAML files (config/)
# 2. Run the download scripts:
from climalab.data_analysis_projects_sample.src.data import download_era5
# download_era5.main()  # Downloads ERA5 data based on configuration
```

## Project Structure

The package is organised into several sub-packages:

```text
climalab/
├── meteorological/
│   ├── variables.py           # Unit conversions, meteorological calculations
│   └── weather_software.py    # EnergyPlus weather file generation
├── netcdf_tools/
│   ├── cdo_tools.py          # CDO operations and wrappers
│   ├── nco_tools.py          # NCO operations and wrappers
│   ├── detect_faulty.py      # NetCDF file integrity checking
│   └── extract_basics.py     # Basic information extraction
├── supplementary_tools/
│   ├── auxiliary_functions.py    # Bias correction and utility functions
│   ├── ba_*.py                   # Individual bias correction methods
│   ├── basic_*.py                # Basic plotting functions
│   ├── comparison_lineplot.py    # Comparison plotting tools
│   ├── temperature_map.py        # Temperature mapping tools
│   └── eval_original.py          # Evaluation and statistics
└── data_analysis_projects_sample/
    ├── config/                   # YAML configuration files
    │   ├── cordex_config.yaml
    │   ├── eobs_config.yaml
    │   ├── era5_config.yaml
    │   └── era5_land_config.yaml
    ├── src/data/                 # Data download scripts
    │   ├── cds_tools.py
    │   ├── download_cordex.py
    │   ├── download_eobs.py
    │   ├── download_era5.py
    │   └── download_era5_land.py
    └── data/                     # Data storage directories
        ├── raw/
        └── processed/
```

## Key Functions

### Meteorological Tools

- `angle_converter()` - Convert between degrees and radians
- `ws_unit_converter()` - Convert wind speeds between m/s and km/h
- `dewpoint_temperature()` - Calculate dewpoint using Magnus' formula
- `relative_humidity()` - Calculate relative humidity from temperature and dewpoint
- `meteorological_wind_direction()` - Calculate wind direction from u/v components

### NetCDF Tools (CDO)

- `cdo_mergetime()` - Merge files with different time steps
- `cdo_selyear()` - Select specific years from datasets
- `cdo_sellonlatbox()` - Extract geographical regions
- `cdo_remap()` - Remap data to different grids
- `cdo_periodic_statistics()` - Calculate temporal statistics

### NetCDF Tools (NCO)

- `modify_variable_units_and_values()` - Modify variable values and units
- `modify_coordinate_values_by_threshold()` - Conditional coordinate modifications
- `modify_coordinate_all_values()` - Apply operations to all coordinate values

### Bias Correction

- `ba_mean()` - Delta (mean bias) correction
- `ba_mean_and_var()` - Mean and variance correction  
- `ba_nonparametric_qm()` - Non-parametric quantile mapping
- `ba_parametric_qm()` - Parametric quantile mapping

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Climate Data Operators (CDO) team
- Copernicus Climate Data Store (CDS)
- NetCDF Operators (NCO) team
- Potsdam Institute for Climate Impact Research (sample bias correction methods)

## Contact

For any questions or suggestions, please open an issue on GitHub or contact the maintainers.

## Version

Current version: 4.5.1

For detailed changelog, see [CHANGELOG.md](CHANGELOG.md).
For versioning information, see [VERSIONING.md](VERSIONING.md).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "climalab",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "climate, meteorology, atmospheric science, data analysis, climate data",
    "author": null,
    "author_email": "Jon Ander Gabantxo <jagabantxo@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/de/55/24464b8b8941c2b060936fd356544f4113f9dd9c847d5d9c5b2ea5b026e8/climalab-4.6.3.tar.gz",
    "platform": null,
    "description": "# climalab\n\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![PyPI Version](https://img.shields.io/pypi/v/climalab.svg)](https://pypi.org/project/climalab/)\n\n**climalab** is a Python toolkit designed to facilitate climate data analysis and manipulation, including tools for data extraction, processing, and visualisation. It leverages external tools and standards like CDO (Climate Data Operators), NCO (NetCDF operators), and CDS (Copernicus Climate Data Store) to streamline workflows for climate-related research.\n\n## Features\n\n- **Meteorological Tools**:\n  - Comprehensive handling of meteorological variables and data\n  - Unit conversions (temperature, wind speed, angles)\n  - Wind direction calculations using meteorological criteria\n  - Dewpoint temperature and relative humidity calculations using Magnus' formula\n  - Weather software input file generation (EnergyPlus EPW format)\n\n- **NetCDF Tools**:\n  - Advanced CDO operations for netCDF file manipulation (merge, remap, statistical operations)\n  - NCO tools for efficient data processing and variable modifications\n  - Faulty file detection and reporting\n  - Basic information extraction from netCDF files (lat/lon bounds, time information)\n  - Time coordinate manipulation and correction tools\n\n- **Supplementary Analysis Tools**:\n  - Visualisation tools for maps and basic plots\n  - Bias correction methods (parametric and non-parametric quantile mapping)\n  - Statistical analysis and evaluation tools\n  - Auxiliary functions for data processing and plotting\n\n- **Data Analysis Project Templates**:\n  - Sample project structure with configuration-based approach\n  - Automated data download scripts for CORDEX, E-OBS, ERA5, and ERA5-Land datasets\n  - YAML configuration files for different climate datasets\n  - Standardised directory organisation for climate data projects\n\n## Installation\n\n### Prerequisites\n\nBefore installing, please ensure the following dependencies are available on your system:\n\n- **External Tools** (required for full functionality):\n  - CDO (Climate Data Operators) - for netCDF processing\n  - NCO (NetCDF Operators) - for netCDF manipulation\n\n### For regular users (from PyPI)\n\n```bash\npip install climalab\n```\n\n**Note:** PyPI installation includes all core dependencies automatically. The interdependent packages (`filewise`, `pygenutils`, `paramlib`) are available as separate packages on PyPI.\n\n### For contributors/developers (with interdependent packages)\n\nIf you're planning to contribute to the project or work with the source code, follow these setup instructions:\n\n#### Quick Setup (Recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/EusDancerDev/climalab.git\ncd climalab\n\n# Install all dependencies including Git packages\npip install -r requirements.txt\n\n# Install in editable mode\npip install -e .\n```\n\n**Note**: The `-e` flag installs the package in \"editable\" mode, meaning changes to the source code are immediately reflected without reinstalling.\n\nThis will install all dependencies, including the required `filewise`, `pygenutils`, and `paramlib` packages directly from their GitHub repositories.\n\n#### Manual Setup (Alternative)\n\nIf you prefer to set up dependencies manually:\n\n```bash\n# Clone the repository\ngit clone https://github.com/EusDancerDev/climalab.git\ncd climalab\n\n# Install with development dependencies (includes latest Git versions)\npip install -e .[dev]\n\n# Alternative: Use requirements-dev.txt for explicit Git dependencies\npip install -r requirements-dev.txt\npip install -e .\n```\n\nThis approach gives you the latest development versions of all interdependent packages for testing and development.\n\n### Troubleshooting\n\nIf you encounter import errors after cloning:\n\n1. **For regular users**: Run `pip install climalab` (all dependencies included)\n2. **For developers**: Run `pip install -e .[dev]` to include development dependencies\n3. **Verify Python environment**: Make sure you're using a compatible Python version (3.10+)\n\n### Verify Installation\n\nTo verify that your installation is working correctly, you can run this quick test:\n\n```python\n# Test script to verify installation\ntry:\n    import climalab\n    from filewise.general.introspection_utils import get_type_str\n    from pygenutils.strings.text_formatters import format_string\n    from paramlib.global_parameters import BASIC_ARITHMETIC_OPERATORS\n    \n    print(\"\u2705 All imports successful!\")\n    print(f\"\u2705 climalab version: {climalab.__version__}\")\n    print(\"\u2705 Installation is working correctly.\")\n    \nexcept ImportError as e:\n    print(f\"\u274c Import error: {e}\")\n    print(\"\ud83d\udca1 For regular users: pip install climalab\")\n    print(\"\ud83d\udca1 For developers: pip install -e .[dev]\")\n```\n\n### Implementation Notes\n\nThis project implements a **dual-approach dependency management** system:\n\n- **Production Dependencies**: Version-constrained dependencies for PyPI compatibility\n- **Development Dependencies**: Git-based dependencies for latest development versions\n- **Installation Methods**:\n  - **Regular users**: Simple `pip install climalab` with all dependencies included\n  - **Developers**: `pip install -e .[dev]` for latest Git versions and development tools\n- **PyPI Compatibility**: All packages can be published without Git dependency issues\n- **Development Flexibility**: Contributors get access to latest versions for testing and development\n\n## Usage\n\n### Basic Example - Meteorological Variables\n\n```python\nfrom climalab.meteorological import variables\nimport numpy as np\n\n# Convert temperature from Kelvin to Celsius using angle converter for degrees\ntemp_kelvin = np.array([273.15, 283.15, 293.15])\n# Convert wind speeds\nwind_mps = 10.0\nwind_kph = variables.ws_unit_converter(wind_mps, \"mps_to_kph\")\nprint(f\"Wind speed: {wind_mps} m/s = {wind_kph} km/h\")\n\n# Calculate dewpoint temperature\ntemperature = np.array([20, 25, 30])  # \u00b0C\nrelative_humidity = np.array([60, 70, 80])  # %\ndewpoint = variables.dewpoint_temperature(temperature, relative_humidity)\nprint(f\"Dewpoint temperatures: {dewpoint}\")\n```\n\n### Advanced Example - NetCDF Processing\n\n```python\nfrom climalab.netcdf_tools import cdo_tools\nfrom climalab.netcdf_tools.detect_faulty import scan_ncfiles\n\n# Merge multiple NetCDF files with time steps\nfile_list = ['temp_2000.nc', 'temp_2001.nc', 'temp_2002.nc']\ncdo_tools.cdo_mergetime(\n    file_list=file_list,\n    variable='temperature',\n    freq='daily',\n    model='ERA5',\n    experiment='reanalysis',\n    calc_proc='mergetime',\n    period='2000-2002',\n    region='global',\n    ext='nc'\n)\n\n# Select specific years from a dataset\ncdo_tools.cdo_selyear(\n    file_list=['climate_data_full.nc'],\n    selyear_str='2000/2010',\n    freq='monthly',\n    model='CORDEX',\n    experiment='historical',\n    calc_proc='subset',\n    region='europe',\n    ext='nc'\n)\n\n# Detect faulty NetCDF files\nscan_ncfiles('/path/to/netcdf/files')\n```\n\n### Bias Correction Example\n\n```python\nfrom climalab.supplementary_tools import auxiliary_functions\nimport numpy as np\n\n# Generate sample data\nobs_data = np.random.normal(25, 3, 1000)  # observed temperature data\nsim_data = np.random.normal(27, 4, 1000)  # simulated temperature data\n\n# Apply bias correction using delta method\nobs_mean = np.mean(obs_data)\nsim_mean = np.mean(sim_data)\ncorrected_data = auxiliary_functions.ba_mean(sim_data, sim_mean, obs_mean)\n\n# Apply quantile mapping\ncorrected_qm = auxiliary_functions.ba_nonparametric_qm(\n    sim_data, sim_data, obs_data\n)\n```\n\n### Data Download Example\n\n```python\n# The data_analysis_projects_sample provides ready-to-use scripts\n# for downloading climate data with configuration files:\n\n# 1. Configure your dataset in the YAML files (config/)\n# 2. Run the download scripts:\nfrom climalab.data_analysis_projects_sample.src.data import download_era5\n# download_era5.main()  # Downloads ERA5 data based on configuration\n```\n\n## Project Structure\n\nThe package is organised into several sub-packages:\n\n```text\nclimalab/\n\u251c\u2500\u2500 meteorological/\n\u2502   \u251c\u2500\u2500 variables.py           # Unit conversions, meteorological calculations\n\u2502   \u2514\u2500\u2500 weather_software.py    # EnergyPlus weather file generation\n\u251c\u2500\u2500 netcdf_tools/\n\u2502   \u251c\u2500\u2500 cdo_tools.py          # CDO operations and wrappers\n\u2502   \u251c\u2500\u2500 nco_tools.py          # NCO operations and wrappers\n\u2502   \u251c\u2500\u2500 detect_faulty.py      # NetCDF file integrity checking\n\u2502   \u2514\u2500\u2500 extract_basics.py     # Basic information extraction\n\u251c\u2500\u2500 supplementary_tools/\n\u2502   \u251c\u2500\u2500 auxiliary_functions.py    # Bias correction and utility functions\n\u2502   \u251c\u2500\u2500 ba_*.py                   # Individual bias correction methods\n\u2502   \u251c\u2500\u2500 basic_*.py                # Basic plotting functions\n\u2502   \u251c\u2500\u2500 comparison_lineplot.py    # Comparison plotting tools\n\u2502   \u251c\u2500\u2500 temperature_map.py        # Temperature mapping tools\n\u2502   \u2514\u2500\u2500 eval_original.py          # Evaluation and statistics\n\u2514\u2500\u2500 data_analysis_projects_sample/\n    \u251c\u2500\u2500 config/                   # YAML configuration files\n    \u2502   \u251c\u2500\u2500 cordex_config.yaml\n    \u2502   \u251c\u2500\u2500 eobs_config.yaml\n    \u2502   \u251c\u2500\u2500 era5_config.yaml\n    \u2502   \u2514\u2500\u2500 era5_land_config.yaml\n    \u251c\u2500\u2500 src/data/                 # Data download scripts\n    \u2502   \u251c\u2500\u2500 cds_tools.py\n    \u2502   \u251c\u2500\u2500 download_cordex.py\n    \u2502   \u251c\u2500\u2500 download_eobs.py\n    \u2502   \u251c\u2500\u2500 download_era5.py\n    \u2502   \u2514\u2500\u2500 download_era5_land.py\n    \u2514\u2500\u2500 data/                     # Data storage directories\n        \u251c\u2500\u2500 raw/\n        \u2514\u2500\u2500 processed/\n```\n\n## Key Functions\n\n### Meteorological Tools\n\n- `angle_converter()` - Convert between degrees and radians\n- `ws_unit_converter()` - Convert wind speeds between m/s and km/h\n- `dewpoint_temperature()` - Calculate dewpoint using Magnus' formula\n- `relative_humidity()` - Calculate relative humidity from temperature and dewpoint\n- `meteorological_wind_direction()` - Calculate wind direction from u/v components\n\n### NetCDF Tools (CDO)\n\n- `cdo_mergetime()` - Merge files with different time steps\n- `cdo_selyear()` - Select specific years from datasets\n- `cdo_sellonlatbox()` - Extract geographical regions\n- `cdo_remap()` - Remap data to different grids\n- `cdo_periodic_statistics()` - Calculate temporal statistics\n\n### NetCDF Tools (NCO)\n\n- `modify_variable_units_and_values()` - Modify variable values and units\n- `modify_coordinate_values_by_threshold()` - Conditional coordinate modifications\n- `modify_coordinate_all_values()` - Apply operations to all coordinate values\n\n### Bias Correction\n\n- `ba_mean()` - Delta (mean bias) correction\n- `ba_mean_and_var()` - Mean and variance correction  \n- `ba_nonparametric_qm()` - Non-parametric quantile mapping\n- `ba_parametric_qm()` - Parametric quantile mapping\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Climate Data Operators (CDO) team\n- Copernicus Climate Data Store (CDS)\n- NetCDF Operators (NCO) team\n- Potsdam Institute for Climate Impact Research (sample bias correction methods)\n\n## Contact\n\nFor any questions or suggestions, please open an issue on GitHub or contact the maintainers.\n\n## Version\n\nCurrent version: 4.5.1\n\nFor detailed changelog, see [CHANGELOG.md](CHANGELOG.md).\nFor versioning information, see [VERSIONING.md](VERSIONING.md).\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 climalab\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE. ",
    "summary": "A Python toolkit for climate data processing and analysis",
    "version": "4.6.3",
    "project_urls": {
        "Bug Reports": "https://github.com/EusDancerDev/climalab/issues",
        "Documentation": "https://github.com/EusDancerDev/climalab#readme",
        "Homepage": "https://github.com/EusDancerDev/climalab",
        "Repository": "https://github.com/EusDancerDev/climalab.git"
    },
    "split_keywords": [
        "climate",
        " meteorology",
        " atmospheric science",
        " data analysis",
        " climate data"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8bd85cfb7d829dfa402457248a93beb13e889b61ee8e9e24e3050607e0cdc818",
                "md5": "cba52465853460f9e59c1954c003663a",
                "sha256": "e4700c46f75875ebe77b8e46144c972716147b2e18de09c431cfa4f41340c07c"
            },
            "downloads": -1,
            "filename": "climalab-4.6.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cba52465853460f9e59c1954c003663a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 36092,
            "upload_time": "2025-07-17T11:20:53",
            "upload_time_iso_8601": "2025-07-17T11:20:53.693011Z",
            "url": "https://files.pythonhosted.org/packages/8b/d8/5cfb7d829dfa402457248a93beb13e889b61ee8e9e24e3050607e0cdc818/climalab-4.6.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de5524464b8b8941c2b060936fd356544f4113f9dd9c847d5d9c5b2ea5b026e8",
                "md5": "cd696cb0346188450f581d7a8a60b32e",
                "sha256": "357b62946474601b4a0bf4f498cf908fbe258fcb7d996c89042b545e020bae6c"
            },
            "downloads": -1,
            "filename": "climalab-4.6.3.tar.gz",
            "has_sig": false,
            "md5_digest": "cd696cb0346188450f581d7a8a60b32e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 34266,
            "upload_time": "2025-07-17T11:20:54",
            "upload_time_iso_8601": "2025-07-17T11:20:54.885070Z",
            "url": "https://files.pythonhosted.org/packages/de/55/24464b8b8941c2b060936fd356544f4113f9dd9c847d5d9c5b2ea5b026e8/climalab-4.6.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 11:20:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "EusDancerDev",
    "github_project": "climalab",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.21.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "xarray",
            "specs": [
                [
                    ">=",
                    "2022.1.0"
                ]
            ]
        },
        {
            "name": "netcdf4",
            "specs": [
                [
                    ">=",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.5.0"
                ]
            ]
        },
        {
            "name": "cartopy",
            "specs": [
                [
                    ">=",
                    "0.20.0"
                ]
            ]
        },
        {
            "name": "cdsapi",
            "specs": [
                [
                    ">=",
                    "0.6.0"
                ]
            ]
        },
        {
            "name": "cfgrib",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "filewise",
            "specs": [
                [
                    ">=",
                    "3.11.0"
                ]
            ]
        },
        {
            "name": "pygenutils",
            "specs": [
                [
                    ">=",
                    "16.2.0"
                ]
            ]
        },
        {
            "name": "paramlib",
            "specs": [
                [
                    ">=",
                    "3.4.3"
                ]
            ]
        }
    ],
    "lcname": "climalab"
}
        
Elapsed time: 0.97107s