Master 2 professionnel mention informatique et systemes

37 downloads 96 Views 1MB Size Report
DEPARTEMENT DE MATHEMATIQUES ET D'INFORMATIQUE BP 50085. 63177 AUBIERE CEDEX ... RAPPORT DE STAGE. Adaptation ... Mon stage de fin d' étude s'inscrit dans le cadre d'un projet de recherche portant sur la thématique de ...
UNIVERSITE BLAISE PASCAL UFR SCIENCES ET TECHNOLOGIES DEPARTEMENT DE MATHEMATIQUES ET D'INFORMATIQUE 63177 AUBIERE CEDEX

CEMAGREF 24 AVENUE DES LANDAIS BP 50085 63172 AUBIERE CEDEX

Master 2 Professionnel mention Informatique et Systèmes RAPPORT DE STAGE

Adaptation, développement et évaluation d’un système d’information destiné à administrer les données provenant d’un réseau de capteurs hydrologiques communiquant

Présenté par : Rui YUAN

Tuteurs :

Gil DE SOUSA Benoit SARRAZIN

Date : du 6 Avril au 30 Septembre 2009

REMERCIEMENTS Durant mon stage, j'ai bénéficié du soutient moral et technique de plusieurs personnes ce qui a rendu mon environnement de travail très agréable. Je remercie tout d'abord Monsieur Gil DE SOUSA pour m’avoir permis de réaliser ce stage, et pour m’avoir guidé et encadré au cours de celui-ci dans de très bonnes conditions et dans une ambiance de travail très agréable. Je remercie également Monsieur Benoit SARRAZIN pour l'intérêt qu'il a accordé à la progression de mon travail. Enfin, je tiens à remercier l'ensemble des membres des différentes équipes de l'unité de recherche TSCF pour m'avoir aussi bien accueillie et aidée.

-2-

RESUME Mon stage de fin d'étude s'inscrit dans le cadre d'un projet de recherche portant sur la thématique de l'hydrologie. L'objectif de ce stage a consisté à l'adaptation, au développement et à l'évaluation d'un système d'information destiné à administrer les données provenant d'un réseau de capteurs hydrologiques. La première partie de ce stage a été dédiée à l'étude de la base de données B.I.C.H.E. (Biologie Chimie Hydrologie pour une base Ecologique) du Cemagref. La seconde partie concerne les modifications de cette base pour permettre l'intégration des relevés issus de sondes limnimétriques et de pluviomètres. Enfin, la dernière partie fut consacrée aux développements de modules pour la manipulation et la gestion des données issues de ces relevés. La base de données B.I.C.H.E. a été conçue grâce aux systèmes de gestion de bases de données (SGBD) PostgreSQL. Son interface ainsi que les modules complémentaires que nous lui avons ajoutés ont été réalisés en langage PHP.

Mot clés: hydrologie, B.I.C.H.E., PostgreSQL.

ABSTRACT Within the framework of my training period, I had to work in a research project which topic deals with hydrology. The main objective was the adaptation, the development and the evaluation of an information system dedicated to management of hydrological data collected using a wireless sensor network. The first part of this training period was dedicated to the study of a Cemagref database called 'B.I.C.H.E.'. The second part concerned modifications on this database in order to enable the importation of records from water level and rain gauge sensors. The final part was devoted to the development of modules for handling and managing the data. The database B.I.C.H.E. has been designed using the database management system (DBMS) PostgreSQL. Its first version interface and the new functionalities that we have added have been developed in PHP language.

Key words: hydrology, B.I.C.H.E., PostgreSQL.

-3-

TABLE DES MATIERES REMERCIEMENTS ..............................................................................................................- 2 RESUME................................................................................................................................- 3 ABSTRACT ...........................................................................................................................- 3 TABLE DES MATIERES .....................................................................................................- 4 LISTE DES FIGURES...........................................................................................................- 5 GLOSSAIRE ..........................................................................................................................- 6 INTRODUCTION..................................................................................................................- 7 PARTIE I : CONTEXTE .....................................................................................................- 8 1. Le Cemagref ...................................................................................................................- 9 1.1 Présentation général .................................................................................................- 9 1.2 Les départements scientifiques.................................................................................- 9 1.3 Le Cemagref en chiffre ..........................................................................................- 10 1.4 Les centres régionaux.............................................................................................- 10 1.4.1 Présentation .....................................................................................................- 10 1.4.2 Le Cemagref en région Auvergne-Limousin ..................................................- 11 2. Présentation globale de l'application ............................................................................- 11 2.1 Rappel de l'étude ....................................................................................................- 11 2.2 Réseau de capteurs sans fil.....................................................................................- 12 2.3 Description du dispositif actuel..............................................................................- 12 2.4 Description des données enregistrées.....................................................................- 13 2.5 Archivage et consultation des données ..................................................................- 14 2.5.1 La base de données B.I.C.H.E du Cemagref ...................................................- 14 2.5.2 Les besoins spécifiques liés au réseau de capteurs capacitifs .........................- 14 2.5.3 Acquisition des données..................................................................................- 15 2.5.4 Consultation et extraction des données ...........................................................- 15 3. Mon travail de stage .....................................................................................................- 16 PARTIE II : Présentation des outils et de la base de données B.I.C.H.E...........................- 17 1. Présentation des outils ..................................................................................................- 18 1.1 L'environnement PostgreSQL ................................................................................- 18 1.2 Présentation du langage PHP .................................................................................- 19 2. La base de données B.I.C.H.E. du Cemagref ...............................................................- 20 2.1 L'architecture..........................................................................................................- 20 2.2 Vue d'environnement Web .....................................................................................- 21 2.3 Vue de la base de données présente sous PostgreSQL...........................................- 22 PARTIE III : Evolution de la base de données B.I.C.H.E .................................................- 25 1. Introduction ..................................................................................................................- 26 2. Importation des chroniques de mesure.........................................................................- 26 3. Affichage des mesures .................................................................................................- 27 4. Affichage graphique pour un intervalle sélectionné.....................................................- 29 4.1 Affichage des mesures graphiquement ..................................................................- 29 4.2 Affichage des mesures directement........................................................................- 31 5. Comparaison de deux stations......................................................................................- 32 CONCLUSION ....................................................................................................................- 36 REFERENCES BIBLIOGRAPHIQUES .............................................................................- 37 WEBOGRAPHIES...............................................................................................................- 37 ANNEXES ...........................................................................................................................- 38 -

