Skip to content

July 2024 Open Standards Code Sprint

doublebyte1 edited this page Jul 16, 2024 · 101 revisions

Organized by

Hosted by Strategic Member support by Sponsored by

Silver-level Sponsor

Call for Sponsors 📣

Organizations are invited to sponsor the Code Sprint. A range of packages are available offering different opportunities for organizations to support the geospatial development community while promoting their products or services. Please check this page for more information about sponsorship packages.

Topics

This sprint will cover all OGC API approved and candidate Standards. It will also feature three special tracks, for which you can find the details here. If you are new to Code Sprints, please check the mentor streams below.

Period and location

The code sprint will take place from July 10th-12th, 2024.

The meeting will be hybrid and will take place at Geovation Hub (London, UK) and at the OGC discord server.

Here is a list of recommended hotels:

Join Discord from Windows, Mac, iOS or Android: https://discord.gg/3uyaZZuXr3

Discord app download: https://discord.com/download

Most text channels are also bridged on Matrix: https://matrix.to/#/%23ogc:matrix.org

Schedule

The code sprint will be held on British Summer Time (BST/UTC+1). You can check here the time in other locations.
This is the schedule for the main track. For the mentor stream, please check the detailed schedule here.

Date Time Day/ Activity Discord channel Room
2024-06-13 Day #0 (pre-event): Welcome Webinar
14:00 - 14:10 Welcome remarks - Joana Simoes audio recording for the whole session V:🏛 #Main Stage n/a
14:10 - 14:20 Overview and Sprint Goals for participating OGC Standards Working Groups - Gobe Hobona V:🏛 #Main Stage n/a
14:20 - 14:30 Overview and Sprint Goals for the Data Quality and Artificial Intelligence Track - Ivana Ivanova V:🏛 #Main Stage n/a
14:30 - 14:40 Overview and Sprint Goals for the Validators Track - Frank Terpstra and Joost Farla V:🏛 #Main Stage n/a
14:40 - 14:50 Overview and Sprint Goals for the MapML Track - Peter Rushforth V:🏛 #Main Stage
14:50 - 15:00 Q&A V:🏛 #Main Stage n/a
2024-07-10 Day #1: Kick-Off
09:00 - 10:00 Welcome session V:🏛 #Main Stage Quadrant
10:00 - 12:30 Practical Work V:👥 #Breakout Room Quadrant, Hilary
12:30 - 13:30 Lunch 🍜
13:30 - 18:00 Practical Work V:👥 #Breakout Room Quadrant, Hilary
18:00 - 19:00 Early dinner 🍜
19:00 - 20:00 Practical work V:👥 #Breakout Room Quadrant, Hilary
20:00 - 21:00 Daily Brief Back V:🏛 #Main Stage Support:TC Quadrant
2024-07-11 Day #2
09:00 - 10:00 Practical work V:👥 #Breakout Room Quadrant, Tenzing, Hilary
10:00 - 10:30 Stand-up V:🏛 #Main Stage Quadrant
10:30 - 12:30 Practical work V:👥 #Breakout Room Quadrant, Tenzing, Hilary
12:30 - 13:30 Lunch 🍜
13:30 - 18:00 Practical Work V:👥 #Breakout Room Quadrant
15:00 - 16:00 SensorThings API and Connected Systems API discussion Gotomeeting Hilary
15:30 - 16:30 Data Quality & TrainingDML-AI Discussion V:👥 #Breakout Room Tenzing
18:00 - 19:00 Early dinner 🍜
19:00 - 20:00 Practical work V:👥 #Breakout Room Quadrant, Tenzing, Hilary
20:00 - 21:00 Daily Brief Back V:🏛 #Main Stage Support:TC Quadrant
2024-07-12 Day #3: Final Day
09:00 - 10:00 Practical work V:👥 #Breakout Room Quadrant, Tenzing, Hilary
10:00 - 10:30 Stand-up V:🏛 #Main Stage Quadrant
10:30 - 13:00 Practical work V:👥 #Breakout Room Quadrant, Tenzing, Hilary
13:00 - 14:00 Lunch 🍜
14:00 - 15:00 Practical Work V:👥 #Breakout Room Quadrant
14:00 - 14:55 Digital Twins breakout discussion V:🏛 #Main Stage Hilary
15:00 - 17:00 Demos & Wrap-up V::📣 GotoMeet Quadrant

