90
1/90 Étude et conception des outils aidant à compléter l’utilisation d’AnémoScope Rapport interne – LREE08 Laboratoire de recherche en Énergie Éolienne Août 2009 Richard VAGLIANI [email protected] Adrian ILINCA Laboratoire de Recherche en Énergie Éolienne (LREE), Université du Québec à Rimouski, 300 allée des Ursulines, Rimouski (Québec), Canada, G5L 3A1, Tél. : (418)-723-1986 #1460, [email protected]

Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

1/90

Étude et conception des outils aidant à compléter l’utilisation d’AnémoScope

Rapport interne – LREE08 Laboratoire de recherche en Énergie Éolienne

Août 2009

Richard VAGLIANI [email protected]

Adrian ILINCA

Laboratoire de Recherche en Énergie Éolienne (LREE), Université du Québec à Rimouski, 300 allée des Ursulines,

Rimouski (Québec), Canada, G5L 3A1, Tél. : (418)-723-1986 #1460,

[email protected]

Page 2: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

2/90

Table des Matières Table des Matières ..................................................................................................................... 2 Liste des Tableaux ...................................................................................................................... 4 Liste des Figures ......................................................................................................................... 5 Préambule ................................................................................................................................... 6 Chapitre 1: Extraction des données d’AnémoScope .................................................................. 7

1.1) Gestion des dossiers ................................................................................................... 7 1.2) Exportation des données ............................................................................................. 7 1.3) Forme et contenu des fichiers UH et ER. ................................................................... 9

Chapitre 2: Les données réelles d’Environnement Canada ...................................................... 11

2.1) Récupération des données horaires .......................................................................... 11 2.2) Extraction des données réelles et exploitation ......................................................... 13

2.2.1) La feuille « Docs Utilises » .............................................................................. 13 2.2.2) La feuille « Exploitation » ................................................................................ 13

Chapitre 3: Exploitation des données d’AnémoScope ............................................................. 15

3.1) L’intégration des données d’AnémoScope et d’Environnement Canada. ................ 15 3.1.1) La feuille « Docs Utilises » .............................................................................. 15 3.1.2) Les feuilles « Données Weibull » et « Données Orientation » ........................ 15 3.1.3) Les feuilles « Points à Considérer Weibull » et « Points à Considérer Orientation » ..................................................................................................................... 16 3.1.4) La Feuille « Valeurs Réelles » ......................................................................... 18

3.2) Comparaison des données : ...................................................................................... 18 3.2.1) Les feuilles « Homogénéisation Weibull » et « Homogénéisation Orientation » 18 3.2.2) La feuille « Comparaison Weibull » ................................................................ 21 3.2.3) La feuille « Comparaison Orientation » ........................................................... 23

Chapitre 4: Les Données de Topographie. ............................................................................... 26

4.1) Les données Géobase ............................................................................................... 26 4.2) Utilisation de Global Mapper ................................................................................... 28

4.2.1) Placer un point de référence. ............................................................................ 29 4.2.2) Définition de la zone d’étude du relief autour de notre point. ......................... 30 4.2.3) Obtenir les lignes de relief ............................................................................... 32

4.3) Exploitation des lignes de relief. .............................................................................. 34 4.3.1) La feuille « Docs Utilises » .............................................................................. 34 4.3.2) La feuille « Données Relief » ........................................................................... 34 4.3.3) La feuille « Exploitation » ................................................................................ 35

Conclusion ................................................................................................................................ 38 Bibliographie ............................................................................................................................ 39

Page 3: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

3/90

ANNEXES: ANNEXE I : Macro Parcourir() et Parcourir2() ....................................................................... 40 ANNEXE II : Macro Lecture() et Lecture2() .......................................................................... 46 ANNEXE III : Macro Choix_point() ....................................................................................... 53 ANNEXE IV : Macro k_et_c() ................................................................................................ 56 ANNEXE V : Macro Comp() ................................................................................................... 59 ANNEXE VI : Macro Extraction() .......................................................................................... 62 ANNEXE VII : Macro Exploitation() ...................................................................................... 66 ANNEXE VIII : Macro Lecture3() .......................................................................................... 73 ANNEXE IX : Macro ClassD(),ClassA() et ClassP() .............................................................. 77 ANNEXE X : Macro Stat() ...................................................................................................... 80 ANNEXE XI : Macro Pente() .................................................................................................. 83 ANNEXE XII : Macro Graph() ................................................................................................ 87

Page 4: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

4/90

Liste des Tableaux Tableau 3.2-1 : Rappel des variables nécessaires (Mont-Joli) ................................................. 18 Tableau 3.2-2: Matrices de travail (Mont-Joli) ........................................................................ 19 Tableau 3.2-3: Paramètres de sortie à partir des valeurs issues des matrices de travail (Mont-Joli) ........................................................................................................................................... 19 Tableau 3.2-4: Rappel des variables nécessaires pour l'interpolation bilinéaire (Mont-Joli) .. 20 Tableau 3.2-5: Récapitulatif du résultat (Mont-Joli) ................................................................ 20 Tableau 3.2-6: Schéma de la régression par pondération de la distance. ................................. 21 Tableau 3.2-7: Légende des couleurs du Tableau 3.2-6 ........................................................... 21 Tableau 3.2-8: Récapitulatif des différentes moyennes réalisées. ........................................... 21 Tableau 3.2-9: Écarts relatifs entre les différentes moyennes et les valeurs réelles. ............... 22 Tableau 3.2-10: Comparaison des paramètres des courbes d'énergie dans le vent (Mont-Joli) .................................................................................................................................................. 23 Tableau 3.2-11: Données récapitulatives du travail d'homogénéisation sur les fréquences d'orientation .............................................................................................................................. 24 Tableau 3.2-12: Calcul des écarts relatifs suivant chaque azimut par rapport aux données réelles ....................................................................................................................................... 25 Tableau 4.2-1: Coordonnées de la Station Environnement Canada de Mont-Joli ................... 29 Tableau 4.3-1: Analyse du relief autour de Mont-Joli ............................................................. 35 Tableau 4.3-2: Mise en évidence des zones de fortes pentes pour la station de Mont-Joli ...... 36

Page 5: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

5/90

Liste des Figures Figure 1.1-1: Agencement des dossiers pour l'exemple de Mont-Joli à 50m d'altitude. ............ 7 Figure 1.2-1: Extrait du WorkSpace du travail sur Mont-Joli. ................................................... 7 Figure 1.2-2: Panneau des propriétés de UH, onglet Data ......................................................... 8 Figure 1.2-3: Sauvegarde des données UH dans l'exemple de Mont-Joli .................................. 8 Figure 1.2-4: Sauvegarde des données ER dans l'exemple de Mont-Joli. .................................. 9 Figure 1.3-1: Extrait de Mont-Joli_UH_50m_10.xyz ................................................................ 9 Figure 2.1-1: Extrait de données horaires pour la station de Mont-Joli (Qc) le 23/11/2008 ... 11 Figure 2.1-2: Extrait de la page Internet de téléchargement des données. ............................... 11 Figure 2.1-3: Paramétrisation du plug-in DownThemAll! ....................................................... 12 Figure 2.2-1: boutons de commande des macros liées à la feuille "Exploitation" ................... 13 Figure 3.1-1: Maillage sous AnémoScope et position des points ............................................ 16 Figure 3.2-1: Représentation schématique du problème. ......................................................... 19 Figure 3.2-2: Courbes de Weibull pour les valeurs réelles et les différentes moyennes sous AnémoScope ............................................................................................................................ 22 Figure 3.2-3: Courbes d'énergie dans le vent suivant les différents paramètres réels ou modélisés .................................................................................................................................. 23 Figure 3.2-4: Graphique des données récapitulatives du Tableau 3.2-11 ................................ 24 Figure 3.2-5: Graphique radar superposant les données réelles avec les différentes moyennes .................................................................................................................................................. 24 Figure 4.1-1: Cartes générales des tuiles de données topographiques disponibles dans geobase.ca ................................................................................................................................ 26 Figure 4.1-2: Plan des tuiles 022 .............................................................................................. 27 Figure 4.1-3: Plan des tuiles 022C .......................................................................................... 27 Figure 4.2-1: Démarrage de Global Mapper ............................................................................ 28 Figure 4.2-2: Menu de l'outil "Digitizer Tool" ......................................................................... 29 Figure 4.2-3: Fenêtre de spécification des coordonnées du point à créer. ............................... 29 Figure 4.2-4: Fenêtre de modification des caractéristiques de l'information du point ............. 30 Figure 4.2-5: Position de la station météorologique de Mont-Joli dans son relief. .................. 30 Figure 4.2-6: Menu de commande du tracé des arcs ................................................................ 31 Figure 4.2-7: Menu de configuration des caractéristiques de l'arc créé ................................... 31 Figure 4.2-8: Arc 0-30 tracé à 15km de la station de Mont-Joli .............................................. 32 Figure 4.2-9: Marquage des 12 points placés à 15km de la station de référence et tous les 30° .................................................................................................................................................. 32 Figure 4.2-10: Tracé de la ligne de relief ................................................................................. 33 Figure 4.2-11: Profil de relief à partir de Mont-Joli suivant l'azimut 150° .............................. 33 Figure 4.2-12: Extrait du tableau présentant l'altitude en fonction de la distance ................... 34 Figure 4.3-1: Zone de lancement de la visualisation des zones de fortes pentes. .................... 36 Figure 4.3-2: Zones des pentes supérieures à 10% à l'azimut 180° dans la région de Mont-Joli .................................................................................................................................................. 37

Page 6: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

6/90

Préambule Cette notice contient toute la partie technique du travail qui a été fait jusqu’à la rédaction du mémoire. Ce travail a été réalisé de septembre 2007 à août 2009 à l’UQAR dans le cadre d’une maîtrise de recherche en Génie Éolien sous la tutelle d’Adrian Ilinca. Le présent document renvoie régulièrement à ce mémoire pour bon nombre de précisions théoriques. Afin de ne pas perdre l’expérience créée à partir de ce travail au sein du laboratoire, il s’est avéré primordial de rédiger cette notice technique. Elle regroupe et explique de manière quasi exhaustive les outils qui ont pu être créés ou utilisés pour faciliter et permettre notre étude. On y décrit donc dans un premier chapitre comment récupérer les données qui nous intéressent dans AnémoScope. Dans une seconde partie, on verra comment récupérer les données réelles fournies par Environnement Canada et comment les utiliser : On étudiera donc comment fonctionne le site Internet d’Environnement Canada, comment télécharger une grande plage de données avec DownThemAll de Mozilla Firefox et de quelle manière ces données sont traitées avec la feuille Excel « Exploitation données EnvCan ». Le chapitre 3 fait le lien entre le chapitre 1 et le chapitre 2 en expliquant le fichier Excel « Comparaison Finale » qui permet la comparaison des données d’AnémoScope avec celles d’Environnement Canada. Le chapitre 4, quant à lui, nous explique comment obtenir les données de topographie avec le site Internet Geobase.ca, comment utiliser ces données brutes avec le logiciel Global Mapper, et enfin comment en tirer les renseignements qui nous intéressent à partir du fichier Excel « Relief ». Enfin, tout le code contenu dans les macros qui ont été créées pour nous aider à traiter les données sous Excel est repris et commenté en annexe, pour en permettre éventuellement une modification ultérieure en cas de besoin. On notera également que ce rapport ne contient pas d’explication quant à l’utilisation en elle-même d’AnémoScope. Le tutorial [1] fait par leur soin est en effet très complet et un travail de ce type de notre part ne reviendrait au final qu’à une imitation de ce qui a déjà été fait. Nous préférons par conséquent renvoyer à la lecture de ce document pour de plus amples renseignements à ce sujet.

Page 7: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

7/90

Chapitre 1: Extraction des données d’AnémoScope Cette étape est la plus laborieuse. En effet, AnémoScope ne présente pas actuellement les outils suffisants pour permettre de récupérer les données brutes de manière facile. Il va donc falloir enregistrer ces données classe par classe, pour les fréquences en vitesse et pour les fréquences en direction. Ces deux informations sont respectivement contenues dans les tables UH et ER d’AnémoScope. Voici le protocole à suivre pour effectuer cette opération.

1.1) Gestion des dossiers

1. On commencera tout d’abord par créer les dossiers dans lesquels on enregistrera les fichiers récupérés. Pour que les macros qui seront utilisées par la suite pour exploiter ces documents fonctionnent au mieux, il convient d’enregistrer les tables UH et les tables ER dans des dossiers distincts. Nous conseillons donc de créer un dossier sous le nom de « MonSite_UH_ER »

2. « MonSite_UH_ER » contiendra deux dossiers intitulés « MonSite_UH_50m » et « MonSite_ER_50m » avec le suffixe 50m si le module WeStats d’AnémoScope a été lancé à 50m évidemment. Il est intéressant de noter l’altitude à laquelle a été réalisée la simulation, car les résultats dépendant, bien entendu, de l’altitude, on pourrait plus tard avoir besoin de lancer un nouveau module WeStats avec une autre hauteur.

Figure 1.1-1: Agencement des dossiers pour l'exemple de Mont-Joli à 50m d'altitude.

1.2) Exportation des données

3. On commence dans AnémoScope par sélectionner, dans la hiérarchie du WorkSpace, l’item UH comme dans la Figure 1.2-1.

Figure 1.2-1: Extrait du WorkSpace du travail sur Mont-Joli.

4. Par un double clic sur cet item, on accède au panneau de propriété de UH. On peut

alors se rendre directement à l’onglet Data (voir Figure 1.2-2).