-4-

LISTE DES FIGURES Figure 1 : Répartition des compétences ...............................................................................- 10 Figure 2 : 9 capteurs capacitifs répartis sur le réseau hydrographique du Mercier..............- 12 Figure 3 : Exemple de fichier de sortie du capteur limnimétrique capacitif ........................- 13 Figure 4 : Enregistrements limnimétriques sur 7 stations de l’épisode pluvieux du 20 juin 2007 sur le bassin versant du Mercier ..................................................................................- 15 Figure 5 : Fonctionnement du langage PHP.........................................................................- 19 Figure 6 : L'architecture de la base B.I.C.H.E......................................................................- 20 Figure 7 : Vue d'environnement Web ..................................................................................- 21 Figure 8 : Vue de la base de données présente sous PostgreSQL ........................................- 22 Figure 9 : Requête SQL pour la table de station ..................................................................- 23 Figure 10 : Les changements sous l’environnement PostgreSQL........................................- 24 Figure 11 : Evolutions des fichiers de chroniques ...............................................................- 26 Figure 12 : Le format du fichier importation .......................................................................- 26 Figure 13 : Vue de la page "Changer le format de fichier brut" ..........................................- 27 Figure 14 : Liste des stations ayant des chroniques de mesure ............................................- 28 Figure 15 : Liste des chroniques ..........................................................................................- 28 Figure 16 : Consultation journalière de la station MercierExu ............................................- 29 Figure 17 : Sélection un intervalle pour une station.............................................................- 30 Figure 18 : Graphe des mesures dans un intervalle pour une station ...................................- 30 Figure 19 : Tableau des données dans un intervalle sélectionné..........................................- 31 Figure 20 : Le fichier d'exportation......................................................................................- 32 Figure 21 : Chroniques de mesure hydrologiques des stations ancienne version ................- 33 Figure 22 : Chroniques de mesure hydrologiques des stations ............................................- 34 Figure 23 : Comparaison graphique entre les stations .........................................................- 35 -

-5-

GLOSSAIRE Hydrologie : L’hydrologie est la science de la terre qui s’intéresse au cycle de l’eau, c’est-àdire aux échanges entre l’atmosphère, la surface terrestre et son sous-sol. [W1]

Limnimètre : Un limnimètre ou station limnimétrique est un équipement permettant l’enregistrement et la transmission de la mesure de la hauteur d’eau (en un point donné) dans un cours d’eau. Cette mesure de hauteur peut être transformée en estimation du débit de la rivière à l’aide d’une courbe de tarage. [W1]

Pluviomètre : Le pluviomètre est un instrument météorologique destiné à mesurer la quantité de précipitation (pluie) tombée pendant un intervalle de temps donné. [W1]

Système de gestion de bases de données : Un système de gestion de base de données (SGBD) est un ensemble de logiciels qui sert à la manipulation des bases de données. Il sert à effectuer des opérations ordinaires telles que consulter, modifier, construire, organiser, transformer, copier, sauvegarder ou restaurer des bases de données. [W1]

-6-

INTRODUCTION Dans le cadre de mon stage de fin d'études de Master 2 Informatique et Système, à l'UFR Sciences et Technologie de l'Université Blaise Pascal, Clermont II, j'ai effectué un stage au Cemagref de Clermont-Ferrand, au sein de l'unité de recherche TSCF (Technologies et systèmes d'information pour les agrosystèmes). Ce stage s'intègre dans un projet de recherche en partenariat entre le Cemagref de Lyon et le Cemagref de Clermont-Ferrand. Le Cemagref est un institut de recherche finalisée de référence pour la gestion durable des eaux et des territoires. La gestion durable est un élément constitutif de la diversité biologique d'une manière conforme aux principes de développement durable. L'organisme Cemagref centre une partie de ses recherches dans le domaine des transferts hydrologiques de surface, qui représente un phénomène physique essentiel du cycle de l'eau, chose qui fait l'objet du développement d'un outil de supervision des différents équipements réseaux. Mon stage s'inscrit dans la continuité de travaux réalisés précédemment sur la conception, la réalisation et l'évaluation d'un système d'information destiné à administrer les données provenant d'un réseau de capteurs hydrologiques sans fil communiquant. Dans une première partie, je rappelle le contexte. Je présente ensuite les différents langages et outils utilisés : PostgreSQL, PHP et la base de données B.I.C.H.E. Dans la dernière partie, je présente les extensions que j'ai apportées à la base de données B.I.C.H.E et à l'interface Web de celle-ci.

