cog2tiles


Namecog2tiles JSON
Version 0.0.4 PyPI version JSON
download
home_pageNone
SummaryCOG to web map tiles converter with concurrent processing
upload_time2025-08-19 11:20:43
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords cog geospatial gis mapping raster tiles
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cog2tiles

 Cloud Optimized GeoTIFF (COG) to web map tiles converter built with modern Python.

## Installation

### Using uv (recommended)

```bash
git clone https://github.com/kshitijrajsharma/cog2tiles.git
cd cog2tiles
uv sync
```

### Using pip

```bash
pip install cog2tiles
```

## Usage

### Command Line Interface

Basic usage:
```bash
cog2tiles input.tif -z 19
```

Advanced usage:
```bash
cog2tiles input.tif -z 19 --tile-size 512 --extension png --output-dir tiles/ --workers 64
```

### Options

- `input_cog`: Path to input COG file
- `-z, --zoom`: Target zoom level (0-22)
- `-o, --output-dir`: Output directory (default: tiles)
- `--tile-size`: Tile size in pixels, 256 or 512 (default: 256)
- `--prefix`: Filename prefix for tiles (default: tile)
- `--extension`: Output format - png, jpg, webp (default: png)
- `--workers`: Maximum concurrent workers (default: auto-detected)
- `--log-level`: Logging level - DEBUG, INFO, WARNING, ERROR (default: INFO)

### Python API

```python
import asyncio
from cog2tiles import COGTiler

async def main():
    tiler = COGTiler(
        tile_size=512,
        max_workers=32,
        extension="webp"
    )
    
    await tiler.convert_to_tiles("input.tif", "output/", zoom=19)

asyncio.run(main())
```

## Requirements

- Python 3.11 or higher
- GDAL/rasterio for geospatial operations
- Numba for accelerated processing
- UV for dependency management
- uvloop for the fast asyncio loops (optional)

## Development

### Setup Development Environment

```bash
git clone https://github.com/kshitijrajsharma/cog2tiles.git
cd cog2tiles
uv sync --dev
```

### Running Tests

```bash
uv run pytest
```

### Code Formatting

```bash
uv run black src/
uv run isort src/
```

## Supported Input Formats

- Cloud Optimized GeoTIFF (COG)
- Any rasterio-supported format with proper georeferencing

## Output Formats

- PNG (lossless, supports transparency)
- JPEG (lossy, smaller file sizes)
- WebP (modern format, good compression)

## License

MIT License - see LICENSE file for details.

## Author

Kshitij Raj Sharma (2025)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cog2tiles",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "cog, geospatial, gis, mapping, raster, tiles",
    "author": null,
    "author_email": "Kshitij Raj Sharma <krschap@duck.com>",
    "download_url": "https://files.pythonhosted.org/packages/50/9c/3365670df62aac87eadbc6492f477fc84035a14740ce98c61ea99cf24064/cog2tiles-0.0.4.tar.gz",
    "platform": null,
    "description": "# cog2tiles\n\n Cloud Optimized GeoTIFF (COG) to web map tiles converter built with modern Python.\n\n## Installation\n\n### Using uv (recommended)\n\n```bash\ngit clone https://github.com/kshitijrajsharma/cog2tiles.git\ncd cog2tiles\nuv sync\n```\n\n### Using pip\n\n```bash\npip install cog2tiles\n```\n\n## Usage\n\n### Command Line Interface\n\nBasic usage:\n```bash\ncog2tiles input.tif -z 19\n```\n\nAdvanced usage:\n```bash\ncog2tiles input.tif -z 19 --tile-size 512 --extension png --output-dir tiles/ --workers 64\n```\n\n### Options\n\n- `input_cog`: Path to input COG file\n- `-z, --zoom`: Target zoom level (0-22)\n- `-o, --output-dir`: Output directory (default: tiles)\n- `--tile-size`: Tile size in pixels, 256 or 512 (default: 256)\n- `--prefix`: Filename prefix for tiles (default: tile)\n- `--extension`: Output format - png, jpg, webp (default: png)\n- `--workers`: Maximum concurrent workers (default: auto-detected)\n- `--log-level`: Logging level - DEBUG, INFO, WARNING, ERROR (default: INFO)\n\n### Python API\n\n```python\nimport asyncio\nfrom cog2tiles import COGTiler\n\nasync def main():\n    tiler = COGTiler(\n        tile_size=512,\n        max_workers=32,\n        extension=\"webp\"\n    )\n    \n    await tiler.convert_to_tiles(\"input.tif\", \"output/\", zoom=19)\n\nasyncio.run(main())\n```\n\n## Requirements\n\n- Python 3.11 or higher\n- GDAL/rasterio for geospatial operations\n- Numba for accelerated processing\n- UV for dependency management\n- uvloop for the fast asyncio loops (optional)\n\n## Development\n\n### Setup Development Environment\n\n```bash\ngit clone https://github.com/kshitijrajsharma/cog2tiles.git\ncd cog2tiles\nuv sync --dev\n```\n\n### Running Tests\n\n```bash\nuv run pytest\n```\n\n### Code Formatting\n\n```bash\nuv run black src/\nuv run isort src/\n```\n\n## Supported Input Formats\n\n- Cloud Optimized GeoTIFF (COG)\n- Any rasterio-supported format with proper georeferencing\n\n## Output Formats\n\n- PNG (lossless, supports transparency)\n- JPEG (lossy, smaller file sizes)\n- WebP (modern format, good compression)\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Author\n\nKshitij Raj Sharma (2025)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "COG to web map tiles converter with concurrent processing",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/kshitijrajsharma/cog2tiles",
        "Issues": "https://github.com/kshitijrajsharma/cog2tiles/issues",
        "Repository": "https://github.com/kshitijrajsharma/cog2tiles"
    },
    "split_keywords": [
        "cog",
        " geospatial",
        " gis",
        " mapping",
        " raster",
        " tiles"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c06086a44701a489f45072e4b70845d5833a32c8058e1574d6610c7b51cca2f6",
                "md5": "f0447a7eb11b87b1c4b0c60512a4de3e",
                "sha256": "d35591babc59b55165c94469d94d685a0c09c8e26a9306d67d8e2bd10f7993bd"
            },
            "downloads": -1,
            "filename": "cog2tiles-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f0447a7eb11b87b1c4b0c60512a4de3e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 10254,
            "upload_time": "2025-08-19T11:20:42",
            "upload_time_iso_8601": "2025-08-19T11:20:42.868677Z",
            "url": "https://files.pythonhosted.org/packages/c0/60/86a44701a489f45072e4b70845d5833a32c8058e1574d6610c7b51cca2f6/cog2tiles-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "509c3365670df62aac87eadbc6492f477fc84035a14740ce98c61ea99cf24064",
                "md5": "8068a4c41cd7f6ac10730969cb22e27e",
                "sha256": "60f368ab24451121e073bb3f0218025275e996cb08db0444811708373a1ddd75"
            },
            "downloads": -1,
            "filename": "cog2tiles-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "8068a4c41cd7f6ac10730969cb22e27e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 69589,
            "upload_time": "2025-08-19T11:20:43",
            "upload_time_iso_8601": "2025-08-19T11:20:43.999424Z",
            "url": "https://files.pythonhosted.org/packages/50/9c/3365670df62aac87eadbc6492f477fc84035a14740ce98c61ea99cf24064/cog2tiles-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-19 11:20:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kshitijrajsharma",
    "github_project": "cog2tiles",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cog2tiles"
}
        
Elapsed time: 0.63634s