This guide is meant to help you spin up your data-driven geomorphic research with self-directed learning about Python, exploratory data analysis, and working with geospatial datasets with Python

Who is this guide for?

You are... someone who has been doing geomorphic research primarily through a GUI (graphical user interface)-based program like ArcGIS or QGIS. While your muscle memory allows you to quick click and drag your way to scientific discovery, you realize that there is so much freakin’ data out there that you need to streamline your workflow. What if you could automate some of your processes? Then you could finally analyze those big datasets we now have, not to mention your work can be totally reproducible for when you publish or hand a project off to a student.

You are.... a student new to geomorphology (and maybe even the earth sciences), and you want to develop skills during your studies that will translate to project exploration for a senior thesis, efficient and effective research workflows for graduate study, or transferrable skills for a job after graduation. Maybe you’re interested in the blossoming fields of geospatial data science and green tech, which require crunching of environmental data to do things like track carbon fluxes and guide precision agriculture.

Yes, this guide is for you! I am constructing this guide as a way to both start students off on a path toward discovery and creative problem-solving with coding, and help experienced researchers replace their current workflows with algorithmic ones.


🌲 indicates Dartmouth-specific module

🗒️ indicates an assignment that should act like checkpoints on your coding journey. If you are a student, make sure to check in with Joanmarie before moving on so I can see how you're doing.

🌐 indicates my collection of tagged URLs that I have saved because I might want to either use the resource or include it in the lessons. Have a look!


1️⃣ First things first

For 🌲students of Joanmarie...

A note on self-directed learning

From GeeksforGeeks.org...

Cheating in programming is acceptable. If you are stuck in your code, google it or try to find the answer from other resources. It’s a smart way to learn from each other.

Getting stuck in programming is quite normal for all the developers. Most of the beginners and even experienced programmers take help from some resources but that doesn’t mean they are dumb or bad programmers. When you take help from some other resources it makes you a better programmer and a good debugger as well. Every programmer should check all these websites where people ask tricky programming questions, give solution and help each other.

Bottom line: starting right now, you should practice Googling to try to solve your coding conundrums. Most answers will come from StackOverflow or StackExchange. Good practice, though, is to keep track of the URLs you use to get your answer as a comment ('#' followed by text) so that you know why you wrote what you did!


2️⃣ Python-based exploratory data analysis (EDA)