-7-

PARTIE I : CONTEXTE

-8-

1. Le Cemagref 1.1 Présentation général Le Cemagref, « l'institut de recherche finalisée de référence pour la gestion durable des eaux et des territoires » est un organisme public à caractère scientifique et technologique. Il a été créé en 1981 et a acquis le statut d'établissement public à caractère scientifique et technologique (EPST) en 1986. Le Cemagref a pour mission de répondre à des questions concrètes de société dans le domaine de la gestion durable des eaux et des territoires en produisant des connaissances nouvelles et des innovations techniques utiles aux gestionnaires, aux décideurs et aux entreprises. Ses thèmes de recherche sont centrés sur les ressources en eau de surface, les systèmes écologiques aquatiques et terrestres, les espaces à dominante rurale, les technologies pour l’eau, les agro-systèmes et la sûreté des aliments.

1.2 Les départements scientifiques Le Cemagref comporte actuellement 5 départements scientifiques : o Ressources en eau, usages et risques o Milieux aquatiques, qualité et rejets o Gestion des territoires o Ecotechnologies et agrosystèmes o Méthodes pour la recherche sur les systèmes environnementaux Une restructuration en cours aura pour conséquence le passage de 5 à 3 départements qui seront les suivants : o Eaux o Territoires o Ecotechnologies Chaque département a des unités de recherche. Actuellement, le Cemagref compte 21 unités de recherche propres (UR), 6 unités mixtes de recherche (UMR) et une équipe de recherche technologique (ERT). Chaque unité de recherche est placée sous la responsabilité fonctionnelle de l’un des chefs de département ou de la direction scientifique, et sous la responsabilité hiérarchique du directeur régional du lieu d’implantation. Les unités sont des lieux de gestion des compétences et des pôles relationnels locaux. Chacune des UR est constituée d’équipes bien identifiées, chaque équipe assurant la mise en œuvre totale ou partielle d’un thème de recherche.

-9-

1.3 Le Cemagref en chiffre Le budget annuel du Cemagref en 2007 est de 88,9 millions d'euros. Les recettes provenant des contrats s’élèvent à 18,2 millions d'euros et assurent l'essentiel des moyens de fonctionnement des unités de recherche. Le Cemagref emploie environ 1 350 personnes dont 950 permanents pour moitié chercheurs et ingénieurs, répartis en 28 unités de recherche sur 9 sites principaux. Il accueille en outre plus de 200 doctorants, 40 post-doctorants et chercheurs étrangers, ainsi qu’environ 250 stagiaires de niveau master. L'effectif des ingénieurs et des chercheurs se répartit équitablement selon les grandes orientations scientifiques, comme le montre la figure suivante :

Figure 1 : Répartition des compétences (Source: http://www.cemagref.fr/le-cemagref/linstitut/son-identite-ses-missions/le-cemagrefen-chiffre/)

1.4 Les centres régionaux 1.4.1 Présentation Le Cemagref dispose de 9 centres ou groupement situés en métropole : o Aix-en-Provence o Antony o Bordeaux o Clermont-Ferrand o Grenoble o Lyon o Montpellier o Nogent-sur-Vernisson o Rennes Il possède également une Antenne régionale à la Martinique.

- 10 -

1.4.2 Le Cemagref en région Auvergne-Limousin Le Cemagref mène en Auvergne des recherches autour de deux axes : o Innovations technologiques pour l'agriculture raisonnée et pour l'environnement. o Collaboration avec les acteurs du développement régional et de l'aménagement du territoire dans le devenir des territoires ruraux, avec le développement d'outils et de méthodes d'aide à la décision, la réalisation d'essais, et l'apport de son expertise dans les domaines de l'agriculture et de l'environnement. Le centre de Clermont-Ferrand est implanté sur deux sites : site d’Aubière et site de Montoldre. Il est constitué de 3 unités de recherche, qui ont la particularité d'appartenir à des départements scientifiques différents : o TSCF: Technologies et systèmes d'information pour les agrosystèmes.-UR o METAFORT: Mutations des activités, des espaces et des formes d'organisation dans les territoires ruraux.-UMR o LISC: Laboratoire d'Ingénierie des Système Complexes.-UR Je travaille dans l'unité TSCF. Je suis dans une des 4 équipes de TSCF qui s'appelle COPAIN (Systèmes d'Information Agri-Environnementaux Communicants). L'activité de l'équipe est consacrée aux méthodes d'ingénierie des systèmes d'information spatialisés dédiés à la gestion agri-environnementale. Ce stage s'intègre dans un projet de recherche dont une présentation est fournie dans ce qui suit.

2. Présentation globale de l'application 2.1 Rappel de l'étude L’hydrologie de surface est la branche de l’hydrologie qui étudie le ruissellement, les phénomènes d’érosion par l’eau, les écoulements des cours d’eau et les inondations. Le projet de recherche dans lequel mon stage s'intègre porte sur cette thématique. Le mécanisme de surveillance déployé sur un bassin versant a pour objectif de fournir des rapports et des comptes rendus détaillés concernant le fonctionnement hydrologique de surface. L'intérêt de l'utilisation d'un tel réseau de mesure est de présenter la dynamique spatiale et temporelle des événements hydrologiques. [R1, R2] On utilise une base de données pour gérer les données collectées. Le système d'information que nous devons concevoir est alimenté en données par un réseau de capteurs sans fil dont le but est de mesurer le niveau d'eau dans un bassin versant. Au cours du projet, le nombre de capteurs sans fil n'a cessé d'augmenter. De plus, la fréquence d'acquisition des données est passée de toutes les 3 minutes à toutes les 2 minutes. Ainsi, l'application qui sera réalisée devra prendre en compte ces futures évolutions. L'objectif final est l'acquisition des données par les capteurs sans fil et leur mise à disposition des utilisateurs.

