Skip to content

Open Standards and Open Source Software Code Sprint

doublebyte1 edited this page Apr 29, 2023 · 93 revisions

Organized by

Hosted by

Sponsored by

Gold-level Sponsor

Catering sponsored by HEIG-VD (School of Engineering and Management), EPFL, University of Lausanne, State of Neuchâtel, State of Vaud, and Camptocamp.

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 the this page for more information about sponsorship packages.

Topics

This sprint will cover all OGC API approved and candidate standards. Several OSGeo and Apache projects will participate. If you are new to Code Sprints, please check the mentor streams below.

Period and location

The code sprint will take place from 25th to 27th of April, 2023.

The meeting will be hybrid and will take place at the Camptocamp offices (near Geneva, Switzerland) and at the OGC events discord server. You can find here 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 CEST/UTC+2 (Central European Summer Time). 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
2023-04-25 Day #1: Kick-Off
09:00 - 09:15 Welcome remarks from the Initiative Manager and Event Host V:🏛 #jitsi
09:15 - 09:35 Overview and Sprint Goals for participating OGC standards working groups - Gobe Hobona V:🏛 #jitsi
09:35 - 09:55 Overview and Sprint Goals for participating OSGeo projects - Tom Kralidis V:🏛 #jitsi
09:55 - 10:15 Overview and Sprint Goals for Apache projects - Martin Desruisseaux V:🏛 #jitsi
10:15 - 10:30 Q&A V:🏛 #jitsi
10:30 - 11:30 5-minute introduction per project or working group - more info V:🏛 #jitsi
11:30 - 12:30 Practical Work V:👥 #Breakout Room
11:30 - 12:30 Practical Work V:👥 #OSGeo Room
12:30 - 13:30 Lunch 🍜
13:30 - 17:00 Practical Work V:👥 #Breakout Room
13:30 - 17:00 Practical Work V:👥 #OSGeo Room
17:00 - 18:00 Early dinner 🍜
18:00 - 20:00 Practical work V:👥 #Breakout Room
18:00 - 20:00 Practical Work V:👥 #OSGeo Room
20:00 - 21:00 Daily Brief Back V:🏛 #Gotomeeting and phone numbers
2023-04-26 Day #2
09:00 - 10:00 Practical work (DGGS Group Session) V:👥 #Breakout Room
09:00 - 10:00 Practical Work V:👥 #OSGeo Room
10:00 - 11:00 Stand-up & demos V:🏛 #Main Stage
11:00 - 12:30 Practical work V:👥 #Breakout Room
10:30 - 12:30 Practical Work V:👥 #OSGeo Room
12:30 - 13:30 Lunch 🍜
13:30 - 16:30 Practical Work V:👥 #Breakout Room
13:30 - 17:00 Practical Work V:👥 #OSGeo Room
16:00 - 17:00 Mapbox vector tiles specification Zoom
16:30 - 17:00 OGC API Features - Schema discussion V:👥 #Breakout Room
17:00 - 18:00 Early dinner 🍜
18:00 - 20:00 Practical work V:👥 #Breakout Room
18:00 - 20:00 Practical Work V:👥 #OSGeo Room
20:00 - 21:00 Daily Brief Back V:🏛 #Main Stage
2023-04-27 Day #3: Final Day
09:00 - 10:00 Practical work V:👥 #Breakout Room
09:00 - 10:00 Practical Work V:👥 #OSGeo Room
10:00 - 11:00 Stand-up & demos V:🏛 #Main Stage
11:00 - 13:00 Practical work V:👥 #Breakout Room
11:00 - 13:00 Practical Work V:👥 #OSGeo Room
13:00 - 14:00 Lunch 🍜
14:00 - 15:00 Practical work V:👥 #Breakout Room
14:00 - 15:00 Practical Work V:👥 #OSGeo Room
15:00 - 17:00 Demos & Wrap-up V::📣 GotoMeet

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]()

Feel free to use Jitsi (or another platform) for the meetings, provided the link is stated in the agenda.

Initiative Manager

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

Organising Committee

