RSSAmplifier

Blog

Ecodiv.earth

ecodiv.earthRSS feed ↗20 posts

Latest posts

m.printmap, a new addon to create maps in GRASS

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…

Keeping track of project hours in Trilium

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…

Weekly planner for Trilium

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…

OmniCloudMask for cloud detection

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…

Viewshed-based modelling of intervisibility

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…

Counting NDFF records

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…

QML to style a GRASS raster

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…

Nextcloud Desktop AppImage and nautilus integration

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…

Fix references in space-time dataset after renaming a mapset

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…

A scatterplot of two rasters in QGIS

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…

Raster layer properties in QGIS

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…

Species distribution modeling using Maxent in GRASS GIS

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…

Logseq on Ubuntu

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…

The canopy height map by WRI and META

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…

An addon to download the AHN data in GRASS GIS

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…

Download AHN data in GRASS GIS

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…

Working with the Microsoft Road Detections dataset

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 ).…

Boxplots based on raster data in GRASS GIS

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…

Switching to Quarto

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…

Removing the background in a picture

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…