animate-netcdf


Nameanimate-netcdf JSON
Version 1.6.1 PyPI version JSON
download
home_pagehttps://github.com/floriancochard/animate-netcdf
SummaryA comprehensive tool for creating animations from NetCDF data files
upload_time2025-07-31 21:14:05
maintainerNone
docs_urlNone
authorFlorian Cochard
requires_python>=3.7
licenseNone
keywords netcdf animation visualization climate weather oceanography
VCS
bugtrack_url
requirements xarray numpy matplotlib cartopy psutil netCDF4
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.69563s