SlideShare a Scribd company logo
1 of 59
Download to read offline
Stetl: 

Geo-Conversion-Engine for
NLExtract and Smart
Emission
Just van den Broecke
FOSS4GNL 2018
Almere - The Netherlands
July 11, 2018
www.justobjects.nl
www.stetl.org
About Me
Independent Open Source Geospatial Professional
+ Chair 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
• NLExtract
• Smart Emission
• Q & A
Spatial ETL
ETL - Extract Transform Load
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
GeoPackage
PNG
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
GeoPackage
GeoTIFF
Spatial ETL
GML
PostGIS
Shapefile
WFS
CSV
SQLite
XML
Spatial ETL 

Example non-standard source
From: https://live.osgeo.org/en/overview/gdal_overview.html
Plenty of Tools…
Each tool is powerful by itself but
cannot do the entire ETL
ogr2ogr
Spatial ETL
FOSS ETL - How to Combine
Components?
=
+ + ?+ ..
Stetl
Solution: Add Python to the Equation
=+ +( )+ ..
Stetl
=
Simple
Streaming
Spatial
Speedy
ETL
And what about?
Stetl
Concepts
Process Chain
Input Filter OutputFilter
Stetl concepts
Each Block
is a (reusable) Python Class
Source
Data
Target
Data
Process Chain - GML to PostGIS
Input Filter Output
gml
Filter
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 File to Shapefile
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
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
record (dict)
string
any
.
.
Running Stetl
stetl -c etl.cfg
stetl -c etl.cfg [-a <properties>]
Example Components
Input Filters Output
Stetl concepts
XMLFile XSLT GML
ogr2ogr XMLAssembler GDAL/OGR
LineStream XMLValidator WFS-T
Postgres/PostGIS Jinja2 Postgres/PostGIS
CSV, JSON etc FeatureExtractor SOS, SensorThings API
YourInput YourFilter YourOutput
Example: XsltFilter Python Code
class XsltFilter(Filter):
"""
Invokes XSLT processor (via lxml) for given XSLT script on an etree doc.
"""
@Config(ptype=str, required=True)
def script(self):
"""
Path to XSLT script file.
"""
pass
def __init__(self, configdict, section):
Filter.__init__(self, configdict, section, consumes=FORMAT.etree_doc, produces=FORMAT.etree_doc)
self.xslt_file = open(self.script, '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):
packet.data = self.xslt_obj(packet.data)
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
Installing Stetl - PyPi
Deps
•GDAL+Python bindings
•lxml (xml proc)
•psycopg2 (Postgres)
sudo pip install stetl
Installing Stetl - Docker
https://hub.docker.com/r/
geopython/stetl
Case 1 - NLExtract
What is NLExtract?
ETL for Dutch National Open Datasets



http://nlextract.nl
• GML to PostGIS: 

BAG, BRT (Top10NL), BGT, BRK (Cadastral Parcels)
• Downloads data.nlextract.nl
BRK - Input GML from PDOK
$ ls -lh
total 3.6G
-rw-rw-r-- 1 mlx mlx 3.6G May 7 10:32 kadastralekaartv3-gml-nl-nohist.zip
$ unzip -l kadastralekaartv3-gml-nl-nohist.zip
Length Date Time Name
--------- ---------- ----- ----
16562827212 2018-01-01 13:42 Bebouwing.gml
4737201554 2018-01-02 09:00 Annotatie.gml
20883080403 2018-05-01 15:15 Perceel.gml
27532931147 2018-05-01 20:19 Kadastralegrens.gml
--------- -------
69716040316 4 files
About 70GB in 4 GML Files!
Stetl Config BRK to PostGIS
ZipFile
Input
ZipFile
Extractor
Next
GML File
Path
Next
Zip Entry
gml
OGRExec
Output
GFS
Template!
ogr2ogr
Stetl Config - BRK .zip to PostGIS
[etl]
chains = input_zip_file|extract_zip_file|output_ogr2ogr
[input_zip_file]
class=inputs.fileinput.ZipFileInput
file_path = {input_dir}
filename_pattern = {zip_files_pattern}
name_filter = {filename_match}
# Filter to extract a ZIP file one by one to a temporary location
[extract_zip_file]
class=filters.zipfileextractor.ZipFileExtractor
file_path = {temp_dir}/fromzip-tmp.gml
[output_ogr2ogr]
class = outputs.execoutput.Ogr2OgrExecOutput
# destination format: OGR vector format name
dest_format = PostgreSQL
# destination datasource: name of datasource
dest_data_source = "PG:dbname={database} host={host} port={port} user={user} password={password} active_schema={schema}"
# layer creation options will only be added to ogr2ogr on first run
lco = -lco LAUNDER=YES -lco PRECISION=NO
# spatial_extent, translates to -spat xmin ymin xmax ymax
spatial_extent = {spatial_extent}
# gfs template
gfs_template = {gfs_template}
# miscellaneous ogr2ogr options
options = -append -gt 65536 {multi_opts} --config PG_USE_COPY NO --config CPL_ZIP_ENCODING CP437
<GMLFeatureClassList>
.
<GMLFeatureClass>
<Name>Perceel</Name>
<ElementPath>Perceel</ElementPath>
<!--<GeometryType>1</GeometryType>-->
<SRSName>urn:ogc:def:crs:EPSG::28992</SRSName>
.
<PropertyDefn>
<Name>gemeente</Name>
<ElementPath>kadastraleAanduiding|TypeKadastraleAanduiding|kadastraleGemeente|KadastraleGemeenteKeuze|
AKRKadastraleGemeenteCode</ElementPath>
<Type>String</Type>
<Width>5</Width>
</PropertyDefn>
<PropertyDefn>
<Name>sectie</Name>
<ElementPath>kadastraleAanduiding|TypeKadastraleAanduiding|sectie</ElementPath>
<Type>String</Type>
<Width>2</Width>
</PropertyDefn>
<PropertyDefn>
<Name>perceelnummer</Name>
<ElementPath>kadastraleAanduiding|TypeKadastraleAanduiding|perceelnummer</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
.
<GeomPropertyDefn>
<Name>begrenzing</Name>
<!-- OGR geometry name -->
<ElementPath>begrenzingPerceel</ElementPath>
<!-- XML element name possibly with '|' to specify the path -->
<Type>Polygon</Type>
</GeomPropertyDefn>
</GMLFeatureClass>
</GMLFeatureClassList>
GFS for Table+Column Mapping
Resultaat in PostGIS
Stetl Config BRK to PostGIS
ZipFile
Input
ZipFile
Extractor
Next
GML File
Path
Next
Zip Entry
gml
OGRExec
Output
GFS
Template!
ogr2ogr
Stetl Config BRK to GeoPackage
ZipFile
Input
ZipFile
Extractor
Next
GML File
Path
Next
Zip Entry
gml
OGRExec
Output
GFS
Template!
ogr2ogr
[etl]
chains = input_zip_file|extract_zip_file|output_ogr2ogr_gpkg
# The source input ZIP-file(s) from dir, producing 'records' with ZIP file name and inner file names
[input_zip_file]
class=inputs.fileinput.ZipFileInput
file_path = {input_dir}
filename_pattern = {zip_files_pattern}
name_filter = {filename_match}
# Filter to extract a ZIP file one by one to a temporary location
[extract_zip_file]
class=filters.zipfileextractor.ZipFileExtractor
file_path = {temp_dir}/fromzip-tmp.gml
[output_ogr2ogr_gpkg]
class = outputs.execoutput.Ogr2OgrExecOutput
# destination format: OGR vector format name
dest_format = GPKG
# destination datasource: path to .gpkg output file
dest_data_source = "{temp_dir}/output.gpkg"
# layer creation options will only be added to ogr2ogr on first run
lco = -lco SPATIAL_INDEX=YES -lco PRECISION=NO
# spatial_extent, translates to -spat xmin ymin xmax ymax
spatial_extent = {spatial_extent}
# gfs template
gfs_template = {gfs_template}
# miscellaneous ogr2ogr options
options = -append -gt 65536 {multi_opts} --config CPL_ZIP_ENCODING CP437
Stetl Config - BRK .zip to GeoPackage
View GeoPackage Parcels in QGIS
[etl]
chains = input_zip_file|extract_zip_file|(output_ogr2ogr_postgis) (output_ogr2ogr_gpkg)
# The source input ZIP-file(s) from dir, producing 'records' with ZIP file name and inner file names
[input_zip_file]
class=inputs.fileinput.ZipFileInput
file_path = {input_dir}
filename_pattern = {zip_files_pattern}
name_filter = {filename_match}
# Filter to extract a ZIP file one by one to a temporary location
[extract_zip_file]
class=filters.zipfileextractor.ZipFileExtractor
file_path = {temp_dir}/fromzip-tmp.gml
[output_ogr2ogr_postgis]
class = outputs.execoutput.Ogr2OgrExecOutput
# destination format: OGR vector format name
dest_format = PostgreSQL
.
.
[output_ogr2ogr_gpkg]
class = outputs.execoutput.Ogr2OgrExecOutput
# destination format: OGR vector format name
dest_format = GPKG
# destination datasource: path to .gpkg output file
dest_data_source = "{temp_dir}/output.gpkg"
.
.
BRK .zip to both PostGIS + GeoPackage
Embeds
Stetl
“Splitter”
Case 2 - Smart Emission
From Pilot to Platform
Viewers
Sensors
Services
ETL
Smart Emission Platform
Stetl!
Smart Emission Platform Summary
• Air Quality + Noise + Meteo Sensors hosted by citizens
• Raw sensor data Harvesting to SE Platform
• Validation, Calibration, Aggregation
• Publication to Web Services (WMS,WFS, SOS, SensorThings API)
• data.smartemission.nl
All ETL
(Harvesting, Validation, Calibration, Aggregation, Publication)
done with Stetl
Smart
Emission
Platform
Data Architecture with multi-Step ETL
Postgres/GIS
DB + InfluxDB
SOS
Harvester
RIVM SOS InfluxDB
InfluxDB

Harvester
Intemo
Server
Each Circle
is Stetl Process
GUI ;-)
1. Dockerfile
2. entry.sh
$ docker run -t smartemission/se-stetl:1.0.13 refiner
3. Run ETL Process
ThankYou !
www.stetl.org
github.com/geopython/stetl

