I am both philosophically and ethically opposed to proprietary software, since it runs dead against the expansion of our shared cultural space, which I believe is vital to the survival of our species. This is a required course, however, and in the large scheme of things I am willing to compromise when I need to. I like to think of it as dancing with the devil, learning the devil's moves in order to be able to freely out dance him in the future. In this case that will mean applying what I learn in GGS 553 to mastering QGIS, the free software alternative to ArcGIS. I had intended to try to do each of our assigned labs this semester in both ArcGIS and QGIS, but when I found it difficult enough just to complete them on time in ArcGIS, I gave up on that idea after the first week.
This week we have a sort of half size assignment, so I thought I would use the extra time available to see if I could do it in QGIS. The first challenge will be to load the project data into QGIS. We were given the data in ArcGIS's file geodatabase format. QGIS can not yet read and write to this format directly, but there are tools available to convert it into PostGIS, with which QGIS can work well.
Last Summer I wrote a blog post documenting how I setup a PostGIS server on Ubuntu 14.04. Since this year I am also needing to learn RHEL, I'll use this guide to setup the server on the little Centos 7 server I have at home for just such purposes, and then connect to it from QGIS running on my Ubuntu desktop.
Installing a PostGIS Server on Centos 7
$ sudo yum install postgis postgresql-server postgresql-contrib $ sudo postgresql-setup initdb $ sudo -i -u postgres $ psql postgres=# \password postgres Enter new password: Enter it again: postgres=# \q $ exit $ sudo vi /var/lib/pgsql/data/pg_hba.conf
Change this line (near the bottom):
host all all 127.0.0.1/32 ident
host all all 0.0.0.0/0 md5
Next allow database connections from outside:
$ sudo vi /var/lib/pgsql/data/postgresql.conf
#listen_addresses = 'localhost'
listen_addresses = '*'
Create a new database user with superuser privileges:
$ sudo su - postgres $ createuser --superuser [user] $ psql -c "ALTER ROLE [user] PASSWORD '[password]'" $ exit
Then as that user create the database and add gis extensions:
$ createdb webster $ psql -d webster -c 'CREATE EXTENSION postgis'
Then after copying over the
Webster.db directory containing the file geodatabase, I ran:
$ ogr2ogr -f "PostgreSQL" PG:"dbname=webster user=[user] password=[password]" Webster.gdb
After which I connected my desktop QGIS to the PostgreSQL server running on my little household server and loaded the three layers I found there: