You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This library defines a STAC-compliant standardized interface for searching geospatial assets, primarily remotely sensed imagery. The [Spatio-Temporal-Asset-Catalog (STAC)](https://github.com/radiantearth/stac-spec) specification provides common metadata and API schemas to search and access geospatial data. The standardized interface used by the library is based on the STAC spec and allows searching across three dimensions:
5
-
6
-
-**Spatial:** Find all assets which intersect a bounding box.
7
-
-**Temporal:** Find all assets acquired within a temporal window.
8
-
-**Properties:** Find all assets with certain metadata.
9
2
10
-
Not all commonly used datasources are currently STAC-compliant. In such cases, the library maintains a standardized search interface by wrapping the API with a STAC-compatible API which parses the initial search parameters into a format compatible with the underlying API. A request to the API is sent and the response is parsed into a STAC Item and returned to the user. The table below of supported datasources states which are STAC-compliant.
3
+
This library defines a pluggable, STAC-compliant, service for searching geospatial assets, primarily remotely sensed imagery, and serves two primary purposes:
11
4
12
-

5
+
1. Define a pluggable driver interface (similar to GraphQL resolvers) for wrapping the STAC spec around legacy datasources.
6
+
2. Provide a framework for loading / executing drivers both locally and in the cloud.
13
7
14
-
#### Datasource Drivers
15
-
The interface defined by the library is extended by datasource drivers which are defined in external github repositories and loaded into the library through a command line interface. Similar to how drivers control hardware, the logic implemented in the datasource driver influences how cognition-datasources accesses the underlying datasource. Each driver is expected to follow a specific pattern and pass a standard set of test cases (enforced with CircleCI). Check out the [contribution guidelines](/docs/contributing.md) for a guide on how to develop your own datasource driver!
8
+
Each driver translates the STAC-compliant request into a format compatible with the underlying API while translating the API response to a valid STAC Item. Drivers are packaged and deployed to AWS Lambda and a single API Gateway endpoint is created which allows searching the loaded datasources. The goal is to create an extensible service which allows users to integrate their datasets with the STAC ecosystem without having to change how their data is stored and queried.
The deployment generates an AWS API Gateway endpoint which supports STAC-compliant searches of the loaded datasources through the `/stac/search` endpoint (POST). Read the [API docs](./docs/README.md) for usage details.
37
+
38
+
A live example lives [here](https://github.com/geospatial-jeff/cognition-datasources-api).
53
39
54
40
## Testing
55
-
Each driver must pass a [standard set of test cases](datasources/tests.py) and uses CircleCI to ensure only working drivers are loaded into the library. View the status of each driver [here](/docs/datasource-status.md).
41
+
Each driver must pass a [standard set of test cases](./datasources/tests.py) and uses CircleCI to ensure only working drivers are loaded into the library. View the status of each driver [here](./docs/datasource-status.md).
56
42
57
-
## Documentation
58
-
Read the [quickstart](./docs/quickstart.ipynb) and [documentation](./docs).
43
+
## Contributing
44
+
Check out the [contributing docs](./docs/contributing.md) for step-by-step guide for building your own driver.
59
45
60
46
## Supported Datasource Drivers
61
47
| Name | Source | STAC-Compliant | Notes |
@@ -69,4 +55,4 @@ Read the [quickstart](./docs/quickstart.ipynb) and [documentation](./docs).
69
55
|[Sentinel2](https://github.com/geospatial-jeff/cognition-datasources-sentinel2)|[AWS Earth: Sentinel2](https://registry.opendata.aws/sentinel-2/)| True | Sends requests to [sat-api](https://github.com/sat-utils/sat-api). |
70
56
|[SRTM](https://github.com/geospatial-jeff/cognition-datasources-srtm)|[AWS: Terrain Tiles](https://registry.opendata.aws/terrain-tiles/)| False | Does not send any requests. |
0 commit comments