OGC API & STAC - Proof of Concept

Last update: Jun 19, 2022

OAPI - POC

Proof of concept (POC) to ingest geospatial datasets from MeteoSuisse into a SpatioTemporal Asset Catalog (STAC), expose as OGC API Features and offer OGC API Environmental Data Retrieval (EDR) capabilities.

Documentation

OGC API and STAC are designed to be explorable through links and a good starting point is the Landing Page (aka Root Catalog) which links to capabilities, descriptions and fundamental resources of the services.

The OpenAPI definition can be consumed through the SwaggerUI. Select the appropriate server and authorization (for endpoints except GET) to try it out.

Be aware that the api definition is not in sync with the service implementation. There are addinonally transactional endpints for Collection and Feature/Item resources and the schemas/definitions might diverge from the actual implementation by the services.

Usage

For now the basic use case is uploading a STAC Asset through the load-asset process. The input schema describes the json body of the post request passed to it's ./execute endpoint. It requires the file as base64 encoded string, some asset properties, the collection id and the item id or an item object to create.

Example python scripts for loading an asset to an existing collection as well as extracting & creating a collection resource from a geocat.ch entry are in the scripts folder.

Consumption

The created resources can for example be consoumed with the STAC Browser. The assets contents accessible through the href reside on a S3 bucket.

Caveats

  • Only the data on S3 is persisted, the rest lives in the containers of the docker composition.
  • The asset content is not parsed, nor are any attributes derived.
  • Only base64 encoded string are supported as file value for now.
  • An asset can be replaced by specifying the asset id, the S3 key and the item id as value in the inputs.
  • It is currently not possible to updat the Feature/Item on upload.
  • Catalog trees can only be created from the collection downwards as the root catalog is immutable for now.

Catalog Trees (advanced & untested)

Potentially catalog trees can be created by adding collection resources with the property type set to Catalog and links with the relations parent, child and/or item. Naturally these relations should be reflected on the linked ressources as well.

GitHub

https://github.com/camptocamp/oapi-poc
You might also like...

A proof of concept implementation of cyclic data structures in stable, safe, Rust.

A proof of concept implementation of cyclic data structures in stable, safe, Rust. This demonstrates the combined power of the static-rc crate and the

Jun 12, 2022

Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions

Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions

