
Projects
Systems and tools I built, from field sensors to wildlife-habitat models and open-source software.
Systems
BVECSM weather-station platform
A network of weather stations in the experimental watershed of Campus Sainte-Marthe, with a website where people explore and download the data and run models. I rebuilt it from the data loggers in the field to the website.
- Old and new data are merged into one history with versions, back to December 2015. The loggers are read every 30 seconds and the data are synced every 5 to 15 minutes.
- Eight stations in a 9.75 km² basin, with weather, soil, snow, stream and groundwater levels, water temperature, eddy-covariance fluxes and precipitation from a disdrometer, about 790 variables and about 7 million records in all.
- About 60 pages on FastAPI, with current weather, dashboards and a calculation builder, historical comparison, manual correction with an audit trail, sensor status, field-camera images, decision pages for farmers, and downloads in CSV, Excel and Parquet.
- Hydrological models run every day on two stream stations (GR4J, GR4J-CemaNeige, MOHYSE, a differentiable GR4J in PyTorch, an LSTM and an EA-LSTM), next to 15 environmental models for snow, energy balance, evapotranspiration, groundwater, river temperature and carbon.
- ÉTS researchers, students and courses, the municipality and local farmers use it. CentrEau and GEOTOP funded the project.
- Python
- FastAPI
- pandas
- Parquet
- PyTorch
- GR4J
- Campbell Scientific
- CRBasic
- LoggerNet
Wildlife-habitat modelling
A Python workflow that models wildlife habitat in British Columbia on a 10 m grid, fed by my own open-source land-cover pipeline. Confidential development for the company, described here at the level of method.
- The workflow combines terrain, land cover of each year, forest, dated disturbance, snow and hydrology layers into annual habitat-area trends for each management unit (Theil-Sen, Mann-Kendall), with a viewer and GeoTIFF and CSV export.
- My land-cover pipeline provides the land cover of each year, from a U-Net, and fires and cutblocks dated by change detection over 42 years of imagery (see Open-source software below).
- Python
- GeoPandas
- rasterio
- Zarr
- GeoParquet
- numba
- CuPy
- Earth Engine
- Streamlit
- PyTorch
Open-source software
Public repositories under the Research-Tarka organisation on GitHub, and one model on Hugging Face.
The pipeline behind the SSRN preprint. 13 stages from DEM and scene download to per-glacier snow-fraction time series (1984 to 2025), with baselines (NDSI and NDVI threshold, random forest, DeepLabv3, SegFormer) and uncertainty analysis.
Configurable pipeline in 14 stages that turns every Landsat 5/7/8/9 and Sentinel-2 scene of a study area into land-cover maps and dated change events. Earth Engine download on a common 10 m grid, annotation in MaskForge, a U-Net with FiLM conditioning on sensor and day of year (CatBoost as the second supported model), splits by tile, monthly composites, CCDC-style break detection that dates fires and cutblocks, snow, ice and water dynamics, vegetation trends and recovery, GeoTIFF and CSV export.
The pre-trained U-Net of the pipeline above, on Hugging Face. It was trained on 705 annotated scenes with a split by tile and reaches a test mIoU of 0.604 and a kappa of 0.749 on unseen tiles. The model card gives per-class results and the limits.
Standalone viewer for the 42-year glacier snow-fraction record. World map, per-glacier plots, centroid drift and area change, PNG, HTML and CSV export, works offline.
Desktop app for annotating and correcting raster segmentation masks on satellite, aerial or plain imagery.
Windows app for manually cleaning sensor time series, with undo history. Built for the BVECSM environmental monitoring station.
Windows app for batch-converting files across tabular, GIS and vector, mesh and simulation, and raster and DEM formats.
Engineering projects at ENSAM
Formula Student Electric
Led the propulsion energy-chain work package of the ENSAM electric race car, selecting and sizing components against the constraints of the other subsystems.
Wire-arc additive manufacturing
First step toward a physical model that gives the machine settings for a target part geometry. Weld-bead height and width against substrate curvature and layer count. Repeat beads varied by at most 1.2% in height and 2% in width, laser-arm scans were fitted in Julia (mean error up to 0.1 mm), and growth was linear over five layers (R² 0.98 for width, 0.97 for height).
Piezoelectric energy harvesting
Identified a model of a bimorph harvester on a shaker bench (resonance 305.1 Hz, quality factor 101.7) and optimised its mean power in Python.
Photovoltaic grid connection
Simulink model of a solar panel on the grid, with DC/DC converter, MPPT and inverter, delivering the maximum power of about 400 W.
Get in touch
For a PhD supervision, a research collaboration or an engineering role, write to me by email. I reply in English or French.