- 11 -

2.2 Réseau de capteurs sans fil Un réseau de capteurs est un ensemble de capteurs sans fil regroupés au sein d'un même réseau. Les capteurs sans fil communiquent généralement en mode Ad Hoc. Le mode Ad Hoc est un mode opératoire d’un réseau sans fil Wifi. Les clients de mode Ad Hoc sont connectés les uns aux autres sans aucun point d’accès. Les principaux éléments matériel (ou composants matériels) du capteur sans fil sont: o Unité de calcul o Gestionnaire d'alimentations o Module de communication sans fil o Dispositif de mesure de la grandeur observée Notre réseau est constitué d'un certain nombre de capteurs sans fil équipés de différents capteurs de grandeur physiques de type pluviomètres ou sondes limnimétriques, à partir desquels on mesure les variations du niveau de l'eau. Ces capteurs sans fils récoltent les informations, et les transmettent par la suite à une station de traitement de manière autonome.

2.3 Description du dispositif actuel Le dispositif actuel est constitué de neuf capteurs (bientôt 13 capteurs) limnimétriques distribués sur le réseau hydrologique du Mercier (Figure 2). L'acquisition des données s'effectue à pas constant selon une périodicité (2 minutes), et est la même pour l'ensemble des capteurs du réseau. Cela représente tous les mois plusieurs centaines de milliers de données à collecter, à traiter, à stocker et à mettre à disposition des chercheurs.

Figure 2 : 9 capteurs capacitifs répartis sur le réseau hydrographique du Mercier

- 12 -

2.4 Description des données enregistrées Les données enregistrées sont les suivantes : o Date de début d'acquisition en Jour Mois Année Heure Minute o Fréquence mesurée en Hertz à chaque pas de temps o Hauteur correspondante en cm à chaque pas de temps Ces hauteurs sont calculées via l'étalonnage du capteur de grandeur physique qui fixe la loi linéaire de transformation de la fréquence en hauteur. En sortie du capteur ces données sont extraites dans un fichier ".dat"(figure 3). Les autres données intéressantes à archiver sont les données de pluviométrie. Il existe actuellement 2 pluviomètres sur le site d'étude, un troisième sera prochainement ajouté.

Figure 3 : Exemple de fichier de sortie du capteur limnimétrique capacitif

- 13 -

L'application actuelle fonctionne de la manière suivante : o Passage d'une personne pour récolter l'ensemble des données o Gestion « locale » (un seul ordinateur) des données dans une base réduite La nouvelle application comportera les avancées suivantes : o Acquisition des données automatique par les capteurs de grandeur physique o Ajout de fonctionnalités pour améliorer la manipulation, la gestion et le stockage des données collectées dans le serveur Le travail réalisé durant ce stage porte sur la partie amélioration et gestion des données collectées dans le serveur. L'ensemble des données n'est pas centralisé. Alors il faut utiliser des réseaux de capteurs pour remédier à ce problème. Pour la manipulation et la gestion des données, on utilise le concept d'un système d'information adapté s'appuyant sur la base de données B.I.C.H.E. du Cemagref.

2.5 Archivage et consultation des données 2.5.1 La base de données B.I.C.H.E du Cemagref La base B.I.C.H.E a été crée pour entreposer des données de différentes natures du Cemagref : hydrométrie, hydrobiologie… Les données hydrométriques sont archivées par année et consultables par mois. Il s'agit des données de pluviométrie et de hauteur d'eau à relier à des courbes de tarage pour obtenir des débits. Cette base a été conçue pour stocker les données sans adaptation particulière pour les utilisateurs. La manière dont les stations sont référencées est assez complexe et pas totalement adaptée à l'application souhaitée. Dans la partie II de mon rapport, je présenterai plus en détails la base B.I.C.H.E.

2.5.2 Les besoins spécifiques liés au réseau de capteurs capacitifs Toutes l'information provenant des différentes stations d'observation doit être accessible et consultable simultanément. Les périodes intéressantes correspondent essentiellement aux épisodes pluvieux enregistrés par les pluviomètres. Il serait donc intéressant dans la procédure de consultation des données du réseau limnimètrique de consulter en premier les données pluviométriques. Il existe des algorithmes qui permettent de filtrer les périodes intéressantes qui présentent des pics de précipitations.

- 14 -

Une fois ces périodes intéressantes fixées, il faudrait extraire simultanément les graphes de l’ensemble des stations pour lesquelles des données sont disponibles (Fig. 4).

Figure 4 : Enregistrements limnimétriques sur 7 stations de l’épisode pluvieux du 20 juin 2007 sur le bassin versant du Mercier

2.5.3 Acquisition des données L’acquisition de données respecte les principes suivants : o Les données collectées seront extraites des chroniques de mesure sur chaque capteur par un opérateur de terrain (cette étape sera automatisée dans le cadre du système de réseau communicant accessible à distance). o L'utilisateur va valider les données et les charger dans la base de données B.I.C.H.E, avec une synchronisation des données issues des différents capteurs.

