titiler.image


Nametitiler.image JSON
Version 0.1.0 PyPI version JSON
download
home_page
SummaryTiTiler extension to work with non-geo images.
upload_time2023-08-03 09:44:49
maintainer
docs_urlNone
author
requires_python>=3.8
licenseMIT
keywords titiler iiif deepzoom fastapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
    <img width="1000" src="https://github.com/developmentseed/titiler-image/assets/10407788/2f55e9b6-5063-46f9-88c3-9f7d8cf0f8da">
  <p align="center">TiTiler Image.</p>
</p>

<p align="center">
  <a href="https://github.com/developmentseed/titiler-image/actions?query=workflow%3ACI" target="_blank">
      <img src="https://github.com/developmentseed/titiler-image/workflows/CI/badge.svg" alt="Test">
  </a>
  <a href="https://codecov.io/gh/developmentseed/titiler-image" target="_blank">
      <img src="https://codecov.io/gh/developmentseed/titiler-image/branch/main/graph/badge.svg" alt="Coverage">
  </a>
  <a href="https://pypi.org/project/titiler.image" target="_blank">
      <img src="https://img.shields.io/pypi/v/titiler.image?color=%2334D058&label=pypi%20package" alt="Package version">
  </a>
  <a href="https://github.com//developmentseed/titiler-image/blob/main/LICENSE" target="_blank">
      <img src="https://img.shields.io/github/license/developmentseed/titiler-image.svg" alt="License">
  </a>
</p>

---

**Source Code**: <a href="https://github.com/developmentseed/titiler-image" target="_blank">https://github.com/developmentseed/titiler-image</a>

---

