Skip to content

Let's meet in tartu @ FOSS4G

We're excited to announce that Krishna Lodha from Rotten Grapes Private Ltd. will be attending FOSS4G-EU in Tartu this year. We will be giving interesting talks and conducting workshops, here is the schedule


Building Spatial APIs in PostgreSQL with PostgREST

07-01, 09:00–11:00 (Europe/Tallinn), Room 301

Spatial data has become an integral part of modern applications, enabling developers to create location-aware and geospatially enhanced services. This workshop aims to guide participants through the process of creating powerful Spatial APIs in PostgreSQL using the PostgREST framework. PostgreSQL, renowned for its extensibility and support for spatial data, combined with the simplicity and efficiency of PostgREST, provides a robust foundation for developing spatially-aware applications.

The workshop will cover fundamental concepts of spatial databases, delve into PostgreSQL's spatial capabilities, and demonstrate the seamless integration of PostgREST to expose spatial data as RESTful APIs. Participants will gain hands-on experience in designing and implementing spatial queries, leveraging PostGIS extensions, and configuring PostgREST to serve spatial data efficiently.

Workshop line out will be as follow : - PostgreSQL and PostGIS Essentials - PostgREST Overview - Hands-On Implementation of creating existing as well as new spatial functions to be used in API - Authentication for APIs based on PostgreSQL users

Styling Natural Earth with GeoServer

07-01, 14:00–18:00 (Europe/Tallinn), Room 335

Natural Earth is a public domain map dataset available at 1:10m, 1:50m, and 1:110 million scales. Featuring tightly integrated vector and raster data, with Natural Earth one can build a variety of visually pleasing, well-crafted maps with cartography or GIS software.

GeoServer GeoCSS is a CSS inspired language allowing you to build maps without consuming fingertips in the process, while providing all the same abilities as SLD.

This workshop will how how to style Natural Earth with GeoServer CSS, showing how simple, compact styles can be used to prepare a multiscale map, covering: * Leveraging CSS cascading. * Building styles that respond to scales in ways that go beyond simple scale dependencies. * Various types of labeling tricks (conflict resolution and label priority, controlling label density, label placement, typography, labels in various scripts, label shields and more). * Quickly controlling colors with LessCSS inspired functions. * Building symbology using GeoServer large set of well known marks.

We will make available an all-in-one package to run the workshop as a Virtual Machine or a self-contained Zip file. This should be pre-installed on attendees laptops before the workshop.

Diving into pygeoapi

07-02, 09:00–13:00 (Europe/Tallinn), Room 246

pygeoapi is an OGC Reference Implementation supporting numerous OGC API specifications. Lightweight, easy to deploy and cloud-ready, pygeoapi's architecture facilitates publishing datasets and processes from multiple data sources to the Web. This tutorial will cover publishing geospatial data to the Web, and using the API from QGIS, OWSLib and a web browser. The workshop will cover the following OGC API standards:

  • OGC API - Features (OAFeat)
  • OGC API - Coverages (OACov)
  • OGC API - Maps (OAMaps)
  • OGC API - Tiles (OATiles)
  • OGC API - Processes (OAProc)
  • OGC API - Records (OARec)
  • OGC API - Environmental Data Retrieval (EDR)
  • SpatioTemporal Asset Catalog (STAC)

Doing Geospatial with Python

07-02, 14:00–18:00 (Europe/Tallinn), Room 246

With a low barrier to entry and large ecosystem of tools and libraries, Python is the lingua franca for geospatial development. Whether you are doing data acquisition, processing, publishing, integration or analysis, there is no shortage of solid Python tools to assist in your daily workflows.

This workshop will provide an introduction to performing common GIS/geospatial tasks using Python geospatial tools such as OWSLib, Shapely, Fiona/Rasterio, and common geospatial libraries like GDAL, PROJ, pycsw, as well as other tools from the geopython toolchain. Manipulate vector/raster data using Shapely, Fiona and Rasterio. Publish data and metadata to OGC web services using pygeoapi, pygeometa, pycsw, and more. Visualize your data on a map using Jupyter and Folium. Plus a few extras in between!

The workshop is provided using the Jupyter Notebook environment with Python 3.


geoserverx - a new CLI and library to interact with GeoServer

07-03, 15:00–15:05 (Europe/Tallinn), Van46 ring

geoserverx is a modern Python package that provides an efficient and scalable way to interact with Geoserver REST APIs. It leverages the asynchronous capabilities of Python to offer a high-performance and reliable solution for managing Geoserver data and services. With geoserverx, users can easily access and modify data in Geoserver, such as uploading and deleting shapefiles, publishing layers, creating workspaces, styles, etc. . The package supports asynchronous requests along with synchronous method to the Geoserver REST API, which enables users to perform multiple tasks simultaneously, improving performance and reducing wait times. Apart from being implemented in Python Projects, geoserverx also provides CLI support for all of it's operations. Which makes it useful for people who want to avoid Python all-together. In this talk we discover for the very first time about how geoserverx work and underlying code ideology. Along with that we'll also spread some light on upcoming modules to be integrated in geoserverx

Creating GIS Rest APIS using Geodjango under 30 minutes

07-04, 17:45–17:50 (Europe/Tallinn), LAStools (327)

We're living in the world of APIs. CRUD operations are base of lot of operations. Many smart frameworks such as Django, Flask, Laravel provides out of the box solutions to filter the data, which covers almost all needs to separate data based on column values. When it comes to Geospatial data, we expect to filter data based on their location property instead of metadata. This is where things get complicated, if you are using framework that doesn't have package, library built to handle such use cases, you are likely to be dependent on either database or any external package to handle it.

Fortunately Geodjango (Django's extension) allows us to create databases which understands geometry and can process it. It also provides support to write APIs using Rest Framework extension [] which takes this to next level allowing user to output the data in various formats, creating paginations inside geojson, create TMSTileFilters, etc.

In this talk we'll scratch the surface of this python package and see how to build basic CRUD APIs to push, pull GIS data along with filtering it to the PostgreSQL database


I'll be in Tartu from 30th June till 7th July, you can reach out to me