Skip to content

Commit b6ddd80

Browse files
authored
Docs/update docs (#96)
* Update README with why you should use eoAPI Slightly alter initial description of eoAPI. Add a section titled why should you use eoAPI with a bulleted list of reasons and short justifications. * Create services overview Create services overview to have a more concise introduction to the different parts of eoAPI. Add references to API documentation. Create separate services-details.md file with the initial information provided in the README. * Add Getting Started section Use information from previous launch locally to create a Getting Started guide. Notably, the getting started documentation explicitly points to the demo documentation to load data. Remove project structure section to avoid out-dated information based on new intended deployment structure. It is a reasonable expectation that a new user does not need to see this on his first visit of the repository. They can open the folder structure or visit the other documentation for more information. * Add services-details.md to nav * Rename interface to repository and fix some typos. * Add MAXAR open data to getting started instructions
1 parent 8a3b3de commit b6ddd80

File tree

3 files changed

+87
-71
lines changed

3 files changed

+87
-71
lines changed

README.md

Lines changed: 24 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
## **E**arth **O**bservation **API**
2525

26-
The objective of `eoAPI` is to combine *state of the art* project to create a full Earth Observation API for Metadata search (STAC), Raster and Feature/Vector services:
26+
`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:
2727

2828
- **pgSTAC** database [https://github.com/stac-utils/pgstac](https://github.com/stac-utils/pgstac)
2929

@@ -33,89 +33,42 @@ The objective of `eoAPI` is to combine *state of the art* project to create a fu
3333

3434
- **OGC Features and Vector Tiles** API built on top of [https://github.com/developmentseed/tipg](https://github.com/developmentseed/tipg)
3535

36-
37-
Note: Each service can be used/deployed independently but **eoAPI** also adds interconnection between them.
38-
3936
---
4037

41-
## Services
42-
43-
### STAC Metadata
44-
45-
A custom version of [stac-fastapi.pgstac](https://github.com/stac-utils/stac-fastapi) application, adding a **`TiTilerExtension`** and a simple **`Search Viewer`**.
46-
47-
- Full **stac-fastapi** implementation
48-
49-
- Simple STAC Search **viewer**
50-
51-
- **Proxy** to the Tiler endpoint for STAC Items
52-
53-
When `TITILER_ENDPOINT` environement is set (pointing the `raster` application), additional endpoints will be added to the stac-fastapi application (see: [stac/extension.py](https://github.com/developmentseed/eoAPI/blob/main/src/eoapi/stac/eoapi/stac/extension.py)):
54-
55-
- `/collections/{collectionId}/items/{itemId}/tilejson.json`: Return the `raster` tilejson for an item
56-
- `/collections/{collectionId}/items/{itemId}/viewer`: Redirect to the `raster` viewer
57-
58-
<p align="center">
59-
<img src="https://user-images.githubusercontent.com/10407788/146790933-e439893c-ef2e-4d78-a372-f2f18694836c.png"/>
60-
<p align="center">STAC Search viewer</p>
61-
</p>
62-
63-
Code: [/runtime/eoapi/stac](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/stac)
38+
## Why should you use `eoAPI`
39+
- **Focus on your use case:** `eoAPI` is used for large-scale data processing, building geographic information systems (GIS), creating real-time data applications, climate research and environmental monitoring, machine learning model training, and more.
40+
- **Unified Repository:** `eoAPI` provides a single, unified repository to several state-of-the-art Earth Observation (EO) data services, including Metadata search (STAC), Raster, and Vector services. This can simplify the process of accessing and working with these services.
41+
- **Interoperability:** `eoAPI` is designed to enable interoperability among its included services. This can make building complex applications that leverage different types of EO data easier.
42+
- **Open Source and Community Support:** As an open-source project, `eoAPI` allows developers to inspect its code, contribute to its development, and use it as a base for custom solutions. It also benefits from the support and innovation of a community of developers and EO data users.
43+
- **Scalability and Flexibility:** Each service in `eoAPI` can be used or deployed independently, which provides a lot of flexibility. If a developer's application only requires one or two of eoAPI's services, they don't need to deploy the entire suite.
44+
- **Facilitate Earth Observation Tasks:** `eoAPI` includes specialized tools for working with EO data, such as dynamic tiling, metadata searching, and features/vector tiles API. These can significantly facilitate EO data processing, analysis, and visualization.
45+
- **Ease of Deployment:** `eoAPI` supports containerized deployment using Docker, making it easier to set up, scale, and maintain applications built on it. Spin up the demo locally and start experimenting in minutes.
6446

6547
---
6648

67-
### Raster Tiles
49+
## Services Overview
6850

69-
The dynamic tiler deployed within eoAPI is built on top of [titiler-pgstac](https://github.com/stac-utils/titiler-pgstac) and [pgstac](https://github.com/stac-utils/pgstac). It enables large scale mosaic based on results of STAC searches queries:
7051

71-
- Full **titiler-pgstac** implementation
52+
- **STAC Metadata**: Built with [stac-fastapi.pgstac](https://github.com/stac-utils/stac-fastapi) and extended with a custom extension to connect it to **`TiTiler`** and a **[Search Viewer](http://localhost:8081/index.html)**. See [docs](http://localhost:8081/docs) for API details.
53+
- **Raster Tiles**: Built with [titiler-pgstac](https://github.com/stac-utils/titiler-pgstac) and [pgstac](https://github.com/stac-utils/pgstac) to enable large scale mosaic based on results of STAC searches queries. See [docs](http://localhost:8082/docs) for API details.
54+
- **OGC Features & Vector Tiles**: Built with [tipg](https://github.com/developmentseed/tipg) to create a lightweight OGC Features and Tiles API with a PostGIS database. See [docs](http://localhost:8083/api.html) for API details.
7255

73-
<p align="center">
74-
<img src="https://user-images.githubusercontent.com/10407788/129632282-f71e9f45-264c-4882-af28-7062c4e56f25.png"/>
75-
<p align="center">TiTiler-PgSTAC workflow</p>
76-
</p>
56+
See [service details](./docs/src/services-details.md) for more information.
7757

78-
Code: [/runtime/eoapi/raster](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/raster)
58+
*Note: The documentation links referenced require lauching the application with `docker-compose` or another deployment*.
7959

8060
---
8161

82-
### OGC Features / Vector Tiles
83-
84-
OGC Features + Tiles API built on top of [tipg](https://github.com/developmentseed/tipg).
62+
## Getting started
8563

86-
By default, the API will look for tables in the `public` schema of the database. We've also added three custom functions which connect to the pgSTAC schema:
64+
- Clone the repository: `git clone https://github.com/developmentseed/eoAPI.git`
65+
- Navigate to the project: `cd eoAPI`
66+
- Run services with `docker-compose up`
67+
- Follow the [MAXAR open data demo](https://github.com/vincentsarago/MAXAR_opendata_to_pgstac) (or get inspired by the other [demos](./demo/)) to load some data into eoAPI
68+
- Checkout the [Search Viewer](http://localhost:8081/index.html), and the API documentation ([STAC Metadata](http://localhost:8081/docs), [Raster Tiles](http://localhost:8082/docs), [Vector Tiles](http://localhost:8083/api.html))
8769

88-
- **pg_temp.pgstac_collections_view**: Simple function which return PgSTAC Collections
89-
- **pg_temp.pgstac_hash**: Return features for a specific searchId (hash)
90-
- **pg_temp.pgstac_hash_count**: Return the number of items per geometry for a specific searchId (hash)
91-
92-
Code: [/runtime/eoapi/vector](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/vector)
93-
94-
---
95-
96-
## Project structure
97-
98-
```
99-
├──demo/ - items/collections and notebook
100-
├──infrastructure/ - Deployment options (e.g AWS CDK application)
101-
└──runtime/eoapi/
102-
├── raster/ - "eoapi.raster" python package
103-
├── stac/ - "eoapi.stac" python package
104-
└── vector/ - "eoapi.vector" (OGC features + OGC tiles) python package
105-
```
106-
107-
## Launch application locally
108-
109-
You can launch the APIs locally using docker. This will start 3 services: database, eoapi.stac, eoapi.raster
110-
```
111-
git clone https://github.com/developmentseed/eoAPI.git
112-
cd eoAPI
113-
docker-compose build
114-
docker-compose up stac raster
115-
```
116-
117-
Or install everything locally
118-
```
70+
Alternatively, you may launch the application locally:
71+
```bash
11972
python -m pip install --upgrade virtualenv
12073
virtualenv .venv
12174
source .venv/bin/activate
@@ -134,7 +87,7 @@ export DATABASE_URL=postgresql://username:[email protected]:5439/postgis # Conne
13487
# STAC
13588
.venv/bin/uvicorn eoapi.stac.app:app --port 8000 --reload
13689
```
137-
90+
---
13891
## Deployment
13992

14093
See [DEPLOYMENT.md](https://github.com/developmentseed/eoAPI/blob/main/infrastructure/DEPLOYMENT.md)

docs/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ nav:
2020
- Readme: "index.md"
2121
- Development - Contributing: "contributing.md"
2222
- Release Notes: "release-notes.md"
23+
- Services Details: "services-details.md"
2324

2425
plugins:
2526
- search

docs/src/services-details.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
## Services Details
2+
3+
### STAC Metadata
4+
5+
A custom version of [stac-fastapi.pgstac](https://github.com/stac-utils/stac-fastapi) application, adding a **`TiTilerExtension`** and a simple **`Search Viewer`**.
6+
7+
The service includes:
8+
9+
- Full **stac-fastapi** implementation - see [docs](http://localhost:8081/docs) if using the `docker-compose` configuration.
10+
11+
- Simple STAC Search **viewer** - see [viewer](http://localhost:8081/index.html) if using the `docker-compose` configuration.
12+
13+
- **Proxy** to the Tiler endpoint for STAC Items
14+
15+
When `TITILER_ENDPOINT` environement is set (pointing the `raster` application), additional endpoints will be added to the stac-fastapi application (see: [stac/extension.py](https://github.com/developmentseed/eoAPI/blob/main/src/eoapi/stac/eoapi/stac/extension.py)):
16+
17+
- `/collections/{collectionId}/items/{itemId}/tilejson.json`: Return the `raster` tilejson for an item
18+
- `/collections/{collectionId}/items/{itemId}/viewer`: Redirect to the `raster` viewer
19+
20+
<p align="center">
21+
<img src="https://user-images.githubusercontent.com/10407788/146790933-e439893c-ef2e-4d78-a372-f2f18694836c.png"/>
22+
<p align="center">STAC Search viewer</p>
23+
</p>
24+
25+
Code: [/runtime/eoapi/stac](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/stac)
26+
27+
---
28+
29+
### Raster Tiles
30+
31+
The dynamic tiler deployed within eoAPI is built on top of [titiler-pgstac](https://github.com/stac-utils/titiler-pgstac) and [pgstac](https://github.com/stac-utils/pgstac). It enables large scale mosaic based on results of STAC searches queries.
32+
33+
See [docs](http://localhost:8082/docs) if using the `docker-compose` configuration.
34+
35+
The service includes:
36+
37+
- Full **titiler-pgstac** implementation
38+
39+
<p align="center">
40+
<img src="https://user-images.githubusercontent.com/10407788/129632282-f71e9f45-264c-4882-af28-7062c4e56f25.png"/>
41+
<p align="center">TiTiler-PgSTAC workflow</p>
42+
</p>
43+
44+
Code: [/runtime/eoapi/raster](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/raster)
45+
46+
---
47+
48+
### OGC Features / Vector Tiles
49+
50+
OGC Features + Tiles API built on top of [tipg](https://github.com/developmentseed/tipg).
51+
52+
By default, the API will look for tables in the `public` schema of the database. We've also added three custom functions which connect to the pgSTAC schema.
53+
54+
See [docs](http://localhost:8083/api.html) if using the `docker-compose` configuration.
55+
56+
- **pg_temp.pgstac_collections_view**: Simple function which return PgSTAC Collections
57+
- **pg_temp.pgstac_hash**: Return features for a specific searchId (hash)
58+
- **pg_temp.pgstac_hash_count**: Return the number of items per geometry for a specific searchId (hash)
59+
60+
Code: [/runtime/eoapi/vector](https://github.com/developmentseed/eoAPI/tree/main/runtime/eoapi/vector)
61+
62+
---

0 commit comments

Comments
 (0)