Page 8: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

8/90

Figure 1.2-2: Panneau des propriétés de UH, onglet Data

Chaque ip1 différent correspond à une classe de vent différente, c’est-à-dire que pour le fichier « ip1:0 », nous aurons pour chaque point de notre maillage la probabilité d’avoir une vitesse de vent nulle. Le fichier « ip1:1 comportera la probabilité pour chaque point d’avoir une vitesse de 1m/s, etc. Il convient donc d’exporter tous ces fichiers.

5. On sélectionne le premier item de la liste : « ip1:0 ip2:0 » et on clique sur Apply.

L’item doit être marqué d’un en vert, comme dans la Figure 1.2-2. 6. On clique ensuite sur le symbole pour sauvegarder l’item sélectionné. 7. On va choisir les noms des fichiers enregistrés en fonction de leur classe de vent pour

les repérer et pouvoir les classer dans l’ordre croissant, ce qui est absolument impératif pour les utiliser correctement ensuite. On propose donc de les nommer sous la forme : « MonSite_UH_altitude_classe » c'est-à-dire en prenant l’exemple de Mont-Joli : « Mont-Joli_UH_50m_00 » (Figure 1.2-3). On choisira l’extension « .xyz » qui présente l’avantage de pouvoir être facilement lu comme fichier texte.

Figure 1.2-3: Sauvegarde des données UH dans l'exemple de Mont-Joli

8. Un fois le nom inscrit et l’extension choisie, on enregistre. 9. On retourne à l’onglet data du panneau des propriétés de UH et on sélectionne à

présent l’item suivant. On recommence ensuite la phase de sauvegarde. 10. On effectue cela 27 fois, c'est-à-dire jusqu’à l’ « ip1:26 ». 11. On reproduit le même protocole avec les 13 secteurs de ER, en n’oubliant pas de bien

faire attention à ce qu’ils se classent dans l’ordre croissant dans le répertoire, comme dans l’exemple qui suit : (Figure 1.2-4)

Page 9: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

9/90

Figure 1.2-4: Sauvegarde des données ER dans l'exemple de Mont-Joli.

On doit donc avoir obtenu 27 fichiers de données suivant UH et 13 suivant ER. Nous allons voir un peu dans le chapitre qui suit le contenu de ces fichiers de données.

1.3) Forme et contenu des fichiers UH et ER. Voici en Figure 1.3-1 un extrait d’une table de données UH.

Figure 1.3-1: Extrait de Mont-Joli_UH_50m_10.xyz

Page 10: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

10/90

Cette table présente tout d’abord un en-tête en deux parties distinctes. La première nous donne la provenance de ce fichier, en particulier le développeur du logiciel, le logiciel et la version employée, ainsi que l’utilisateur et la date d’extraction de ce fichier. La deuxième partie comporte les éléments de calcul du système de coordonnées. Il s’agit ici et comme tjrs dans AnémoScope de coordonnées stéréographiques polaires. Comme nous avons travaillé au niveau du Québec, nous avons en outre centré cette projection suivant une latitude 60 et une longitude -100. Enfin, notons que l’en-tête se termine par la mention « EndHeader », ce qui nous est grandement utile (voir le paragraphe 3.1.2) pour déterminer le début des valeurs qui nous intéressent. Les données se présentent ensuite suivant trois colonnes : La première et la seconde sont respectivement les coordonnées suivant X et Y de tous les points du maillage. La dernière quant à elle présente les probabilités à chaque nœud et à 50m d’altitude d’avoir une vitesse de vent de 10m/s (puisqu’on a ouvert le fichier correspondant à une classe de vent 10). Dans le Chapitre 3: Exploitation des données d’AnémoScope, nous verrons comment sont utilisées ces données et comment elles sont comparées à des valeurs réelles. Nous allons voir dans le chapitre qui suit d’où viennent ces valeurs réelles

Page 11: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

11/90

Chapitre 2: Les données réelles d’Environnement Canada

2.1) Récupération des données horaires Les données utilisées sont celles fournies sur le site d’environnement canada [2] à l’adresse qui suit : http://www.climate.weatheroffice.ec.gc.ca/climateData/canada_f.html En ouvrant cette page et en passant par recherche spécifique, on peut facilement trouver toutes les stations météorologiques du Canada ou d’une province spécifique. Pour que les données soient utilisables pour notre application, il nous faut avoir des données horaires, comme sur la Figure 2.1-1.

Figure 2.1-1: Extrait de données horaires pour la station de Mont-Joli (Qc) le 23/11/2008

Ces données sont téléchargeables pour le mois entier en bas de page sur le lien « [CSV] » à la ligne « Données en bloc ». (

Figure 2.1-2: Extrait de la page Internet de téléchargement des données.

Page 12: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

12/90

Afin de pouvoir télécharger une grande quantité de données, c'est-à-dire plusieurs blocs de données à la fois et s’éviter ainsi une tache fastidieuse, nous allons utiliser un plug-in de Firefox. Pour cela, il faut disposer de « Mozilla Firefox » [3] comme navigateur Internet. Celui-ci est téléchargeable gratuitement. On doit ensuite télécharger et y ajouter le plug-in intitulé « DownThemAll! » [4] également disponible gratuitement. Cette option ajoutée va nous permettre de télécharger une plage de fichier. Pour cela, on ouvre « Firefox » et dans l’onglet « Outils », à l’item « Outils DownThemAll! », on choisit « Gestionnaire… ». Une fenêtre « DownThemAll! » s’ouvre alors et on clique en haut à gauche sur « Ajoutd’URL ». La fenêtre telle que sur la Figure 2.1-3 apparaît.

Figure 2.1-3: Paramétrisation du plug-in DownThemAll!

On doit tout d’abord récupérer l’URL de téléchargement des fichiers CSV. Pour l’exemple en Figure 2.1-1, on obtient l’adresse suivante : http://www.climate.weatheroffice.ec.gc.ca/climateData/bulkdata_f.html?timeframe=1&Prov=XX&StationID=5814&Year=2008&Month=11&Day=23&format=csv&type=hly Ce lien se lit tel que : timeframe=1 pour le choix horaire du pas de temps des mesures, Prov=XX pour la province du Québec, StationID=5814 pour le numéro identifiant de la Station de Mont-Joli, Year=2008, Month=11 et Day=23 pour le 23 Novembre 2008 évidemment. Dans la ligne « URL » de « DownThemAll! », il va donc falloir faire varier ce lien pour balayer tous les mois de toutes les années dont on souhaite récupérer les données. Comme on télécharge des mois complets, le jour n’a pas d’importance, si ce n’est qu’il faut éviter d’y mettre un jour n’apparaissant pas tous les mois (comme le 31). On va donc y inscrire l’URL suivant : http://www.climate.weatheroffice.ec.gc.ca/climateData/bulkdata_f.html?timeframe=1&Prov=XX&StationID=5814&Year=[1998:2008]&Month=[1:12]&Day=1&format=csv&type=hly Le pas de temps ne change pas, ni la province, ni la station. Year=[1998:2008] et Month=[1:12] montrent que l’on télécharge les données pour les douze mois et pour la période de 1998 à 2008, soit onze années, ce qui représentera donc 132 fichiers CSV.

Page 13: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

13/90

A la ligne « Enregistrer les fichiers dans : », on choisit le dossier dans lequel les fichiers seront téléchargés et dans « Masque de renommage : » on va garder « *name*.*ext* » pour garder le nom des fichiers et leur extension. On peut ensuite commencer le téléchargement en cliquant sur « Démarrer ! » puis « Télécharger le lot ». Le téléchargement va se dérouler au fur et à mesure. Quand il est achevé, tout peut être fermé.

2.2) Extraction des données réelles et exploitation Pour résoudre le problème de l’utilisation de ces données, on va utiliser le classeur Excel intitulé « Exploitation données EnvCan.xls ». Celui-ci comporte deux feuilles « Docs Utilises » et « Exploitation » que l’on détaille dans ce qui suit.

2.2.1) La feuille « Docs Utilises » Cette feuille est strictement identique à celle étudiée au chapitre (3.1.1) à la différence qu’elle s’occupe des fichiers portant l’extension « *.csv ». Voir donc plus loin.

2.2.2) La feuille « Exploitation » La feuille « Exploitation » comporte deux boutons : « Extraction & Exploitation » et « Calcul des paramètres de Weibull »

Figure 2.2-1: boutons de commande des macros liées à la feuille "Exploitation"

En ce qui concerne le deuxième, le protocole est strictement identique à ce qui est réalisé dans la macro « k_et_c() » décrite au chapitre (3.1.3). Il suffira par conséquent de s’y référer. Le bouton « Extraction & Exploitation » va utiliser successivement et en boucle les macros « Extraction() » (ANNEXE VI) et « Exploitation() » (ANNEXE VII). Le principe est le suivant. On ouvre tout d’abord, dans le classeur, deux nouvelles feuilles provisoires que l’on nomme « Temp » et « Temp2 ». On débute ensuite une boucle avec pour nombre d’itération le nombre de fichier « *.csv ».à lire (ce nombre est en C2 dans la feuille « Docs Utilises »). A chaque tour, on ouvre dans « Temp » un nouveau fichier « *.csv ». Dans « Temp2 », on va coller les colonnes de données qui nous intéressent : Vitesse et direction du vent pour chaque heure de chaque jour du mois étudié. On calcule ensuite les vitesses en m/s à la même altitude et à l’altitude choisie à partir des vitesses en km/h. A chaque fichier lu, on lance ensuite la macro « Exploitation » qui va compter pour les deux séries de vitesses les fréquences d’apparition de chaque classe de vent et de chaque classe de direction de vent. Ces résultats sont ensuite consignés dans la feuille « Exploitation » et ajoutés aux précédents. On peut alors changer de fichier à lire, et ce jusqu’à avoir employé tous les fichiers de la liste présente sur la feuille « Docs Utilises ». Enfin, il ne reste qu’à lancer la macro k_et_c() pour calculer les paramètres des courbes de Weibull les plus proches des courbes réelles obtenues. (On

Page 14: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

14/90

conseille de se rapporter au chapitre (3.1.3), pour se renseigner sur le calcul des paramètres k et c). De manière générale, plus de détails sur les macros utilisées sont disponibles dans les commentaires des codes des macros mis en annexe.

Page 15: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

15/90

Chapitre 3: Exploitation des données d’AnémoScope Afin de pouvoir valider les résultats d’AnémoScope, nous nous somme donnés pour but de comparer ces résultats avec des mesures de vent réelles, qu’elles soient issues d’une tour de mesure ou bien provenant des données archivées d’Environnement Canada. Nous avons vu au Chapitre 2:Les données réelles d’Environnement Canada, comment sont obtenues et utilisées ces données là. Nous allons, pour illustrer cette partie, récupérer les fichiers extraits d’AnémoScope au chapitre précédent. De plus, nous utiliserons le fichier Excel nommé « Comparaison finale ». Ce classeur, qui rassemble tout le matériel détenu, va être détaillé feuille par feuille afin d’en expliquer à la fois l’utilité et le fonctionnement, mais aussi de donner les moyens de corriger les macros utilisées dedans si besoin est. Les macros sont d’ailleurs commentées directement dans le code et sont insérées en annexe. On va décomposer le classeur en deux grandes parties : la récupération des diverses données, puis les outils de comparaison qui sont employés.

3.1) L’intégration des données d’AnémoScope et d’Environnement Canada.

3.1.1) La feuille « Docs Utilises » Cette feuille définit quels vont être les fichiers extraits d’AnémoScope qui seront exploités. Dans la section « UH », Le bouton « Parcourir », activant la macro du même nom (ANNEXE I), va nous permettre de sélectionner dans notre répertoire le dossier que l’on souhaite. Une fois le dossier choisi, la macro va récupérer le nom de tous les fichiers contenus qu’il contient portant l’extension « *.xyz » et il va également les compter. Le nom du dossier est inscrit dans la case B2, le nombre de fichier « *.xyz » en C2 et les noms des fichiers au format « *.xyz » dans la colonne C à partir de la cellule C4. On reproduit les mêmes étapes pour la section « ER », le nombre de fichier se retrouvant en C36 et les adresses de fichiers à partir de C38. La macro utilisée pour effectuer ce travail a été récupérée sur le site internet www.info-3000.com [5] et a été adaptée aux spécificités de ce travail. Elle ne sera par conséquent pas plus détaillée ici.

3.1.2) Les feuilles « Données Weibull » et « Données Orientation » Elles constituent la base de notre travail puisqu’elles vont regrouper toutes les données issues d’AnémoScope. En cliquant sur le bouton « Importer les données », on active la macro « lecture() » (ANNEXE II)et on lance la lecture de tous les fichiers contenus dans la liste créée dans la feuille « Docs Utilises ». Ces fichiers sont lus et retranscrits dans la colonne correspondante à l’ordre de lecture. On y recopie la coordonnée géographique en coordonnée stéréographique et on y génère un numéro de nœud ainsi que des coordonnées dans le maillage. Ce numéro ainsi que ces coordonnées sont identiques à ce qui apparaît dans AnémoScope. Pour chaque classe de vent, de 0 à 26, on importe ensuite la fréquence estimée

Page 16: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

16/90

correspondante. Une fois toutes les fréquences inscrites, on peut ensuite calculer la vitesse moyenne. Le principe reste le même dans la feuille « Données Orientation », et le bouton appelle la macro « lecture2() » (ANNEXE II)

3.1.3) Les feuilles « Points à Considérer Weibull » et « Points à Considérer Orientation »

