SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Developing with QGIS: What’s Possible?
Lutra Consulting
Its internal arrangement
QGIS
Developing with QGIS: What’s Possible?
● QGIS is very modular
● The QGIS you see is a wrapper
around these libraries:
● QgsGui
● QgsAnalysis
● QgsCore
N
What are they?
Python Bindings
● Intermediate layer
● Expose functionality to Python
● Allow functionality to be loaded as a
python module
● Advantages of using Python (over C++):
● Quicker to develop (less lines)
● Code is portable
N
Developing with QGIS: What’s Possible?
Interaction
Plugins
Developing with QGIS: What’s Possible?
● Plugins can be C++ or
Python
● QgisInterface class
provides 'point of
attachment' for plugins
● Only functionality exposed
via QgisInterface can be
used by plugins
● Functionality of
QgisInterface actually
implemented in QGIS
Application
● Plugins 'attach' here
N
Using QgisInterface
Plugins
Developing with QGIS: What’s Possible?
● QgisInterface object facilitates interaction with QGIS through Python:
● Determining layer count
● Loading layers
● Accessing loaded layers
● Accessing features and their geometry
● Etc.
N
GUI library example
Plugins
Developing with QGIS: What’s Possible?
● The GUI library provides a number of GUI elements.
● For example the familiar CRS selector:
N
Core library example
Plugins
Developing with QGIS: What’s Possible?
● The Core library allows us to work with:
● Layers
● Features
● Geometry
● Projections
● Rendering
● Measurement
● Expression engine
● Snapping
● Spatial indexing
N
InaSAFE - Indonesian Scenario Assessment for Emergencies
Example Plugins
Developing with QGIS: What’s Possible?
● A QGIS Plugin that produces realistic natural hazard impact scenarios (e.g. Tsunami).
● Allows for better planning, preparedness and response activities.
● Conceived and initially developed by the Indonesia's National Disaster Management
Agency (BNPB) and the Australian Government.
● Developed by Linfiniti (Tim Sutton)
N
Crayfish
Example Plugins
Developing with QGIS: What’s Possible?
● Plugin for displaying time-varying flood model results
● Used to easily communicate flood risk
● Supports a variety of flood model results including TUFLOW and ISIS 2D
● Developed by Lutra Consulting
N
Brief demo
Crayfish
Developing with QGIS: What’s Possible?
How, Why and When?
Standalone Applications
Developing with QGIS: What’s Possible?
● What is it?
● Simply a program that uses the
QGIS libraries (just like QGIS!)
● Python or C++
● Why? / When?
● When complete flexibility is
required
● When a plugin on top of all of
QGIS is overkill
N
What's possible?
Standalone Applications
Developing with QGIS: What’s Possible?
● Command-line python scripts for automating tasks
● E.g. Using the QGIS Core library to batch-process some shapefiles
● E.g. Extracting and manipulating feature information
● E.g. Batch-printing a number of similar maps
● More complex, graphical applications
● E.g. QGIS Browser
● E.g. A dedicated navigation tool which:
● Reads vector data
● Displays images using the MapCanvas
● Routes between points
● E.g. A dedicated surveying application ...
N
IntraMaps Roam - A Data Collection App by Nathan Woodrow, DMS
Example Standalone Applications
Developing with QGIS: What’s Possible?
N
Questions?
Developing with QGIS: What’s Possible?

Mais conteúdo relacionado

Mais procurados

Why we need open systems, and how to create them in the era of the Cloud (Ops...
Why we need open systems, and how to create them in the era of the Cloud (Ops...Why we need open systems, and how to create them in the era of the Cloud (Ops...
Why we need open systems, and how to create them in the era of the Cloud (Ops...Igalia
 
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)George Porto Ferreira
 
Hodor: Solving Everyday Problems with Tech
Hodor: Solving Everyday Problems with TechHodor: Solving Everyday Problems with Tech
Hodor: Solving Everyday Problems with TechNithish Raghunandanan
 
Learnings from Organizing an Internal Hackathon
Learnings from Organizing an Internal HackathonLearnings from Organizing an Internal Hackathon
Learnings from Organizing an Internal HackathonNithish Raghunandanan
 
Cloud Native and CNCF
Cloud Native and CNCFCloud Native and CNCF
Cloud Native and CNCFAkash Agrawal
 
Continuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupContinuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupRaphaël Brugier
 
Cloud Study Jam Exploring the Cloud
Cloud Study Jam Exploring the CloudCloud Study Jam Exploring the Cloud
Cloud Study Jam Exploring the CloudProttay Karim
 
Monster Project Management for Creative Teams - Rebecca Noran
Monster Project Management for Creative Teams - Rebecca NoranMonster Project Management for Creative Teams - Rebecca Noran
Monster Project Management for Creative Teams - Rebecca NoranRebecca Noran
 
EOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungEOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungElaine Yeung
 
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverJava Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverStefan Schmidt
 
Data Monitoring with whylogs
Data Monitoring with whylogsData Monitoring with whylogs
Data Monitoring with whylogsAlexey Grigorev
 
Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!Qt
 
Google cloud infrastructure workshop
Google cloud infrastructure workshopGoogle cloud infrastructure workshop
Google cloud infrastructure workshopAkash Agrawal
 
Lush E-Commerce Migration - Google NEXT London
Lush E-Commerce Migration - Google NEXT LondonLush E-Commerce Migration - Google NEXT London
Lush E-Commerce Migration - Google NEXT LondonRyan Kerry
 
EzPerformancelogger & Graphite
EzPerformancelogger & GraphiteEzPerformancelogger & Graphite
EzPerformancelogger & GraphiteGaetano Giunta
 
"Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene..."Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene...GWTcon
 
Implementing INSPIRE services for Dutch provinces
Implementing INSPIRE services for Dutch provincesImplementing INSPIRE services for Dutch provinces
Implementing INSPIRE services for Dutch provincessmespire
 
Head in the clouds @ bol.com
Head in the clouds @ bol.comHead in the clouds @ bol.com
Head in the clouds @ bol.comMaarten Dirkse
 
Python Pune October Meetup 2015
Python Pune October Meetup 2015Python Pune October Meetup 2015
Python Pune October Meetup 2015Abhijeet Kasurde
 
What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8Acquia
 

Mais procurados (20)

Why we need open systems, and how to create them in the era of the Cloud (Ops...
Why we need open systems, and how to create them in the era of the Cloud (Ops...Why we need open systems, and how to create them in the era of the Cloud (Ops...
Why we need open systems, and how to create them in the era of the Cloud (Ops...
 
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
2018 - Grupo QGIS Brasil e o lançamento do QGIS 3.4 LTR (Versão de Longo Prazo)
 
Hodor: Solving Everyday Problems with Tech
Hodor: Solving Everyday Problems with TechHodor: Solving Everyday Problems with Tech
Hodor: Solving Everyday Problems with Tech
 
Learnings from Organizing an Internal Hackathon
Learnings from Organizing an Internal HackathonLearnings from Organizing an Internal Hackathon
Learnings from Organizing an Internal Hackathon
 
Cloud Native and CNCF
Cloud Native and CNCFCloud Native and CNCF
Cloud Native and CNCF
 
Continuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetupContinuous delivery@LesFurets - DC Continuous delivery meetup
Continuous delivery@LesFurets - DC Continuous delivery meetup
 
Cloud Study Jam Exploring the Cloud
Cloud Study Jam Exploring the CloudCloud Study Jam Exploring the Cloud
Cloud Study Jam Exploring the Cloud
 
Monster Project Management for Creative Teams - Rebecca Noran
Monster Project Management for Creative Teams - Rebecca NoranMonster Project Management for Creative Teams - Rebecca Noran
Monster Project Management for Creative Teams - Rebecca Noran
 
EOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungEOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine Yeung
 
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverJava Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
 
Data Monitoring with whylogs
Data Monitoring with whylogsData Monitoring with whylogs
Data Monitoring with whylogs
 
Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!Meet Qt 6.2 LTS - Ask Us Anything!
Meet Qt 6.2 LTS - Ask Us Anything!
 
Google cloud infrastructure workshop
Google cloud infrastructure workshopGoogle cloud infrastructure workshop
Google cloud infrastructure workshop
 
Lush E-Commerce Migration - Google NEXT London
Lush E-Commerce Migration - Google NEXT LondonLush E-Commerce Migration - Google NEXT London
Lush E-Commerce Migration - Google NEXT London
 
EzPerformancelogger & Graphite
EzPerformancelogger & GraphiteEzPerformancelogger & Graphite
EzPerformancelogger & Graphite
 
"Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene..."Jclays, A global solution for application design and automatic GWT code gene...
"Jclays, A global solution for application design and automatic GWT code gene...
 
Implementing INSPIRE services for Dutch provinces
Implementing INSPIRE services for Dutch provincesImplementing INSPIRE services for Dutch provinces
Implementing INSPIRE services for Dutch provinces
 
Head in the clouds @ bol.com
Head in the clouds @ bol.comHead in the clouds @ bol.com
Head in the clouds @ bol.com
 
Python Pune October Meetup 2015
Python Pune October Meetup 2015Python Pune October Meetup 2015
Python Pune October Meetup 2015
 
What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8
 

Destaque

QGIS UK User Group - QGIS Evangelism (thinkWhere)
QGIS UK User Group - QGIS Evangelism (thinkWhere)QGIS UK User Group - QGIS Evangelism (thinkWhere)
QGIS UK User Group - QGIS Evangelism (thinkWhere)QGIS UK
 
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)QGIS UK User Group - QGIS and Cartography (Ordnance Survey)
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)QGIS UK
 
QGIS UK User Group - Introduction and Feedback
QGIS UK User Group - Introduction and FeedbackQGIS UK User Group - Introduction and Feedback
QGIS UK User Group - Introduction and FeedbackQGIS UK
 
QGIS UK User Group - QGIS Performance Enhancements (Lutra)
QGIS UK User Group - QGIS Performance Enhancements (Lutra)QGIS UK User Group - QGIS Performance Enhancements (Lutra)
QGIS UK User Group - QGIS Performance Enhancements (Lutra)QGIS UK
 
OSM and QGIS
OSM and QGISOSM and QGIS
OSM and QGISQGIS UK
 
QGIS and Altas: Automatic map generation
QGIS and Altas: Automatic map generationQGIS and Altas: Automatic map generation
QGIS and Altas: Automatic map generationQGIS UK
 
Opening slides - South-East UK QGIS user group meeting
Opening slides - South-East UK QGIS user group meetingOpening slides - South-East UK QGIS user group meeting
Opening slides - South-East UK QGIS user group meetingQGIS UK
 
QGIS Module 1
QGIS Module 1QGIS Module 1
QGIS Module 1CAPSUCSF
 
Djikstra's Algorithm
Djikstra's Algorithm Djikstra's Algorithm
Djikstra's Algorithm Samar Kenkre
 
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...Yoichi Kayama
 
Dem analaysis and catchment delineation using GIS
Dem analaysis and catchment delineation using GISDem analaysis and catchment delineation using GIS
Dem analaysis and catchment delineation using GISHans van der Kwast
 

Destaque (20)

QGIS UK User Group - QGIS Evangelism (thinkWhere)
QGIS UK User Group - QGIS Evangelism (thinkWhere)QGIS UK User Group - QGIS Evangelism (thinkWhere)
QGIS UK User Group - QGIS Evangelism (thinkWhere)
 
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)QGIS UK User Group - QGIS and Cartography (Ordnance Survey)
QGIS UK User Group - QGIS and Cartography (Ordnance Survey)
 
QGIS UK User Group - Introduction and Feedback
QGIS UK User Group - Introduction and FeedbackQGIS UK User Group - Introduction and Feedback
QGIS UK User Group - Introduction and Feedback
 
QGIS UK User Group - QGIS Performance Enhancements (Lutra)
QGIS UK User Group - QGIS Performance Enhancements (Lutra)QGIS UK User Group - QGIS Performance Enhancements (Lutra)
QGIS UK User Group - QGIS Performance Enhancements (Lutra)
 
OSM and QGIS
OSM and QGISOSM and QGIS
OSM and QGIS
 
QGIS and Altas: Automatic map generation
QGIS and Altas: Automatic map generationQGIS and Altas: Automatic map generation
QGIS and Altas: Automatic map generation
 
Opening slides - South-East UK QGIS user group meeting
Opening slides - South-East UK QGIS user group meetingOpening slides - South-East UK QGIS user group meeting
Opening slides - South-East UK QGIS user group meeting
 
QGIS training class 3
QGIS training class 3QGIS training class 3
QGIS training class 3
 
QGIS training class 2
QGIS training class 2QGIS training class 2
QGIS training class 2
 
QGIS training class 1
QGIS training class 1QGIS training class 1
QGIS training class 1
 
Raster processing
Raster processingRaster processing
Raster processing
 
GIS fundamentals - vector
GIS fundamentals - vectorGIS fundamentals - vector
GIS fundamentals - vector
 
QGIS Module 1
QGIS Module 1QGIS Module 1
QGIS Module 1
 
Djikstra's Algorithm
Djikstra's Algorithm Djikstra's Algorithm
Djikstra's Algorithm
 
Projections
ProjectionsProjections
Projections
 
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...
Introduction of flood evacuation route search system using QGIS,PostGIS,GRASS...
 
GIS file types
GIS file typesGIS file types
GIS file types
 
GIS fundamentals - raster
GIS fundamentals - rasterGIS fundamentals - raster
GIS fundamentals - raster
 
Dem analaysis and catchment delineation using GIS
Dem analaysis and catchment delineation using GISDem analaysis and catchment delineation using GIS
Dem analaysis and catchment delineation using GIS
 
Introduction to GIS
Introduction to GISIntroduction to GIS
Introduction to GIS
 

Semelhante a QGIS UK User Group - Developing with QGIS (Lutra)

WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?All Things Open
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containersaspyker
 
When JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsWhen JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsAnthony Viard
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Daker Fernandes
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1aspyker
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to PythonGLC Networks
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformFabrizio Giudici
 
Leveraging Open Source GIS with Python: A QGIS Approach
Leveraging Open Source GIS with Python: A QGIS ApproachLeveraging Open Source GIS with Python: A QGIS Approach
Leveraging Open Source GIS with Python: A QGIS ApproachGerry James
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Dan Farrelly
 
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
QWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS ServerQWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS ServerInvit Management
 
How we leveraged Drupal to build a leading SaaS product
How we leveraged Drupal to build a leading SaaS product How we leveraged Drupal to build a leading SaaS product
How we leveraged Drupal to build a leading SaaS product Invotra
 

Semelhante a QGIS UK User Group - Developing with QGIS (Lutra) (20)

WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and CommunitySFScon 2020 - Paolo Cavallini - QGIS Software and Community
SFScon 2020 - Paolo Cavallini - QGIS Software and Community
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containers
 
When JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsWhen JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft products
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans Platform
 
Leveraging Open Source GIS with Python: A QGIS Approach
Leveraging Open Source GIS with Python: A QGIS ApproachLeveraging Open Source GIS with Python: A QGIS Approach
Leveraging Open Source GIS with Python: A QGIS Approach
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
 
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
QWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS ServerQWC2 - modern web maps with QGIS Server
QWC2 - modern web maps with QGIS Server
 
How we leveraged Drupal to build a leading SaaS product
How we leveraged Drupal to build a leading SaaS product How we leveraged Drupal to build a leading SaaS product
How we leveraged Drupal to build a leading SaaS product
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

QGIS UK User Group - Developing with QGIS (Lutra)

  • 1. Developing with QGIS: What’s Possible? Lutra Consulting
  • 2. Its internal arrangement QGIS Developing with QGIS: What’s Possible? ● QGIS is very modular ● The QGIS you see is a wrapper around these libraries: ● QgsGui ● QgsAnalysis ● QgsCore N
  • 3. What are they? Python Bindings ● Intermediate layer ● Expose functionality to Python ● Allow functionality to be loaded as a python module ● Advantages of using Python (over C++): ● Quicker to develop (less lines) ● Code is portable N Developing with QGIS: What’s Possible?
  • 4. Interaction Plugins Developing with QGIS: What’s Possible? ● Plugins can be C++ or Python ● QgisInterface class provides 'point of attachment' for plugins ● Only functionality exposed via QgisInterface can be used by plugins ● Functionality of QgisInterface actually implemented in QGIS Application ● Plugins 'attach' here N
  • 5. Using QgisInterface Plugins Developing with QGIS: What’s Possible? ● QgisInterface object facilitates interaction with QGIS through Python: ● Determining layer count ● Loading layers ● Accessing loaded layers ● Accessing features and their geometry ● Etc. N
  • 6. GUI library example Plugins Developing with QGIS: What’s Possible? ● The GUI library provides a number of GUI elements. ● For example the familiar CRS selector: N
  • 7. Core library example Plugins Developing with QGIS: What’s Possible? ● The Core library allows us to work with: ● Layers ● Features ● Geometry ● Projections ● Rendering ● Measurement ● Expression engine ● Snapping ● Spatial indexing N
  • 8. InaSAFE - Indonesian Scenario Assessment for Emergencies Example Plugins Developing with QGIS: What’s Possible? ● A QGIS Plugin that produces realistic natural hazard impact scenarios (e.g. Tsunami). ● Allows for better planning, preparedness and response activities. ● Conceived and initially developed by the Indonesia's National Disaster Management Agency (BNPB) and the Australian Government. ● Developed by Linfiniti (Tim Sutton) N
  • 9. Crayfish Example Plugins Developing with QGIS: What’s Possible? ● Plugin for displaying time-varying flood model results ● Used to easily communicate flood risk ● Supports a variety of flood model results including TUFLOW and ISIS 2D ● Developed by Lutra Consulting N
  • 10. Brief demo Crayfish Developing with QGIS: What’s Possible?
  • 11. How, Why and When? Standalone Applications Developing with QGIS: What’s Possible? ● What is it? ● Simply a program that uses the QGIS libraries (just like QGIS!) ● Python or C++ ● Why? / When? ● When complete flexibility is required ● When a plugin on top of all of QGIS is overkill N
  • 12. What's possible? Standalone Applications Developing with QGIS: What’s Possible? ● Command-line python scripts for automating tasks ● E.g. Using the QGIS Core library to batch-process some shapefiles ● E.g. Extracting and manipulating feature information ● E.g. Batch-printing a number of similar maps ● More complex, graphical applications ● E.g. QGIS Browser ● E.g. A dedicated navigation tool which: ● Reads vector data ● Displays images using the MapCanvas ● Routes between points ● E.g. A dedicated surveying application ... N
  • 13. IntraMaps Roam - A Data Collection App by Nathan Woodrow, DMS Example Standalone Applications Developing with QGIS: What’s Possible? N
  • 14. Questions? Developing with QGIS: What’s Possible?