`TiTiler.image` is a [titiler](https://github.com/developmentseed/titiler) extension to work with non-geo images.

## Installation

To install from PyPI and run:

```bash
# Make sure to have pip up to date
python -m pip install -U pip

python -m pip install titiler.image
```

To install from sources and run for development:

```bash
python -m pip install -e .
```

## Launch

```bash
python -m pip install uvicorn
python -m uvicorn titiler.image.main:app --reload
```

### Using Docker

```bash
git clone https://github.com/developmentseed/titiler-image.git
cd titiler-pgstac
docker-compose up --build tiler
```

It runs `titiler.image` using Gunicorn web server. To run Uvicorn based version:

```bash
docker-compose up --build tiler-uvicorn
```

## Factories

`titiler-image` provide multiple endpoint Factories (see https://developmentseed.org/titiler/advanced/tiler_factories/)

### MetadataFactory

#### Endpoints

- `/info?url={...}`

- `/metadata?url={...}`

```python
from fastapi import FastAPI
from titiler.image.factory import MetadataFactory

app = FastAPI()
meta = MetadataFactory()
app.include_router(meta.router)
```

### IIIFFactory

Specification: https://iiif.io/api/image/3.0/

#### Endpoints

- `/{identifier}/info.json`: IIIF Image Information Request

- `/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`: IIIF Image Request

- `/{identifier}`: Redirect do the Image Information Request endpoint or return a simple IIIF viewer (based on headers `Accept` value)


```python
from fastapi import FastAPI
from titiler.image.factory import IIIFFactory

app = FastAPI()
iiif = IIIFFactory()
app.include_router(iiif.router)
```

### LocalTilerFactory

#### Endpoints

- `/tilejson.json?url={...}`: TileJSON document

- `/tiles/{z}/{x}/{y}[@{scale}x.{format}]?url={...}`: Tiles endpoint

- `/viewer?url={...}`: Simple local tiles viewer

```python
from fastapi import FastAPI
from titiler.image.factory import LocalTilerFactory

app = FastAPI()
local_tiles = LocalTilerFactory()
app.include_router(local_tiles.router)
```

### GeoTilerFactory

This is a lightweight version of `titiler.core.factory.TilerFactory`.

#### Endpoints

- `[/TileMatrixSetId]/tilejson.json?url={...}`: TileJSON document

- `/tiles[/TileMatrixSetId]/{z}/{x}/{y}[@{scale}x.{format}]?url={...}`: Tiles endpoint

- `[/{TileMatrixSetId}]/map?url={...}`: Simple dataset viewer

```python
from fastapi import FastAPI
from titiler.image.factory import GeoTilerFactory

app = FastAPI()
geo = GeoTilerFactory()
app.include_router(geo.router)
```

### All together

```python
app = FastAPI()

meta = MetadataFactory()
app.include_router(meta.router, tags=["Metadata"])

iiif = IIIFFactory(router_prefix="/iiif")
app.include_router(iiif.router, tags=["IIIF"], prefix="/iiif")

image_tiles = LocalTilerFactory(router_prefix="/image")
app.include_router(image_tiles.router, tags=["Local Tiles"], prefix="/image")

geo_tiles = GeoTilerFactory(
    reader=GCPSReader, reader_dependency=GCPSParams, router_prefix="/geo"
)
app.include_router(geo_tiles.router, tags=["Geo Tiles"], prefix="/geo")
```

![](https://github.com/developmentseed/titiler-image/assets/10407788/f51d3272-020f-4982-baf6-7467aa18ee15)


## Contribution & Development

See [CONTRIBUTING.md](https://github.com//developmentseed/titiler-image/blob/main/CONTRIBUTING.md)

## License

See [LICENSE](https://github.com//developmentseed/titiler-image/blob/main/LICENSE)

## Authors

See [contributors](https://github.com/developmentseed/titiler-image/graphs/contributors) for a listing of individual contributors.

## Changes

See [CHANGES.md](https://github.com/developmentseed/titiler-image/blob/main/CHANGES.md).


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "titiler.image",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "TiTiler,IIIF,DeepZoom,Fastapi",
    "author": "",
    "author_email": "Vincent Sarago <vincent@developmentseed.com>",
    "download_url": "https://files.pythonhosted.org/packages/a6/4d/4ed6f875ebee43cdb72f5342570a35f172e4042c3f6405aaf275831ae62e/titiler.image-0.1.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n    <img width=\"1000\" src=\"https://github.com/developmentseed/titiler-image/assets/10407788/2f55e9b6-5063-46f9-88c3-9f7d8cf0f8da\">\n  <p align=\"center\">TiTiler Image.</p>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/developmentseed/titiler-image/actions?query=workflow%3ACI\" target=\"_blank\">\n      <img src=\"https://github.com/developmentseed/titiler-image/workflows/CI/badge.svg\" alt=\"Test\">\n  </a>\n  <a href=\"https://codecov.io/gh/developmentseed/titiler-image\" target=\"_blank\">\n      <img src=\"https://codecov.io/gh/developmentseed/titiler-image/branch/main/graph/badge.svg\" alt=\"Coverage\">\n  </a>\n  <a href=\"https://pypi.org/project/titiler.image\" target=\"_blank\">\n      <img src=\"https://img.shields.io/pypi/v/titiler.image?color=%2334D058&label=pypi%20package\" alt=\"Package version\">\n  </a>\n  <a href=\"https://github.com//developmentseed/titiler-image/blob/main/LICENSE\" target=\"_blank\">\n      <img src=\"https://img.shields.io/github/license/developmentseed/titiler-image.svg\" alt=\"License\">\n  </a>\n</p>\n\n---\n\n**Source Code**: <a href=\"https://github.com/developmentseed/titiler-image\" target=\"_blank\">https://github.com/developmentseed/titiler-image</a>\n\n---\n\n`TiTiler.image` is a [titiler](https://github.com/developmentseed/titiler) extension to work with non-geo images.\n\n## Installation\n\nTo install from PyPI and run:\n\n```bash\n# Make sure to have pip up to date\npython -m pip install -U pip\n\npython -m pip install titiler.image\n```\n\nTo install from sources and run for development:\n\n```bash\npython -m pip install -e .\n```\n\n## Launch\n\n```bash\npython -m pip install uvicorn\npython -m uvicorn titiler.image.main:app --reload\n```\n\n### Using Docker\n\n```bash\ngit clone https://github.com/developmentseed/titiler-image.git\ncd titiler-pgstac\ndocker-compose up --build tiler\n```\n\nIt runs `titiler.image` using Gunicorn web server. To run Uvicorn based version:\n\n```bash\ndocker-compose up --build tiler-uvicorn\n```\n\n## Factories\n\n`titiler-image` provide multiple endpoint Factories (see https://developmentseed.org/titiler/advanced/tiler_factories/)\n\n### MetadataFactory\n\n#### Endpoints\n\n- `/info?url={...}`\n\n- `/metadata?url={...}`\n\n```python\nfrom fastapi import FastAPI\nfrom titiler.image.factory import MetadataFactory\n\napp = FastAPI()\nmeta = MetadataFactory()\napp.include_router(meta.router)\n```\n\n### IIIFFactory\n\nSpecification: https://iiif.io/api/image/3.0/\n\n#### Endpoints\n\n- `/{identifier}/info.json`: IIIF Image Information Request\n\n- `/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`: IIIF Image Request\n\n- `/{identifier}`: Redirect do the Image Information Request endpoint or return a simple IIIF viewer (based on headers `Accept` value)\n\n\n```python\nfrom fastapi import FastAPI\nfrom titiler.image.factory import IIIFFactory\n\napp = FastAPI()\niiif = IIIFFactory()\napp.include_router(iiif.router)\n```\n\n### LocalTilerFactory\n\n#### Endpoints\n\n- `/tilejson.json?url={...}`: TileJSON document\n\n- `/tiles/{z}/{x}/{y}[@{scale}x.{format}]?url={...}`: Tiles endpoint\n\n- `/viewer?url={...}`: Simple local tiles viewer\n\n```python\nfrom fastapi import FastAPI\nfrom titiler.image.factory import LocalTilerFactory\n\napp = FastAPI()\nlocal_tiles = LocalTilerFactory()\napp.include_router(local_tiles.router)\n```\n\n### GeoTilerFactory\n\nThis is a lightweight version of `titiler.core.factory.TilerFactory`.\n\n#### Endpoints\n\n- `[/TileMatrixSetId]/tilejson.json?url={...}`: TileJSON document\n\n- `/tiles[/TileMatrixSetId]/{z}/{x}/{y}[@{scale}x.{format}]?url={...}`: Tiles endpoint\n\n- `[/{TileMatrixSetId}]/map?url={...}`: Simple dataset viewer\n\n```python\nfrom fastapi import FastAPI\nfrom titiler.image.factory import GeoTilerFactory\n\napp = FastAPI()\ngeo = GeoTilerFactory()\napp.include_router(geo.router)\n```\n\n### All together\n\n```python\napp = FastAPI()\n\nmeta = MetadataFactory()\napp.include_router(meta.router, tags=[\"Metadata\"])\n\niiif = IIIFFactory(router_prefix=\"/iiif\")\napp.include_router(iiif.router, tags=[\"IIIF\"], prefix=\"/iiif\")\n\nimage_tiles = LocalTilerFactory(router_prefix=\"/image\")\napp.include_router(image_tiles.router, tags=[\"Local Tiles\"], prefix=\"/image\")\n\ngeo_tiles = GeoTilerFactory(\n    reader=GCPSReader, reader_dependency=GCPSParams, router_prefix=\"/geo\"\n)\napp.include_router(geo_tiles.router, tags=[\"Geo Tiles\"], prefix=\"/geo\")\n```\n\n![](https://github.com/developmentseed/titiler-image/assets/10407788/f51d3272-020f-4982-baf6-7467aa18ee15)\n\n\n## Contribution & Development\n\nSee [CONTRIBUTING.md](https://github.com//developmentseed/titiler-image/blob/main/CONTRIBUTING.md)\n\n## License\n\nSee [LICENSE](https://github.com//developmentseed/titiler-image/blob/main/LICENSE)\n\n## Authors\n\nSee [contributors](https://github.com/developmentseed/titiler-image/graphs/contributors) for a listing of individual contributors.\n\n## Changes\n\nSee [CHANGES.md](https://github.com/developmentseed/titiler-image/blob/main/CHANGES.md).\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "TiTiler extension to work with non-geo images.",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/developmentseed/titiler-image",
        "Issues": "https://github.com/developmentseed/titiler-image/issues",
        "Source": "https://github.com/developmentseed/titiler-image"
    },
    "split_keywords": [
        "titiler",
        "iiif",
        "deepzoom",
        "fastapi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc3519944a376f9d8f7830d36e0b271bff28c0ac54c8747fadd6c05c2f69fefd",
                "md5": "b2c8501c553539f365512cfb6ca4b2e0",
                "sha256": "2c4eb41ba92e6f358a53a65d4af31e321b6b4c886f16ac25e95fc33ef635b171"
            },
            "downloads": -1,
            "filename": "titiler.image-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b2c8501c553539f365512cfb6ca4b2e0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 23584,
            "upload_time": "2023-08-03T09:44:47",
            "upload_time_iso_8601": "2023-08-03T09:44:47.835351Z",
            "url": "https://files.pythonhosted.org/packages/cc/35/19944a376f9d8f7830d36e0b271bff28c0ac54c8747fadd6c05c2f69fefd/titiler.image-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a64d4ed6f875ebee43cdb72f5342570a35f172e4042c3f6405aaf275831ae62e",
                "md5": "77e6931a0cfaf3f92826368757914a08",
                "sha256": "3fce74775e92a458c78945343439d300fdbba978ce7daff1f9b12c2cc953c1f2"
            },
            "downloads": -1,
            "filename": "titiler.image-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "77e6931a0cfaf3f92826368757914a08",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 21531,
            "upload_time": "2023-08-03T09:44:49",
            "upload_time_iso_8601": "2023-08-03T09:44:49.447035Z",
            "url": "https://files.pythonhosted.org/packages/a6/4d/4ed6f875ebee43cdb72f5342570a35f172e4042c3f6405aaf275831ae62e/titiler.image-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-03 09:44:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "developmentseed",
    "github_project": "titiler-image",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "titiler.image"
}
        
Elapsed time: 0.09944s