Note: This article is mainly meant to be my master list of GIS and Geospatial resources to share with other developers. As such there’s many links and only a small amount of my own commentary.

A recent LinkedIn repost of mine has gone a wee bit viral with over 4,000 views in a day. Four days later it now has over 6,500 views and 61 reactions - that’s the most popular post in the last 365 years!

The original post by Juliana McMillan-Wilhoit was a comment on the end of ArcMap - a Geographical Information Systems (GIS) software by ESRI that has been around since 1999. My take on it was to share the similarities between artificial intelligence databases and what know from years of geomatics, GIS, and spatial data analysis - and to write alt text for the really awesome graphic.

I have a background in GIS and geomatics, did environmental surveying for the Ontario Ministry of Natural Resources, and had student jobs in spatial analysis in university. In 2019, I changed careers from education as an assistive technology specialist to going back to school for a postgrad program in Urban and Environmental Planning.

When I took some computer science courses to support going into the technical GIS and spatial analysis side of planning I discovered that software development was a way to use my passion and experience in accessibility. So I switched to information and computer sciences grad work, then continued with self and community teaching at the end of 2021. I’m now studying for my Microsoft Azure AI Engineer Associatecertification and Certified Professional in Web Accessibility certification (CPWA). Since spring 2022 I’ve been an active member and volunteer with TorontoJavaScript

I’ve seen several threads on TorontoJS Slack asking for help finding location data sets and dealing with spatial data analysis for Javascript applications. While I share some quick links, a Slack thread isn’t detailed enough to give all the information and resources I’m sharing here.

Tip!: JavaScript developers look for “location datasets” or sometimes “map dataset” when looking for free data for web dev projects. But there’s really no such thing as a “location dataset” in the field that has that information. Those datasets are called either spatial datasets or geospatial datasets. Location is a characteristic of individual data points in spatial datasets.

'location dataset' || 'map dataset' !=== 'spatial dataset' || 'geospatial dataset'

Here’s information and links for developers to learn more about spatial (location) data, spatial data analysis, and geographical information systems (GIS). I’ve also included some resource on AI, especially Large Language Models (LLMs) and vector databases.

There’s many references from ESRI (Earth Science Research Institute) because ESRI is like the Microsoft of GIS. It’s Canadian headquartered in the Don Mills area of Toronto!

Contents

  1. Definitions
  2. Similarities between AI vector Databases and GIS
    1. What are AI vector databases?
    2. How learning GIS and spatial data analysis fundamentals can help you learn AI
  3. Industry Standard and Open Source GIS
    1. ESRI Industry Standard GIS
    2. QGIS Open Source
    3. Avenza Innovative Toronto GIS Company
  4. Free GIS and spatial data analysis training
    1. Free Training by ESRI - Includes general GIS training, not just ESRI products
    2. QGIS Free Training
    3. Avenza Free Training
    4. JavaScript Specific Free GIS Training
    5. Postgres (PostGIS)
    6. Python and GIS Free Training
    7. Statistics and Maths Review Materials
    8. Other Free Training Resources
  5. Free Spatial Datasets
  6. References and more resources
    1. References
    2. Awesome Statistics Book
    3. GIS Resources
    4. Artificial IntelligenceResources - Focus on Large Language Models (LLMs) and accessibility.
    5. Accessibility and AI

1. Definitions

