gravatar

Wyclife

Wyclife Agumba

Recently Published

Lecture date: Period towards exam
In today’s session of Satellite Data for Agricultural Economists: Theory and Practice, we focused on exam revision. We revisited past questions on machine learning and deep learning for satellite imagery, explored key concepts like patch size, batch size, and ethical considerations, and practiced applying evaluation metrics and binary maps for crops like tea and coffee. The exercises also covered temporal transfer risks, biodiversity impacts, and policy-relevant applications, helping students consolidate practical and theoretical knowledge before exams.
Lecture date: 27-01-2026
In today’s session of Satellite Data for Agricultural Economists: Theory and Practice, we compared tea field segmentation models in Kericho, Kenya, using MaxEnt, SDM ensemble, Google Embeddings, deep learning, and GeoTessera. Models were evaluated against independent point data with accuracy, precision, recall, F1, and Kappa. We visualized metrics and maps, then created a consensus map labeling a pixel as tea if at least three models agreed, reducing model-specific errors and improving reliability.
Lecture date: 22-01-2026
In this session, we demonstrated how to segment tea fields in Kenya using high-resolution Sentinel-2 imagery and manually digitized labels in Google Colab. Using torchgeo and torchseg, we loaded and visualized the raster and vector data, generated training patches on the fly, and trained a U-Net model for semantic segmentation. Training metrics such as loss, accuracy, and IoU were tracked, and the best model was saved. The trained model was then used to predict tea plantations across the full study area and evaluated against ground-truth points. This workflow provides a scalable pipeline for combining geospatial data with deep learning for agricultural mapping.
Lecture date: 20-01-2026
In today’s Satellite Data for Agricultural Economists session, we used Google Earth Engine to create and export labeled polygons for tea and non-tea areas in Kenya. Participants learned to generate cloud-free Sentinel-2 composites, apply cloud masks, visualize regions of interest, digitize training polygons for deep learning, and export datasets to Google Drive for further analysis, laying the foundation for spatial ML and deep learning in agriculture.
Lecture date: 15-01-2026
In today’s Satellite Data for Agricultural Economists session, we built spatial machine learning models using Tessera geospatial embeddings to map tea plantations in Kenya. Participants learned to download embeddings in Google Colab, prepare training data, train single- and multi-method ensemble models in R with sdm, create binary presence/absence maps, and calculate total tea area, showing how embeddings improve crop segmentation over traditional spectral bands.
Lecture date: 13-01-2026
Today’s session in our Satellite Data for Agricultural Economists course focused on building a spatial machine learning model using the new Google Embeddings dataset to map tea plantations in Kenya. Participants learned how to generate embeddings in Google Earth Engine, prepare training data, train multi-method ensemble models in R with the sdm package, create binary presence/absence maps, and estimate total tea area—highlighting how high-dimensional embeddings can improve crop segmentation compared to traditional spectral bands.
Lecture date: 08-01-2026
In today’s Satellite Data for Agricultural Economists session, we applied a pre-trained spatial machine learning model to map tea plantations in a different year—using Google Earth Engine composites, Area of Applicability diagnostics, and ensemble predictions to assess temporal transferability and quantify changes in tea area between 2020 and 2025.
Lecture date: 18-12-2025
Today’s session in our Satellite Data for Agricultural Economists course walked participants through building a spatial machine learning model in R to map tea plantations using Sentinel-2 imagery, training data, and ensemble methods for robust, high-resolution crop classification.
Lecture date: 16-12-2025
Teaching a hands-on module on Satellite Data for Agricultural Economists, covering Sentinel-2 preprocessing, cloud masking, canopy height integration, and building machine-learning training data in Google Earth Engine. Practical, coding-oriented, and focused on real agricultural applications.
Lecture date: 11-12-2025
Kicking off our Satellite Data for Agricultural Economists course with a hands-on introduction to R, geospatial data, and Google Earth Engine—guiding participants from setting up their first R project to extracting and visualizing real-world boundary data for applied agricultural analysis.
Update on sdm
I update the sdm code on https://www.biogeoinformatics.org. I felt this was overdue since it was written in 2016 by Babak Naimi and many changes have been made to the package since then making it difficult for new users to rely on the tutorial.
legend
Changing the font size of the legend.
SDM
Ensemble modeling in species distributions.
srtm_visual
Visualizing srtm dem via rgee
cells_above_threshold
Here I show simple code on how to get the proportion of pixel values in a raster that are above a given threshold.
Do not be scared with R
Here I remind R trainers on terms that they should not take ligjtly when addressing new R users. At the same time, I encourage new R users to receive such statements positively. It is all to their own advantage.
vegan
A basic introduction to vegan package for ecologists in R.
phago_loricatus
A simple model of the potential suitable habitat of Phago loricatus of Western Africa.
ggscatter
Following the work at RUFORUM I made some efforts on ggscatter.
predict_sdm
Changing layer values but retaining names does not affect predict function on sdm models.
mapping_3D
Here I demonstrate how to make a simple 3D map in R.
Diceros_bicornis
Here I model Potential suitable habitats for the black rhino in both Kenya and Tanzania territories.
ViewPipeSteps
Demonstration of using ViewPipeSteps to print data at every step of piping in R.
reclassify_raster
Here I demonstrate how to reclassify raster object and calculate area under each class.
sdm_sf_stars_terra
Call to improve sdm to accept sf, stars, and terra data output for model building.
afrilearndata
A short exploration of the afrilearndata package
Mapping in R with mapsf
Here I demonstrate the power of mapsf as a mapping package in R.
Mentorc_code
Update of the previous plot with code
Mentor score
As an appreciation to exemplary mentor.
species_occurrence_uncertainty
A short article which compares pixel values extracted within a buffer zone of species occurrence records to assess whether some species records are within 'very unclikely' habitats hence worth being left out while running sdm.
kmeans
Running kmeans across raster stack in R.
mutate_na
Here I demonstrate how to mutate a column with some values as NA
citation
Making citations within .Rmd file in R.
Reclassify_Raster
I demonstrate how to reclassify a raster layer and generate calculate the area under each class plus generate a plot.
multiple_columns_one_plot
Generating a legend for multiple column data can be challenging. Here I demonstrate how it can be done with simple code.
Dying_Tsavo
Tsavo is highly likely to be unsuitable habitat for Panthera leo by 2070 under RCP 8.5 climate scenario.
Dying_Tsavo
National Parks are confined areas and climate change is shifting suitable habitats. Will Tsavo National Park still be suitable for Panthera leo in the year 2070. Under RCP 8.5, the answer is sad NO. In fact, even Amboseli won't be suitable for the pride of Africa. I built the model using sdm package in R 4.1.1 with random forest, boosted regression trees and support vector machine under both bootstrapping and subsampling replications.
sf_dplyr_mapsf
Demonstration of mapping from sf object, through dplyr and units to mapsf.
Ladybird
A very important insect that feeds on aphids and other crop-damaging pests. In the process, it also aids in pollination. Here we model its potential suitable habitat in South Africa using sdm package and an ensemble of rf, svm and glm algorithms in R 4.1.0.
Geospatial Analytics
Showing which schools are near which hospitals in constituency X. Popular geospatial analysis concept. Schools share the same color code as their nearest hospital. Constituency polygon, Schools points, and Hospitals points were randomly drawn in QGIS and imported to R for this demo purposes only. However, you can reach me for the random data and code used for your adoption freely. Happy coding in R.
Spatial Analytics using R
For better planning within a constituency, the knowledge of which which health facility is neared to which schools is key. This can help to easily tell which health facilities are serving more schools and may need more staff or expansion of some sort.
Copsychus of Pakistan
It is fun mapping the distribution of this magnificent bird in Pakistan. Nest building, egg incubation, and feeding hatchlings are done by females. The pictured male defends territory, can be aggressive even to his own reflection!
bayes
Getting started with Bayesian Statistics. Finding the approach to be interesting and real.
dikdik
Potential suitable habitat of dikdik (Esuruo in Turkana Language). It is surprising that the species is available in northwestern Kenya, the border with Uganda but since no occurrence records from that region, the habitat is generally modelled unsuitable. Typical wrong model.
panthera_leo
Potentially suitable habitat of Panthera leo in Kenya. sdm package version 1.0.89, in R 4.1.0. Plots are replicates of random forest method under bootstrapping (top three) and subsampling (bottom three).
Sunbird of Socotra Island
Pollinators like sunbirds are crucial for the survival and regeneration of flowering plants globally. We may need to relocate those native to Socotra island to the mainland as future climates diminish their suitable habitat within their native lonely island. Rescue the species before it is gone.
DAFNEE database for ecology journals
Filtering through DAFNEE (https://dafnee.isem-evolution.fr/) for your journal of choice made easier.
R studio
Some fun time
Kenya Counties by Area in Km^2
Simple map of Kenya Counties by Area. Having histogram as a legend with mapsf package (https://riatelab.github.io/mapsf/articles/web_only/how_to_create_inset_maps.html)
Further test for mismatch on layers
This is to further test whether there is a 'strange' mismatch when publishing raster, polygon and points overlaid using mapsf
Raster, Polygon, and Points with mapsf
Took me some little sweat to have vectors overlaid on raster with mapsf. Distribution of sunbird (Cinnyris coccinigastrus) from GBIF in West Africa.
mapsf in action
Some fun moment with mapsf
Template Uganda Map
Simple map of Uganda. Variable mapped are random numbers.
Random numbers
This is a demo of mapping some random variables per county in Kenya. The skill/technique can be transferred to actual values like maize yield or the number of elephants. Again all glory to R programming language, mapsf and raster packages, plus my awesome ubuntu based system.
Kenyan Counties from GADM
A simple map of the Kenyan counties. Data downloaded from GADM using raster package's getData function and mapped using mapsf package.
Potential Suitable Habitat of Kenya's BIG FIVE
The BIG FIVE (Leopard, Lion, Buffalo, Elephant, and Rhino) are very important to Kenya's tourism economy and ecological functions within the African savannah of Kenya. How much of their suitable habitat fall within protected areas is therefore an important information for their conservation. This is a work in progress to establish the proportion of suitable habitats within protected areas for the BIG FIVE in Kenya.
Dung Beetle (Scarabaeus satyrus)
This is one insect that distributes animal dung across savannah thus potentially influencing soil nutrient dynamics. Its potential suitable habitat is therefore of importance for range management. It would be nice to correlate the density of dung beetles and soil fertility levels in an area.
Map on image with mapsf package
mapsf development version has the mf_background() function that allows for setting image background of choice and add maps on top. Cool.
Martinique Choropleth
..and the color shades are elegant.
Choropleth Map With Purple Shadow
The power of mapsf package in R still amazes me.
Kenya Counties Min Temp.
Central and parts of western Kenya are cooler as evident from worldclim tmin data. I used counties shapefile from GADM to extract mean temperature for each county.
Panthera leo
Potentially suitable habitats and standard deviation around those predictions in Africa. Occurrence points from GBIF are also indicated.
Vulpes bengalensis
How much suitable habitat for critically endangered Vulpes bengalensis do we still have in India? How certain/uncertain are we about the predictions? Find the answers, at least some, from the interactive map.
maximus
The suitable habitat of the critically endangered Priodontes maximus in South America is quite narrow and fragmented. The extensible sdm package in R is helping us to visualize this and a call for robust conservation strategies is inevitable.
taurinus
This is a simple distribution model of wildebeest (Connochaetes taurinus) in Eastern and Southern Africa. Even though there appears to be a more suitable habitat for the species in Southern Africa than in Eastern, the uncertainty around the prediction is equally higher in Southern Africa.
Hippocamelus bisulcus
Map showing the potential suitable habitat for South Andean Deer (Hippocamelus bisulcus) within native Chilean border.
Cannabis
Potentially suitable habitats of Cannabis sativa and occurrence records (red dots) in Northern Americas.
Honeycomb plot
Honeycomb plot on the relationship between Ozone levels and temperature.
Martinique
Population and the median income of Martinique Island
Gapminder Distribution
Distribution of life expectancy across continents between 1952 and 2007
Turkana_Water_Points
200 shallow wells in semi-arid lands of northern Kenya (Turkana County) where the nomads could get water for their livestock.
Turkana_Water_Points
Trying to help nomadic pastoralists in semi-arid lands of northwestern Kenya (Turkana County) to know WHERE water points are located. This can be very important information to them during extreme drought events.
Turkana_Water_Points
A map of 150 points WHERE nomadic pastoralists in northern-western Kenya (Turkana County) could find water. Positional attributes are accessible by clicking a point.
Turkana_Water_Points
Improving the knowledge of nomadic pastoralists in Northern Kenya on WHERE 'oases' are found within their semi-arid environment. Click points to get attributes. This is a project in progress...
Turkana_Water_Points
Getting more points, hitting 40 points. Click a point to get some attributes.
Turkana_Water_Points
Knowledge of WHERE water points are located in an arid environment is very crucial. In this project, I map wells and dams in Northern Kenya semi-arid environment especially Turkana County.
Base R Plot
How could I forget to better label the y axis.
Base R Plot
Rotating the equation of the abline to better align beside the line itself.
Simple plot
I love ggplot2 products, but I thinks this is also awesome with Base R plot.
Simple plot
Simple plot of top 1000 observations.
NEON data for Vegetation lifeforms classifications
Stretching the limits of using DTM and DSM lidar layers for vegetation lifeforms classification and other assessments.
NDVI_Loima_Turkana_Kenya
NDVI for the month of December 2020 in Loima Sub-County, Turkana County in Kenya. Possible projection/prediction of 'greenness' indices could help pastoralists design their seasonal migration with cattle in an informed manner.
Diamonds plot
Generating diamonds plot against price using assorted packages within tidyverse.