A desktop application to visualize the movements of marine animals and buoys around Europe, built on CNES satellite tracking data from 2000 to 2023.
π Regional Prize for Creativity β NSI Trophy 2023
The idea came from a class of 6th graders at our school. They were studying marine biodiversity and wanted a way to track specific turtles, sharks, and buoys near France β the existing CNES tool covered the whole world and was too broad for their use case. Their teacher reached out to our Terminale NSI class, and three of us took it on.
- Displays a map of Europe divided into a coordinate grid
- Colour-codes each zone based on how many tracked animals have passed through it (green β orange β red β dark red)
- Lets the user click a zone to see which animals have been recorded there
- Renders the full trajectory of a selected animal in an interactive HTML map (Folium), with date markers placed every 75 data points
- Links to the project's Instagram page and the original CNES data source
- Python β tkinter (UI), PIL (image handling), Folium (map rendering), SQLite3 (database)
- SQLite β stores all animal coordinates extracted from CNES
.txtfiles - Folium β generates an interactive
carte.htmlwith trajectory polylines and date markers
main.py β entry point
CNES .txt files (not included)
βββ GestionDonnees/
extractionCSV.py β parses raw .txt data into lists
gestionBD.py β manages the SQLite DB (creation, inserts, queries)
Argonimaux.db (generated on first run)
βββ animaux table β one row per GPS fix (id, num, class, date, time, lat, lon)
βββ liens table β maps animal name + type to its tracking number
Affichage/
tkinter.py β main window, grid rendering, click detection, combobox, buttons
openstreetmap.png β base map image
logoPage.png β app logo
logo_instagram.jpg β Instagram button icon
Onest-Regular.ttf β custom font
icon.ico β window icon
| Type | Animals |
|---|---|
| Turtles | Anna Antimo, Antioche, Ashoka, Bambi, Bouton d'or, Chacahe, Danae, Delta, Domino, Laura, Moana, Muse, Neus, Ninja-Balaeres, Rosa, Tikaf, Tom, Vita, Zamzam |
| Sharks | Anna Pelerine, Gary, Marie B |
| Buoys | ChildOceans, Coris, Coris 2, Zelisca, Pegase 2019, Phebus, VenusExpe, Meduse |
Built by a team of three students from LycΓ©e Le Ferradou (Toulouse) for the NSI Trophy 2023:
| Name | Role |
|---|---|
| Yann Fernandez Puig | Data management β CNES file extraction and SQLite database |
| Lucas Michalet | UI β tkinter window, map import, coordinate grid in degrees |
| Jules Turchi | Trajectory display β Folium polylines and zone colour logic |
Supervised by JΓ©rΓ΄me Bussy and Francis Ceuille (NSI teachers).
Install dependencies:
pip install folium PillowDownload the CNES data files from the Argonautica programme and place the .txt files in the root of the project (one file per animal, named exactly as listed in the tracked animals table above).
Run:
python main.pyThe database is created automatically on first run.
- Map dimensions are hardcoded β the pixel-to-degree conversion only works with the included
openstreetmap.pngat its exact dimensions - Data files must be downloaded manually from CNES (no API integration)
- Windows only (
fenetre.state("zoomed")and.iconbitmap()are Windows-specific)