Some of the definitions below are quoted directly from industry sources. Others are my own definitions from years of post-secondary geography and geomatics education, and from doing environmental surveying. Industry sources are referenced with accessible in-page links to the reference section.

  • Geographical Information Systems (GIS)
    • Computer software that stores, analyzes and displays spatial (location) data.
  • Spatial data types can include:
    • Point data: eg
      • location of a utility pole,
      • bird nesting site,
      • feral cat colony,
    • Vector (line) data:
      • a road,
      • hiking trail,
      • bird migration route
    • Raster / shape file (area / pixel) data:
      • a land parcel,
      • footprint of a building,
      • national park area
    • Non-spatial data. For example
      • Who owns the utility pole,
      • What species of bird, and how many eggs it laid
      • How many people used the hiking trail last year,
      • Number of people infected with covid in a postal code
    • Note: This is a very simple overview of data types and examples.
  • Geomatics:
    • The science of the collection, storage, and analysis of spatial data, data relating to the earth’s surface. This also includes space, especially in relation to satellites and space craft in earth orbit.
  • Spatial data:
    • Any data with a location attached.
  • Spatial data analysis:
    • “The process of examining the locations, attributes, patterns, and relationships of features in spatial data in order to address a question or gain useful knowledge.” ~ ESRI 1
  • Layer:
    • “Layers are the mechanism used to display geographic datasets in ArcMap, ArcGlobe, and ArcScene. Each layer references a dataset and specifies how that dataset is portrayed using symbols and text labels. When you add a layer to a map, you specify its dataset and set its map symbols and labeling properties.” ~ ESRI 2
  • Images / Imagery:
    • Refers to non-map data such as aerial photographs (taken from planes or drones) and photographs taken from satellites.

2. Artificial Intelligence Vector Databases and GIS

This past Tuesday I watched a Microsoft Reactor live stream with LlamaIndex on “Building AI-powered Retrieval-Augumented Generation apps with LlamaIndex and Azure Cosmos DB”. Laurie Voss, developer relations at LlamaIndex covered how Large Language Models (LLMs) work. LLMs convert data into numbers, specifically numbers that exist in vector space.

2a. What Are AI Vector Databases?

Artificial Intelligence Large Language Models (LLMs) face a number of challenges including generating:

  • “hallucinating” - inaccurate information and/or information without common sense
  • irrelevant information
  • repetitive information
  • contradicting themselves
  • offensive or biased answers

“A vector database is a type of database that stores data as high-dimensional vectors, which are mathematical representations of features or attributes. Each vector has a certain number of dimensions, which can range from tens to thousands, depending on the complexity and granularity of the data.” ~Microsoft Learn 4

By storing related information together vector database (VBD) with more related information “closer” together, VBDs overcome many of the challenges that LLMs face.

Link to the section of the video that talks about vector db and LLMs

2b. Similarities Between AI Vector Databases and GIS?

There’s a lot of similarities between AI vector databases and GIS. The following section barely grazes the surface, as the main point of this article is to share GIS and geospatial resources with other developers. However, if you’re interested in learning AI, I hope this article will peak your interested in learning geospatial data analysis as well.

Data in a Geographical Information system has location data. By using spatial data analysis you can answer such questions as :

  • “Where are students most likely to be misplaced in self-contained special education classes?” (A project I did.)
  • Where are the locations in a city that are food deserts (no access to grocery stores) with poor public transportation have low income?
  • What has changed in this area since [date]?
  • How fast is an infectious disease spreading (eg. covid)?

Vector databases facilitate LLMs and other AI models in answering question by using “location” of data points. Data that is considered to be more related have a closer location than those not as related.

graphic: cartoon like globe on the left showing a city, farms, fields, and bodies of water. There are arrows pointing from the globe to one of the layers on the right. The right side has a set of six squares one on top of the other with space in between. The top has dots and is labeled customers. Second one is a street map and is labeled streets. Third is an outline of land areas. It's labeled parcels. Fourth layer is a grid with squares different colours. It looks like a river is running diagonally across it. Fifth layer is similar to the fourth, but has different colours. It's labeled land usage. The bottom layer shows different land heights, There's a river running though the middle with a city on one side and trees and rocks on the other. graphic Title: Vector embeddings. Turning words into numbers. Shows 3 phrases of words on the left side of the graphic The cat sat on the mat in red text, The dog sat on the frog in blue, and The centipede sat wherever it wanted in pink. Each phrase has an arrow pointing to a rectangle labeled LLM. There's a single arrow linking the LLM to a grid on the right. The grid is labeled vector space. There are three points on the grid in colours matching the text. Red dot is in upper right. Pink is on the left above centre, and the blue is at the bottom almost in line with the red dot.

