GIS featured image
Introduction to GIS (Geographical Information System) data, its Visualization and Processing Techniques 

1. Introduction 

Geographic Information System (GIS) is a computer system that analyzes and displays geographically referenced information. It uses data that is attached to a unique location. A GIS system creates, manages, analyzes, and maps various types of data. GIS connects data to a map, integrating location data (where things are) with all types of descriptive information (what things are like there). This provides a foundation for mapping and analysis that is used in science and almost every industry. GIS helps users understand patterns, relationships, and geographic context. The benefits include improved communication and efficiency as well as better management and decision making.  

2. Example use cases of GIS 

A geo spatial engineer uses modern mapping technologies, such as GIS and GPS, to map, collect, and analyze geographic data. 

Use case 1: - A rare plant is observed in three different places, and GIS analysis might show that the plants are all on north-facing slopes that are above an elevation of 1,000 feet and that get more than ten inches of rain per year. GIS maps can then display all locations in the area that have similar conditions, so researchers know where to look for more of the rare plants. 

Use case 2: - By knowing the geographic location of farms using a specific fertilizer, GIS analysis of farm locations, stream locations, elevations, and rainfall will show which streams are likely to carry that fertilizer downstream. 

Fig 1: GIS Data Model with 8 base layers 

3. What is Orthorectification / Orthophotography / OrthoImages  

Fig 2: OrthoImage capturing with drone 

Orthorectification is a subtopic of geo referencing. It is the process of converting raw images into a form suitable for maps by removing sensor, satellite/aircraft motion and terrain-related geometric distortions from raw imagery. Imagery has an amazing amount of information, but raw aerial or satellite imagery cannot be used in a GIS until it has been processed such that all pixels are in an accurate (x, y, z- geo coordinates) position on the ground. 

Fig 3: Left: Raw image with geometric distortion. Right: Orthorectified image 

4. GIS data capturing techniques 

Fig 4: Left: GPS Data capture unit. Right: Total Station 

4.1: Primary GIS Data Capture Techniques 

Primary data capture technique uses remote sensing and surveying technologies to capture the data using either raster data capture or vector data capture. The vector GIS data capture technique includes capturing of datasets through physical surveying techniques (this is time consuming and expensive) 

4.2: Secondary GIS Data Capture Techniques 

Automatic raster to vector conversion is a great example of advancement of the technology; it uses special software using intelligent algorithms that have been developed to recognize the patterns of the points, lines and polygon features and capture them automatically to generate vector GIS data. 

5. GIS data generation, visualization and processing tools 

Modern digital cameras will embed GPS coordinates into the photos/videos. Also, there are techniques to manually embed this geo metadata as well. Below is a list of GIS software tools. 

  • Geosetter – This tool can embed GPS coordinates into camera images 
  • ArcGIS - tool for visualizing and orthorectification 
  • Google Earth Pro - Google Earth enables you to travel, explore, and learn about the world by interacting with a virtual globe. You can view satellite imagery, maps, terrain, 3D buildings, and much more. 
  • Google Earth Engine - the code engine of Google Earth. Enables analyzing geospatial information. 
  • Google Maps API - Google Maps API is a mapping platform that includes driving directions, Street View imagery etc. 
  • QGIS - is an open-source GIS tool that provides capabilities and tools to help you visualize, manage, edit, analyze data and compose printable maps. 

Fig 5: GIS data visualization and processing tools 

6. GIS data formats - Raster and Vector 

Raster and vector are two very different but common data formats used to store geo spatial data. 

Fig 6: Vector and Raster data format 
  • Vector data use X and Y coordinates to define the locations of points, lines, and areas (polygons) that correspond to map features such as fire hydrants, trails, and parcels. As such, vector data tend to define centers and edges of features. Eg: KMZ (.kmz) Image file 
  • Raster data, on the other hand, uses a matrix of square areas to define where features are located. These squares, also called pixels, cells, and grids, typically are of uniform size, and their size determines the detail that can be maintained in the data set. Eg: Geo Tiff (.tif) Image file 

7.1. GIS data format – Geo Tiff (.tif) 

GeoTIFF files are raster image file types that are commonly used to store satellite and aerial imagery data, along with geographic metadata that describes the location in space of the image. GeoTIFFs are compatible with nearly all CAD and GIS applications and maintain their quality when compressed, edited, and transferred. Basically, rasters are grids (or “bitmaps”) of pixels that, when combined, depict an image. The more pixels used to recreate a single image, the more defined that image will appear. TIFFs come in a “lossless” format. So, for things like aerial surveys with geo spatial data that need to remain intact no matter how many times they’ve been compressed, copied, edited, and uploaded to different applications, .TIFFs make the perfect container. A sample .tif file is shown below: 

Fig 7.1.1:  GeoTIFF sample image 

In drone surveying, there are two primary visual outputs that can be saved as GeoTIFFs: 

  • Digital elevation models (DEM) 

