diff --git a/2023/GeoMundus/imagenes/Census_Bureau_Geographers_Cartographers_sm.webp b/2023/GeoMundus/imagenes/Census_Bureau_Geographers_Cartographers_sm.webp new file mode 100644 index 0000000..9355477 Binary files /dev/null and b/2023/GeoMundus/imagenes/Census_Bureau_Geographers_Cartographers_sm.webp differ diff --git a/2023/GeoMundus/imagenes/Mappa_di_Eratostene.webp b/2023/GeoMundus/imagenes/Mappa_di_Eratostene.webp new file mode 100644 index 0000000..b0bddc2 Binary files /dev/null and b/2023/GeoMundus/imagenes/Mappa_di_Eratostene.webp differ diff --git a/2023/GeoMundus/imagenes/blackcatzoningout_meme.webp b/2023/GeoMundus/imagenes/blackcatzoningout_meme.webp new file mode 100644 index 0000000..aef5e99 Binary files /dev/null and b/2023/GeoMundus/imagenes/blackcatzoningout_meme.webp differ diff --git a/2023/GeoMundus/imagenes/business-cat.webp b/2023/GeoMundus/imagenes/business-cat.webp new file mode 100644 index 0000000..e3396ae Binary files /dev/null and b/2023/GeoMundus/imagenes/business-cat.webp differ diff --git a/2023/GeoMundus/imagenes/chatGPTRandom.webp b/2023/GeoMundus/imagenes/chatGPTRandom.webp new file mode 100644 index 0000000..4899ba6 Binary files /dev/null and b/2023/GeoMundus/imagenes/chatGPTRandom.webp differ diff --git a/2023/GeoMundus/imagenes/chemistry-cat.webp b/2023/GeoMundus/imagenes/chemistry-cat.webp new file mode 100644 index 0000000..baabafe Binary files /dev/null and b/2023/GeoMundus/imagenes/chemistry-cat.webp differ diff --git a/2023/GeoMundus/imagenes/conference.webp b/2023/GeoMundus/imagenes/conference.webp new file mode 100644 index 0000000..5ccb3bf Binary files /dev/null and b/2023/GeoMundus/imagenes/conference.webp differ diff --git a/2023/GeoMundus/imagenes/cycle.webp b/2023/GeoMundus/imagenes/cycle.webp new file mode 100644 index 0000000..f81f47f Binary files /dev/null and b/2023/GeoMundus/imagenes/cycle.webp differ diff --git a/2023/GeoMundus/imagenes/flux_diagram.svg b/2023/GeoMundus/imagenes/flux_diagram.svg new file mode 100644 index 0000000..9d45fb4 --- /dev/null +++ b/2023/GeoMundus/imagenes/flux_diagram.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + data.csv + + + + + + + split + + + + + + + + + + + + + + + + + + + data + + + + + + + XML API + + + + + + + process + + + + + + + + + + + + + + + + + + + properties' + + + + + + + DB + + + + + + + process + + + + + + + + + + + + + + + + + + + data''' + + + + + + + properties'' + + + + + + + aggregate + + + + + + + + + + + + + + + + + + + store + + + + + + + + + + + + + + + + + + + process + + + + + + + + + + + + + + + + + + + data' + + + + + + + process' + + + + + + + + + + + + + + + + + + + data'' + + + + + + + + data + + + + + + + DB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2023/GeoMundus/imagenes/kaoto.webp b/2023/GeoMundus/imagenes/kaoto.webp new file mode 100644 index 0000000..2a8c1bf Binary files /dev/null and b/2023/GeoMundus/imagenes/kaoto.webp differ diff --git a/2023/GeoMundus/imagenes/loading-cat.webp b/2023/GeoMundus/imagenes/loading-cat.webp new file mode 100644 index 0000000..1395d03 Binary files /dev/null and b/2023/GeoMundus/imagenes/loading-cat.webp differ diff --git a/2023/GeoMundus/imagenes/mapsGPT.webp b/2023/GeoMundus/imagenes/mapsGPT.webp new file mode 100644 index 0000000..f6b8fb7 Binary files /dev/null and b/2023/GeoMundus/imagenes/mapsGPT.webp differ diff --git a/2023/GeoMundus/imagenes/persian-cat-room-guardian.webp b/2023/GeoMundus/imagenes/persian-cat-room-guardian.webp new file mode 100644 index 0000000..87a82ce Binary files /dev/null and b/2023/GeoMundus/imagenes/persian-cat-room-guardian.webp differ diff --git a/2023/GeoMundus/imagenes/proxima.webp b/2023/GeoMundus/imagenes/proxima.webp new file mode 100644 index 0000000..0c002ee Binary files /dev/null and b/2023/GeoMundus/imagenes/proxima.webp differ diff --git a/2023/GeoMundus/imagenes/random.webp b/2023/GeoMundus/imagenes/random.webp new file mode 100644 index 0000000..0e1359e Binary files /dev/null and b/2023/GeoMundus/imagenes/random.webp differ diff --git a/2023/GeoMundus/imagenes/textToMap.webp b/2023/GeoMundus/imagenes/textToMap.webp new file mode 100644 index 0000000..0d6d967 Binary files /dev/null and b/2023/GeoMundus/imagenes/textToMap.webp differ diff --git a/2023/GeoMundus/imagenes/wf-boxes-malcolm-2532103849.webp b/2023/GeoMundus/imagenes/wf-boxes-malcolm-2532103849.webp new file mode 100644 index 0000000..c068a8d Binary files /dev/null and b/2023/GeoMundus/imagenes/wf-boxes-malcolm-2532103849.webp differ diff --git a/2023/GeoMundus/imagenes/work_done.webp b/2023/GeoMundus/imagenes/work_done.webp new file mode 100644 index 0000000..d240498 Binary files /dev/null and b/2023/GeoMundus/imagenes/work_done.webp differ diff --git a/2023/GeoMundus/imagenes/ygritte.webp b/2023/GeoMundus/imagenes/ygritte.webp new file mode 100644 index 0000000..eb802a1 Binary files /dev/null and b/2023/GeoMundus/imagenes/ygritte.webp differ diff --git a/2023/GeoMundus/index.html b/2023/GeoMundus/index.html new file mode 100644 index 0000000..c2b6d1b --- /dev/null +++ b/2023/GeoMundus/index.html @@ -0,0 +1,548 @@ + + + + + The Future of the Developer Tooling for Geospatial || GeoMundus + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

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 Tooling?
  • +
  • Guess the future
  • +