On rappelle tout d’abord brièvement le principe que l’on pourra retrouver de manière plus détaillée dans le mémoire. On possède déjà des données réelles en un point précis. Comme il est impossible de faire parfaitement coïncider un nœud du maillage avec ce point, on va plutôt effectuer une régression entre les quatre nœuds du maillage encadrant notre site d’étude. Considérons que nous avons en tout xN noeuds sur une ligne et yN nœuds sur une colonne. Le point considéré sera donc encadré par les nœuds de la Figure 3.1-1, avec ] [yNk ;1∈ et

] [xNm ;1∈ .

Figure 3.1-1: Maillage sous AnémoScope et position des points

En utilisant AnémoScope, il convient donc de repérer les quatre nœuds qui encadrent notre site. Il suffit ensuite dans la feuille « Point à Considérer Weibull » de renseigner ces numéros de nœuds par ordre croissant dans les quatre cases qui conviennent et qui sont intitulés « Point à Importer ». On cliquera ensuite sur le bouton « Importer » qui activera la macro « Choix_point() » (ANNEXE III). La macro va alors récupérer les valeurs pour les quatre nœuds qui nous intéressent dans la base de données de la feuille « Données Weibull ».On a alors en haut à gauche un récapitulatif de nœuds ainsi que leur coordonnées en stéréographique polaire ou dans le maillage. Le tableau juste à droite est la récupération des fréquences par classe de vent pour tracer encore plus à droite la courbe de Weibull à chaque nœud. Elle récupère également dans la feuille « Données Orientation » les valeurs qui conviennent pour remplir le tableau de la feuille « Point à Considérer Orientation ». On y trouve alors une vue graphique des orientations prépondérantes du vent selon AnémoScope.

Page 17: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

17/90

Dans la feuille « Point à Considérer Weibull », les valeurs qui viennent d’être ajoutées sont ensuite reprises dans les tableaux qui suivent. Dans ces quatre séries de tableau, on a mis en place les données et les calculs nécessaires à la détermination pour chaque nœud des paramètres de forme ( k ) et d’échelle ( c ) pour modéliser la courbe de Weibull la plus proche de chaque série de valeur. Le calcul des paramètres débute lorsqu’on clique sur le bouton « Déterminer le paramètre de forme et le paramètre d’échelle » qui lance la macro « k_et_c() »(ANNEXE IV). Celle-ci est réalisée à partir des travaux de Jean-Louis Retiveau qui a travaillé sur les différentes manières de caractériser les courbes de Weibull [6]. Comme vu dans le mémoire, la courbe de Weibull se caractérise par ses deux paramètres k et c qui sont respectivement son facteur de forme et son facteur d’échelle. On les retrouve donc dans la formule qui nous donne une estimation de la fréquence d’apparition d’une classe de vent.

( ) ⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎠⎞

⎜⎝⎛−−

⎟⎠⎞

⎜⎝⎛=

k

cVk

ecV

ckVf

1

(3.1-1)

Les méthodes pour déterminer ces coefficients k et c sont multiples, mais nous utilisons la méthode dite méthode du maximum de vraisemblance modifiée : Modified Maximum Likelihood Estimation (MMLE). Elle est considérée comme simple tout en permettant d’obtenir les meilleurs résultats pour k et c en utilisant les données sous forme de séries fréquentielles, ce qui correspond parfaitement à ce que nous possédons. Dans la méthode MMLE, les paramètres k et c sont calculés itérativement de la façon suivante :

( ) ( )

( )

( ) ( )

( )⎟⎟⎟⎟

⎜⎜⎜⎜

⋅−

⋅⋅=

∑=

=

=

0

lnln1

1

1

UP

UPU

UPU

UPUUk

n

iii

n

ii

ki

n

iii

ki

(3.1-2)

( ) ( )kn

ii

ki UPU

UPc

/1

101

⎟⎟⎠

⎞⎜⎜⎝

⎛⋅

≥= ∑

=

(3.1-3)

Généralement 200 itérations suffisent amplement pour avoir une différence entre deux itérations de l’ordre de 10-10. Pour revenir à notre classeur Excel, dans la feuille « Point à Considérer Weibull » il suffit donc de choisir le nombre d’itérations à effectuer dans la case prévue à cet effet et de lancer la macro. Les paramètres k et c sont alors déterminés et l’on obtient à droite une représentation de nos données ainsi que de la courbe de Weibull paramétrée correspondante. Enfin, dans la feuille « Point à Considérer Orientation », la macro « Choix_point » se charge de récupérer les données appropriées pour tracer suivant deux types de graphiques, l’allure de des vents dominants.

Page 18: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

18/90

3.1.4) La Feuille « Valeurs Réelles » Par l’intermédiaire du bouton « Importer des Données Réelles », on appelle la macro « Comp » (ANNEXE V) qui nous fait accéder à l’explorateur. On y choisit alors le fichier Excel que l’on souhaite importer. Celui-ci sera donc un des classeurs de type « Exploitation données EnvCan.xls » que l’on a vu au Chapitre 2: Les données réelles d’Environnement Canada. La feuille « Valeurs Réelles » est donc la copie conforme de ce classeur.

3.2) Comparaison des données : A partir de ces étapes, il n’y a plus de macro pour gérer les données. Elles sont toutes intégrées dans des cellules de calcul. La présentation de ces feuilles sera de plus succincte car les principes mathématiques sont détaillés dans le mémoire.

3.2.1) Les feuilles « Homogénéisation Weibull » et « Homogénéisation Orientation »

Ces deux feuilles sont quasiment identiques et présentent les mêmes méthodes de calcul et de mise en forme. Nous ne présenterons par conséquent que la première feuille, « Homogénéisation Weibull » pour plus de facilité et de clarté.

La régression linéaire plane Cette partie présente quatre grandes étapes. On rappelle tout d’abord les valeurs qui nous sont nécessaires : Les coordonnées des cinq points ainsi que les paramètres k, c et Vmoy des quatre points de la maille d’Anémoscope. (Tableau 3.2-1)

Tableau 3.2-1 : Rappel des variables nécessaires (Mont-Joli)

On met ensuite en place nos matrices de travail (Tableau 3.2-2), avec en haut à gauche la matrice de travail, en haut à droite les matrices pour les paramètres k, c et Vmoy. En dessous, nous avons les paramètres alpha, beta, gamma, delta, S1 et S2 qui permettent la résolution du système (équation 3.2-1) [7].

Kii

ii

i

Miiii

iiii

ii

ykxk

k

aaa

yyxyyxxx

yxn

⎥⎥⎥

⎢⎢⎢

=⎥⎥⎥

⎢⎢⎢

⎡⋅

⎥⎥⎥

⎢⎢⎢

∑∑∑

∑∑∑∑∑∑∑∑

2

1

0

2

2 (3.2-1)

Page 19: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

19/90

Tableau 3.2-2: Matrices de travail (Mont-Joli)

A partir de ces éléments, on peut alors déterminer les coefficients a0, a1 et a2 de l’interpolation linéaire plane. Ces coefficients nous permettent de calculer les paramètres kmoyen, Cmoyen et Vmoymoyen (Tableau 3.2-3).

Tableau 3.2-3: Paramètres de sortie à partir des valeurs issues des matrices de travail (Mont-Joli)

L’interpolation bilinéaire par polynômes de Lagrange Dans cette partie, on définit notre problème comme sur la Figure 3.2-1. La résolution de notre système se fait donc simplement suivant l’équation (3.2-2).

Figure 3.2-1: Représentation schématique du problème.

( ) ( ) ( )

( ) ( )2212

1

12

121

12

1

21

2

1221

2

12

111

21

2

21

2

,,

...,,,

yxfyyyy

xxxxyxf

yyyy

xxxx

yxfyyyy

xxxxyxf

yyyy

xxxxyxf

iiii

iiiiii

−−

−−

+−−

−−

+−−

−−

+−−

−−

= (3.2-2)

Page 20: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

20/90

On commence donc par rappeler les paramètres dont nous avons besoin (Tableau 3.2-4). On fixe en « G54 » un terme alpha qui nous aide simplement à l’écriture de notre solution. Celle-ci est inscrite dans le Tableau 3.2-5.

Tableau 3.2-4: Rappel des variables nécessaires pour l'interpolation bilinéaire (Mont-Joli)

Tableau 3.2-5: Récapitulatif du résultat (Mont-Joli)

La régression par pondération en fonction de la distance. Cette partie est proposée sous forme de schéma (Tableau 3.2-6) dont la légende est présente dans le Tableau 3.2-7. Dans chaque coin, on a les références de chaque nœud, et au centre les références de la tour de mesure. À partir des coordonnées, on détermine les distances qui séparent les points les uns des autres. On en tire alors une pondération affectée à chaque nœud pour ses valeurs, par rapport à la tour.

Page 21: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

21/90

Tableau 3.2-6: Schéma de la régression par pondération de la distance.

Tableau 3.2-7: Légende des couleurs du Tableau 3.2-6

3.2.2) La feuille « Comparaison Weibull » On a ici la feuille finale, présentant tous les résultats importants pour la conclusion. On a d’abord un récapitulatif de nos précédents résultats (Tableau 3.2-8).

Tableau 3.2-8: Récapitulatif des différentes moyennes réalisées.

Page 22: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

22/90

A partir de ces données, on en tire le Tableau 3.2-9 qui nous présente une comparaison en écarts relatifs des résultats moyennés suivants les différentes méthodes avec les valeurs réelles.

Tableau 3.2-9: Écarts relatifs entre les différentes moyennes et les valeurs réelles.

On en tire également un graphique de comparaison, traçant la courbe de Weibull modélisée à partir des données réelles avec les courbes de Weibull modélisées à partir des paramètres k et c moyennés de manières différentes.

0

0,02

0,04

0,06

0,08

0,1

0,12

0,14

0 5 10 15 20 25 30

Vitesse du Vent

%

Tour de mesure

Modèle sans pondération

Modèle avec pondération

Régression planePolyn.Lagr

Figure 3.2-2: Courbes de Weibull pour les valeurs réelles et les différentes moyennes sous AnémoScope

Ces courbes étant difficilement comparables si ce n’est par l’intermédiaire de leurs paramètres, on préfère tracer les courbes d’énergie dans le vent correspondantes. (Figure 3.2-3)

Page 23: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

23/90

Energie dans le vent

0

100000

200000

300000

400000

500000

600000

0 5 10 15 20 25 30

Vitesse de vent (m/s)

Ener

gie

Tour de MesureAvec PondérationRegression PlanePolyn. Lagrange

Figure 3.2-3: Courbes d'énergie dans le vent suivant les différents paramètres réels ou modélisés

Plusieurs outils de comparaison de ces courbes sont alors utilisés : Moyennes, Écarts-types, Quartiles, et Aires sous la courbes. Ces résultats sont assemblés dans le Tableau 3.2-10.

Tableau 3.2-10: Comparaison des paramètres des courbes d'énergie dans le vent (Mont-Joli)

3.2.3) La feuille « Comparaison Orientation » Cette feuille fonctionne suivant le même principe que la feuille « Comparaison Weibull ». On a tout d’abord un récapitulatif de toutes nos données (Tableau 3.2-11). On en tire deux représentations graphiques, la première sous forme de courbes (Figure 3.2-4) et la seconde présentant les radars de ces mêmes courbes (Figure 1.2-3).

Page 24: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

24/90

Tableau 3.2-11: Données récapitulatives du travail d'homogénéisation sur les fréquences d'orientation

Répartition du vent par orientaiton

0

0,05

0,1

0,15

0,2

0,25

0,3

0 30 60 90 120 150 180 210 240 270 300 330 360

Orientaion du vent

Moyenne ArithmétiqueMoyenne PondéréeRegress. Lin.Multi.Interpol. Bilin. Polyn. Lagr.Données réelles

Figure 3.2-4: Graphique des données récapitulatives du Tableau 3.2-11

0

0,05

0,1

0,15

0,2

0,251

2

3

4

5

6

7

8

9

10

11

12

Moyenne Arithmétique

Moyenne pondérée

Regress. Lin. Multi. Interpol. Bilin. Polyn. Lagr.

Données réelles

Figure 3.2-5: Graphique radar superposant les données réelles avec les différentes moyennes

Page 25: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

25/90

Enfin, dans le Tableau 3.2-12, on calcule les écarts relatifs existant entre les données réelles et les données issues d’AnémoScope et moyennées de différentes manières. On en tire alors une somme des écarts et une moyenne des écarts.

Tableau 3.2-12: Calcul des écarts relatifs suivant chaque azimut par rapport aux données réelles

Page 26: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

26/90

Chapitre 4: Les Données de Topographie. Afin de pouvoir comparer l’influence du relief sur la validité des résultats d’AnémoScope, il nous est nécessaire de connaître la nature du terrain, c'est-à-dire sa topographie. Il conviendra donc de quantifier celle-ci pour chaque site étudié. Pour ce faire, il faut déterminer le RIX suivant chaque azimut et en estimer l’influence sur les vents dominants. Nous allons voir dans ce chapitre où sont obtenues les données brutes utilisées, puis de quelle manière sont récupérées les données qui nous intéressent. Enfin, nous étudierons un moyen d’exploiter ces données par l’intermédiaire du classeur Excel réalisé pour cela.