2.5.4 Consultation et extraction des données

- 15 -

La consultation nécessite : o Sélection des périodes correspondantes à des épisodes pluvieux, soit de façon manuelle en balayant les données pluviomètres puis en saisissant une période soit automatique en filtrant les épisodes. o Visualisation sur les périodes ciblées des données limnimétriques de l’ensemble des capteurs disponibles. o Exportation dans un tableau de synthèse de l’ensemble des données des capteurs sous forme synchronisée. Les fréquences pourront être fournies à la demande en plus des hauteurs d’eau. D’un point de vue pratique il faut pouvoir identifier chaque station par son nom et chaque capteur par son numéro. Un capteur peut très bien changer de station. Il faut prévoir également l’ajout de nouvelles stations par les utilisateurs. La particularité du dispositif est qu’il s’agit de capteurs légers facilement déplaçables. A ce niveau, il faudrait pouvoir associer une coordonnée géographique à chaque station d’observation et l’idéal serait de développer une interface cartographique pour consulter les données avec l'outil PostGis. Dans ce cas, la consultation pourrait être guidée par la carte en sélectionnant les capteurs pluviométriques puis limnimétriques.

3. Mon travail de stage Mon travail porte sur la partie d'un système d'information destiné à administrer les données provenant d'un réseau de capteurs hydrologiques communicant. Dans un premier temps, j'ai étudié la base BICHE qui a été créée pour entreposer les données de différentes natures fournies par des équipes du Cemagref. Le système de gestion de bases de données utilisé pour héberger cette base est le logiciel PostgreSQL. L’accès à la base est obtenu à l’aide d’une interface Web dédiée qui permet, entre autres, à l’aide de pages en langage PHP, d’accéder à des chroniques provenant de stations de mesure situées dans différents bassins versants. J’ai ensuite apporté différentes modifications à cette base pour améliorer l’intégration des relevés issus de sondes limnimétriques et de pluviomètres. Une refonte complète du module dédié à l’importation des données brutes a été réalisée afin d’en faciliter l’utilisation. Cela correspond à une première étape pour rendre la base BICHE mieux adaptée à la réception de données provenant d’un réseau de capteurs hydrologiques. Des travaux sont également en cours pour que l’application finale soit capable de recevoir et de gérer des données provenant d’un nombre de plus en plus important de capteurs de types différents.

- 16 -

PARTIE II : Présentation des outils et de la base de données B.I.C.H.E

- 17 -

1. Présentation des outils 1.1 L'environnement PostgreSQL PostgreSQL est un système de gestion de base de données relationnelle et objet. C'est un logiciel libre, c'est-à-dire toutes les sources sont disponibles. Il est un descendant OpenSource du code original de Berkeley. Il supporte une grande partie du standard SQL et contient les nombreuses fonctionnalités modernes : o Requêtes complexes o Clés étrangères o Triggers o Vues o Intégrité transactionnelle o Contrôle des versions concurrentes Il est possible d'effectuer des modifications sur le logiciel PostgreSQL de manière à lui ajouter de : o Nouveaux types de données o Nouvelles fonctions o Nouveaux opérateurs o Nouvelles fonctions d'agrégation o Nouvelles méthodes d'indexage PostgreSQL fonctionne sous de nombreux systèmes d'exploitation tels que, par exemple Solaris, Linux, Unix etc. Depuis la version 8.0, il fonctionne également sous le système Windows. Il est concurrent d'autres systèmes de gestion de base de données, qu'ils soient libres (comme MySQL), ou propriétaires (comme Oracle, Sybase, DB2 et Microsoft SQL Server). PostgreSQL fonctionne suivant une architecture client/serveur : o Partie serveur : application fonctionnant sur la machine hébergeant la base de données (le serveur de bases de données) capable de traiter les requêtes des clients. o Partie client : installée sur toutes les machines nécessitant d'accéder au serveur de base de données (un client peut éventuellement fonctionner sur le serveur lui-même) Les clients interrogent ainsi le serveur de bases de données à l'aide de requêtes SQL. [W3]

- 18 -

1.2 Présentation du langage PHP Le langage PHP, qui signifie "PHP: Hypertext Preprocessor", est un langage interprété (un langage de script). Il peut être exécuté par un serveur. Le serveur peut interpréter et générer le code PHP. Le langage PHP a été crée au début de l'automne 1994 par Rasmus Lerdorf. Aujourd'hui, le langage PHP en est à sa cinquième version. La syntaxe du langage provient de celles du langage C, du Perl et de Java. Ses principaux atouts sont : o Une grande communauté de développeurs partageant des centaines de milliers d'exemples de script PHP o Les codes sources sont gratuits (PHP est distribué sous licence GNU GPL) o L'écriture des scripts est simple o La possibilité d'inclure le script PHP au sein d'une page HTML o La simplicité d'interfaçage avec des bases de données, de nombreux SGBD étant supportés o L'intégration au sein de nombreux serveurs web (Apache, Microsoft IIS, etc.)

Ce schéma explique le fonctionnement du langage PHP :

