We may earn an affiliate commission when you visit our partners.
Arthur Lembo

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

Read more

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.

Enroll now

What's inside

Learning objectives

  • Install postgres and postgis
  • Design a postgres database with multiple users and roles
  • Load spatial and attribute data into postgres and postgis
  • Manage data by including constraints, views, and indexes
  • Connect gis software and clients to the enterprise postgres database
  • Perform simultaneous multi-user editing of gis data
  • Issue spatial and non-spatial sql to perform geographic analysis
  • Develop and external application (kiosk) in python
  • Publish enterprise data on the internet (this will be a demonstration only)
  • Implement your enterprise solution using a cloud-based hosting service
  • ... and you'll learn how to do it with postgres 11 and postgis 3!!!
  • Show more
  • Show less

Syllabus

Getting Started
Understanding the entire Open Source GIS Curriculum

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.

Read more

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
Logical Design: Groups, Users, and Layers

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.

Physical Design - Roles, Users, and Layers - Part 2

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).

Bonus Lecture: How to keep learning

Save this course

Save Open Source GIS: Enterprise GIS w/ Postgres/PostGIS to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Open Source GIS: Enterprise GIS w/ Postgres/PostGIS with these activities:
Review Relational Database Concepts
Solidify your understanding of relational database concepts, which are fundamental to working with PostgreSQL and PostGIS.
Browse courses on Relational Databases
Show steps
  • Review database terminology such as tables, schemas, and keys.
  • Practice writing basic SQL queries.
  • Familiarize yourself with database normalization principles.
Read 'PostGIS in Action, Second Edition'
Deepen your understanding of PostGIS functionality and best practices by reading a comprehensive guide.
Show steps
  • Obtain a copy of 'PostGIS in Action, Second Edition'.
  • Read the chapters relevant to the course topics.
  • Experiment with the code examples provided in the book.
SQL and PostGIS Exercises
Reinforce your SQL and PostGIS skills through targeted exercises.
Show steps
  • Find online resources for SQL and PostGIS exercises.
  • Complete exercises on spatial queries and data manipulation.
  • Review your solutions and identify areas for improvement.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'QGIS Map Design, Second Edition'
Improve your map design skills to effectively present data from your enterprise GIS.
View GIS Cartography on Amazon
Show steps
  • Obtain a copy of 'QGIS Map Design, Second Edition'.
  • Read the chapters on cartographic principles and data visualization.
  • Experiment with different map styles and layouts in QGIS.
Build a Simple Geodatabase
Apply your knowledge by creating a small geodatabase using PostgreSQL and PostGIS.
Show steps
  • Design a database schema for a specific geographic area.
  • Create tables and import spatial data.
  • Implement constraints and indexes to optimize performance.
  • Write SQL queries to analyze the data.
Document Your Enterprise GIS Setup
Solidify your understanding by documenting the steps involved in setting up your own enterprise GIS.
Show steps
  • Create a document outlining the architecture of your GIS.
  • Describe the configuration of PostgreSQL and PostGIS.
  • Explain how users and permissions are managed.
  • Include screenshots and code snippets to illustrate key concepts.
Contribute to PostGIS Documentation
Deepen your understanding of PostGIS by contributing to its open-source documentation.
Show steps
  • Identify areas in the PostGIS documentation that need improvement.
  • Submit pull requests with corrections or additions.
  • Participate in discussions with other contributors.

Career center

Learners who complete Open Source GIS: Enterprise GIS w/ Postgres/PostGIS will develop knowledge and skills that may be useful to these careers:
Geospatial Database Administrator
A Geospatial Database Administrator manages and maintains geospatial databases, ensuring data integrity, security, and accessibility. You will design, implement, and administer database systems that store and manage geographic information. This course helps with these tasks. Because this course covers Postgres and PostGIS, you would gain hands-on experience in setting up users and their permissions. You would have a solid understanding of database management principles required for a database administrator. The course may also be useful for managing spatial data, performing spatial queries, and optimizing database performance.
GIS Analyst
A GIS Analyst analyzes spatial data using GIS software to create maps, reports, and visualizations. The role involves data collection, processing, and analysis to support decision-making in various fields. This course would be helpful for GIS Analysts by enhancing your skills in enterprise GIS implementation, using open-source tools like PostGIS and QGIS to manage and analyze spatial data. Through the course, you'll gain practical experience in multi-user editing, spatial SQL, and publishing data on the internet. It can also help you perform geographic analysis, develop external applications, and deploy enterprise solutions using cloud-based hosting services.
Database Developer
A Database Developer designs, develops, and implements databases based on end users' needs. This career involves writing SQL queries, optimizing database performance, and ensuring data integrity. This course may be helpful for Database Developers by enhancing your expertise in spatial databases using Postgres and PostGIS. The course provides hands-on experience in designing a Postgres database, loading spatial data, and managing data with constraints, views, and indexes. You can also learn how to perform spatial SQL and develop server-side analysis functions, making it highly relevant for developers working with geospatial data.
Geospatial Software Engineer
As a Geospatial Software Engineer, your responsibilities will include designing, developing, and maintaining software applications that process and analyze geospatial data. You would implement GIS functionalities, integrate spatial databases, and develop custom GIS tools. This course helps build a strong foundation in enterprise GIS using open-source software. This course gives you hands-on experience in creating a multi-user enterprise GIS with Postgres, PostGIS, and QGIS. It provides you with the practical skills to develop external applications using Python. Also, it shows you how to publish enterprise data on the internet, making this course extremely relevant to your role.
Location Intelligence Analyst
A Location Intelligence Analyst analyzes spatial data to provide insights and recommendations for business decision-making. This role involves using GIS tools and techniques to identify patterns, trends, and relationships in location-based data. Taking this course may be useful for Location Intelligence Analysts because it enhances your skills in enterprise GIS implementation and the use of open-source tools for spatial data management. You would gain practical experience in performing spatial SQL, geographic analysis, and publishing enterprise data, enabling you to provide more informed location-based insights.
GIS Consultant
As a GIS Consultant, you'll advise organizations on how to effectively use GIS technology to solve problems and improve operations. This typically involves assessing client needs, recommending GIS solutions, and implementing GIS systems. This course may be useful for GIS Consultants by providing expertise in enterprise GIS implementation using open-source software. The course will give you hands-on experience in building a multi-user enterprise GIS from scratch. Also, it will show you how to manage users and permissions, perform spatial analysis, and deploy solutions in the cloud. This allows you to offer clients cost-effective and scalable GIS solutions.
Remote Sensing Analyst
Remote Sensing Analysts process and analyze satellite imagery and aerial photography to extract information about the Earth's surface. This role involves using specialized software and techniques to interpret remote sensing data for various applications. This course may be useful for Remote Sensing Analysts by providing a foundation in enterprise GIS and spatial database management. You would gain skills in using open-source tools like PostGIS and QGIS to manage and analyze remote sensing data. It would also demonstrate how to integrate remote sensing data with other GIS data layers, enhancing your ability to derive meaningful insights.
Cartographer
Cartographers create maps and other visual representations of geographic data. The role involves designing map layouts, selecting appropriate symbology, and ensuring accuracy and clarity in map products. This course helps cartographers by enhancing skills in enterprise GIS implementation and data management. The course provides hands-on experience in using open-source tools like PostGIS and QGIS to create and manage spatial data. This course also teaches you how to publish data on the internet, enabling you to create interactive web maps.
Urban Planner
Urban Planners develop plans and strategies for the growth and development of urban areas. The role includes analyzing land use patterns, transportation networks, and demographic data to create sustainable and livable communities. This course may be useful for Urban Planners because it will enhance your ability to use GIS for spatial analysis and data management. The course will teach you how to implement enterprise GIS solutions using open-source tools. Also, it provides practical experience in performing multi-user editing and spatial SQL, all of which are useful for urban planning projects.
Environmental Scientist
Environmental Scientists study the environment and develop solutions to environmental problems. This role includes collecting and analyzing environmental data, assessing environmental impacts, and developing strategies for environmental protection. This course may be useful for Environmental Scientists by enhancing your ability to use GIS for spatial analysis and data management. You would gain skills in using open-source tools like PostGIS and QGIS to manage and analyze environmental data. It would also demonstrate how to perform spatial SQL and develop external applications, all of which can be applied to environmental research and conservation efforts.
Data Scientist
Data Scientists analyze large datasets to extract insights and develop predictive models. This role involves using statistical techniques, machine learning algorithms, and data visualization tools. Although this is not a direct fit, data scientists may wish to learn about the basics of GIS. This course may be helpful for Data Scientists by providing skills in spatial database management. The course will teach you how to load data, manage data constraints, and create views. As you know, a data scientist must be proficient in SQL and spatial SQL. The course will help you to learn both.
Surveyor
Surveyors measure and map the Earth's surface to establish property boundaries, create topographic maps, and support construction projects. The role involves using surveying instruments, GPS technology, and GIS software. This course may be useful for Surveyors, giving you GIS skills to analyze spatial data and create maps. You will learn about enterprise GIS using open-source tools like PostGIS and QGIS. This course will demonstrate how to manage spatial data, ensuring the accuracy and integrity of your survey data.
Civil Engineer
Civil Engineers design, construct, and maintain infrastructure projects such as roads, bridges, and buildings. The role involves using engineering principles, CAD software, and project management techniques. This course may be useful for Civil Engineers by enhancing your ability to use GIS for spatial analysis and data management. You would gain skills in using open-source tools like PostGIS and QGIS to manage and analyze infrastructure data. The course also shows you how to perform spatial SQL, and you should know this to make informed decisions.
Business Intelligence Analyst
As a Business Intelligence Analyst, you analyze data to identify trends, insights, and opportunities for improvement. This typically involves collecting data from various sources, cleaning and transforming it, and creating dashboards and reports. This course may be useful because it has the potential to give a business intelligence analyst GIS skills. This is because you will learn about using open source software to set up permissions, manage users, and manage data. This course will teach you how to manage data in an enterprise setting, which can be very useful. The course can give you the skills to extract data, transforming it into meaningful insights.
Market Research Analyst
A Market Research Analyst studies market conditions to examine potential sales of a product or service.. They gather data on competitors and analyze prices, sales, and methods of marketing and distribution. This course might offer an understanding of how location data can improve sales. It may show you how one can manage data in a database. This course may also useful to see how geospatial information relates to sales and distribution, so you will gain an understanding of how location influences market trends.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Open Source GIS: Enterprise GIS w/ Postgres/PostGIS.
Provides a comprehensive guide to using PostGIS for spatial data management and analysis. It covers topics such as spatial indexing, geometric operations, and spatial SQL. It valuable resource for anyone working with PostGIS, and will add depth to the course. This book is commonly used by GIS professionals.
Provides a comprehensive guide to creating effective and visually appealing maps using QGIS. It covers topics such as cartographic principles, data visualization, and map layout. While not directly related to the database aspects of the course, it enhances the overall GIS skillset. This book is more valuable as additional reading than as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser