Scroll to move forward

2026 · 3 projects · Sherbrooke

Inspection platformExperience

geoRov, an underwater inspection platform

geogrid

A web platform that replays an underwater inspection: the ROV video and its position move together on the map.

The expert annotates what they see; each observation keeps its timestamp and GPS point, and the assessment exports to GeoJSON.

  • ROV
  • Underwater inspection
  • Telemetry
  • Synchronized video
  • GeoJSON

Detection modelsExperience

Invasive species detection: water chestnutIn progress

geogrid

A deep learning model that finds water chestnut (Trapa natans), an invasive aquatic plant, in aerial imagery.

  • Deep learning
  • Invasive species
  • Water chestnut
  • Aerial imagery

Wildlife inventory: white-tailed deer detectionIn progress

geogrid

A deep learning model that detects white-tailed deer, to count populations and track how they change.

  • Deep learning
  • Wildlife inventory
  • White-tailed deer
  • Detection

2025 · 5 projects · Algiers

National address registerExperience

Web application for address data

Algerian Space Agency

A web application that puts the national address register in the hands of those who use it: search for an address, view it, work with it.

  • Addressing
  • Web application
  • GIS

QGIS plugin for numbering and street signage

Algerian Space Agency

Contributed to the development of a QGIS plugin that produces building numbering and street signage plans.

  • QGIS
  • Plugin
  • Numbering
  • Street signage

Major hazardsExperience

Locust control

Algerian Space Agency

Monitoring locust outbreaks with geospatial analysis and remote sensing, in support of locust control.

  • Remote sensing
  • Locusts
  • Major hazards

Forest fire management

Algerian Space Agency

Detecting, monitoring and assessing forest fires with remote sensing, in support of field teams.

  • Forest fires
  • Remote sensing
  • Major hazards

Meteorological dataExperience

Meteorological data platform

Algerian Space Agency

A platform that handles the full meteorological data life cycle: management, format conversion, archiving and publication.

  • Meteorology
  • Format conversion
  • Archiving
  • Publication

2024 · 6 projects · Blida and Arzew

SARL LouifiExperience

Laying out the Soumaa bypass centreline

SARL Louifi Projects · Soumaa, Blida

Laying out the centreline of section 02 of the bypass with a Trimble R10 GPS in RTK mode.

  • Site layout
  • RTK GNSS
  • Trimble R10
  • Roads

Detail survey for the Sidi Moussa bypass

SARL Louifi Projects · Sidi Moussa, Algiers

Detail survey with a Leica TS06 total station, for the planned Sidi Moussa bypass.

  • Detail survey
  • Total station
  • Leica TS06

Two showcase websites for the Louifi Group

Louifi Group

Built the group’s two websites: SARL Louifi Projects, public and hydraulic works, and SARL Louifi Motors.

  • Website
  • Showcase
  • Front-end

Final-year and school projectsStudies

Forest fire alert management system

Space Applications Centre (ASAL) · Space Applications Centre

Final-year project: a web mapping platform for forest fire management, with FIRMS thermal anomalies and a multi-role alert system.

  • Web mapping
  • FIRMS
  • Python
  • Alerts

SRTM super-resolution with deep learning

Space Techniques Centre (ASAL) · Space Techniques Centre

A pix2pix GAN model that raises the resolution of digital elevation models from 30 m to 15 m, for flood risk. Abstract accepted for an MDPI paper.

  • pix2pix
  • GAN
  • SRTM
  • Flooding

Choosing the best apartment with the AHP method

ENSGTS

A GIS-based multi-criteria analysis: apartments ranked against several criteria, weighted with the analytic hierarchy process.

  • GIS
  • AHP
  • Multi-criteria analysis

2023 · 5 projects · Arzew

Remote sensingStudies

Comparing four methods for estimating burned areas

Space Applications Centre (ASAL) · Arzew, Space Applications Centre · 35.86° N / 0.31° W

Four techniques compared in Google Earth Engine: SVM, random forest, decision tree and NBR index thresholding.

Carried out at the Space Applications Centre, as part of the post-fire monitoring process.

  • Google Earth Engine
  • SVM
  • Random forest
  • NBR
  • ERDAS

Change detection in the city of El Tarf, 2013 to 2017

ENSGTS · El Tarf · 36.77° N / 8.31° E

Change detection over the city of El Tarf between 2013 and 2017, using remote sensing.

To be written: the imagery used, the method and what the result shows.

  • Remote sensing
  • Change detection

Fieldwork and photogrammetryStudies

Static GNSS observation

ENSGTS · Arzew, ENSGTS · 35.86° N / 0.31° W

Static GNSS observation campaign, during a two-week GNSS internship at ENSGTS in June 2023.

To be written: the points observed, session lengths, processing and the accuracy achieved.

  • GNSS
  • Static
  • Geodesy

Topographic map of Metz by photogrammetric plotting

ENSGTS · Arzew, ENSGTS (Metz data) · 49.12° N / 6.18° E

Producing a topographic map of the city of Metz by photogrammetric plotting.

Two-week photogrammetry internship at ENSGTS, in June 2023.

  • Photogrammetry
  • Plotting
  • Topographic map

DTM and DSM from drone data in Agisoft

ENSGTS · Arzew, ENSGTS

Producing a digital terrain model and a digital surface model from drone data, in Agisoft.

“Quarry and cadastre” sample dataset published on the Pix4D website.

  • Photogrammetry
  • Drone
  • DTM
  • DSM
  • Agisoft

2022 · 1 project · Arzew

Studies

Precise levelling

ENSGTS · Arzew, ENSGTS · 35.86° N / 0.31° W

Precise levelling traverse, during a two-week internship at ENSGTS in June 2022.

To be written: the traverse, the misclosures and the accuracy achieved.

  • Levelling
  • Surveying

Sherbrooke2026

← Projects

2026 · Sherbrooke

2026 · Inspection platform

geoRov, an underwater inspection platform

After a dive, the expert is left with two things that don’t talk to each other: hours of video and a navigation log. geoRov brings them back together — image, track and annotation at the same second — and delivers a georeferenced assessment that any GIS can open.

Role
Design and development
Tools
React, Leaflet, Tailwind, Vite · Node.js, Express · Python, Shapely · Docker, Nginx
Data
USBL and inertial navigation telemetry at 50 Hz, ROV camera videos and logs
Period
2026

The problem

An underwater inspection leaves two records, captured separately. On one side, the videos from the ROV cameras, several gigabytes per dive. On the other, a binary navigation log: USBL acoustic positioning coupled with the surface vessel’s inertial navigation system, writing position, depth and attitude fifty times per second.

Working out where the ROV was at minute 47 of a video means cross-checking timestamps by hand. And an observation recorded without its position is of little use: you know what was seen, but not where.

What the platform does

geoRov brings both into a single web interface. The video plays on one side, the dive track is drawn on the other, and a cursor follows the ROV on the map in exact step with the image.

When the expert spots something, they annotate it from the video: position and time are captured at the moment of the click, and the observation appears immediately in the list and on the map, without interrupting playback. At the end, the assessment exports to GeoJSON, ready to open as is in a GIS.

From raw files to a mission

Before a dive can be explored, its data goes through an offline processing chain in Python. This is where synchronization happens: the camera logs carry the start and stop recording markers, and these are what split the continuous telemetry into segments matching the videos.

  • Binary log diagnostics: counting the recorded packets to confirm, before any processing, that system status and orientation are actually there.
  • Binary decoding and synchronization: start and stop recording timestamps, payload decoding, conversion from radians to degrees and heading correction.
  • Splitting the telemetry into one-minute chunks, keeping only the columns the interface needs.
  • Track simplification with Douglas-Peucker, topology preserved: the track keeps its shape without the map having to draw fifty points per second.
  • Generating the mission manifest, which links videos, telemetry and track.
The telemetry is split into one-minute chunks: the interface only loads the one it is currently playing.

The synchronization engine

This is the core piece. A 50 Hz telemetry file for an hour of video is too heavy for a browser, so it is split up, and the interface only downloads the chunk for the minute currently playing.

Video time drives everything else. It selects the chunk to load, then the exact position within that chunk; this position feeds both the cursor on the map and the annotation form, which locks the GPS point at the moment of the click.

Serving multi-gigabyte videos

The server never loads an entire video into memory. It answers the player’s range requests: clicking anywhere on the seek bar takes the stream to that point without downloading what comes before. Playback is paced by a one-megabyte buffer — enough for a steady stream, small enough for several people to watch at once.

All disk reads and writes are asynchronous: saving a long assessment doesn’t freeze video streaming for others. And the server checks that every requested path stays within the data folder, refusing anything else.

What remains after the assessment

Observation categories are configurable: they are edited from the interface and written to the mission configuration, so the review grid can be adapted to the type of inspection.

Saved assessments can be reloaded to be resumed or checked. The deliverable is a GeoJSON file: a format any GIS opens, with no bridge or conversion.

Installation and deployment

The platform is containerized: the interface is built, then served as static files by a lightweight server, while the API runs alongside in its own container. A single command builds and starts the whole stack.

The videos, however, don’t fit in a container — several hundred gigabytes. The physical folder holding them is mounted directly: it is the only setting to check before deploying on a new machine.

What I take away

Two choices carried everything else: letting video time drive synchronization rather than a clock, and splitting the telemetry before it reaches the browser. Without them, nothing held up at 50 Hz.

To be written: the known limitation, and what I would do differently.

  • ROV
  • Underwater inspection
  • Telemetry
  • Synchronized video
  • GeoJSON

All projects

  1. 2026geoRov, an underwater inspection platformSherbrooke
  2. 2026Invasive species detection: water chestnutSherbrooke
  3. 2026Wildlife inventory: white-tailed deer detectionSherbrooke
  4. 2025Web application for address dataAlgiers
  5. 2025QGIS plugin for numbering and street signageAlgiers
  6. 2025Locust controlAlgiers
  7. 2025Forest fire managementAlgiers
  8. 2025Meteorological data platformAlgiers
  9. 2024Laying out the Soumaa bypass centrelineSoumaa, Blida
  10. 2024Detail survey for the Sidi Moussa bypassSidi Moussa, Algiers
  11. 2024Two showcase websites for the Louifi GroupBlida and Arzew
  12. 2024Forest fire alert management systemSpace Applications Centre
  13. 2024SRTM super-resolution with deep learningSpace Techniques Centre
  14. 2024Choosing the best apartment with the AHP methodBlida and Arzew
  15. 2023Comparing four methods for estimating burned areasArzew, Space Applications Centre
  16. 2023Change detection in the city of El Tarf, 2013 to 2017El Tarf
  17. 2023Static GNSS observationArzew, ENSGTS
  18. 2023Topographic map of Metz by photogrammetric plottingArzew, ENSGTS (Metz data)
  19. 2023DTM and DSM from drone data in AgisoftArzew, ENSGTS
  20. 2022Precise levellingArzew, ENSGTS