The future of (Developer) Tooling for Geospatial

María Arias de Reyna Domínguez

@delawen@floss.social - @delawen@twitter.com

Senior Software Engineer

Who am I?
  • 2008 Software Engineer
  • Free and Open Source Advocate
  • GeoSpatial Ranger
    • 2007 Web Mapping Artificer
    • 2009 Dijkstra A* Warlock
    • 2012 Metadata Paladin
    • 2013 OSGeo Charter Member
      • 2017-2019 OSGeo President
  • Integration Druid
    • 2019 Apache Camel contributor
    • 2020 Apache Software Foundation Committer
    • 2021 Create Low Code/No Code Integrator
  • Java Champion
What we are going to talk about

(Developer) Tooling for GeoSpatial

  • What do we mean by (Developer) Tooling?
  • Guess the future to prepare best
The evolution of tooling

How Software Evolves

Does this also apply in GeoSpatial?

GeoSpatial Science

What drives innovation and defines future tooling

The Evolution of Geospatial

Evolution of Geospatial

The best way to infer our future is to study our evolution.

  • Analogic
  • Digitalization
  • Location Intelligence
  • Smart Geospatial
Analogic Era

Analogic Era

Mappa di Eratostene

Analogic Tooling

Early Technology

Census Bureau cartographers prepare maps for the 1960 census.

Digitalization

Digitalization

  • Better Editing Tools
  • Better Storage Formats
  • More Detail and Complex DataSets
    • Ontology and Semantics
  • Satellite and Aerial Data
    • Raster!!

What do we do with the Big Data?

Feed it with Big Data!

  • Artificial Neural Networks (ANN)
  • Heuristic Algorithms
  • Fuzzy Logics
  • Deep Learning

The power of Big Data

  • Identifying Spatial Patterns
    • Singularities and Anomalies
      • Land Use
      • Detect illegal buildings
    • Spatial Interpolation and Prediction
      • Flooding Prevention and Mitigation
      • Coastline evolution
  • Exploring Spatial Factors
  • Spatial Simulation
  • Decision Making
    • Better urban planning (roads, facilities,... )
Location Intelligence

Location Intelligence

Business Intelligence for GeoSpatial

Frameworks to simplify the work

                //Start with a timer that executes the operation every 10 seconds
                from("timer:java?period=10000")
                      //Access the CSV file which can be on an api or storage device
                      .to("{{source.csv}}")
                      //unmarshal and split the workflow per row 
                      .unmarshal().split(body()).streaming()
                      //process each row
                      //the process is defined in a separated file
                      .process(processCsv)
                      //push the results to the following API
                      .to("https://nominatim.example.com/reverse")
                      //the returned XML is also processed
                      .unmarshal().jacksonxml()
                      //again, the processor is defined in a separated file
                      .process(processXML)
                      //Prepare an SQL query based on the result of the process
                      .setBody().simple("SELECT info FROM table WHERE id like '${exchangeProperty.pollutant}'")
                      //send the SQL query to the database
                      .to("jdbc:postgresBean?readSize=1")
                      //collect the result and process it
                      .process(processDB)
                      //reunite the parallel streams that started on the csv processing
                      .aggregate(constant(true), aggregationStrategy)
                      .completionSize(5)
                      //given the list of outputs per row in csv, process it
                      .process(buildGeoJSON)
                      //store the result in another database
                      .to("mongodb:mongoBean?database=example&collection=mySpatialObjects&operation=insert")
                 
               
Smart Geospatial

Smart Geospatial

When we met "Artificial Intelligence"

What we won't discuss

Let's focus on what we can, not what we should.

Artificial Intelligence

Natural Language => Structured Format

  • Natural Language -> Query
    • Specific LLM models
  • Natural Language -> Spatial Data
    • Semantic models

Raster => Structured Data

  • Imagine Processing
  • Blind descriptions

Structured Format => Natural Language

  • Generate map descriptions
  • Generate labels automatically
  • Choose the best style

Example Case 1

Próximo

Generate a map based on locations described in a text.

Example Case 2

Text to Map

Instantly turn text sources and ChatGPT prompts into insightful interactive geo maps.

Example Case 3

Are we there yet?

Generative AI vs Derivative AI

  • Ethical concerns
  • Security concerns
    • Where does my data go?
    • Am I training my competitors?
    • Whose data I'm using?
  • Mix different types of AI
Food for Thought

There's a long road ahead

  • AI Helpers
  • Higher programming languages
    • Low Code
    • No Code
    • Better Frameworks and Libraries
  • Reuse as much code as you can
  • Validate your Data Sources
Questions?

Questions?