Site en Vedette

Le Site www.meteostours et son look jeune et dynamique

Site personnel au look jeune et dynamique. Information sur la ville de St-Ours-sur-Richelieu

Site Ressources

Transférer ses données météorologiques sur MySQL!

Prérequis :

Pour cet atelier, vous aurez besoin :

  • Un logiciel de transfert FTP.
  • Un bon éditeur de texte.
  • Un site avec PHP et MySQL activé.
  • Vos codes d'accès pour FTP et MySQL.
  • Logiciel Cumulus v.1.9 ou plus récent.
  • Le Script ImporteCumulusSQL_v1.zip

Nouveauté !

Module de gestion
des Transferts MySQL

Maintenant Disponible !


Météo du Québec utilise (et vous recommande) dans ses développements le logiciel Notepad++ comme éditeur, Kamzy FTP pour les transferts FTP, Php v.5 et MySQL v.5.

(1) Sur notre site on désigne par "Script", un petit utilitaire sans interface qui fait un boulôt puis affiche un message pour indiquer si l'opération a bien été réussie.

Nouveau! Module de gestion des transferts SQL!

La méthode facile.

Météo du Québec vous offre un nouvel outil qui vous permet de faire entre autre, l'importation des observations Cumulus dans votre base de donnée MySQL. Mais cet outil vous permet beaucoup plus :

  • Affiche la liste des fichiers Cumulus sur votre site web
  • Affiche le plus récent fichier d'historique sur votre site
  • Affiche un résumé de la BD SQL pour y déceler les incohérences en un coup d'oeil!
  • Affiche un tableau détaillé des observations quotidiennes et mensuelles.
  • Permet de faire des copies de sécurité des fichiers esstentiels de Cumulus (. txt et .ini)


Néanmoins, je vous invite à lire les sections ci-dessous pour avoir une meilleure compréhension des transferts SQL et y trouver le format de la base de donnée météo.

Importation des données par Script

Préparation du Script d'importation

Introduction :

Ce Script vous permett de créer des Tables SQL pour y emmagasiner vos données à long terme. Ce processus étant assez technique, voir aride pour un débutant, nous emploieront ici un Script(1), créé par l'ami Daj (David Jamieson) sur le forum de Cumulus. Ce script a été adapté par Météo du Québec pour votre commodité.

Comme les petits farceurs (hackers) sont nombreux sur le Web, cet utilitaire prend en compte les bases de sécurité minimales pour la protection de vos données; à savoir :

  • Votre mot de passe doit être dans un fichier à part. (ici accesbd.php)
  • Votre Script ne devrait pas être dans le même dossier que le fichier accesbd.php.
  • Le Script doit comporter une clé de sécurité (mot de passe) pour éviter d'être lancé par un utilisateur non autorisé.

Ce Script est un ensemble de fichiers que vous devez copier sur votre site.

Étape 1 : Extraction de l'archive

Ce Script est compressé en format .zip pour commodité. Décompressez le contenu du fichier ImporteCumulusSQL_v1.zip sur votre ordinateur. Vous vous retrouverez avec un dossier meteoqc comprenant le Script d'importation et toutes ses composantes

Contenu de l'archive :

Arborescence du fichier archive
  • meteoqc - Ce dossier est créé pour regrouper les éventuels ajouts. Vous retrouverez dans ce dossier :
  • ImporteCumulusSQL.php - Script d'importation MySQL.
  • lib - Dossier des librairies.
  • accesbd.php - Le fichier des information de connexion.
  • observations - Dossier des données météo.
  • FormatSQL.html - Information sur le format fr la bd SQL.
  • util - Dossier des utilitaires.
  • ImporteURL.html - Fichier "pense-bête" pour exécuter l'importation des données Cumulus.

 

Étape 2 : Modifier le fichier accesbd.php

Le fichier accesbd contient simplement 4 lignes que vous devez éditer

	$bdhote		= '127.0.0.1';
	$bdusager	= 'UsagerSQL';
	$bdmotpasse	= 'MotPasseSQL';
	$bdnom		= 'NomBase';
				
  • $bdhote : Le nom d'hôte de votre serveur, habituellement : '127.0.0.1' ou 'localhost'.
  • $bdusager : Le nom d'usager pour accéder la base de donnée. Ici : 'UsagerSQL'
  • $bdmotpasse : Le mot de passe pour accéder la base de donnée. Ici : 'MotPasseSQL'
  • $bdnom : Nom de la base de donnée. Exemple, ici : 'NomBase'

Étape 3 : Éditer le Script ImporteCumulusSQL.php

Dans ce fichier, vous verrez les instructions détaillées en commentaire. En bref :

Repérer la ligne suivante : $clef="MaClef";
remplacez simplement MaClef par votre propre code

- Configuration linguistique :