The two graphics above shows how AI vector databases looked very similar to a graphic of GIS layers. Laurie Voss’s explanation of how AI’s answer questions using vector databases had so many similarities with spatial data analysis.

  1. Which answer is more likely depends on how spatially close the question or phrase is to the piece of data the AI uses to answer the user’s question or complete a sentence.
  2. Even though Voss didn’t explain the mathematics of vector space, it should be the same or almost the same as that used in spatial data analysis.

There’s only two main differences:

  1. Locations of data points in AI vector data bases are human constructs, and not locations people could visit.
  2. Artificial Intelligence vector DBs are a flat surface.
    • Therefor there’s no need to deal with data on an imperfect sphere, and what happens when you reach the geographic edge of your dataset but the actual data (that’s not in your dataset) continues on over the surface of a sphere past the edges of your map.
    • (If you’re curious ask me about the “PacMan” spatial data sampling method.)

2c. How learning GIS and Spatial Data Analysis Fundamentals Can Help You Learn AI

With all the similarities between LLM data storage and analysis in vector data bases and GIS, learning one can help you learn the other. There’s other benefits too. Using programming languages that are popular in both AI and Geomatics (e.g. Python) in different contexts helps level up your coding skills. Also, there’s overlap with smart devices and the internet of things (IoT), and autonomous vehicles.


3. Industry Standard and Open Source GIS

A Canadian company, ESRI, dominates the global GIS market. GIS started in Canada in 1963 with Roger Tomlinson’s work for the Canadian government. Canada has continued to be world leaders in GIS and geomatics ever since. Which makes some sense considering the size of our country! 3 There are open source GIS. There’s a Toronto company with three interesting products - one that makes GIS available in Adobe Creative Cloud products.

Note that links to training are in the “where to get free GIS and spatial data analysis training” section after this one.

3a. Industry Standard: ESRI

Logo: ArcGIS ESRI. There's a stylized line drawing of a blue and green globe on the left.

ESRI was founded in 1969. It went though many versions, different software architecture, and platforms. Like Apple uses “i” before many of it’s products (iPhone, iPad, …) ESRI uses “Arc”. In my first university degrees I used ArcMap on workstations, ArcINFO on UNIX, and ArcView on Windows workstations. The current version is ArcGIS.

  1. ArcGIS home page
  2. ArcGIS REST JS
  3. ArcGIS API for Python
  4. ArcGIS Developers home page
  5. Mapping APIs and location services
  6. Signup page for a free developer account
  7. 21 day free trial of ArcGIS Online:
  8. 21 day free trial of ArcGIS Pro
  1. ESRI Canada home page
  2. Canadian pricing for individuals

3b. QGIS: Open Source GIS

Logo: QGIS. Very simple green all capital letters. The Q has a bit of orange and yellow stripes on the inner part of the line.

While there are many open source GISs, QGIS is the major open source GIS. It’s the one with good documentation and with the largest community. QGIS runs on Windows, macOS, Linux, BSD and mobile devices, making it really flexible. That’s where I suggest other devs start with open source GIS. I’ve included a list of other open-source GISs for the curious.

  1. QGIS home page
  2. QGIS docs
  3. QGIS CommunityContribute to open source GIS
  4. 13 Free GIS Software Options: Map the World in Open Source. by GIS Geography. Last Updated:October 1, 2023
  5. Open Source Options
    1. Site listing open source GIS options
    2. Also has a YouTube channel

3c. Avenza Systems: Innovative Toronto GIS Company

Logo: Avenza Systems Inc. There's a stylized line drawing of a globe with a letter A on it at the top.

Avenza is located close to Davisville station in Toronto. The staff and work culture is really awesome. I got to get to know some of them in 2020 when I was volunteering for GoGeomatics Canada and writing GeoIgnite conference materials. They’ve invented GIS products that work inside Adobe Illustrator and Photoshop - which might interest some UX designers. They also have a mobile solution that works offline.

