Re-cap of our training on ‘Spatio-temporal data analysis using free and open source software’
Week 1 of Summer School 2016 (#SummerSchool2016) wrapped up on Friday June 10 with an entire day dedicated to Python, demonstrated primarily by Francesco Lovergine. The course, consisting of nearly 30 students, first introduced several other coding languages in the time leading up to Python. In fact, were it not for the building up of coding language and syntax in these other languages, a lesson in Python would be irrelevant. This post takes a general look at the cornerstone lesson that was a launching point for the rest of the week.
Monday opened with a statement of the expected learning curve that exists for students of coding. This was presented partly as a disclaimer and partly as words of encouragement. Importantly, beginner coders (or students with virtually no coding experience coding) should expect to be challenged; and rightly so because coding is challenging. Nonetheless, the objective of the course is to empower students by providing the tools to teach themselves, and pointing the way to the free online resources necessary for climbing the learning curve.
The class continued with a discussion of why open source software (OSS) is important for GeoComputation of Big Data, and how Processing Efficiency and Research Reproducibility is important for researching the large-scale data that often defines the Anthropocene.
” A variety of programming languages were introduced, beginning with BASH, then rapidly moving on to AWK, GDAL, GRASS, PKtools, R and finally Python…”
So, how did the course fare in covering such complex topics while also teaching command-line coding skills? To begin with, students are given an impressive suite of software that is accessed in a packaged operating system that runs parallel to the current operating systems on student computers. This operating system is known as Lubuntu Virtual Machine (LVM). Students are guided through the installation of LVM on their personal computers. The LVM package includes QGIS, Gimp, Python (and IDLE), R, GDAL, GRASS, SAGA GIS, Postgres, SpatialLite, Leaflet, and Rasdaman. Both GUI and scripting libraries are bundled in this light-weight operating system.
The course then concentrated on basic commands in the Bash coding language in the Linux Terminal. These basic commands, including
man [command]
more [file]
head [file]
tail [file]
… and many others were used again and again in subsequent lessons focused on different coding languages. Students were also exposed to scripting several commands using the pipe ( | ) metacharacter, as well as several other special characters used to query large arrays of data, directories, and files.
” from this student’s perspective, having even the most basic Python interface explained will be incredible useful…”
Importantly, the lessons incorporated the online resources available through the Spatial Ecology wiki page, to guide students independently following up on topics introduced. The course was extremely diverse in terms of content and composition. A variety of programming languages were introduced, beginning with BASH, then rapidly moving on to AWK, GDAL, GRASS, PKtools, R, and finally Python. Along the way the integration of each of these scripting languages within one another, importing their respective libraries, and QGIS was presented. For many students, understanding how the various coding languages can be integrated with one another, and how to expand the possible applications by importing programming libraries, set a stage for future applications to their own datasets.
The week closed with a lesson in Python, which, as any Python user knows, cannot possibly be completely taught in one day. However, from this student’s perspective, having even the most basic Python interface explained will be incredibly useful for those who are motivated to teach themselves using online, open-source resources. The final slide students saw was the learning curve slide (above). The instructors pressed students to consider where on the learning curve they were at the start of the course, and where they were on Day 5. I doubt any students failed to advance their coding skills. While the instructors only joked about students giving up entirely, it is a sure bet that being equipped with the LVM, websites for following up on topics covered, and having a forum for asking experts questions was empowering, and well-aligned with Spatial Ecology’s mission statement.