New Course: Automating QGIS 3.xx with Python

Introductory price $9.99 until Sept 30

I am pleased to announce the availability of a new course: Automating QGIS with Python.

This course focuses on providing GIS professionals with the ability to automate GIS processes to improve performance, accuracy, and provide capabilities not available through standard GIS tools.

The course only requires an installation of QGIS (a free download), although it is not a beginner course.  Some knowledge of both QGIS and Python is required.  If you want to brush up on either QGIS or Python, you can do this through my courses Survey of Python for GIS Applications and QGIS 3.0 for GIS Professionals. (Both also available for $9.99 until the end of September 2019).

The course does not cover more advanced programming techniques required to develop QGIS plug-ins with advanced user interface capabilities.

This course covers:

  • Using the QGIS Python console
  • Using the QGIS Python editor
  • Using PyQGIS to manipulate the QGIS interface
  • Using PyQGIS to manipulate a layers symbology
  • Using PyQGIS to manipulate a layers attributes
  • Using PyQGIS to manipulate a layers geometry
  • Using PyQGIS to perform spatial operations
  • Using PyQGIS to access raster data

New Course: Survey of python for GIS applications

Thanks for your interest in my new course on Python for GIS applications. This course is intended to provide a broad overview of the python programming language and the python ecosystem, especially for geospatial applications. The goal is to provide you with an understanding of how all the pieces work together and provide a starting point from which you can explore specific packages on your own. Continue reading “New Course: Survey of python for GIS applications”

New Course: Server-side web GIS applications with Leaflet and PostGIS

Server-side web GIS applications allow you to build secure, web-based portals to your GIS data that allow display, analysis, and editing of GIS data from anywhere there is an internet connection.  This is demonstrated with open-source software so that the concepts are accessible to everyone without cost. If you prefer to use commercial software I think you will still benefit from this course as the core concepts apply to both.

Static GIS data can be displayed in a web map with a JavaScript mapping API such as Leaflet (used in this course), OpenLayers, or Google Maps.  Powerful analysis of that data can be performed on the client computer using the Turf.js JavaScript library. But if you need the ability to make changes to that data or view changes made by others in real time you need to access a common data store on a server. We will be using PostGIS, a spatial extension to the PostgreSQL database as the common data store. The concepts you learn will be applicable to other databases as well. You can learn most of what you need to store and analyze spatial data with PostGIS in my course “Introduction to spatial databases with PostGIS and QGIS“.

This course builds on the environmental consulting application that was built in the course “Display and analyze GIS data on the web with Leaflet“. The first part of the course is focused on building a secure portal that will allow the projects client to view, filter, search, and analyze both spatial and non-spatial data from the web. We start with the secure portal that we built in my course “PHP registration, login, and registration system” to prevent unauthorized access to the client’s data. Then we modify the client-side application to work with data stored in PostGIS rather than from static GeoJSON files. All of the searching, filtering, and analysis functionality is moved to the server so that any changes made to the database are immediately available to the client.

In the second part of the course we create a second secure portal for project managers. This contains all the functionality available on the client portal but will also allow creating new data, modifying existing data, and deleting data from a web application.  A leaflet plugin called Leaflet-PM is used to handle the editing of spatial geometries on the client. Those changes are then sent to the database using standard SQL INSERT and UPDATE statements.

This course does have several prerequisites. “Display and analyze GIS data on the web with Leaflet” and “PHP registration, login, and content management system” are required as we will use code developed in those courses throughout this course. I also highly recommend my course “Introduction to spatial databases with PostGIS and QGIS“. That course will teach you what you need to know about SQL and working with PostGIS. The SQL we use in this course is pretty simple for practical reasons. Without a solid foundation in PostGIS you will lack a full understanding of the capabilities available to you from a web interface.

Because this course builds on so many other technologies and thus has so many prerequisites I am making all my courses available until the end of July for only $15 each.  All the links on this page as well as those on my courses page will reflect this discount. Other pages on this site will not but you can always enter the coupon code “JULYSALE” to get that discount.

This course has over 15 hours of content and is available now on for only $15 until the end of july. As with all my courses,  more will be added as I get a chance.  More information can be seen in the video below.

New Course: Introduction to spatial databases with PostGIS and QGIS

Thanks for your interest in this course. I’m very excited to release it as I believe that the combination of QGIS 3.0 and PostGIS amounts to an open-source “Killer App”.  It solves many frustrating problems that I had to deal with throughout my career as the GIS specialist for small to medium sized environmental consulting companies. I think it is equally applicable to any organization that is outgrowing single-user desktop GIS but unable to pay the ten’s of thousands of dollars required to move into multi-user enterprise databases with commercial GIS software. It took quite a bit of effort to learn how to do this on my own and my hope, as always, is to help others navigate this technology without repeating the mistakes I made. Continue reading “New Course: Introduction to spatial databases with PostGIS and QGIS”

New Course: QGIS 3.0 for GIS Professionals

It’s a great time to be a GIS Professional. The industry is booming, ArcGIS Pro is a complete overhaul of ESRI’s desktop GIS product. Radian Studio is busy rewriting GIS algorithms to take advantage of massively parallel processing in modern computer architectures that can make short work of computer intensive spatial operations. Meanwhile in the open source world, the community of QGIS users is very close to releasing a major new version in QGIS 3.0. Continue reading “New Course: QGIS 3.0 for GIS Professionals”

New Course: Mobile GIS and Mapping Applications with Leaflet

Mobile GIS and Mapping Applications with Leaflet

This course is available now on It will show you how to create a mobile specific mapping application using Leaflet.js including

  • Formatting your web application for mobile device screens
  • Understanding touch screens and adapting your web app for them
  • Making your web app look and feel like a native application
  • Detecting if the user is using a mobile device
  • Detecting if the user is online or not
  • Getting the most out of geolocation
  • Adding simple charts to your application
  • Using web storage to save the state of your application
  • Using web storage to store local versions of vector data
  • Using the Application Cache API to load a local version of your application for off-line use
  • Creating custom base maps with QGIS and QTiles
  • Adding custom base maps to the application cache for offline use

Continue reading “New Course: Mobile GIS and Mapping Applications with Leaflet”

New Course! Leaflet.js client-side programming.

Display and analyze GIS data on the web with Leaflet.js. For FREE!!!!

This course is available now on It will show you how to add a web map to a web page using Leaflet.js including

  • Geolocation methods
  • Native and plugin map controls
  • Base maps
  • Adding raster data
  • Vector layers
  • Group layers
  • Native leaflet styling options
  • Plugin styling options
  • Loading GeoJSON files
  • Searching
  • Filtering
  • Nearest feature
  • Geoprocessing with Turf.js

Continue reading “New Course! Leaflet.js client-side programming.”