If you would like to add any items to the schedule, just edit the agenda above and add another row on the relevant section. Example:

| | 11:00 - 12:00 | pygeoapi meeting | [#Jitsi Room]()

Initiative Manager

Joana Simoes (OGC), ✉️, discord: @doublebyte.

Register

Registration is free for everyone. You may register here. At the time of the event, only registered participants will have access to the relevant Discord channels. Registration for in-person participation closes at 05:00 PM UTC+1 on July 3rd. Registration for remote participation will remain open throughout the code sprint.

Travel Support Funding is available for some participants. Participants interested in receiving travel support funding should indicate their interest on the registration form.

Which OGC Standards working groups are going to participate?

Special Tracks

Data Quality and Artificial Intelligence

The Data Quality and Artificial Intelligence track of the Code Sprint will include activities towards implementing support for the Training Data Markup Language for Artificial Intelligence (TrainingDML-AI) Standard and for a Data Quality Measures Register based on the ISO 19157 series of Standards. The TrainingDML-AI Standard aims to develop encodings for geospatial machine learning training data (OGC 23-008r3). OGC published the conceptual model of the Standard in September 2023 and is considering a proposal for the JSON and XML encodings of the Standard.

This track will be led by Ivana Ivanova and Sam Meek.

Validators

In a previous codesprint a linter was developed for JSON-FG https://geonovum-labs.github.io/json-fg-linter/. A linter checks the correctness of code or encoding format inside your editor while you are writing or editing. In this track we want to expand on the previous work creating a linter for at least one standard: OGC API features as well as improving the JSON-FG linter where possible. From Geonovum we will be working on the API features linter and invite other participants to work on linters for other standards where we will support with the expertise we have already gained. The lessons learned from this codesprint can be input on creating generic components that can be reused for other linters.

This track will be led by Frank Terpstra and Joost Farla.

MapML

The code sprint will prototype integration of a Map Markup Language (MapML) viewer with implementations of the OGC API Features, Maps and Tiles Standards. The MapML extends the semantics of several HTML Standard elements, and specifies a small set of new, mapping-specific elements, in the HTML namespace ("http://www.w3.org/1999/xhtml"). You can find a video explaining what MapML is and links on the Project and Working Group Pitches Section.

Collaborative activities

What activities or tasks do you plan to work on during the code sprint?

Post your ideas as comments in this GitHub Issue.

Project and Working Group Pitches

In this section, projects and working groups have the chance to do a five minute pitch to introduce themselves. This is an excellent opportunity to draw attention to the project/working group and invite others to collaborate on specific tasks during the code sprint. If you are interested in doing a pitch, please record a short video (5 mins) and link it below. We would recommend adding your pitch before the pre-event webinar, on the June 13 at 14 UTC+1. We will refer to the pitches during the webinar.

Video

OGC API - EDR viewer

Video

OGC API - Moving Features

Video

OGC API - Maps, Tiles or Features with Map Markup Language integration

Video

MapML resources from the video:


Sample pitch on youtube

Mentor streams

If you are coming to an OGC Code Sprint for the first time, you may be a little lost and confused about what you should do when you get there. That is why we will have an onboarding day, to help you get started in the OGC Community. In the discord server, you will find a section of called "mentoring", which contains multiple channels. On day 1 of the code sprint, we will feature a stream of tutorials, which will take place at the V:👥 [#Mentor Room] and at the Tenzing room (Geovation).

Mentor Stream Onboarding Session

On the first day of the code sprint, there will be a mentor stream onboarding session at the V:🎙 Mentor Room/ Tenzing room (Geovation).

10th of July, 10:10 - 10:30 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

If you would like to present a hands-on, entry level, tutorial, just add an entry bellow, following the same format. Please choose a time slot on day 1 (the 10th), that does not conflict with any of the scheduled events.

Adding a new OGC API to pygeoapi

pygeoapi is a Python server implementation of the OGC API suite of standards. The project emerged as part of the next generation OGC API efforts in 2018 and provides the capability for organizations to deploy a RESTful OGC API endpoint using OpenAPI, GeoJSON, and HTML.

pygeoapi currently supports numerous OGC API standards (OGC API - Features/Records, OGC API - Environmental Data Retrieval, OGC API - Tiles, OGC API - Maps and OGC API - Processes). This tutorial will cover how to implement a new OGC API in pygeoapi.

Technologies: OGC API, pygeoapi, GitHub, Python

Requirements: A basic understanding of OGC APIs and GitHub is recommended. An intermediate understanding of Python is recommended.

Stream leader: Tom Kralidis

Proposed schedule: 10th of July, 10:40 - 11:20 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

SensorThings API WebSub Extension

Motivation: Millions of sensors record very many different aspects of the environment. Imagine you want to build a Monitoring or Decision Support System of particular purpose, you are facing the challenge to fetch a proper set of base data and then to receive appropriate updates. You for sure should not use polling, as you would request all data each time and regardless how fast or slow the polling time is set, it is never fit for purpose.

For sure, you need the possibility to fetch base data and receive fit-for-purpose live updates potentially across different organizations (platforms) using APIs. One possible solution can be based on OGC’s SensorThings API and the use of W3C WebSub. The combination of SensorThings API and WebSub will allow to fetch base data and receive live updates when it happens via HTTP(S) Webhook.

Technologies: OGC SensorThings API, W3C WebSub

Requirements: The proposal is to create an extension to the SensorThings API called WebSub. Potentially this WebSub extension will have two conformance classes: (i) Core - support for the W3C WebSub discovery, (ii) ODATA - support to add ODATA query to MQTT topic.

Stream leader: Andreas Matheus

Proposed schedule: 10th of July, 11:30 - 12:10 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

Consuming OGC API - Connected Systems through OWSLib

OWSLib is a Python package for client programming with OGC interface standards, including the newer OGC APIs. It provides a convenient way to connect to OGC services from a Python application or a Jupyter notebook.

In this tutorial we will explore how to access data on a OGC API - Connected Systems service using OWSLib. The API is intended to act as a bridge between static data (geographic and other domain features) and dynamic data (observations of these feature properties, and commands/actuations that change these feature properties).

Technologies: OGC API, Python, OWSLib

Requirements: A basic understanding of OGC APIs recommended. An intermediate understanding of Python is recommended.

Stream leader: Ian Patterson

Proposed schedule: 10th of July, 13:40 - 14:10 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

Adding Security to a pygeoapi setup

In this tutorial, we will explore a loose couple architecture to protect a pygeoapi instance with authentication and authorization.

Technologies: pygeoapi, docker, caddy, authelia

Stream leader: Youssef Harby

Proposed schedule: 10th of July, 14:30 - 15:00 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

MapML

Description This tutorial session will review the concepts, markup and API exposed by the <mapml-viewer> and the rest of the MapML polyfill.

Technologies: You can install and use the MapML polyfill via npm. To obtain your own MapML content, it is possible to install and use the GeoServer open source project across a variety of data sources and formats. There may be some useful information for you on the geo.ca MapML portal.

Requirements: Some knowledge of HTML and HTML DOM. Your own API knowledge. Maybe look at the docs for some ideas of what we'll discuss, you may have questions ahead of time.

Stream leaders: Peter Rushforth, Aliyan Haq, Natural Resources Canada

Proposed schedule: 10th of July, 15:10 - 17:10 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

Introduction to EDR

This will be an introduction to the OGC API - Environmental Data Retrieval (EDR) Standard.

OGC API - EDR provides a family of lightweight query interfaces to access spatio-temporal data resources by requesting data at a position, within an area, along a trajectory or through a corridor. A spatio-temporal data resource is a collection of spatio-temporal data that can be sampled using the EDR query pattern geometries.

Stream leader: Chris Little

Proposed schedule: 10th of July, 19:10 - 19:50 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

Mentor Stream on day 2

Applying TrainingDML-AI

In this tutorial, we will explore the Training Data Markup Language for Artificial Intelligence (TrainingDML-AI) Standard and its application to storing/retrieving Machine Learning training data.

Technologies: TrainingDML-AI, Python, STAC

Requirements: A basic understanding of Python is recommended but not critical if you're happy to play with some existing code in a Jupyter Notebook.

Stream leader: Sam Lavender

Proposed schedule: 11th of July, 14:30 - 15:00 UTC+1 - https://www.timeanddate.com/worldclock/meetingtime.html?day=10&month=7&year=2024&p1=224&p2=179&p3=16&p4=44&p5=240&p6=136&p7=133&iv=0

Clone this wiki locally