Skip to main content
Student Travel

Unleashing the Power of GRASS GIS with Jupyter Notebooks at FOSS4G 2022

Four people give the Wolfpack hand sign with a cityscape of Florence, Italy behind them
Pack spirit! Center for Geospatial Analytics GeoForAll Lab members on a walk at Piazzale Michelangelo after a day of presentations at FOSS4G 2022. Left to right: Corey White, Caitlin Haedrich, Anna Petrasova, Vaclav Petras. Photo credit: Anna Petrasova.

Editor’s note: Each semester, students in the Geospatial Analytics Ph.D. program can apply for a Geospatial Analytics Travel Award that supports research travel or presentations at conferences. The following is a guest post by travel award winner Caitlin Haedrich as part of the Student Travel series.

With the introduction and rapid rise of data science over the past decade, it should come as no surprise that more and more practitioners and students of geospatial analytics are turning to coding languages like Python and R to conduct their work. Not only does a code-based approach give them access to other tool libraries, but it also makes their work more accessible; other researchers and analysts can follow and reproduce their work simply by re-running their code. One of the most popular tools for data scientists is the Jupyter Notebook, an all-in-one interactive document allowing users to mix narrative text with live code and code output. This mix makes Jupyter Notebooks powerful teaching tools and excellent for sharing and explaining analyses. 

Over the past year, I’ve been working with Center for Geospatial Analytics Research Software Engineer Vaclav Petras and the GRASS GIS community to integrate GRASS GIS with Jupyter Notebooks. GRASS GIS is an extensive open-source geoprocessing library with over 500 tools and 300 more as add-ons. Although GRASS GIS has a Python API (Application Programming Interface), using GRASS GIS in Jupyter Notebooks requires some additional functionality such as in-line visualizations of GRASS data and smooth handling of GRASS data. We wrote a new package called “grass.jupyter” that  provides these functionalities and is included with the installation of GRASS GIS so that all users can access the power of Jupyter Notebooks.

The year-long development effort culminated in a week of presentations and workshops at FOSS4G 2022, a conference about Free and Open Source Software for Geospatial, held in Florence, Italy. Center for Geospatial Analytics Research Software Engineer Anna Petrasova, Vaclav Petras and I led a 4-hour workshop called “Unleash the power of GRASS GIS with Jupyter,” and I gave a talk on the development and usage of grass.jupyter to teach advanced geospatial analytics.

The GRASS development community is tight-knit: through the development of grass.jupyter, I’ve had the chance to work with GRASS developers from around the world. Through the development process, I’ve gotten to know and collaborate with many members of the GRASS GIS community. At FOSS4G, I got to meet many of these collaborators in-person. They gave important feedback and I got to see grass.jupyter in action in their workshops and presentations; it was hugely rewarding and motivating to see other people using my work.

The last two days of the conference are reserved for the “Code Sprint,” an opportunity for developers who often work together remotely to sit in the same room and jam out new features, fix bugs and make big-picture plans for software. This was another highlight of the conference for me: as a new developer who started during the pandemic, it’s not often that I get to code with other developers, especially some of the most active members of the GRASS community.

Photo Gallery

Click a thumbnail image below to expand: