C'est ballot que le chargement automatique des fonds de carte ne marche pas. C'est à mon sens l'un des principaux atouts du logiciel.
Pour les unités, je ne suis pas d'accord, vu que j'utilise le même logiciel pour le vélo, le roller, la marche... Donc, je préfère ne pas sauvegarder automatiquement les unités. Par contre, les unités par défaut peuvent être spécifiées dans le fichier wxgpgpsport.ini (pas encore de dialogue de prefs)
pour ce qui est des stats disponibles sous GPSAR, je me suis un peu amusé...
- le script Windsurf_statistics.py fournit le calcul des vitesses. (5 best Vmax, 5 best 10s, 5 best 500m). il n'est vraiment pas compliqué à modifier.
- Pour les jibes, j'ai écrit une ébauche de script (Jibe_analysis.py) qui repère les jibes (changement d'amure sous le vent), et les classe par heure, Vmini ou Vmaxi. Il devrait être relativement simple de rajouter la distance perdue sous le vent (moyennant un peu de trigonométrie). Le tout en moins de 30 lignes de code ( Et en sautant des lignes! je suis tous les jours bluffé par la puissance de python+numpy...). j'ai fait un copier coller du code en fin de post
Comme je ne suis pas foutu de faire un virement de bord
, je ne sais pas si il marche avec les virements.
J'ai uploadé une version très très légèrement modifiée.
- lecture des unités par défaut depuis le fichier wxgpgpsport.ini
- modifications cosmétiques du script WindsurfStatistics.py
- modification du script Startup.py montrant comment définir de nouvelles fonctions pour les scripts et les exporter
- Inclusion d'un brouillon du script Jibe_analysis.py
Bon vent à tous, et merci pour les feedbacks
_____________________
____Jibe_analysis.py____
(winddirection,convolution,minspeed,sortkey,rev)=(90,10,3.5,"Time",True)
(winddirection,convolution,minspeed,sortkey,rev)=WxQuery("Jibe detection parameters", \
[('wxentry','Wind Direction',None,winddirection,'float','in degrees, North is 0, West is 90, South 180'),\
('wxentry','convolution',None,convolution,'float','nuumber of points to use for data smoothing'),\
('wxentry','Minimal speed',None,minspeed,'float','ignore any jibe when convolved speed is below this value'),\
('wxcombo','Sort by','Time|TimeStamp|min speed|max speed',sortkey,'str'),\
('wxcheck','Desc',None,rev,'bool')]
)
if not 'conv_speed' in gpx.get_header_names(): gpx.append_column('conv_speed','float')
if not 'app_wind' in gpx.get_header_names(): gpx.append_column('app_wind','float')
gpx.set_unit('conv_speed','kts')
gpx['conv_speed']=np.convolve(gpx[('speed',1)], np.ones(convolution)/convolution,mode='same')
gpx['app_wind']=np.sin(np.radians(gpx['course']-winddirection))
jibes=[]
zerocrossing=np.where(np.diff(np.sign(gpx['app_wind'])))[0]
for t in zerocrossing[1:]:
if (t>convolution) and ( (gpx[('conv_speed',1)][t-convolution:t+convolution]>=minspeed).all()):
jibes.append( (t,
gpx['time'][t],
np.min(gpx[('speed',1)][t-convolution:t+convolution]),
np.max(gpx[('speed',1)][t-convolution:t+convolution]) )
)
sortnum='Time|TimeStamp|min speed|max speed'.split('|').index(sortkey)
print "Time (s), Timestamp, Min Speed, Max Speed"
for j in sorted(jibes,key=lambda tup: tup[sortnum],reverse=rev):
print j