Skip to content

yannfp/Argonimaux

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Argonimaux

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


Origin

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.


What it does

  • 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

Stack

  • Python β€” tkinter (UI), PIL (image handling), Folium (map rendering), SQLite3 (database)
  • SQLite β€” stores all animal coordinates extracted from CNES .txt files
  • Folium β€” generates an interactive carte.html with trajectory polylines and date markers

Architecture

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

Tracked animals

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

Team

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


Setup

Install dependencies:

pip install folium Pillow

Download 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.py

The database is created automatically on first run.


Known limitations

  • Map dimensions are hardcoded β€” the pixel-to-degree conversion only works with the included openstreetmap.png at its exact dimensions
  • Data files must be downloaded manually from CNES (no API integration)
  • Windows only (fenetre.state("zoomed") and .iconbitmap() are Windows-specific)

About

Desktop app to visualize marine animal movements across Europe using CNES satellite tracking data. Built in Python with tkinter, SQLite, and Folium. πŸ† NSI Trophy 2023 β€” Regional Prize for Creativity.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%