NCSU GIS 595-601: Tools for Open Geospatial Science

Description

The course will cover emerging field of open science and will deal with reproducibility and replicability challenges of computational research. The students will gain a hands-on experience with tools used by scientists to create geospatial research which can be validated by the wider geospatial community. Several geospatial open source tools will be discussed in connection with general-purpose and text authoring tools such as next generation interactive documents and revision control tools. Although the focus of the course is open science, many of the tools used in the course are used in the industry either for building cloud services or for fast prototyping. The course will cover how open source communities and software development process work and how to apply this for research in a lab group.

See also a flyer, poster (or its rasterized alternative), recorded webinar about the course (slides), slides for an open science guest lecture, and slides on a related topic.

Topics

  1. Open science
    1. Motivation: replicability, repeatability, recomputability, reusability, reproducibility
    2. Components: Open Data, Open Formats, Open Standards, Open Source, Open Hardware, Open Methodology, Open Peer Review, Open Access, Open Educational Resources
  2. Collaborative and automated authoring tools
    1. Online environments
    2. Report generation
    3. Revision control
  3. Geospatial tools
    1. Common open source GIS tools
    2. Geospatial research tools
    3. Command line tools
  4. Publishing methods as code
    1. Writing code
    2. Creating new tools
    3. Open source projects and community
  5. Reproducibility
    1. Computational notebooks
    2. Reproducible environments

Instructor

Vaclav Petras

Office hours: Follow date and time for weekly help sessions.

Prerequisites

No special prerequisites.

Educational approach

Lecture combined with hands-on exercise which overlaps with a short homework.

Schedule

1.

June 24 Introduction to and motivation for open science

2.

June 27 Collaborative and automated writing of papers and reports

3.

July 1 Revision control systems and wiki technologies

4.

July 3 Introduction to command line and remote access to computational resources

...

July 4 Independence Day 🇺🇸

5.

July 9 Command line and Python tools for geospatial work

6.

July 11 Open source GIS

7.

July 16 Publishing source code

8.

July 18 Publishing data on web

9.

July 22 Combining text, code, results, and software

10.

July 25 Writing and reproducing an open science paper

...

July 29 Remaining assignments due

...

August 1 Grades

Assignments are always due the next week on Mondays at the end of the day, but it is recommended to finish them the following day which is, for most of the days, intentionally left free.

The above applies also to the assignments from the last week of classes (July 21-26) which are due on July 29.

Relevant conferences to keep an eye on: FOSS4G and FOSS4G NA (open source geospatial software), JupyterCon (project Jupyter), State of the Map US (OpenStreetMap), AllThingsOpen (Raleigh), and AGU (usually includes several sessions related to open).

Grading

This course is satisfactory/unsatisfactory (pass/fail). There is 10 topics each with its own assignment. To pass the class, you need to do and deliver at least 9 assignments. What you do for each assignment needs to demonstrate sufficient level of understanding and it needs to be delivered on time, otherwise it won't be counted towards your 9 assignments and you need to redo it or do another one. In other words, you can leave out one topic if you want and it is up to you which one.

Software

Several geospatial open source tools such as QGIS and GRASS GIS will be discussed in connection with general-purpose and text authoring tools such as Jupyter Notebooks and Git. Here is a detailed list (subject to change):

  1. Open science
  2. Authorea and Markdown
  3. LaTeX (in Overleaf)
  4. Git, GitHub (Markdown, Overleaf, wiki, Zim)
  5. QGIS
  6. Linux, command line (Bash), SSH
  7. GRASS GIS
  8. Jupyter (and R Markdown)
  9. Writing GRASS GIS module in Python (alternatives: QGIS, R)
  10. Leaflet and leaflet-rastercoords with gdal2tiles --leaflet (plus OSM)
  11. GDAL
  12. Open source development
  13. Docker (and Vagrant)
  14. Writing and reproducing an open science paper

All the software used in the course is open source, so students can install it on their computers without obtaining licenses from the vendors or through the university. Some free of charge services based on open source software or focused on open science or open source development will be used too.

The following additional tools can be discussed as well:

  • Presentation tools: Reveal.js, LaTeX Beamer, R Markdown
  • Poster tools: Tikz Poster, Beamer poster
  • Image tools: ImageMagic, PIL, Graphviz
  • Text tools: Pandoc

Get to know

open science (graphics)