Avenza has three products:

  1. MAPublisher: brings over 50 GIS integrations into Adobe Illustrator.
    • This is a huge benefit for book, brochure, and other publishers.
    • Functions include: data import, transformations, geoprocessing, design, label, and export
  2. Geographic Imager: Allows users to work with satellite and aerial photographs inside photoshop.
    • Functions include: georeference, transform, mosaic, tile, style, export
  3. Avenza Maps: Mobile apps for fieldwork and recreation. It uses mobile devices built in GPS without needing a cellular data connection.
    • Features include: Offline use, a map store of professionally produced maps, record GPS tracks, view location on GPS, drop placemarks
  1. Avenza home page
  2. MAPublisher
  3. Geographic Imager
  4. Avenza Maps
  5. Avenza free product trials
  6. Docs for Desktop software
  7. Docs: Avenza MapsThe cover photo is so awesome!
  8. GeoIgnite conference Avenza talk summary I wrote in 2020 for GoGeomatics Canada. It has a Tolkien theme!
    1. GeoIgnite 2020 Video: Cartographic Journeys with the Avenza Platform ~ Nick Burchell – Director- Avenza
    2. Conference talk summary and recording

4. Free Training

There's so many GIS and spatial data analysis training options. Here's a few to get you started. The majority of courses by ESRI require a software licence. Use the free 21 day trials listed above to get started. I've listed both top level sites that have multiple courses and a few individual courses that might interest other developers.

Some of the training resources are listed in multiple categories so readers don’t miss something useful if they’re scanning for a specific topic.

Section Contents

This section has so many links that it needs it’s own contents list!

4a. Free GIS Training by ESRI

These free training resources from ESRI includes general GIS and spatial data analysis training. They’re worth a good look even if you’re going the open source GIS route.

  1. ESRI Self-paced training for individuals
  2. ESRI Free Web Courses
    1. 18 free courses
  3. ESRI: Basics of JavaScript Web Apps
    1. 1 hour, 15 minutes.
    2. Includes intro to ArcGIS API for JavaScript
  4. ESRI: Python for Everyone
    1. 4 hours, 15 minutes
  5. Map Projections tutorials by ESRI
    • This is essential if you’re going to be using spatial data!
      • The Earth being a sphere affects data truth.
      • Depending on the projection distances, areas, or shapes of areas are distorted.
      • This collection of articles, videos, and an interactive “story” (made in a GIS) can be finished in half a day.

4b. QGIS Free Training

  1. QGIS Training manual (html)
  2. PyGIS Cookbook PyGIS is part of QGIS
  3. Developers Guide for QGIS
  4. A Gentle Introduction to GIS Part of the QGIS docs.
  5. Open Source Options YouTube channel

4c. Avenza Systems Free Training

  1. Avenza Systems Webinars list
  2. Avenza Systems YouTube

4d. JavaScript Specific GIS Training , Docs and Resources

Some of these courses are listed in other subsections of this section. But being a TorontoJS member it’s nice to have a specific section to refer people to! JavaScipt is one of the most under utilized programming languages in GIS and geospatial analysis.

  1. 5 Best Web Mapping Platforms – The Battle of Web GIS
    1. This is more an overview of Web GIS, but given that most JS devs aren’t familiar with GIS it’s also an intro to how we can use GIS in web apps.
    2. By: GISGeography
    3. Last Updated: January 6, 2024
  2. PD-32 - JavaScript for GIS
  3. ESRI: Basics of JavaScript Web Apps
    1. 1 hour, 15 minutes.
    2. Includes intro to ArcGIS API for JavaScript
  4. ArcMaps SDK for JavaScript
    1. ESRI
    2. Updated October 2023
  5. Awesome Frontend GIS
    1. “A compilation of geospatial-related web frameworks, tools, demos, applications, data sources and more.”
    2. HUGE list of resources by category
      1. JavaScript Libraries: Mapping, data processing, LiDAR, Remote Sensing
      2. Data sources: Downloads, web APIs, Collections
      3. Notebooks: Beginner, intermediate, advanced
      4. Web maps
      5. Web Apps
      6. Colour advices
      7. Icons
      8. Videos
      9. Further reading
    3. Github repo
    4. Author’s Twitter/X: @joewdavies
  6. Open Layers: Geospatial JavaScript Library
    1. By Geography Realm
  7. JavaScript for Geospatial applications
  8. How can you integrate JavaScript with GIS?
    1. LinkedIn article
  9. Open Source WebGIS Online Tutorial
  10. U Penn: GEOG 585: Open Web Mapping
    1. Free university course
    2. U Penn College of Earth and Mineral Sciences has a lot of free open courses.

4e. Postgres GIS (PostGIS) Free Training

  1. Introduction to PostGIS
  2. PostGIS Docs
  3. PostGIS Videos
  4. Spatial Data Analysis Using Postgis LinkedIn Learning:
    1. Note: Free with LinkedIn premium or Toronto Public Library card.
    2. (TPL had a ransomware in October, 2023 and full digital services are still not available)
  5. Geographical Data Management with PostGIS
    1. Github repo

4f. Python and GIS Free Training

  1. U Penn GEOG 489 - Advanced Python Programming for GIS
    1. 10-12 weeks, 4 x 20-30 minute lessons per week
  2. ESRI: Python for Everyone 4 hours, 15 minutes
  3. Get started with PyQGIS Series’ Articles
    1. Dev.to !
    2. Raymond Lay - French geospatial engineer
  4. U. Penn GEOG 865 Cloud and Server GIS
    1. 10-12 hours/week for 10 weeks
    2. Master’s level elective course.
    3. Software used includes: ESRI ArcGIS Pro/Arcpy, Jupyter Notebook, ESRI ArcGIS API for Python, QGIS, GDAL/OGR.
  5. Best Courses for Geospatial Python
    1. A list of courses from the Mapscaping blog and podcast
    2. Updated October 02, 2022 - sStill definitely worth a look.
  6. Automating GIS Processes 2023
    1. GitHub repo
    2. Emphasis on automating with Python
  7. QGIS Python Tutorial (PyQGIS Tutorial) YouTube - Open Source Options
  8. QGIS Python Programming (PyGIS) Playlist by Open Source Options
  9. PyGIS Developer Cookbook by QGIS docs

4g. Other Free GIS Training Resources

  1. Automating GIS Processes 2023
    1. GitHub repo
  2. U. Penn GEOG 865 Cloud and Server GIS
    1. 10-12 hours/week for 10 weeks
    2. Master’s level elective course.
    3. Software used includes: ESRI ArcGIS Pro/Arcpy, Jupyter Notebook, ESRI ArcGIS API for Python, QGIS, GDAL/OGR.
  3. McMaster Library GIS Services
    • A list of free webinars and other training available to the public.
    • Also resources, software, and workstations, available to McMaster staff and students
  4. GISGeography Learn GIS
    • A list of well illustrated articles and written tutorials.
    • Cartography: Data Classification
      • Is worth a good look. At first glance devs might not find it relevant because it’s about traditional maps and not specifically GIS. But it’s important to know about your data before you use it!
  5. Harvard Centre for Geographic Analysis
    1. List of several free courses on a wide range of topics
  6. U of Buffalo: Free Online GIS Training
    1. List of free online GIS Training
    2. Maintained by the University of Buffalo Libraries
    3. Last updated Jan 08, 2024

4h. Statistics and Maths Refreshers

  1. U Penn:Math and Statistics Review Materials
  2. Cartoon Guide to Statistics by Larry Gonick and Woollcott Smith
    1. This is an amazing statistics book both if you’ve never done statistics, if you need a refresher, or would just like a good reference book.
    2. Yes, there’s “free” pdfs floating around, but it’s well done.

5. Free Spatial Datasets

