Développement d une méthode d interpolation curviligne dans le système d information géographique «ArcGIS» pour l analyse spatiale
|
|
|
- Mauricette Lafond
- il y a 10 ans
- Total affichages :
Transcription
1 Développement d une méthode d interpolation curviligne dans le système d information géographique «ArcGIS» pour l analyse spatiale Claudia Dittrich 20. Juin 2004 Sous la direction de : Prof. Dr. Peter Peinl (Referent) Dr. Nadou Cadic (Koreferent)
2 Résumé Le projet est né des études du peuplement piscicole des plans d eau de l unité de recherche «RIPE» 1 du Cemagref Montpellier. En juin 2002 le «RIPE» a réalisé des échantillonnages sur le lac Chambon, un lac artificiel situé au centre de la France à coté de la ville d Eguzon. Grâce à cette campagne, les chercheurs ont obtenu des jeux de données qui contiennent des informations sur la biomasse et la profondeur du lac à des endroits donnés. L objectif attendu de l étude était de permettre des cartographies à partir des données ponctuelles montrant la répartition spatiale de la densité piscicole sur le plan d eau en tenant compte des facteurs écologiques déterminant la répartition du peuplement piscicole. Dans ce cas, la bathymétrie du lac est le facteur écologique. Elle est la caractéristique naturelle du lac déterminant la répartition spatiale des poissons. Au cours de ce projet les techniques classiques de cartographies des systèmes d information géographique (SIG) ont été analysées. Elles ont été bien examinées en regard à leurs application pour ce projet. L étude a démontré que les fonctionnalités existantes ne peuvent pas être utilisées pour nos besoins, car elles ne sont pas assez paramétrables. Après avoir montré les limites des méthodes d interpolation dans le SIG, une interpolation curviligne a été envisagée pour pouvoir créer une carte présentant la densité piscicole. Une méthode d interpolation appropriée a été développée. Ces caractéristiques et sa qualité sont montrées dans le mémoire. Pour pouvoir mettre en œuvre cet algorithme dans le SIG d ESRI «Arc- GIS», il fallait étudier les modes de stockages, analyser les possibilités d accès aux données et examiner les possibilités d adaptation des fonctionnalités existantes. Ayant développé une méthode d interpolation curviligne appropriée, elle a été implémentée dans le SIG en utilisant l environnement de programmation propre à ArcGIS «ArcObjects». Elle sert à interpoler les données piscicoles et à créer des cartographies de l attribut interpolé. Le traitement spatial des données provenant des échantillonnages et la cartographie des résultats obtenus pouvaient être mis en pratique. Mots clés : système d information curviligne (SIG), ArcGIS, interpolation curviligne, cartographie, peuplement piscicole, densité piscicole, facteurs écologiques, bathymétrie, ArcObjects 1 RIPE : Ressources Ichtyologiques en Plans d Eau
3 2 Abstract The project is based on research about the fish population in water bodies done by the research group RIPE 1 of the Cemegref in Montpellier. In June 2002 RIPE did measurements in the lake Chambon, an artificial lake, situated in the middle of France next to the town Eguzon. Due to this research campaign, the scientists have obtained data including information about the biomass and the depths of the lake. The expected result of this research is to create cartographies based on the punctual data, showing the spatial distribution of the fish density in the body of water. The cartographies should consider ecological factors which determine the spatial distribution of the fish population. In this case the bathymetry of the lake is the most important ecological factor. It represents the natural characteristic of the lake, determining the distribution of the fish. In the course of the project the classical cartographical techniques of the geographic information systems (GIS) have been analysed and examined with regard to their project specific application. The study has shown that the existing functionalities can not accomplish the object, as they are not parametrable enough. Having shown the limits of the interpolation methods in the GIS, the curvilinear interpolation had been taken into account to create a map representing the fish density. An appropriate method has been developed. Its characteristics and suitability are shown by the thesis. To implement this algorithm in ESRI s GIS ArcGIS, it was necessary to study the storage modes, analyse the data access and to examine the possibilities to adapt already existing functionalities. Having developed an appropriate curvilinear interpolation method, it was implemented into the GIS by using the software s development platform ArcObjects. It serves to interpolate the ichthyological data and to create cartographies of the interpolated attribute. The spatial preparation of the data originating from the sample values and the cartography of the obtained results were successfully accomplished. Keywords : Geographic information system (GIS), ArcGIS, curvilinear interpolation, cartography, fish population, fish density, ecological factors, bathymetry, ArcObjects 1 RIPE : Ressources Ichtyologiques en Plans d Eau
4 3 Zusammenfassung Das Projekt ist aus den Forschungen über den Fischbestand in Gewässern der Forschungsgruppe RIPE 1 von Cemagref in Montpellier entstanden. RIPE hat im Juni 2002 in dem See Chambon, ein künstlicher See, der sich in der Mitte Frankreich neben der Stadt Eguzon befindet, Messungen vorgenommen. Dank dieser Forschungskampagne haben die Wissenschaftler Informationen über die Biomasse und die Tiefe des Sees an bestimmenten Orten in Form von Datenpaketen erhalten. Erwartetes Ziel der Studie war es, ausgehend von den punktuellen Daten Kartographien zu erstellen, welche die räumliche Verteilung der Fischdichte in dem Gewässer zeigen. Die Kartographien sollen die ökologischen Begebenheiten, die die Verteilung der Fischbevölkerung bestimmen, berücksichtigen. In diesem Fall ist die Bathymetrie des Sees der bestimmende ökologische Faktor. Sie stellt das natürliche Charakteristikum des Sees dar, das die räumliche Verteilung der Fische bestimmt. Im Laufe des Projektes wurden die klassischen kartographischen Techniken der geografischen Informationssysteme (GIS) analysiert und im Hinblick auf ihre projektspezifische Anwendungsmöglichkeit geprüft. Die Studie hat gezeigt, dass die existierenden Funktionalitäten für unsere Zwecke nicht genutzt werden können, da sie nicht ausreichend parametrierbar sind. Nachdem die Grenzen der Interpolationsmethoden aufgezeigt waren, wurde eine kurvenförmige Interpolation in Betracht gezogen, um eine Karte erstellen zu können, die die Fischdichte repräsentiert. Eine geeignete Interpolationsmethode wurde entwickelt. Ihre Charakteristika und ihre Eignung sind in dieser Arbeit aufgezeigt. Um diesen Algorithmus in ESRIs GIS ArcGIS umzusetzen, war es notwendig, die Abspeicherungsmodi zu erforschen, die Datenzugriffsmöglichkeiten zu analysieren und die Adaptionsmöglichkeiten der bereits existierenden Funktionalitäten zu prüfen. Nachdem eine geeignete kurvenförmige Interpolationsmethode erarbeitet war, wurde sie unter Benutzung der programmeigenen Entwicklungsumgebung ArcObjects in dem GIS implementiert. Sie dient dazu, die ichtyologischen Daten zu interpolieren und Kartographien des interpolierten Attributs zu erstellen. Die räumliche Aufbereitung der aus den Stichproben stammenden Daten, sowie die Kartographie der erhaltenen Ergebnisse, konnte praktisch umgesetzt werden. Stichwörter : Geografisches Informationssystem (GIS), ArcGIS, kurvenförmige Interpolation, Kartographie, Fischbevölkerung, Fischdichte, ökologische Faktoren, Bathymetrie, ArcObjects 1 RIPE : Ressources Ichtyologiques en Plans d Eau
5 4 Ehrenwörtliche Erklärung Hiermit versichere ich, dass ich die vorliegende Diplomarbeit selbständig verfasst habe und keine anderen, als die angegebenen Hilfsmittel und Quellen verwendet habe. Diese Arbeit wurde in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen und wurde auch noch nicht veröffentlicht. Kelkheim, im Juni 2004
6 5 Remerciement Je tiens tout d abord à remercier la MTD de m avoir accueillie dans cet institut et d avoir rendu possible la réalisation du projet. Je remercie aussi Dr. Nadou Cadic, mon responsable de stage permanent, qui a continué à m encadrer malgré son départ du Cemagref. Je remercie également le Prof. Dr. Peinl pour ses conseils et son attention tout au long du stage. Mes remerciements vont également à Dr. Jean-Pierre Chéry, Dr. Jean-Stéphane Bailly et Aymérique Guibert pour leur aide sur place. Je tiens aussi à remercier Carole Delenne pour ses conseils sur les questions mathématiques. Un remerciement spécial à Philippe Cleyet-Merle pour les corrections non seulement linguistiques. Un grand merci aussi à tous les stagiaires qui m ont souvent aidée à trouver les bonnes expressions françaises et qui ont su instaurer une bonne ambiance pendant cette période de stage. Avant Propos Le projet a été réalisé en collaboration avec la Maison de la Télédétection de Montpellier. Le sujet était donné par Dr. Nadou Cadic, ancien chercheur au sein de l unité de recherche RIPE du Cemagref Montpellier, actuellement délégué régional du Conseil Supérieur de la Pêche. L objectif de l équipe RIPE est de répondre aux préoccupations des gestionnaires de plans d eau, des collectivités territoriales et des professionnels de la filière aquacole continentale. Etant donné que le projet a été réalisé dans un institut de recherche en France, j ai décidé d écrire mon «Diplomarbeit» en français.
7 Table des matières 1 Préface Motivation Structure du rapport Problématique Description de la problématique Buts du travail Objectif recherché Les Bases Les SIG Les modes de représentation ArcGIS Famille de SIG Stockage des données en ArcGIS Adaptation ArcObjects Langage de programmation VBA Analyse spatiale Spatial Filter Spatial Operator Interfaces Les algorithmes d interpolation existants dans ArcGIS Les concepts de la solution Calcul des densités Traitement des données dans le SIG Le système de coordonnées curvilignes Implémentation de l algorithme Résumé Mise en pratique Traitement des données Données GPS Données filets
8 TABLE DES MATIÈRES Données acoustiques Importation dans le SIG Programmation Accès aux données Implémentation de l algorithme Guide d utilisateur Avant-propos Objet L utilisation Changer l affichage Complément : Calculer la moyenne Conclusion et perspective Résultats atteints Perspective Ouverture du projet Application des résultats A 106 A.1 Class Diagram Key A.2 Cartographies B 115 B.1 User Tips «Create Contours» B.2 Code source Table des figures 121 Listings 122 Index 124
9 Chapitre 1 Préface 1.1 Motivation Le traitement des données résultant des échantillonnages faites dans la nature est la base des sciences naturelles. Il y est indispensable de tenir compte des caractéristiques naturelles des objets examinés. Presque toujours on se sert des outils informatiques pour traiter les données. Dans la géographie, l agronomie ou la sylviculture par exemple les systèmes d information géographique sont utilisés. Souvent ils aident à l analyse spatiale. Mais ils ne correspondent pas toujours aux besoins des scientifiques. Souvent on veut analyser un phénomène en tenant compte de ses caractéristiques naturelles. Les SIG souffrent (encore) du manque de possibilités de paramétrage de leurs fonctions. Les techniques classiques de cartographies ne suffissent plus. Il s agit par conséquent de bien examiner les fonctionnalités existantes avec leurs limites et de les adapter à ses propres besoins. L adaptation des fonctionnalités du SIG est le sujet traité dans cette étude. Les faiblesses des SIG ainsi que l implémentation des nouvelles fonctionnalités pour l analyse spatiale seront montrés. 1.2 Structure du rapport Le rapport est devisé en six chapitres. Après ce chapitre de préface, la problématique et l objectif recherché seront décrits dans «Problématique». Le troisième chapitre donnera un aperçu dans la théorie qui encadre ce projet. Le chapitre «Les concepts de la solution» expliquera comment résoudre le problème en théorie. Le prochain chapitre décrira la mise en pratique du concept trouvé. Le dernier chapitre contient des résultats atteints et donnera une perspective d application et d élargissement des résultats obtenus. 8
10 Chapitre 2 Problématique Le projet est né des études du peuplement piscicole des plans d eau de l unité de recherche «RIPE» du Cemagref Montpellier. En juin 2002 le «RIPE» a réalisé des échantillonnages sur le lac Chambon, un lac artificiel situé au centre de la France à coté de la ville d Eguzon. Le lac est formé par la retenue d eau du barrage d Eguzon, un barrage construit en 1922 sur la rivière «La Creuse». Avec ses 300 hectares c est le plus grand plan d eau de la région Centre. 2.1 Description de la problématique Pour mesurer la bathymétrie du lac, l unité de recherche a utilisé un GPS et un écho-sondeur. Equipés de ces appareils de mesure, les chercheurs ont fait des parcours en bateau pour mesurer le lac. Le GPS renvoie les coordonnées x (la longitude) et y (la latitude) en datum wgs84 1. Les profondeurs sont obtenues à partir de l écho-sondeur. Grâce à cette méthode de mesure on a obtenu environ points GPS. Nous disposons donc de points renseignés en longitude, latitude et profondeur, qui permettent de construire la bathymétrie du lac. L écho-sondeur renvoie aussi des informations sur la biomasse détectée. L appareil de mesure a fait tirs. Dans ces points on a détecté des espèces de poisson. Comme l écho-sondeur ne mesure que la masse de matière vivante présente sur une surface, on ne peut pas dire qu on n a détecté que des poissons. Les informations renvoyées pourraient aussi provenir des crustacés, des serpents ou d autres organismes gélogiques. Pour chaque «poisson» détecté, on connaît ses coordonnées x et y plus z (x et y donnés par 1 Le datum WGS84 (= World Geodetic System 1984) est un système de référence de GPS mis au point en 1984 par le département de la défense des États-Unis afin de faciliter le positionnement et la navigation à l échelle mondiale. Il est basée sur des positions calculées grâce aux mesures du système de satellites DOPPLER est utilise le centre du globe comme point de référence [HaAn03]. 9
11 CHAPITRE 2. PROBLÉMATIQUE 10 GPS, et z étant la profondeur du fond du lac à l endroit où le poisson a été détecté par l écho-sondeur). Pour chacun de ces «poissons», on connaît son poids estimé, ce qui doit permettre d établir des cartographies de la densité piscicole estimée par l échosondage. En plus de ces points, on dispose d un jeu de données correspondant aux captures de «vrais» poissons dans environ 30 filets, disposés dans trois zones du lac. Les zones sont les suivantes : la zone littorale, la zone sublittorale et la zone centrale. La zone littorale va d une profondeur de 0 à 8 mètres, la zone sublittorale de 9 à 26 mètres et la zone centrale de 27 mètres jusqu à la profondeur maximale du lac, qui est à 48 mètres. Une hypothèse est faite : la variable «poisson» est supposée stratifiée par type d habitat. Ceci signifie que les peuplements de poissons sont homogènes à l intérieur d un type d habitat donné. Les trois zones sont considérées comme trois «strates», au sens statistique, c est-à-dire au sein desquelles les données peuvent être sommées et moyennées. L objectif attendu de l étude est d avoir des cartographies montrant la répartition spatiale de la densité piscicole pour pouvoir partager le lac en différentes zones d activité. En regardant la densité de poisson on peut déterminer les meilleures places pour les pêcheurs, les nageurs, le sport nautique et pour faire de la voile. En outre les cartes aident à comparer les résultats obtenus de l échantillonnage «filets» avec celles de l échantillonnage «acoustique». En plus on veut comparer la densité piscicole sur chacune des strates statistiques. 2.2 Buts du travail Il s agit de trouver une solution pour pouvoir interpoler les données ponctuelles. Cette interpolation a pour but de créer des cartes avec les densités de poissons à tout point d une échelle choisie. Ce type d interpolation est très différent de ceux offerts par les SIG qui restent dans le système de coordonnées plus conventionnel. Les algorithmes d interpolation existants dans les SIG prennent l orientation horizontale et verticale comme base. Ici, l orientation est définie par l écoulement du lac, qui a une importance écologique majeure dans la répartition spatiale du peuplement piscicole. En outre il s agit de calculer la densité moyenne dans toutes les zones. 2.3 Objectif recherché L objectif est de permettre une cartographie des densités piscicoles sur un plan d eau à partir de données ponctuelles (captures de poissons dans n filets, ou détection acoustique de poissons par l échosondage) en tenant compte des facteurs écologiques déterminant la répartition spatiale du peuplement piscicole.
12 Chapitre 3 Les Bases Dans ce chapitre je vais présenter les bases théoriques qui sont nécessaires pour pouvoir comprendre la solution de problème choisie dans le cadre de ce projet. J explique tous les termes techniques qui apparaissent dans la réalisation du projet et je donne un bref aperçu dans le monde des SIGs. 3.1 Les SIG Il existe plusieurs définitions de systèmes d information géographiques (SIG). Je me réfère à une définition générale d ESRI 1 France, qui dit que «un système d information géographique est un outil informatique permettant de représenter et d analyser toutes les choses qui existent sur terre ainsi que tous les événements qui s y produisent» et on y ajoute qu un SIG inclut en outre les fonctionnalités des bases de donnés conventionnelles. Dans quelle mesure ces fonctionnalités sont implémentées, dépend fortement du SIG choisi. Un SIG contient généralement plusieurs sortes d objets géographiques qui sont organisés en thèmes que l on affiches souvent sous forme de couches. Chaque couche contient des objets de même type. Chaque objet est constitué d une forme (la géométrie de l objet) et d une description (l information descriptive). L intérêt d un utilisateur d un SIG est d effectuer des traitements divers sur ces objets. Dans le cadre de mon projet j ai travaillé avec le SIG «ArcGIS» d ESRI. Tout ce chapitre se base donc spécialement sur les particularités d ArcGIS. 1 Environmental System Research Institute 11
13 CHAPITRE 3. LES BASES Les modes de représentation Pour la représentation des données sous forme numérique, il existe deux types fondamentalement différents : Le mode raster ou mode grille 2 et le mode vectoriel. Chaque mode a ses avantages pour des tâches différentes et certains logiciels n en proposent qu un seul. Pour le traitement d image le mode raster est plus utile. Les SIG par contre s appuient sur le mode vectoriel. «Les SIG travaillent de façon privilégiée en mode vecteur, même s ils sont capables d intégrer, et parfois de traiter, des images raster.» [Bo02]. Le mode raster Le mode raster est construit sur une partition régulière souvent en carrés. Les carrés ou cellules 3, dits pixels, servent d éléments de base à cette présentation. Elles représentent les primitives géographiques du mode raster. [RSV02] différencie encore dans la partition des cellules d égales tailles (regular tessellation) et des cellules de taille variable (irregular tessellation). Pour la regular tessellation on peut encore différencier différentes formes des cellules : soit des carrés (dite grid squares), soit des cellules hexagonales. Par la suite le terme raster sera utilisé pour décrire la partition régulière dans des carrés, car c est cette partition utilisé dans les raster d ArcGIS. Tout pixel correspond à une surface de la terre. Par conséquence ils ont une taille fixe. La précision d image et de calcul augment proportionnellement avec la réduction de taille des pixels, qui mène à l augmentation du nombre de pixels. A chacune des cellules correspond un attribut. Le pixel «[...] porte en attribut la valeur élémentaire v i, caractéristique de l image.(ex. couleur, radiométrie, voir figure 3.1)»[Bo02]. Les jeux de données raster d entiers sont généralement associés à une table attributaire «.VAT». La première colonne de la table («Value») stocke la valeur affectée à chaque cellule d un raster. La deuxième colonne («Count») stocke le nombre total de cellules du jeu de données, appartenant à la zone considérée. Selon [Bo02], p. 61 l attribut d une cellule correspond à une des trois catégories d informations géographiques raster : soit c est une valeur visuelle (une couleur), soit l attribut correspond à une valeur physique du terrain (l altitude, par ex.), soit il correspond à une valeur calculée (raster sémantique). La dernière catégorie d informations géographiques raster est souvent utilisée en analyse spatiale, car on y travaille avec une répartition régulière des objets mathématiques simples qui représentent des objets géographiques 2 aussi appelé mode matriciel, mode image ou mode maille ; suivant j utilise toujours l expression raster et grille pour parler de la même chose. 3 Par la suite j utilise les expressions pixel et cellule pareillement.
14 CHAPITRE 3. LES BASES 13 Fig. 3.1 Principe des images raster [Bo02] souvent complexes. On trouve les rasters surtout dans les outils de traitement d image. Une photographie aérienne, une image satellite ou une image scannée sont représentées en mode raster. Une photographie ou une image brute n est pas encore une information géographique, car elle n est pas localisée. Elles deviennent des informations géographiques si on associe à chaque pixel les coordonnées correspondant à l objet du terrain qu il représente. Cette opération s appelle le géoréférencement. Le géoréférencement peut être réalisé par un calage qui pourra être modifié par la suite par des travaux de corrections et redressements. Un calage «...consiste à attribuer à tout point de l image des coordonnées déduites à partir des coordonnées de points remarquables préalablement identifiés. Pratiquement pour réaliser un calage, on identifie au moins trois points sur l image et on leur associe leurs coordonnées-terrain. A partir de ces information, le logiciel est alors capable d attribuer à tout point de l image des coordonnées-terrain déduites.» [Bo02], p. 59 Les tics 4 sur des cartes de IGN 5 sont un exemple pour des points remarquables préalablement identifiés. Ils aident au calage. indexign Un pixel dans un raster est donc représenté par ses coordonnées (x, y) et une seule information géographique (son attribut). Le mode raster est un mode de représentation important vu l augmentation du nombre de données reçues des satellites et leur utilisation pour 4 petits croix avec des coordonnées-terrain indiquées 5 Institut Géographique National, qui a pour mission fondamentale d assurer la production, l entretien et la diffusion de l information géographique de référence en France
15 CHAPITRE 3. LES BASES 14 des applications spécifiques comme la météo et l étude de la pollution de l environnement. Le désavantage vient d un besoin important de stockage de données et de mémoire vive pour travailler avec une grande précision. «A faithful object presentation has a consequence that objects occupy much memory space. In addition, operations on objects are then more time consuming. This is a clear drawback to this approach.»[rsv02], p. 37 C est la raison pour laquelle les SIG s appuient plus sur les informations en mode vectoriel. Le mode vectoriel Les SIG travaillent de façon privilégiée en mode vectoriel, car pour stocker un objet en ce mode il faut moins d espace mémoire et ce mode facilite l étude des relations spatiales des objets (cf. 3.3). En mode vectoriel les éléments géométriques sont représentés sous primitives géométriques. Ce sont les objets mathématiques élémentaires suivants : Les points Les polylignes Les polygones Les trois primitives géométriques sont construites par des primitives de bases : des points et des arêtes 6. Un point est représenté par ses coordonnées et une arête par ses deux extrémités (qui sont aussi des points). Il existe plusieurs variants pour composer des polylignes et des polygones par des points et des arêtes. Je me réfère sur la représentation des primitives dans ArcGIS, qui ressemble à celle décrite dans [RSV02]. Dans ArcGIS une polyligne est composée d un ou plusieurs segments, qui peuvent être déconnectés. Un segment en retour peut être soit une ligne, soit une courbe ou soit un arc. Pour les arcs on différencie les arcs circulaires et les arcs elliptiques. Un arc circulaire est une portion d un cercle. «A portion of a circle that connects two points optionally has measure, height and ID attributes at each endpoint.» [AODH03] Un arc elliptique est une portion d une ellipse. «A portion of the boundary of a 2D ellipse that connects two points ; optionally has measure, height and ID attributes at each endpoint.» [AODH03] Une courbe est une courbe de Bezier. «A cubic Bezier curve defined between two points ; optionally has measure, height and ID attributes at each endpoint.» [AODH03] Dans ArcGIS le terme polyline pour décrire une polyligne est donc troublant. Il vaut mieux parler d une polycurve, si on suppose que courbe signifie soit une ligne, soit une courbe de Bezier soit un arc. Un polygone est une suite des rings. «A collection of rings ordered by 6 edge en englais
16 CHAPITRE 3. LES BASES 15 their containment relationship ; optionally has measure, height and ID attributes.» [AODH03] Une ring en retour se compose des segments connectés, qui enferment une surface. «An area bounded by one, closed sequence of connected segments ; optionally has measure, height and ID attributes at each vertex.» [AODH03] Figure 3.2 montre les géométries dans une geodatabase (base de données géographique). Fig. 3.2 Geometrie dans une geodatabase [ENSG03] La forme dans laquelle un objet est présentée dépend du point de vue. Une parcelle peut être représentée soit par un polygone si on crée un plan de la région par exemple et on veut savoir la division du terrain soit par un point si on ne s intéresse qu à sa localisation sur un plan plus gros. «Le caractère principal dépend évidemment du point de vue. Un objet pourra être ou non retenu suivant l intérêt qui lui porte le concepteur des données. Ainsi, les objets géographiques ne sont plus définis à partir de la réunion à déterminer d un ensemble de pixels de même valeur, mais directement par les composants qui leur ont été attribués.» [Bo02], p.63
17 CHAPITRE 3. LES BASES 16 Le fait que les informations soient exprimées par des primitives géographiques est un avantage du mode vectoriel, car on peut accéder directement aux objets par leur expression graphique. Le mode TIN Le mode TIN (Triangulated Irregular Network) se base sur la répartition de terrain en triangles. On parle simplement de triangulation. Les triangles peuvent avoir des tailles différentes. A tout vertex des triangles une valeur de l élévation est attribuée. Ces valeurs des points sont obtenues par l interpolation des valeurs connues à des points (x, y). «ArcInfo utilise une triangulation de Delaunay pour modéliser un TIN (chaque cercle circonscrit aux trois nœuds d un triangle n inclut aucun autre nœud)» [ENSG02] comme montré dans la figue 3.3. Fig. 3.3 Triangulation de Delaunay [ENSG02] La triangulation est utilisée pour des MNTs depuis les années Les MNT (modèle numérique de terrain 7 ) représentent le terrain sous forme d une grille, dont les cellules sont des carrés. Cette représentation est réalisée par une grille qui est projetée ou drapée sur une partie du terrain. Après on assigne des valeurs à tout point localisé à une intersection de la grille. «[...] un fichier contenant des points régulièrement répartis sur une grille qui aurait été calée virtuellement sur une partie du terrain. Chaque point localisé à une intersection de la grille est renseigné par une altitude : celle de son homologue au sol.» [Bo02] Les MNTs se basent sur un nombre fini des valeurs mesurées, à partir d elles les autres valeurs sont obtenues par interpolation. La figure 3.4 montre le principe des MNTs. L avantage de ce mode est qu on peut représenter tout paramètre naturel ; non seulement l altitude, mais aussi la température, la pression de l air ou l hypsométrie, par exemple. Selon [Bo02] la représentation de terrain en MNT est exploité par le modèle 2D1/4, car la 2D1/4 associe une altitude en tout point de la base de données, calculée à partir de celle des points les plus proches. 7 en anglais DEM = Digital Elevation Model
18 CHAPITRE 3. LES BASES 17 Comme la présentation est assez complexe, la structure de données des TIN a besoin d un grand nombre de pointeurs. (cf ). Fig. 3.4 Principes des MNT [Bo02] 3.2 ArcGIS Famille de SIG La société ESRI a été fondée en 1969 par Jack Dangermond et était spécialisée dans le conseil dans le domaine de l occupation du sol. En 1981, ESRI lança son premier logiciel SIG commercial appelé ArcInfo. Dans les années suivantes, ESRI développa un ensemble d outils informatiques qui constituèrent les premiers éléments de ce qu on appelle aujourd hui un SIG (Système d Information Géographique) parmi ceux ArcView. ArcView est un SIG bureautique. En 1999 ESRI a édité une suite de logiciels, qui porte comme nom ArcGIS. L évolution d ArcView à ArcGIS n est pas une mise à jour simple, mais un développement d une toute nouvelle famille de SIG, comme le montre son nouveau nom. ArcInfo est la version la plus complète d ArcGIS et propose également un environnement «workstation». Elle est donc composée de deux logiciels, qui peuvent être installés indépendamment l un de l autre : le «workstation» et l application bureautique «ArcInfo Desktop». ArcInfo Workstation est composé d un module principal «ARC» et de sous-modules lancés à partir d ARC. Il est basé sur le concept de boîte à outils et fait appel à des commandes pour réaliser des tâches (lancées à partir d une fenêtre de type «invite de commandes»). ARC permet d exécuter toutes les tâches générales. ArcInfo Desktop est composé de trois modules avec des fonctionnalités différentes : ArcMap, ArcCatalog et ArcToolbox. Ces applications représentent les fondements méthodologiques et les clefs d accès pour un utilisateur du SIG : Cartes, Données et Outils. ArcGIS inclut toutes les fonctions de l application Arc/INFO, qui était un SIG «command-driven» d ESRI. Pour ceux qui ont commencé à travailler
19 CHAPITRE 3. LES BASES 18 avec Arc/INFO et qui travaillent maintenant avec la nouvelle version d Arc- GIS 8.*, ArcGIS offre encore l interface «command-driven» «Arc» pour taper des commandes. Fig. 3.5 ArcMap ArcMap est l environnement de traitement des données cartographiques et de rédaction de documents cartographiques. Ses fonctions clefs sont la visualisation, la création, l édition, la consultation, l analyse et la mise à jour des données cartographiques ou géographiques. Les informations géographiques s affichent sur une carte sous la forme de couches. Chaque couche représente un type particulier d entités. Une couche ne contient pas de données mais renvoie à une source de données, qui est stockée sur le disque ou ailleurs. ArcCatalog est une application orientée sur les données pour la gestion, la localisation et la navigation dans les données spatiales. Toutes les connexions aux données nécessaires sont y définies. Ces connexions peuvent appeler des dossiers sur disque, des bases de données en réseau ou des serveurs internet «ArcIMS». ArcToolbox est une application pour la mise en œuvre de toutes les opérations de traitement géographique. Elle inclut les fonctionnalités d analyse de données et de conversion de formats. Cette application peut être considérée comme la nouvelle interface de présentation des fonctions de
20 CHAPITRE 3. LES BASES 19 Fig. 3.6 ArcCatalog géotraitement d ArcInfo. Dans l ancien Arc/Info ces fonctions devaient être accédés par une interface «command-driven». Comme mentionné avant ArcGIS offre encore une interface «command-driven», qui s appelle «Arc» dont on accède aux mêmes fonctions en tapant des commandes Stockage des données en ArcGIS Dans les systèmes d information géographiques on ne s intéresse pas seulement aux informations attributaires, qui décrivent un objet et qu on connaît d une base de données traditionnelle, mais aussi à l information géométrique (la forme, la localisation d un objet) et à la topologie d un objet. L information géographique est donc composée d informations géométriques, descriptives et topologiques. Dans les SIG toutes ces informations sont stockées avec un objet. ESRI utilise le terme feature quand il parle d un objet, qui représente une information géographique. Par la suite j utilise le terme «objet», quand je parle des informations géographiques plus générales et «feature» pour parler des objets géographiques explicitement dans ArcGIS. A tout objet stocké dans des SIG sont attachées deux informations : Ce sont des informations attributaires qui décrivent un objet et des informa-
21 CHAPITRE 3. LES BASES 20 tions géométriques. Pour représenter l information géométrique on a besoin d une représentation (l information graphique). «Pour l information graphique, il s agit de le représenter avec pour seule contrainte de rechercher la meilleure lisibilité alliée à une certaine esthétique.»[bo02] Dans les SIG on fait la différence entre les données d informations géographiques et les données de source d image. Pour les données d informations géographiques (des features) ArcGIS offrent trois différents formats de stockage : Des shapefiles, des coverages et des geodatabases. Les shapefiles et les coverages sont basés sur des fichiers (file based feature models). Ils stockent l information géométrique d un feature dans des fichiers binaires et utilisent des identifiants uniques pour lier cette information à l information attributaire d un objet stockée dans une table d un autre fichier. Le geodatabase est un model de SGDB (système de gestion de base de données) 8. Dans ce model les features sont stockés comme des colonnes dans une table de base de données relationnelle. Les colonnes contiennent les coordonnées et l information attributaire d un feature à la fois. Par la suite j explique les différents modes de stockages plus précisément. Shapefile Le shapefile est le format de données natif d ESRI. Parmi tous les formats c est le format de stockage le plus simple, car il ne stocke pas la topologie d une feature. Cela veut dire, qu il n y a aucune information explicite sur les relations spatiales existants entre les objets (cf. coverage pour une définition du terme topologie). C est pour cela qu il s affichent plus vite que les autres formats de stockage. Les informations relatives à un ensemble d entités sont stockées dans une table. Chaque enregistrement correspond à une entité distincte. Ce type de table comporte toujours un champ nommé «Shape» dont la valeur est un élément ayant la forme de l entité correspondante. Cette table contient par ailleurs les attributs décrivant les entités. Le format shapefile est composé de plusieurs fichiers. Il y a au moins trois fichiers associés à un shapefile. Ils ont les extensions «.shp», «.shx» et «.dbf». Le fichier «*.shp» stocke la géométrie de l entité géographique, le fichier «*.shx» l index de la géométrie et le fichier «*.dbf» inclut les données descriptives des entités géographiques. Le dernier est un fichier dbase qui inclut les informations attributaires sous forme de table. Il peut y avoir encore des autres fichiers, qui sont crées quand on fait une spatial join ou qu après avoir effectué une requête (cf. 3.3). La figure 3.7 montre l affichage des shapefiles dans ArcCatalog. 8 en anglais : database management system feature model (DBMS)
22 CHAPITRE 3. LES BASES 21 Fig. 3.7 Les shapefiles Coverage Le coverage est l unité de base de stockage d ARC/INFO. Ce format de stockage est intégré dans ArcGIS à partir de la version 8. La particularité des coverages est qu on stocke explicitement la topologie des objets avec leur information géométrique et attributaire. L intérêt de ce stockage est d accélérer les traitements d analyse spatiale sur de gros jeux de données. La topologie est la relation spatiale entre les objets. Elle définit comment les objets sont liés spatialement entre eux. Elle est utilisée dans l analyse spatiale. Grâce à elle on peut savoir si un polygone est inclus dans un autre par exemple. «Une information topologique est une information invariante par homéomorphisme, qui entre dans une analyse spatiale. C est une information sur le positionnement relatif des objets entre eux, alors que l information géométrique est une information de positionnement absolu lié à un référentiel. L information topologique porte sur la géométrie, mais ne concerne que les propriétés comme le voisinage, l intersection, l inclusion, la connexion, etc.» [Bo02] Les coverages gèrent donc la relation spatiale entre des features. Il y a trois relations topologiques majeures : la connectivité, la définition des surface et la contiguïté. Par la suite j explique comment ces relations sont définies par ESRI. La connectivité exprime les relations entre des arcs et des nœuds et définit la longueur, la direction et la connectivité pour les arcs. Cela signifie que pour un arc donné, on connaît son nœud initial et son nœud final. Les coverages stockent la connectivité en gardant les points d extrémités des arcs. Les arcs qui partagent un nœud sont des arcs connectés (arc-node topology). «Coverages store connectivity by recording the nodes that mark the endpoints of arcs. Arcs that share a node are connected. This is called arc-node topology. Each arc is a connected set of vertices with a from-node and a to-node.» [ESRI02] La définition de surface signifie qu un polygone est défini par les arcs qui l entourent. Elle est garantie, car les coverages stockent tous les arcs connectés qui entourent un polygone (polygon-arc topology).
23 CHAPITRE 3. LES BASES 22 «Coverages define areas by keeping a list of connected arcs from the boundaries of each polygon. This is called polygon-arc topology.» [ESRI02] La contiguïté (ou l adjacence) est la troisième relation topologique. Elle est aussi garantie dans les coverages. D après [OFPU96] la contiguïté est la propriété des espaces attenants, qui se touchent. Elle exprime les relations entre des arcs et des polygones pour lesquels les arcs créent des limites et elle définit la surface et l adjacence. Deux polygones sont donc contigus, s ils ont un arc en commun. Les coverages stockent les identifiants des polygones de tous les cotés des arcs. «Coverages store contiguity by keeping a list of the polygons on the left and right side of each arc. This is called left-right topology.» [ESRI02] La figure 3.8 montre les valeurs stockées avec un feature dans un coverage. Fig. 3.8 Table d attributs d une coverage On voit bien comment la connectivité et la contiguïté sont garanties en stockant les attributs «FNODE#» (nœud initial), «TNODE#» (nœud final) et «LPOLY#» (polygone à gauche) et «RPOLY#» (polygone à droite). Un coverage est composé de plusieurs fichiers. Les données spatiales (position et topologie) sont stockées dans des fichiers. Les données descriptives et certaines informations topologiques sont stockées dans des tables attributaires d entités (FAT = Feature Attribut Table). Ces tables sont au format du SGBDR «INFO» et sont créées quand on calcule la topologie sur la couverture. Elles sont gérées par une base de données d INFO. A part des primary features (objet géographiques) un coverage peut avoir aussi des secondary features suivants : 1. Tics : Ce sont des points de calage, dont on connaît les coordonnées. «Tics are geographic control points. They represent known locations on the ground and are used to register and tranform the coordinates of the coverage.»[esri02] Ils servent à gérer l affichage des coverages. 2. Links : Ce sont des vecteurs utilisés pour ajuster la forme des coverages. «Links are displacement vectors that are used to adjust the shape of coverages,...» [ESRI02] 3. Annotation : Ce sont des chaînes des caractères, qui décrivent un feature affiché sur le display. «Annotation features are text strings that describe a feature when a map os displayed or printed.» [ESRI02]
24 CHAPITRE 3. LES BASES 23 La figure 3.9 montre l affichage des coverages dans ArcCatalog avec leurs primary features et secondary features. On voit bien que tous les coverages incluent des tics, qui représentent les quatre extrémités des features stockées dans un coverage. A part ça on voit que le coverage «contour lac» est constitué d un feature de polygone et d un feature d arc plus des labelpoints, qui identifient chaque polygone individuellement. Fig. 3.9 Les coverage Geodatabase La geodatabase est un nouveau mode de stockage des données qui est sorti en 2000 avec la version 8 d ArcInfo. Une geodatabase permet la gestion des objets avec leurs informations descriptives et géométriques dans une base de données. Une entité du monde réel est représentée par un objet correspondant à un enregistrement dans une table relationnelle. Contrairement à une couverture, le schéma d une geodatabase n est pas prédéfini. L utilisateur peut organiser les objets stockés comme il le souhaite. La structure des tables permettant le stockage des données est propre à ArcGIS. On a besoin soit d ArcInfo, soit d ArcEditor pour faire la gestion. Il existe deux types de geodatabase : la geodatabase personnelle et la geodatabase multi-utilisateurs. Dans la geodatabase personnelle les objets sont stockés comme un fichier «.mdb» de Microsoft Access. Elle est utilisée pour seulement un utilisateur (single user editing). La geodatabase multi-utilisateurs par contre offre la possibilité de l édition multi-utilisateurs grâce au «versioning». La geodatabase de multi-utilsateurs est une base de données gérée dans un système de gestion de base de données (SGBD), comme la nouvelle version ORACLE, MS SQL Server,
25 CHAPITRE 3. LES BASES 24 Informix, ou IBM DB2. On accède aux données par l ArcSDE 9, qui doit être installé avec le SGBD. ArcSDE est le «gateway», ou intermédiaire entre les applications géographiques et le SGBD. ArcSDE est une «[...] passerelle vers le SGBD sousjacent qui ajoute au SGBD plus de performance, d interopérabilité, et de flexibilité dans la gestion d un environnement multi-utilisateurs (versioning, check-out check-in, édition déconnectée,...) ainsi que plus de possibilités de stockage (données raster, objets complexes, API (C, Java).» [FAQ04] La figure 3.10 montre le rôle d ArcSDE pour les clients ArcGIS. Fig Le rôle d ArcSDE Par exemple la geodatabase peut être implémentée avec ArcSDE sur le SGBD Oracle en utilisant le format Oracle Spatial. Selon [ON03] l enregistrement de données vectorielles dans un SGBD lié à ArcSDE n est pas réalisé de façon pratique, car chaque objet vectoriel constitue un enregistrement. Les objets géométriques forment les lignes d une table et les propriétés d un objet (les information descriptives) forment les colonnes attributaires. L une des propriétés est sa géométrie. Une couche vectorielle est donc enregistrée dans une seule table. L enregistrement dépend notamment du SGBD utilisé. Certains offrent la possibilité d enregistrer des données géométriques comme Oracle Spatial. Il offre des types de données déduites à l enregistrement des données spatiales. On y trouve par exemple le type «long raw» accueillant le format «compressed binary» de l ArcSDE, un type binaire de longueur variable. L équivalent chez SQL serveur est appelé «Image». 9 ESRI s Spatial Database Engine
26 CHAPITRE 3. LES BASES 25 On a aussi le type «Oracle Spatial normalized schema», qui «enregistre les coordonnées dans une table dans laquelle chaque enregistrement contient l identifiant de l objet vectoriel et les champs X, Y, Z. L identifiant fait référence à un enregistrement d une autre table contenant les attributs. Cette approche se conforme au modèle géométrique normalisé défini par le standard Simple Features Specifications for SQL.» [ON03] Le type «Oracle Spatial geometry type» d Oracle Spatial est la propriété géométrique d un objet. Elle est stockée comme type SQL avec le nom «SDO GEOMETRY». Une nouveauté dans ce mode de stockage est la possibilité de définir ses propres règles de topologie et de les stocker directement avec des objets dans la geodatabase (voir figures suivantes). On les attribue aux features pour pouvoir garder la consistance géométrique quand on met à jour la géométrie d un feature par exemple. Le figure 3.11 montre l affichage d une geodatabase dans ArcCatalog. Fig La geodatabase Le figure 3.12 montre comment accéder aux données stockées dans des différents modes de stockage.
27 CHAPITRE 3. LES BASES 26 Fig Acces aux données par des applications [EF02] Adaptation Le plate-forme de développement de la famille des applications ArcGIS, tels que ArcMap, ArcCatalog et ArcToolbox, est l ArcObjects. Toutes les commandes, menus ou barres d outil font appel à un code d Arc- Objects pour exécuter une opération. ArcObjects inclut toutes les fonctions accessibles dans les applications. ArcInfo fournit le kit de développement ArcObjects. On peut donc développer des programmes dans l interface de programmation d ArcInfo en utilisant les ArcObjects. Il existe trois types de développement : 1. Personnaliser l environnement dans ArcMap ou ArcCatalog avec VBA (Visual Basic for Application), en développant des macros. VBA est fourni avec le produit. 2. Etendre l architecture d ArcObjects en développant des composants utilisant la norme COM. Pour ce type de développement on peut choisir n importe quel langage de programmation qui supporte la technologie COM, car ArcObjects s appuie sur cette technologie. Ces composants peuvent être ajoutés dans l ArcGIS comme dll Un Dynamic Link Library est intégré dans l application comme nouveau contrôle ou composant.
28 CHAPITRE 3. LES BASES Développer des applications indépendantes en prenant les deux Arc- GIS contrôles ActiveX, qui met ESRI à la disposition : ArcMap Map- Control et ArcMap PageLayout. On peut les intégrer dans son application en utilisant un langage de programmation qui autorise les contrôles ActiveX. ArcMap MapControl et ArcMap PageLayout permettent d avoir le map et le pagelayout display en plus d accéder à beaucoup d ArcObjects. Les modifications faites dans la fenêtre «Personnaliser» ou bien le code écrit en VBA pour personnaliser l interface peuvent être enregistrées en association à un document ArcMap (*.mxd) ou à un modèle (*.mxt). Un modèle est un template qui sert au point de départ pour créer des nouveaux documents. Les sauvegardes sont stockées à divers endroits sur le disque aux trois niveaux possibles de modèle et document ArcMap. L illustration 3.13 montre les différents niveaux, qui sont décrits après. Fig Sauvegarde des personnalisations [ENSG03] Niveau Normal template (Normal.mxt) C est un modèle spécial qui est automatiquement chargé dans ArcMap et qui stocke tous les paramètres personnalisés définis pour l interface utilisateur. Il doivent être chargé à chaque utilisation d ArcMap. Si ce template est supprimé toute l application reprend l état par default. Toute modification apportée au Normal template est répercutée dans tous les modèles et documents.
29 CHAPITRE 3. LES BASES 28 Niveau Project template (*.mxt) Les modifications apportées à un Project template sont répercutées dans tous les documents basés sur ce modèle Niveau Document (*.mxd) Les modifications sont enregistrées dans le document ArcMap courant. Les documents ArcMap sont basés sur un modèle : soit un Project template, soit directement sur le Normal template ArcObjects Comme mentionné avant ArcObjects est l environnement de programmation de la famille ArcGIS. Plus spécifique, ArcObjects est la collection des composants COM qui sont utilisés par les applications d ArcGIS. Arc- Objects contient plus de 1200 objets, qui sont tous programmés en C++ et transformés en code binaire. L illustration 3.14 montre le rôle d ArcObjects dans les applications. Fig Vue simplifiée sur ArcInfo [ESRI00] ESRI a choisi COM comme méthodologie de développement, car cette technologie offre une bonne performance et permet d étendre la fonctionnalité d ArcObjects en utilisant des composants externes. La possibilité de connecter des composants différents est possible grâce au protocole COM. Un composant est une unité binaire de code réutilisable. A cause de cela tous les objets peuvent être réutilisés au niveau binaire. Cela veut dire que les développeurs n ont pas besoin d accéder au code source, ni aux «header files», ni aux libraires objets pour étendre le système. Il suffit de connaître l interface d un objet. Cette programmation basée sur des interfaces est également définie dans le modèle de programmation COM dit «Interfacebased programming».
30 CHAPITRE 3. LES BASES 29 En programmant avec des objets COM, on ne travaille jamais directement avec l objet COM. On y accède en passant par son interface. Les interfaces COM sont un ensemble de fonctions reliés logiquement. Les fonctions sont appelées par le client 11 et implémentés dans l objet. Le client d un objet tient un pointeur sur l interface de cet objet. Ce pointeur est considéré comme un pointeur opaque, car le client ne possède pas de connaissances en implémentation dans un objet et ne peut pas accéder à l état de donnée d un objet. Le client doit communiquer avec l objet en utilisant les fonctions membres de son interface. Comme le client est isolé de l objet et de son implémentation, COM est considéré comme un contrat entre le client et l objet. Si l objet rompt le contrat, on ne sait pas comment le système va réagir. Il faut bien noter que COM est basé sur la confiance entre l implémenteur et l utilisateur d une fonctionnalité. La communication entre les objets est également établie par leurs interfaces. Une interface définit les fonctions abstraites qui sont disponibles dans toutes les instances d une classe qui implémente cette interface. L implémentation des fonctions doit être réalisée dans l implémentation des classes. La façon dont les fonctions d une interface sont implémentées est différente entre les objets. Par conséquent les classes héritent du type d une interface, non son implémentation, qu on appelle «type inheritance». On peut considérer les classes et les interfaces comme le «Quoi» et le «Comment» de COM. Les interfaces définissent tous ce qu un objet peut faire et les classes définissent comment les tâches sont réalisées. Dans les ArcObjects on distingue trois types de classes : les abstract classes, les coclasses, et les classes. Par la suite ces trois types de classes seront définis. Abstract Classes «Elle définit des propriétés générales communes à plusieurs sous-classes. On ne peut pas créer (instancier) d objet avec ce type de classe.» [ENSG03] Elle représente donc une spécification pour les instances des «sous-classes». La classe «Geometry» est un exemple pour une abstract class. On ne peut pas créer un objet de type Geometry, mais on peut bien créer un objet de type Point. Cet objet implémente les interfaces définies dans sa classe de base «Geometry». (voir figure 3.15) 11 l utilisateur de la fonctionnalité
31 CHAPITRE 3. LES BASES 30 Fig Abstract Class : Geometry [ENSG03] CoClasses «Une CoClass 12 est dite creatable : Un objet d une CoClass peut être créé à l aide du mot-clé VBA New.» [ENSG03] COM crée une instance de cette classe et passe l objet résultant au client pour qu il puisse utiliser les fonctions définies dans les interfaces de cette classe. La classe «Point» est un exemple pour une CoClass. : Listing 3.1 Exemple pour une CoClass Dim ppoint as IPoint Set ppoint = New Point Creation o f a p o i n t ppoint.x = 2 We a s s i g n the c o o r d i n a t e s to the p o i n t ppoint. Y = 3 x = 2, y = 3 Classes «Une Class est dite instantiable, mais pas creatable : elle ne peut pas créer directement un nouvel objet. Un objet d une class peut être crée comme propriété d une autre classe ou grâce à une méthode d une autre classe». [ENSG03] Les objets de cette classe sont crées par des autres objets dans ArcObjects et passés au client pour qu il puisse les utiliser. La classe «Feature» par exemple ne peut pas créer directement un nouvel objet. Un objet de cette classe peut être créé grâce à la mèthode «NextFeature» d un objet de la classe «FeatureCursor» pour donner seulement un exemple. «FeatureCursor» permet donc d instancier l objet «Feature». Listing 3.2 Création d une classe Dim pfeaturecursor As IFeatureCursor i n i t i a l i s a t i o n o f the pfeaturecursor Set pfeaturecursor = Nothing Set pfeaturecursor = pfeatureclasspoints. Update ( Nothing, False ) 12 Component Object Class
32 CHAPITRE 3. LES BASES 31 Dim pfeature As IFeature We o b t a i n a p o i n t e r in pfeature p o i n t i n g on the next e n t i t y o f the f e a t u r e c l a s s p o i n ted by pfeaturecursor. Set pfeature = pfeaturecursor. NextFeature Les ArcObject sont visualisés dans les ArcObjects OMD (Object Model Diagrams, foir figure A.1). «Les ArcObjects OMD utilisent la modélisation UML avec quelques variantes afin de pouvoir représenter les spécificités de la norme COM (notamment les interfaces). Ces modifications ajoutent des symboles pour représenter les différents types de propriétés et méthodes, représenter les relations d instantiation et marquer la différence entre abstract classes, coclasses et classes.» [ENSG03] Fig Class Diagram Key Langage de programmation VBA Le langage utilisé dans le cadre de ce projet est Visual Basic for Applications. Par la suite on trouvera un bref aperçu dans ce langage. Quand on programme avec Visual Basic, on a l impression de travailler directement avec l objet, mais en vérité ce n est pas le cas. Visual Basic cache le fait d accéder aux objets par ses interfaces pour simplifier. Le traitement des pointeurs sur les interfaces est réalisé dans la «Visual Basic Virtual Machine» (VBVM) 13. La VBVM est stockée comme DLL, qui doit être installée sur l ordinateur avant l exécution du code Visual Basic. Pour mieux illustrer, ce qui est fait dans la VBVM, ci-dessous un exemple : 13 dite VB Rutime auparavant
33 CHAPITRE 3. LES BASES 32 Listing 3.3 L interface par default Dim p C o l l e c t i o n as New C o l l e c t i o n p C o l l e c t i o n.add Avignon, M o n t p e l l i e r, Fulda On pourrait penser qu un nouvel objet est crée dans la première ligne et passé au développeur dans la variable pcollection. Ensuite on y ajoute des valeurs en appelant la méthode «Add» de la classe Collection. Mais c est faux. La méthode «Add» n appartient pas directement de la classe. Avec Dim pcollection as New Collection on crée une instance (pcollection) de la coclass Collection et on y assigne l interface par default de cet objet. Cette interface s appelle Collection et inclut la méthode Add, qui ajoute les valeurs à l objet. Normalement on ne crée pas des objets dans une seule commande comme montré précédemment, car une coclass peut avoir plusieurs interfaces. Il faut attribuer l interface de la classe qui définit les méthodes qu on veut utiliser explicitement à l objet. Sinon, l objet serait pointé sur l interface IUnknown qui est l interface par default. Voici comment cela se fait : Dim ppoint As IPoint Set ppoint = New Point ppoint. PutCoords 1 0 0, Listing 3.4 L interface IPoint Avec Dim...As on déclare une variable qui pointe sur une interface de la coclass Point (ici : IPoint). La VBVM lit le IID 14 de l interface IPoint de la librairie d objet d ESRI. Dans la deuxième ligne on crée une instance de la coclass Point et au même temps on fait une Query Interface pour récupérer le pointeur sur l interface IPoint dans ppoint. On a donc échangé l interface IUnknow avec l interface IPoint. Ensuite on appelle la méthode PutCoords de la coclass Point. Par convention presque toute classe Classname implémente une interface IClassname. Cette interface est l interface qui est la plus souvent utilisée en programmant avec cet objet. On peut facilement changer l interface en faisant une Query Interface pour pouvoir ensuite utiliser les méthodes définies dans une autre interface. La récupération d un pointeur sur une autre interface est montrée ci-dessous : 14 IID est l abréviation pour Interface Identifier
34 CHAPITRE 3. LES BASES 33 Listing 3.5 Query Interface Dim pfield As I F i e l d Dim pfieldedit As I F i e l d E d i t c r e a t e an i n s t a n c e o f c o c l a s s F i e l d Set pfield = New F i e l d QI f o r I F i e l d E d i t Set pfieldedit = pfield We a c c e s s the members o f I F i e l d E d i t, in order to s p e c i f y the a t t r i b u t e s o f Field, which are normally read only. With pfieldedit. AliasName = FID. Name = FID. Type = ESRIFieldTypeOID End With Souvent des interfaces ont des propriétés qui sont en vérité des pointeurs sur d autres interfaces. Avec VB on peut accéder à ses propriétés en enchaînant des interfaces. Listing 3.6 Enchaînement des interfaces supposing pfeatureclass had been c r e a t e d b e f o r e Dim thalweg As IFeature We a c c e s s the geometry o f the f e a t u r e not o f the f e a t u r e C l a s s! Set thalweg = pfeatureclass. GetFeature ( 0 ). Shape Le code suivant marche également, mais est plus long : Listing 3.7 Même résultat sans l enchaînement supposing pfeatureclass had been c r e a t e d b e f o r e Dim pfeature As IFeature Set pfeature = pfeatureclass. GetFeature ( 0 ) Dim thalweg As IGeometry Set thalweg = pfeature. Shape
35 CHAPITRE 3. LES BASES 34 Curseur Pour récupérer une entité (feature) on prend soit la méthode GetFeature(ID :Long) sur IFeatureClass, qui renvoie juste une valeur (celle spécifié par l ID), soit on utilise un curseur pour parcourir l ensemble des données. «Un curseur est un pointeur qui donne accès à un enregistrement à la fois.[...] Ils sont par exemple très utiles pour lire ou écrire une valeur d attribut. Un Feature Cursor peut être instancié par un SelectionSet (avec la mèthode Search ) qui représente l ensemble des objets sélectionnés pour une couche donnée [...].» [ENSG03] Souvent on n est pas intéressé par tous les enregistrements, mais par ceux, qui partagent une ou plusieurs propriétés. Pour ce cas il est possible d appliquer un filtre au SelectionSet. Il y a deux types de filtres : le Query- Filter 15 et le SpatialFilter. 1. Un QueryFilter est comparable à une requête SQL. Il filtre les objets selon un critère sémantique. Ci-dessous un exemple d un curseur qui filtre ses enregistrements avec un QueryFilter : Listing 3.8 QueryFilter supposing pfeatureclasslp had been c r e a t e d b e f o r e Dim updatefeat As IFeature Dim updatequeryfilter As I Q u e r y F i l t e r update l a b e l p o i n t t a b l e with the c a l c u l a t e d d e n s i t y Set updatequeryfilter = New QueryFilter updatequeryfilter. whereclause = FID= & squareid Set updatefeaturecursor = pfeatureclasslp. Update ( updatequeryfilter, False ) Set updatefeat = updatefeaturecursor. NextFeature 2. «Un SpatialFilter est un QueryFilter qui inclut à la fois des critères spatiaux et sémantiques. Il permet de restreindre la sélection d entités à partir d une couche ou classe d entité selon contraintes géométriques.» [ENSG03]. Comme il est dérivé du QueryFilter, il hérite de ses propriétés et méthodes. Il est donc possible de combiner des critères sémantiques et spatiaux dans un filtre spatial. Le diagramme FIG montre le rapport entre les filtres et les curseurs sur les features. 15 expression adopté d ESRI
36 CHAPITRE 3. LES BASES 35 Fig extrait de Geodatabase, schéma simplifié par [ENSG03] Le filtre spatial qui était mentionné précédemment est une possibilité pour trouver des relations spatiales entre des features. Mais il y en a d autres. Dans la prochaine section je vais expliquer quelles possibilités existent dans ArcGIS pour étudier les relations spatiales entre des géométries. 3.3 Analyse spatiale Une des plus grandes attentes d un utilisateur d un SIG est d analyser les propriétés géométriques des géométries. Il s agit de trouver des relations spatiales entre des objets. ESRI fournit deux possibilités pour l analyse spatiale : le Spatial Filter et les Spatial Operator Interfaces. Bien qu il ait déjà été évoqué dans la section des curseur, je reparle ici du Spatial Filter plus en détail Spatial Filter On utilise le Spatial Filter pour créer une requête spatiale. Pour définir le filtre, on doit spécifier trois propriétés. Ces propriétés sont obligatoires. A part eux, il y en a d autres qu on peut spécifier supplémentairement. Le critère le plus intéressant, c est le critère spatial. Il est comparable à la clause WHERE de SQL. Le critère spatial est spécifié dans la méthode SpatialRel. Toutes les relations spatiales sont définies dans les constantes ESRISpatialRelEnum. Il y en a dix, expliquées dans [AODH03] :
37 CHAPITRE 3. LES BASES 36 Constant Description ESRISpatialRelUndefined No Defined Spatial Relationship. ESRISpatialRelIntersects Query Geometry Intersects Target Geometry. ESRISpatialRelEnvelopeIntersects Envelope 16 of Query Geometry Intersects Envelope of Target Geometry. ESRISpatialRelIndexIntersects Query Geometry Intersects Index entry for Target Geometry (Primary Index Filter). ESRISpatialRelRelTouches Query Geometry Touches Target Geometry. ESRISpatialRelOverlaps Query Geometry Overlaps Target Geometry. ESRISpatialRelCrosses Query Geometry Crosses Target Geometry. ESRISpatialRelWithin Query Geometry is Within Target Geometry. ESRISpatialRelContains Query Geometry Contains Target Geometry. ESRISpatialRelRelation Query geometry IBE(Interior- Boundary-Exterior) relationship with target geometry. En outre on spécifie la géométrie de référence utilisée pour filtrer les entités. C est la géométrie à laquelle le critère spatial est appliqué. En fin il faut transmettre au filtre le nom du champ contenant la géométrie des entités filtrées. Par convention ce champ est appelé «SHAPE». Ci-dessous un exemple d un filtre spatial qui sert à regarder si un point se trouve à l intérieur de la géométrie pfeatureclasshalfs. Listing 3.9 Spatial Filter supposing p F e a t u r e C l asshalfs and pfeature had been c r e a t e d bevore g e t a r e f e r e n c e to the S p a t a l F i l t e r Dim p S i d e S p a t i a l F i l t e r As I S p a t i a l F i l t e r Set p S i d e S p a t i a l F i l t e r = New S p a t i a l F i l t e r s e t t i n g the Geometry, GeometryField and S p a t i a l R e l parameters With p S i d e S p a t i a l F i l t e r Set. Geometry = pfeature. Shape p o i n t f e a t u r e. GeometryField = SHAPE. S p a t i a l R e l = ESRISpatialRelWithin
38 CHAPITRE 3. LES BASES 37 End With e x e c u t e the f i l t e r Dim pfeaturecursorwithin As IFeatureCursor Set pfeaturecursorwithin = Nothing Set pfeaturecursorwithin = pfeatureclasshalfs. Search ( p S i d e S p a t i a l F i l t e r, False ) F e a t u r e c l a s s o f s p l i t t e d polygon Comme mentionné avant le filtre spatial est dérivé du QueryFilter. Il hérite donc de sa propriété WhereClause. Pour limiter les résultats on peut définir la clause WHERE, sinon on spécifie les champs qu il doit renvoyer (propriété SubFields). En limitant le nombre de champs on gagne de performance. Pour s assurer que l index des champs ne change pas, tous les champs seront disponibles, mais seulement ceux dont les noms sont indiqués dans SubFields seront remplis avec des valeurs. On utilise l index quand on veut avoir ou mettre la valeur d un champ au lieu d utiliser son nom. Quand on est en train d éditer les valeurs d une table, il est quand même recommandable de laisser renvoyer tous les champs pour éviter des erreurs en insérant des nouvelles valeurs. Les propriétés WhereClause et SubFields sont optionnelles. Par default le filtre met * comme valeur pour SubFields et revoie tous les champs. Selon [AODH03] il n est pas possible d utiliser order by sous ArcObjects. Si des résultats ordonnés sont désirés, il faut utiliser ITableSort. Une méthode qui permet l utilisation de order by est prévue pour les prochaines releases Spatial Operator Interfaces Ces interfaces sont implémentées par la plupart des coclasses. Elles offrent des importantes opérations spatiales, comme des opérations topologiques, des calculs de distance et des Relational Operators (expliqué ci-dessous). IRelationalOperator Certaines géometrie-coclasses implémentent l interface IRelationalOperator qui permet d étudier les relations spatiales entre deux géométries. Cette interface fournit des méthodes (des Relational Operators 17 ), qui comparent les géométries et renvoient des booléens, indiquant si la relation demandée existe ou pas. Les cocloasses Point, Multipoint, Polygone, Polyline, Envelope et GeometryBag implémentent cette interface et permettent d utiliser les Relational Operators. On ne peut prendre seulement les géométries qui 17 expression adoptée d ESRI
39 CHAPITRE 3. LES BASES 38 implémentent l interface IRelationalOperator. FIG montre tous les méthodes existants dans IRelationalOperator. Fig L interface IRelationalOperator, [AODH03] Souvent on veut réaliser une requête par rapport à la géométrie d un ensemble d objet. On pourrait appliquer un filtre spatial pour chaque objet de référence successivement. Dans ce cas on perd des performances, car il faudrait parcourir une boucle sur tous les features plusieurs fois. [ENSG03] propose une autre méthode qui est beaucoup plus performante quand il s agit d une grande quantité d entités. Le propos est de construire une seule «géométrie» à partir des géométries de référence et d appliquer le filtre spatial une seule fois à l ensemble des entités. On crée une geometry bag, qui contient des références aux géométries d entrée. Cela se fait à l aide d une énumération de géométries. L exemple suivant montre, comment construire une seule «géométrie» à partir des géométries de la FeatureClass «basefeatureclass» qui se trouvent dans la zone littorale. Listing 3.10 Construction d une géométrie à partir de plusieurs géométries Enumeration Dim penumgeom As IEnumGeometry Set penumgeom = New EnumFeatureGeometry Dim pqueryfilter As I Q u e r y F i l t e r Dim penumgeometrybind As IEnumGeometryBind QI bet ween IEnumGeometryBind and IEnumGeometry Set penumgeometrybind = penumgeom Dim pgeomfactory As IGeometryFactory Dim pgeom As IGeometry Dim prelop As I R e l a t i o n a l O p e r a t o r Output F i l t e r to b u i l d the geometry Set pqueryfilter = New QueryFilter S e t t i n g the WhereClause
40 CHAPITRE 3. LES BASES 39 pqueryfilter. whereclause = zone = l i t t o r a l Bind a l l geometries o f basefeatureclass which comply the where c l a u s e to the enumeration. penumgeometrybind. BindGeometrySource pqueryfilter, basefeatureclass Set pgeomfactory = New GeometryEnvironment c r e a t i o n o f a geometry bag c o n t a i n i n g r e f e r e n c e s to geometries ; returned by the input geometry enumerator Set pgeom = pgeomfactory. CreateGeometryFromEnumerator (penumgeom) Set prelop = pgeom Ensuite on utilise l interface IRelationalOperator pour regarder si un point se trouve à l intérieur de la géométrie créée auparavant. Listing 3.11 Relational Operator R e l a t i o n a l Operator I f ( prelop. Contains ( pointfeature. Shape ) ) Then MsgBox Point e s t dans l a zone l i t t o r a l Else MsgBox Point n e s t pas dans l a zone l i t t o r a l End I f IProximityOperator «IProximiyOperator permet de trouver le point le plus proche d un point donné sur une géométrie, ou de calculer la distance entre deux géométries existantes.» [ENSG03] L interface est implémentée par les coclasses Point, Multipoint, Polygone, Polyline, Envelope, ainsi que par les sous-classes de Segment. La figure FIG montre l interface IProximiyOperator. Ces méthodes peuvent être très utiles pour étudier un réseau d ordinateurs. Par exemple si on veut connaître le «switch» le plus proche d un ordinateur pour le connecter sur un réseau existant. L ordinateur correspond au point donné et le câble de réseau correspond à la géométrie (une polyligne). On en déduit alors le nœd le plus proche sur une polyligne. Les Proximity Operators pourraient aussi être utile lorsqu on veut connecter des ordinateurs sans connaître comment agencer les câbles. On utilise l interface pour trouver les distances les plus courtes entre les ordinateurs.
41 CHAPITRE 3. LES BASES 40 Fig L interface IProximiyOperator, [AODH03] Pour calculer la distance la méthode returndistance(other : IGeometry) calcule la distance la plus courte entre les géométries en se servant du théorème de Pythagore comme montré dans la figure FIG La figure FIG montre comment marche la méthode ReturnNearest- Point. Fig Calculs de distance [AODH03]
42 CHAPITRE 3. LES BASES 41 Fig Méthode : ReturnNearestPoint [AODH03] ITopologicalOperator Cette interface est implémentée par les coclasses Point, Multipoint, Polygone, Polyline et GeometryBag. Les opérations topologiques permettent de construire des nouvelles géométries basées sur des relations topologiques entres des géométries existantes (comme l intersection ou l union). «Ils permettent de disposer d objets mieux adaptés aux critères d analyse et de définir de nouveaux objets d étude pour les affiner et les approfondir.[...]la génération d objet peut aussi être utilisée pour élaborer des objets de sélection plus ciblée. C est le cas par exemple des outils dits buffer ou zone tampon.» [Bo02] Il est important d indiquer ici que ces opérations ne s appliquent que sur les géométries topologiques consistantes, dite «simple». Voici un extrait de [AODH03] qui explique quand une géométrie est topologique consistante. «For Point Collections, this means that all duplicate Points (Points with the same X and Y coordinates) are removed (unless they are attribute aware and have different attributes). For Segment Collections, this means that all duplicate Segments are removed, all Crossing Segments are split into non-crossing segments (The crossing point becomes a vertex for all of the connected segments), all overlapping segments are broken into non-overlapping segments (the overlap becomes a new Segment), and all non-connected Paths are connected. For Polygons, this means that all overlapping Rings are split into non-overlapping Rings, all Exterior and Interior Rings have the proper orientation, and all non-closed Rings are closed.» [AODH03] L interface ITopologicalOperator offre des méthodes pour vérifier si une géométrie est simple ou pas. Si elle ne l est pas, on peut la modifier pour qu elle soit topologiquement correcte avec la méthode simplify. La figure FIG montre ce qui se passe quand une géométrie est «simplifiée».
43 CHAPITRE 3. LES BASES 42 Fig Méthode : Simplify de ITopologicalOperator, [AODH03] Ci-dessous un exemple d une opération topologique. Dans cet exemple le premier feature est coupé en deux morceaux (deux géométries) selon une ligne.
44 CHAPITRE 3. LES BASES 43 Listing 3.12 Opération topologique supposing f e a t r e c l a s s e s had been c r e a t e d b e f o r e d e c l a r e v a r i a b l e s Dim l i n e F e a t u r e As IFeature Dim p P o l y l i n e As I P o l y l i n e Dim polyfeeature As IFeature Dim leftgeom As IGeometry Dim rightgeom As IGeometry Dim ptopologicaloperator As ITopologicalOperator Dim pgeometry As IGeometry perfom the s p l i t t i n g o p e r a t i o n Set polyfeeature = pfeatureclasspolygons. GetFeature ( 0 ) Set l i n e F e a t u r e = pfeatureclasslines. GetFeature ( 0 ) Set pgeometry = polyfeeature. Shape Set ptopologicaloperator = pgeometry Set p P o l y l i n e = l i n e F e a t u r e. Shape On Error GoTo ErrorHandler ptopologicaloperator. Cut ppolyline, leftgeom, rightgeom La figure FIG montre la liste complète des opérations topologiques possibles. Fig L interface ITopologicalOperator [AODH03]
45 CHAPITRE 3. LES BASES Les algorithmes d interpolation existants dans ArcGIS L interpolation prédit des valeurs des cellules d un raster à partir d un nombre limité de points d échantillonnages. Plusieurs méthodes sont disponibles pour créer des rasters à partir de données ponctuelles. Pour savoir quelle méthode convient le mieux il faut regarder le phénomène à modéliser et la répartition des points d échantillonnage. Il y a quatre algorithmes d interpolation implémentés dans ArcGIS : 1. IDW 2. Spline 3. Kriging 4. Natural Neighbour Tous ces algorithmes d interpolation existant dans le SIG prennent l orientation horizontale et verticale comme base. Ils calculent les distances dans un système de coordonnées orthogonales et interpolent les valeurs en prenant les distances linéaires. On appelle cela l interpolation linéaire. Dans l outil ArcGIS ces algorithmes sont utilisés pour créer des rasters ou des TINs par exemple (cf parties mode raster et mode tin). Dans le cas d un échantillon irrégulier l interpolation sert à calculer des points intermédiaires ne faisant pas partie des échantillons de départ. L algorithme IDW (Inverse Distance Weighted) suppose que le poids des points voisins diminue en fonction de la distance. Dans ArcMap il y a trois paramètres accessibles : Il faut spécifier soit le nombre de points voisins qui seront utilisés pour calculer la valeur d un point, soit un tampon 18 dans lequel on devra chercher tous les voisins. Ayant spécifié un rayon de recherche, un cercle autour de chaque point sera créé dans lequel on retrouvera les points servant à l interpolation. L implémentation de l IDW permet également de choisir une barrière limitant la recherche de points d échantillonnage en entrée. Cette barrière est un jeu de données polylignes qui pourrait représenter une falaise, une côte d eau, une crête ou toute autre interruption du paysage. En outre il faut choisir la puissance (p), qui indique l influence des points voisins. Une puissance faible donne davantage d influence aux points plus éloignés, ce qui offre une surface plus lisse. Plus p augmente, plus le poids des points éloignés diminue et les points voisins déterminent alors la valeur interpolée. C est pour ça que cet algorithme est appelé «Algorithme d Inverse Pondéré de la Distance». «IDW estimates cell values by averaging the values of sample data points in the vicinity of each cell. The closer a point is to the center of the cell being 18 buffer en anglais
46 CHAPITRE 3. LES BASES 45 estimated, the more influence, or weight, it has in the averaging process. This method assumes that the variable being mapped decreases in influence with distance from its sampled location.» [ESW04] Voici la formule de l algorithme d IDW : z(x) = ni=0 ( 1 d i ) p z(i) ni=0 ( 1 d i ) p (3.1) avec : z(x) : la valeur du point x à interpoler n : nombre de valeurs mesurées z(i) : valeur mesurée du point i d i : la distance du point x au point i p : puissance La Spline est un algorithme qui effectue une interpolation polynomiale par morceaux. L algorithme minimise la courbure de la relation tout en s assurant que chaque point donné conserve sa valeur. La courbe (la spline) peut changer de forme aux points (x i, y i ), appelés nœuds. Il existe des splines linéaires (des polynômes de degré 1), des splines quadratiques (des polynômes de degré 2) et des splines cubiques (des polynômes de degré 3). La méthode est appropriée si les variations spatiales de la variable sont relativement faibles (sinon surestimation). Le kriging (=le krigeage) est basé sur des techniques de géostatistique pour calculer l autocorrélation entre les points de mesure. Il utilise à la fois l éloignement et la variance des valeurs représentées. Selon [Co04] le krigeage se distingue des autres méthodes d interpolation par ses caractéristiques d estimation non biaisée et d estimation d une variance associée. L avantage de cette méthode est qu elle prend en compte le comportement spatial spécifique de la variable étudiée. En théorie cette méthode est optimale du point de vue de la précision obtenue. En pratique, les performances sont liées au choix judicieux de divers paramètres qui dépendent de la répartition des points de mesure. De plus, cet algorithme peut impliquer des grandes puissances de calcul. Le Natural Neighbour (= l algorithme par plus proche voisin) est une méthode géométrique qui consiste à générer autour de chaque point une région de voisinage. Elle permet une approche par objet selon les diagrammes de Voronoi sans dépassement des points originaux. La région entourant un point du semi initial est dite région de Voronoi. Cette méthode regarde les pentes et calcule les distances en tenant compte du relief de la surface.
47 Chapitre 4 Les concepts de la solution Comme mentionné en haut le SIG offre des possibilités d interpoler des données ponctuelles avec des différents algorithmes d interpolation pour créer des cartes montrant une répartition régulière de l attribut d entrée. Comme paramétrage on peut spécifier tous les compléments déterminatifs de l algorithme choisi. Prenons par exemple le IDW on spécifie soit le nombre de valeurs d influence i soit la distance maximale d, dont on doit chercher les valeurs d influence et la puissance p. Comme option on peut en outre choisir une polyligne comme limite géographique. Si on précise cette frontière, l algorithme va calculer toutes les valeurs incluses dans cette région et pas les valeurs en dehors. Comme sortie il va créer un raster, dont on peut choisir la résolution (= taille des pixels). La possibilité de choisir une limite correspond en général à la demande du commanditaire de calculer la densité pour chaque habitat. On pourrait créer des lignes représentant les limites de chaque zone et calculer la densité dans chaque zone délimitée par la ligne correspondante. Mais la grande faiblesse de l implémentation des algorithmes d interpolation dans ArcGIS est, qu elle ne prend pas en compte les caractéristiques naturelles des objets examinés, qui peuvent nécessiter une autre orientation. Ici, la bathymétrie du lac est la caractéristique naturelle. La bathymétrie représente la topographie du sol. Elle est le facteur écologique déterminant la répartition spatiale du peuplement piscicole. Elle détermine les zones d habitat, car les habitats sont dépendants des profondeurs. La bathymétrie détermine l écoulement de l eau. L écoulement s oriente depuis les zones peu profondes vers les zones plus profondes. La ligne de convergence des lignes des plus grandes pentes, suivant laquelle se dirigent les eaux, s appelle le thalweg du lac. Par la suite, j appellerai la forme du thalweg l orientation curviligne du lac. De plus l interpolation dans le SIG ne marche pas bien pour un faible nombre de données d entrée. En ce qui concerne la capture des «vrais» poissons (les données filets) on n a que trente valeurs de mesures, dont seulement dix 46
48 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION 47 pour chaque zone. L illustration 4.1 montre la carte créée en interpolant les densités de poissons à partir des données filets avec l algorithme IDW standard d ArcGIS. On voit que les valeurs sont interpolées linéairement sans prendre en compte l orientation curviligne du lac. En plus il y a des espaces dans la partie en bas où le lac est plus courbé et où il y a moins de valeurs de mesures. Fig. 4.1 Algorithme d interpolation standard A cause des limites de paramétrage des fonctionnalités d interpolation existantes, ces algorithmes ne sont pas assez puissants ou «intelligents» pour pouvoir les appliquer à la problématique traitée dans ce projet. C est pour cela, qu il faut trouver une méthode d interpolation qui prend en compte les facteurs écologiques déterminant la répartition des poissons. L intérêt est de développer une méthode d interpolation spatiale qui prend
49 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION 48 comme base l orientation curviligne du lac pour pouvoir calculer la densité. 4.1 Calcul des densités Pour pouvoir calculer la densité de poisson il faut connaître la zone attenante d un filet posé, car un filet ne représente pas un volume a priori. Cette zone attenante pourrait être considérée comme le volume échantillonné à l endroit où le filet était posé. Le commanditaire m a proposé un mètre de «déplacement latéral» pour chaque heure de pose : Un filet de deux mètres de largeur posé pendant 24 heures peut être assimilé à une surface de 2m 24 = 48m 2. Comme tous les filets ont à peu près la même taille et qu il y a toujours une chaîne de sept filets posée à un endroit dans le lac, on peut dire qu une pose correspond au volume attenant de 48m 2 7 profondeur[m]. La profondeur dépend de l endroit où le filet a été posé. On suppose qu un filet posé à un endroit spécifique capture tous les poissons qui se trouvent dans le volume spécifié en haut. 4.2 Traitement des données dans le SIG D abord il faut construire la bathymétrie du lac à partir des relevés GPS / écho-sondeur et à partir du périmètre du lac qui a été créé par M. Heintz [HE02], un ancien étudiant du Mastère SILAT, qui a déjà travaillé sur ce lac avec des données des campagnes précédentes. Malheureusement on ne dispose pas de carte IGN 1 que l on pourrait scanner et géoréférencer. La bathymétrie permet d avoir le périmètre et les profondeurs du lac et d analyser les pentes. Il faut donc préparer les données GPS et les passer comme entrée au SIG. Il faut savoir que les relevés GPS et écho-sondeur sont asynchrones, car un point GPS est relevé toutes les deux secondes environ et l écho-sondeur par contre fait 2 ou 3 tirs par seconde. Par conséquent il y a plusieurs valeurs de profondeur pour chaque point GPS. Il faut donc assigner une valeur unique de profondeur à chaque relevé en (x, y). Le commanditaire m a demandé de prendre la valeur de profondeur minimal de toutes les valeurs de profondeur pour un point GPS. Un point GPS est exprimé en degrés et minutes. La latitude 46,2587 par exemple, signifie qu on est à 46 degrés, 25 minutes et 87 centièmes de minute de latitude. L erreur de précision du GPS est de 20 mètres, car la sensibilité est de 1/100e de minute de longitude (= 18,52 m) et de 1/100e de minute de 1 cartes officielles en France
50 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION 49 latitude (= 12,85 m). Une minute de latitude pour Eguzon correspond à 1285 mètres. Elle varie selon la longitude du point (1852 m à l équateur, 0 m au pôle Nord, 1285 m pour Eguzon). La longitude ne change pas quelle que soit la position du point. Une minute de longitude correspond toujours à 1852 mètres. Une fois créé le TIN on peut le transformer dans une grille, qui permet d avoir une autre représentation de l altitude du lac. Ensuite il faut trouver un moyen pour construire le thalweg à partir du MNT. Après avoir construit cette ligne, dans une prochaine étape on pose les filets au bon endroit du lac. On se sert d un fichier Excel qui contient toutes les poses avec des informations des habitats où les filets étaient posés (voir plus bas pour la classification sur les différents habitats). On a aussi des informations géographiques des filets, mais qui ne sont pas détaillées. Il manque les coordonnées des filets. En plus on a des cartes non digitalisées qui indiquent les endroits où les filets ont été posés. Il faut donc trouver une possibilité pour positionner les filets d une manière automatique (en générant les coordonnées des filets) ou de les poser à la main en regardant les cartes et en prenant l information géographique qui est stockée dans le fichier Excel. Lorsque les données seront rentrées dans le SIG on arrivera à avoir des objets géographiques représentant des filets (ou plutôt des poses) posés dans un modèle numérique de terrain, qui ont comme attribut d abord seulement le poids en gramme. 4.3 Le système de coordonnées curvilignes La clé de tout calcul suivant est le thalweg. Cette ligne de convergence des plus grandes pentes représente l axe de référence. On la considère comme le nouvel axe X dans le système de coordonnées curvilignes. X représente les points kilométriques selon le thalweg. On décide de rester dans un système de coordonnées orthogonales. L axe Ỹ est donc la perpendiculaire de tout point sur la ligne de thalweg. Il s agit de transformer les coordonnées (x, y) des données filets dans un nouveau système de coordonnées basé sur les axes X et Ỹ. Ci-dessous sera expliqué comment transformer un point (x, y) dans ce système de coordonnées curvilignes. x est la distance curviligne du point (x, y) à partir du point zéro. Le point zéro dans ce système de coordonnées est l extrémité sud du thalweg. On calcule alors la distance du point (x, y) selon le thalweg. ỹ est la distance du point (x, y) la plus courte du thalweg. C est la distance entre le point (x, y) et le thalweg le long de la perpendiculaire à ce dernier. Pour distinguer les points se trouvant à gauche du thalweg et ceux à la droite, on dit que tous les points à gauche du thalweg seront notés
51 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION 50 négativement et les points coté droite seront notés positivement. Avec les coordonnées curvilignes x et ỹ, on peut se servir du théorème de Pythagore pour calculer les distances curvilignes d : d = ( x 1 x 2 ) 2 + (ỹ 1 ỹ 2 ) 2 (4.1) avec : d : la distance du point ( x 1, ỹ 1 ) au point ( x 2, ỹ 2 ) x : valeur du point sur l axe de base dans le système de coordonnées curvilignes ỹ : valeur du point sur la perpendiculaire de l axe X Les figures ci-dessous montrent deux points P1 et P2 projetés dans le système de coordonnées conventionnel et dans le système de coordonnées curvilignes. On voit comment les distances d et d diffèrent. Fig. 4.2 Système de coordonnées conventionnel
52 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION 51 Fig. 4.3 Système de coordonnées curvilignes 4.4 Implémentation de l algorithme Après avoir réalisé les étapes précédentes, les données sont prêtes pour l interpolation. On a tout ce qu il faut : le x et ỹ pour pouvoir calculer les distances curvilignes, la bathymétrie du lac plus le poids pour calculer la densité piscicole. Il reste à implémenter l algorithme d interpolation. Pour l instant on ne sait pas encore quel algorithme convient le mieux à cette problématique. Dans le cadre de ce projet il ne s agissait que d en implémenter un qu on peut échanger par un autre plus tard. Par conséquent les données doivent être mises dans une forme générale qui permettra de remplacer l algorithme. Ultérieurement j ai choisi d implémenter l IDW, car c était le plus simple à implémenter. Comme valeurs d entrée on dispose des valeurs de mesures. Mais il faut aussi avoir des points régulièrement répartis, dont les valeurs seront celles des densités interpolées. Ces points représentent le raster d interpolation. En créant ce raster, il faut faire un compromis entre une grande résolution d affichage qui amène un grand temps de calcul à cause du grand nombre de valeurs d entrée et un court temps de calcul avec une résolution plus faible. L algorithme calcule les densités et affiche les résultats avec des couleurs différentes.
53 CHAPITRE 4. LES CONCEPTS DE LA SOLUTION Résumé Selon les étapes décrites en haut, on parvient à la procédure suivante : 1. Construire le MNT 2. Créer le thalweg 3. Créer les trois zones (littorale, sublittorale et centrale) 4. Préparer les données filets à partir des tableaux Excel 5. Poser les filets sur l écran 6. Calculer leurs coordonnées curvilignes 7. Calculer leurs densités 8. Créer le raster d interpolation 9. Calculer les distances curvilignes 10. Implémenter l algorithme d interpolation et le lancer 11. Affichage des résultats dans des couleurs différentes
54 Chapitre 5 Mise en pratique La mise en pratique consiste en trois phases. C est tout d abord la phase de traitement des données, ensuite la phase d entrée des données dans le SIG en utilisant les fonctionnalités existantes et enfin la phase de calcul des données. On pourrait y ajouter une quatrième phase qui est celle de l analyse des cartes de résultat, mais qui ne fait pas partie de ce travail, car c est seul le commanditaire qui sait bien interpréter les résultats. 5.1 Traitement des données On dispose de trois jeux de données d entrée : les points GPS (données GPS), les poissons capturés dans environ 30 filets (données filets) et les poissons détectés par écho-sondeur (données acoustiques). Toutes les données sont fournies sous forme de fichiers Excel. Pour faciliter la préparation des données, elles sont traitées sous Access Données GPS Comme mentionné avant, il y a plusieurs valeurs de profondeur pour chaque point GPS. Il faut donc assigner une valeur unique de profondeur à chaque relevé en (x, y). Comme le commanditaire a demandé de prendre la valeur de profondeur minimale pour un point GPS, on la calcule avec la requête SQL suivante : Listing 5.1 Requête : Profondeur minimale SELECT GPS. l a t i t u d e, GPS. longitude, Min(GPS. profondeur ) As profondeur FROM GPS GROUP BY GPS. l a t i t u d e, GPS. l o n g i t u d e ; 53
55 CHAPITRE 5. MISE EN PRATIQUE 54 Il reste 4280 enregistrements. Comme la côte d eau était à 200 mètres NGF 1 quand les échantillons étaient pris et la côte sur la carte IGN à 202 mètres NGF, il faut ajuster la côte d eau de la campagne de pêche à celle de la carte. Même si on n utilise pas la carte IGN pour notre modèle numérique du lac, c est important, car on travaille avec le contour du lac créé par M. Heintz, qui est basée sur ce niveau d eau. On ajoute donc 2 mètres à toutes les valeurs de profondeur. ArcGIS permet l entrée de données sous forme de table dbase. Il faut par conséquent sauvegarder la table avec l extension «.db» Données filets On dispose d un jeu de données correspondant aux captures de «vrais» poissons dans environ 30 filets, disposés dans trois zones du lac. Il y avait 1722 poissons capturés. Chaque poisson est stocké comme un enregistrement dans un tableau Excel. Pour 361 poissons on n a pas de poids indiqué. Le commanditaire a proposé une formule de calcul selon celle on peut calculer les poids manquants : p = l3 1, (5.1) avec : p : poids du poisson en gramme l : longueur du poisson en cm Cette formule est implémentée dans la requête SQL suivante. Il faut tenir compte que la longueur était donnée en millimètres. Listing 5.2 Requête : Calcul de poids UPDATE p o i s s o n s SET Poids = Format ( ( ( [ p o i s s o n s ]. [ l t ] / 1 0 ) ( [ p o i s s o n s ]. [ l t ] / 1 0 ) ( [ p o i s s o n s ]. [ l t ] / 1 0 ) ) /100, 0 ) WHERE p o i s s o n s. Poids = 0 ; Dans la table il y avait en outre 77 enregistrements où il n y avait ni poids ni longueur indiquée. Il fallait les supprimer. Comme on veut interpoler la densité piscicole d un filet et que chaque enregistrement correspond à un seul poisson, il faut rassembler tous les poissons capturés dans un filet et calculer le poids total de chaque filet (cf. Listing 5.3). 1 Niveau Général Français de Il détermine l altitude de chaque point du territoire Français, par rapport au niveau zéro de la mer.
56 CHAPITRE 5. MISE EN PRATIQUE 55 Un filet est caractérisé par son identifiant (attribut «N pose»), sa longueur (attribut «Longueur»), la profondeur du lac (attribut «Hauteur»), l habitat piscicole (attribut «Habitat») et l endroit sur le lac où il était posé (attribut «Station»). Listing 5.3 Requête : Calcul du poids total SELECT p o i s s o n s. [ N pose ], p o i s s o n s. Station, p o i s s o n s. Habitat, p o i s s o n s. Longueur, p o i s s o n s. Hauteur, Count( ) AS [ N p o i s s o n s ], Sum( p o i s s o n s. Poids ) AS [ Poids t o t a l ] FROM p o i s s o n s GROUP BY p o i s s o n s. [ N pose ], p o i s s o n s. Station, p o i s s o n s. Habitat, p o i s s o n s. Longueur, p o i s s o n s. Hauteur ; Il y a toujours une chaîne de sept filets posée à un endroit dans le lac. Cela signifie qu on a sept enregistrements de filet dans la table de sortie de la requête précédente avec la même valeur indiquée dans le champ «Station». On cherche de traiter chaque chaîne de sept filet comme une seule pose. On groupe donc toujours sept filet, qui ont le même identifiant (attribut «N filet»). Ce groupement est réalisé avec la requête SQL suivante : Listing 5.4 Requête : Groupement des filets SELECT p o i s s o n s. [ N f i l e t ], p o i s s o n s. Station, p o i s s o n s. Habitat, p o i s s o n s. Hauteur, Count( ) AS [ N p o i s s o n s ], Sum( p o i s s o n s. Poids ) AS [ Poids t o t a l ] FROM p o i s s o n s GROUP BY p o i s s o n s. [ N f i l e t ], p o i s s o n s. Station, p o i s s o n s. Habitat, p o i s s o n s. Hauteur ; On obtient 28 poses avec leur poids de poissons échantillonnés, situées dans des habitats différents. Pour pouvoir calculer la densité dans la phase de programmation, il faut ajouter à tout enregistrement un champ indiquant la surface attenante, qui est égale à 336m 2 (48m 2 7, cf ) pour tous les filets Données acoustiques Les données acoustiques se présentent sous forme d un tableau Excel contenant près de points de mesure. L écho-sondeur est localisé par GPS et rend compte de la réponse acoustique. Pour chaque poisson détecté, on connaît ses coordonnées x et y plus z (x et y donnés par GPS, et z étant la profondeur du fond du lac à l endroit où le poisson a été détecté par
57 CHAPITRE 5. MISE EN PRATIQUE 56 l écho-sondeur). Pour chaque «poissons», on connaît son poids estimé, ce qui doit permettre d établir des cartographies de la densité piscicole estimée par l échosondage. Comme pour les points GPS, il y avait plusieurs tirs pour un point. Mais au lieu de calculer la moyenne, le commanditaire a demandé de calculer le total de la biomasse détectée pour un point, car chaque enregistrement dans le tableau correspond à un poisson spécifique et plusieurs poissons peuvent être sondés à un point x, y dans le lac. On calcule le poids total plus la profondeur moyenne pour ce point avec la requête SQL ci-dessous : Listing 5.5 Requête : Poids total plus profondeur moyenne SELECT [ C o m p i l t o u t f c ]. [ l o n g i t u d e ], [ C o m p i l t o u t f c ]. [ l a t i t u d e ], Sum( [ C o m p i l t o u t f c ]. [ poids ] ) AS p o i d s t o t, Count( ) AS No poiss, Round(Avg( [ C o m p i l t o u t f c ]. [ profondeur ] ), 3 ) AS profondeur FROM C o m p i l t o u t f c GROUP BY [ C o m p i l t o u t f c ]. [ l o n g i t u d e ], [ C o m p i l t o u t f c ]. [ l a t i t u d e ] ; Après avoir obtenu les cartographies résultantes des densités, on voyait que le poids n était pas bien calculé. Comme le bateau est passé plusieurs fois à un endroit dans le lac et comme les poissons détectés les autres fois peuvent être les mêmes que ceux détectés auparavant, il ne faut pas prendre le total de poids à un point, mais le total divisé par le nombre de visites. Il s agissait donc de recalculer le poids, à partir des données GPS : Listing 5.6 Recalcule le poids SELECT a c o u s t i q u e. longitude, a c o u s t i q u e. l a t i t u d e, Round ( ( a c o u s t i q u e. p o i d s t o t / Nb visites GPS. no), 3 ) AS p o i d s t o t, a c o u s t i q u e. No poiss, a c o u s t i q u e. dens g m3, a c o u s t i q u e. dens kg ha, a c o u s t i q u e. profondeur, a c o u s t i q u e. id, a c o u s t i q u e. surface m2 FROM acoustique, Nb visites GPS WHERE ( ( ( Nb visites GPS. l a t i t u d e )= [ a c o u s t i q u e ]. [ l a t i t u d e ] ) AND ( ( Nb visites GPS. l o n g i t u d e )= [ a c o u s t i q u e ]. [ l o n g i t u d e ] ) ) ; On supprime les enregistrements de ce jeu de données qui n ont ni latitude, ni longitude, ni poids. On obtient à la fin 2555 points (x, y) avec leurs
58 CHAPITRE 5. MISE EN PRATIQUE 57 poids piscicoles détectés. Comme pour les poissons capturés dans les filets, il faut aussi assigner la surface attenante à tous les points x, y. Il se pose la question de savoir quelle est la surface attenante à un point GPS. Comme mentionné avant, un point GPS est exprimé en degrés, minutes et centièmes de minute et les mesures sont faites à un centième de minute prés, ce qui correspond sur le terrain à environ mètres en longitude et à environ mètres de latitude. On en conclut que la surface attenante est comparable à un rectangle de 18, 52m 12, 86m = 237, 982m 2. On stocke cette valeur dans un nouveau champ «surface m2». La densité sera calculée à partir du poids et de la surface attenante. 5.2 Importation dans le SIG Il est possible de créer des points sur la carte d un document d ArcMap à partir de données tabulaires décrivant des emplacements géographiques sous forme de coordonnées x, y. La table importée doit contenir au moins deux champs, l un contenant la latitude x, l autre la longitude y dans un système de coordonnées défini. La couche de points créée se comporte cartographiquement comme une autre couche. Mais pour traiter ces données comme des features il est nécessaire d exporter la couche vers un fichier de forme (un shapefile, par exemple) ou une classe d entités. Pour les données GPS cela signifie, qu on les crée simplement en important la table dbase dans ArcMap. En observant les points importés avec le contour du lac créé par M. Heintz, on voit que quelques-uns se trouvent en dehors du contour. Il faut savoir, si on garde le contour, on efface tous les points se trouvant en dehors du contour ou si on modifie le contour pour englober tous les points. Selon la réponse du commanditaire les points GPS sont plus précis que le contour. En comparant le scan du lac avec le nuage de points GPS on retrouve avec une certaine précision sur le semis de points GPS les formes caractéristiques du lac. Il s agit bien de privilégier ces formes caractéristiques, puisque ce sont elles qui intéressent les chercheurs pour l interprétation des peuplements de poissons. Il faut donc modifier le contour manuellement pour que tous les points aillent dans le contour (sauf ceux qui sont isolés et visiblement aberrants). La modification du contour résulte finalement d un compromis entre l exactitude du modèle de M. Heintz et la réalité des points GPS. (cf. Figure 5.1) Comme les chercheurs ne pouvaient pas aller dans la zone de faible profondeur en bateau, il y a très peu de points GPS dans la zone littorale. En outre, il manque des points avec une profondeur égale à zéro juste au bord du rivage. Par conséquent j ai choisi de générer des points avec une profondeur de zéro sur la ligne zéro qui est représentée par le contour du lac pour avoir des meilleurs résultats dans l interpolation. Le script «shapes2points» pro-
59 CHAPITRE 5. MISE EN PRATIQUE 58 Fig. 5.1 Points GPS grammé par Dan Rathert offre la possibilité de générer des points à partir d une polyligne. Il stocke les vertex de la ligne avec leurs coordonnées x, y dans un fichier texte ASCII. Après avoir créé ce fichier, on doit le convertir dans une table dbase pour pouvoir ensuite l importer dans ArcMap. Grâce à cette méthode on obtient 500 points en plus, qu on peut ajouter aux points GPS mesurés.
60 CHAPITRE 5. MISE EN PRATIQUE 59 Les points importés à partir d un fichier ou d une table n ont pas de référence spatiale spécifiée à priori. Ils seront projetés dans le même système de coordonnées que celui du bloc de données dans ArcMap. ArcMap fait un changement de projection «à la volée» (les données ne sont pas modifiées en dur) pour afficher toutes les couches du bloc dans le même système. Comme les points GPS sont donnés en coordonnées géographiques dans le système géodésique WGS84, il est nécessaire de les projeter dans le même système de projection que la carte IGN, à savoir du Lambert II. Fig. 5.2 Projection Lambert, [IGN04] Pour explication : Lambert est un système de coordonnées basé sur une projection cylindrique utilisé en France. En 1921 on a introduit ce système sous le nom «Nouvelle Triangulation de la France» (NTF) pour l arpentage en France. On trouve les coordonnées Lambert sur les cartes officielles de la France (IGN). La France métropolitaine est découpée en quarte zones (voir figure 5.2) :
61 CHAPITRE 5. MISE EN PRATIQUE 60 Lambert I couvrant le tiers nord-œst de la France Lambert II couvrant le tiers central de la France Lambert III couvrant le tiers sur de la France Lambert IV couvrant la Corse Le lac Chambon se trouve dans la zone Lambert II. Pour des besoins de représentation globale de la France une projection Lambert II étendu a été créée. Le système de coordonnées Lambert est aussi utilisé en Belgique et en quelques pays de l Afrique francophone. Pour l Allemagne par contre on utilise le système «Gauß-Krüger» [Li99]. Ce système de coordonnées est introduit en 1927 comme méthode d arpentage officielle. Le changement de système de référence est une opération mathématique qui est implémentée dans les fonctionnalités «Projections» d ArcToolbox. Ayant réalisé cette transformation géographique, les points GPS sont préparés pour construire la bathymétrie du lac sous mode raster. Pour construire le raster des pentes, il faut passer par le mode TIN, car les points GPS ne sont pas régulièrement répartis et une interpolation directe résulte dans une cartographie des pentes de faible précision. Pour construire le TIN, on a besoin de rentrer le contour du lac comme ligne de zéro. L outil interpole la surface en créant des points intermédiaires. Après il construit une surface avec des triangles. La carte 5.3 montre les pentes du lac représentés sous mode TIN. A partir du TIN on peut calculer l image des pentes. Cette transformation peut être réalisée avec la fonctionnalité «Tin to Grid» de l ArcToolbox. Les valeurs de profondeurs sont obtenues par l interpolation linéaire ou quintic. L interpolation linéaire donne une surface lissée. L interpolation quintic par contre donne une surface plus anguleuse. J ai choisi l algorithme linéaire, car le fond du lac est lissé par la sédimentation. La résolution était prise égale à un mètre, ce qui donne des pixels d un mètre de coté. La carte 5.4 montre le résultat obtenu.
62 CHAPITRE 5. MISE EN PRATIQUE 61 Fig. 5.3 Carte : TIN
63 CHAPITRE 5. MISE EN PRATIQUE 62 Fig. 5.4 Carte : Raster Pour créer le thalweg du lac qui représente notre ligne de référence, Arc- Map offre les fonctions «fill sink», «flowdirection» et «flowaccumulation» qu on exécute sur un raster représentant la bathymétrie du lac. Exécuter ces fonctions dans le bon ordre, permet d obtenir un réseau montrant la connectivité des cours d eau.
64 CHAPITRE 5. MISE EN PRATIQUE 63 La dérivation du sens de l écoulement (méthode «flowdirection») étant donnée la première étape, il est important de lui passer les informations les plus exactes que possible. Il s agit donc tout d abord d examiner le MNT du lac sous forme de raster et de corriger les inexactitudes. Ces petites erreurs résultent des légères dépressions de terrain. La fonction «fill sink» permet de remplir les enfoncements d un raster continu. Elle fait disparaître les petites inexactitudes et donne une surface plus lisse. La fonction «flowdirection» détermine le voisin le plus profond d une cellule et crée une grille montrant le sens d écoulement de l eau dans chaque cellule. Après avoir lancé cette fonction avec la surface corrigée comme entrée, on obtient une grille dont les cellules sont codées par les valeurs de sens. Ensuite on exécute la fonction «flowaccumulation». Elle crée une grille montrant le flux accumulé allant dans chaque cellule. Elle accumule le poids de toutes les cellules se trouvant en amont qui coulent dans une cellule en aval. Des cellules avec une grande valeur sont des zones de grande accumulation d eau. Elles sont utilisées pour identifier les cours d eau. Pour obtenir des polylignes représentant le réseau de cours d eau, on convertit la grille résultante en un shapefile de polylignes connectées. Cela peut être réalisé avec la fonction «streamshape». Ayant exécuté ces fonctions dans l ordre donné, on obtient plusieurs lignes non connectées et très courtes. La couche résultante se compose d un réseau de cours d eau et non seulement d une ligne représentant l écoulement de l eau dans ce lac. La raison est l inexactitude du modèle numérique de terrain. Le MNT n est pas exact, car les points GPS ne sont pas repartis régulièrement. Il y a des endroits sur le lac d où on ne dispose pas de points de mesure. En outre la précision du GPS et de l écho-sondeur est très faible. C est pourquoi le thalweg a été crée manuellement. Ayant créé la bathymétrie du lac et la ligne de référence, on peut poser les filets sur l écran. Comme information sur leurs emplacements on connaît leurs zones (stocké dans le champ «Habitat»), l endroit approximatif par
65 CHAPITRE 5. MISE EN PRATIQUE 64 l information stockée dans le champ «Station» et des carte non numérisées sur lesquelles les chercheurs ont indiqué les filets. A l aide du chercheur Aymeric Guibert j ai posé les filets comme objets ponctuels au bon endroit dans le modèle numérique du lac. (cf. carte 5.5) On assigne aux entités spatiales leur surface attenante et le poids capturé aux endroits, calculés par des requêtes SQL. Les données acoustiques pouvaient être rentrées dans le SIG de la même façon que les donnés GPS, car elles sont renseignées en latitude et longitude. Fig. 5.5 Carte : Filets posés
66 CHAPITRE 5. MISE EN PRATIQUE Programmation Accès aux données ArcObjects fournit deux variables prédéfinies disponibles à n importe quel moment dans le code et qui sont les deux points d entrée dans le modèle. Ce sont les variables globales «Application» et «ThisDocument». «Application» correspond à l application elle-même. Cette variable représente la CoClass Application, qui pointe par default sur l interface IApplication. Mais elle implémente également l interface IMxApplication. «ThisDocument» correspond au document ArcMap. Elle pointe sur l interface IDocument de la classe MxDocument. Un MxDocument correspond à un document ArcMap. Ces deux variables n ont pas besoin d être déclarées ni initialisées. Elles sont directement utilisables. Le code source suivant montre comment utiliser ces variables globales pour accéder au document local. Listing 5.7 Variables globales : «Application» et «ThisDocument» Dim pmxdoc a s IMxDocument Set pmxdoc = A p p l i c a t i o n. Document or Set pmxdoc =ThisDocument Les deux possibilités dans le code sont équivalentes. Elles montrent comment obtenir une référence sur le document en cours. MxDocument gère toujours un ou plusieurs objets «Map» et un seul objet «PageLayout». Un map 2 représente le bloc de données (data frame) qui consiste en plusieurs couches. Un document peut avoir plusieurs maps. Le PageLayout arrange l affichage du document. Un document ArcMap possède toujours une vue active, appelée ActiveView, qui est soit le «mode données» map, soit le «mode mise en page» page layout. L utilisateur peut passer de l un à l autre. La propriété ActiveView de MxDocument renvoie une référence sur l interface IActiveView qui est implémentée par les classes Map et PageLayout de deux manières différentes (polymorphisme). Par conséquent ActiveView permet d accéder soit au PageLayout si on est en mode mise en page soit au map en cours si on est en mode données. La propriété FocusMap renvoie toujours une référence sur l objet map, qui représente la carte active. Le listing 5.8 montre comment accéder à la carte active. Il affiche les noms des couches de cette carte. 2 carte en français
67 CHAPITRE 5. MISE EN PRATIQUE 66 Dim pmxdoc As IMxDocument Dim pmap As IMap Dim players As IEnumLayer Dim player As ILayer Dim i As Long Set pmxdoc = ThisDocument Set pmap = pmxdoc. FocusMap Listing 5.8 Focus Map names o f the l a y e r s which are in the a c t i v e map Set players = pmap. l a y e r s Set player = players. Next loop a l l l a y e r s in the dataframe For i = 0 To pmap. LayerCount 1 MsgBox player. Name Set player = players. Next Next Le diagramme 5.6 symbolise le rapport entre l objet MxDocument, ses cartes et l affichage de celles-ci. Fig. 5.6 MxDocument Pour accéder à une couche d un map on peut passer soit par le document (propriété SelectedLayer), soit par le bloc de données (propriétés Layer et LayerCount). Si on passe par le document il faut récupérer un pointeur sur la couche
68 CHAPITRE 5. MISE EN PRATIQUE 67 sélectionnée. Il faut vérifier si une couche est effectivement sélectionnée par l utilisateur d ArcMap. Dans ce cas si aucune couche n est sélectionnée, le pointeur ne pointe sur rien. Le code 5.9, récupéré de [ENSG03], montre comment accéder à la couche sélectionnée. Listing 5.9 Accès à la couche sélectionnée par le document [ENSG03] Dim pmxdoc As IMxDocument Set pmxdoc = ThisDocument Dim player As I l a y e r We i n i t i a l i s e player with the s e l e c t e d l a y e r. Set player = pmxdoc. SelectedLayer I f player I s Nothing Then I f player p o i n t s to nothing, we d i s p l a y a message. MsgBox Vous devez s é l e c t i o n n e r une couche! Else Otherwise we d i s p l a y the name o f the l a y e r. MsgBox player. Name End I f Un désavantage d ArcObjects est qu on ne peut pas accéder directement à une couche par son nom. On doit passer par le bloc de données contenant la couche et parcourir l ensemble des couches du bloc de données avec une boucle en testant les noms, ce qui est montré dans le code suivant : Listing 5.10 Accès à une couche par le bloc de données [ENSG03] Function FindLayerByName (pmap a s IMap, sname a s ) As ILayer Dim i as I n t e g e r loop over t he number o f l a y e r s ( numeration s t a r t s with 0 ) For i = 0 t o pmap. LayerCount I f the i t h. Layer has the searched name, we g e t t h i s l a y e r. I f pmap. Layer ( i ). Name = sname Then Set FindLayerByName = pmap. Layer ( i ) End I f Next End Function String Chaque couche contient une classe d entités (feature class). Cette classe stocke les entités spatiales (features), contrairement à une table qui stocke les objets représentant des entités non spatiales. Tous les feature d une FeatureClass ont les mêmes attributs et la même géométrie (point, polyligne, polygone...). Leurs attributs sont stockés dans la table de la classe d entité.
69 CHAPITRE 5. MISE EN PRATIQUE 68 L attribut obligatoire est l identifiant d objet, nommé FID. C est la clé primaire des entités Pour accéder aux features, on utilise la méthode GetFeature (in ID : Long) sur IFeatureClass. Elle permet de récupérer l entité dont l identifiant est celui passé en entrée. Pour accéder à la valeur d un attribut spécifique, on utilise la propriété Value (in Index : Long) sur IFeature. L identifiant passé est celui de l attribut. Cette propriété est implémentée dans l interface IRowBuffer. Mais on peut directement utiliser la propriété Value sur IFeature grâce à l héritage d interface. Souvent on ne connaît pas l identifiant d un attribut. Mais on peut le chercher avec la méthode FindField( NAME ). L exemple suivant montre comment accéder aux entités spatiales d une couche : Listing 5.11 Accès aux entités spatiales d une couche Dim pmxdoc a s IMxDocument Set pmxdoc = ThisDocument Dim pfeaturelayer as IFeatureLayer Dim pfeatureclass as I F e a t u r e C l a s s Dim pfeature As IFeature Dim l F i e l d As Long We o b t a i n the f i r s t l a y e r o f the c a r t Set pfeaturelayer = pmxdoc. FocusMap. Layer ( 0 ).. and the a s s o c i a t e d f e a t u r e c l a s s. Set pfeatureclass = pfeaturelayer. FeatureClass We search the f i e l d ZONE. l F i e l d = pfeatureclass. FindField ( ZONE ) We search the e n t i t y whose i d e n t i f i e r i s zero. Set pfeature = pfeatureclass. GetFeature ( 0 ) We d i s p l a y the v a l u e o f the f i e l d o f t h i s e n t i t y. MsgBox Le p o i n t s se trouve dans l a zone = & pfeature. Value ( l F i e l d )
70 CHAPITRE 5. MISE EN PRATIQUE Implémentation de l algorithme La procédure d interpolation est implémentée de façon modulaire, pour pouvoir mieux comprendre les étapes en détail et pour pouvoir faire des modifications si nécessaire. Par conséquent, j ai développé plusieurs macros auxquelles il faut fournir les bonnes entrées et les lancer dans le bon ordre. Le code écrit est enregistré en association à un document ArcMap (niveau document, cf ). Il y a six macros accessibles dans le document, dont deux pour la création des couches d entrée, deux pour la préparation des données à interpoler, une pour l interpolation elle-même et une supplémentaire pour calculer la moyenne. Tout d abord il fallait créer des contours du lac aux profondeurs 0 mètre, -9 mètres et -27 mètres pour pouvoir partager le lac dans les trois zones. Il existe une fonctionnalité dans ArcMap appelée «Contour», qui permet de créer des polylignes représentant des contours d une couche raster. Le désavantage est qu elle crée des contours seulement dans une intervalle donnée. Par exemple, elle peut calculer les contours du lac tous les 10 mètres de profondeur. Elle n offre pas la possibilité de calculer des contours pour une valeur quelconque entrée par l utilisateur, ce qui est notre cas (0, -9, -27 m). Mais on peut définir un contour de base quand même. On pourrait donc lancer cette fonctionnalité trois fois en changeant la valeur du contour de base et ensuite joindre les polylignes dans une seule couche. Cette solution étant un peu longue, j ai décidé de développer un programme à moi-même qui crée des contours directement aux profondeurs désirées. Dans ce programme on crée un nouveau fichier de forme (shapefile) dont les entités sont de type polyligne. Ensuite on crée des polylignes sur la surface du raster qui représente la bathymétrie du lac aux profondeurs sélectionnées par l utilisateur. Cette tâche est réalisée avec la méthode ContourList offert par l interface ISurface. La méthode a besoin d un tableau contenant les altitudes sur lesquelles on veut créer des contours, d une classe d entités de type polyligne où il doit stocker les polylignes résultants, du champ dans lequel les altitudes seront indiquées et de la précision des valeurs de l altitude comme entrée : Listing 5.12 Méthode pour créer des contours Creates contours, based on a l i s t o f h e i g h t s sending the ouput to the p o l y l i n e based f e a t u r e c l a s s psurface. ContourList pbreaks, p f e a t u r e C l a s s, e l e v a t i o n, 0 Ensuite on regroupe la couche des contours créée avec le contour du lac qui est au niveau zéro dans une couche contenant toutes les entités. Cette tâche est réalisée avec la fonctionnalité de base d ArcGIS «merge layers». Grâce à ces pas on a créé les zones d habitats. Maintenant il s agit d attri-
71 CHAPITRE 5. MISE EN PRATIQUE 70 buer à chaque point de mesure la zone dans laquelle il était prélevé. Ceci peut être réalisé avec l interface IRelationalOperator (cf ), qui est implémentée dans certaines géometrie-coclasses. On utilise la méthode / le Relational Operator «contains» de cette interface pour trouver la zone correspondante. Comme des essais l ont montré, l opérateur ne donne pas de résultat satisfaisant. La relation spatiale «contains» entre la géométrie d un point de mesure et celle d un contour n existe pas. Apparemment il n y a aucun point qui se trouve dans une des zones définies. Ceci résulte du fait que l opération ne peut être appliquée qu avec des polygones. Une polyligne, même si elle est fermée, ne peut pas contenir de points, sauf ceux qui se trouvent sur la ligne. Il s agit donc de transformer les polylignes en polygones. Pour convertir les polylignes en polygones, on utilise la fonction Clean d ArcToolbox. Elle permet de convertir des polylignes d une coverage d entrée en des polygones d une coverage de sortie. Cette fonction peut afficher des messages d erreurs, si les polylignes ne sont pas fermées. Il faut donc vérifier cette caractéristique géométrique avant de lancer la fonction : Listing 5.13 Feature fermé? pfeatureclass had been c r e a t e d b e f o r e. I t c o n t a i n s the contours o f type p o l y l i n e s. l o o k i f f e a t u r e i s c l o s e d Dim pfeature As IFeature Dim pcurve As ICurve Dim FeatureClosed As String FeatureClosed = For i = 0 To 32 Set pfeature = pfeatureclass. GetFeature ( i ) Set pcurve = pfeature. Shape FeatureClosed = FeatureClosed & i &. Feature i s c l o s e d : & pcurve. I s C l o s e d & vbcrlf Next MsgBox Result : & vbcrlf & FeatureClosed Après avoir exécuté la fonction Clean on convertit le coverage des polygones résultants en un shapefile. On remarque qu il y a plus de 30 entités spatiales dans la couche de sortie, dont plusieurs qui ont une surface très petite (cf. Figure 5.7).
72 CHAPITRE 5. MISE EN PRATIQUE 71 Fig. 5.7 Zoom dans la couche des contours La raison est que la bathymétrie du lac montre des creux, car le fond du lac n est pas assez lissé. La macro ne voit pas la forme globale du lac et crée par conséquent des polylignes autour des creux de profondeur donnée. Les polylignes ne longent donc pas forcement la rive. Le commanditaire a demandé de supprimer les petits polygones, pour partager le lac dans des zones plus grandes. La suppression des petits polygones résulte en une surface du lac non continue, qui est inutilisable pour l analyse spatiale. Il fallait donc refaire les derniers pas et supprimer les petites zones quand ils sont présents encore sous forme de polylignes. A la fin on obtient une couche avec dix entités spatiales de type polygone qui représentent les différents habitats piscicoles. Pour pouvoir distinguer les zones non seulement en regardant les valeurs de profondeur stockées dans le champ «elevation», on crée un nouveau champ dans la table des zones et on y indique la zone correspondante pour chaque feature comme chaîne de caractères : central, littoral ou sublittoral.
73 CHAPITRE 5. MISE EN PRATIQUE 72 Fig. 5.8 Contours Ayant crée les trois zones, il s agit de représenter la géométrie du lac sous forme de points distribués régulièrement auxquels on peut assigner les densités calculées comme attribut descriptif, «raster d interpolation» 3. On pourrait créer cette couche comme un fichier raster (cf. 3.2 mode raster). Mais ce mode de représentation n est pas approprié ici, car les raster layer 3 ce mot sera utilisé par la suite pour parler de la couche contenant les points à interpoler
74 CHAPITRE 5. MISE EN PRATIQUE 73 ne stockent qu un seul attribut, celui qui montre la couche, la bathymétrie du lac par exemple. Les pixels ne peuvent pas être traités comme des features d une couche vecteur. Il n y a pas de table associée dans laquelle on stocke des attributs descriptifs des entités spatiales. Ici, on a besoin d assigner aux points au moins quatre informations : la coordonnée x, la coordonnée ỹ, la valeur calculée (la densité de poisson interpolée) et la zone dans laquelle un point est situé. C est pour cela qu un shapefile est plus approprié. On peut stocker ces informations descriptives dans la table associée à la couche. La procédure de création des points distribués régulièrement sur la surface du lac est réalisée en deux étapes. Premièrement on coupe la surface de la géométrie représentant le lac en carrés et ensuite on crée le raster d interpolation. La première étape est réalisée dans ArcView. J ai trouvé une macro [RO00] développée par Birgit Rasmussen et Eva Overby Bach dans Avenue 4 sur le site web d ESRI, qui coupe un polygone en carrés dont on peut définir la taille. Les carrés seront stockés dans une nouvelles couche vecteur. La taille des carrés détermine d une part la qualité de l affichage des résultats de l interpolation sous forme d une carte (la résolution) et d autre part le nombre de points à calculer. L autre moitié, la création des points distribués régulièrement (le raster interpolation), est réalisée par moi-même. Le point de départ est les carrés. Chaque géométrie (objet qui implémente l interface IGeometry) contient un point se trouvant à l intérieur de sa surface. Ce point est appelé le labelpoint. En outre il y a le centroïd d une géométrie qui représente le «centre de gravité» de la surface. Il n est pas forcement situé dans la surface de la géométrie, mais au centre de la surface du poids attaché. L illustration 5.9 montre les centroïds de quelques géométries possibles. Fig. 5.9 Centroïds des géométries [AODH03] 4 Avenue est le langage de programmation utilisé dans l ancien ArcView. Il ne sera bientôt plus utilisé.
75 CHAPITRE 5. MISE EN PRATIQUE 74 On voit dans l illustration que les centroïds ne sont pas appropriés pour créer le raster d interpolation. Par conséquent on prend les labelpoints de tous les carrés et on les stocke comme features de type point dans une nouvelle couche. On accède aux points par la propriété LabelPoint de l interface IArea. Elle renvoie une référence sur un objet qui implémente l IPoint. Ensuite on crée une nouvelle entité et on lui affecte la géométrie du labelpoint. A la fin, on le stocke comme nouveau feature dans une classe d entités, comment montré ci-dessous : Listing 5.14 Création du raster d interpolation add p o i n t s e v e n l y spread a l l over the l a k e to the j u s t c r e a t e d f e a t u r e c l a s s Dim pfeaturecursor As IFeatureCursor Dim pfeature As IFeature Dim parea As IArea Dim lbpoint As IPoint Dim newfeature As IFeature Set pfeaturecursor = pfeatureclasscares. Update ( Nothing, False ) Set pfeature = pfeaturecursor. NextFeature Do Until pfeature Is Nothing Set parea = pfeature. Shape Set lbpoint = parea. LabelPoint c r e a t i o n o f an e n t i t y Set newfeature = pfeatureclasslp. CreateFeature a s s i g n him a geometry Set newfeature. Shape = lbpoint newfeature. Store on e n r e g i s t r e Set pfeature = pfeaturecursor. NextFeature Loop La figure 5.10 montre les deux étapes pour créer le raster d interpolation. Une fois crée le raster d interpolation il faut transmettre les points de mesure dans ce raster et calculer l attribut densité qui dépend du poids échantillonné et du volume échantillonné (cf. 4.1). Pour transmettre les points de mesure dans le raster, on parcoure tous ces points de filets et on regarde dans quel carré un point se trouve en utilisant un filtre spatial avec EsriSpatialRelWithin indiqué comme relation spatiale examinée. Ensuite on utilise l identifiant FID du carré incluant le point pour chercher le labelpoint correspondant. Le champ «FID» des labelpoints est considéré comme clé étrangère référenciant le carré dans lequel l entité spa-
76 CHAPITRE 5. MISE EN PRATIQUE 75 Fig Création du raster d interpolation tiale est situé. Ayant trouvé le labelpoint on y projette le point de mesure et on marque qu il y s agit d un point non calculé mais mesuré en stockant «1» comme valeur dans un nouveau champ nommé «original». Le volume échantillonné est calculé pour tous les points de mesure projetés à partir de sa surface attenante, stockée dans le champ «surface m2» et à partir de la profondeur du labelpoint sur lequel le point de mesure est projeté (cf. 4.1). A partir du volume et du poids indiqué dans le champ «poids tot» de la table de la couche qui contient les filets posés (cf. 5.2), on calcule la densité du filet filet(x y) en g/m 3 et en kg/ha Le commanditaire a ordonné de calculer la densité en kg/ha, car c est l unité standard pour des mesures dans des plans d eaux. Pour calculer la densité en kg/ha, on ne comprend pas la profondeur dans le calcul. «On fait comme si tout le volume de chaque unité cartographique était compressé sur sa surface : c est un regard de pêcheur, qui regarde le lac vu d avion, en pensant que tous les poissons, quelle que soit leur profondeur, sont accessibles et capturables.» (Nadou Cadic) On suppose que 1 g = 10 kg m 2 ha. Pour inclure la troisième dimension, on multiplie la surface par la profondeur pour obtenir la densité en g/m 3. densite[g/m 3 ] = poids(filet(x y)) A z(label(x y)) (5.2)
77 CHAPITRE 5. MISE EN PRATIQUE 76 densite[kg/ha] = poids(filet(x y)) A 10 (5.3) avec : poids(filet(x y)) : poids pesé dans le filet posé dans le point (x y) z(label(x y)) : la profondeur du labelpoint dans le point (x y) en mètres A : surface attenante en m 2 (pour les données des filets : 336m 2 ) S il y a plusieurs points de mesure qui tombent dans un carré, on calcule la moyenne des densités. Il y a une faible inexactitude dans le calcul des densités qui provient du fait qu on ne prend pas la profondeur à l endroit où le filet est posé, mais celle du point sur lequel le point de mesure est projeté. Ces deux profondeurs peuvent différer faiblement. On a donc projeté les points de mesure sur des points du raster d interpolation et on a transmis leurs poids. On pourrait avoir également non seulement projeté, mais transmis toute l entité des points de mesure dans ce raster. Ayant considéré comme imprécise la localisation des filets dans le modèle numérique du lac, cette possibilité ne semblait pas donner de résultats plus précis. En outre on a travaillé avec un raster de grande précision, qui empêche de déplacer un filet à un endroit trop éloigné. Le code B.1 dans l annexe montre la procédure de la création du raster. Une fois crée le raster d interpolation, il s agit de calculer les coordonnées curvilignes de toutes les entités et de les stocker dans le table attributaire du raster. Pour calculer le ỹ on se sert des Proximity Operators qui sont implémentés dans les classes de géométrie (cf ). Comme on voit dans l extrait du code 5.15, on cherche le point se trouvant sur la ligne du thalweg le plus proche du point du raster (ppointsnap) et calcule ensuite sa distance à ce dernier. Ce qui donne la valeur du ỹ sans signe. On pourrait avoir également appliqué la méthode ReturnDistance sur la géométrie du thalweg avec le point du raster comme entrée. Cette possibilité calculerait directement la distance la plus courte entre le point du raster et le thalweg. Elle donne le même résultat. On peut supposer que la méthode ReturnDistance sur une polyligne avec un point comme entrée est implémentée en cherchant toujours d abord le point le plus proche sur la ligne et en calculant ensuite la distance entre les deux points. Comme on a encore besoin du point sur la ligne du thalweg pour calculer le x, j ai choisi la première solution.
78 CHAPITRE 5. MISE EN PRATIQUE 77 Listing 5.15 Calcul du ỹ p P o i n t S t a r t i s the i nput p o i n t Dim p F e a t u r e S p l i t As IFeature Dim pgeometry As IGeometry Dim ppointsnap As IPoint Dim pproximity As IProximityOperator Dim pminimaldistance As Double the t h a l w e g Set p F e a t u r e S p l i t = pfeatureclasslines. GetFeature ( 0 ) Set pgeometry = p F e a t u r e S p l i t. Shape Set pproximity = pgeometry f i n d and return the n e a r e s t p o i n t on the p o l y l i n e to the i n p u t p o i n t Set ppointsnap = pproximity. ReturnNearestPoint ( ppointstart, 0 ) Set pproximity = ppointsnap g e t the minimum d i s t a n c e between the n e a r e s t p o i n t and the i n p u t p o i n t pminimaldistance = pproximity. ReturnDistance ( ppointstart ) Pour pouvoir distinguer entre les points se trouvant à gauche du thalweg et ceux à la droite, on crée une nouvelle couche, en coupant le polygone du lac selon le thalweg. Les géométries résultantes représentent la partie gauche et la partie droite du lac : Listing 5.16 Coupage de la géométrie du lac S p l i t t i n g f e a t u r e s Dim polyfeeature As IFeature Dim l i n e F e a t u r e As IFeature Dim pgeometry As IGeometry Dim ptopologicaloperator As ITopologicalOperator Dim p P o l y l i n e As I P o l y l i n e output f e a t u r e s Dim leftgeom As IGeometry Dim rightgeom As IGeometry perfom the s p l i t t i n g o p e r a t i o n Set polyfeeature = pfeatureclasspolygons. GetFeature ( 0 ) Set l i n e F e a t u r e = pfeatureclasslines. GetFeature ( 0 )
79 CHAPITRE 5. MISE EN PRATIQUE 78 Set pgeometry = polyfeeature. Shape Set ptopologicaloperator = pgeometry Set p P o l y l i n e = l i n e F e a t u r e. Shape ptopologicaloperator. Cut ppolyline, leftgeom, rightgeom Ensuite on utilise la couche de sortie pour déterminer les points se trouvant à l intérieur de l entité «gauche» et ceux à l intérieur de l entité «droite». On dit que la valeur x de tous les points qui se trouvent à gauche du thalweg sera notée négativement et les points à la droite sont notés positivement. Cela est réalisé dans le code suivant : Listing 5.17 Assignation d une notation pour le ỹ pfeature i s the c u r rent p o i n t Dim p S i d e S p a t i a l F i l t e r As I S p a t i a l F i l t e r Dim pfeaturecursorwithin As IFeatureCursor Dim poutpoly As Boolean Dim s i d e As String Dim phalffeature As IFeature Dim phalfflds As I F i e l d s Dim s i d e I n d e x As Long look, on which s i d e o f the l i n e the p o i n t i s Set p S i d e S p a t i a l F i l t e r = New S p a t i a l F i l t e r s e t t i n g the Geometry, GeometryField and S p a t i a l R e l parameters With p S i d e S p a t i a l F i l t e r Set. Geometry = pfeature. Shape. GeometryField = SHAPE. S p a t i a l R e l = e s r i S p a t i a l R e l W i t h i n End With Set pfeaturecursorwithin = Nothing F e a t u r e c l a s s o f s p l i t t e d polygon Set pfeaturecursorwithin = pfeatureclasshalfs. Search ( p S i d e S p a t i a l F i l t e r, False ) Set phalffeature = pfeaturecursorwithin. NextFeature r e t r i e v e the r e s u l t s, only one > p o l y g o n h a l f which i n c l u d e s the c u rrent p o i n t Do Until phalffeature Is Nothing s e t i n d e x e s to f e t c h the f i e l d v a l u e s
80 CHAPITRE 5. MISE EN PRATIQUE 79 Set phalfflds = phalffeature. F i e l d s s i d e I n d e x = phalfflds. FindField ( s i d e ) p r i n t the d i s t a n c e I f Not ( phalffeature Is Nothing ) Then f e t c h f i e l d s I f phalffeature. Value ( s i d e I n d e x ) = l e f t Then pfeature. Value ( YIndexField ) = pminimaldistance 1 E l s e I f phalffeature. Value ( s i d e I n d e x ) = r i g h t Then pfeature. Value ( YIndexField ) = pminimaldistance 1 Else s i d e = n u l l End I f End I f Set phalffeature = pfeaturecursorwithin. NextFeature Loop L assignation d une notation positive ou négative aux valeurs de la distance au thalweg pourrait être également réalisée avec les vertex de la ligne du thalweg. On aurait pu prendre un point du raster d interpolation P, le point projeté sur la ligne du thalweg T (en abaissant la perpendiculaire) et un vertex de la ligne qui se trouve direction extrémité nord V. A partir de ces trois points P, T, V on peut calculer l angle. On considère le point à examiner et le vertex de la ligne comme deux vecteurs (p et t) qui se croisent dans le point projeté T. A partir de ces vecteurs on calcule le produit scalaire (équation 5.4). Si le résultat est supérieur à zéro, le point examiné se trouve à droite du thalweg et s il est inférieur à zéro le point se trouve à la gauche. (Le sens du thalweg étant donnée de l extrémité sud à l extrémité nord.) ) ) p = t = ( XP Y P ( ) XV Y V ( XT Y T ( ) XT avec : P : point à examiner V : vertex sur la ligne du thalweg T : point d aplomb (sur la ligne du thalweg) Y T p t (5.4)
81 CHAPITRE 5. MISE EN PRATIQUE 80 Pour mieux illustrer ce calcul, veuillez regarder les figures suivantes. Fig Le point à examiner et un vertex de la ligne considérés comme deux vecteurs qui se rencontre dans le point T La possibilité de calcul décrit ci-dessus aurait permis de déterminer la cote d un point sans passer par une couche intermédiaire. J ai décidé quand même de passer par la couche du lac coupé en deux, car il semble être difficile d accéder aux vertex de la ligne et le calcul pourrait être lent. Pour calculer le x des points, on se sert du point projeté sur la ligne du thalweg pour couper cette polyligne exactement à ce point donné. Une des lignes de sortie sera utilisée pour obtenir le x en calculant sa longueur. Il s agit de bien faire attention à prendre le bon segment. Ceci est réalisé en regardant le sens de la polyligne. Il est déterminé par le point de départ et le point de fin. On peut connaître ces deux points en demandant les propriétés FromPoint et ToPoint de la polyligne, comme montré ci-sessous. Dim thalweg As ICurve Dim zeropoint As IPoint Dim zerox As Double Dim zeroy As Double Listing 5.18 Trouver le sens du thalweg s t o r e t he p o i n t o f o r i g i n o f the t h alweg Set zeropoint = thalweg. FromPoint zerox = zeropoint. x zeroy = zeropoint. y Dans le cas présent, le point de départ était égal à l extrémité nord du thalweg. Mais on veut que le point de départ ou le point zéro soit l extrémité sud. Par conséquent on a inversé le sens de la polyligne en utilisant la
82 CHAPITRE 5. MISE EN PRATIQUE 81 méthode ReverseOrientation sur l objet polyligne. Ayant vérifié cette propriété, on coupe la ligne avec la méthode split. Cette commande coupe une géométrie en deux au point donné et stocke les segments résultants directement comme des nouvelles entités spatiales dans la couche (cf. listing 5.19). Des essais ont montré que ce n est pas possible de sauvegarder les segments résultants comme variables sans les stocker directement. Il fallait supprimer les nouvelles entités après avoir calculé le x. Ensuite on obtient la longueur du segment en demandant la propriété length implémentée dans l interface ICurve. Cette longueur sera stockée comme valeur de la coordonnée x. Une opération inverse à split existe seulement dans ArcView mais pas dans les ArcObjects. Il fallait donc créer une copie de la géométrie du départ et exécuter l opération de coupage avec la copie. Après avoir obtenu la valeur du x, on supprime les entités crées, pour réitérer la même opération pour un autre point. Listing 5.19 Coupage de la ligne du thalweg Dim pfeatureedit As IFeatureEdit Dim psegfeat As IFeature Dim Segment As ICurve Dim l e n g t h As Double Set pfeatureedit = pfeatureclasslines. GetFeature ( 1 ) pfeatureedit. Split ppointsnap measure l e n g t h o f l i n e to p o i n t Set psegfeat = pfeatureclasslines. GetFeature ( 3 ) Set Segment = psegfeat. Shape l e n g t h = Segment. l e n g t h Comme on ne veut pas intégrer toutes les valeurs de mesures dans l interpolation, mais seulement celles qui se trouvent dans la zone à examiner, on cherche la zone dans laquelle un point est situé et on la stocke comme nouvel attribut. On trouve la zone correspondante en appliquant un Relational Operator à la géométrie d une zone par rapport à tous les points. A cause des performances, on construit une seule «géométrie» à partir des géométries qui font une zone (les entités polygones, qui contiennent la même valeur dans le champ «zone»). Ensuite on utilise le Relational Operator «contains» de l interface IRelationalOperator sur les géométries zones pour regarder dans laquelle des géométries créées auparavant se trouve un point. L extrait du code 5.20 montre la détermination des zones correspondantes.
83 CHAPITRE 5. MISE EN PRATIQUE 82 Listing 5.20 Détermination de la zone f i n d the zone where the p o i n t i s w i t h i n and return the zone as s t r i n g Private Function g e t z o n e ( basefeatureclass As IFeatureClass, pointfeature As IFeature ) As String c o n s t r u c t i o n o f a s i n g l e geometry based on the geometries o f r e f e r e n c e Dim penumgeom As IEnumGeometry Set penumgeom = New EnumFeatureGeometry Dim pqueryfilter As I Q u e r y F i l t e r Dim penumgeometrybind As IEnumGeometryBind Set penumgeometrybind = penumgeom Dim pgeomfactory As IGeometryFactory Dim pgeom As IGeometry Dim prelop As I R e l a t i o n a l O p e r a t o r zones Dim zone As String Dim temp As String Dim i As I n t e g e r zone = i = 0 temp = Not d e f i n e d loop a l l t h r e e zones : 0 > l i t t o r a l, 1 > s u b l i t t o r a l, 2 > c e n t r a l For i = 0 To 2 Output F i l t e r to b u i l d the geometry Set pqueryfilter = New QueryFilter S e t t i n g the WhereClause : I f i = 0 Then zone = l i t t o r a l pqueryfilter. WhereClause = zone = l i t t o r a l E l s e I f i = 1 Then zone = s u b l i t t o r a l pqueryfilter. WhereClause = zone = s u b l i t t o r a l E l s e I f i = 2 Then zone = c e n t r a l pqueryfilter. WhereClause = zone = c e n t r a l End I f
84 CHAPITRE 5. MISE EN PRATIQUE 83 penumgeometrybind. BindGeometrySource pqueryfilter, basefeatureclass Creation o f a s i n g l e geometry based on the ensemble o f e n t i t i e s zones Set pgeomfactory = New GeometryEnvironment Set pgeom = pgeomfactory. CreateGeometryFromEnumerator (penumgeom) Set prelop = pgeom I f ( prelop. Contains ( pointfeature. Shape ) ) Then temp = zone End I f Next g e t z o n e = temp End Function La dernière étape consiste en l implémentation de l algorithme d interpolation. Comme mentionné avant, l algorithme d inverse des distances IDW sera utilisé. L implémentation permettra de limiter le nombre de valeurs d influence sous forme d un tampon dont le rayon est choisi par l utilisateur. Ce paramètre définit la taille du rayon de recherche autour de chaque point de la couche, à l intérieur duquel les points de mesure seront sélectionnés et inclus dans le calcul d interpolation. L indication de la puissance p par contre sera obligatoire. Le programme est séparé en deux parties. Dans la première partie les valeurs d entrée seront récupérées et sauvegardées dans un tableau en deux dimensions. Ces sont les valeurs de mesures, qui seront interpolées. Dans l autre partie on parcourt tous les points du raster d interpolation pour calculer ses valeurs. Pour le calcul on utilise les valeurs d influence stockées dans le tableau. Dans ce cas si l utilisateur a choisit d utiliser un tampon on ne peux pas utiliser un tableau. Des nouvelles géométries circulaires seront créées par un Topological Operator (cf ITopologicalOperator). Ces cercles sont construits autour de tous les points de mesure. Le rayon est celui indiqué sur l interface de la macro. Ensuite on applique un filtre spatial sur chaque point à calculer. On y spécifie la nouvelle géométrie comme géométrie de référence. La relation spatiale à vérifier est appelée «intersects» («contains» marche également). Grâce à l héritage d interface, on peut en même temps spécifier la clause where et des Subfields. Les Subfields sont des membres qui font partie de l interface IQueryFilter. Dans la clause where on indique que la macro ne doit chercher que des valeurs de mesures (dont la valeur «original» est égale à 1) qui se trouvent dans la zone spécifiée. Les Subfields sont utilisés pour gagner en performance.
85 CHAPITRE 5. MISE EN PRATIQUE 84 Ensuite on calcule la distance curviligne en utilisant le théorème de Pythagore et on interpole les valeurs de la densité (cf. listing 5.21). Listing 5.21 Routine d interpolation avec un tampon loop a l l points, whose d e n sity v a l u e s are to i n t e r p o l a t e update only t h e s e which are not o r i g i n a l Set pqueryfilter = New QueryFilter pqueryfilter. WhereClause = o r i g i n a l = 0 and zone = & zone & Set pfeaturecursor = pfeatureclasspoints. Update ( pqueryfilter, False ) Set pfeature = pfeaturecursor. NextFeature Do Until pfeature Is Nothing denumerator = 0 numgmc = 0 numkgha = 0 i f search r a d i u s s p e c i f i e d, loop o r i g i n a l p o i n t s in the s p e c i f i e d search r a d i u s I f chk Radius. Value = True Then c r e a t i o n o f a b u f f e r around the p o i n t with t he r a d i u s t o l e r a n c e Set pgeometry = pfeature. Shape Set ppoint = pgeometry Set ptopologicaloperator = pgeometry Set pgeometry = ptopologicaloperator. B u f f e r ( t x t D i s t a n c e. Value ) Set p F i l t e r = New S p a t i a l F i l t e r With p F i l t e r Set. Geometry = pgeometry. GeometryField = SHAPE. S p a t i a l R e l = e s r i S p a t i a l R e l C o n t a i n s. S p a t i a l R e l = e s r i S p a t i a l R e l I n t e r s e c t s. SubFields = FID, xcurv, ycurv, dens kg ha, dens g m3. WhereClause = o r i g i n a l = 1 and zone = & zone & End With Set pinsidefeaturecursor = Nothing Set pinsidefeaturecursor = pfeatureclasspoints. Search ( p F i l t e r, False )
86 CHAPITRE 5. MISE EN PRATIQUE 85 Set porigfeature = pinsidefeaturecursor. NextFeature Do Until porigfeature Is Nothing the c u r v i l i n e a r d i s t a n c e distancecurv = Sqr ( ( pfeature. Value ( xcurvindexfield ) porigfeature. Value ( xcurvindexfield ) ) ˆ 2 + ( pfeature. Value ( ycurvindexfield ) porigfeature. Value ( ycurvindexfield ) ) ˆ 2 ) the v a l u e o f t he user s e l e c t e d a t t r i b u t, f o r which v a l u e s should be i n t e r p o l a t e d interpolgmc = porigfeature. Value ( dens g m3indexfield ) interpolkgha = porigfeature. Value ( dens kg haindexfield ) numerator and denumerator o f IDW r e s u l t denumerator = denumerator + ( ( 1 / distancecurv ) ˆ cbo power. Value ) numgmc = numgmc + ( ( ( 1 / distancecurv ) ˆ cbo power. Value ) interpolgmc ) numkgha = numkgha + ( ( ( 1 / distancecurv ) ˆ cbo power. Value ) interpolkgha ) Set porigfeature = pinsidefeaturecursor. NextFeature Loop resultidwgmc = numgmc / denumerator resultidwkgha = numkgha / denumerator i f no search r a d i u s i s s p e c i f i e d Else simple i n t e r p o l a t i o n r o u t i n e with no b u f f e r loop a l l i n p u t data ( s t o r e d in the array ) EndIf A la fin le programme rafraîchit l affichage de la couche du raster d interpolation. Les entités sont représentées par des carrés en couleur dégradée allant du jaune clair au marron foncé en fonction de valeur stockée dans le champ «dens kg ha» (la densité en kg/ha). La classification est effectuée en choisissant le nombre de classes et la méthode de classification. Il existe plusieurs méthodes de classification : seuils naturels 5, classes personnalisées, effectifs égaux, intervalles égaux et écart type. Ici, la densité est classifiée par des seuils naturels en dix classes. 5 Natural Break en englais
87 CHAPITRE 5. MISE EN PRATIQUE 86 La carte 5.12 montre la densité en g/m 3 interpolée avec p égale à 2 et sans avoir spécifié un tampon. Dans le sud la densité piscicole varie beaucoup. Pour mieux illustré ce fait, on voie les mêmes valeurs avec un autre dégradé de couleurs dans la carte Dans l annexe on trouvera d autres cartographies qui sont obtenues par d autre paramétrage. Fig Données filets interpolées avec p=2 et sans tampon
88 CHAPITRE 5. MISE EN PRATIQUE 87 Fig Données filets interpolées avec p=2 et sans tampon Les données acoustiques (cf ) sont interpolées de la même façon. Après avoir obtenu les cartographies résultant des densités de poisson, on voyait une grande différence entre les valeurs calculées à partir des données filets et celles des données acoustiques. Cela résulte du fait que la densité piscicole dans les points de mesure n était pas bien calculée. Le volume attenante en est la raison. On a supposé qu il correspond à la surface attenante qui est égale à 238m 2 multipliée par la profondeur du lac (cf ) dans ce point. On a supposé que le volume attenant serait un parallélépipède rectangle. Mais en fait le volume sondé s apparente à un cône,
89 CHAPITRE 5. MISE EN PRATIQUE 88 d angle déterminé, dont le sommet est situé sur l écho-sondeur. La carte 5.14 montre la cartographie résultant des données acoustiques (avec p=2 et sans tampon). Même si les valeurs n ont pas été bien calculées, le traitement des données n a pas été inutile. Grâce à cette cartographie on voit quels résultats l algorithme d interpolation curviligne donne avec un grand nombre de valeurs d entrée. Une fois que l on sait comment calculer le bon volume attenant, on peut facilement appliquer la même procédure d interpolation sur ces données suivant les indications du guide d utilisateur (cf. 5.4). Il faut seulement trouver comment exprimer le volume sondé en une surface attenante et une profondeur. La surface sera stockée dans le champ «surface» de la couche des valeurs des mesures et la profondeur sera obtenue à partir du raster qui représente la bathymétrie du lac.
90 CHAPITRE 5. MISE EN PRATIQUE 89 Fig Données acoustiques interpolées avec p=2 et sans tampon
91 CHAPITRE 5. MISE EN PRATIQUE 90 Outre l interpolation, il s agit de calculer la densité de poisson moyenne de toutes les zones. Pour obtenir la moyenne on pourrait prendre la même procédure qui sert à interpoler les valeurs. On l exécute avec p égale à 0, ce qui assignerait aux points la moyenne de tous les points de mesure d une zone, comme montré ci-dessous : z(x) = ni=0 ( 1 d i ) p z(i) ni=0 ( 1 d i ) p (5.5) avec p = 0 : z(x) = ni=0 ( 1 d i ) 0 z(i) ni=0 ( 1 d i ) 0 z(x) = = ni=0 1 z(i) ni=0 1 z(x) = = ni=0 z(i) n avec : z(x) : la valeur du point x à interpolée n : nombre de valeurs de mesure z(i) : la valeur de mesure du point i d i : la distance du point x au point i Etant donné la longueur du calcul, j ai programmé une autre macro, qui prend toutes les valeurs interpolées de la densité et calcule la densité moyenne de toutes les zones (en kg/ha et en g/m3). Ce calcul est beaucoup plus rapide. La macro calcule la densité de chaque zone et la stocke dans la table d attribut de la couche des zones. Après, elle affiche les densités moyennes de chaque zone avec les couleurs suivantes : jaune clair, marron clair et marron foncé. La figure 5.15 montre la couche résultante créée à partir des données filets interpolées.
92 CHAPITRE 5. MISE EN PRATIQUE 91 Fig Densité piscicole moyenne
93 CHAPITRE 5. MISE EN PRATIQUE Guide d utilisateur Avant-propos Le projet est réalisé en collaboration avec la Maison de la Télédétection en mars, avril, mai 2004 par Claudia Dittrich (claudia [email protected]), étudiante allemande en informatique. Le sujet était donné par Dr. Nadou Cadic, ancien chercheur au sein de l unité de recherche RIPE 6, actuellement délégué régional du Conseil Supérieur de la Pêche. Ce guide explique comment utiliser les macros, que j ai développées pendant mon stage. Je l ai écrit pour des non-informaticiens, pour ceux qui veulent utiliser les programmes. Par conséquent, il n explique pas le code source. Pour plus d informations sur la programmation, veuillez consulter le rapport final («Diplomarbeit», rédigé en français) Objet Les macros que j ai programmées servent à interpoler les densités de poissons en tout point d une échelle choisie sous ArcMap (à partir de version 8.0). La procédure d interpolation prend en compte l orientation curviligne du lac et les différentes zones d habitats. Pour plus d informations sur la façon d interpoler les valeurs (l interpolation curviligne), veuillez consulter le rapport final. On peut imaginer d appliquer la même procédure pour un autre lac, pour la densité des autres points d entrée ou pour interpoler un autre attribut que celui de la densité. Dans les explications suivantes je ferai référence à ce qu il faut respecter dans ces cas-là (remarques cursives). Les macros sont toutes programmées en Visual Basic for Applications en utilisant l environnement de programmation propre à ArcGIS «ArcObjects». La procédure d interpolation est implémentée de façon modulaire, pour pouvoir mieux comprendre les étapes en détail et pour pouvoir les modifier si nécessaire. Par conséquent, j ai développé plusieurs macros auxquelles il faut fournir les bonnes entrées et les lancer dans le bon ordre. Je présenterai le détail de ces entrées grâce à des impressions d écrans dans la prochaine section. Pour obtenir une carte qui montre l attribut interpolé, il faut donc suivre un chemin. Sinon, j ai déjà créé des cartographies de la densité de poissons du lac Eguzon, qu on peut analyser. Ces couches de résultats sont stockées dans le répertoire «Interpolation/output/» du projet d ArcMap «Eguzon.mxd», qui sont obtenues par la même procédure d interpolation. Les différentes étapes pour obtenir une carte comme celles-ci sont décrites dans la prochaine section L utilisation. 6 RIPE : Ressources Ichtyologiques en Plans d Eau
94 CHAPITRE 5. MISE EN PRATIQUE L utilisation Toutes les macros ne sont accessibles que dans le document «Eguzon.mxd», car elles sont stockées directement avec le projet. Si on ouvre un autre projet ou si on crée un nouveau sous ArcMap, elles n existent pas. Quand on ouvre le document «Eguzon.mxd», on voit une barre d outils qui s appelle «Interpolation curviligne». Par les boutons de cette barre on lance la procédure d interpolation. Il y a six macros accessibles, dont deux pour la création des couches d entrée, deux pour la préparation des données à interpoler, une pour l interpolation elle-même et une supplémentaire pour calculer la moyenne. La figure 5.16 montre cette barre d outil. Fig Access aux macros pour l interpolation Créer des couches d entrée Comme entrée pour la procédure il nous faut les couches suivantes : 1. La surface du lac comme polygon-feature-layer (ici : «lac») 2. Le thalweg comme polyline-feature-layer (ici : «thalweg») 3. Les valeurs de mesures comme point-feature-layer (ici : «filets») 4. Un raster layer représentant les profondeurs du lac (ici : «lakegridlin») 5. Les zones comme polygon-feature-layer (ici : «zones») Toutes ces couches sont déjà créées à partir des données d Excel en utilisant les fonctions d ArcMap. Elle sont disponibles dans le projet «Eguzon.mxd». Pour plus d informations comment elles sont créées consultez le rapport final. A partir de ces couches, on crée deux autres couches qui sont nécessaires pour l interpolation. L une représente le lac coupé en deux selon le thalweg et l autre représente le lac coupé en carrés. On crée la première avec la macro «splitpoly». La figure 5.17 montre quelles couches il faut lui passer comme entrée. Après avoir exécuté l opération, la macro crée une nouvelle couche dont le nom a été spécifié sur l interface. Cette couche contient deux features 7 de type polygone : la partie gauche et la partie droite du lac. Remarque : Notez bien que le nom de la couche de sortie est limité à 13 lettres. 7 terme technique : objet géographique avec une géométrie
95 CHAPITRE 5. MISE EN PRATIQUE 94 Fig Macro : Split polygon Maintenant on crée la deuxième couche ; celle qui contient le lac coupé en carrés. Cette opération peut être réalisée dans ArcView. J ai trouvé une macro, qui convient exactement à ce besoin. C est pour cela que je n ai pas reprogrammé la procédure. La macro s appelle «Square your polygon». Je l ai trouvé sur le site web d ESRI : http ://arcscripts.esri.com/details.asp?dbid= Elle est développée dans Avenue par Birgit Rasmussen et Eva Overby Bach. Je l ai implémentée dans ArcView. Elle est accessible dans le projet «cares.apr» stocké dans le répertoire «Eguzon/ArcView» en cliquant sur le bouton «Square» dans ArcView. L impression d écran 5.18 montre l affichage dans ArcView. Remarque : Si on travaille avec un autre lac ou le projet «cares.apr» n est pas disponible, il faut ajouter cette macro dans ArcView pour pouvoir utiliser sa fonctionnalité. Voici les étapes à suivre dans ArcView, pour créer la deuxième couche nécessaire pour l interpolation : 1. Ouvrez le projet «cares.apr» stocké dans le répertoire «Eguzon/Arc- View». Vous voyez deux couches. 2. Commencez une session d édition sur la couche «Carre.shp», pour pouvoir l éditer : Theme -> Start Editing. 3. Lancez la macro «Square your polygon», en cliquant sur le bouton «Square». 4. Choisissez la taille des carrés de sortie. Attention : La taille du carré que vous choisissez ici détermine la résolution de votre carte de sortie et la durée de calcul. Elle n influence pas la précision de calcul, mais la qualité de l affichage des résultats sous forme d une carte. 10 ou 15 sont des bonnes valeurs. L unité est en mètres. 5. Lancez l opération : bouton «OK» -> La macro coupe le polygone de la couche «carre» en carrés de la taille définie précémment. (La
96 CHAPITRE 5. MISE EN PRATIQUE 95 Fig La procédure de découpage dans ArcView procédure peut prendre quelques minutes selon la taille choisie.) 6. Stoppez la session d édition et saufgardez l édition : Theme -> Stop Editing ; «Save Edits to Carre.shp»? : «Yes». 7. Découpez la couche des carrés avec la forme du lac : (a) Ajouter l extension «XTools» : File -> Extension, cochez «Xtools- Extensions» (b) Paramétrage de découpe : Xtools -> Clip With Polygon(s) avec : Input Theme = «Carre.shp» et Clip Theme = «lac entier.shp». Donnez un nom au fichier de sortie. (c) Découpe : La procédure prend quelques secondes. Après il ajoute la nouvelle couche dans la vue. 8. Ajoutez la nouvelle couche dans le projet ArcMap : File -> Add Data Remarque : Si on travaille avec un autre lac, il faut créer une nouvelle couche avec seulement un feature, qui est celui d un polygone recouvrant toute la
97 CHAPITRE 5. MISE EN PRATIQUE 96 surface du lac avant exécuter les pas décrits en haut. En plus il faut ajouter la couche contenant la surface du lac dans ArcView. Préparation des données filets pour l interpolation Ayant créé les deux couches d entrée, on prépare les données points qu on veut interpoler. La préparation est réalisée avec les deux macros : «calcinput» et «calculateco». Avant les indications d utilisation, j expliquerai d abord la fonctionnalité de ces macros. La premier macro, «calcinput» crée une couche avec des points distribués régulièrement (le raster d interpolation). La macro prend les label points de tous les carrés de la couche des carrés du lac et les stocke dans une nouvelle couche. En plus, il transmet les points de mesure dans ce raster et calcule l attribut densité qui dépend du poids mesuré et du volume échantillonné. Le poids est indiqué dans le champ «poids tot» de la couche des points de mesure. Le volume échantillonné sera calculé à partir de la surface attenante indiquée dans le champ «surface m2» de la couche des points de mesure et à partir de la profondeur du lac à l endroit où le filet était posé (plus précisément : la profondeur du label point sur lequel le point de mesure sera projeté). Voici la formule de calcul de la densité : dens = p A h (5.6) avec : dens : densité p : poids A : surface attenante h : profondeur du lac Remarque : Il faut tenir compte que l unité du volume dépend de l unité dans laquelle la surface attenante et la profondeur du lac dans le raster-layer du lac est indiquée. La figure 5.19 montre quelles couches il faut choisir comme entrée. Après avoir lancé la macro il faut être patient, car il faut du temps pour calculer tous les label points et la densité des points de mesure. La durée dépend fortement de la taille choisie pour les carrés et du nombre de points de mesure dont on dispose (environ 22 minutes pour une résolution de 10 m et 28 points de mesure). On voit l avancement de calcul dans la barre de progrès en bas, qui affiche la tâche qui est en cours d exécution. («Generating raster» et «Calculating density»). N arrêtez pas le calcul, car cela terminerait tout le programme ArcMap. Après avoir exécuté l opération, la macro crée une nouvelle couche dont le
98 CHAPITRE 5. MISE EN PRATIQUE 97 Fig Macro : Calculate Input nom a été spécifié sur l interface. Cette couche contient des points distribués régulièrement : le raster d interpolation. Quelques points ont une valeur de densité indiquée dans les champs «dens g m3» et «dens kg ha». Ce sont les densités des points de mesure. On les trouve aussi en regardant la valeur du champ «original». Si c est «1», il s agit d un point de mesure (d un point original). Ne soyez pas étonné si vous trouvez moins de points originaux dans la couche créée juste avant que des points de mesure. Cela peut arriver s il y a plusieurs points de mesure qui tombent dans un label point. Dans ce cas elle prend la moyenne des poids. La deuxième macro, «calculateco» calcule les coordonnées du raster d interpolation dans le système de coordonnées curvilignes. En plus elle marque dans quelle zone un point se trouve. Elle ne crée pas une nouvelle couche de sortie, mais stocke les coordonnées curvilignes dans des nouveaux champs «xcurv» et «ycurv» du raster d interpolation et marque dans quelle zone un point se trouve (champ «zone»). Pour cette opération il y a besoin de la ligne de référence (ici : le thalweg), des zones et du lac coupé en deux (pour pouvoir déterminer de quel coté de la ligne de référence un point se trouve). La figure 5.20 montre quelles couches il faut choisir comme entrée. Ce calcul prend environ 36 minutes pour la même résolution que la précédente à cause de la lenteur de Visual Basic. La barre de progrès montre l avancement du calcul de la tâche «Calculating coordinates». Il faut savoir, que tous les points du raster d interpolation se trouvant en dehors du lac seront supprimés. Maintenant les données sont prêtes pour l interpolation.
99 CHAPITRE 5. MISE EN PRATIQUE 98 Fig Macro : calculateco L interpolation L interpolation est réalisée en utilisant l algorithme IDW. L algorithme IDW (Inverse Distance Weighted) suppose que le poids des points voisins diminue en fonction de la distance. Il faut spécifier la puissance p, qui indique l influence des points voisins. Plus p est haut, plus le poids des points éloignés diminue et les points voisins déterminent la valeur interpolée. Comme option l utilisateur peut spécifier un tampon dans lequel il doit sélectionner toutes les valeurs d influence. Ce buffer est défini sur le rayon (la distance) que l utilisateur choisi. Cette option n a de sens que si on a un grand nombre de points de mesure et s il s agit d une haute dépendance régionale de l attribut interpolé. Pour les données de filet par exemple, dont le nombre de points de mesure est très faible, il vaut mieux ne pas choisir un tampon pour inclure tous les points de mesure dans l interpolation. Remarque 1 : Si on a un grand nombre de points de mesure (> 1600), il faut entrer dans le code source et agrandir le tableau, qui contient tous les points originaux. Remarque 2 : Si on a une autre échelle ou si on travaille avec un lac de taille différente, il faut éventuellement changer la distance maximale pour le tampon dans le code source. Le calcul interpole les valeurs séparément pour chaque zone. Par exemple pour un point situé dans la zone littorale, il ne prend que les valeurs des points de mesure de cette zone, pour déterminer sa valeur. Comme distance entre des points il calcule la distance curviligne avec les coordonnées curvilignes calculées juste avant. Elle est calculée avec le théorème
100 CHAPITRE 5. MISE EN PRATIQUE 99 de Pythagore. Voici on voit comment les densités seront calculées avec la formule de l algorithme d IDW : z(x) = ni=0 ( 1 di ) p z(i) ni=0 ( 1 di ) p (5.7) avec : z(x) : la valeur du point x à interpolée n : nombre de valeurs de mesure z(i) : valeur de mesure du point i d i : la distance curviligne du point x au point i p : puissance La figure 5.21 montre quelles couches il faut choisir en entrée : Fig Macro : Interpolate Lancé la macro, elle calcule la densité de tous points «non originaux» du raster d interpolation en interpolant les valeurs des points de mesure stockées dans les champs «dens g m3» et «dens kg ha». La vitesse du calcul dépend de si on a choisi un tampon ou pas. L interpolation sans tampon est très rapide. L interpolation avec tampon peut être assez lente, dépendant du nombre de points de mesure, de la résolution du raster d interpolation et du rayon spécifié. Pour 12 valeurs de mesure, une résolution de 10 mètres et un rayon de 2000 mètres, le calcul prend 37 minutes par exemple. A la fin il rafraîchit l affichage de la couche du raster d interpolation. Elle représente le champ «dens kg ha» (la densité en kg/ha) classifié en différentes couleurs dégradées allant du jaune clair au marron foncé. La densité est classifiée par «Natural Breaks» en dix classes. Mais il est facile de changer la symbolisation de ce champ ou de choisir un autre champ, ci qui est décrit dans la prochaine section Changer l affichage.
101 CHAPITRE 5. MISE EN PRATIQUE Changer l affichage Pour symboliser un autre attribut de la couche (notamment celui de la densité en g/m3) ou pour changer l affichage actuel, il suffit d aller dans le menu «Layer Properties» -> Symbology et d y choisir un autre Color Ramp, Classification Method ou Classification. Remarque : Si ArcMap affiche le message d erreur suivant : «Maximum sample size reached. Not all records are being used. Use this sample or change maximum sample size.» augmentez le Maximum sample size dans Classification -> Sampling. Cela peut arriver, si on a plus de valeurs à classifier (des features). C est le cas, si la résolution choisie est très grande (ici : si la taille de pixel est inférieur à 12 mètres) Complément : Calculer la moyenne En outre j ai programmé une macro qui offre la possibilité de calculer la densité moyenne de toutes les zones. Cette macro s appelle «average». Elle prend toutes les valeurs interpolées de la densité (celles du raster d interpolation) et calcule la densité moyenne de toutes les zones (en kg/ha et en g/m3). Elle les stocke dans la couche qui contient les zones. La figure 5.22 montre quelles couches il faut choisir comme entrée : Fig Macro : Average Le calcul est très rapide. La macro calcule la densité de chaque zone et la stocke dans la table d attribut de la couche des zones. Après, elle affiche les densités moyennes de chaque zone avec les couleurs suivantes : jaune clair, marron clair et marron foncé. La figure 5.23 montre une cartographie de la densité créée grâce à cette procédure (avec power égale à 2, sans tampon).
102 CHAPITRE 5. MISE EN PRATIQUE 101 Fig Cartographie de la densité (couche de sortie)
103 Chapitre 6 Conclusion et perspective 6.1 Résultats atteints L objectif premier de ce travail d étude était de traiter les données résultant des échantillonnages dans un SIG et de présenter les résultats visuellement. Dans le cadre de ce projet les possibilités de rentrer des données et d accéder aux données spatiales du SIG ont été étudiées. En outre il s agissait de trouver une solution pour interpoler les données d entrée de façon appropriée. J ai développé une méthode d interpolation qui prend en compte les caractéristiques naturelles de l objet examiné. Elle est présentée dans cette étude. Le modèle de représentation et le traitement spatial des données provenant des échantillonnages pouvaient être mis en pratique. Le but final de cartographier les résultats obtenus du traitement pouvait aussi être atteint. Le projet a demandé des connaissances dans plusieurs domaines, comme l informatique, les mathématiques, la géologie et la biologie. Le savoir en l informatique et les mathématiques provient de mes études. Les connaissances nécessaires dans la géologie et la biologie, je les ai assimilées pendant la courte période du stage. Certainement on peut élargir et améliorer le projet en se fondant sur les résultats obtenus. 6.2 Perspective On peut appliquer la même procédure pour interpoler un autre attribut que celui de la densité ou pour faire des études sur un autre lac ou un autre phénomène naturel (cf ). La procédure d interpolation est implémentée d une manière générale qui permet de facilement faire des modifications, pour remplacer les algorithmes par exemple. On pourrait échanger l algorithme d interpolation, la projection des points dans le système de coordonnées curvilignes ou le calcul de distance. On trouvera des idées d évolution de ma solution dans la section 102
104 CHAPITRE 6. CONCLUSION ET PERSPECTIVE 103 Ouverture du projet Ouverture du projet La manière dont est interpolée la densité piscicole est innovante et je pense qu il serait intéressant d implémenter d autres algorithmes d interpolation pour regarder s ils donnent de meilleurs résultats. L algorithme géostatistique de cartographie «le krigeage» est éventuellement mieux adapté au problème, car il permet de prendre en compte le comportement spatial spécifique de la répartition des poissons. Grâce à l autocorrélation du krigeage, on pourrait obtenir une carte plus représentative de la réalité. Il s agit de bien choisir les paramètres. D autres algorithmes d interpolation peuvent aussi être envisagés. En outre on pourrait donner une puissance plus forte à l axe de référence qu à sa perpendiculaire en choisissant un poids plus fort pour le x que le ỹ. Cela peut être réalisé simplement en multipliant le x par une valeur constante. Le calcul de distance peut aussi être amélioré. On pourrait choisir une autre méthode que celle de Pythagore qui tient compte des angles différents des abscisses Ỹ. Une autre solution serait de calculer le ỹ d un point en prenant compte de l angle de son abscisse Ỹ et de celui des autres points. Ceci permettrait d utiliser l algorithme de Pythagore pour calculer les distances. On pourrait également envisager d additionner les ỹ de deux points, dont la distance est à calculer, plus la longueur du segment de la ligne du thalweg entre les deux points pour obtenir leur distance Application des résultats Il est bien possible d ajouter d autres points de mesure pour inclure plus de points dans l interpolation. Cela peut se faire simplement en posant les points au bons endroits du modèle numérique du lac sans modifier le code source. La procédure d interpolation obtenue peut aussi être appliquée sur d autres problématiques. On pourrait imaginer d interpoler de la même manière des attributs d autres phénomènes naturels dont la géométrie est le facteur écologique déterminant la répartition spatiale. Une interpolation curviligne pourrait être effectuée sur les plantes aquatiques des lacs ou des rivières ou sur la végétation des forêts ou des montagnes, par exemple. Il suffit d avoir une ligne de référence qui est dérivée de la caractéristique naturelle de l objet examiné.
105 Bibliographie [AODH03] ESRI : ArcObjects Developer Help, ArcGIS Version 8.3 [Bo02] [Co04] [EF02] Patricia Bordin : SIG : concept, outils et données. Hermès Science Publications, Paris 2002 Gildas Le Corre - IFREMER, Sète, : Outil d analyse par Krigeage : http :// publi15.pdf, Atelier SIG COPEMED, Malaga 15-19/12/1998 ESRI - France : Séminaire ArcGIS pour le Mastère SILAT, Décembre 02 [ENSG02] Ecole Nationale des Sciences Géographiques - Centre d Etudes et de Recherche en SIG : ArcGIS 8.1 Fonctionnalités, Juillet v1.0 [ENSG03] Ecole Nationale des Sciences Géographiques - Centre d Etudes et de Recherche en SIG : Introduction à la programmation en VBA sur ArcGIS, Juillet 2003 [ESRI00] ESRI : Developing Applications with ArcInfo : An Overview of ArcObjects, An ESRI White Paper, Avril 2000 [ESRI02] ESRI : Getting Started With ArcGIS, New York 2002 [ESW04] [FAQ04] [HaAn03] ESRI - site web : http :// arcgisxtensions/spatialanalyst/faqs.html/#q12, Avril 04 ESRI - site web : http :// ESRI/ news/articles/n / m.html, John E. Harmon, Steven J. Anderson : The Design and Implementation of Geographic Information Systems. John Wiley & Sons, Hoboken, New Jersey 2003 [HE02] CD de M. Heintz : Eguzon, 2002 [IGN04] IGN - site web : http :// rubrique.asp?rbr - id 1068&lng id FR, Mai 04 [Li99] Dr. Dr.-Ing. Wilfried Linder : Geo-Informations-systeme. Springer Verlag, Berlin Heidelberg 1999 [OFPU96] Réseaux et territoires - Significations croisées, sous la direction de Jean-Marc Offner et Denise Pumain, Editions de l aube,
106 BIBLIOGRAPHIE 105 [ON03] [RO00] [RSV02] [ShCh03] Benoit St-Onge - GEO7531 STRUCTURES DES DONNÉES APPLIQUÉES AUX SIG : http :// geo7531/recueil.pdf, Département de géographie Université du Québec à Montréal, 2003 Birgit Rasmussen et Eva Overby Bach : Macro : Square your polygon, http ://arcscripts.esri.com/details.asp?dbid=11893 Philippe Rigaux, Michel Scholl, Agnès Voisard : Spatial Databases With Application to GIS. Academic Press, USA 2002 Shashi Shekhar, Sanjay Chawla : Spatial Databases : A Tour. Prentice Hall, New Jersey 2003
107 Annexe A 106
108 ANNEXE A. 107 A.1 Class Diagram Key Fig. A.1 Class Diagram Key
109 ANNEXE A. 108 A.2 Cartographies Fig. A.2 Interpolation linéaire de la densité piscicole des données filets en kg/ha
110 ANNEXE A. 109 Fig. A.3 Interpolation curviligne de la densité piscicole des données filets en kg/ha avec p=2 et sans tampon
111 ANNEXE A. 110 Fig. A.4 Interpolation curviligne de la densité piscicole des données filets en kg/ha avec p=2 et avec tampon=2000m
112 ANNEXE A. 111 Fig. A.5 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et avec tampon=2000m
113 ANNEXE A. 112 Fig. A.6 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et sans tampon
114 ANNEXE A. 113 Fig. A.7 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et avec tampon=2000m
115 ANNEXE A. 114 Fig. A.8 Répartition de la densité en [g/m3] interpolée à partir des données filets avec p=2 et avec tampon=2000m Fig. A.9 Répartition de la densité [kg/ha] interpolée à partir des données filets avec p=2 et sans tampon
116 Annexe B 115
117 ANNEXE B. 116 B.1 User Tips «Create Contours» Create Contours : Functionality About This program was written using Visual Basic for Applications in ArcGIS 8.3. To use, simply import the form into the Visual Basic Editor in ArcMap and run. This macro was developed at Maison de la Télédétection, Montpellier (France) in March 04. Developer : Claudia Dittrich (claudia dittrichgmx.de) Supervisors : Prof. Dr. Peinl, Dr. Nadou Cadic, Dr. Jean-Pierre Chéry, Dr. Jean-Stéphane Bailly Description This program derives the contours of a surface based on given elevation values. It functions in a similar way to Contour of Spatial Analyst, but differs from the latter in that it generates contours on specified elevation values rather than basing them on a specified interval. The macro presents a user interface with a dropdown list of all raster layers in the current data frame, a listbox of possible elevation values and a textbox for the output file. Before launching the program, select the input raster layer for which you wish the contours to be calculated. Then specify the elevation value(s). You can select as many values as required. Finally select the output file. The contours will appear as 2D polylines in a new shapefile in the specified folder. The height of each contour is stored in the attributed field elevation. The created shapefile will be assigned the same coordinate system as the Map s SpatialReference and will be added as a new layer to the current map. User Tips You must have added a raster layer to the current map. WorkspaceEdit must be turned off as this member needs to add a field to the feature class. The elevation values presented in the listbox may be changed by editing the code line N 68 lb elevation.additem i, if you want values other than the default settings.
118 ANNEXE B. 117 B.2 Code source Listing B.1 Calcul de la densité loop a l l n e t s Dim pgeomfilet As IGeometry Dim p F i l t e r As I S p a t i a l F i l t e r Dim pfeaturecursor As IFeatureCursor Dim presultfeatcursor As IFeatureCursor Dim presultfeat As IFeature Dim squareid As Long Dim pointcontained As Boolean Dim pfeature As IFeature Dim r a s t e r S u r f a c e As I S u r f a c e Dim pgeometry As IGeometry Dim point As IPoint Dim x As Double Dim y As Double Dim z As Double Dim s u r f a c e As I n t e g e r Dim weight As Double Dim oldweight As Double Dim newweight As Double Dim d e n s i t y As Double Dim olddensity As Double Dim newdensity As Double Dim weightindexfield As Long Dim s u r f a c e I n d e x F i e l d As Long Set pfeaturecursor = p F e a t u r e C l a s s F i l e t s. Update ( Nothing, False ) Set pfeature = pfeaturecursor. NextFeature Point f e a t u r e s u r f a c e = 0 pointcontained = False Do Until pfeature Is Nothing o r i g i n a l weight weightindexfield = p F e a t u r e C l a s s F i l e t s. FindField ( p o i d s t o t ) s u r f a c e o f t he c a l c u l a t e d weight in the area
119 ANNEXE B. 118 s u r f a c e I n d e x F i e l d = p F e a t u r e C l a s s F i l e t s. FindField ( surface m2 ) s u r f a c e = pfeature. Value ( s u r f a c e I n d e x F i e l d ) l o o k in which square c u r rent p o i n t i s l o c a t e d Set pgeomfilet = pfeature. Shape Set p F i l t e r = New S p a t i a l F i l t e r s e t t i n g the Geometry, GeometryField and S p a t i a l R e l parameters With p F i l t e r Set. Geometry = pgeomfilet. GeometryField = SHAPE. S p a t i a l R e l = e s r i S p a t i a l R e l W i t h i n End With e x e c u t e t he f i l t e r only one r e s u l t > square in which c u rrent p o i n t i s l o c a t e d pointcontained = False Set presultfeatcursor = Nothing Set presultfeatcursor = pfeatureclasscares. Search ( p F i l t e r, False ) Set presultfeat = presultfeatcursor. NextFeature Square f e a t u r e Do Until presultfeat Is Nothing pointcontained = True the i d o f the square which c o n t a i n s c u r r e n t p o i n t squareid = presultfeat. OID Set presultfeat = presultfeatcursor. NextFeature Loop I f pointcontained = True Then update l a b e l p o i n t t a b l e with c a l c u l a t e d d e n s i t y Set updatequeryfilter = New QueryFilter updatequeryfilter. WhereClause = FID = & squareid Set updatefeaturecursor = pfeatureclasslp. Update ( updatequeryfilter, False ) Set updatefeat = updatefeaturecursor. NextFeature
120 ANNEXE B. 119 While Not updatefeat I s Nothing I f d e n s i t y I n d e x F i e l d <> 1 Then F i e l d v e r i f i c a t i o n g e t depth z o f l a b e l p o i n t Set r a s t e r S u r f a c e = GetSurfaceFromLayer ( prasterlayer ) Set pgeometry = updatefeat. Shape Set point = pgeometry x = point. x y = point. y z = r a s t e r S u r f a c e. z ( x, y ) t a k e o r i g i n a l weight o f net and c a l c u l a t e the d e n s i t y in t h i s p o i n t i f t h e r e i s more than one net in one and the same square, c a l c u l a t e h i s average I f ( updatefeat. Value ( d e n s i t y I n d e x F i e l d ) <> 0 And updatefeat. Value ( p o i d s I n d e x F i e l d ) <> 0) Then oldweight = updatefeat. Value ( p o i d s I n d e x F i e l d ) newweight = pfeature. Value ( weightindexfield ) weight = ( oldweight + newweight ) / 2 olddensity = updatefeat. Value ( d e n s i t y I n d e x F i e l d ) newdensity = ( weight / ( s u r f a c e z ( 1) ) ) 1, because the depth z i s s m a l l e r than zero d e n s i t y = ( newdensity + olddensity ) / 2 Else weight = pfeature. Value ( weightindexfield ) d e n s i t y = ( weight / ( s u r f a c e z ( 1) ) ) 1, because the depth z i s s m a l l e r than zero End I f p r i n t t o t a l weight updatefeat. Value ( p o i d s I n d e x F i e l d ) = weight p r i n t boolean updatefeat. Value ( OrigIndexField ) = 1 p r i n t d e n s i t y in [ g/m3] updatefeat. Value ( d e n s i t y I n d e x F i e l d ) = d e n s i t y p r i n t d e n s i t y in [ kg /ha ]
121 ANNEXE B. 120 updatefeat. Value ( dens kg haindexfield ) = d e n s i t y 1 0 z ( 1) updatefeaturecursor. UpdateFeature updatefeat End I f Set updatefeat = updatefeaturecursor. NextFeature Wend Set updatefeaturecursor = Nothing End I f Set pfeature = pfeaturecursor. NextFeature Loop
122 Table des figures 3.1 Principe des images raster [Bo02] Geometrie dans une geodatabase [ENSG03] Triangulation de Delaunay [ENSG02] Principes des MNT [Bo02] ArcMap ArcCatalog Les shapefiles Table d attributs d une coverage Les coverage Le rôle d ArcSDE La geodatabase Acces aux données par des applications [EF02] Sauvegarde des personnalisations [ENSG03] Vue simplifiée sur ArcInfo [ESRI00] Abstract Class : Geometry [ENSG03] Class Diagram Key extrait de Geodatabase, schéma simplifié par [ENSG03] L interface IRelationalOperator, [AODH03] L interface IProximiyOperator, [AODH03] Calculs de distance [AODH03] Méthode : ReturnNearestPoint [AODH03] Méthode : Simplify de ITopologicalOperator, [AODH03] L interface ITopologicalOperator [AODH03] Algorithme d interpolation standard Système de coordonnées conventionnel Système de coordonnées curvilignes Points GPS Projection Lambert, [IGN04] Carte : TIN Carte : Raster Carte : Filets posés
123 TABLE DES FIGURES MxDocument Zoom dans la couche des contours Contours Centroïds des géométries [AODH03] Création du raster d interpolation Le point à examiner et un vertex de la ligne considérés comme deux vecteurs qui se rencontre dans le point T Données filets interpolées avec p=2 et sans tampon Données filets interpolées avec p=2 et sans tampon Données acoustiques interpolées avec p=2 et sans tampon Densité piscicole moyenne Access aux macros pour l interpolation Macro : Split polygon La procédure de découpage dans ArcView Macro : Calculate Input Macro : calculateco Macro : Interpolate Macro : Average Cartographie de la densité (couche de sortie) A.1 Class Diagram Key A.2 Interpolation linéaire de la densité piscicole des données filets en kg/ha A.3 Interpolation curviligne de la densité piscicole des données filets en kg/ha avec p=2 et sans tampon A.4 Interpolation curviligne de la densité piscicole des données filets en kg/ha avec p=2 et avec tampon=2000m A.5 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et avec tampon=2000m A.6 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et sans tampon A.7 Interpolation curviligne de la densité piscicole des données filets en g/m3 avec p=2 et avec tampon=2000m A.8 Répartition de la densité en [g/m3] interpolée à partir des données filets avec p=2 et avec tampon=2000m A.9 Répartition de la densité [kg/ha] interpolée à partir des données filets avec p=2 et sans tampon
124 Listings 3.1 Exemple pour une CoClass Création d une classe L interface par default L interface IPoint Query Interface Enchaînement des interfaces Même résultat sans l enchaînement QueryFilter Spatial Filter Construction d une géométrie à partir de plusieurs géométries Relational Operator Opération topologique Requête : Profondeur minimale Requête : Calcul de poids Requête : Calcul du poids total Requête : Groupement des filets Requête : Poids total plus profondeur moyenne Recalcule le poids Variables globales : «Application» et «ThisDocument» Focus Map Accès à la couche sélectionnée par le document [ENSG03] Accès à une couche par le bloc de données [ENSG03] Accès aux entités spatiales d une couche Méthode pour créer des contours Feature fermé? Création du raster d interpolation Calcul du ỹ Coupage de la géométrie du lac Assignation d une notation pour le ỹ Trouver le sens du thalweg Coupage de la ligne du thalweg Détermination de la zone Routine d interpolation avec un tampon B.1 Calcul de la densité
125 Index abstract classes, 29 adaption, 26 analyse spatiale, ArcCatalog, 18 ArcGIS, ArcMap, 18 ArcObjects, ArcToolbox, 18 bathymétrie, 9, 46 création, 60 classes, 30 coclasses, 30 coordonnées curvilignes, coverage, curseur, 34 echo-sondeur, 9, 48, 55, 88 Eguzon, 9 ESRI, 17 fill sink, 63 flowaccumulation, 63 flowdirection, 63 Gauß-Krüger, 60 geodatabase, GPS, 9 point, 48 IDW, 44 équation, 45, 99 implémentation, 83 IGN, 48 interpolation algorithmes, curviligne, 51, IProximityOperator, 39 IRelationalOperator, 37 ITopologicalOperator, 41 kriging (krigeage), 45 lac Chambon, 9 Lambert, mode raster, mode TIN, mode vectoriel, Natural Neighbour, 45 Niveau Document, 28 Niveau Normal template, 27 Niveau Project template, 28 notation positive, négative, 78 pose, 55 Pythagore, 50 implémentation, 84 Query Interface (QI), 32 QueryFilter, 34 raster d interpolation, 51 création, RIPE, 5 shapefile, 20 SpatialFilter, 34 Spline, 45 stockage, 19 strates, 10 streamshape, 63 système de coordonnées curvilignes,
126 INDEX 125 thalweg, 46 création, 62 TIN création, 60 Visual Basic for Applications (VBA), WGS84, 9 zone attenante données acoustiques, 57 données filets, 48 zones, 10 création, 69 détermination, 81
Qu est-ce que ArcGIS?
2 Qu est-ce que ArcGIS? LE SIG ÉVOLUE Depuis de nombreuses années, la technologie SIG améliore la communication, la collaboration et la prise de décision, la gestion des ressources et des infrastructures,
Glossaire. base de données géographiques Voir géodatabase (GDB).
Glossaire analyse Processus d identification d une question ou d un problème à résoudre, de modélisation de ce problème, de recherche des résultats de modélisation, d interprétation des résultats, d élaboration
Les Géodatabases en 9.2
Les Géodatabases en 9.2 Session Technique Géodatabase 9.2 Versailles SIG 2007 Nouveautés dans les Géodatabases Géodatabase adaptée À la taille de l entreprise À l architecture déployée Aux processus de
Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France
Développer avec les technologies ESRI ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France Le système ArcGIS Desktop Client mobile Client léger ArcReader ArcView ArcEditor
Rapport de Mini-Projet en ArcGIS Engine
Rapport de Mini-Projet en ArcGIS Engine Réalisée par : Asmae BENMESSAOUD 3ème Année Cycle d Ingénieur Géoinformation Année Universitaire 2010- Sommaire 1 Introduction L analyse géographique et la visualisation
Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS
Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS Gaëtan Lavenu Jean-Thomas Rouzin Les grandes lignes Le SIG dans un contexte «Entreprise»: contexte, considérations et challenges. Les
Glossaire. attribut de clé Voir clé primaire. base de données géographiques Voir géodatabase (GBD).
!"#$%&'! #&$ (&(')*#+, $-) #- './0 12&,-#' 2 Glossaire analyse Processus d identification d une question ou d un problème à résoudre, de modélisation de ce problème, de recherche des résultats de modélisation,
Forthcoming Database
DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of
ArcGIS Desktop Les nouveautés de la version 10. Gaëtan LAVENU
ArcGIS Desktop Les nouveautés de la version 10 Gaëtan LAVENU La plateforme ArcGIS 10 Cloud Mobile Web Visualiser Créer Collaborer Découvrir Gérer Analyser Entreprise Locale Bureautique Les nouveautés d
ArcGIS Server 9.3.1 / 9.4. Gaëtan LAVENU Jean-Marie DULISCOUET
ArcGIS Server 9.3.1 / 9.4 Gaëtan LAVENU Jean-Marie DULISCOUET ArcGIS Server 9.3.1 / 9.4 Plus de performance Plus de fonctionnalités Des processus simplifiés (développement, déploiement, licences) Plus
Support de TD ArcGIS 10.1. Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT 2014-2015. 3 e année ingénieur
JEAN-MARC GILLIOT 2014-2015 Durée 1,5 heures Introduction à l automatisation et au développement avec ArcGIS 10.1 3 e année ingénieur Support de TD ArcGIS 10.1 Grande école européenne d'ingénieurs et de
Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne
Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne Conférence francophone ESRI 2006 12 octobre Issy-les-Moulineaux Conseil général de Seine-et-Marne Direction Générale des
ArcGIS. for Server. Sénégal. Comprendre notre monde
ArcGIS for Server Sénégal Comprendre notre monde ArcGIS for Server Créer, distribuer et gérer des services SIG Vous pouvez utiliser ArcGIS for Server pour créer des services à partir de vos données cartographiques
ArcGIS 10 Christophe Tourret Gaëtan Lavenu
ArcGIS 10 Christophe Tourret Gaëtan Lavenu ArcGIS 10 Bureautique Web Mobile 10 9.3.1 Online/Cloud Serveur 9.0 9.1 9.2 9.3 Projets ArcGIS 10 Imagerie Partage Productivité Gestion des données Temporalité
ArcGIS Mobile 9.3. Cédric Pesty Gael Simon. Conférence SIG 2008 Ateliers Techniques. S'il vous plait! Merci d'éteindre vos appareils portables
Conférence SIG 2008 Ateliers Techniques 1 er et 2 Octobre 2008 S'il vous plait! Merci d'éteindre vos appareils portables ArcGIS Mobile 9.3 Cédric Pesty Gael Simon 1 Agenda de la session Introduction sur
ArcGIS. for Server. Comprendre notre monde
ArcGIS for Server Comprendre notre monde ArcGIS for Server Créer, distribuer et gérer des services SIG Vous pouvez utiliser ArcGIS for Server pour créer des services à partir de vos données cartographiques
ArcGIS 10.1 for Server
SIG 2012 - Conférence francophone Esri Versailles, France Atelier Technique - 4 Oct. 2012 ArcGIS 10.1 for Server Gaëtan LAVENU Plan de la présentation La vision Une nouvelle architecture Des nouveaux processus
Cours Systèmes d Information Géographique
Cours Systèmes d Information Géographique Durée : 55 h Intervenants : Pr. Amadou Tahirou Diaw 1-3, Dr Gualbert S. Dorégo 2-3, Dr Alla Manga 3, Ing. Aminata Diokhané 4, Dr El hadji Balla Dièye 5-3, Dr Cheikh
Présentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre [email protected] Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
Intégration ESRI - SAP Geo-Enablement de l ERP SAP Exemple : GEO.e. Christophe Lapierre Enrique Yaptenco Professional Services - ESRI Suisse
Intégration ESRI - SAP Geo-Enablement de l ERP SAP Exemple : GEO.e Christophe Lapierre Enrique Yaptenco Professional Services - ESRI Suisse 2010 ESRI Suisse SA Agenda + Introduction et présentation + L
Cours iguess. inotes v10.1
Cours iguess inotes v10.1 Ce projet a été financé avec le soutien de la Commission européenne. Cette publication (communication) n engage que son auteur et la Commission n est pas responsable de l usage
Evolutions technologiques : ArcGIS Desktop. Mehdi HUGUET Thierry BABELAERE 01-10-2009
Evolutions technologiques : ArcGIS Desktop Mehdi HUGUET Thierry BABELAERE 01-10-2009 Sommaire ArcGIS 9.3.1 Une nouvelle version Paquetage de couches et partage de données Bing Maps accessible dans AGD,
Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France
Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France UC 2007 Tech Sessions 1 Plan de la présentation Introduction Organiser et gérer ses données Concevoir
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online Table des matières 1 Commencer avec ArcGis Online... 2 2 Créer des cartes I (utiliser les cartes disponibles /les services de
MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15
MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué
Cadastre du bruit SIT-JURA. Connecteur Arcview9.x - MSAccess. Mode d emploi. Appel formulaire. Page 1 sur 15
Cadastre du bruit SIT-JURA Connecteur Arcview9.x - MSAccess Mode d emploi Appel formulaire Page 1 sur 15 Table des matières 1. INSTALLATION 3 2. UTILISATION 3 2.1. Création de nouvelles géodatabases 7
Sofrecom, filiale du Groupe France Telecom Orange - Intégrateur de solution SIG. Expériences et solutions SIG
Sofrecom, filiale du Groupe France Telecom Orange - Intégrateur de solution SIG Expériences et solutions SIG Sommaire Présentation de Sofrecom Notre offre SIG Le projet TIGRE pour France Telecom, notre
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server
ArcGIS. for Mobile. Comprendre notre monde
ArcGIS for Mobile Comprendre notre monde Accroître l efficacité des équipes mobiles Qu est-ce qu un SIG nomade? La technologie SIG (système d information géographique) mobile étend le SIG au-delà de l
Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre
Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du
Mise en place d'une chaîne de production raster multi-échelles
25 Février 2014 Thierry Boch [email protected] Mise en place d'une chaîne de production raster multi-échelles FranceRaster Programme FranceRaster v4 Le produit "France Raster", coédition Esri France
Didacticiel de mise à jour Web
Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.
Prédiction de couverture de champ radioélectrique pour les réseaux radiomobiles : L apport du Système d Information Géographique ArcInfo 8
Prédiction de couverture de champ radioélectrique pour les réseaux radiomobiles : L apport du Système d Information Géographique ArcInfo 8 Christine TURCK 1 * et **, Christiane WEBER**, Dominique THOME*
RAPID 3.34 - Prenez le contrôle sur vos données
RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux
Introduction aux SGBDR
1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux
Prise en main du logiciel de SIG MapInfo
Prise en main du logiciel de SIG MapInfo Myriam Vendé-Leclerc 01/08/2008 1 SOMMAIRE SOMMAIRE... 2 Données fournies pour le TP... 4 I- Structure des données sous Mapinfo... 5 II- Ouvrir une table... 6 III-
Logiciel ArpentGIS-PC Guide de l utilisateur
D3E Electronique Logiciel ArpentGIS-PC Guide de l utilisateur D3E Electronique SA 2003-2008 D3E ELECTRONIQUE Parc du Grand Troyes 3 Rond-point Winston Churchill 10302 SAINTESAVINE Cedex Email : [email protected]
AMELIORATIONS DES FONCTIONNALITES DISPONIBLES
AMELIORATIONS DES FONCTIONNALITES DISPONIBLES DANS LE GEOSERVICE RIS.NET GESTION V.2 Zoom + vue) : Permet de faire un zoom avant sur la carte (uniquement en cadrant une Zoom à l échelle déroulante, : Possibilité
Matérialiser les données d une BdD : créer une carte de densité de points par maillage
Matérialiser les données d une BdD : créer une carte de densité de points par maillage «Cet outil permet de créer un maillage régulier de polygones (carrés, rectangles ou nids d'abeille) à partir des entités
Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions
Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces
Les nouveautés de FME 2014
Les nouveautés de FME 2014 Cette année FME part à la conquète des usages de demain tout en gardant son credo de toujours : faciliter votre quotidien. Le web est à l honneur avec : La sortie de FME Cloud
Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs
Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs Manuel d Utilisation et Documentation version du 27/11/09 MOBIGiS / CETE
Travaux Pratiques sur les Systèmes d Information Géographique - SIG - Initiation à ArcGIS
Travaux Pratiques sur les Systèmes d Information Géographique - SIG - Initiation à ArcGIS Avant-propos Ce manuel est une initiation à l utilisation du logiciel ArcGIS. Bien qu il ait été rédigé en se basant
Fiche technique RDS 2012
Le 20/11/2013 OBJECTIF VIRTUALISATION [email protected] EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Fiche technique RDS Objectif 02/04/2013 20/11/2013
Créer le schéma relationnel d une base de données ACCESS
Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...
11 Février 2014 Paris nidays.fr. ni.com
11 Février 2014 Paris nidays.fr 1 Choisir la bonne architecture logicielle pour automatiser les systèmes de test Jérémy Charavet Ingénieur d Applications, National Instruments France Une architecture logicielle
Optimiser pour les appareils mobiles
chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...
ArcScan Tutorial. Copyright 1995-2012 Esri All rights reserved.
Copyright 1995-2012 Esri All rights reserved. Table of Contents Exercise 1: Interactive vectorization........................... 3 Exercice 2 : Vectorisation automatique.......................... 12 Copyright
Information utiles. [email protected]. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Créer et partager des fichiers
Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation
INTRODUCTION AUX BASES de DONNEES
INTRODUCTION AUX BASES de DONNEES Équipe Bases de Données LRI-Université Paris XI, Orsay Université Paris Sud Année 2003 2004 1 SGBD : Fonctionnalités et Principes Qu est qu une base de données? Un Système
Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.
Un SIG collaboratif pour la recherche historique Partie 1 : Naissance et conception d un système d information géo-historique collaboratif Claire-Charlotte Butez, Francesco Beretta To cite this version:
HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager
HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager Hitachi Storage Command Suite Portfolio SAN Assets &
Sylvain Sylvain GONNET Géomètre 2 ème année [ ]
Sylvain Sylvain GONNET Géomètre 2 ème année [ ] 1 Préambule La municipalité de Battir souhaite créer un SIG permettant mettre en valeur le patrimoine paysager et humain. De plus, ce SIG devra devenir un
Bases de données relationnelles : Introduction
Bases de données relationnelles : Introduction historique et principes V. Benzaken Département d informatique LRI UMR 8623 CNRS Université Paris Sud [email protected] https://www.lri.fr/ benzaken/
Documentation Administrateur
Documentation Administrateur Gestion des droits Comprendre Gestion des fiches Gestion des extensions Réaliser Gestion des utilisateurs Accompagner Gestion des thèmes Siège social : 24 av de l Europe 44
Programmation Python pour Arcgis
Programmation Python pour Arcgis Un exemple d amélioration de l outil «champs de vision» (viewshed) ERIC BAILLY, UNIVERSITÉ DE NICE [email protected] Une étude de visibilité peut être réalisée par le
Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013
Cube de textes et opérateur d'agrégation basé sur un modèle vectoriel adapté Text Cube Model and aggregation operator based on an adapted vector space model Lamia Oukid, Ounas Asfari, Fadila Bentayeb,
BIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»
ArcGIS for INSPIRE SIG RAIL 2011
ArcGIS for INSPIRE SIG RAIL 2011 ArcGIS supporte INSPIRE avec ArcGIS for INSPIRE Services de Découverte, Services de Visualisation, Services de Téléchargement, Métadonnées et Modèles de données Géoportail
Le langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Gestion des documents associés
Gestion des documents associés Gestion des documents associés 1 Introduction 1.1 1.2 Introduction 4 Principe des deux modes de gestion des documents 5 2 Les pièces jointes ArcGIS 2.1 2.2 2.3 2.4 2.5 2.6
Fiches d aide à MapInfo
Fiches d aide à MapInfo Versions 6 à 8 Utilisation des fiches La protection du document en PDF a pour seul but d avoir un retour en cas d erreurs dans le document. N hésitez pas à me contacter pour toute
Nouveautés ArcGIS 10.1 for Server
Nouveautés ArcGIS 10.1 for Server 26 septembre 2012 Présenté par: Martin Couture- [email protected] Agenda Durant cette présentation: 1) Amélioration de l architecture 2) Méthodes de publications 3) API
Bases de données relationnelles
Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses
1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Once the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
I4 : Bases de Données
I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS
Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra
CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION
CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION par Julien Gaffuri JRC IES SDI unit Via Enrico Fermi, 21027 Ispra, Italie [email protected] Les cartes en ligne pourraient être améliorées par l utilisation
Notes de cours : bases de données distribuées et repliquées
Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées
Utilisation du SIG dans une entreprise industrielle pour l analyse et la prise de décision
309 Schedae, 2007 Prépublication n 47 Fascicule n 2 Utilisation du SIG dans une entreprise industrielle pour l analyse et la prise de décision Mohamed Najeh Lakhoua UR : Système, Énergétique, Productique
Guide de recherche documentaire à l usage des doctorants. Partie 1 : Exploiter les bases de données académiques
Guide de recherche documentaire à l usage des doctorants Partie : Exploiter les bases de données académiques Sylvia Cheminel Dernière mise à jour : décembre 04 PANORAMA DES SOURCES DOCUMENTAIRES ACADEMIQUES...
www.geomaticien.com Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis
www.geomaticien.com. Par Daniel FAIVRE WebMapper......... Publication de cartes pour Internet avec ArcGis WebMapper Publication de cartes pour le web Fonctionnalités de l'application WebMapper exporte
SQL Server Installation Center et SQL Server Management Studio
SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server
Objectifs du TP : Initiation à Access
Objectifs du TP : Initiation à Access I. Introduction Microsoft Access fait partie de l ensemble Microsoft Office. C est un SGBDR (système de gestion de bases de données relationnelles) présentant une
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Les bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)
FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE Database as a Service (DBaaS) 1 The following is intended to outline our general product direction. It is intended for information purposes only, and may
Visual Paradigm Contraintes inter-associations
Visual Paradigm Contraintes inter-associations Travail de Bachelor d'informaticien de gestion Partie C Présentation de Visual Paradigm 1 Présentation de Visual Paradigm For UML L objet du travail de Bachelor
TD Introduction aux SIG avec ArcGis 9
3 année ingénieur Agroparistech DA 2009/10 TD Introduction aux SIG avec ArcGis 9 TD n 6 : Initiation à l analyse en mode RASTER ave c Spatial Analyst Jean-marc Gilliot 2009-2010 [email protected]
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation
BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :
BASE BioArray Software Environment (BASE) est une base de données permettant de gérer l importante quantité de données générées par des analyses de bio-puces. BASE gère les informations biologiques, les
SharePoint (Toute la Gamme)... 1 Office 2010 (Toute la Gamme)... 2 OLAP (Toute la Gamme)... 2 STATISTICA Connecteur PI (Produit Complémentaire)...
SharePoint (Toute la Gamme)... 1 Office 2010 (Toute la Gamme)... 2 OLAP (Toute la Gamme)... 2 STATISTICA Connecteur PI (Produit Complémentaire)... 3 Introduction... 3 Échelle Interactive... 4 Navigation
PostGIS, un module de PostgreSQL pour les données spatiales
PostGIS, un module de PostgreSQL pour les données spatiales Olivier Courtin Vincent Picavet Licence GNU FDL PGDay.eu 2009 OSLANDIA SARL / 5. novembre 2009 / www.oslandia.com / [email protected] Qui sommes
Instructions Mozilla Thunderbird Page 1
Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Chapitre VIII. Les bases de données. Orientées Objet. Motivation
Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet
Introduction à la B.I. Avec SQL Server 2008
Introduction à la B.I. Avec SQL Server 2008 Version 1.0 VALENTIN Pauline 2 Introduction à la B.I. avec SQL Server 2008 Sommaire 1 Présentation de la B.I. et SQL Server 2008... 3 1.1 Présentation rapide
WEB page builder and server for SCADA applications usable from a WEB navigator
Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel
Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?
Le "Portrait de la Biodiversité Communale" est un document réalisé au niveau national pour chaque commune, regroupant les connaissances publiques disponibles et mobilisables à l'échelle nationale en matière
Système de Stockage Sécurisé et Distribué
Système de Stockage Sécurisé et Distribué Philippe Boyon [email protected] ACTIVE CIRCLE QUI SOMMES NOUS? Editeur français, spécialiste du stockage de fichiers et de la gestion de données
SHAREPOINT PORTAL SERVER 2013
Powered by TCPDF (www.tcpdf.org) SHAREPOINT PORTAL SERVER 2013 Sharepoint portal server 2013 DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS Réf: MS20488 Durée : 5 jours (7 heures) OBJECTIFS
Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR
Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains
La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(
La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG( InfraSIG) Jean-Pierre KINNAERT Directeur Département de la géomatique Service
Introduction aux bases de données
Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer
