module lua subsurface

bonjour
les plongeurs-photographes libres connaissent et peut-être utilisent subsurface https://subsurface-divelog.org/, un autre fabuleux logiciel libre pour planifier, enregistrer et organiser les plongées.
je souhaite disposer d’un module lua qui permette d’inscrire dans les metadonnées des photos certaines données enregistrée dans subsurface comme le site de plongée, la profondeur ou la température de l’eau, sur le même principe que le module de geolocalisation avec les fichiers gpx.
malheureusement, mes compétences ne me permettent pas d’aller au bout de ce projet. J’ai tenté quelque chose avec l’aide de différentes IA, cela fonctionne pour inscrire les données sur une photo à la fois, mais pas sur une sélection

le lien contient une plongée telle qu’enregistrée par subsurface et quelques photos.
https://drive.google.com/file/d/19jfzS1v7__QiNKDGi86LrC10DdPvBXCy/view?usp=sharing

et ici une version du module qui ne parvient à traiter qu’une photo à la fois https://drive.google.com/file/d/1nlYLPwoqAuRvxHWuEot7o6DVL3jdx-sA/view?usp=sharing



Bonjour,
Je ne connais pas subsurface, merci, je vais regarder déjà ca.
Ensuite, comme je suis informaticienne, en plus d’être plongeuse/photographe. je vais aussi essayer ton module.

bonjour,

Bon alors ton truc marche très bien sauf:

1/ « images » est un nom de variable globale déjà utilisé, on ne peut pas utiliser ce nom
(je n’ai trouvé qu’en comparant avec l’autre call back qui fonctionne)

w_btn_sync.clicked_callback = function()
local loc_images = dt.gui.action_images
if #loc_images == 0 then
… etc

2/ j’ai commenté les extra_data, je ne comprends pas bien où ca doit aller, pas vu dans le cas une seule image
– if image.set_extra_data then
– image:set_extra_data(« dive:depth », tostring(d.depth))
– image:set_extra_data(« dive:temp », d.temp and tostring(d.temp) or «  »)
– image:set_extra_data(« dive:site », d.site or «  »)
– image:set_extra_data(« dive:number », tostring(d.number or «  »))
– end

Voilà

Dans mon cas je n’ai pas encore réussi a loader mes plongées dans subsurface, à suivre.

A+

PS: le club est-ce Roscanvel ?

Bonjour Clo, ça fonctionne parfaitement, merci beaucoup. A retester sur la prochaine plongée

Bonjour,

Tu m’expliques pour extra_data ? ou tu as aussi commenté ?

Comme j’ai réussi à mettre mes plongées dans subsurface, et que subsurface te permet de les exporter toutes dans un fichier
j’ai tenté de les faire toutes d’un coup, mais en fait on dirait que ca n’est pas prévu, il ne me fait que la dernière plongée.
il ne cherche pas dans tout le fichier ?

{EDIT]
Mais si, ca marche très bien, j’avais interprété la tolerance comme utile si on est pas bien synchronisé sur les horaires ordi plongée/appareil photo
Mais dans le cas de 2 plongées successives, il faut diminuer/calculer la tolerance pour être en dessous de l’intervalle entre les 2 plongées.
Je suggère une amélioration: calculer p2 - (p1+durée) et prendre le min avec tolerance ?

jJ’ai rajouté les tirets doubles comme sur ton message précédent.
Je n’ai pu essayer que sur la dernière plongée ; pour les précédentes, je n’ai pas de photo de référence de l’ordinateur de plongée, et comme c’est quelque chose que je ne vérifie pas, j’oublie régulièrement de passer de l’heure d’été à l’heure d’hiver, autant sur l’appareil photo que sur l’ordinateur de plongée… Pas tout compris à la 2e partie du message… La tolérance me permet de prendre la photo de l’ordinateur de plongée en surface

Alors, si on laisse la tolerance à 7200, comme ca l’est par défaut, et que le délai entre 2 plongées successives est inférieur à 7200, le code cherche dans la première plongée pour les photos de la deuxième, et ne trouve pas.
J’ai résolu ce problème en baissant la tolerance avec le slider.
Mais, logiquement, on doit pouvoir imposer ça dans le code au niveau de la verification de la tolerance.
On calcule = date debut de plongée 2 - (date debut de plongée 1 + durée de la plongée 1 ), ca donne le temps
qu’on est resté en surface entre les 2 plongées, en general moins de 2 heures. Donc une tolerance 2
et on prend le plus petit des 2 tolerances pour chercher dans la bonne plongée.
J’espère que c’est clair, sinon, je te ferai un dessin.

Comme je ne change jamais l’heure de mon appareil photo, ni de l’ordi plongée, j’ai pu faire tourner ton truc
sur toutes mes plongées depuis des années, en mettant à la main le même décalage que la photo ordi prise hier
pour le calculer. Ca marche parfaitement.

Après, pour le point GPS, je suis plutôt d’avis de laisser le flou, ne pas préciser où c’est pour les photos mises en ligne.
Par exemple, si on a un beau homard en photo, pour éviter que quelqu’un aille le chercher.