One of the best places to find open data is the master list by GoGeomatics Canada. Most of the other references below are on that list.
  1. GoGeomatics: Open Data sources list
  2. Free GIS Data Categorized List of over 500 different data sources
    1. All listed sources are ready to go into a GIS database.
    2. https://rtwilson.com
  3. Awesome Frontend GIS - Data Sources
    1. Javascript focused data sources
    2. Downloads, web APIs, collections
  4. Open Street Map
  5. United States Geological Survey USGS EarthExplorer
    1. Note: for teachers and parents the USGS Educational Resources also has great geography, earth sciences materials for kids and teens.
  6. Open Data Inception Global listing of open spatial data sources.
    1. The listing is a map with a search field at the top right of the site.
  7. Transit land Community edited data source of transit data
  8. Transit feeds Archived public transit data.
    1. It has an API and you can login with GitHub.
  9. Open Mobility.org Twitter account
  10. Canadian Open Data and Free Geospatial data resources
  11. World Atlas by GISGeography.
    1. “Get a blueprint of all countries of the world with 200+ maps. Explore the world atlas with political, satellite, and topographic maps.”
  12. Totiū Te Whenua / Land Information New Zealand LINZ Data Service
  13. UK Open Geography Portal Office for National Statistics
  14. 10 Free GIS Data Sources: Best Global Raster and Vector Datasets - GIS Geography
  15. Maps for Europe EuoGeographics
  16. Geospatial Data collection Map and Data Library University of Toronto

6. References and Resources

6a. References
  1. ESRI: spatial analysis | GIS Dictionary
  2. ESRI: What is a layer?—ArcMap | Documentation (arcgis.com)
  3. ESRI: History of GIS | What is GIS (esri.com)
  4. Microsoft Learn: What is a vector database?

6b. Statistics Book

  1. Cartoon Guide to Statistics by Larry Gonick and Woollcott Smith
    1. This is an amazing statistics book both if you’ve never done statistics, if you need a refresher, or would just like a good reference book.
    2. Yes, there’s “free” pdfs floating around, but it’s well done.

6c. GIS Resources

  1. Mapscaping Podcast JavaScript and GIS
    1. Highly recommend the Mapscaping podcast! The host Daniel is a Kiwi! (From New Zealand)
    2. Mapscaping blog
    3. Mapscaping podcast
  2. What is GIS? Geographic Information System Mapping Technology (esri.com)
  3. GIS Dictionary (esri.com)
  4. Geoanalytics 101: Exploring Spatial Data Science - GIS Geography
  5. Spatial Analysis Articles – GoGeomatics Canada
  6. Artificial intelligence article list – GoGeomatics Canada
  7. GoGeomatics Meetups – GoGeomatics Canada
  8. Volunteer to write a technical article on “software dev/ JavaScript / C#, Git, GitHub or other introductory dev topis for GIS professionals”
  9. Canadian Geospatial Schools & Programs.
  10. GIS Stack Exchange
    1. This would be a good place to ask where you could find a particular type of data set.
  11. Open Source GIS Foundation
    1. Get involved in open source projects
    2. Find training and more!

6d. Artificial Intelligence Resources

These are a few I’ve been referring to as I work on my AI Engineer cert. There’s a ton of really good information out there. My focus is on Natural Language Processing (NLP) and Large Language Models (LLMs) because of the intersection of AI and accessibility.

  1. LlamaIndex: Typescript Docs
  2. LlamaIndex: Python Docs
  3. Building AI-powered Retrieval-Augumented Generation apps with LlamaIndex and Azure Cosmos DB LlamaIndex on Microsoft Reactor YouTube
  4. My AI Engineer Collection of courses on Microsoft Learn
  5. Develop natural language processing solutions with Azure AI Services Microsoft Learn, Learning Path 7 hours 9 minutes
  6. Free Microsoft credential. Build a natural language processing solution with Azure AI Language AI Applied Skills credential Microsoft Learn.
    • This is an at home assessment completed after the list of courses at the bottom of the page.
    • Disability accommodations including use of NVDA and extra time are available.

6e. Accessibility and AI Resources

There's great potential for AI to positively impact disabled, neurodivergent, and deaf/Deaf people. It's already being realized as the video below from Be My Eyes shows.
  1. LinkedIn post commenting about AI and accessibility: Assistive technology is AI’s next billion-person market Includes a link to the article.
  2. Be My Eyes and AI Integrates accessibility into it’s app. The video is embedded below.

I hope you find this a valuable resource. It’s always awesome when different tech fields come together to develop something new and interesting.