If you had asked me in January 2018, when I was just entering my final semester of a computer science degree and never hearing of GIS, if I thought I’d ever be putting my CS knowledge to anything involving geography, I probably would have said “Why? Google Maps and GPS’s already exist, there’s nothing else to do.”
Oh, how wrong I was.
I’m writing this blog post for anyone studying or having completed a degree in something such as (but not limited to) computer science, mathematics, statistics, economics, or anything else where there is a high amount of data that can be analyzed, but does not have to involve geomatics, that is interested in applying their existing knowledge to geospatial data, and specifically wanting to concentrate in GIS (as opposed to remote sensing or data analytics) in the Advanced Diploma of Geographic Sciences (AGEO for short) program at the Centre of Geographic Sciences (COGS). I’m writing this because I wished that I could have found something similar when I was on the fence of applying to COGS, and I am phenomenally happy that I did.
What is GIS?
Firstly, I’d like to offer a definition for GIS that anyone can understand other than “it’s like advanced Google Maps”. As shown on this Esri link that explains more,“a geographic information system (GIS) is a framework for gathering, managing, and analyzing data. Rooted in the science of geography, GIS integrates many types of data. It analyzes spatial location and organizes layers of information into visualizations using maps and 3D scenes. With this unique capability, GIS reveals deeper insights into data, such as patterns, relationships, and situations—helping users make smarter decisions”. For most uses, GIS uses 3 vector types to store data: points (e.g., schools, hospitals, crimes), lines (e.g., roads, sea turtle path, bicycle route) and polygons (e.g., forestry, crops, water). Each of these vectors can be given attributes such as identifiers, school name, crime type, length, area, and anything else that might be stored within a relational database.
Course Overviews
In the first semester, students are required to take six courses, as I will now briefly explain, along with a picture of some sample work.
GDAA 1000 – Fundamentals of GDAA (Geospatial Data Analytics) Projects
This class is designed to prepare the student for either their term or capstone project. Students first learn how to manage their time using CPM, PERT, and Microsoft Project. Next students learn how to find and use relevant literature using programs like Google Scholar. Using tools in Esri’s ArcGIS products, students will evaluate and analyze data used for a proposed project. Students will also learn how to analyze data using the statistical software, IBM SPSS. Finally, students will prepare a project proposal and present it.
GEOM 5005 – Geodesy, GPS, and Geosensors
This class is useful for students without a background in geomatics to understand geographical principles. Students will learn about a variety of topics including spatial referencing, coordinate systems, horizontal and vertical datums, GPS theory, map projections and transformations. Students will gain field experience using the Trimble Juno 3B GPS, and uploading and correcting that data within Trimble GPS Pathfinder Office.
GISY 5003 – Spatial Database Management
This class begins as showing how to design, create, update, and query a non-spatial database, and then shows how to do the same with a spatial database. If you’ve taken an introductory database course before, then the first two-thirds of the course will be a review. The tools used in this course are Draw IO, PostgreSQL, PostGIS, pgAdmin, and QGIS.
GISY 5004 – Fundamentals of GIS
The purpose of this class is to introduce the fundamentals of geographic information systems. Tools used include ArcCatalog, ArcMap, ArcGIS Pro, and ArcGIS Online. After covering the basics (such as vector types), students will learn about geodatabases (different from what is learned in GISY 5003), metadata, models and ModelBuilder, domains and subtypes, Survey123, cartographic best practices, processing of geospatial data, smart and heat maps, suitability analysis, geocoding, and choropleth mapping.
PROG 5000 – Fundamentals of Programming for Geographic Sciences
This course is divided into two sections. For the first month, students will learn the basics of HTML and CSS. For the remainder of the course students will learn the fundamentals of programming using Python 2.7. For HTML and CSS, students will learn about headings, paragraphs, styles, binary and hexadecimal numbers, tables, lists, page divisions, style sheets, graphics, and forms. For Python, after covering the very basics students will learn about documentation, flowcharts, conditional logic, data validation, arrays, string formatting, file reading and writing, functions, and graphics.
Note that if you are familiar with web development and general purpose programming, this course will be a review. It is possible to challenge this course thereby not having to take it, however keep in mind that if you have used other programming languages, but not Python, this will help you with the syntax (though you won’t find it difficult to pick up). Two other things to consider is that the cost of tuition will not change, and if you are hoping to graduate with honours (average of 85%, no final grades below 80%) then this will likely be an easy A.
REMS 5001 – Fundamentals of Remote Sensing and Digital Image Processing
This course is designed to introduce the fundamentals in how remote sensing technology works, and how to process resulting images. Topics covered include electromagnetic radiation theory, energy interactions, interpretation, sensors, image enhancement, image correction, and image classification. Technology used included PCI Geomatics Focus, ArcMap, and USGS EarthExplorer.
A Quick Word on Python and AutoPinMap
When in university, I was never introduced to Python. In fact, it was often shunned aside as an easier language not worth knowing. Python is without a doubt easier to use than some other languages, but definitely worth knowing. It’s much faster to write cleaner looking code, but the real power of Python lies in the modules that have been made available as extensions as there are many of them. As an example of something neat that didn’t take long to make, see below.
I came across two interesting modules, called PyAutoGUI and pyperclip. The first of these is used to automate mouse and keyboard movements, and the second is to programmatically copy and paste. I wanted to apply these to something useful, and GIS related if possible, but had no idea what would be a good use. One day, however the opportunity presented itself. One of the instructors was looking for students to help populate a table using Google Forms with data that would have Twitter links, text, Garmin inReach links, coordinates and text, all of this data would in turn be displayed on a web application created with ArcGIS Online. However, populating the data originally would have taken roughly an hours worth of copying and pasting. I offered to help by writing the code found within this GitHub repository. Obviously a web crawler would have been faster, but it turned an hours worth of work into just over six minutes.
Workload and What Life is like at COGS
It’s no secret that the school is isolated, but this is seriously a blessing in disguise. The AGEO program will require many hours in the lab. From mid-October until the end of exams, expect to be in the facility until 10PM (when it closes) most nights working on various assignments. It is advantageous for COGS to be located where it is. If it were in an urban area there would be far too many distractions.
For fitness, COGS has a gym and small weight area, as well as a hockey team. For a complete gym with exercise machines, there is the Fitness Experience located in Middleton which offers a discounted rate for students. There is also the Annapolis Rail Trail that goes throughout the village that can be used for walking, running, dog walking and recreational vehicles. In the warmer months there are opportunities to go for class hikes and bike rides.
It would be unwise to come to COGS without a vehicle or roommates than can drive. The nearest grocery store is located in Middleton which is approximately 10 kilometres from the village.
In terms of local places to go between studying, there is the local craft brewery Lunn’s Mills Beer Co. that serves both food and drink and hosts trivia nights, the Lawrencetown Restaurant, which is located in the centre of the village, and the local Royal Canadian Legion (Branch 112) that often hosts student nights.
The instructors at COGS are exactly what you’d hope that they would be. All of them have had years of experience in the field before they started teaching, and they are always happy to help answer questions in detail. A plus of a small program is that you’re on a first name basis with every instructor.
Throughout the year there are a number of conferences that you can attend to learn more about what is currently being done in the industry, and for networking. My previous blog post describes what one can expect from an Esri User Conference.
Recommendation
If you’re wondering just how much programming you’ll be doing in the program (and field), the answer is a lot. Even if you opt for a non-programming specific career afterwards, you can expect to use, at a minimum, some of HTML, CSS, Javascript, Python, C#, Arcade, or SQL at some point. While this is an intense program, it is a highly rewarding one. I’ve felt like the work involved helps prepare you better for a career than university ever did.
The bottom line is that if you are looking for a rewarding and technical challenge, have in interest in geospatial data, and are willing to live in a fairly isolated area for nine months, than the AGEO program at COGS is for you.