More Related Content

What's hot

Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"LogeekNightUkraine
 
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&CoMail.ru Group
 
05 pig user defined functions (udfs)
05 pig user defined functions (udfs)05 pig user defined functions (udfs)
05 pig user defined functions (udfs)Subhas Kumar Ghosh
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"LogeekNightUkraine
 
Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Flink Forward
 
Lab Log Summer 2016 - Sheng Li
Lab Log Summer 2016 - Sheng LiLab Log Summer 2016 - Sheng Li
Lab Log Summer 2016 - Sheng LiSheng Li
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Robert Stern
 
Use PEG to Write a Programming Language Parser
Use PEG to Write a Programming Language ParserUse PEG to Write a Programming Language Parser
Use PEG to Write a Programming Language ParserYodalee
 
Apache Flink Training: DataSet API Basics
Apache Flink Training: DataSet API BasicsApache Flink Training: DataSet API Basics
Apache Flink Training: DataSet API BasicsFlink Forward
 
Odessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonOdessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonMax Klymyshyn
 
Michael Häusler – Everyday flink
Michael Häusler – Everyday flinkMichael Häusler – Everyday flink
Michael Häusler – Everyday flinkFlink Forward
 
Refactoring In Tdd The Missing Part
Refactoring In Tdd The Missing PartRefactoring In Tdd The Missing Part
Refactoring In Tdd The Missing PartGabriele Lana
 
.NET Multithreading and File I/O
.NET Multithreading and File I/O.NET Multithreading and File I/O
.NET Multithreading and File I/OJussi Pohjolainen
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Uehara Junji
 
JNI - Java & C in the same project
JNI - Java & C in the same projectJNI - Java & C in the same project
JNI - Java & C in the same projectKarol Wrótniak
 
Start Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New RopeStart Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New RopeYung-Yu Chen
 

What's hot (19)

Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&Co
 
05 pig user defined functions (udfs)
05 pig user defined functions (udfs)05 pig user defined functions (udfs)
05 pig user defined functions (udfs)
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
 
Nicety of Java 8 Multithreading
Nicety of Java 8 MultithreadingNicety of Java 8 Multithreading
Nicety of Java 8 Multithreading
 
Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced Apache Flink Training: DataStream API Part 2 Advanced
Apache Flink Training: DataStream API Part 2 Advanced
 
Lab Log Summer 2016 - Sheng Li
Lab Log Summer 2016 - Sheng LiLab Log Summer 2016 - Sheng Li
Lab Log Summer 2016 - Sheng Li
 
RealmDB for Android
RealmDB for AndroidRealmDB for Android
RealmDB for Android
 
Go. Why it goes
Go. Why it goesGo. Why it goes
Go. Why it goes
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1
 
Use PEG to Write a Programming Language Parser
Use PEG to Write a Programming Language ParserUse PEG to Write a Programming Language Parser
Use PEG to Write a Programming Language Parser
 
Apache Flink Training: DataSet API Basics
Apache Flink Training: DataSet API BasicsApache Flink Training: DataSet API Basics
Apache Flink Training: DataSet API Basics
 
Odessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonOdessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and Python
 
Michael Häusler – Everyday flink
Michael Häusler – Everyday flinkMichael Häusler – Everyday flink
Michael Häusler – Everyday flink
 
Refactoring In Tdd The Missing Part
Refactoring In Tdd The Missing PartRefactoring In Tdd The Missing Part
Refactoring In Tdd The Missing Part
 
.NET Multithreading and File I/O
.NET Multithreading and File I/O.NET Multithreading and File I/O
.NET Multithreading and File I/O
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
 
JNI - Java & C in the same project
JNI - Java & C in the same projectJNI - Java & C in the same project
JNI - Java & C in the same project
 
Start Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New RopeStart Wrap Episode 11: A New Rope
Start Wrap Episode 11: A New Rope
 

Similar to Geo-Conversion-Engine for NLExtract and Smart Emission

EuroPython 2020 - Speak python with devices
EuroPython 2020 - Speak python with devicesEuroPython 2020 - Speak python with devices
EuroPython 2020 - Speak python with devicesHua Chu
 
Custom object detection_gcp
Custom object detection_gcpCustom object detection_gcp
Custom object detection_gcpVaibhav Sahu
 
Introduction to Griffon
Introduction to GriffonIntroduction to Griffon
Introduction to GriffonJames Williams
 
Jaffle: managing processes and log messages of multiple applications in devel...
Jaffle: managing processes and log messages of multiple applicationsin devel...Jaffle: managing processes and log messages of multiple applicationsin devel...
Jaffle: managing processes and log messages of multiple applications in devel...Masaki Yatsu
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io
 
Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Dina Goldshtein
 
Docker architecture rework case study
Docker  architecture rework case studyDocker  architecture rework case study
Docker architecture rework case studydchaffiol
 
Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]pstavirs
 
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)Igalia
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudAndrea Righi
 
Systems Programming Assignment Help - Processes
Systems Programming Assignment Help - ProcessesSystems Programming Assignment Help - Processes
Systems Programming Assignment Help - ProcessesHelpWithAssignment.com
 
.NET @ apache.org
 .NET @ apache.org .NET @ apache.org
.NET @ apache.orgTed Husted
 
Python import mechanism
Python import mechanismPython import mechanism
Python import mechanismYuki Nishiwaki
 
EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4Max Kleiner
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaSpark Summit
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010Bastian Feder
 

Similar to Geo-Conversion-Engine for NLExtract and Smart Emission (20)

EuroPython 2020 - Speak python with devices
EuroPython 2020 - Speak python with devicesEuroPython 2020 - Speak python with devices
EuroPython 2020 - Speak python with devices
 
Custom object detection_gcp
Custom object detection_gcpCustom object detection_gcp
Custom object detection_gcp
 
Pythonpresent
PythonpresentPythonpresent
Pythonpresent
 
Introduction to Griffon
Introduction to GriffonIntroduction to Griffon
Introduction to Griffon
 
Jaffle: managing processes and log messages of multiple applications in devel...
Jaffle: managing processes and log messages of multiple applicationsin devel...Jaffle: managing processes and log messages of multiple applicationsin devel...
Jaffle: managing processes and log messages of multiple applications in devel...
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 
Geospatial ETL with Stetl
Geospatial ETL with StetlGeospatial ETL with Stetl
Geospatial ETL with Stetl
 
Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)
 