4.1) Les données Géobase Le site Internet www.geobase.ca [8] fournit les données topographiques dont nous avons besoin. Il propose en effet gratuitement des cartes au 1/250 000 et au 1/50 000. Nous avons, nous, utilisé cette dernière échelle. Le fonctionnement du site est relativement simple, excepté que le téléchargement des données se révèle légèrement fastidieux. Après s’être enregistré comme utilisateur (étapes et renseignements classiques), il faut aller dans Données -> Données d’élévation, puis cliquer sur Téléchargement. On opte ensuite pour la liste des cartes à l’échelle 1/50 000. A partir de la carte générale (Figure 4.1-1), on « zoome » en cliquant sur les tuiles de données qui nous intéressent. Par exemple si l’on recherche les données topographiques autour de Rimouski, on choisit la tuile 022 (Figure 4.1-2) puis les tuiles 022C (Figure 4.1-3).

Figure 4.1-1: Cartes générales des tuiles de données topographiques disponibles dans geobase.ca

Page 27: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

27/90

Figure 4.1-2: Plan des tuiles 022

Figure 4.1-3: Plan des tuiles 022C

A cette étape, le « zoom » n’est plus possible. Si on continue à cliquer sur les tuiles, par exemple 022C07, 022C08, 022C09 et 022C10 pour travailler autour de Rimouski/Mont-Joli, les références s’inscrivent dans une liste en dessous. Une fois que l’on a choisi toutes les tuiles qui nous étaient utiles, on va pouvoir les télécharger une à une. Ces tuiles sont contenues dans un fichier compressé Zip. A l’intérieur, seuls les fichiers portant l’extension « *.dem » nous intéressent. Le reste peut être détruit. On notera au passage que toutes les tuiles sont récupérables sauf celles qui ne contiennent que de l’eau, comme dans un océan, une mer ou un estuaire car l’altitude y est fixée à 0m, altitude

Page 28: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

28/90

moyenne de ces eaux. Par conséquent, la tuile 022C16 par exemple ne sera pas téléchargeable, ce qui ne nuit en rien à la poursuite de nos travaux.

4.2) Utilisation de Global Mapper Global Mapper [9] est un logiciel d’exploitation de cartes de tous types qui permet également de réaliser certaines opérations simples à partir des données qu’on lui fournit. Il répond ici parfaitement à nos besoins tout en étant suffisamment simple d’utilisation et relativement rapide en terme de prise en main. Nous allons voir rapidement dans ce chapitre comment nous utilisons ce logiciel. Notons qu’il s’agit ici de la version 8.03.

Figure 4.2-1: Démarrage de Global Mapper

En cliquant sur ce le bouton « Open Your Own Data Files », nous pouvons importer toutes les cartes au format « *.dem » que nous avons obtenues dans sur www.geobase.ca (Chapitre 4.1). Il convient de faire attention de ne pas trop en importer car le logiciel présente une limite de fichier gérable et plus le nombre de tuiles importées est grand, plus la navigation dans ces cartes sera lente et hachée.

On conseille d’enregistrer dès à présent la carte créée en cliquant sur le bouton « Save Workspace » de la barre d’outil. L’espace de travail pourra ainsi être enregistré au format Global Mapper Workspace (*.gmw). Prenons à présent l’exemple de la station météorologique de Mont-Joli. Celle-ci se situe, d’après Environnement Canada aux coordonnées suivantes : (Tableau 4.2-1)

Page 29: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

29/90

Longitude 68°13,200' O <=> -68,22 Latitude 48°36,000' N <=> 48,5666667

Tableau 4.2-1: Coordonnées de la Station Environnement Canada de Mont-Joli Le but est de repérer la station météorologique à partir de ces coordonnées pour en déterminer ensuite la zone d’étude du relief correspondante.

4.2.1) Placer un point de référence. On clique sur le bouton « Digitizer Tool » dans la barre d’outils. On fait ensuite un clic droit sur notre carte, ce qui a pour effet d’ouvrir le menu correspondant (Figure 4.2-2).

Figure 4.2-2: Menu de l'outil "Digitizer Tool"

On choisit alors l’option « Create New Point/Text Feature At Specified Position ». La fenêtre « Select Location » de la Figure 4.2-3 s’ouvre. On coche la ligne « Geographic Coordinates (Latitude/Longitude) » et on entre les coordonnées du Tableau 4.2-1 dans les champs qui conviennent avant de cliquer sur « OK ».

Figure 4.2-3: Fenêtre de spécification des coordonnées du point à créer.

La fenêtre « Modify Feature Info » (Figure 4.2-4) apparaît ensuite. On va y renseigner le nom du point (en l’occurrence Mont-Joli) et on y choisit l’apparence du point (nous resterons sur le type « Unknown Point Feature » qui sera le plus pratique pour la suite). On accepte et l’on obtient la Figure 4.2-5.

Page 30: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

30/90

Figure 4.2-4: Fenêtre de modification des caractéristiques de l'information du point

Figure 4.2-5: Position de la station météorologique de Mont-Joli dans son relief.

4.2.2) Définition de la zone d’étude du relief autour de notre point. On souhaite marquer les points situés à 15km de notre station météorologique et répétés tous les 30° à partir de l’azimut 000°. On va donc tracer six arcs de rayons 15km et d’angle 30°à partir des azimuts 000°, 060°, 120°, 180°, 240° et 300°. On obtient ainsi nos 12 points désirés. On clique donc de nouveau sur le bouton « Digitizer Tool » dans la barre d’outil. On fait ensuite un clic droit sur notre carte, ce qui ouvre le menu correspondant (Figure 4.2-2). On choisit à présent l’item « Create Line Shapes » puis « Create Arc Line ». Le menu « Specify Range of Arc » s’ouvre. (Figure 4.2-6)

Page 31: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

31/90

Figure 4.2-6: Menu de commande du tracé des arcs

Dans le champ « Start Angle » on entre l’azimut de départ de l’arc et dans le champ « Swept Angle » l’angle de l’arc. On coche également la ligne « Draw Arc at Fixed Radius From Center Point » et dans le champ en dessous on inscrit « 15 » en vérifiant que le champ de droite présente bien la mesure « Kilometers » puis on accepte. Il ne reste alors plus qu’à fixer le centre de l’arc, ce que l’on fait en cliquant sur le point « Mont-Joli » (créé au chapitre 4.2.1). La fenêtre « Modify Feature Info » (Figure 4.2-7) apparaît, dans laquelle on donne un nom à l’arc créé (ici « Arc 0-30 ») et on clique sur « OK ». On obtient alors la Figure 4.2-8

Figure 4.2-7: Menu de configuration des caractéristiques de l'arc créé

Page 32: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

32/90

Figure 4.2-8: Arc 0-30 tracé à 15km de la station de Mont-Joli

On peut ensuite répéter l’opération pour chaque azimut nécessaire et l’on obtient les points recherchés : (Figure 4.2-9)

Figure 4.2-9: Marquage des 12 points placés à 15km de la station de référence et tous les 30°

4.2.3) Obtenir les lignes de relief On utilise à présent l’outil « 3D Path Profile/Line of Sight Tool » disponible à l’icône dans la barre d’outil. On clique gauche ensuite sur la station, puis on vient rejoindre une extrémité d’un arc (Figure 4.2-10) et on clique droit. La fenêtre « Path Profile/Line of Sight » (Figure 4.2-11) s’ouvre alors.

Page 33: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

33/90

Figure 4.2-10: Tracé de la ligne de relief

Figure 4.2-11: Profil de relief à partir de Mont-Joli suivant l'azimut 150°

Dans cette nouvelle fenêtre, on peut observer le relief présent suivant la ligne que l’on vient de tracer. On vérifiera en particulier que la distance totale est proche de 15km. Ce chiffre dépend en effet de notre précision à la souris. On clique ensuite sur « File » puis « Save Distance/Elevation File… » et on enregistre notre fichier en prenant garde à ce qu’il puisse être facilement classés suivant leurs azimuts. Comme dans les autres chapitres, on gardera donc le même style de notation. Ce fichier sera donc enregistré dans « Relief Mont-Joli/Mont-Joli-relief-150.xyz ». Il ne reste plus qu’à réaliser cette étape douze fois pour tous les azimuts : 000°, 030°, 060°, 090°, 120°, 150°, 180°, 210°, 240°, 270°, 300° et 330°. On notera que les fichiers « *.xyz » exportés, ouvrables à l’aide du bloc note, ne présentent que deux colonnes (Figure 4.2-12), avec à gauche la distance par rapport au point central (la station météorologique) et à droite l’altitude du point correspondant à cette distance.

Page 34: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

34/90

Figure 4.2-12: Extrait du tableau présentant l'altitude en fonction de la distance

4.3) Exploitation des lignes de relief. Cette exploitation sera grandement facilitée par l’utilisation du classeur Excel intitulé « Relief_XXX ». Celui est composé de 3 feuilles : « Docs Utilises », « Données Relief » et « Exploitation » dont nous allons voir la composition dans ce qui suit.

4.3.1) La feuille « Docs Utilises » Cette feuille est strictement identique à celle étudiée au chapitre (3.1.1) et elle s’occupe également des fichiers portant l’extension « *.xyz ». (ANNEXE I)

4.3.2) La feuille « Données Relief » En cliquant sur le bouton « Importer les données », on appelle la macro « Lecture3 » (ANNEXE VIII) et on récupère dans cette feuille les données contenues dans chacun des fichiers répertoriés. Elles sont classées suivant chaque azimut en trois colonnes présentant la distance, l’altitude et la pente locale. Les deux premières colonnes sont évidement exactement les mêmes valeurs que celles contenues dans les fichiers d’origine. Quant à la pente locale, c’est la pente qui existe entre un point et celui placé juste avant. Les boutons « Classer les données en distance croissante », « Classer les données en altitude décroissante » et « Classer les données en pente décroissante » appellent respectivement les macros « ClassD », « ClassA » et « ClassP » (ANNEXE IX) et peuvent être utiles pour voir rapidement ces informations.

Page 35: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

35/90

4.3.3) La feuille « Exploitation » Le premier tableau (Tableau 4.3-1), le plus important, récapitule les points les plus intéressants de notre relief. Il est rempli lorsqu’on clique sur le bouton « Remplir le tableau ci-contre » qui appelle la macro « Stat » (ANNEXE X) et la macro « Pente » (ANNEXE XI), et il nous donne pour chaque azimut la différence de hauteur avec l’origine, la différence de hauteur maximale (Variation antre le point d’altitude le plus haut et le point d’altitude le plus bas), la distance horizontale entre le point de hauteur maximale et l’origine. On a également la fréquence des pentes unitaires supérieures à la limite de pente fixée en « C19 » et enfin le RIX. Pour connaître la définition complète du RIX, on propose de se référer au mémoire ainsi qu’à la norme [10], mais nous rappellerons rapidement que le RIX est le pourcentage de pentes supérieures à 10% pour une distance échelon de 30m. Ces valeurs sont reprises dans le graphique en haut à droite « RIX par azimut ».On en tire en « H15 » la moyenne des RIX sur notre terrain.

Tableau 4.3-1: Analyse du relief autour de Mont-Joli

La colonne intitulée « Données réelles de la rose des vents » n’est, elle, pas remplie automatiquement. Il faut aller chercher ces données dans les fichiers de données réelles du vent issues d’Environnement Canada (voir chapitre 2.2.2). On peut directement copier ces valeurs d’un fichier Excel à l’autre, de préférence en copiage spécial de valeur. La colonne « RIX pondérés par l’orientation des vents » est alors à jour. Elle est le produit du RIX de l’azimut par la fréquence du vent suivant ce même azimut. Ces valeurs sont reprises dans le deuxième graphique à droite « RIX par azimut, pondéré par l’orientation des vents ». De ce graphique, on en calcule l’air du radar et on obtient la valeur en « M6 » Le deuxième tableau (Tableau 4.3-2) moins prioritaire dans notre étude présente néanmoins un certain avantage car il permet de visualiser les grandes zones dans lesquelles les pentes sont supérieures à une certaine valeur. Pour cela, il nous faut nous donner deux valeurs qui sont tout d’abord le nombre d’échelon (en « C18 ») c'est-à-dire la distance d’évaluation de la pente ainsi que la pente maximale limite que l’on se fixe. Dans le Tableau 4.3-2, nous avons pris comme distance 30 échelons, avec des échelons d’environ 14,6m ou 14,7m, soit une distance de lissage (« G20 ») de 438m. On fixe la limite de pente (« C19 ») à partir de laquelle on identifiera nos zones de fortes pentes. Dans le Tableau 4.3-2, nous avons opté pour une pente maximale de 10%.

Page 36: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

36/90

En cliquant sur le bouton « Remplir le tableau ci-contre » (Tableau 4.3-1), on remplit ce tableau également. La macro va inscrire tous les blocs de points donc les pentes sont supérieures à la limite que nous nous sommes fixées. On voit ainsi que pour l’azimut 180°, nous avons repéré cinq zones critiques. On notera que l’on a fixé l’affichage de ces zones à un nombre maximal de dix. S’il y a plus de dix zones critiques à afficher, un message d’erreur apparaîtra.

Tableau 4.3-2: Mise en évidence des zones de fortes pentes pour la station de Mont-Joli

En soient, les valeurs inscrites dans ce dernier tableau (Tableau 4.3-2) ne sont que peu intéressantes. Elles prennent néanmoins plus de sens dans la mesure où elles nous permettent une visualisation dans le relief de ces zones.

Figure 4.3-1: Zone de lancement de la visualisation des zones de fortes pentes.

Pour cela, en « B50 » on inscrit l’azimut que l’on souhaite tracer (choisissons 180°) et cliquons sur le bouton « Tracer le Relief » (Figure 4.3-1). On obtient grâce à la macro « GRAPH » (ANNEXE XII) le graphique présenté en Figure 4.3-2. On constate que nos zones critiques ont été encadrées. Elles étaient au nombre de cinq et nous avons bien cinq rectangles.

