For reports, presentations, and websites, I regularly need maps: a raster layer, contextual boundaries, a legend, and maybe a logo. Nothing requiring an elaborate page layout. And I often need more than one. For the COMBINED project, for example, I map the same study area in Rotterdam over and over. The extent, the boundaries, and the logo stay put; only the raster and its legend change. Exactly…
Introduction If I have to be honest, keeping project hours is not really my thing. Then again, for whom is it? Still, it is important to keep track, certainly when working on several projects at once. What I actually needed was something simple: a running record of how many hours I spent on each project each week, set against a budget and a timeline, so I could see at a glance whether I was on…
One of the reasons I like Trilium Notes is that it is more than a place to write things down. It is a personal knowledge base where notes can be organised, linked, labelled, reused in different places, and extended in powerful ways. That makes it a good environment not only for storing information, but also for keeping work in context. Notes as tasks A straightforward way to manage tasks in…
Introduction Cloud masking is one of those steps you cannot really avoid when working with satellite data. Luckily, removing them isn’t as hard as it used to be anymore. With OmniCloudMask it has, in fact, become surprisingly easy. OmniCloudMask is a Python library for cloud and cloud shadow detection in high to moderate resolution satellite imagery. Instead of relying on sensor-specific…
Introduction Perceived safety in public spaces is closely linked to intervisibility, the ability of people to see and be seen by others. A pedestrian who can observe other people nearby may feel safer than one surrounded by visual barriers. This tutorial demonstrates how to model pedestrian-level intervisibility using GRASS GIS and publicly available AHN5 LiDAR data from the Netherlands. We will…
Introduction The NDFF ( Nationale Databank Flora & Fauna ) holds over 200 million verified observations of plant and animal species from the Netherlands. These data are contributed by volunteers and professionals from hundreds of organizations. Together they contain a wealth of information about the occurrence of plant and animal species in the Netherlands. Since 2025, the database is accessible…
I recently needed to work with the Basiskaart Groen en Grijs (Basemap Green and Impervious Surfaces). The data are distributed as GeoTIFFs with accompanying QML style files. This kind of packaging is becoming increasingly common and reflects the growing role of QGIS as a platform for using and sharing spatial data. From a QGIS perspective, this works very well: open the GeoTIFF and the intended…
I’ve been moving away from proprietary cloud services such as OneDrive and Google Drive. The reasons are simple: privacy, control, and peace of mind. I don’t want my personal files sitting on big-tech servers, potentially being used for AI training or tied up in closed ecosystems. A self-hosted solution like Nextcloud provides ownership of data and the flexibility to manage it independently. In my…
The problem GRASS GIS offers powerful tools for working with temporal data. You can create space-time raster or vector datasets, and register these in a temporal database that’s automatically managed by GRASS. A key feature of this temporal framework is that the temporal database is mapset-specific. So, space-time datasets and registered time series maps in a mapset are stored in a temporal…
Description The QGIS graphical modeler makes it straightforward to link together different operations and algorithms from the toolbox , allowing you to build custom models for a variety of spatial tasks. One practical example is creating a model to compare two raster layers by displaying their values in a scatter plot. I developed this function while teaching a course on spatial multi-criteria…
When working with raster data in QGIS, manually entering raster resolution and extent repeatedly across various processing steps can become tedious. Often, functions require these inputs explicitly, which can become cumbersome when consistent parameters are essential across multiple tasks. A solution is to use model builder to create a new function that includes as input parameters the raster…
I’m pleased to introduce new GRASS GIS add-ons that integrate Maxent-based species distribution modelling (SDM) with GRASS GIS spatial analysis tools. To help users get started, I’ve prepared a comprehensive step-by-step tutorial that walks you through the entire workflow. Why these add-ons? Existing Maxent implementations often require programming skills, lack integrated GIS capabilities, or…
I am a happy user of Logseq , a note-taking or Personal Knowledge Management (PKM) application. For Linux users, the application is available as an AppImage . I usually install AppImages using the AppImageLauncher . This integrates the application into the system so that it can be launched it from the Activity Overview or Dash. However, after my recent upgrade to Ubuntu 24.04, I couldn’t launch…
A global canopy height map Meta and the World Resources Institute launched a global map of tree canopy height at a 1-meter resolution, allowing the detection of single trees on a global scale. Both the canopy height data and the models used to create the data are free and publicly available (Tolan, Couprie, et al. 2024) . The maps were created using machine learning models on high-resolution…
The r.in.ahn addon In the previous post, I introduced the ‘Actueel Hoogtebestand Nederland’. To start with a small correction, the version 4 I mentioned isn’t the latest version. Version 5 is being rolled out and is already available for the northern part of the country. But for now, let’s focus on version 4. In the previous post, I presented some steps to download the AHN for a specific area and…
The AHN The ‘Actueel Hoogtebestand Nederland’ ( AHN, version 4 ) is the latest digital elevation model (DEM) of the Netherlands. It includes a digital terrain model (DTM) and a digital surface model (DSM). The former represents the bare ground surface without any features such as buildings, vegetation, or other structures, while the latter includes these features. Tip Update The r.in.ahn addon has…
Introduction Bing Maps recently released a data set with the roads around the world. The Microsoft Road Detections (MS roads) data set was created using automatic image recognition, using as input Bing Maps imagery between 2020 and 2022, including high resolution Maxar and Airbus imagery. The data is freely available for download and use under the Open Data Commons Open Database License ( ODbL ).…
Introduction Boxplots are a great way to get a quick overview of the distribution of your data, to compare the distributions of different data sets, and to identify outliers in your dataset. They are easily created using tabular data as an input. In GRASS GIS for example, you can use the d.vect.colbp addon for that. But what about raster data as input? Wouldn’t it be nice to be able to create…
Introduction I am a huge fan of RMarkdown to create e.g., tutorials, presentations and of course this very website. Creating it has always been easy thanks to the blogdown package in combination with Wowchemy’s Hugo Academic . However, there has been a new kid on the blog for some time now, Quarto . Quarto is an open-source scientific and technical publishing system built on Pandoc, and is meant…
The tool I recently had to upload a picture for an ID card. Now, I am not sure about you, but I don’t normally have such pictures lying around. Taking a selfie is easy enough of course, but finding a place with decent light and a good background, well, not in our house. There is always the option to tweak the picture afterwards, but that takes time, and can be tricky with those pesky shadows in…