SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Was ist angesagt?

Gwt training presentation
Gwt training presentationGwt training presentation
Gwt training presentationMUFIX Community
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
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
 
DevOps is dead, long live DevOps
DevOps is dead, long live DevOpsDevOps is dead, long live DevOps
DevOps is dead, long live DevOpsmfazal
 
Ext GWT - Overview and Implementation Case Study
Ext GWT - Overview and Implementation Case StudyExt GWT - Overview and Implementation Case Study
Ext GWT - Overview and Implementation Case StudyAvi Perez
 
LibreTime: a web-based automation system for radio - presentation at Ohio Li...
LibreTime:  a web-based automation system for radio - presentation at Ohio Li...LibreTime:  a web-based automation system for radio - presentation at Ohio Li...
LibreTime: a web-based automation system for radio - presentation at Ohio Li...Robb Ebright
 
Introduction of Lambda
Introduction of LambdaIntroduction of Lambda
Introduction of LambdaKeita Watanabe
 
Angular2 - A story from the trenches
Angular2 - A story from the trenchesAngular2 - A story from the trenches
Angular2 - A story from the trenchesJohannes Rudolph
 
Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2JooinK
 
How GitHub impacts our career life?
How GitHub impacts our career life?How GitHub impacts our career life?
How GitHub impacts our career life?Cosmo Q
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container SecurityDaniel Oh
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Toolsbarciszewski
 
Paris JUG Second Anniversary
Paris JUG Second AnniversaryParis JUG Second Anniversary
Paris JUG Second AnniversaryVincent Massol
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessDaniel Oh
 
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
 

Was ist angesagt? (20)

Gwt training presentation
Gwt training presentationGwt training presentation
Gwt training presentation
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
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...
 
DevOps is dead, long live DevOps
DevOps is dead, long live DevOpsDevOps is dead, long live DevOps
DevOps is dead, long live DevOps
 
Qt5.pptx
Qt5.pptxQt5.pptx
Qt5.pptx
 
Ext GWT - Overview and Implementation Case Study
Ext GWT - Overview and Implementation Case StudyExt GWT - Overview and Implementation Case Study
Ext GWT - Overview and Implementation Case Study
 
Efficient containers
Efficient containers Efficient containers
Efficient containers
 
LibreTime: a web-based automation system for radio - presentation at Ohio Li...
LibreTime:  a web-based automation system for radio - presentation at Ohio Li...LibreTime:  a web-based automation system for radio - presentation at Ohio Li...
LibreTime: a web-based automation system for radio - presentation at Ohio Li...
 
Introduction of Lambda
Introduction of LambdaIntroduction of Lambda
Introduction of Lambda
 
Code-Hub
Code-HubCode-Hub
Code-Hub
 
Angular2 - A story from the trenches
Angular2 - A story from the trenchesAngular2 - A story from the trenches
Angular2 - A story from the trenches
 
Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2
 
Groovy android
Groovy androidGroovy android
Groovy android
 
How GitHub impacts our career life?
How GitHub impacts our career life?How GitHub impacts our career life?
How GitHub impacts our career life?
 
Sculpin
SculpinSculpin
Sculpin
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Paris JUG Second Anniversary
Paris JUG Second AnniversaryParis JUG Second Anniversary
Paris JUG Second Anniversary
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 
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
 

Ähnlich wie QGIS UK: Developing with QGIS - What is possible (Lutra Consulting)

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
 
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
 
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
 
Manage Kubernetes Clusters with Cluster API and ArgoCD
Manage Kubernetes Clusters with Cluster API and ArgoCDManage Kubernetes Clusters with Cluster API and ArgoCD
Manage Kubernetes Clusters with Cluster API and ArgoCDOpsta
 

Ähnlich wie QGIS UK: Developing with QGIS - What is possible (Lutra Consulting) (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
 
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...
 
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
 
Manage Kubernetes Clusters with Cluster API and ArgoCD
Manage Kubernetes Clusters with Cluster API and ArgoCDManage Kubernetes Clusters with Cluster API and ArgoCD
Manage Kubernetes Clusters with Cluster API and ArgoCD
 
Kubernetes + netflix oss
Kubernetes + netflix ossKubernetes + netflix oss
Kubernetes + netflix oss
 

Mehr von Ross McDonald

Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018Ross McDonald
 
Using QGIS to create 3D indoor maps
Using QGIS to create 3D indoor mapsUsing QGIS to create 3D indoor maps
Using QGIS to create 3D indoor mapsRoss McDonald
 
Creating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRoutingCreating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRoutingRoss McDonald
 
Viewsheds and Advanced Calculations
Viewsheds and Advanced CalculationsViewsheds and Advanced Calculations
Viewsheds and Advanced CalculationsRoss McDonald
 
Using QGIS for ecological surveying
Using QGIS for ecological surveyingUsing QGIS for ecological surveying
Using QGIS for ecological surveyingRoss McDonald
 
Welcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meetingWelcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meetingRoss McDonald
 
How deep is your loch?
How deep is your loch?How deep is your loch?
How deep is your loch?Ross McDonald
 
Data capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMapData capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMapRoss McDonald
 
Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'Ross McDonald
 
QGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysisQGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysisRoss McDonald
 
Mapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classromMapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classromRoss McDonald
 
QGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the uglyQGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the uglyRoss McDonald
 
QGIS UK Thank you for coming
QGIS UK Thank you for comingQGIS UK Thank you for coming
QGIS UK Thank you for comingRoss McDonald
 
Decision support tools for forestry using open source software
Decision support tools for forestry using open source softwareDecision support tools for forestry using open source software
Decision support tools for forestry using open source softwareRoss McDonald
 
Installing QGIS on a network
Installing QGIS on a networkInstalling QGIS on a network
Installing QGIS on a networkRoss McDonald
 
Pgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonaldPgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonaldRoss McDonald
 
Liam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLDLiam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLDRoss McDonald
 
Phil Bartie QGIS PLPython
Phil Bartie QGIS PLPythonPhil Bartie QGIS PLPython
Phil Bartie QGIS PLPythonRoss McDonald
 
John Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G EdinburghJohn Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G EdinburghRoss McDonald
 
Roger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print ComposerRoger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print ComposerRoss McDonald
 

Mehr von Ross McDonald (20)

Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018Visualising school catchment areas - FOSS4GUK 2018
Visualising school catchment areas - FOSS4GUK 2018
 
Using QGIS to create 3D indoor maps
Using QGIS to create 3D indoor mapsUsing QGIS to create 3D indoor maps
Using QGIS to create 3D indoor maps
 
Creating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRoutingCreating and indoor routable network with QGIS and pgRouting
Creating and indoor routable network with QGIS and pgRouting
 
Viewsheds and Advanced Calculations
Viewsheds and Advanced CalculationsViewsheds and Advanced Calculations
Viewsheds and Advanced Calculations
 
Using QGIS for ecological surveying
Using QGIS for ecological surveyingUsing QGIS for ecological surveying
Using QGIS for ecological surveying
 
Welcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meetingWelcome to the 6th Scottish QGIS UK meeting
Welcome to the 6th Scottish QGIS UK meeting
 
How deep is your loch?
How deep is your loch?How deep is your loch?
How deep is your loch?
 
Data capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMapData capture with Leaflet and OpenStreetMap
Data capture with Leaflet and OpenStreetMap
 
Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'Them thar hills: shadin', texturin', blendin'
Them thar hills: shadin', texturin', blendin'
 
QGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysisQGIS plugin for parallel processing in terrain analysis
QGIS plugin for parallel processing in terrain analysis
 
Mapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classromMapping narrative: QGIS in the humanities classrom
Mapping narrative: QGIS in the humanities classrom
 
QGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the uglyQGIS server: the good, the not-so-good and the ugly
QGIS server: the good, the not-so-good and the ugly
 
QGIS UK Thank you for coming
QGIS UK Thank you for comingQGIS UK Thank you for coming
QGIS UK Thank you for coming
 
Decision support tools for forestry using open source software
Decision support tools for forestry using open source softwareDecision support tools for forestry using open source software
Decision support tools for forestry using open source software
 
Installing QGIS on a network
Installing QGIS on a networkInstalling QGIS on a network
Installing QGIS on a network
 
Pgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonaldPgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonald
 
Liam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLDLiam Mason QGIS Geoserver SLD
Liam Mason QGIS Geoserver SLD
 
Phil Bartie QGIS PLPython
Phil Bartie QGIS PLPythonPhil Bartie QGIS PLPython
Phil Bartie QGIS PLPython
 
John Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G EdinburghJohn Stevenson Volcanoes and FOSS4G Edinburgh
John Stevenson Volcanoes and FOSS4G Edinburgh
 
Roger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print ComposerRoger Garbett - QGIS Print Composer
Roger Garbett - QGIS Print Composer
 

Kürzlich hochgeladen

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR 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
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 

Kürzlich hochgeladen (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
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...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 

QGIS UK: Developing with QGIS - What is possible (Lutra Consulting)

  • 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?