Docker architecture rework case study
Docker  architecture rework case studyDocker  architecture rework case study
Docker architecture rework case study
 
Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]
 
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloud
 
Systems Programming Assignment Help - Processes
Systems Programming Assignment Help - ProcessesSystems Programming Assignment Help - Processes
Systems Programming Assignment Help - Processes
 
.NET @ apache.org
 .NET @ apache.org .NET @ apache.org
.NET @ apache.org
 
SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel
 
Python import mechanism
Python import mechanismPython import mechanism
Python import mechanism
 
EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4EKON 25 Python4Delphi_mX4
EKON 25 Python4Delphi_mX4
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
 
Golang
GolangGolang
Golang
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010
 

More from Just van den Broecke

Just's Career Highlights - Version 2
Just's Career Highlights - Version 2Just's Career Highlights - Version 2
Just's Career Highlights - Version 2Just van den Broecke
 
Just's Career Highlights - Version 1
Just's Career Highlights - Version 1Just's Career Highlights - Version 1
Just's Career Highlights - Version 1Just van den Broecke
 
Open Sensor Networks with LoRa TTN and SensorThings API
Open Sensor Networks with LoRa TTN and SensorThings APIOpen Sensor Networks with LoRa TTN and SensorThings API
Open Sensor Networks with LoRa TTN and SensorThings APIJust van den Broecke
 
Sensor SDI in PDOK with Smart Emission Platform
Sensor SDI in PDOK with Smart Emission PlatformSensor SDI in PDOK with Smart Emission Platform
Sensor SDI in PDOK with Smart Emission PlatformJust van den Broecke
 
OSGeo.nl-NewYearsParty-2018-Opening
OSGeo.nl-NewYearsParty-2018-OpeningOSGeo.nl-NewYearsParty-2018-Opening
OSGeo.nl-NewYearsParty-2018-OpeningJust van den Broecke
 
De Levenscyclus van Open Geodata met Open Source Tools
De Levenscyclus van Open Geodata met Open Source ToolsDe Levenscyclus van Open Geodata met Open Source Tools
De Levenscyclus van Open Geodata met Open Source ToolsJust van den Broecke
 
NLExtract Project - OGT Award Pitch GeoBuzz 2016
NLExtract Project - OGT Award Pitch GeoBuzz 2016NLExtract Project - OGT Award Pitch GeoBuzz 2016
NLExtract Project - OGT Award Pitch GeoBuzz 2016Just van den Broecke
 
Smart Emission - Citizens measuring Air Quality - Overview
Smart Emission - Citizens measuring Air Quality - OverviewSmart Emission - Citizens measuring Air Quality - Overview
Smart Emission - Citizens measuring Air Quality - OverviewJust van den Broecke
 
Smart Emission - Data - Viewers - Standards
Smart Emission - Data - Viewers - StandardsSmart Emission - Data - Viewers - Standards
Smart Emission - Data - Viewers - StandardsJust van den Broecke
 
3D Breakthrough Meeting - 3D Standards progress
3D Breakthrough Meeting - 3D Standards progress3D Breakthrough Meeting - 3D Standards progress
3D Breakthrough Meeting - 3D Standards progressJust van den Broecke
 
Wandelen met GPS en De Evolutie van Navigatie
Wandelen met GPS en De Evolutie van NavigatieWandelen met GPS en De Evolutie van Navigatie
Wandelen met GPS en De Evolutie van NavigatieJust van den Broecke
 
Nederland Ontsloten! OSGeo.nl Dag 2014
Nederland Ontsloten! OSGeo.nl Dag 2014Nederland Ontsloten! OSGeo.nl Dag 2014
Nederland Ontsloten! OSGeo.nl Dag 2014Just van den Broecke
 
Big Data - Introduction and Research Topics - for Dutch Kadaster
Big Data - Introduction and Research Topics - for Dutch KadasterBig Data - Introduction and Research Topics - for Dutch Kadaster
Big Data - Introduction and Research Topics - for Dutch KadasterJust van den Broecke
 
SensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - StatusSensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - StatusJust van den Broecke
 

More from Just van den Broecke (20)

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

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 

Geo-Conversion-Engine for NLExtract and Smart Emission