Gobe Hobona (OGC), Scott Simmons (OGC), Angelos Tzotsos (OSGeo), Tom Kralidis (OSGeo), Brian Proffit (ASF), Martin Desruisseaux (ASF) and Emmanuel Belo (Camptocamp).

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.

Which OGC standards working groups are going to participate?

Which OSGeo projects are going to participate?

  • pygeoapi
  • pycsw
  • other Geopython: OWSLib, pygeometa
  • GeoNetwork
  • geOrchestra
  • ZOO-Project
  • GeoStyler
  • Geoserver
  • OpenLayers / OL-Cesium
  • Maplibre
  • TEAM Engine

Which Apache projects are going to participate?

  • Apache SIS
  • Apache Baremaps, contact Bertil Chapuis (@bchapuis, bchapuis@gmail.com)
  • Apache Superset, contact Jan Suleiman (suleiman at terrestris.de)

Which Geospatial FOSS projects are going to participate?

Collaborate activities

What activities or tasks might OSGeo and Apache projects work on together with OGC working groups during the 2023 joint code sprint?

Post your ideas as comments in this GitHub Issue.

Project and Working Group Pitches

At the end the welcome session on the first day, we will give projects and working groups 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 add the name of the project and your name to the list bellow.

  • OL-Cesium, Guillaume Beraudo
  • OGC Indoor GML, Ki-Joune Li
  • GeoNetwork, Florent Gravin
  • OGC GeoAPI, Martin Desruisseaux
  • Apache SIS, Martin Desruisseaux
  • OGC API - Processes, Peter Vretanos (Part 1-2-3?) (and Jerome St-Louis - Part 3?)
  • OGC Styles & Symbology, Jerome St-Louis
  • OGC API - Coverages, Jerome St-Louis
  • OGC API - DGGS, Jerome St-Louis
  • OGC API - Maps, Jerome St-Louis
  • OGC API - Records, Tom Kralidis
  • GeoPython (e.g.: pygeoapi, pycsw, OWSLib, pygeometa), Tom Kralidis
  • Apache Baremaps, Bertil Chapuis
  • OGC API - Features, Clemens Portele
  • HomeAssistant - SensorThings prototype, Iván Sánchez
  • TEAM Engine, Dirk Stenger
  • GeoStyler, Jan Suleiman

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. For this event (and hopefully future events if it works well), we will have mentors 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. All the mentor streams will take place in the V:🎙 jitsi room. If you would like to be a mentor, please add your name and project bellow. More guidance about mentoring at the code sprint was provided at the "Mentors onboarding session", on the 18th of March at 10am CEST. If you could not attend, you can check out the recording and slide deck.

Date Time Day/ Activity Discord channel
2023-04-25 Time not conflicting with Events Project X Mentor available for onboarding V:🎙 Mentor Room

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.

Proposed schedule: 25th of April, 12:00 - 12:30 CEST (UTC+2)

GeoXACML 3.0 – Fine grained access control with spatio-temporal conditions

In this tutorial will learn how to request access decisions (including advice or obligation) on spatio-temporal conditions. For example, “Can Alice see the tiles from layer ‘frogs’ at location 47,11”?

Technologies: Java for the server implementation, any programming language for the client that can (un)serialize JSON

Requirements: A basic understanding of OGC API Tiles is recommended.

Stream leader: Andreas Matheus

Proposed schedule: 25th of April, 13:30 - 14:30 CEST (UTC+2)

OGC IndoorGML – Making Indoor Maps in IndoorGML and its Applications

OGC IndoorGML, an OGC standard for indoor spatial information, has been published to meet the demands for indoor maps and its applications. This OGC sprint will provide a general understanding on OGC IndoorGML and practical tutorial on how to make IndoorGML data and apply it to real applications. A hands-on for building IndoorGML data from floorplan will be included with open source software tools. At the end of the OGC sprint, we will also discuss future challenges for promoting IndoorGML, particularly from the viewpoints of open source software tools.

Technologies: Javascript and XML (or GML)