+
+ + +
+
+
+
FAIR Data and Reproducible Science
+
+
+

What do we want?

+ +

When we talk about GeoSpatial Science

+
+ +
+
+
+

What do we want?

+
    +
  • FAIR Data
  • +
      +
    • Findable
    • +
    • Accessible
    • +
    • Interoperable
    • +
    • Reusable
    • +
    +
  • Reproducible Science
  • +
+
+ +
+
+
+

How to be FAIR

+
    +
  • Use Standard Formats
  • +
  • Use Standard Protocols
  • +
  • Like INSPIRE
  • +
  • Publish Data with Open License
  • +
  • Use Open Data
  • +
+
+ +
+
+
+

How to Reproduce Science

+
    +
  • Hand by hand with FOSS
  • +
      +
    • Need to see and run the code
    • +
    +
  • Not all scientists are developers
  • +
      +
    • Reuse libraries and frameworks
    • +
    • The less code, the better
    • +
    • Low Code and No Code
    • +
    +
+
+ +
+
+
+

How Software Evolves

+ +
+ +
+
+
+
The Evolution of Geospatial
+
+
+

Does this also apply in 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 Era

+ +

Census Bureau cartographers prepare maps for the 1960 census.

+
+
+
+
+
Digitalization
+
+
+

Digitalization

+
    +
  • Better Editing Tools
  • +
  • Better Storage Formats
  • +
  • More Detail
  • +
  • GeoComputation
  • +
      +
    • Ontology and Semantics
    • +
    +
  • Able to manage more Datasets
  • +
  • Satellite and Aerial Data
  • +
  • Raster!!
  • +
+

Which leads to high quality Big Data

+
+
+
+ +
+
+
+

What do we do with the Big Data?

+ +
+
+
+
+

The power of 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?

+ +
+
+
+
+ +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/stylesheets b/stylesheets index 13cefef..443ac24 160000 --- a/stylesheets +++ b/stylesheets @@ -1 +1 @@ -Subproject commit 13cefeff4c2be994f40083677681025feeea1ceb +Subproject commit 443ac24608b24599443cd0550ac2860e54b4941c