# NetCDF Animation Creator
Create beautiful animations from NetCDF files with support for both single files and multiple files without concatenation. **75-87% faster** than traditional concatenation methods.
## ๐ Quick Start
### Installation
```bash
pip install -e .
```
### Basic Usage
```bash
# Interactive mode (recommended)
anc
# Single file
anc your_file.nc
# or
anc your_file.nc --variable InstantaneousRainRate --type efficient --fps 15
# Multiple files
anc *.nc
# or
anc F4C_00.2.SEG01.OUT.*.nc --variable InstantaneousRainRate --type efficient --fps 15
# Configuration (optional)
anc config
# or
anc config *.nc --output my_config.json
# or
anc "*.nc" --config my_config.json
```
## โ
Key Features
- **Multi-File Support**: Process multiple NetCDF files directly (no concatenation needed)
- **Smart Dimension Handling**: Auto-detects animation dimension (time, level, etc.)
- **Three Animation Types**: `efficient` (fast), `contour` (detailed), `heatmap` (simple)
- **Configuration Management**: Interactive setup and JSON-based configuration
- **Zoom Functionality**: Crop domain by specified zoom factor
## ๐ง Command Line Options
| Option | Description | Default |
| ------------ | -------------------------------------------- | -------------- |
| `--variable` | Variable name to animate | Required |
| `--type` | Plot type: `efficient`, `contour`, `heatmap` | `efficient` |
| `--fps` | Frames per second | `10` |
| `--output` | Output filename | Auto-generated |
| `--config` | Load configuration from JSON file | None |
| `--zoom` | Zoom factor for cropping domain | 1.0 |
## ๐งช Testing
```bash
# Validate setup
anc validate
# Run tests
anc test --full
```
## ๐ Deployment
This project uses automated deployment to PyPI via GitHub Actions. To release a new version:
### Automatic Deployment
1. **Create a new version tag:**
```bash
python scripts/release.py patch # for bug fixes
python scripts/release.py minor # for new features
python scripts/release.py major # for breaking changes
```
2. **Manual tag creation (alternative):**
```bash
# Update version in pyproject.toml
git add pyproject.toml
git commit -m "Bump version to X.Y.Z"
git tag vX.Y.Z
git push origin main
git push origin vX.Y.Z
```
### Setup Requirements
1. **PyPI API Token:** Create a PyPI API token at https://pypi.org/manage/account/token/
2. **GitHub Secrets:** Add your PyPI token as a GitHub secret named `PYPI_API_TOKEN`
- Go to your GitHub repository โ Settings โ Secrets and variables โ Actions
- Add new repository secret with name `PYPI_API_TOKEN` and your token as the value
The GitHub Actions workflow will automatically:
- Build the package when you push a version tag (e.g., `v1.0.3`)
- Run tests on every push to main/develop branches
- Publish to PyPI when tests pass
Raw data
{
"_id": null,
"home_page": "https://github.com/floriancochard/animate-netcdf",
"name": "animate-netcdf",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Florian Cochard <florian@ponoto.studio>",
"keywords": "netcdf, animation, visualization, climate, weather, oceanography",
"author": "Florian Cochard",
"author_email": "Florian Cochard <florian@ponoto.studio>",
"download_url": "https://files.pythonhosted.org/packages/d9/74/99f48a88bc4e58333edde8aad99ae50e43960ec6910465ccd5da0ab8da2b/animate_netcdf-1.6.1.tar.gz",
"platform": null,
"description": "# NetCDF Animation Creator\n\nCreate beautiful animations from NetCDF files with support for both single files and multiple files without concatenation. **75-87% faster** than traditional concatenation methods.\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install -e .\n```\n\n### Basic Usage\n\n```bash\n# Interactive mode (recommended)\nanc\n\n# Single file\nanc your_file.nc\n# or\nanc your_file.nc --variable InstantaneousRainRate --type efficient --fps 15\n\n\n# Multiple files\nanc *.nc\n# or\nanc F4C_00.2.SEG01.OUT.*.nc --variable InstantaneousRainRate --type efficient --fps 15\n\n# Configuration (optional)\nanc config\n# or\nanc config *.nc --output my_config.json\n# or\nanc \"*.nc\" --config my_config.json\n\n```\n\n## \u2705 Key Features\n\n- **Multi-File Support**: Process multiple NetCDF files directly (no concatenation needed)\n- **Smart Dimension Handling**: Auto-detects animation dimension (time, level, etc.)\n- **Three Animation Types**: `efficient` (fast), `contour` (detailed), `heatmap` (simple)\n- **Configuration Management**: Interactive setup and JSON-based configuration\n- **Zoom Functionality**: Crop domain by specified zoom factor\n\n## \ud83d\udd27 Command Line Options\n\n| Option | Description | Default |\n| ------------ | -------------------------------------------- | -------------- |\n| `--variable` | Variable name to animate | Required |\n| `--type` | Plot type: `efficient`, `contour`, `heatmap` | `efficient` |\n| `--fps` | Frames per second | `10` |\n| `--output` | Output filename | Auto-generated |\n| `--config` | Load configuration from JSON file | None |\n| `--zoom` | Zoom factor for cropping domain | 1.0 |\n\n## \ud83e\uddea Testing\n\n```bash\n# Validate setup\nanc validate\n\n# Run tests\nanc test --full\n```\n\n## \ud83d\ude80 Deployment\n\nThis project uses automated deployment to PyPI via GitHub Actions. To release a new version:\n\n### Automatic Deployment\n\n1. **Create a new version tag:**\n\n ```bash\n python scripts/release.py patch # for bug fixes\n python scripts/release.py minor # for new features\n python scripts/release.py major # for breaking changes\n ```\n\n2. **Manual tag creation (alternative):**\n ```bash\n # Update version in pyproject.toml\n git add pyproject.toml\n git commit -m \"Bump version to X.Y.Z\"\n git tag vX.Y.Z\n git push origin main\n git push origin vX.Y.Z\n ```\n\n### Setup Requirements\n\n1. **PyPI API Token:** Create a PyPI API token at https://pypi.org/manage/account/token/\n2. **GitHub Secrets:** Add your PyPI token as a GitHub secret named `PYPI_API_TOKEN`\n - Go to your GitHub repository \u2192 Settings \u2192 Secrets and variables \u2192 Actions\n - Add new repository secret with name `PYPI_API_TOKEN` and your token as the value\n\nThe GitHub Actions workflow will automatically:\n\n- Build the package when you push a version tag (e.g., `v1.0.3`)\n- Run tests on every push to main/develop branches\n- Publish to PyPI when tests pass\n",
"bugtrack_url": null,
"license": null,
"summary": "A comprehensive tool for creating animations from NetCDF data files",
"version": "1.6.1",
"project_urls": {
"Documentation": "https://github.com/floriancochard/animate-netcdf#readme",
"Homepage": "https://github.com/floriancochard/animate-netcdf",
"Issues": "https://github.com/floriancochard/animate-netcdf/issues",
"Repository": "https://github.com/floriancochard/animate-netcdf"
},
"split_keywords": [
"netcdf",
" animation",
" visualization",
" climate",
" weather",
" oceanography"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "16caea66b41345252cbda8b0289fe8983f5d5d54e9be529d57f3b125f944e49d",
"md5": "89248f54fec4873f874c139442d09a73",
"sha256": "cb33a228c8e07072b46c3542f22418fab5f0e6b2342deb78315ad15bc8b48ea2"
},
"downloads": -1,
"filename": "animate_netcdf-1.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "89248f54fec4873f874c139442d09a73",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 48405,
"upload_time": "2025-07-31T21:14:04",
"upload_time_iso_8601": "2025-07-31T21:14:04.669030Z",
"url": "https://files.pythonhosted.org/packages/16/ca/ea66b41345252cbda8b0289fe8983f5d5d54e9be529d57f3b125f944e49d/animate_netcdf-1.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d97499f48a88bc4e58333edde8aad99ae50e43960ec6910465ccd5da0ab8da2b",
"md5": "d75a8cb76f95278a5251170d4c30e14e",
"sha256": "9d639bb3f3ae95ffaea0b946e29b6529a5c55290792cb0ee2bb5e520e5b40a7c"
},
"downloads": -1,
"filename": "animate_netcdf-1.6.1.tar.gz",
"has_sig": false,
"md5_digest": "d75a8cb76f95278a5251170d4c30e14e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 65213,
"upload_time": "2025-07-31T21:14:05",
"upload_time_iso_8601": "2025-07-31T21:14:05.965927Z",
"url": "https://files.pythonhosted.org/packages/d9/74/99f48a88bc4e58333edde8aad99ae50e43960ec6910465ccd5da0ab8da2b/animate_netcdf-1.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 21:14:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "floriancochard",
"github_project": "animate-netcdf",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "xarray",
"specs": [
[
">=",
"2023.1.0"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.21.0"
]
]
},
{
"name": "matplotlib",
"specs": [
[
">=",
"3.5.0"
]
]
},
{
"name": "cartopy",
"specs": [
[
">=",
"0.20.0"
]
]
},
{
"name": "psutil",
"specs": [
[
">=",
"5.8.0"
]
]
},
{
"name": "netCDF4",
"specs": [
[
">=",
"1.6.0"
]
]
}
],
"lcname": "animate-netcdf"
}