Figure 5 : Fonctionnement du langage PHP (Source: http://fr.wikipedia.org/wiki/Fichier:Php_arch_shema.png)

Dans une utilisation Web, l'exécution du code PHP se déroule ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête au serveur HTTP correspondant. Si la page est identifiée comme un script PHP, le serveur appelle l'interprète PHP qui va traiter et générer le code final de la page (constitué généralement d'HTML ou de XHTML, mais aussi souvent de CSS et de JS). Ce contenu est renvoyé au serveur HTTP, qui l'envoie finalement au client. [W2, W4, W5]

- 19 -

2. La base de données B.I.C.H.E. du Cemagref Pour gérer les gros volumes de données générés par les capteurs sans fil, deux solutions étaient possibles : soit créer une nouvelle base de données, soit utiliser une base de données existante. La deuxième solution a été retenue car la base de données B.I.C.H.E. du Cemagref possède, dès le départ, un sous-ensemble des fonctionnalités recherchées. La base B.I.C.H.E, qui signifie Biologie Chimie Hydrologie pour une base Ecologique, a été créée pour entreposer les données de différentes natures du Cemagref de Lyon. Cette base a été créée sous l'environnement PostgreSQL. Il contient trois parties: Biologie, Physico-chimie et Hydrologie. Donc on travaille dans la partie Hydrologie. Les avantages de la base de données B.I.C.H.E. sont principalement : o Fonctionnement sous un modèle Client/Serveur : plusieurs personnes peuvent ainsi accéder aux données en même temps ; o Existence d'un module dédié à l'hydrologie. Pour l’application qui nous concerne, cette base possède aussi un certain nombre d’inconvénients. La base de données B.I.C.H.E. dispose, en effet, nativement d’un module traitant de l’hydrologie mais, celui-ci commençant à devenir ancien, il ne dispose pas de certaines fonctionnalités importantes. De plus, certaines parties de la base de données étant communes aux différentes thématiques, cela rend complexe leurs éventuelles modifications.

2.1 L'architecture La figure (Figure 6) suivante présente le principe de fonctionnement de la base B.I.C.H.E.

Transfert des données non automatisé B.I.C.H.E. Serveur APACHE PostgreSQL

Station de supervision Figure 6 : L'architecture de la base B.I.C.H.E. - 20 -

Notre système d'information est représenté sous forme d'une station de traitement avec un système de base de données dans lequel seront stockées les données envoyées par le réseau de capteurs sans fil. Cependant les données envoyées doivent être mise en forme avant de les mettre à disposition des utilisateurs. La réalisation des fonctionnalités nécessite un développement spécifique au niveau des scripts PHP. On utilise le langage PHP qui permet de produire les pages Web dynamique. Lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête au serveur tel que Apache et peut fonctionner comme n'importe quel langage interprété de façon locale.

2.2 Vue d'environnement Web

Figure 7 : Vue d'environnement Web La figure ci-dessus représente la page principale Web de la base de données B.I.C.H.E. Depuis cette page, on peut accéder à l'un des trois domaines de recherche abordés dans la base de données : biologie, physico-chimie et hydrologie. Mon travail est dans le cadre de l'hydrologie.

- 21 -

2.3 Vue de la base de données présente sous PostgreSQL

Figure 8 : Vue de la base de données présente sous PostgreSQL Le schéma de la base de données comporte de nombreuses tables. Cela rend son étude assez complexe d'autant plus que certaines tables sont communes à différents domaines (biologie, physico-chimie, hydrologie). Par conséquent, toutes modifications sur celles-ci doit être réalisées avec précaution. Si une table commune est changée dans le cadre d'une modification concernant l'hydrologie, il est possible qu'elle ne puisse plus être plus utilisable pour les deux autres domaines. Le nombre de table n'est pas fixé. Quand l'utilisateur souhaite importer les mesures d’une nouvelle station de chronique qui représente un capteur sans fil dans la page Web, le serveur va créer automatiquement une table qui correspond la nouvelle station pour gérer les mesures. Donc, il y a toujours quelques tables que l'on peut considérer comme « temporaires ». Je vais prendre un exemple pour illustrer le processus de création dynamique, sous la base de données B.I.C.H.E., d'une table relative à un nouveau point de mesure ou d'observation.

- 22 -

Je souhaite importer les mesures pour une nouvelle station 'Pluviometre rural' avec le code de station 69154011. Il faut ajouter cette nouvelle station d'abord. La figure 9 présente la nouvelle station '69154011' créée.

Figure 9 : Requête SQL pour la table de station

Quand j'ai importé les mesures dans cette nouvelle station, la base de données B.I.C.H.E. a été modifiée automatiquement avec l'ajout de nouvelles tables. La figure suivante (Figure 10) montre les changements obtenus, sous PostgreSQL, dans notre base de données.

- 23 -

Figure 10 : Les changements sous l’environnement PostgreSQL La nouvelle table s’appelle mes_p69154011v0 et stocke toutes les données de la station ‘Pluviometre rural’ qui viennent d'être insérées.

- 24 -

PARTIE III : Evolution de la base de données B.I.C.H.E

- 25 -

1. Introduction Ce chapitre présente les évolutions réalisées sur l'interface de la base B.I.C.H.E. pour une meilleure gestion au niveau de l'application. Je vais expliquer proprement toutes les étapes de développement.

Fichiers Bruts

Analyse et Traitements B.D.

Module de Mise au format

Module d'importation Fichier au bon format de données

Module d'exportation

Figure 11 : Evolutions des fichiers de chroniques Le schéma ci-dessus présente les principales étapes de traitement des fichiers de mesures dans notre système d'information. Le fichier qui été enregistré par le capteur sans fil est dit « le fichier brut ». Pour importer les fichiers dans notre base de données, il faut mettre les fichiers bruts au bon format. Ensuite, on peut analyser les données et visualiser les chroniques de mesure d'une station dans un intervalle donné. Enfin, on peut exporter les fichiers de données au même format que celui qui permet l'importation.

2. Importation des chroniques de mesure D'abord, j'ai commencé par importer les chroniques de mesure dans notre base de données. Le fichier à importer a le format suivant : STATION ;$code_de_la_station PARAMETRE ;$parametre PAS DE TEMPS ;$pas_de_temps UNITE DE MESURE ;$unite_de_mesure $date_heure;$valeur;$qualite $date_heure;$valeur;$qualite $date_heure;$valeur;$qualite

Figure 12 : Le format du fichier importation - 26 -

Pour que l'importation du fichier dans notre base de données soit parfaite et n'engendre pas d'erreurs, j'ai ajouté une page pour changer le format de fichier brut automatiquement. Mais il faut quand même indiquer un certain nombre d'informations relatives à la nature des données importées.

Figure 13 : Vue de la page "Changer le format de fichier brut"

3. Affichage des mesures La base de données dispose des informations permettant de connaitre les principaux événements détectés par les stations du réseau. J'ai ajouté un sous menu qui s'appelle "Affichage" parmi le menu de consultation. Dans ce sous menu, j'ai ajouté deux liens. Le premier a été nommé "Affichage d'une station" faisant appel au script "affichage.php". Il sort la liste des stations avec le nom et le code de chacune d'entre elles. Le deuxième a été nommé "Affichage des deux stations" faisant appel au script "affichage2.php" (voir annexe 2). Il a été créé pour la partie comparaison de deux stations. Je vais le présenter dans la partie suivante. La capture d'écran ci-dessous représente le résultat d'exécution du script "affichage.php":

- 27 -

Figure 14 : Liste des stations ayant des chroniques de mesure

Lorsqu'on clique sur le champ "Code station", on fait appel à un autre script qui va nous récupérer d'autres informations sur la station choisie comme, par exemple, la lacune, les mesures hydrologiques par mois ou par années. J'ai utilisé les anciens résultats d'exécution du script comme dans le menu "Graphe". Donc chaque fois on peut détailler les chroniques de mesure et choisir une période et afficher le graphe correspondant.

Les deux figures suivantes présentent un exemple d'affichage des chroniques par une station.

Figure 15 : Liste des chroniques

- 28 -

Figure 16 : Consultation journalière de la station MercierExu

4. Affichage graphique pour un intervalle sélectionné Pour une meilleure supervision, j'ai ajouté un sous-menu "Sélectionner un intervalle" avec deux liens (voir annexe 1). Le premier lien nommé "graphique" permet aux utilisateurs de choisir la station et de saisir un intervalle, il affiche le graphe. Le deuxième lien nommé "données" suit les mêmes étapes que le premier lien sauf qu'il affiche les données dans un tableau. Enfin, il peut exporter les données dans un nouveau fichier au format d'importation. Dans le paragraphe suivant, est fourni un exemple d'affichage des mesures de manière graphique.

4.1 Affichage des mesures graphiquement La figure ci-dessous présente la page de sélection d'une station et d'un intervalle.

- 29 -

Figure 17 : Sélection un intervalle pour une station

J'ai mis un champ d'entrée avec l'option 'select' pour choisir une station d'abord. Puis il faut entrer la date de début et la date de fin au bon format, par exemple '04/06/2007 20:0'. Si tous les champs sont remplis, appuyez sur le bouton 'Entrer'. Les données saisies sont transférées à un script "courbebis.php" qui a pour fonction d'afficher le graphe requis. La capture d'écran ci-dessous représente le résultat d'exécution du script :

Figure 18 : Graphe des mesures dans un intervalle pour une station

- 30 -

Le graphe représente les mesures de la station MercierExu entre 20 h et 21 h le 04 Juin 2007. L'axe des abscisses Y correspond à la valeur d'hauteur de l'eau. Et l'axe des abscisses X correspond au numéro de mesure ou de relevé dans l'intervalle de temps concerné. Ce numéro est indiqué en première colonne du tableau de la partie suivante "affichage des mesures directement".

4.2 Affichage des mesures directement On procède de la même façon que ci-dessus c'est-à-dire on commence par saisir la station et l'intervalle de temps souhaités. Lorsqu'on clique sur le bouton 'Entrer', le script "selectinter_donnee.php" est appelé et sont affichés toutes les informations saisies ainsi qu'un tableau contenant les mesures. La capture d'écran ci-dessous représente le résultat d'exécution du script :

Figure 19 : Tableau des données dans un intervalle sélectionné De plus, il est possible de cliquer sur le bouton 'OK' pour exporter les données qui sont affichées dans le tableau. (Voir annexe 3) Le nouveau fichier qui s'appelle 'test.txt' (Figure 20) est au format d'importation.

- 31 -

Figure 20 : Le fichier d'exportation

5. Comparaison de deux stations Pour une meilleure ergonomie, j'ai ajouté un lien nommé "Affichage des deux stations" dans le sous-menu "Affichage" pour comparer les mesures de deux stations dans un intervalle sélectionné. Une fois la période sélectionnée par l'utilisateur, il faudrait exporter les données sous forme de tableau avec une seule colonne pour les dates. Mais les capteurs sont cadencés à 2 minutes et n'enregistrent pas tous dans la même minute. A ce niveau il y a un algorithme permettant de combler les lacunes. L'idée est d'obtenir en sorite le tableau ci-dessous :

- 32 -

Figure 21 : Chroniques de mesure hydrologiques des stations ancienne version Avec cette présentation, la datation exacte de chaque relevé est perdue. Après discussion avec les futurs utilisateurs, pour l'ajout de nouvelles fonctionnalités, nous sommes revenus à un fonctionnement à la minute plutôt qu'à la fréquence d'acquisition (toutes les 2 ou 3 minutes). Comme dans la partie précédente, il faut saisir les stations qu'on souhaite comparer et l'intervalle de temps. J'ai utilisé la même page "sélection d'un intervalle" et ajouté un autre champ d'entrée pour saisir la deuxième station. Lorsque l'on clique sur le bouton 'Entrer', toutes les informations saisies et les mesures des deux stations sont affichées dans un tableau. La figure suivante présente le résultat d'exécution du script :

- 33 -

Figure 22 : Chroniques de mesure hydrologiques des stations Cette figure affiche les informations des deux stations d'abord. Puis il fournit en sortie un tableau avec une colonne de temps et une colonne pour chaque station avec leurs chroniques de mesure. Toutes les stations n'étant pas démarrées au même moment, leurs données appartiennent au même intervalle de temps (2 minutes) mais pas forcement à la même minute. Un affichage avec une colonne indiquant la minute exacte d'acquisition plutôt que l'intervalle a été, dans cet exemple, privilégié.

La figure (Figure 23) ci-dessous présente les courbes des chroniques de mesure, avec l'axe des abscisses X qui correspond à la première colonne du tableau précédent. (Voir annexe 4)

- 34 -

Figure 23 : Comparaison graphique entre les stations

Les deux courbes représentent les hauteurs d'eau des deux différentes stations pour un intervalle de temps donnée. Durant les tests, par plusieurs fois, j’ai constaté des problèmes d’affichage. Si on souhaite afficher un trop grand nombre de données dans un graphe, l’axe des abscisses X est illisible. Pour résoudre ce problème, j’ai rajouté une colonne au tableau précédent pour numéroter chaque relevé.

- 35 -

CONCLUSION Le but de ce stage était l'adaptation, le développement et l'évaluation d'un système d'information destiné à administrer les données provenant d'un réseau de capteurs hydrologiques communiquant. Lors de ce stage j'ai rencontré quelques difficultés. Tout d'abord je ne connaissais pas l'hydrologie et la base de données B.I.C.H.E. Cette base a été créée pour gérer des données liées à l’écologie. Ensuite, je me suis familiarisé avec les outils et les langages informatiques utilisés. Ce stage m'a ainsi permis de mettre en pratique les connaissances théoriques et pratiques acquises lors de ma formation, et d’en acquérir de nouvelles relatives à l’utilisation du langage PHP et du logiciel PostgreSQL. Cette expérience a mis en évidence des points très positifs. Ce projet a également été l'occasion de me plonger dans le milieu de la recherche. Ce stage au Cemagref m'a permis de rencontrer des chercheurs et de partager leurs expériences. J'ai également eu la chance de travailler au sein d'une équipe accueillante et chaleureuse. Le bilan de ce stage est dans l'ensemble positif, les principaux buts du projet étant accomplis. La plus grande partie du travail qui m'a été demandée a été réalisée. Les quelques modifications ou améliorations qui restent à apporter aux différents programmes développés seront effectuées durant le mois de stage qui me reste. Ce stage est une expérience enrichissante, il me permet de clore ma deuxième année de Master 2 Informatique et me donne également un aperçu du travail dans le milieu de la recherche.

- 36 -

REFERENCES BIBLIOGRAPHIQUES [R1] FAHMANI MED EL MAHDI, 2008, Conception, réalisation et évaluation d'un système d'information destine à administrer les données provenant d'un réseau de capteurs hydrologiques communiquant, Mémoire de projet de fin d'études, Université Claude Bernard Lyon 1. [R2] SARRAZIN B., 2008, SGBD et Réseau de capteurs limnimétriques capacitifs, Thèse, Cemagref, ISARA Lyon. [R3] GALLOT K., 2005, Le Grand Livre De Php 5; Developpement Objet, Applications Pratiques.

WEBOGRAPHIES [W1] http://fr.wikipedia.org/wiki/ [W2] http://www.phpfrance.com/ [W3] http://www.postgresql.org/ [W4] http://www.php.net/ [W5] http://www.commentcamarche.net/contents/php/phpintro.php3

- 37 -

ANNEXES

- 38 -

Annexe 1 La figure suivante représente l’arborescence des fichiers PHP qui ont été ajoutés dans le menu de consultation :

Menu Affichage Affichage une staton

Comparaison deux stations

affichage.php

affichage2.php Sélection d'un intervalle

Sélection d’une station

selectinter3.php trace_compa.php

Affichage des courbes courbe2.php

Figure A.1 : Arborescence du menu "affichage"

Menu Sélection d’un intervalle Affichage des données d’une station (graphiquement)

Affichage des données d'une station

selectinter.php

selectinter2.php

Affichage de la courbe

Sélection d'un intervalle selectinter_donnee.php

courbebis.php

Exportation des données exporter.php

Figure A.2 : Arborescence du menu "sélection d’un intervalle"

- 39 -

Annexe 2 Script "affichage2.php"

- 41 -

Annexe 3 Script "exporter.php"