Open Source GIS: Enterprise GIS w/ Postgres/PostGIS
For years I’ve been hearing everyone talking about Enterprise GIS, but I haven’t seen anyone do it. After this course, I can now say that “I’ve created a multi-user enterprise GIS on my own!” – John from California.
Do you want to learn how to build an Enterprise GIS from scratch using Free and Open Source Software for GIS (FOSS4g)?
In response to the high cost and complexities of implementing an Enterprise GIS, I created this easy-to-follow, hands-on training course allowing students to actually build a multi-user enterprise GIS from scratch using Postgres, PostGIS (free) and QGIS (free). As an added bonus, this training will show how you can add other GIS products (i.e. commercial GIS software) into the enterprise stack as GIS clients.
In this course you will create an Enterprise GIS for a mid-sized municipality. You will learn how to add users, each with different permissions for accessing and editing data, and also how to use PostGRES to control all aspects of database access, presentation, and editing. You’ll even perform simultaneous multi-user editing on the same GIS layer, and learn how a true Enterprise GIS can manage many users at once.
As a bonus, you will see how you can access all the GIS tools from outside of the software by using python to create a table-top GIS application that you might find at a kiosk. And finally, I will show you an example of how the same data in the enterprise can be simultaneously displayed on the Internet using FOSS4g software.
In this lecture, you will learn what an Enterprise GIS is, the stages in enterprise GIS implementation , and the example scenario used in this course.
In this lecture you will learn how to download and install PostGRES, PostGIS, and QGIS. While many courses have the software waiting for the students to use in order to simplify things, we will actually show you how to install PostGRES, PostGIS, QGIS, and other extensions to make the enterprise GIS work.
In this lecture you'll download QGIS and install it on your local computer. The current directory for downloading QGIS is located at https://qgis.org/en/site/forusers/download.html
Simply follow the video to download the software, and remember - QGIS is big! This is going to take some time to complete.
In this lecture you will actually load a variety of data (attribute and spatial) into PostGRES and PostGIS. Particular attention will be paid to open source tools available for data loading, and also how to manage different coordinate systems in the database. Unlike many courses that already have the data waiting for you, this course will make sure that you know how to load the data yourself!
In the last lecture, we simply imported our data using a backup file. But, there are many ways to get spatial and attribute data into Postgres. This lecture will look at about 5 different ways to get data into Postgres, and all the different options you have at your disposal.
System Design and Implementation
If you've ever used a multi-user enterprise system, you may have wondered how some users have access to certain data but not other data. In this lecture, you will learn how to create specific working GROUPS, and assign those groups to individual layers. You will create groups that have full control over data, view only capabilities, and limited editing capabilities. In the next lecture, students will create individual login roles for specific users who will inherit the permissions granted to the groups.
In this lecture, you will learn how to create VIEWS to control what a user might see in the database. Rather than having a user directly link to a layer, a VIEW will allow the database manager to create a visualization of the data that an end user can see. In this lecture, we will focus on creating a specialized view from a simple attribute query, a more complex query that spans multiple tables, and a spatial query that re-imagines the original layer to take on the characteristics of the spatial query.
One of the things that makes an enterprise system so powerful is that you can create constraints that protect your data from erroneous data entry. Many GIS implementations have a middle-ware tier to handle data integrity. But, it is often easy to bypass these securities. In a real enterprise system, all the logic and security is handled by the database itself - in other words, you can't circumvent the security. In this lecture, you will learn how to add constraints to the data to ensure that data is properly protected. And unlike many of your GIS counterparts, you can state that the data is protected no matter what system a third party uses to access the data.
In this lecture, you will learn how to create triggers, that will fire off in response to some action the user might take. Specifically, you will create a trigger that automatically updates a value in the parcels table with the watershed it is contained in. Also, your trigger is going to make sure that the new geometry you create actually falls inside a watershed boundary. This is a really powerful way to control your data quality and also automatically perform analytical tasks in response to a data editing activity you might perform.
While the work we did earlier demonstrated some really cool features of constraints and triggers, it is going to be cumbersome to add data for the remainder of this training. So, this lecture is going to modify the functions and triggers so that we can more easily digitize the data. Make sure to run this code, so that you'll be able to add data for the remainder of this training.
Enterprise GIS Use in Practice
In this lecture, you will learn how to use QGIS to perform analysis on data stored in PostGRES. Also, the lecture will demonstrate how to also perform GIS analysis using Manifold GIS. In this case, you will learn how QGIS (or Manifold GIS, or any other GIS product) doesn't care where the data comes from - it will just use it. And, having structured the data in an enterprise GIS you gain the advantage of having the data better managed in PostGRES.
Have you ever tried editing data in a GIS when someone else was trying to edit it? Most often, you can't, as the data becomes locked once a user checks it out for edting. In this session, you will actually perform multi-user, simultaneous editing of the GIS data in PostGRES using QGIS. Students with access to Manifold will also be shown how to edit the data with other software products.
So, unlike most of your GIS counterparts, you'll have built a system that can handle multiple users simultaneously editing the data!
In this lecture, you will learn how to create server-side analysis and functions in PostGRES that can serve the entire enterprise. Students will also learn how to call PostGRES and PostGIS commands from external applications, making this a truly enterprise system. You will also see the benefit of allowing the server to do most of the heavy-lifting for certain spatial analysis tasks.
In this lecture, you will learn how to create a table-top application by writing an external program (in this case, python) that talks directly to PostGRES. This means you can write stand alone applications that simply prompt a user for input, and then perform any powerful GIS process on the back end server, without the user needing to know anything about GIS, or even have a GIS application open.
Once you are done with this lecture, you will be come part of the elite 1% of GIS users that can create external applications to leverage the enterprise GIS.
You will receive an overview of how to deploy enterprise GIS to the Internet using QGIS and the Web App Builder by Boundless Geo.
In this class we've built an enterprise GIS, but in reality, we've just done it on our personal computer, using the localhost (127.0.0.1). What if you want to move to the next level, and really make it an enterprise GIS, stored and managed on a real server. Well, with this class, you pretty much know everything you need to get that started. But, you'll need a server.
This bonus lecture will introduce you to a company that hosts Postgres/PostGIS, and Geoserver in the cloud. Using them, you'll have a company that not only hosts the servers, but also manages backups, updates, and patches. The company is called AcuGIS. Now, if you have your own IT department who can support you, and your use of a real server, that is great. But, you may find that an organization like AcuGIS is a cost effective way to roll out your enterprise GIS to the user community.
AcuGIS was kind enough to provide all my students with a 20% discount on AcuGIS Suite. At checkout, just apply the promo code FOSS4G. The code can also be applied on top of other discounts, such as semi-annual and annual billing discounts (1 month free and 2 months free, respectively).