geogif


Namegeogif JSON
Version 0.3 PyPI version JSON
download
home_pagehttps://geogif.readthedocs.io/en/latest/index.html
SummaryRender xarray timestacks into GIFs
upload_time2025-01-24 18:21:52
maintainerNone
docs_urlNone
authorGabe Joseph
requires_python<4.0,>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GeoGIF
[![Documentation Status](https://readthedocs.org/projects/geogif/badge/?version=latest)](https://geogif.readthedocs.io/en/latest/?badge=latest)


Make GIFs from time-stacked `xarray.DataArray`s (`time`, [optional `band`], `y`, `x`), dead-simple.

```python
from geogif import gif, dgif
gif(data_array)
dgif(dask_data_array).compute()
```

![Animation of shoreline moving on the coast of Cape Cod](docs/capecod.gif)

The "geo" part is a lie, actually. The arrays don't have to be geospatial in nature. But I called it GeoGIF because:

1. Wanting to animate a time-stack of imagery (like you'd get from [stackstac](https://stackstac.readthedocs.io/)) is a common task in the earth-observation/geospatial world.
1. I think `GeoGIF` is a hilarious idea<sup>[1](#geotiff)</sup>.


<a name="geotiff">1</a>: To ruin the joke, it sounds like GeoTIFF, a ubiquitous geospatial image format. If you also think this is a funny idea, and believe you'd have a better use for the name than I do, I'd happily cede it to you.

## Installation

```bash
pip install geogif
```

## Documentation

See https://geogif.readthedocs.io/en/latest/.

## Development

GeoGIF is managed by [Poetry](https://python-poetry.org/), so be sure that's installed first. To develop locally, first fork or clone the repo. Then, to set up a virtual environment and install the necessary dependencies:

```bash
cd geogif
poetry install
```

### Running Tests

GeoGIF has some basic end-to-end tests, written with [Hypothesis](https://hypothesis.readthedocs.io/en/latest/index.html). To run:

```bash
pytest
```

This will take ~30 seconds (longer the first time), as Hypothesis generates fake data to root out possible errors.

### Code style

GeoGIF is formatted with [shed](https://github.com/Zac-HD/shed), in order to allow for as few opinions as possible.

            

Raw data

            {
    "_id": null,
    "home_page": "https://geogif.readthedocs.io/en/latest/index.html",
    "name": "geogif",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Gabe Joseph",
    "author_email": "gjoseph92@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a1/c1/6e1fdf9339ae7e211e2b22c9fa9c07ff1653d208de8fb329cc404d95e6d0/geogif-0.3.tar.gz",
    "platform": null,
    "description": "# GeoGIF\n[![Documentation Status](https://readthedocs.org/projects/geogif/badge/?version=latest)](https://geogif.readthedocs.io/en/latest/?badge=latest)\n\n\nMake GIFs from time-stacked `xarray.DataArray`s (`time`, [optional `band`], `y`, `x`), dead-simple.\n\n```python\nfrom geogif import gif, dgif\ngif(data_array)\ndgif(dask_data_array).compute()\n```\n\n![Animation of shoreline moving on the coast of Cape Cod](docs/capecod.gif)\n\nThe \"geo\" part is a lie, actually. The arrays don't have to be geospatial in nature. But I called it GeoGIF because:\n\n1. Wanting to animate a time-stack of imagery (like you'd get from [stackstac](https://stackstac.readthedocs.io/)) is a common task in the earth-observation/geospatial world.\n1. I think `GeoGIF` is a hilarious idea<sup>[1](#geotiff)</sup>.\n\n\n<a name=\"geotiff\">1</a>: To ruin the joke, it sounds like GeoTIFF, a ubiquitous geospatial image format. If you also think this is a funny idea, and believe you'd have a better use for the name than I do, I'd happily cede it to you.\n\n## Installation\n\n```bash\npip install geogif\n```\n\n## Documentation\n\nSee https://geogif.readthedocs.io/en/latest/.\n\n## Development\n\nGeoGIF is managed by [Poetry](https://python-poetry.org/), so be sure that's installed first. To develop locally, first fork or clone the repo. Then, to set up a virtual environment and install the necessary dependencies:\n\n```bash\ncd geogif\npoetry install\n```\n\n### Running Tests\n\nGeoGIF has some basic end-to-end tests, written with [Hypothesis](https://hypothesis.readthedocs.io/en/latest/index.html). To run:\n\n```bash\npytest\n```\n\nThis will take ~30 seconds (longer the first time), as Hypothesis generates fake data to root out possible errors.\n\n### Code style\n\nGeoGIF is formatted with [shed](https://github.com/Zac-HD/shed), in order to allow for as few opinions as possible.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Render xarray timestacks into GIFs",
    "version": "0.3",
    "project_urls": {
        "Homepage": "https://geogif.readthedocs.io/en/latest/index.html",
        "Repository": "https://github.com/gjoseph92/geogif"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1332a2d6608ae23970b3cd84fa74201a40d68bc9ab93f08c38a64ee63f4cac4f",
                "md5": "419f7e1a3fda6a8ee9629300138162f4",
                "sha256": "8af0ad05a5e87d315d2bd56390d4aecddc9eecc5a3ee062cb6b63a7b765f989d"
            },
            "downloads": -1,
            "filename": "geogif-0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "419f7e1a3fda6a8ee9629300138162f4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 8827,
            "upload_time": "2025-01-24T18:21:50",
            "upload_time_iso_8601": "2025-01-24T18:21:50.136569Z",
            "url": "https://files.pythonhosted.org/packages/13/32/a2d6608ae23970b3cd84fa74201a40d68bc9ab93f08c38a64ee63f4cac4f/geogif-0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a1c16e1fdf9339ae7e211e2b22c9fa9c07ff1653d208de8fb329cc404d95e6d0",
                "md5": "325e63b89dfde7b495b4c506d40ef96a",
                "sha256": "559ad993d8cb9d4c86347a75aae9c38ec920a273abf9b29cba14ed1264dc143d"
            },
            "downloads": -1,
            "filename": "geogif-0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "325e63b89dfde7b495b4c506d40ef96a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 8276,
            "upload_time": "2025-01-24T18:21:52",
            "upload_time_iso_8601": "2025-01-24T18:21:52.039725Z",
            "url": "https://files.pythonhosted.org/packages/a1/c1/6e1fdf9339ae7e211e2b22c9fa9c07ff1653d208de8fb329cc404d95e6d0/geogif-0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-24 18:21:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gjoseph92",
    "github_project": "geogif",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "geogif"
}
        
Elapsed time: 8.30390s