Introduction Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions. (hand interaction with boxes missing

Jun 13, 2022

Interactive interpreter for a statement-based proof-of-concept language.

nhotyp-lang Nhotyp is a conceptual language designed for ease of implementation during my tutoring in an introductive algorithmic course at Harbin Ins

Jun 19, 2021

This shows proof-of-concept implementation of lexer-parser-evaluator which allows setting custom values to keywords.

Custom Configurable Lexer-Parser Note This is still very experimental, and for any syntax error it will just panic giving very unhelpful error message

Sep 18, 2021

Proof of Concept / Experiment: Use IDF-HAL-LL from bare metal Rust

Proof of Concept / Experiment: Use IDF-HAL-LL from bare metal Rust

Proof of Concept / Experiment: Use IDF-HAL-LL from BM Rust idf-ll-compile pre-compiles a static library for ESP32C3 and ESP32 esp-ll a simple crate th

Nov 22, 2021

A proof of concept Linux screen reader, with minimal features.

Odilia A proof of concept Linux screen reader, with minimal features. Status: prototype We're breaking things daily. This is not usable whatsoever, an

May 8, 2022

[Proof of Concept] Embedded functional scripting language with YAML ¯\_(ツ)_/¯

[YAML, fun] Just an experimental project implementing embedded functional scripting language based on YAML syntax. API docs for the standard library:

Apr 28, 2022

A proof-of-concept for building Orbiter spaceflight simulator addons in Rust

Orbiter spacecraft addon development in Rust This project is a proof of concept for creating a spacecraft addon for the Orbiter spaceflight simulator

Mar 18, 2022

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv. This was built quickly to try out Slint and it's new OpenGL underlay feature.

Jun 17, 2022

A proof of concept file dropper utilizing PowerShell loosely based off

A proof of concept file dropper utilizing PowerShell loosely based off

A proof of concept file dropper utilizing PowerShell loosely based off

Jun 21, 2022

An open source virtual tabletop that is currently purely a concept.

An open source virtual tabletop that is currently purely a concept.

Jun 6, 2022

CARBON is an interface-centric programming language named after the concept of an allotropy.

CARBON programming language Status: just an idea CARBON is an interface-centric programming language named after the concept of an allotropy. It is an

Dec 8, 2021

global state management for dioxus built on the concept of atoms. currently under 🏗

Fermi: A global state management solution for Dioxus, inspired by Recoil.Js Fermi provides primitives for managing global state in Dioxus applications

Feb 12, 2022

Arkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust.

ark-circom Arkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust.

Jun 20, 2022

Simple automated proof assistant.

Simple automated proof assistant.

Esther is a work-in-progress, proof-of-concept automated theorem proof assistant based on Homotopy Type Theory. Acknowledgements Arend, Lean, Coq and

Sep 14, 2021

Rust implementation of AstroBWT Proof-Of-Work algorithm

AstroBWT AstroBWT is a proof-of-work (PoW) algorithm based on Burrows-Wheeler transform (BWT). Developed and used by the DERO Project for Mobile (arm)

Mar 7, 2022

Composable proof transcripts for public-coin arguments of knowledge

Composable proof transcripts for public-coin arguments of knowledge

Merlin: composable proof transcripts for public-coin arguments of knowledge Merlin is a STROBE-based transcript construction for zero-knowledge proofs

Jun 5, 2022

Implementation of Proof of Existence consensus using Substrate Framework, Frame, Pallets, RUST

Substrate Node Template A fresh FRAME-based Substrate node, ready for hacking 🚀 Getting Started Follow the steps below to get started with the Node T

Jun 8, 2022

OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.

OpenZKP OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems. Overview Project current implements 🐺 the Stark protocol (see its readme

Jun 20, 2022
Comments
  • 1. License

    Hi Balthasar, Emmanuel pointed me to this project and I'm excited to see other GIS devs using Rust! I would like to add this project to the https://github.com/pka/awesome-georust#readme watchlist, but the license seems to be missing. Regards, Pirmin

    Reviewed by pka at 2022-06-01 12:58
Composable proof transcripts for public-coin arguments of knowledge
Composable proof transcripts for public-coin arguments of knowledge

Merlin: composable proof transcripts for public-coin arguments of knowledge Merlin is a STROBE-based transcript construction for zero-knowledge proofs

Jun 5, 2022
Implementation of Proof of Existence consensus using Substrate Framework, Frame, Pallets, RUST

Substrate Node Template A fresh FRAME-based Substrate node, ready for hacking ?? Getting Started Follow the steps below to get started with the Node T

Jun 8, 2022
OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.

OpenZKP OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems. Overview Project current implements ?? the Stark protocol (see its readme

Jun 20, 2022
A node API for the dprint TypeScript and JavaScript code formatter

dprint-node A node API for the dprint TypeScript and JavaScript code formatter. It's written in Rust for blazing fast speed. Usage Pass a file path an

Jun 15, 2022
binance API client

bian-rs 币安API Rust async SDK 完成情况 接口 现货 U本位合约 币本位合约 欧式期权 http ?? 开发中 ?? ?? 开发中 未开始 websocket ?? 开发中 ?? ?? 开发中 未开始 使用 在 Cargo.toml 中添加依赖 [dependencies]

Mar 21, 2022
Rust API guidelines

Rust API guidelines This is a set of recommendations on how to design and present APIs for the Rust programming language. They are authored largely by

Jun 19, 2022
Rust NACL Wrapper API

Rust NACL Wrapper API NaCl (pronounced "salt") is a new easy-to-use high-speed software library for network communication, encryption, decryption, sig

Jan 19, 2022
Rest API to check if a password is in a data breach

easypwned (haveibeenpwned / HIBP) Rest API to check if a password is in a data breach. Works offline - everything stays on your machine! Database is i

Mar 16, 2022
Proof of concept for a web API that can export 3MF files from parametric OpenSCAD models

Model API About A proof of concept for a web API that can export 3MF files from a parametric OpenSCAD model. A typical use would be to have a form on

Nov 18, 2021
Proof-of-concept for a memory-efficient data structure for zooming billion-event traces

Proof-of-concept for a gigabyte-scale trace viewer This repo includes: A memory-efficient representation for event traces An unusually simple and memo

Apr 14, 2022