SlideShare a Scribd company logo
Geospatial Data Processing
with Stetl
Just van den Broecke
GeoPython 2016
Muttenz - Switserland
June 24, 2016
www.justobjects.nl
www.stetl.org
About Me
Independent Open Source Geospatial Professional
+ Secretary OSGeo Dutch Local Chapter
+ Member of the Dutch OpenGeoGroep
Just van den Broecke
just@justobjects.nl
www.justobjects.nl
Agenda
• Spatial ETL
• Stetl
• Concepts
• Cases
• Status
• Q & A
Spatial ETL
Data Wrangling
ETL - Extract Transform Load
Spatial ETL
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
Spatial ETL 

Example non-standard source
From: https://live.osgeo.org/en/overview/gdal_overview.html
Geospatial ETL with Stetl - GeoPython 2016
Plenty of Tools…
Each tool is powerful by itself but
cannot do the entire ETL
ogr2ogr
Spatial ETL
FOSS ETL - How to Combine
Components?
=
+ + ?+ ..
Example - 2011 INSPIRE-FOSS
http://inspire.kademo.nl/doc/design-etl.html
Nice ideas but hard to
scale, deploy and reuse. 

Need Framework
Solution: Add Python to the Equation
=+ + ?( )+ ..
Stetl
Solution: Add Python to the Equation
=+ +( )+ ..
Stetl
=
Simple
Streaming
Spatial
Speedy
ETL
Stetl
Concepts
Process Chain
Input Filter OutputFilter
Stetl concepts
Source Target
Process Chain
Input Filter Output
gml
Filter
Stetl concepts
Example: GML to PostGIS
GML

Reader
PG

Output
gml
Stetl concepts
Example: Data Model Transform
OGR
Reader
XSLT
GML

Writer
gml
Stetl concepts
Simple
Features
Complex
Features
or
Jinja2 !
Process Chain - How?
Input Filters Output
Stetl concepts
Stetl
Config File
Instantiate
Example: XML to Shape
XML
Input
XSLT
Filter
OGR
Output
Example: XML to Shape
The Source File
Example: XML to Shape
XML
Input
Example: XML to Shape
XML
Input
XSLT
Filter
Example: XML to Shape
Prepare XSLT Script
Example: XML to Shape
XSLT GML Output
Example: XML to Shape
XML
Input
XSLT
Filter
OGR
Output
OGC
Simple
Features
XML
DOM
Example: XML to Shape
The Stetl Config File
Process
Chain
XML
InputXSLT
Filter
ogr2ogr
Output
Running Stetl
stetl -c etl.cfg
stetl -c etl.cfg [-a <properties>]
Installing Stetl - PyPi
Deps
•GDAL+Python bindings
•lxml (xml proc)
•psycopg2 (Postgres)
sudo pip install stetl
Installing Stetl - new: Docker
https://hub.docker.com/r/
justb4/stetl
Speed: Streaming
Input Filter Output
gml
Stetl concepts
Speed: Going Native
Input Filter Output
gml
ogr2ogr StetlStetl
Native C Libs/Progs
Calls
Stetl concepts
Example Components
Input Filters Output
Stetl concepts
XMLFile XSLT GML
ogr2ogr XMLAssembler GDAL/OGR
LineStream XMLValidator WFS-T
Postgres/PostGIS Jinja2 Postgres/PostGIS
deegree* FeatureExtractor deegree*
YourInput YourFilter YourOutput
Example: XsltFilter Pythonfrom util import Util, etree
from filter import Filter
from packet import FORMAT
log = Util.get_log("xsltfilter")
class XsltFilter(Filter):
# Constructor
def __init__(self, configdict, section):
Filter.__init__(self, configdict, section, consumes=FORMAT.etree_doc,
produces=FORMAT.etree_doc)
self.xslt_file_path = self.cfg.get('script')
self.xslt_file = open(self.xslt_file_path, 'r')
# Parse XSLT file only once
self.xslt_doc = etree.parse(self.xslt_file)
self.xslt_obj = etree.XSLT(self.xslt_doc)
self.xslt_file.close()
def invoke(self, packet):
if packet.data is None:
return packet
return self.transform(packet)
def transform(self, packet):
packet.data = self.xslt_obj(packet.data)
log.info("XSLT Transform OK")
return packet
[etl]
chains = input_xml_file|my_filter|output_std
[input_xml_file]
class = inputs.fileinput.XmlFileInput
file_path = input/cities.xml
# My custom component
[my_filter]
class = my.myfilter.MyFilter
[output_std]
class = outputs.standardoutput.StandardXmlOutput
class MyFilter(Filter):
# Constructor
def __init__(self, configdict, section):
Filter.__init__(self, configdict, section, consumes=FORMAT.etree_doc,
produces=FORMAT.etree_doc)
def invoke(self, packet):
log.info("CALLING MyFilter OK!!!!")
return packet
Your Own Components
Stetl concepts
Step 1- Define Class
Step 2- Configure Class
Data Structures
Stetl concepts
• Components exchange Packets
• Packet contains data and status
• Data formats, e.g. :
xml_line_stream
etree_doc

