Merci Jean pour ton aide.
Je suis parvenu à faire fonctionner graphweather avec postgresql.
Cela m'a permis de diviser par 2 les temps de réponse sur la V2.312b.
Sur la 3.0.2 les résultats semblent moins bons que sur la 3.0.0a.
Je fait là un récap de la procédure utilisée (sachant que j'ai une WMR200 et que j'utilise WSDL au lieu de Xnet).
Tout d'abord comme tu l'as indiqué Jean, il vaut mieux partir d'un champ "datetime" concatené.
cela évite l'usage d'une vue et cela permet de poser un index sur ce champ.
1/
Création de la table :
Code : Tout sélectionner
CREATE TABLE "public"."wxlog" (
"datetime" CHAR(16) NOT NULL,
"Date" DATE NOT NULL,
"Time" TIME WITHOUT TIME ZONE NOT NULL,
"Baro" REAL,
"QNH" REAL,
"Gust Speed" REAL,
"Gust Dir" INTEGER,
"Avg Speed" REAL,
"Avg Dir" INTEGER,
"Rain Rate" REAL,
"Rain" REAL,
"UV" REAL,
"Temp 0" REAL,
"DewPt 0" REAL,
"RH 0" REAL,
"Temp 1" REAL,
"DewPt 1" REAL,
"RH 1" REAL,
CONSTRAINT "pk_wxlog" PRIMARY KEY("datetime")
) WITHOUT OIDS;
2/ Paramétrage du fichier de config :
Code : Tout sélectionner
...
Date=datetime
DateFormat=%Y-%m-%d %H:%M
Time=
TimeFormat=
...
...
Probe_00=""Baro""
Probe_01=""QNH""
Probe_02=""Rain""
Probe_03=
Probe_04=""Temp 0""
Probe_05=""Temp 1""
Probe_06=""RH 0""
Probe_07=""RH 1""
Probe_08=""DewPt 1""
Probe_09=""Avg Speed""
Probe_10=""Avg Dir""
Probe_11=""Gust Speed""
Probe_12=
Probe_13=
Probe_14=""UV""
Probe_15=
Probe_16=
Probe_17=""Rain Rate""
En remarque, J'ai des noms de champs comprenant des espaces, j'étais passé dans un premier temps par une vue.
Mais il est possible d'utiliser de tels noms de champs dans graphweather en modifiant directement le fichier de config.
Il faut dans ce cas "doubler" les guillemets pour qu'un simple guillemet apparaisse dans les options de grapweather 2.
Et si je paramètre directement les champs dans les options de graphweather avec un guillement, ça fonctionne mais quand on quitte l'appli, le fichier de conf perd ses guillemets et il faut remettre les guillemets à la main.
3/ Pour le chargement des données, j'ai écrit un petit bout de code qui charge les données à partir du fichier wxlog de wsdl directement en BD.
J'ai utilisé une librairie avec un driver postgresql natif (voir la librairie Npgsql.Net :
http://pgfoundry.org/frs/?group_id=1000140).
Les perf sont au rdv, 8s pour charger 100000 enregistrements dans une datatable et 8s pour charger les 100000 enregistrements dans la base de données. Beaucoup plus rapide avec ODBC ou je pouvais mettre plusieurs minutes.
Il me reste à l'améliorer pour ne charger que les derniers enregistrements.
J'ai quand même observé quelques "bizarreries" en mode "ODBC" que je n'avait pas avec le fichier CSV.
Avec Graphweather 2 :
J'utilise un facteur de correction pour la vitesse du vent et pour les rafales.
Quand je n'applique pas le facteur de correction, les vitesses sont correctes
Quand j'applique le facteur de correction, les vitesse sont multipliées par le facteur au carré (multipliée 2 x avec le facteur de correction).
Pour l'heure, je pallie en appliquant la racine carrée de mon facteur de correction habituel.
Ce pb n'est pas observé sur Graphweather 3.
Avec Graphweather 3 :
Lorsque j'affiche une période qui correspond à l'année en cours (du 01/01/2011 au /01/01/2012), je n'ai pas d'affichage de données
alors que ça fonctionne avec Graphweather 2 pour la même période.
Pour afficher l'année en cours, avec graphweather, il faut que je sélectionne la période allant du 01/01/2011 au 31/12/2011 pour avoir un affichage de données.
En espérant que cette expérience puisse servir à d'autres.