DEM GeoTIFFs list the vertical point (z) recorded for every horizontal coordinate (x,y), in addition to all the Coordinate Reference System information necessary to place them in greater spatial context. 

Fig 7.1.2: 3D Digital elevation model visual 
  • Orthophotos 

An orthophoto is a two-dimensional, overhead image of the surveyed area. Orthophotos are different from unedited drone-captured images as they’ve been corrected for perspective, lens distortion, topographic relief, and camera tilt. Basically, every point on an orthophoto is shown as if the drone that captured it was exactly perpendicular to the surface when the image was captured. 

Fig 7.1.3: Sample Orthophoto visual 

7.2 GIS data format – KMZ (.kmz) 

A KMZ file is a placemark file used in Google Earth and Google Earth Pro. Since KMZ files contain latitude and longitude coordinates, as well as 3D model data, they can be used in GIS environments to digitally represent real locations of the Earth. You can use Keyhole Markup Language (KML) files to view and share Google Earth information. These files store geographic data and content associated with Google Earth. The KMZ file format supports both vector data (lines, points, polygons, triangles etc.) and raster data (images). A KMZ file consists of a main KML file and zero or more supporting files that are packaged using a Zip utility into one unit, called an archive. 

Fig 7.2: Sample KMZ package 

8. GIS data visualization tools 

8.1 Google Earth Pro 


Visualizing a sample tiff in Google Earth Pro: 

Note: If the GeoTIFF file is large, Google Earth Pro will prompt you with 4 options on how to handle a large image. 

1. Create Super Overlay: This will split up the file into multiple *.kmz files. 
2. Scale: This reduces the image size to the maximum supported size. 
3. Crop: If you want to reduce the actual size of the image and view only a subset of the image. 
4. Cancel: Nothing will happen and you won’t get to see your image in Google Earth Pro. 

Fig 8.1: Visualizing sample GeoTIFF image in Google Earth Pro 

8.2 Google Earth Engine 

Google Earth Engine is the code engine of Google Earth. Google Earth engine plugin can also be integrated with QGIS. To use this plugin, we must be an authorized user in Google Earth Engine. Login to Google Earth Engine and sign up.

Google Earth Engine is a cloud-based geospatial analysis platform that enables users to visualize and analyze satellite images of our planet. Scientists and non-profits use Earth Engine for remote sensing research, predicting disease outbreaks, natural resource management, and more. Google Earth Engine has many python packages which can be used to visualize and process images having geo spatial information. 

Fig 8.2: Visualizing sample image in Google Earth Engine 

Google Earth Engine python packages

Google Earth Engine python packages
Fig 8.3: Visualizing sample GeoTIFF image in Google Earth Engine Python Library 

9. GIS data processing using python 

  • gdal 
    gdal package modules to get the latitude and longitude for a given pixel position. As we know, in tiff files of datatype orthophotos, we won’t have elevation information in the geo spatial metadata (elevation information is captured for DEM type files). 
  • rasterio 
    This package we can use for printing the image metadata. Our tiff files have 4 bands – RGBA (A-alpha/transparency). We can visualize 4 bands separately using rasterio 
  • rioxarray 
    This package can be used for printing image metadata. 

10. Elevation APIs 

For tiff files of datatype orthophotos, we won’t have elevation information in the geospatial metadata (elevation information is captured in DEM type files); we need to explore how to find the elevation for a given (latitude, longitude). Multiple elevation APIs are available and we tested 3 APIs (including Google Elevation API) and one python package which could help us in predicting the elevation for a given (latitude, longitude). 

  • Google Elevation API  
  • To call this API we need an authentication key 
  • Open Elevation API 
  • Open Topo Data API 
  • Altitudo python package 

While testing and comparing the results with the actual elevation from Google Earth Pro GUI we could determine that only Google Elevation API was consistently returning accurate elevation values. 

11. Mapping image pixel coordinates to latitude, longitude, elevation  

We developed a python utility that can take a set of (x, y) pixel coordinates from an input image and using the packages and APIs mentioned in the previous sections, generate a ‘position-on-the-planet’ (latitude, longitude & elevation) for that pixel. A sample output (in csv format) from this utility wherein it processes multiple input images and captures corresponding (lat, long, elevation) is shown in the figure below. 

Fig 9: Export Latitude, Longitude and Elevation data for given sample tiff files 

12. Conclusion 

Thousands of organizations in virtually every field are using GIS to make maps that communicate, perform analysis, share information, and solve complex problems around the world. This is changing the way the world works. Here we introduced the basics of GIS data and its formats, visualization and processing techniques. Our next step is to do some automated position mapping on artifact detection using the best available GIS processing techniques and APIs. 

In part 2 of this series, we’ll describe how the GIS data mapping techniques described above is combined with the deep learning algorithms of Ignitarium’s TYQ-i™ platform to automate Positive Train Control (PTC) mapping around railway tracks.