etree_element (feature)
etree_element_array
string
any
.
.
Cases
Geospatial ETL with Stetl - GeoPython 2016
Cases - GML to PostGIS
• National Dutch Open Datasets (GML)



http://nlextract.nl
✴ Topography:Top10NL, BGT
✴ Cadastral Parcels (BRK)

• Ordnance Survey UK
✴ PoC Topography (OS Mastermap)
Cases - IoT/SensorWeb
• SOSPilot
✴ Dutch Air Quality Data
✴ publish to PostGIS+SOS (SOS-T)
✴ EU Reporting (Jinja2 Filter)
✴ sospilot.geonovum.nl
• Smart Emission
✴ AQ Sensors hosted by citizens
✴ Calibration/Aggregation
✴ publication to SOS and OGC SensorThings
✴ data.smartemission.nl
Project Status - June 24, 2016
• v1.0.9 installable via PyPi or Docker
• Documentation on www.stetl.org
• Real world transforms done
Project - Planned & in progress
• PyWPS integration
• GUI 

- Flask+Celery+Redis? 

- Node Red?

- Jupiter Notebook?
• More on GitHub

https://github.com/geopython/stetl
ThankYou !
www.stetl.org
github.com/geopython/stetl

More Related Content

DOCX
Program quiz bee
DOCX
Araling Panlipunan Grade 2
DOCX
Lesson plan hks 6 -kahalagahan ng edukasyon at kalusugan
PDF
Learning Recovery Plan-Joan Kitong - Copy.pdf
DOCX
DLL EPP- Home Economics.docx
PDF
K to 12 Grade 3 DLL ENGLISH (Q1 – Q4)
PDF
Contextualization in the Philippines
PPTX
LAC on DESIGNED, ADAPTED AND IMOLEMENTED TEACHING STRATEGIES THAT ARE RESPONS...
Program quiz bee
Araling Panlipunan Grade 2
Lesson plan hks 6 -kahalagahan ng edukasyon at kalusugan
Learning Recovery Plan-Joan Kitong - Copy.pdf
DLL EPP- Home Economics.docx
K to 12 Grade 3 DLL ENGLISH (Q1 – Q4)
Contextualization in the Philippines
LAC on DESIGNED, ADAPTED AND IMOLEMENTED TEACHING STRATEGIES THAT ARE RESPONS...

What's hot (18)

