GIS, my old new acquaintance


Since my last blog post, I have been diving into GIS a bit more…

I have returned to my fist GIS endeavor, QGIS. After my course on ArcGIS Pro, I realized it was just a portion of a larger universe… The one segment I was using is very slick and well put together, but for someone who is trying to learn enough about the arena to see if they want to continue, the cost of purchasing the application and any potential related features is a roadblock. Yes, they do have a 21 day free trial, but it appears to be a gateway to pull you into the ecosystem, requiring an account with licensing aspects. And 21 days is not a lot of time for anyone coming into this as a first step…

QGIS is open source and free. Obviously, as they deal with the same subject matter, there are some fundamental similarities as to how they behave. And this is what I will focus on for the near future.

This past week, I wanted to see how to connect a PostGIS database to QGIS to feed in data that can be changed on the fly, as if it were coming from an application. Exporting a CSV file from a spread sheet each time a change was made was not feasible, and not very realistic to me (Though importing a CSV file is very simple). I have played around with PostgreSQL databases before, but never PostGIS. And therein lies a difference I was unaware of, that none of the resources I found had mentioned.

PostGIS has a spatial feature that QGIS relies on. Columns from a CSV file can be assigned to represent the x & y coordinates of a point map, but that column is defined for you and needs to be populated in QGIS. As this was unknown to me, I called a friend who has worked with PostGIS, and they helped me work through the issue.

Initially, I wanted to use a hosted instance to create the database, but the one I generally use that has a free level that is excellent for most testing, does not allow the PostGIS extension unless you have a dedicated instance, which starts at $49/mo. I installed Homebrew on a secondary Mac mini, added the extension, and here we are!

The database layer can still be manipulated with its own settings for labels, filters, etc… and can be exported as a .shp file and shared with others. As stated, my current database is on the same machine as my project file. I am curious to see if the performance is as impressive with a remote connection. But that is something for another day. Here is my initial minimalist project.