developmentseed / eoAPI

[Active Development] Earth Observation API (Metadata, Raster and Vector services)
https://eoapi.dev
MIT License
191 stars 20 forks source link

Create a full Earth Observation API with Metadata, Raster, and Vector services.

Downloads



Earth Observation API

eoAPI combines several state-of-the-art projects to create a full Earth Observation API. Each service can be used and deployed independently, but eoAPI creates the interconnections between each service:


🌍 eoAPI: An Open-Source Community Project

eoAPI is proudly open-source and driven by a dedicated community of contributors. We believe in the power of open collaboration and welcome anyone to contribute, discuss, and grow this tool. Join the conversations on GitHub Discussions and make a difference in the Earth Observation realm.


Getting started

The easiest way to explore the different eoAPI services is with Docker. Clone this repository and start the multi-container Docker applications using Compose:

git clone https://github.com/developmentseed/eoAPI.git
cd eoAPI
docker compose up

Once the applications are up, you'll need to add STAC Collections and Items to the PgSTAC database. If you don't have these available, you can follow the MAXAR open data demo (or get inspired by the other demos).

Then you can start exploring your dataset with:

If you've added a vector dataset to the public schema in the Postgres database, they will be available through the Vector service at http://localhost:8083.

Local deployment

The services can be deployed altogether locally with docker compose up.

Alternatively, you may install the libraries and launch the applications manually:

```bash python -m pip install --upgrade virtualenv virtualenv .venv source .venv/bin/activate export DATABASE_URL=postgresql://username:password@0.0.0.0:5439/postgis # Connect to the database of your choice python -m pip install uvicorn ############################################################################### # Install and launch the application # Select one of the following ############################################################################### # STAC python -m pip install "psycopg[binary,pool]" stac-fastapi-pgstac python -m uvicorn stac_fastapi.pgstac.app:app --port 8081 --reload ############################################################################### # RASTER python -m pip install "psycopg[binary,pool]" titiler-pgstac python -m uvicorn titiler.pgstac.main:app --port 8082 --reload ############################################################################### # VECTOR python -m pip install tipg python -m uvicorn tipg.main:app --port 8083 --reload ``` Note: Python libraries might have incompatible dependencies, which you can resolve by using a virtual environment for each one.

Deployment on the cloud

Kubernetes

eoapi-k8s contains IaC and Helm charts for deploying eoAPI services on AWS and GCP.

AWS CDK

eoapi-cdk defines a set of AWS CDK constructs that can be used to deploy eoAPI services on AWS. An official example of these constructs is at eoapi-template.

Deployment with custom runtimes

An example of custom eoAPI runtimes and deployment can be found at eoapi-devseed.

Contribution & Development

We highly value and rely on our community! Whether you're an expert or just getting started, you can make a difference. Here's how:


License

At Development Seed, we believe in open collaboration and making tools and data more accessible. In line with this ethos, we've explicitly chosen a MIT license for eoAPI.

For full license details, see LICENSE.

Authors

Nurtured by Development Seed

See contributors for a listing of individual contributors.