Requirements: A basic understanding of OGC GML and spatial data models

Stream leader: Ki-Joune Li (e-mail: lik@pnu.edu)

Proposed schedule: 25th of April, 14:45 - 15:45 CEST (UTC+2)

GeoAPI, PROJ-JNI and Apache SIS – How to integrate in your project

In this tutorial, we will start with a Maven project using GeoAPI and PROJ-JNI. We will show how to setup the project in such a way that coordinate operations can be performed without exposing the implementation (PROJ-JNI in this example). This step demonstrates how a project can offer to their developers a separation between public API (GeoAPI) and implementation details (PROJ-JNI).

In the next step, we will replace the PROJ-JNI implementation by Apache SIS. Then we will expand the coordinate operation example step-by-step using the scenario described in OGC TestBed 18: Reference Frame Transformation Engineering Report. This engineering report describes how OGC standards and GML encoding can be used for describing a transformation from coordinates relative to a spacecraft (e.g., Voyager 2) to coordinates relative to Earth. This step demonstrates advanced referencing services well beyond classical map projections, how OGC standards support them and how Apache SIS implements them.

In the next step, we will perform some basic raster operations using GeoTIFF and netCDF data. A multi-dimensional data cube will be built and scalability with large files will be shown. This step goes beyond the current GeoAPI scope, but can be used as a basis for a discussion about what a GeoAPI coverage package may look like.

Technologies: Java

Requirements: Java programming, basic understanding of Coordinate Reference Systems and Grid Coverages.

Stream leader: Martin Desruisseaux

Proposed schedule: 25th of April, 16:00 - 17:00 CEST (UTC+2)

Integrate Apache SIS with Apache Sedona – CRS Transformation, GeoTiff Reader and more

Apache Sedona is a high-performance cluster computing system designed specifically for processing large-scale spatial data. The system leverages a number of open-source libraries, including GeoTools, to execute spatial operations such as Coordinate Reference System (CRS) transformation and file reading. However, as an Apache project, Sedona is striving to reduce its reliance on GeoTools due to licensing issues. In order to address this challenge, Sedona is migrating affected functions to Apache SIS, which offers improved support for CRS transformation.

This tutorial aims to provide a comprehensive introduction to Apache Sedona, covering its background and architecture, as well as several coding examples. Additionally, we will offer tips and tricks for hacking Sedona, in order to optimize your experience working with the system.

Technologies: Java, Scala, Apache Spark, Apache Flink, and Intelijj IDEA

Requirements: A basic understanding of Coordinate Reference System is recommended.

Stream leader: Jia Yu and Martin Desruisseaux

Proposed schedule: 25th of April, 18:00 - 19:00 CEST (UTC+2)

MapLibre Beginner Tutorial

https://github.com/wipfli/tutorial-ogc-code-sprint-lausanne

In this tutorial, we want to learn how to make an online map for hot-air ballooning. It should be a basemap showing roads an places, and we want to clearly show forests because they are bad for landing and we want to show electrical power lines, also because they are bad for landing.

We will use vector tiles from Swisstopo and their light base map style. Rendering in the frontend will be with MapLibre GL JS. We will change the default style to highlight forests better. Powerlines will be extracted from OpenStreetMap with Planetiler and we will store them in the PMTiles format.

Since I am bad at coding, we will generate as much code as possible with ChatGPT.

Technologies: JavaScript, ChatGPT, Vector Tiles

Requirements: None

Stream leader: Oliver Wipfli

Proposed schedule: 25th of April, 19:00 - 20:00 CEST (UTC+2) - Link to be defined

Related Events

The QGIS Contributor Meeting will take place the weekend before the code sprint, in 's-Hertogenbosch, The Netherlands. The schiphol airport, in the Netherlands is only a 90 minute flight from Geneva.

If you are interested in improving the support to standards in QGIS, this hackfest could be a good preparation for the code sprint. On Friday, there will be a session about this topic: please check out the event's agenda for more details.

Mentored projects

In addition to the stream of tutorials, we will also offer some mentored projects. Please follow this link to learn more about them.