PDF
[Sách chuyên ngành hóa học online] bài tập hóa học đại cương &amp; hóa lý cơ ...
DOCX
Balik Eskwela Narrative report
DOCX
3 class program 2013 2014
DOCX
home visit form.docx
DOCX
Dll esp10 q3 m10 session 1&2
PPTX
ESP 10 PANIMULANG ARALIN.pptx
PDF
Science reviewer for biology and physical sciences let examiness
PPTX
5 use adverbs of duration in sentences
DOCX
DEVelopment PLAN Phase 2 School year 2023-2024
PDF
K to 12 Grade 3 LAPG MATHEMATICS Reviewer
PDF
Sample-MOVs_-PMES-for-SY-2024-2025-DM-017-s.-2025.pdf
PPTX
Analysis on enrollment data
DOC
Bdhsg môn vật lý lớp 9 phần nhiệt học 2
DOCX
Grade Three K to 12 - Compilation of English Stories (First Quarter)
DOCX
THE GRADE- 6 COT- SOLAR SYSTEM LESSON PLAN
PPTX
CHECKING-OF-FORMS.pptx
DOCX
2021-SBM-Progress-Monitoring-2.docx
PPT
Bài giảng Powerpoint về Pha tối quang hợp
[Sách chuyên ngành hóa học online] bài tập hóa học đại cương &amp; hóa lý cơ ...
Balik Eskwela Narrative report
3 class program 2013 2014
home visit form.docx
Dll esp10 q3 m10 session 1&2
ESP 10 PANIMULANG ARALIN.pptx
Science reviewer for biology and physical sciences let examiness
5 use adverbs of duration in sentences
DEVelopment PLAN Phase 2 School year 2023-2024
K to 12 Grade 3 LAPG MATHEMATICS Reviewer
Sample-MOVs_-PMES-for-SY-2024-2025-DM-017-s.-2025.pdf
Analysis on enrollment data
Bdhsg môn vật lý lớp 9 phần nhiệt học 2
Grade Three K to 12 - Compilation of English Stories (First Quarter)
THE GRADE- 6 COT- SOLAR SYSTEM LESSON PLAN
CHECKING-OF-FORMS.pptx
2021-SBM-Progress-Monitoring-2.docx
Bài giảng Powerpoint về Pha tối quang hợp
Ad

Viewers also liked (8)

PDF
5 Minute Intro to Stetl
PDF
Taming Rich GML with Stetl - FOSS4G 2013 Nottingham
DOCX
Installing pentaho data integration
PDF
Stetl for INSPIRE Data Transformation
PDF
BRIN indexes on geospatial databases - FOSS4G.NA 2016
PPTX
Performance and Application of GIS and Big Data ETL Processes Using FME
PDF
2016 foss4 g track: developing and implementing spatial etl processes with...
PDF
Intégration des données avec Talend ETL
5 Minute Intro to Stetl
Taming Rich GML with Stetl - FOSS4G 2013 Nottingham
Installing pentaho data integration
Stetl for INSPIRE Data Transformation
BRIN indexes on geospatial databases - FOSS4G.NA 2016
Performance and Application of GIS and Big Data ETL Processes Using FME
2016 foss4 g track: developing and implementing spatial etl processes with...
Intégration des données avec Talend ETL
Ad

Similar to Geospatial ETL with Stetl - GeoPython 2016 (20)

