Course Introduction

Geospatial Data Analysis with Python is an online training course provided by GeoSpatialyst to teach you how to programmatically analyze geospatial data with Python. The course consists of six interactive sessions starting from learning general operations on geometric features to analyzing satellite images (i.e. reading and writing raster formats). In this course, students will mostly sit in front of computer since they will learn to program and do pratical exercises in Python language alongside with the course convener. We will focus on applying programming skills to do various tasks without using any tool in GIS but producing the same or better result and faster than GIS.

Course Requirement

To gain the most from the course, it’s necessary to know the basics of ArcGIS or QGIS and Python programming. You don’t need to be very good at it, but at least you should know the main files in GIS such as vector or raster files and have little experience in Python. If you are new to Python, you might find it a bit difficult to follow the lessons, but it doesn’t mean you can’t take this course because you’ll never know until you try.

Course Environment

In this online course, we will use JupyterLab, a web-based user interface, as the main programming environment. It enables you to work with documents and activities such as Jupyter notebooks (.ipynb-files), text editors, terminals, and custom components in a flexible, integrated, and extensible manner. All of the code materials in this course are in .ipynb-files which you can run in JupyterLab on your own computer.

Course Schedule

Week Date Day Time (in Cambodia) Duration Session topics
Week 1 24/Jul/2021 Saturday 10:00AM ~ 11:30AM 1h ~ 1h30 1. Introduction to Python and Geometric objects
  25/Jul/2021 Sunday 10:00AM ~ 11:30AM 1h ~ 1h30 2. Vector data analysis and map projection
Week 2 31/Jul/2021 Saturday 10:00AM ~ 11:30AM 1h ~ 1h30 3. Geocoding and nearest neighbour analysis
  01/Aug/2021 Sunday 10:00AM ~ 11:30AM 1h ~ 1h30 4. Geometric operation and data classification
Week 3 07/Aug/2021 Saturday 10:00AM ~ 11:30AM 1h ~ 1h30 5. Plotting static and interactive map on Leaflet
  08/Aug/2021 Sunday 10:00AM ~ 11:30AM 1h ~ 1h30 6. Satellite image analysis
Notice: The time to study might be changed to fit with everyone's schedule.

Registration and Cost

The course is now open for registration, and for those who are interested in this course can register through Google form below:

  • Register: Closed
  • Registration deadline: 23rd July 2021

The cost to participate in this course is 40 USD, and you will be contacted about payment after you register.

Course Objectives

In this course, you will learn from the basic level of using Python for geospatial data analysis to advanced level of analyzing the satellite image retrieved from dataset in Google Earth Engine. In each session, you are supposed to gain the following knowledge:

Session 1: Introduction to Python and Geometric objects

  • Understand the web-based JupyterLab for Python
  • Know the Python module for geometric objects
  • Know how to create different kind of geometries (i.e Point, LineString, Polygon, geometric collections, etc)
  • Know how to use different functions to do basic calculation on geometric objects (i.e calculate area, length, perimeter, centroid, etc)

Session 2: Vector data analysis and map projection

  • Know the Python module for geospatial data
  • Read and write vector files (shp, geojson, kml..)
  • Plot vector data
  • Create geometries into GeoDataFrame
  • Analyze attribute data
  • Set and change the coordinate reference system of data

Session 3: Geocoding and nearest neighbour analysis

  • Understand about geocoding
  • Convert location names to coordinates
  • Geocode a set of addresses to coordinate data from OpenStreetMap
  • Plot those addresses location in a map
  • Conduct spatial queries. Ex: finding points in polygon
  • Find the nearest locations or points between two sets of data

Session 4: Geometric operation and data classification

  • Conduct overlay analysis such as clipping or intersection, union, difference, etc
  • Conduct a loop operation of overlay analysis
  • Aggregate the geometries
  • Classify data features based on standard classification methods
  • Create custom classifier for data feature classification

Session 5: Plotting static and interactive map on Leaflet

  • Create and customize static map with different background basemap
  • Create and customize interactive map
  • Get to know GitHub repository
  • Share and publish interactive map on GitHub page

Session 6: Satellite image analysis

  • Understand the Python modules for raster data
  • Read and write satellite or raster image
  • Understand about image properties and bands
  • Plot raster data and visualize different color composites
  • Conduct geometric operation on raster data (i.e masking/clipping, mosaic/merge, etc)
  • Calculate various index of raster data (i.e vegetation indice (NDVI), water indice (NDWI), etc)
  • Sample raster data using points
  • Extract cross-section shape from Digital Elevation Model

Poster