{"id":29266632,"url":"https://github.com/sentinel-hub/titiler-openeo","last_synced_at":"2026-01-22T11:19:28.569Z","repository":{"id":273685670,"uuid":"880823905","full_name":"sentinel-hub/titiler-openeo","owner":"sentinel-hub","description":"openEO by TiTiler","archived":false,"fork":false,"pushed_at":"2025-09-08T09:23:40.000Z","size":114447,"stargazers_count":23,"open_issues_count":8,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-20T12:55:33.809Z","etag":null,"topics":["openeo","rasterio","stac","titiler"],"latest_commit_sha":null,"homepage":"https://sentinel-hub.github.io/titiler-openeo/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sentinel-hub.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-30T12:33:56.000Z","updated_at":"2025-09-12T16:38:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"74a56d69-5ca7-47ad-aa59-b19f1a27ee91","html_url":"https://github.com/sentinel-hub/titiler-openeo","commit_stats":null,"previous_names":["sentinel-hub/titiler-openeo"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/sentinel-hub/titiler-openeo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Ftitiler-openeo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Ftitiler-openeo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Ftitiler-openeo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Ftitiler-openeo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentinel-hub","download_url":"https://codeload.github.com/sentinel-hub/titiler-openeo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentinel-hub%2Ftitiler-openeo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276183771,"owners_count":25599223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openeo","rasterio","stac","titiler"],"created_at":"2025-07-04T16:11:52.841Z","updated_at":"2026-01-16T03:41:09.839Z","avatar_url":"https://github.com/sentinel-hub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# openEO by TiTiler\n\nTiTiler backend for openEO\n\n![TiTiler OpenEO](docs/src/img/image.png)\n\n## Overview\n\n[`titiler-openeo`](titiler/openeo/main.py ) is a TiTiler backend implementation for openEO developed by \u003ca href=\"https://developmentseed.org/\"\u003e\u003cimg alt=\"Development Seed\" src=\"docs/src/img/ds-logo-hor.svg\" height=\"25px\"\u003e\u003c/a\u003e and \u003ca href=\"https://www.sinergise.com/\"\u003e\u003cimg alt=\"Sinergise\" src=\"docs/src/img/sinergise-logo.png\" height=\"25px\"\u003e\u003c/a\u003e.\n\nThe main goal of this project is to provide a light and fast backend for openEO services and processes using the TiTiler engine.\nThis simplicity comes with some specific implementation choices like the type of data managed by the backend.\nIt is focused on image raster data that can be processed on-the-fly and served as tiles or as light dynamic raw data.\nA concept note is available [here](https://sentinel-hub.github.io/titiler-openeo/concepts/) to describe in more detail the implementation choices.\n\nThe application provides with a minimal [openEO API (L1A and L1C)](https://openeo.org/documentation/1.0/developers/profiles/api.html#api-profiles).\n\n## Features\n\n- [STAC API integration](https://sentinel-hub.github.io/titiler-openeo/concepts/#collections-and-stac-integration) with external STAC services\n- [Synchronous processing](https://sentinel-hub.github.io/titiler-openeo/concepts/#data-model) capabilities\n- Various output formats (e.g., JPEG, PNG)\n- Multiple [supported processes](https://github.com/sentinel-hub/titiler-openeo/tree/main/titiler/openeo/processes/data)\n- Dynamic tiling services\n- FastAPI-based application\n- Middleware for CORS, compression, and caching\n- Enhanced [RasterStack data model](https://sentinel-hub.github.io/titiler-openeo/raster-stack/) with temporal dimension support\n- [LazyRasterStack implementation](https://sentinel-hub.github.io/titiler-openeo/raster-stack/#lazyrasterstack-with-temporal-intelligence) with concurrent execution and intelligent caching\n\n## Installation\n\n[`uv`](https://docs.astral.sh/uv/) is the recommended way to install the project's runtime dependencies:\n\n```bash\nuv sync\n```\n\n## Usage\n\nOnce dependencies are installed, copy one of the sample environment files (e.g. `.env.eoapi`) and start the API:\n\n```bash\ncp .env.eoapi .env\nexport $(cat .env | xargs)\nuvicorn titiler.openeo.main:app --host 0.0.0.0 --port 8081\n```\n\n## Configuration\n\nConfiguration settings can be provided via environment variables. The following settings are available:\n\n- TITILER_OPENEO_STAC_API_URL: URL of the STAC API with the collections to be used\n- TITILER_OPENEO_STORE_URL: URL of the openEO service/UDP store json file\n\nIn this repository, 2 `.env` sample files are provided:\n\n- [`.env.eoapi`](https://github.com/sentinel-hub/titiler-openeo/blob/main/.env.eoapi) that uses the [Earth Observation API (EOAPI)](https://eoapi.dev/).\n\n  ```bash\n  TITILER_OPENEO_STAC_API_URL=\"https://stac.eoapi.dev\"\n  TITILER_OPENEO_STORE_URL=\"services/eoapi.json\"\n  ```\n\n- [`.env.cdse`](https://github.com/sentinel-hub/titiler-openeo/blob/main/.env.cdse) that uses the [Copernicus Data Space Ecosystem (CDSE)](https://dataspace.copernicus.eu/)\n\n  ```bash\n  TITILER_OPENEO_STAC_API_URL=\"https://stac.dataspace.copernicus.eu/v1\"\n  TITILER_OPENEO_STORE_URL=\"services/copernicus.json\"\n  ```\n\n  In order to access asset object store and to retrieve data efficiently, it requires to set additional **environment variables**:\n\n  ```bash\n  AWS_S3_ENDPOINT=eodata.dataspace.copernicus.eu # CDSE S3 endpoint URL\n  AWS_ACCESS_KEY_ID=\u003cyour_access_key\u003e # S3 access key\n  AWS_SECRET_ACCESS_KEY=\u003cyour_secret_key\u003e # S3 secret key\n  AWS_VIRTUAL_HOSTING=FALSE # Disable virtual hosting\n  CPL_VSIL_CURL_CACHE_SIZE=200000000 # Global LRU cache size\n  GDAL_HTTP_MULTIPLEX=TRUE # Enable HTTP multiplexing\n  GDAL_CACHEMAX=500 # Set GDAL cache size\n  GDAL_INGESTED_BYTES_AT_OPEN=50000 # Open a larger bytes range when reading\n  GDAL_HTTP_MERGE_CONSECUTIVE_RANGES=YES # Merge consecutive ranges\n  VSI_CACHE_SIZE=5000000 # Set VSI cache size\n  VSI_CACHE=TRUE # Enable VSI cache\n  ```\n\nvisit ['Access to EO data via S3'](https://documentation.dataspace.copernicus.eu/APIs/S3.html) for information on how to access the Copernicus Data Space Ecosystem (CDSE) data via S3.\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md) for development setup, testing, and documentation workflows.\n\n## License\n\nSee [LICENSE](https://github.com/sentinel-hub/titiler-openeo/blob/main/LICENSE)\n\n## Authors\n\nCreated by [Development Seed](\u003chttp://developmentseed.org\u003e) and [Sinergise](https://www.sinergise.com/).\n\nSee [contributors](https://github.com/sentinel-hub/titiler-openeo/graphs/contributors) for a listing of individual contributors.\n\n## Changes\n\nSee [CHANGES.md](https://github.com/sentinel-hub/titiler-openeo/blob/main/CHANGES.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentinel-hub%2Ftitiler-openeo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentinel-hub%2Ftitiler-openeo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentinel-hub%2Ftitiler-openeo/lists"}