Nous ferons une parenthèse ici pour les différentes configurations linguistiques existentes. Ce Script a été configuré pour le Québec avec les paramètres suivants

  • $delimiteur_champs=";" indique que les valeurs sont séparées par des point-virgule
  • $delimiteur_date="-" suppose le tiret comme séparateur de date ex : 2011-01-30
  • $separateur_decimale="," indique le séparateur décimal, ici la virgule. ex : 17,3°c


Vous pouvez vérifier en regardant votre fichier dayfile.txt par exemple, pour y trouver votre configuration. Voyez ici une ligne du fichier correspondant à un ordinateur du Québec :

24-07-10;15,8;180;15:31;0,0;00:00;27,5;15:25;0,0;00:00;1010,2;15:27;

Si votre fichier a un autre format, faites les changements nécessaires.

Étape 4 : Modifier le fichier ImporteURL.php (optionnel)

Pour votre commodité, le fichier ImporteURL.php agit en tant que "pense-bête" pour vous rappeler la bonne syntaxe à utiliser selon le type de données à importer. En l'éditant correctement, il vous affichera le lien complet... vous n'aurez plus qu'à faire un copier/coller dans une fenêtre de votre navigateur.

Le fichier comporte 2 ligne à éditer :

1 - Pour un fichier quotidien :
htp://WWW.MONSERVEUR.COM/meteoqc/ImporteCumulusSQL.php?type=quotidien&clef=MACLEF&table=Dayfile&file=observations/dayfile.txt

Remplacez WWW.MONSERVEUR.COM par l'Url de votre Site Web (avec ou sans www).
Remplacez MACLEF par le code entré dans le fichier ImporteCumulusSQL.php

2 - Pour un fichier mensuel :
htp://WWW.MONSERVEUR.COM/meteoqc/ImporteCumulusSQL.php?type=mensuel&clef=MACLEF&table=Monthly&file=observations/MOIS.TXT

Remplacez WWW.MONSERVEUR.COM par l'Url de votre Site Web (avec ou sans www).
Remplacez MACLEF par le code entré dans le fichier ImporteCumulusSQL.php
Remplacez MOIS.TXT par le nom du fichier mensuel à importer ex : dec10log.txt.

Finalement copiez à la racine de votre Site Web, le dossier meteoqc complet, incluant tous les dossier et les fichiers que vous venez d'éditer.

Mise en place du Script

Préparer son site Web

Étape 1 : Trouver ses données

Pour débuter, un peu de connaissance sur les données amassées par Cumulus.

Cumulus gère les observations météorologiques via 3 fichiers texte :

alltimelog.txt : Ce fichier contient tous les records établis.

Dayfile.txt : Ce fichier contient les observation, par jour. C'est à dire 1 ligne par jour, représentant les minimas et maximas de la journée.

dec10log.txt :(exemple de nom de fichier) Ce fichier est créé par cumulus et son nom est formé du nom du mois en abrégé, des 2 derniers chiffres de l'année et se termine par log.txt (dans notre exemple Décembre 2010); il contient la totalité des observations météo pour un mois donné. Si vous régélez Cumulus sur un intervalle de 15 minutes vous aurez 96 lecture pour UNE journée, multiplié par le nombre de jour de ce mois.


Donc, vous devez regarder dans le répertoire d'installation de Cumulus pour y trouver le répertoire data. Ce dossier devrait se trouver sur C:\Cumulus\data, si vous avez installé selon les recommandations de Cumulus. Vous pouvez aussi vérifier en cliquant l'icône de Cumulus avec le bouton de droite de votre souris et demander propriété dans le menu d'aide contextuelle. Vous verrez le chemin dans "Cible" et pourrez vous y déplacer avec le bouton "Rechercher la cible".

Étape 2 : Transférer vos données

Pour que nous puissions traiter les données dans MySQL, nous devons dans un premier temps les envoyer sur votre Site Web. Suivez la démarche suivante :

  1. Dans le dossier data de Cumulus, repérez les fichiers à transférer :
    • Fichier des records alltimelog.txt
    • Fichier quotidien Dayfile.txt
    • TOUS les fichiers Mensuels (ex. oct10log.txt, nov10log.txt, etc...).
  2. Téléversez le tout dans le répertoire meteoqc/observations de votre Site Web.


Voilà! Vos données sont extraites du logiciel Cumulus et sont maintenant prêtes à être incorporée à une Base de Donnée MySQL.

(Note : Nous créons le dossier meteoqc dans le but de regrouper les modules de Météo du Québec et faciliter le suivi de vos intégrations)

Utilisation du Script

Introduction :

Maintenant que vos fichiers sont transférés sur votre serveur web, il est temps de les intégrer à votre base de donnée. Nous emploierons MySql comme gestionnaire de donnée pour sa disponibilité chez presque tous les hébergeurs.

Pour ce faire, vous devez donc avoir accès à MySql, via un nom d'utilisateur et un mot de passe fourni par votre hébergeur. Lors de votre premier accès à MySql, vous devez créer une base de donnée.

Notez qu'en SQL on parle de Base de Donnée et de Table. Une Base de Donnée pouvant contenir plusieurs Tables, vous n'aurez qu'à indiquer le nom de la Base de Donnée et les Tables se créeront et se "garnieront" toute seules en employant le srript ci-dessous.

Utiliser votre nouveau Script :

Vous êtes désormais prêt à importer vos premières données météorologiques Pour ce faire, dans une fenêtre de votre navigateur entrez le chemin de votre script avec les option appropriées, par exemple:

Pour un fichier quotidien :
htp://WWW.MONSERVEUR.COM/meteoqc/ImporteCumulusSQL.php?type=quotidien&clef=MACLEF&table=Dayfile&file=observations/dayfile.txt

Remplacez WWW.MONSERVEUR.COM par l'Url de votre Site Web (avec ou sans www).
Remplacez MACLEF par le code entré dans le fichier ImporteCumulusSQL.php

Pour un fichier mensuel :
htp://WWW.MONSERVEUR.COM/meteoqc/ImporteCumulusSQL.php?type=mensuel&clef=MaClef&table=Monthly&file=observations/MOIS.TXT

Remplacez WWW.MONSERVEUR.COM par l'Url de votre Site Web (avec ou sans www).
Remplacez MACLEF par le code entré dans le fichier ImporteCumulusSQL.php
Remplacez MOIS.TXT par le nom du fichier mensuel à importer ex : dec10log.txt.

...Voilà!

Vous pouvez aussi lancer l'utilitaire ci-haut avec l'adresse de votre site :
htp://WWW.MONSERVEUR.COM/meteoqc/ImporteURL.php

Si tout s'est bien dérouté le Script vous a répondu : Importation effectuée avec succès!

(Soyez patient! Traiter un fichier quotidien prends seulement quelques secondes, mais un fichier mensuel peut prendre de 2 à 5 minutes selon les performance du serveur.)

Vous disposez désormais d'une base de donnée MySql puissante et versatile qui vous permettra d'installer la prochaine adaptation à être annoncé sous peu :

Utiliser ses données sur MySQL!

Module d'affichage des Statistiques

Module d'affichage des Données Statistiques

Celui-ci vous permettra d'afficher vos observations météorologique de manière professionnelle, avec un affichage fonctionnel et puissant.

Format des données sur MySQL!

Voici la structure de la base de donnée que vous venez de créer.

Base de données des observations météo

- Structure de la Table : Dayfile

Champ Type Null Description
LogDate date non la date, format jj-mm-aa
HighWindGust decimal (4,1) non le plus fort coup de vent
HWindGBear varchar (4) non direction du plus fort coup de vent
THWindG varchar (5) non heure du fort haut coup de vent
MinTemp decimal (5,1) non température minimale
TMinTemp varchar (5) non heure de température minimale
MaxTemp decimal (5,1) non température maximale
TMaxTemp varchar (5) non heure de température maximale
MinPress decimal (6,2) non pression minimale
TMinPress varchar (5) non heure de pression minimale
MaxPress decimal (6,2) non pression maximale
TMaxPress varchar (5) non heure de pression maximale
MaxRainRate decimal (4,1) non averse maximale
TMaxRR varchar (5) non heure de l'averse maximale
TotRainFall decimal (6,2) non pluie totale pour le jour
AvgTemp decimal (4,2) non température moyenne pour la journée
TotWindRun decimal (5,1) non le parcours total du vent
HighAvgWSpeed decimal (3,1) oui la plus haute vitesse de vent en moyenne
THAvgWSpeed varchar (5) oui heure plus haute vitesse moyenne de vent

- Structure de la Table : Monthly

Champ Type Null Description
LogDate date non la date sous la forme jj/mm/aa
LogTime time non heure actuelle
Temp decimal (4,1) non température actuelle
Humidity decimal (4,1) non humidité actuelle
Dewpoint decimal (4,1) non point de rosée actuel
Windspeed decimal (4,1) non vitesse actuelle du vent
Windgust decimal (4,1) non rafale de vent actuelle
Windbearing varchar (3) non direction actuelle du vent
RainRate decimal (4,1) non pluie actuelle
TodayRainSoFar decimal (4,1) non pluie totale aujourd'hui pour l'instant
Pressure decimal (6,2) non pression actuelle
Raincounter decimal (6,2) non pluie totale à date
InsideTemp decimal (4,1) non température intérieure
InsideHumidity decimal (4,1) non humidité intérieure
LatestWindGust decimal (5,1) non rafale actuelle (la dernière)
WindChill decimal (4,1) non refroidissement éolien
HeatIndex decimal (4,1) non indice de chaleur