<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on geohaff</title><link>/post/</link><description>Recent content in Posts on geohaff</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 03 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="/post/index.xml" rel="self" type="application/rss+xml"/><item><title>The reproducible geospatial science starter kit</title><link>/post/r-and-r-starter-kit/</link><pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate><guid>/post/r-and-r-starter-kit/</guid><description>After giving a workshop on End-to-end Reproducible Spatial Analysis at South Dakota State University as a part of my sabbatical, one of my colleagues requested a “starter kit” for this type of work. I thought this was a great idea, but rather than write a lengthy email, I decided to put the content into a post. I’d strongly suggest reading this document in full before diving into any one piece described here.</description></item><item><title>Building an Upper Midwest camping forecast app</title><link>/post/camping-forecast-infra/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>/post/camping-forecast-infra/</guid><description>Every summer my goal is to take my kids camping at least twice. We always use a tent, and I hate camping in the pouring rain, extreme heat, or suffocating air quality (sadly now a common summer limitation), and I also like to avoid mosquitos if I can. I’m fortunate that my summer schedule is pretty flexible, so if the conditions are right we can plan a trip a couple days out and leave at the drop of a hat.</description></item><item><title>Developing a tool for identifying structure shade coverage based on azimuth, altitude, time of year, and time of day</title><link>/post/shade-tool/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>/post/shade-tool/</guid><description>I wanted to build a grill shelter beside my back patio to block the western sun in the evenings when we’re often outside as a family (anytime it’s over ~45F), but I needed to know the proper height/positioning of the shelter that would work at different times of day and year. The azimuth and altitude of the sun obviously vary a great deal throughout the year in the Upper Midwest (among other places!</description></item><item><title>Research group manifesto</title><link>/post/research-group-manifesto/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>/post/research-group-manifesto/</guid><description>After years of conducting research, I have had some successes and many failures. When working with undergraduate students, I have found a few principles that make the process run much more smoothly. Sometimes I’m a little surprised that the principles below are not a given (e.g., taking notes during a meeting), but then I have to remind myself that some of these no-brainers were actually told to me explicitly by someone else.</description></item><item><title>Agentic coding ruined it: A sob story</title><link>/post/agentic-coding-ruined-it/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>/post/agentic-coding-ruined-it/</guid><description>As a spatial data scientist, I put tremendous value on efficiency. I’ve poured what feels like an inexhaustible number of hours into optimizing my Emacs config (unashamedly) so that I can work more efficiently, and even to become more efficient at being efficient. And so on. All of this has been remarkably satisfying, even if I have no applied end goal in mind.
One of my favorite things about programming is creating R packages to streamline some cumbersome task, and arguably the best part is finding some edge case that doesn’t work in some niche function and then using the debugger to do truly deep work: testing variables in a function’s intermediate state, decomposing ellipsis arguments, and so on.</description></item><item><title>Creating an interactive 3D map of tree density in Portland, Oregon</title><link>/post/portland-3d-tree-density/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>/post/portland-3d-tree-density/</guid><description>This post was written for 4th Coast Consulting and lives on their site: read it here ↗.</description></item><item><title>The world's largest cycling intersection is spectacularly unremarkable</title><link>/post/worlds-largest-cycling-intersection/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>/post/worlds-largest-cycling-intersection/</guid><description>This post was written for 4th Coast Consulting and lives on their site: read it here ↗.</description></item><item><title>Comparing population densities in states with and without urban growth boundaries</title><link>/post/urban-growth-boundaries-density/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>/post/urban-growth-boundaries-density/</guid><description>This post was written for 4th Coast Consulting and lives on their site: read it here ↗.</description></item><item><title>Creating an interactive 3D terrain model of an idyllic Wisconsin river town with Rayshader in R</title><link>/post/rayshader-wisconsin-river-town/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>/post/rayshader-wisconsin-river-town/</guid><description>This post was written for 4th Coast Consulting and lives on their site: read it here ↗.</description></item><item><title>Central limit theorem misconceptions and the importance of simulation</title><link>/post/clt-and-simulation/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate><guid>/post/clt-and-simulation/</guid><description>The Central Limit Theorem (CLT) is often misunderstood. While some misconceptions are easily and quickly debunked, others are more subtle and surprisingly proliferated by relatively authoritative sources – so much so, that the correct interpretation is difficult to find through a simple Google search. This post will focus on the less commonly recognized misinterpretation of CLT and the power that simulation provides for discovering patterns and demonstrating statistical concepts.</description></item><item><title>Candidates for Dutch-style roundabouts in the USA: Who wants to construct the first?</title><link>/post/dutch-style-roundabouts-usa/</link><pubDate>Sun, 07 Sep 2025 00:00:00 +0000</pubDate><guid>/post/dutch-style-roundabouts-usa/</guid><description>This post was written for 4th Coast Consulting and lives on their site: read it here ↗.</description></item><item><title>Discerning an asserted non-partisan biblical reference guide: When political agenda competes with the gospel</title><link>/post/roadmap/</link><pubDate>Mon, 04 Nov 2024 00:00:00 +0000</pubDate><guid>/post/roadmap/</guid><description>Introduction Over the past couple of years I’ve been writing increasingly about the intersection of faith and politics. Most of these posts don’t see the light of day, and honestly that’s fine by me. Writing itself is therapeutic, even if no one else sees the end product. This post began as a list of concerns I had about certain Christian political resources meant for a conversation with a friend, but it has since evolved into something I feel is worth sharing more widely.</description></item><item><title>Entry-level GIS interview preparation</title><link>/post/entry-level-gis-interview-prepartion/</link><pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate><guid>/post/entry-level-gis-interview-prepartion/</guid><description>I teach many GIS students who are interviewing for jobs and internships. Students would often ask me how to best prepare for these interviews, so years ago I started assembling a document that would help students through the process. This started out as a simple document containing tips for interviewing and how to prepare, but over time I had students send me the questions they received during the interview so that I could share these questions with future students.</description></item><item><title>Embrace the ellipsis: An adventure in R package creation and debugging</title><link>/post/embrace-the-ellipsis/</link><pubDate>Thu, 02 Mar 2023 00:00:00 +0000</pubDate><guid>/post/embrace-the-ellipsis/</guid><description>In my classes and research group, I work with many novice R users who ask a plethora of great questions. Some of the common questions include things like, “Why do you have to quote a package name when you install it but don’t you have to quote it when you attach (i.e. load) it?” Or, “How do you know which package a function comes from if you don’t use the double colon, i.</description></item><item><title>To click or not to click: A GIS memoir</title><link>/post/to-click-or-not-to-click/</link><pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate><guid>/post/to-click-or-not-to-click/</guid><description>Introduction “Some people actually like writing programs for things that can be done with the push of a button,” said the local GIS conference presenter. A student of mine, also in attendance, pointed at me and exclaimed, “Poster child!” We both had a good laugh, but situations like this remind me of the gulf between perspectives for GIS work.
For some, the necessity of using scripting for spatial analysis is obvious, while others can’t see its utility despite sincere attempts.</description></item><item><title>Principles for software selection in geospatial courses</title><link>/post/principles-for-software-selection/</link><pubDate>Sat, 11 Dec 2021 00:00:00 +0000</pubDate><guid>/post/principles-for-software-selection/</guid><description>When geospatial educators think about shaping curriculum, students ought to be the top priority. I’m convinced that most educators want what is best for their students even if there may be disagreement on how to get there. In this piece, I outline what I see as guiding principles in selecting software rather than advocating for a particular software stack or concept emphasis. While resources like the UCGIS Body of Knowledge and Geospatial Competency Model are tremendously useful in shaping curricula, these tend to be concept-focused, and there may be more than one way to achieve their goals.</description></item><item><title>Avoid arcpy. Use geopandas.</title><link>/post/avoid-arcpy/</link><pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate><guid>/post/avoid-arcpy/</guid><description>Overview When someone wants to begin using Python for spatial analysis or automating tasks involving spatial data, I generally see two camps: (a) the data scientist with significant programming experience but a lack of experience working with spatial data and (b) the GIS practitioner with a wealth of knowledge about spatial data but little experience with Python. When it comes to choosing the correct toolkit in Python, both may choose errant paths, although the latter is more likely to do so than the former.</description></item><item><title>Challenges of teaching spatial analysis with Python</title><link>/post/challenges-with-python/</link><pubDate>Wed, 17 Mar 2021 00:00:00 +0000</pubDate><guid>/post/challenges-with-python/</guid><description>The landscape of geospatial software is ever-changing. There’s no shortage of powerful programs, and due to the wide array of potential employment opportunities for geographers, it would be nice to give students broad exposure to as many as possible. These include ArcGIS Pro, ArcGIS Collector, Survey123, QGIS, PostGIS, Python, R, Leaflet, OpenLayers, Mapbox, and Carto to name a few. The reality is however, that at a four year university we simply don’t have time to teach on everything; we have to make decisions.</description></item><item><title>A summary of books I read in 2020</title><link>/post/books-in-2020/</link><pubDate>Tue, 09 Mar 2021 00:00:00 +0000</pubDate><guid>/post/books-in-2020/</guid><description>A great year for reading</description></item><item><title>A practical guide for using BiBteX and natbib</title><link>/post/bibtex-and-natbib/</link><pubDate>Thu, 18 Feb 2021 00:00:00 +0000</pubDate><guid>/post/bibtex-and-natbib/</guid><description>After submitting a paper to International Conference on Spatial Cognition and using their LaTeX template, I made a decision I&amp;rsquo;ve been tempted to make for a long time: to never again submit a paper to a journal or conference using Microsoft Word, at least not as the first/sole author. Using LaTeX is generally much more efficient once the work has been put in up front, and the academic writing environment of Emacs + LaTeX + BibTex + org-ref1 works awesome for me.</description></item><item><title>Mapping 10,000 points with ggplot2</title><link>/post/mapping-points-with-ggplot2/</link><pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate><guid>/post/mapping-points-with-ggplot2/</guid><description>Visualizing Twitter data in R</description></item><item><title>Site Suitability/Terrain Analysis in R</title><link>/post/site-suitability/</link><pubDate>Fri, 13 Mar 2020 00:00:00 +0000</pubDate><guid>/post/site-suitability/</guid><description>It doesn&amp;rsquo;t have to be done with ArcGIS Model Builder</description></item><item><title>An introduction to regression workflows in R</title><link>/post/intro-to-polynomial-regression/</link><pubDate>Wed, 15 Jan 2020 21:13:14 -0500</pubDate><guid>/post/intro-to-polynomial-regression/</guid><description>Exploratory data analysis, model creation, and visualization using several types of regression models</description></item><item><title>The geography of Oklahoma State football recruiting: Technical approach</title><link>/post/osu-fb-recruiting-tech/</link><pubDate>Tue, 29 Jan 2019 13:00:00 +0000</pubDate><guid>/post/osu-fb-recruiting-tech/</guid><description>Web scraping, text processing, mapping, and exploratory spatial data analysis</description></item><item><title>The geography of Oklahoma State football recruiting</title><link>/post/osu-fb-recruiting/</link><pubDate>Mon, 28 Jan 2019 21:13:14 -0500</pubDate><guid>/post/osu-fb-recruiting/</guid><description>A programmatic approach to the spatial dimensions of recruiting over time</description></item><item><title>Doing useful things with Emacs Lisp</title><link>/post/useful-emacs-lisp/</link><pubDate>Sun, 25 Nov 2018 00:00:00 +0000</pubDate><guid>/post/useful-emacs-lisp/</guid><description>A beginner&amp;rsquo;s (or lurker&amp;rsquo;s) guide to extending the ultimately extensible text editor</description></item></channel></rss>