PDF
Stetl-engine-nlextract-smartem
PDF
Geospatial ETL with Stetl
PDF
.NET @ apache.org
PPTX
Attack monitoring using ElasticSearch Logstash and Kibana
PPTX
Jaffle: managing processes and log messages of multiple applications in devel...
PPT
20100707 e z_rmll_gig_v1
PDF
Balisage - EXPath - A practical introduction
PPTX
Golang basics for Java developers - Part 1
PDF
Formatting ForThe Masses
PDF
Softshake - Offline applications
PDF
"Xapi-lang For declarative code generation" By James Nelson
PDF
EuroPython 2020 - Speak python with devices
PPT
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
ODP
AD215 - Practical Magic with DXL
PPTX
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
PPTX
Sencha / ExtJS : Object Oriented JavaScript
PPTX
Java n-plus-1-incl-demo-slides
PDF
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
PPTX
Search and analyze data in real time
PDF
Alfresco monitoring with Nagios and ELK stack
Stetl-engine-nlextract-smartem
Geospatial ETL with Stetl
.NET @ apache.org
Attack monitoring using ElasticSearch Logstash and Kibana
Jaffle: managing processes and log messages of multiple applications in devel...
20100707 e z_rmll_gig_v1
Balisage - EXPath - A practical introduction
Golang basics for Java developers - Part 1
Formatting ForThe Masses
Softshake - Offline applications
"Xapi-lang For declarative code generation" By James Nelson
EuroPython 2020 - Speak python with devices
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
AD215 - Practical Magic with DXL
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
Sencha / ExtJS : Object Oriented JavaScript
Java n-plus-1-incl-demo-slides
JDD 2016 - Grzegorz Rozniecki - Java 8 What Could Possibly Go Wrong
Search and analyze data in real time
Alfresco monitoring with Nagios and ELK stack

More from Just van den Broecke (20)

PDF
Just's Career Highlights - Version 2
PDF
Just's Career Highlights - Version 1
PDF
Open Sensor Networks
PDF
Open Sensor Networks with LoRa TTN and SensorThings API
PDF
Sensor SDI in PDOK with Smart Emission Platform
PDF
osgeonl-opening-foss4gnl-2018
PDF
OSGeo.nl-NewYearsParty-2018-Opening
PDF
Opening OSGeo.nl Day 2017
PDF
Smart Emission Data Platform
PPT
De Levenscyclus van Open Geodata met Open Source Tools
PDF
NLExtract Project - OGT Award Pitch GeoBuzz 2016
PDF
Smart Emission - Citizens measuring Air Quality - Overview
PDF
Smart Emission - Data - Viewers - Standards
PDF
NLExtract voor BAG - overview
PDF
3D Breakthrough Meeting - 3D Standards progress
PDF
Wandelen met GPS en De Evolutie van Navigatie
PDF
OSGeo.nl - Year 2014 Highlights
PDF
Nederland Ontsloten! OSGeo.nl Dag 2014
PDF
Big Data - Introduction and Research Topics - for Dutch Kadaster
PDF
SensorWeb SOS Pilot RIVM/Geonovum - Status
Just's Career Highlights - Version 2
Just's Career Highlights - Version 1
Open Sensor Networks
Open Sensor Networks with LoRa TTN and SensorThings API
Sensor SDI in PDOK with Smart Emission Platform
osgeonl-opening-foss4gnl-2018
OSGeo.nl-NewYearsParty-2018-Opening
Opening OSGeo.nl Day 2017
Smart Emission Data Platform
De Levenscyclus van Open Geodata met Open Source Tools
NLExtract Project - OGT Award Pitch GeoBuzz 2016
Smart Emission - Citizens measuring Air Quality - Overview
Smart Emission - Data - Viewers - Standards
NLExtract voor BAG - overview
3D Breakthrough Meeting - 3D Standards progress
Wandelen met GPS en De Evolutie van Navigatie
OSGeo.nl - Year 2014 Highlights
Nederland Ontsloten! OSGeo.nl Dag 2014
Big Data - Introduction and Research Topics - for Dutch Kadaster
SensorWeb SOS Pilot RIVM/Geonovum - Status

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Nekopoi APK 2025 free lastest update
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administraation Chapter 3
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How to Choose the Right IT Partner for Your Business in Malaysia
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How Creative Agencies Leverage Project Management Software.pdf
PTS Company Brochure 2025 (1).pdf.......
Design an Analysis of Algorithms II-SECS-1021-03
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Wondershare Filmora 15 Crack With Activation Key [2025
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Nekopoi APK 2025 free lastest update
L1 - Introduction to python Backend.pptx
System and Network Administraation Chapter 3
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...

Geospatial ETL with Stetl - GeoPython 2016