Page 37: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

37/90

Azimut 180°

0

100

200

300

400

500

600

0 2000 4000 6000 8000 10000 12000 14000 16000

Distance (m)

Altit

ude

(m)

ReliefZone 1Zone 2Zone 3Zone 4Zone 5Zone 6Zone 7Zone 8Zone 9Zone 10

Figure 4.3-2: Zones des pentes supérieures à 10% à l'azimut 180° dans la région de Mont-Joli

On notera enfin que les coordonnées de ces dix rectangles (ne sont affichés que ceux qui sont nécessaires) sont inscrites mais masquées dans la zone « F49 :G107 »

Page 38: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

38/90

Conclusion Grâce aux différents tutoriaux présents dans ce rapport technique, nous espérons qu’il vous sera possible de reprendre intégralement et de manière très rapide les résultats de nos travaux. Vous disposez maintenant d’outils simples et efficaces bien qu’un peu bruts pour comparer les résultats d’AnémoScope avec les données réelles d’Environnement Canada en fonction de la topographie du terrain. Les fichiers Excel employés sont normalement disponibles auprès de Richard Vagliani ou d’Adrian Ilinca. N’hésitez par conséquent pas à nous contacter pour les obtenir ou pour avoir de plus amples informations.

Page 39: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

39/90

Bibliographie 1. Canadian-Hydraulics-Centre. AnemoScope - Tutorial. 2005 [cited; Available from:

www.anemoscope.ca/Documents/AnemoScopeTutorial.pdf. 2. Environnement-Canada. Archives nationales d'information et de données

climatologiques. 2009 [cited; Available from: http://www.climate.weatheroffice.ec.gc.ca/climateData/canada_f.html.

3. Mozilla-Europe. Mozilla Firefox. 2009 [cited; Available from: www.mozilla-europe.org/fr/firefox.

4. Verna, F.P.a.S., What is DownThemAll? 2009. 5. Defawes, M. Info-3000. [cited; Available from: www.info-3000.com. 6. Rétiveau, J.-L., Analyse de données expérimentales et conception d'un générateur

numérique de vitesses de vent, in Génie. 2005, UQAR: Rimouski. 7. Canale, S.C.C.R.P., Numerical Methods for Engineers. 2002: McGraw-Hill. 8. Géobase. Données Géospatiales. 2009 [cited; Available from: www.geobase.ca. 9. Global Mapper Software, L. Global Mapper. 2009 [cited; Available from:

www.globalmapper.com. 10. IEC_International-Standard, Power performance of electricity producting wind

turbines based on nacelle anemometry. 2008.

Page 40: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

40/90

ANNEXE I : Macro Parcourir() et Parcourir2()

Issue de :

Comparaison Finale Module 3

[5]

Page 41: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

41/90

Dim Dossier_choisi As String Private Type BrowseInfo hWndOwner As Long pIDLRoot As Long pszDisplayName As Long lpszTitle As Long ulFlags As Long lpfnCallback As Long lParam As Long iImage As Long End Type Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long) Private Declare Function lstrcat Lib "kernel32" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long Sub Parcourir() ActiveSheet.Unprotect Dim Rien As Integer Dim Liste As Long Dim Resultat As String Dim Browse_info As BrowseInfo With Browse_info ' .hWndOwner = Me.hWnd .lpszTitle = lstrcat("Choix du dossier à analyser", "") .ulFlags = 1 End With Liste = SHBrowseForFolder(Browse_info) If Liste Then Resultat = String$(260, 0) SHGetPathFromIDList Liste, Resultat CoTaskMemFree Liste Rien = InStr(Resultat, vbNullChar) If Rien Then Dossier_choisi = Left$(Resultat, Rien - 1) Sheets("Docs Utilises").Range("B2").Value = Dossier_choisi End If End If Dim Fs As FileSearch Dim Dossier As String Dim I As Integer On Error Resume Next Set Fs = Application.FileSearch Dossier = Dossier_choisi With Fs

Page 42: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

42/90

.NewSearch .Filename = "*.xyz" .LookIn = Dossier .SearchSubFolders = False .Execute msoSortByFileName, msoSortOrderAscending If .Execute > 0 Then With .FoundFiles For I = 1 To .Count Sheets("Docs Utilises").Range("C" & I + 3).Value = .Item(I) Next I Sheets("Docs Utilises").Range("C2").Value = .Count End With Else MsgBox "Aucun fichier *.xyz trouvé " & "dans le dossier '" & Dossier & "'." End If End With Set Fs = Nothing Sheets("Docs Utilises").Range("A1").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub Sub Parcourir2() ActiveSheet.Unprotect Dim Rien As Integer Dim Liste As Long Dim Resultat As String Dim Browse_info As BrowseInfo With Browse_info ' .hWndOwner = Me.hWnd .lpszTitle = lstrcat("Choix du dossier à analyser", "") .ulFlags = 1 End With Liste = SHBrowseForFolder(Browse_info) If Liste Then Resultat = String$(260, 0) SHGetPathFromIDList Liste, Resultat CoTaskMemFree Liste Rien = InStr(Resultat, vbNullChar) If Rien Then Dossier_choisi = Left$(Resultat, Rien - 1) Sheets("Docs Utilises").Range("B36").Value = Dossier_choisi End If End If Dim Fs As FileSearch Dim Dossier As String

Page 43: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

43/90

Dim I As Integer On Error Resume Next Set Fs = Application.FileSearch Dossier = Dossier_choisi With Fs .NewSearch .Filename = "*.xyz" .LookIn = Dossier .SearchSubFolders = False .Execute msoSortByFileName, msoSortOrderAscending If .Execute > 0 Then With .FoundFiles For I = 1 To .Count Sheets("Docs Utilises").Range("C" & I + 37).Value = .Item(I) Next I Sheets("Docs Utilises").Range("C36").Value = .Count End With Else MsgBox "Aucun fichier *.xyz trouvé " & "dans le dossier '" & Dossier & "'." End If End With Set Fs = Nothing Sheets("Docs Utilises").Range("A1").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub Private Sub ecrire(A_ecrire As String, Optional Gras As Boolean, Optional Couleur As Long) Etat.SelStart = Len(Etat) Etat.SelBold = Gras If Not (IsMissing(Couleur)) Then Etat.SelColor = Couleur Else Etat.SelColor = vbBlack End If Etat.SelText = A_ecrire & vbNewLine Etat.SelBold = False Etat.SelColor = vbBlack End Sub Public Function explorer(ByVal Chemin As String) On Error Resume Next Dim id_1 As Integer Dim id_2 As Integer Dim id_3 As Integer Dim ids() As String Dim dossier_courant As String If Dir(Chemin, vbDirectory) = "" Then

Page 44: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

44/90

Exit Function End If dossier_courant = Dir(Chemin, vbDirectory) Do While dossier_courant <> "" If dossier_courant <> "." And dossier_courant <> ".." Then If (GetAttr(Chemin & dossier_courant) And vbDirectory) <> 0 Then id_1 = id_1 + 1 End If End If dossier_courant = Dir Loop ReDim ids(id_1) dossier_courant = Dir(Chemin, vbDirectory) Do While dossier_courant <> "" If dossier_courant <> "." And dossier_courant <> ".." Then If (GetAttr(Chemin & dossier_courant) And vbDirectory) <> 0 Then id_2 = id_2 + 1 ids(id_2) = dossier_courant If Afficher_sous_dossiers.Value <> 0 Then ecrire dossier_courant, True End If Else ecrire dossier_courant End If End If dossier_courant = Dir Loop For id_3 = 1 To id_1 If Sous_dossiers.Value <> 0 Then explorer Chemin & ids(id_3) & "\" End If Next End Function Private Sub Parti_Click() If Dossier_choisi = "" Then MsgBox "Vous devez sélectionner un dossier à analyser.", vbExclamation Exit Sub End If If Right(Dossier_choisi, 1) <> "\" Then Dossier_choisi = Dossier_choisi & "\" End If Parcourir.Enabled = False Sous_dossiers.Enabled = False Afficher_sous_dossiers.Enabled = False Parti.Enabled = False Etat.Text = "" ecrire "C'est parti dans " & Dossier_choisi, True, vbBlue explorer Dossier_choisi

Page 45: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

45/90

ecrire "C'est fini !", True, vbBlue Parcourir.Enabled = True Sous_dossiers.Enabled = True Afficher_sous_dossiers.Enabled = True Parti.Enabled = True End Sub

Page 46: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

46/90

ANNEXE II : Macro Lecture() et Lecture2()

Issue de :

Comparaison Finale Module 1

Page 47: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

47/90

Sub lecture() 'Déverrouillage de la feuille "Données Weibull" ActiveSheet.Unprotect 'nbd est le nombre de fichier à lire et à importer. 'C'est donc le nombre de fichier *.xyz trouvé dans le dossier choisi. nbd = Sheets("Docs Utilises").Range("C2").Value 'Préparation de la position des données cadreR = 8 cadreC = 2 'Boucle de lecture et d'importation des données For k = 1 To nbd 'k est le numéro du fichier *.xyz lu 'Fichier à ouvrir doss = Sheets("Docs Utilises").Range("C" & k + 3).Value 'Mise à 0 des variables I = 1 J = 0 vartest = 0 'Ouverture et lecture du fichier Sheets("Données Weibull").Select Open doss For Input As #1 'Tant que la ligne n'est pas vide on répète ligne après ligne la boucle. While EOF(1) = False Input #1, LigneSuivante

'Ligne suivante est en fait le bloc de caractères séparés des autres. 'Quand on a trois colonnes de valeurs, LigneSuivante prendra tour 'à tour la valeur de chaque item de la même ligne, en allant jusqu'au 'bout de cette ligne avant de passer à la suivante.

'Bloc conditionnel 'La condition pour débuter l'importation de donnée et la passage 'de 0 à 1 de la variable vartest (Voir la suite plus bas) If vartest = 1 Then 'La liste présentant trois colonnes, il faut incrémenter J suivant un modulo 3. J = J + 1 If J > 3 Then J = 1 I = I + 1 End If If k = 1 Then

Page 48: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

48/90

'Si on vient d'ouvrir le premier fichier *.xyz, il faut écrire dans la table de ' données la valeur de la fréquence, mais aussi les coordonnées du noeud. If J = 3 Then 'Si J=3, c'est-à-dire si l'on est dans la troisième colonne. J = J + k + 4 End If Application.Cells(I + cadreR, J + cadreC).Select ActiveCell.Value = LigneSuivante 'Le format de la valeur copiée est un nombre et non simplement du texte Selection.NumberFormat = "General" Else 'Si on n'est plus en train de lire le premier fichier *.xyz, 'on ne copie que la dernière colonne du fichier. 'Les coordonnées du noeud ont été écrites précédemment. If J = 3 Then J = J + k + 4 Application.Cells(I + cadreR, J + cadreC).Select ActiveCell.Value = LigneSuivante Selection.NumberFormat = "General" End If End If End If 'Si la variable Lignesuivante prend la valeur ":EndHeather", 'c'est que nous avons dépassé l'en-tête du fichier et que 'la ligne suivante sera alors la première donnée à récupérer. 'La variable vartest sert donc de commutateur pour débuter l'importation de donnée If LigneSuivante = ":EndHeader" Then vartest = 1 End If 'La variable Lmax est le nombre total de noeud dans le maillage. Lmax = I 'On ferme le fichier *.xyz pour passer au suivant Wend Close #1 Next 'Déclaration de nouvelles variables: Sheets("Données Weibull").Select 'Les variables itot et jtot sont respectivement les nombres de noeuds 'dans l'horizontale du maillage et dans la verticale 'Selon les consignes d'utilisation d'AnémoScope, il doit obligatoire 'y avoir autant de Noeud en verticale et en horizontale. 'On a donc itot*jtot=itot²=Lmax itot = Lmax ^ (1 / 2)

Page 49: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

49/90

jtot = itot 'Mise à zéro des variables b = 0 c = 0 I = 1 J = 0 'Boucle de remplissage des coordonnées des points For J = 0 To jtot - 1 For I = 1 To itot b = b + 1 c = I + J * itot + cadreR '(on a b=I+J*itot) 'Numéro du noeud: Range("B" & c).Select ActiveCell.Value = b 'Coordonnée horizontale dans le maillage Range("E" & c).Select ActiveCell.Value = I 'Coordonnée verticale dans le maillage Range("F" & c).Select ActiveCell.Value = J + 1 Vmoy = 0 'Calcul de la vitesse moyenne au noeud b à partir des fréquences pour chaque classe de vitesse de vent For L = 0 To nbd - 1 V = Application.Cells(cadreR, 10 + L) Coef = Application.Cells(c, 10 + L) Vmoy = Vmoy + V * Coef Next Range("H" & c).Select ActiveCell.Value = Vmoy 'On sort des deux boucles lorsqu'on a parcouru tous les noeuds inscrits dans la première boucle de la macro Next Next 'Fin de la macro Sheets("Données Weibull").Range("A1").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub Sub lecture2()

Page 50: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

50/90

'Déverrouillage de la feuille "Données Orientation" ActiveSheet.Unprotect 'nbd est le nombre de fichier à lire et à importer. 'C'est donc le nombre de fichier *.xyz trouvé dans le dossier choisi. nbd = Sheets("Docs Utilises").Range("C36").Value 'Préparation de la position des données cadreR = 8 cadreC = 2 'Boucle de lecture et d'importation des données For k = 1 To nbd 'k est le numéro du fichier *.xyz lu 'Fichier à ouvrir doss = Sheets("Docs Utilises").Range("C" & k + 37).Value 'Mise à 0 des variables I = 1 J = 0 vartest = 0 'Ouverture et lecture du fichier Sheets("Données Orientation").Select Open doss For Input As #1 'Tant que la ligne n'est pas vide on répète ligne après ligne la boucle. While EOF(1) = False Input #1, LigneSuivante

'Ligne suivante est en fait le bloc de caractères séparés des autres. 'Quand on a trois colonnes de valeurs, LigneSuivante prendra tour 'à tour la valeur de chaque item de la même ligne, en allant jusqu'au 'bout de cette ligne avant de passer à la suivante.

'Bloc conditionnel 'La condition pour débuter l'importation de donnée et le passage 'de 0 à 1 de la variable vartest (Voir la suite plus bas) If vartest = 1 Then 'La liste présentant trois colonnes, il faut incrémenter J suivant un modulo 3. J = J + 1 If J > 3 Then J = 1 I = I + 1 End If If k = 1 Then

Page 51: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

51/90

'Si on vient d'ouvrir le premier fichier *.xyz, il faut écrire dans la table de 'données la valeur de la fréquence, mais aussi les coordonnées du noeud. If J = 3 Then 'Si J=3, c'est-à-dire si l'on est dans la troisième colonne. J = J + k + 4 End If Application.Cells(I + cadreR, J + cadreC).Select ActiveCell.Value = LigneSuivante 'Le format de la valeur copiée est un nombre et non simplement du texte Selection.NumberFormat = "General" Else 'Si on n'est plus en train de lire le premier fichier *.xyz, 'on ne copie que la dernière colonne du fichier. 'Les coordonnées du noeud ont été écrites précédemment. If J = 3 Then J = J + k + 4 Application.Cells(I + cadreR, J + cadreC).Select ActiveCell.Value = LigneSuivante Selection.NumberFormat = "General" End If End If End If 'Si la variable Lignesuivante prend la valeur ":EndHeather", 'c'est que nous avons dépassé l'en-tête du fichier et que 'la ligne suivante sera alors la première donnée à récupérer. 'La variable vartest sert donc de commutateur pour débuter l'importation de donnée If LigneSuivante = ":EndHeader" Then vartest = 1 End If 'La variable Lmax est le nombre total de noeud dans le maillage. Lmax = I 'On ferme le fichier *.xyz pour passer au suivant Wend Close #1 Next 'Déclaration de nouvelles variables: Sheets("Données Orientation").Select 'Les variables itot et jtot sont respectivement les nombres de noeuds 'dans l'horizontale du maillage et dans la verticale 'Selon les consignes d'utilisation d'AnémoScope, il doit obligatoirement 'y avoir autant de Noeud en verticale et en horizontale. 'On a donc itot*jtot=itot²=Lmax itot = Lmax ^ (1 / 2)

Page 52: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

52/90

jtot = itot 'Mise à zéro des variables b = 0 c = 0 I = 1 J = 0 'Boucle de remplissage des coordonnées des points For J = 0 To jtot - 1 For I = 1 To itot b = b + 1 c = I + J * itot + cadreR '(on a b=I+J*itot) 'Numéro du noeud: Range("B" & c).Select ActiveCell.Value = b 'Coordonnée horizontale dans le maillage Range("E" & c).Select ActiveCell.Value = I 'Coordonnée verticale dans le maillage Range("F" & c).Select ActiveCell.Value = J + 1 'On sort des deux boucles lorsqu'on a parcouru tous les noeuds inscrits dans la première boucle de la macro Next Next 'Fin de la macro Sheets("Données Orientation").Range("A1").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub

Page 53: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

53/90

ANNEXE III : Macro Choix_point()

Issue de :

Comparaison Finale Module 4

Page 54: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

54/90

Sub Choix_point() 'Déverrouillage des feuilles que l'on va utiliser ActiveSheet.Unprotect Sheets("Données Weibull").Select ActiveSheet.Unprotect Sheets("Données Orientation").Select ActiveSheet.Unprotect Sheets("Points à Considérer Orientation").Select ActiveSheet.Unprotect 'Paramétrisation du cadre d'inscription des données cadreR = 8 cadreC = 10 'Boucle de parcours de points à considérer pour les courbes de Weibull For k = 0 To 3 'Sélection du point à considérer nbp = Sheets("Points à Considérer Weibull").Range("D" & k + 4).Value nbl = nbp + cadreR 'Récupération des coordonnées Sheets("Données Weibull").Select X = Range("C" & nbl).Value Y = Range("D" & nbl).Value I = Range("E" & nbl).Value J = Range("F" & nbl).Value 'Réinscription des coordonnées Sheets("Points à Considérer Weibull").Select Range("C" & k * 6 + 11).Value = nbp Range("D" & k * 6 + 12).Value = X Range("D" & k * 6 + 13).Value = Y Range("D" & k * 6 + 14).Value = I Range("D" & k * 6 + 15).Value = J Cells(3, 7 + k).Value = nbp 'Inscription une à une des valeurs demandées For m = 0 To Sheets("Docs Utilises").Range("C2").Value - 1 a = Sheets("Données Weibull").Cells(nbl, m + cadreC).Value Sheets("Points à Considérer Weibull").Cells(m + 4, 7 + k).Value = a Next Next 'Boucle de parcours de points à considérer pour l'orientation du vent For k = 0 To 3 'Sélection du point à considérer nbp = Sheets("Points à Considérer Weibull").Range("D" & k + 4).Value

Page 55: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

55/90

nbl = nbp + cadreR 'Inscription une à une des valeurs demandées For m = 0 To Sheets("Docs Utilises").Range("C36").Value - 1 a = Sheets("Données Orientation").Cells(nbl, m + cadreC).Value Sheets("Points à Considérer Orientation").Cells(m + 13, 7 + k).Value = a Next Next 'Verrouillage des feuilles Sheets("Données Weibull").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False Sheets("Points à Considérer Weibull").Select ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub

Page 56: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

56/90

ANNEXE IV : Macro k_et_c()

Issue de :

Comparaison Finale Module 4

Page 57: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

57/90

Sub k_et_c() 'Repère du cadre Sheets("Points à Considérer Weibull").Select ActiveSheet.Unprotect cadreR = 43 'Boucle pour calculer k et c pour chaque noeud For m = 0 To 3 'Récupération du nombre d'itérations à effectuer nb_ite = Range("I" & m * 33 + cadreR + 8).Value 'Initialisation du calcul en prenant une valeur pour k largement supérieure Range("I" & m * 33 + cadreR).Value = 9 'Départ de la boucle de calcul de k et c pour le noeud en cours For n = 1 To nb_ite 'Récupération de la valeur k à la n-ième intération k = Range("I" & m * 33 + cadreR).Value 'récupération de l'erreur totale à l'itération précédente erbefore = Range("I" & m * 33 + cadreR + 4).Value 'Mise à 0 des variables S1, S2 et S3 S1 = 0 S2 = 0 S3 = 0 'Boucle pour implémenter les sommes S1, S2 et S3 classe de vent pas classe de vent. For p = 0 To 25 'Récupération des valeurs de Ui, ln(Ui) et de P(Ui) ui = Range("B" & p + m * 33 + cadreR).Value lnui = Range("D" & p + m * 33 + cadreR).Value pui = Range("C" & p + m * 33 + cadreR).Value 'Implémentation des variables S1, S2 et S3 S1 = S1 + (ui ^ k) * lnui * pui S2 = S2 + (ui ^ k) * pui S3 = S3 + lnui * pui Next 'Calcul du nouveau k et du nouveau c pour la n-ième itération. k2 = 1 / ((S1 / S2) - S3) c = S2 ^ (1 / k2) 'Report de ces valeurs à leur place respective. Range("I" & m * 33 + cadreR).Value = k2 Range("I" & m * 33 + cadreR + 1).Value = c 'Récupération de la nouvelle erreur générale

Page 58: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

58/90

erafter = Range("I" & m * 33 + cadreR + 4).Value 'Calcul de l'écart d'erreur entre cette itération et la précédente et report dans la cellule correspondante. ecart = Abs((erbefore - erafter) / erafter) * 100 Range("I" & m * 33 + cadreR + 6).Value = ecart Next Next ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub

Page 59: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

59/90

ANNEXE V : Macro Comp()

Issue de : Comparaison Finale

Module 2

Page 60: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

60/90

Sub Comp() 'Déverrouillage de la feuille ActiveSheet.Unprotect 'On récupère le nom du classeur utilisé actuellement CeFichier = ThisWorkbook.Name 'Ouverture de l'explorateur pour sélectionner le fichier excel à importer QuelFichierA = Application.GetOpenFilename("Fichiers Excel, *.xls;*.xlt;*.xla") 'QuelFichierA contient l'adresse complète du fichier excel. 'Si on a sélectionner un fichier excel: If QuelFichierA <> False Then Range("E4").Value = QuelFichierA 'on ouvre le fichier excel choisi Workbooks.Open Filename:=QuelFichierA 'On récupère le nom seul du fichier excel QuelFichier = ActiveWorkbook.Name Workbooks(CeFichier).Activate Range("E3").Value = QuelFichier 'On copie les coordonnées du point de données réelles ainsi que les probabilités de vitesse de vent à hauteur de mesure Workbooks(QuelFichier).Activate Sheets("Exploitation").Select lat = Range("F3").Value lon = Range("F4").Value alt = Range("F5").Value Range("C8:C34").Select Selection.Copy Workbooks(CeFichier).Activate Range("C12").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Range("R3").Value = alt Range("R4").Value = lat Range("R5").Value = lon 'On récupère les probabilités des vitesses de vent, extrapolées à une hauteur différente Workbooks(QuelFichier).Activate Sheets("Exploitation").Select Range("C40:C53").Select Application.CutCopyMode = False Selection.Copy Workbooks(CeFichier).Activate Range("C44").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Page 61: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

61/90

'On récupère les probabilités d'orientation du vent. Workbooks(QuelFichier).Activate Sheets("Exploitation").Select Range("C63:C74").Select Application.CutCopyMode = False Selection.Copy Workbooks(CeFichier).Activate Range("C67").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'On récupères les variables k et c pour les deux cas de hauteur. Workbooks(QuelFichier).Activate Sheets("Exploitation").Select Range("J8:J9").Select Application.CutCopyMode = False Selection.Copy Workbooks(CeFichier).Activate Range("J12").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Workbooks(QuelFichier).Activate Sheets("Exploitation").Select Range("J40:J41").Select Selection.Copy Workbooks(CeFichier).Activate Range("J44").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Workbooks(QuelFichier).Close Else 'Si on n’ a pas sélectionné un fichier excel, on renvoie un message d'erreur. MsgBox "Vous n'avez pas sélectionné de fichier" End If 'On reprotège la feuille ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub

Page 62: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

62/90

ANNEXE VI : Macro Extraction()

Issue de : Comparaison Finale

Module 2

Page 63: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

63/90

Sub Extraction() 'Nettoyage des résultats antérieurs Sheets("Exploitation").Select Range("C8:C34").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=27 Range("C40:C53").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=30 Range("C63:C74").Select Selection.ClearContents 'Coefficient d'extrapolation pour le calcul des vitesses à une hauteur différente h1 = Range("M2").Value h2 = Range("M3").Value alpha = Range("O2").Value Coef = (h2 / h1) ^ alpha 'Ajout dans le classeur des feuilles TEMP et TEMP2 Sheets.Add ActiveSheet.Name = "Temp" Sheets.Add ActiveSheet.Name = "Temp2" 'Nombre d'itération à effectuer pour lire tous les documents sélectionnés NBfichier = Worksheets("Docs Utilises").Range("C2").Value 'Boucle d'extraction des données pour chaque fichier *.csv For k1 = 1 To NBfichier 'Sélection du fichier à lire Sheets("Docs Utilises").Select adressefichier = "TEXT;" & Range("C" & k1 + 3).Value nomfichier = Range("D" & k1 + 3).Value 'Ouverture du fichier sélectionné dans la feuille TEMP Sheets("Temp").Select Range("A1").Select With ActiveSheet.QueryTables.Add(Connection:=adressefichier, Destination:=Range("A1")) .Name = nomfichier .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True

Page 64: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

64/90

.AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = -535 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With 'Décompte du nombre de ligne présente dans le tableau Sheets("Temp").Select Range("A1").Select Selection.End(xlDown).Select ligne_fin = ActiveCell.Row 'Copies des colonnes de données qui nous intéressent 'pour V Sheets("Temp").Select Range(Cells(15, 14), Cells(ligne_fin, 14)).Select Selection.Copy Sheets("Temp2").Select Cells(1, 6).Select ActiveSheet.Paste 'pour D Sheets("Temp").Select Range(Cells(15, 12), Cells(ligne_fin, 12)).Select Selection.Copy Sheets("Temp2").Select Cells(1, 5).Select ActiveSheet.Paste 'Enregistrement du nombre de lignes copiées dans TEMP2. Ce nombre sera ensuite utilisé par la macro Exploitation() ------ I = ligne_fin - 14 Range("Z1").Select ActiveCell.Value = I

Page 65: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

65/90

'Calcul et modification des paramètres qui nous manquent For k2 = 1 To I 'Multiplication par 10 des degrés de l'orientation du vent Range("E" & k2).Value = Range("E" & k2).Value * 10 'Conversion des vitesses en km/h en m/s Range("G" & k2).Value = Range("F" & k2).Value / 3.6 'Extrapolation des vitesses de vent en m/s à une altitude différente Range("I" & k2).Value = Range("G" & k2).Value * Coef Next 'Appel de la macro Exploitation Call Exploitation 'Suppression du contenu des feuilles TEMP et TEMP2 Sheets("Temp").Select Cells.Select Selection.Clear Selection.QueryTable.Delete Sheets("Temp2").Select Cells.Select Selection.Clear Next 'Suppression des feuilles temporaires TEMP et TEMP2 Application.DisplayAlerts = False Sheets("Temp").Select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True Application.DisplayAlerts = False Sheets("Temp2").Select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True 'Calcul des paramètres k et c des courbes de Weibull par l'appel de la macro k_et_c() Sheets("Exploitation").Select Call k_et_c Range("A1").Select End Sub

Page 66: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

66/90

ANNEXE VII : Macro Exploitation()

Issue de : Comparaison Finale

Module 2

Page 67: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

67/90

Sub Exploitation() cadre = 5 'Mise à zéro des variables V0 = 0 V1 = 0 V2 = 0 V3 = 0 V4 = 0 V5 = 0 V6 = 0 V7 = 0 V8 = 0 V9 = 0 V10 = 0 V11 = 0 V12 = 0 V13 = 0 V14 = 0 V15 = 0 V16 = 0 V17 = 0 V18 = 0 V19 = 0 V20 = 0 V21 = 0 V22 = 0 V23 = 0 V24 = 0 V25 = 0 V26 = 0 VV05 = 0 VV25 = 0 VV45 = 0 VV65 = 0 VV85 = 0 VV105 = 0 VV125 = 0 VV145 = 0 VV165 = 0 VV185 = 0 VV205 = 0 VV225 = 0 VV245 = 0 S0 = 0 S30 = 0 S60 = 0

Page 68: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

68/90

S90 = 0 S120 = 0 S150 = 0 S180 = 0 S210 = 0 S240 = 0 S270 = 0 S300 = 0 S330 = 0 S360 = 0 'Déclaration du nombre d'itération à effectuer, égal au nombre de lignes de données dans TEMP2 Worksheets("temp2").Select n = Range("Z1").Value 'Départ de la Boucle For I = 1 To n 'pour la vitesse If Range("G" & I + cadre).Value < 0.5 Then V0 = V0 + 1 End If If Range("G" & I + cadre).Value < 1.5 Then V1 = V1 + 1 End If If Range("G" & I + cadre).Value < 2.5 Then V2 = V2 + 1 End If If Range("G" & I + cadre).Value < 3.5 Then V3 = V3 + 1 End If If Range("G" & I + cadre).Value < 4.5 Then V4 = V4 + 1 End If If Range("G" & I + cadre).Value < 5.5 Then V5 = V5 + 1 End If If Range("G" & I + cadre).Value < 6.5 Then V6 = V6 + 1 End If If Range("G" & I + cadre).Value < 7.5 Then V7 = V7 + 1 End If If Range("G" & I + cadre).Value < 8.5 Then V8 = V8 + 1 End If If Range("G" & I + cadre).Value < 9.5 Then V9 = V9 + 1

Page 69: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

69/90

End If If Range("G" & I + cadre).Value < 10.5 Then V10 = V10 + 1 End If If Range("G" & I + cadre).Value < 11.5 Then V11 = V11 + 1 End If If Range("G" & I + cadre).Value < 12.5 Then V12 = V12 + 1 End If If Range("G" & I + cadre).Value < 13.5 Then V13 = V13 + 1 End If If Range("G" & I + cadre).Value < 14.5 Then V14 = V14 + 1 End If If Range("G" & I + cadre).Value < 15.5 Then V15 = V15 + 1 End If If Range("G" & I + cadre).Value < 16.5 Then V16 = V16 + 1 End If If Range("G" & I + cadre).Value < 17.5 Then V17 = V17 + 1 End If If Range("G" & I + cadre).Value < 18.5 Then V18 = V18 + 1 End If If Range("G" & I + cadre).Value < 19.5 Then V19 = V19 + 1 End If If Range("G" & I + cadre).Value < 20.5 Then V20 = V20 + 1 End If If Range("G" & I + cadre).Value < 21.5 Then V21 = V21 + 1 End If If Range("G" & I + cadre).Value < 22.5 Then V22 = V22 + 1 End If If Range("G" & I + cadre).Value < 23.5 Then V23 = V23 + 1 End If If Range("G" & I + cadre).Value < 24.5 Then V24 = V24 + 1 End If If Range("G" & I + cadre).Value < 25.5 Then V25 = V25 + 1 End If

Page 70: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

70/90

'pour la vitesse extrapolée If Range("I" & I + cadre).Value < 1.5 Then VV05 = VV05 + 1 End If If Range("I" & I + cadre).Value < 3.5 Then VV25 = VV25 + 1 End If If Range("I" & I + cadre).Value < 5.5 Then VV45 = VV45 + 1 End If If Range("I" & I + cadre).Value < 7.5 Then VV65 = VV65 + 1 End If If Range("I" & I + cadre).Value < 9.5 Then VV85 = VV85 + 1 End If If Range("I" & I + cadre).Value < 11.5 Then VV105 = VV105 + 1 End If If Range("I" & I + cadre).Value < 13.5 Then VV125 = VV125 + 1 End If If Range("I" & I + cadre).Value < 15.5 Then VV145 = VV145 + 1 End If If Range("I" & I + cadre).Value < 17.5 Then VV165 = VV165 + 1 End If If Range("I" & I + cadre).Value < 19.5 Then VV185 = VV185 + 1 End If If Range("I" & I + cadre).Value < 21.5 Then VV205 = VV205 + 1 End If If Range("I" & I + cadre).Value < 23.5 Then VV225 = VV225 + 1 End If If Range("I" & I + cadre).Value < 25.5 Then VV245 = VV245 + 1 End If 'pour la direction If Range("E" & I + cadre).Value < 30 Then S0 = S0 + 1 End If If Range("E" & I + cadre).Value < 60 Then S30 = S30 + 1 End If If Range("E" & I + cadre).Value < 90 Then S60 = S60 + 1

Page 71: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

71/90

End If If Range("E" & I + cadre).Value < 120 Then S90 = S90 + 1 End If If Range("E" & I + cadre).Value < 150 Then S120 = S120 + 1 End If If Range("E" & I + cadre).Value < 180 Then S150 = S150 + 1 End If If Range("E" & I + cadre).Value < 210 Then S180 = S180 + 1 End If If Range("E" & I + cadre).Value < 240 Then S210 = S210 + 1 End If If Range("E" & I + cadre).Value < 270 Then S240 = S240 + 1 End If If Range("E" & I + cadre).Value < 300 Then S270 = S270 + 1 End If If Range("E" & I + cadre).Value < 330 Then S300 = S300 + 1 End If If Range("E" & I + cadre).Value < 360 Then S330 = S330 + 1 End If If Range("E" & I + cadre).Value = 360 Then S360 = S360 + 1 End If Next 'Inscription des résultats du décompte dans les cases correspondantes Worksheets("Exploitation").Select Range("C8").Value = V0 + Range("C8").Value Range("C9").Value = Range("C9").Value + V1 - V0 Range("C10").Value = Range("C10").Value + V2 - V1 Range("C11").Value = Range("C11").Value + V3 - V2 Range("C12").Value = Range("C12").Value + V4 - V3 Range("C13").Value = Range("C13").Value + V5 - V4 Range("C14").Value = Range("C14").Value + V6 - V5 Range("C15").Value = Range("C15").Value + V7 - V6 Range("C16").Value = Range("C16").Value + V8 - V7 Range("C17").Value = Range("C17").Value + V9 - V8 Range("C18").Value = Range("C18").Value + V10 - V9 Range("C19").Value = Range("C19").Value + V11 - V10

Page 72: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

72/90

Range("C20").Value = Range("C20").Value + V12 - V11 Range("C21").Value = Range("C21").Value + V13 - V12 Range("C22").Value = Range("C22").Value + V14 - V13 Range("C23").Value = Range("C23").Value + V15 - V14 Range("C24").Value = Range("C24").Value + V16 - V15 Range("C25").Value = Range("C25").Value + V17 - V16 Range("C26").Value = Range("C26").Value + V18 - V17 Range("C27").Value = Range("C27").Value + V19 - V18 Range("C28").Value = Range("C28").Value + V20 - V19 Range("C29").Value = Range("C29").Value + V21 - V20 Range("C30").Value = Range("C30").Value + V22 - V21 Range("C31").Value = Range("C31").Value + V23 - V22 Range("C32").Value = Range("C32").Value + V24 - V23 Range("C33").Value = Range("C33").Value + V25 - V24 Range("C34").Value = Range("C34").Value + n - V25 Range("C40").Value = Range("C40").Value + VV05 Range("C41").Value = Range("C41").Value + VV25 - VV05 Range("C42").Value = Range("C42").Value + VV45 - VV25 Range("C43").Value = Range("C43").Value + VV65 - VV45 Range("C44").Value = Range("C44").Value + VV85 - VV65 Range("C45").Value = Range("C45").Value + VV105 - VV85 Range("C46").Value = Range("C46").Value + VV125 - VV105 Range("C47").Value = Range("C47").Value + VV145 - VV125 Range("C48").Value = Range("C48").Value + VV165 - VV145 Range("C49").Value = Range("C49").Value + VV185 - VV165 Range("C50").Value = Range("C50").Value + VV205 - VV185 Range("C51").Value = Range("C51").Value + VV225 - VV205 Range("C52").Value = Range("C52").Value + VV245 - VV225 Range("C53").Value = Range("C53").Value + n - VV245 Range("C63").Value = Range("C63").Value + S0 + S360 Range("C64").Value = Range("C64").Value + S30 - S0 Range("C65").Value = Range("C65").Value + S60 - S30 Range("C66").Value = Range("C66").Value + S90 - S60 Range("C67").Value = Range("C67").Value + S120 - S90 Range("C68").Value = Range("C68").Value + S150 - S120 Range("C69").Value = Range("C69").Value + S180 - S150 Range("C70").Value = Range("C70").Value + S210 - S180 Range("C71").Value = Range("C71").Value + S240 - S210 Range("C72").Value = Range("C72").Value + S270 - S240 Range("C73").Value = Range("C73").Value + S300 - S270 Range("C74").Value = Range("C74").Value + S330 - S300 End Sub

Page 73: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

73/90

ANNEXE VIII : Macro Lecture3()

Issue de : Comparaison Finale

Module 2

Page 74: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

74/90

Sub lecture3() 'nbd est le nombre de fichier à lire et à importer. 'C'est donc le nombre de fichier *.xyz trouvé dans le dossier choisi. nbd = Sheets("Docs Utilises").Range("C4").Value 'Préparation de la position des données cadreR = 8 cadreC = 1 'Nettoyage des valeurs précédentes Cells(cadreR + 1, 1 + cadreC).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Cells(cadreR + 1, 1 + cadreC).Select 'Création d'une feuille temporaire "Temp" Sheets.Add ActiveSheet.Name = "Temp" For k1 = 1 To nbd 'Sélection du fichier à lire Sheets("Docs Utilises").Select adressefichier = "TEXT;" & Range("C" & k1 + 5).Value nomfichier = Range("D" & k1 + 5).Value 'Ouverture du fichier sélectionné dans la feuille TEMP Sheets("Temp").Select Range("A1").Select With ActiveSheet.QueryTables.Add(Connection:=adressefichier, Destination:=Range("A1")) .Name = "TEMP" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True

Page 75: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

75/90

.AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With ‘On remplace les points par des virgules Cells.Select Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'Décompte du nombre de lignes présentes dans le tableau Sheets("Temp").Select Range("A1").Select Selection.End(xlDown).Select ligne_fin = ActiveCell.Row 'Calcul des pentes entre chaque intervalle de distance For J = 2 To ligne_fin - 1 D1 = Range("A" & J - 1).Value D2 = Range("A" & J).Value H1 = Range("B" & J - 1).Value H2 = Range("B" & J).Value Range("C" & J).Value = Abs(((H2 - H1) / (D2 - D1)) * 100) Next Columns("C:C").Select Selection.NumberFormat = "0.0" 'Report des données dans la feuille "Données Relief" Sheets("Temp").Select Range(Cells(1, 1), Cells(ligne_fin - 1, 3)).Select Selection.Copy

Page 76: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

76/90

Sheets("Données Relief").Select Cells(1 + cadreR, 1 + cadreC + (k1 - 1) * 3).Select ActiveSheet.Paste 'Suppression du contenu des feuilles TEMP Sheets("Temp").Select Cells.Select Selection.Clear Selection.QueryTable.Delete Next 'Suppression des feuilles temporaires TEMP Application.DisplayAlerts = False Sheets("Temp").Select ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True Sheets("Données Relief").Range("A1").Select End Sub

Page 77: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

77/90

ANNEXE IX : Macro ClassD(),ClassA() et ClassP()

Issue de : Comparaison Finale

Module 2

Page 78: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

78/90

Sub classD() 'Classement des distances dans l'ordre croissant pour chaque azimut cadreR = 8 cadreC = 1 Sheets("Données Relief").Select For I = 0 To 11 Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 1 + 3 * I), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Next Range("A1").Select End Sub Sub classA() 'Classement des altitudes dans l'ordre décroissant pour chaque azimut cadreR = 8 cadreC = 1 Sheets("Données Relief").Select For I = 0 To 11 Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 2 + 3 * I), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Next Range("A1").Select End Sub Sub classP() 'Classement des pentes dans l'ordre décroissant pour chaque azimut cadreR = 8 cadreC = 1 Sheets("Données Relief").Select For I = 0 To 11 Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select

Page 79: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

79/90

Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 3 + 3 * I), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Next Range("A1").Select End Sub

Page 80: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

80/90

ANNEXE X : Macro Stat()

Issue de : Comparaison Finale

Module 2

Page 81: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

81/90

Sub Stat() 'Préparation de la position des données cadreR = 8 cadreC = 1 'Enregistrement de la pente max Pmax = Range("C19").Value 'Départ de la boucle pour les 12 azimuts For I = 0 To 11 Sheets("Données Relief").Select 'On classe les données par ordre croissant des distances Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 1 + 3 * I), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'On en retire l'altitude de l'origine H_init = Cells(cadreR + 1, cadreC + 2 + 3 * I).Value 'On classe les données par ordre décroissant des altitudes Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 2 + 3 * I), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'On en retire l'altitude maximale et la distance correspondante H_max = Cells(cadreR + 1, cadreC + 2 + 3 * I).Value D_Hmax = Cells(cadreR + 1, cadreC + 1 + 3 * I).Value 'On classe les données par ordre croissant des altitudes Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 2 + 3 * I), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'On en retire l'altitude minimale et la distance correspondante H_min = Cells(cadreR + 1, cadreC + 2 + 3 * I).Value D_Hmin = Cells(cadreR + 1, cadreC + 1 + 3 * I).Value 'On classe les données par ordre croissant des distances Range(Cells(cadreR, cadreC + 1 + 3 * I), Cells(cadreR, cadreC + 3 + 3 * I)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Cells(cadreR + 1, cadreC + 1 + 3 * I), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal

Page 82: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

82/90

'On détermine le nombre de données dans la colonne Cells(cadreR, cadreC + 1).Select Selection.End(xlDown).Select ligne_fin = ActiveCell.Row cpt = 0 'cpt est la fréquence des pentes unitaires supérieures à la pente maximale For J = 1 To ligne_fin - cadreR P = Cells(cadreR + J, cadreC + 3 + 3 * I).Value If P < Pmax Then Else cpt = cpt + 1 / (ligne_fin - cadreR) End If Next J = 3 cpt2 = 0 'cpt2 est le RIX de l'azimut Do While J <= ligne_fin - cadreR H2 = Cells(cadreR + J, cadreC + 2 + 3 * I).Value H1 = Cells(cadreR + J - 2, cadreC + 2 + 3 * I).Value D2 = Cells(cadreR + J, cadreC + 1 + 3 * I).Value D1 = Cells(cadreR + J - 2, cadreC + 1 + 3 * I).Value P = 100 * (H2 - H1) / (D2 - D1) If P < 10 Then Else cpt2 = cpt2 + 1 / (ligne_fin - cadreR) End If J = J + 2 Loop 'Inscription des valeurs Sheets("Exploitation").Select Cells(3 + I, 4).Value = H_max - H_init Cells(3 + I, 5).Value = H_max - H_min Cells(3 + I, 6).Value = D_Hmax Cells(3 + I, 7).Value = cpt Cells(3 + I, 8).Value = cpt2 Next 'Appel de la macro Pente Call Pente Sheets("Données Relief").Select Range("A1").Select Sheets("Exploitation").Select Range("A1").Select End Sub

Page 83: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

83/90

ANNEXE XI : Macro Pente()

Issue de : Comparaison Finale

Module 2

Page 84: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

84/90

Sub Pente() 'Préparation de la position des données cadreR = 8 cadreC = 1 'Appel de la macro classD pour ordonner les données suivant leurs distances croissantes Call classD 'Enregistrement des variables nécessaires Sheets("Exploitation").Select nb_ech = Range("C18").Value Pmax = Range("C19").Value Range("D22:M45").Select Selection.ClearContents 'On détermine le nombre de données par colonnes Sheets("Données Relief").Select Cells(cadreR, cadreC + 1).Select Selection.End(xlDown).Select ligne_fin = ActiveCell.Row If (ligne_fin - cadreR) < 4 * nb_ech Then 'Avertissement si l'on choisit un nombre d'échelon supérieur au quart de pas unitaires MsgBox "Le nombre d'échelon choisi est bien trop grand" Else 'pour chaque azimut: For k1 = 0 To 11 'mise à zéro des variables cpt = 0 cpt2d = 0 cpt2f = 0 cpt3 = 0 Sheets("Données Relief").Select For J = 1 To (ligne_fin - cadreR - nb_ech) 'calcul de la pente D1 = Cells(cadreR + J, cadreC + 1 + k1 * 3).Value D2 = Cells(cadreR + J + nb_ech, cadreC + 1 + k1 * 3).Value H1 = Cells(cadreR + J, cadreC + 2 + k1 * 3).Value H2 = Cells(cadreR + J + nb_ech, cadreC + 2 + k1 * 3).Value P = 100 * Abs((H2 - H1) / (D2 - D1)) 'si la pente est supérieur ou égale à la limite

Page 85: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

85/90

If P >= Pmax Then 'Départ des compteurs cpt = cpt + 1 'Si la borne de début est vide If cpt2d = 0 Then 'création des bornes cpt2d = J cpt2f = J Else 'sinon incrémentation de la borne de fin cpt2f = cpt2f + 1 End If End If 'La borne de fin doit être au moins aussi grande que l'échelon 'A la fin de la zone, on inscrit les valeurs If cpt2d > 0 Then If cpt2f < J - nb_ech Then Sheets("Exploitation").Select cpt2f = cpt2f + nb_ech Cells(22 + k1 * 2, 4 + cpt3).Value = cpt2d + cadreR Cells(23 + k1 * 2, 4 + cpt3).Value = cpt2f + cadreR cpt2d = 0 cpt2f = 0 'cpt3 est le compteur de zones cpt3 = cpt3 + 1 Sheets("Données Relief").Select End If End If 'Si on arrive à la fin de la plage de données, on termine en inscrivant la dernière zone If cpt2d > 0 Then If J = (ligne_fin - cadreR - nb_ech) Then Sheets("Exploitation").Select cpt2f = cpt2f + nb_ech Cells(22 + k1 * 2, 4 + cpt3).Value = cpt2d + cadreR Cells(23 + k1 * 2, 4 + cpt3).Value = cpt2f + cadreR Sheets("Données Relief").Select cpt3 = cpt3 + 1 End If End If Next 'Si on a plus de 10 zones, alors on efface les lignes correspondantes et on inscrit un message d'erreur. 'On inscrit également le nombre total de zones If cpt3 > 10 Then Sheets("Exploitation").Select

Page 86: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

86/90

Range(Cells(22 + k1 * 2, 4), Cells(23 + k1 * 2, cpt3 + 3)).Select Selection.ClearContents Cells(22 + k1 * 2, 4) = "Nombre de zones trop grand" Else Sheets("Exploitation").Select Cells(22 + k1 * 2, 1).Value = cpt3 End If Next End If 'on inscrit la distance de lissage Sheets("Exploitation").Select Range("G20").Value = nb_ech * (D2 / (ligne_fin - cadreR)) End Sub

Page 87: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

87/90

ANNEXE XII : Macro Graph()

Issue de : Comparaison Finale

Module 2

Page 88: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

88/90

Sub Graph() 'Préparation de la position des données cadreR = 8 cadreC = 1 'Appel de la macro classD pour ordonner les données suivant leurs distances croissantes Call classD 'On récupères les valeurs qui nous intéressent Sheets("Exploitation").Select Az = Range("B50").Value nb_zone = Cells(22 + (2 * (Az / 30)), 1).Value col = (Az / 10) + 2 'Départ de la boucle pour faire varier chaque zone For I = 1 To nb_zone 'On récupère les valeur de début et de fin de la zone Sheets("Exploitation").Select Ld = Cells(22 + 2 * Az / 30, 3 + I).Value Lf = Cells(23 + 2 * Az / 30, 3 + I).Value 'On fixe les valeurs de départ de Hmin et Hmax Sheets("Données Relief").Select Hmin = Cells(Ld, col + 1).Value Hmax = Hmin 'On récupère la hauteur minimale et la hauteur maximale dans notre zone For J = Ld + 1 To Lf H = Cells(J, col + 1).Value If H < Hmin Then Hmin = H End If If H > Hmax Then Hmax = H End If Next 'On récupère les distances de début et de fin de zone DMin = Cells(Ld, col).Value DMax = Cells(Lf, col).Value 'On inscrit les coordonnées du rectangle marquant la zone. Sheets("Exploitation").Select Cells(49 + (I - 1) * 6, 6).Value = DMin Cells(50 + (I - 1) * 6, 6).Value = DMax Cells(51 + (I - 1) * 6, 6).Value = DMax Cells(52 + (I - 1) * 6, 6).Value = DMin Cells(53 + (I - 1) * 6, 6).Value = DMin

Page 89: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

89/90

Cells(49 + (I - 1) * 6, 7).Value = Hmin Cells(50 + (I - 1) * 6, 7).Value = Hmin Cells(51 + (I - 1) * 6, 7).Value = Hmax Cells(52 + (I - 1) * 6, 7).Value = Hmax Cells(53 + (I - 1) * 6, 7).Value = Hmin Next 'Si le nombre de zones est inférieure à 10, toutes les autres coordonnées prennent la valeur nulle. For I = 1 + nb_zone To 10 Sheets("Exploitation").Select Cells(49 + (I - 1) * 6, 6).Value = 0 Cells(50 + (I - 1) * 6, 6).Value = 0 Cells(51 + (I - 1) * 6, 6).Value = 0 Cells(52 + (I - 1) * 6, 6).Value = 0 Cells(53 + (I - 1) * 6, 6).Value = 0 Cells(49 + (I - 1) * 6, 7).Value = 0 Cells(50 + (I - 1) * 6, 7).Value = 0 Cells(51 + (I - 1) * 6, 7).Value = 0 Cells(52 + (I - 1) * 6, 7).Value = 0 Cells(53 + (I - 1) * 6, 7).Value = 0 Next 'On récupère le nombre total de données Sheets("Données Relief").Select TT = Cells(cadreR - 1, col + cadreC) Cells(cadreR + 1, cadreC + col - 1).Select Selection.End(xlDown).Select ligne_fin = ActiveCell.Row Range(Cells(cadreR + 1, cadreC + col - 1), Cells(ligne_fin, cadreC + col)).Select 'On ajoute le graphique Charts.Add ActiveChart.ChartType = xlXYScatterSmooth 'On trace le relief et tous les rectamgles ActiveChart.PlotBy = xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Exploitation" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = TT .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Distance (m)" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Altitude (m)" End With ActiveChart.PlotArea.Select With Selection.Border .ColorIndex = 16

Page 90: Étude et conception des outils aidant à compléter l’utilisation …biblio.uqar.ca/archives/30110643.pdf · 2011. 3. 31. · 1/90 Étude et conception des outils aidant à compléter

90/90

.Weight = xlThin .LineStyle = xlContinuous End With Selection.Interior.ColorIndex = xlNone ActiveChart.ChartType = xlXYScatterLines ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "=""Relief""" ActiveChart.SeriesCollection(2).XValues = "=Exploitation!R49C6:R53C6" ActiveChart.SeriesCollection(2).Values = "=Exploitation!R49C7:R53C7" ActiveChart.SeriesCollection(2).Name = "=""Zone 1""" ActiveChart.SeriesCollection(3).XValues = "=Exploitation!R55C6:R59C6" ActiveChart.SeriesCollection(3).Values = "=Exploitation!R55C7:R59C7" ActiveChart.SeriesCollection(3).Name = "=""Zone 2""" ActiveChart.SeriesCollection(4).XValues = "=Exploitation!R61C6:R65C6" ActiveChart.SeriesCollection(4).Values = "=Exploitation!R61C7:R65C7" ActiveChart.SeriesCollection(4).Name = "=""Zone 3""" ActiveChart.SeriesCollection(5).XValues = "=Exploitation!R67C6:R71C6" ActiveChart.SeriesCollection(5).Values = "=Exploitation!R67C7:R71C7" ActiveChart.SeriesCollection(5).Name = "=""Zone 4""" ActiveChart.SeriesCollection(6).XValues = "=Exploitation!R73C6:R77C6" ActiveChart.SeriesCollection(6).Values = "=Exploitation!R73C7:R77C7" ActiveChart.SeriesCollection(6).Name = "=""Zone 5""" ActiveChart.SeriesCollection(7).XValues = "=Exploitation!R79C6:R83C6" ActiveChart.SeriesCollection(7).Values = "=Exploitation!R79C7:R83C7" ActiveChart.SeriesCollection(7).Name = "=""Zone 6""" ActiveChart.SeriesCollection(8).XValues = "=Exploitation!R85C6:R89C6" ActiveChart.SeriesCollection(8).Values = "=Exploitation!R85C7:R89C7" ActiveChart.SeriesCollection(8).Name = "=""Zone 7""" ActiveChart.SeriesCollection(9).XValues = "=Exploitation!R91C6:R95C6" ActiveChart.SeriesCollection(9).Values = "=Exploitation!R91C7:R95C7" ActiveChart.SeriesCollection(9).Name = "=""Zone 8""" ActiveChart.SeriesCollection(10).XValues = "=Exploitation!R97C6:R101C6" ActiveChart.SeriesCollection(10).Values = "=Exploitation!R97C7:R101C7" ActiveChart.SeriesCollection(10).Name = "=""Zone 9""" ActiveChart.SeriesCollection(11).XValues = "=Exploitation!R103C6:R107C6" ActiveChart.SeriesCollection(11).Values = "=Exploitation!R103C7:R107C7" ActiveChart.SeriesCollection(11).Name = "=""Zone 10""" End Sub