Étapes à suivre : modèle ILLUMINA
Étape 1:
Le modèle ILLUMINA est disponible à l'adresse suivante:
http://code.google.com/p/illumina/
Les commandes suivantes servent à créer un répertoire nommé svn ainsi qu'à télécharger illumina dans ce répertoire:
- mkdir svn
- cd svn
- svn checkout http://illumina.googlecode.com/svn/trunk/ illumina
Il faut ensuite compiler le modèle en effectuant les commandes suivantes:
- cd illumina
- bash makeILLUMINA
Puis, il faut éditer le fichier $HOME/.bashrc, qui sait où trouver les programmes nécessaires, en effectuant les commandes suivantes:
- PATH=$PATH:/home/«nom d'utilisateur»/svn/illumina/:/home/«nom d'utilisateur»/svn/illumina/bin
- source .bashrc
Étape 2:
Il faut d'abord entrer les bonnes données dans le fichier .zon à l'aide d'un éditeur de texte tel que kwrite selon l'ordre suivant:
Première ligne
Cette ligne correspond aux caractéristiques de l'image totale.
- Le premier nombre représente le nombre de zones circulaires définies dans le domaine de modélisation
- Le deuxième nombre représente la fonction photométrique des lampadaires présents dans la totalité de l'image sauf dans les zones circulaires qui seront définies (fraction de lumière émise vers le haut entre z=0 et 90 degrés, z=angle au zénith)
- Le troisième nombre représente le pourcentage de la lumière émise par les lampadaires qu'il faut considérer. Comme notre inventaire de luminaire provient du satellite DMSP-OLS et que ce dernier acquiert ses images en début de nuit, ce pourcentage pourrait par exemple permettre de tenir compte d'une réduction de l'éclairage après minuit.
- La quatrième information nécessaire est le fichier de photométrie .dat
Voici un exemple pour un domaine couvrant une partie de la province de Québec :
Premier nombre | Deuxième nombre | Troisième nombre | Quatrième information |
2 | 0,062 | 100 | cobrahead_fctem_01.dat |
Parce que deux zones ont des caractéristiques photométriques différentes du reste (Sherbrooke et Mégantic) | Parce que les lampadaires Cobrahead émettent 6,2% de leur luminosité à partir de l'horizon | Parce que les lampadaires sont allumés à 100% de ce qui a été détecté par DMSP-OLS | Lampadaire qui correspond au deuxième nombre |
Deuxième ligne (et suivantes)
Cette ligne correspond à une zone circulaire donnée du domaine. Il faut ajouter une ligne additionnelle pour chaque zone définie en respectant les mêmes consignes, décrites plus bas:
- Le premier nombre représente la position en x du centre de la zone auquel il faut ajouter 1
x' = x +1
- Le deuxième nombre représente la position en y du centre de la zone, mais selon la formule suivante:
y' = Taille verticale de l'image - y +1
N.B. la les positions x et y sont obtenues en utilisant l'application display sur le pgm du domaine par un click sur la roulette.
- Le troisième nombre représente le rayon de la zone en pixels
- Le quatrième nombre représente la moyenne pondérée du pourcentage de lumière émise vers le haut par les lampadaires
- Le cinquième et dernier nombre représente le pourcentage de la lumière émise par les lampadaires qu'il faut considérer par rapport au 100% détecté par DMSP-OLS
- La sixième information nécessaire est le fichier de photométrie .dat
Voici un exemple pour la région de Sherbrooke:
Premier nombre | Deuxième nombre | Troisième nombre | Quatrième nombre | Cinquième nombre | Sixième information |
241 | 50 | 8 | 0,058 | 100 | 42Cobra3Helios.dat |
240+1 | 289-240+1 | 8 pixels de rayon | Lampadaires Helios et Cobrahead rapport 3/42 | lumière allumées à 100% | Lampadaire qui correspond au quatrième nombre |
Étape 2
Il faut ensuite convertir le fichier de lumière satellite DMSP-OLS en fichier ols illumina pgm. Ce dernier doit avoir un pixel de taille carrée en km sur chaque axe. Par exemple, le programme illumina pourrait lire un fichier nommé: F162009.stable_lights.avg_vis.pgm
Étape 3
Par la suite, il est nécessaire de créer un fichier .zon pour chaque longueur d'onde émise par les éléments des lampadaires.
Par exemple, dans la région entourant l'Observatoire du mont Mégantic on retrouve des lampadaires au sodium et au mercure. Par conséquent, on mettra au point un fichier mégantic435.zon pour la longueur d'onde de 435 nm émise par le mercure, un fichier megantic498.zon pour la longueur d'onde de 498 nm émise par le sodium, et ainsi de suite pour toutes les autres longueurs d'onde de chaque élément.
Étape 4
Également, il existe des fichiers de réflectance de type .pgm associée aux bandes du satellites MODIS. Il est nécessaire de repérer la bande MODIS correspondante à la longueur d'onde utilisée pour l'expérience. Le tableau suivant présente les bandes correspondant à chaque longueur d'onde.
Élement | Longueur d'onde | Bande MODIS la plus proche |
±0,3 | ||
Mercure | 435,5 nm | bande 3: 470 nm |
Sodium | 498,0 nm | bande 3: 470 nm |
Mercure | 546,0 nm | bande 4: 555 nm |
Sodium | 569,0 nm | bande 4: 555 nm |
Sodium | 615,5 nm | bande 1: 648 nm |
Par exemple, pour la région de l'Observatoire du mont Mégantic, on dispose du fichier refl_ete_b03.pgm qui correspond à la bande 3 du satellite MODIS pour la saison de l'été. La bande 3 qui est la plus proche à la fois de la longueur d'onde de 435,5nm et de 498 nm, sera retenue pour ces deux longueurs d'ondes.
Toutefois comme le satellite DMSP fait la moyenne annuelle il faut penser que l'image DMSP-OLS sera fortement affectée par la présence de neige au sol l'hiver. Pour corriger ce problème, nous ferons une moyenne pondérée des réflectances MODIS d'hiver et d'été. Nous avons choisis une pondération de 0.25 pour l'hiver et 0.75 pour l'été.
0,75 x été + 0,25 x hiver
Pour ce faire, il faut utiliser le programme moypondpgm16bit et les fichiers de réflectance MODIS. Voici un exemple fait à partir d'une longueur d'onde de 435 nm (bande 3).
1st pgm file name and averaging weight? | refl_ete_b03_gimp.pgm 0.75 |
2nd pgm file name and averaging weight? | refl_hiver_b03_gimp.pgm 0.25 |
Output pgm file name? | refl_75ete_25hiver_b03.pgm |
Étape 5
Il est nécessaire de créer un masque qui servira à cacher les plans d'eau sur les fichiers de luminosité. Étant donné que les cours d'eau de type océanique ont une altitude près du niveau de la mer, il sera possible de les isoler en utilisant l'élévation du sol comme critère. Pour ce qui est des plans d'eau à altitude plus élevée, ils sont repérés à l'aide d'un seuil maximal de réflectance donné par un fichier de réflectance qui est comparé avec une carte des plans d'eau de la région concernée. Ce seuil de réflectance peut être ajusté selon les types de cours d'eau présents sur le territoire. On choisira ici le fichier de réflectance dans lequel on peut observer le plus grand contraste entre l'eau et la terre. Les derniers ajustement doivent être effectués manuellement, en sélectionnant chaque pixel d'un plan d'eau qui aurait échappé aux autres filtres. Ces pixels oubliés se reconnaissent généralement par des fines lignes brillantes au milieu des villes.
L'exemple suivant, pour la province de Québec, illustre à quoi devrait ressembler le masque d'eau créé à cette étape:
Masque des plans d'eau du Québec
Étape 6
Exécuter le programme ols2lum en entrant les fichiers créés aux étapes 2, 3 et 4, vis-à-vis les indications suivantes:
- Root name : On entre ici la racine du nom d'un des fichiers créés à l'étape 4
- Nom complet du fichier ols : On entre ici le fichier créé à l'étape 2
- Nom complet du fichier masque d'eau : On entre ici le fichier créé à l'étape 5
- Nom complet du fichier zon : On entre ici un des fichiers créés à l'étape 3, soit celui correspondant à la longueur d'onde inscrite vis-à-vis le Root name
Par exemple, pour la zone de l'Observatoire du mont Mégantic et pour la longueur d'onde de 435 nm en été, on aurait:
Root name | ete_435 |
Nom complet du fichier ols | F162009.stable_lights.avg_vis.pgm |
Nom complet du fichier masque d'eau | watermask4.pgm |
Nom complet du fichier zon | megantic435.zon |
Pour une longueur d'onde et une saison donnée, le programme ols2lum fournira plusieurs fichiers, soit un par zone définie à l'étape 1.
Par exemple, si deux zones ont été définie en plus de la zone globale à l'étape 1, alors ols2lum transformera les données de l'exemple précédant en trois fichiers:
- Fichier 1 : ete_435_lumlp_01.pgm
- Fichier 2 : ete_435_lumlp_02.pgm
- Fichier 3 : ete_435_lumlp_03.pgm
Dans notre cas, la zone globale est le Québec (fichier 1), la zone 1 est Sherbrooke (fichier 2) et la zone 2 (fichier 3) est le mont Mégantic.
Étape 7
Afin de vérifier que les fichiers créés à l'étape 6 sont réalistes, il faut les ouvrir à l'aide d'un programme qui traite des images.
Par exemple, nous avons utilisé le programme display à l'aide de la commande suivante pour le fichier 1 à 435 nm : display 435_lumlp_01.pgm
Ce fichier donne l'intensité des lampadaires peut importe la direction d'émission de ceux-ci, autrement dit de la quantité d'éclairage à cet endroit sans tenir compte de la réflexion, du relief...
Notre fichier 1 est le suivant:
Étape 8
Il faut fixer les variables suivantes dans le programme makeBATCH:
Variable fixes | Définition | Exemple |
pixsize | Taille d'un pixel sur l'image en mètres | 1000 |
exp_name | Nom de l'expérimentation | ete |
pressure | Pression atmosphérique en kPa | 101.3 |
est_time | Temps de calcul estimé en heures | 80 |
mna_file | Modèle numérique d'élévation | srtm4.pgm |
Il faut fixer les vecteurs suivants dans le programme makeBATCH:
Vecteur | Définition | Exemple |
x_sites | Coordonnée en x du centre du site d'observation en pixels | 302 |
y_sites | Coordonnée en y du centre du site d'observation en pixels | 58 |
z_sites | Numéro de la couche du modèle correspondant à la hauteur du centre du site d'observation | 33 |
d_reflect | Distance entre les obstacles en mètres | 13 |
h_obstacle | Hauteur des bâtiments en mètres | 9.2 |
saut_dif | Afin d'alléger les calculs, faire 1 calcul sur le nombre indiqué | 100 |
r_dif | Rayon de diffusion, distance occupé par le dôme de lumière au dessus d'une ville en mètres | 4000 |
elevation | Angle d'élévation de l'observateur | 90 |
azymut | Azymut de l'observateur | 0 |
tau | Épaisseur optique | 0.050 0.100 0.200 |
reflect_files | Fichiers de réflexion | ete_435_reflect.pgm ete_498_reflect.pgm ete_546_reflect.pgm ete_568_reflect.pgm ete_615_reflect.pgm |
mie_files | Fichiers de diffusion des aérosols | rural_RH70_0.4400um.mie.out rural_RH70_0.5000um.mie.out rural_RH70_0.5500um.mie.out rural_RH70_0.5843um.mie.out rural_RH70_0.6076um.mie.out |
lamp_l | Fichiers de luminosité créés avec ols2lum | _lumlp_01.pgm _lumlp_02.pgm _lumlp_03.pgm |
lamp_h | Hauteur des lampadaires pour chaque zone | megantic_altlp.pgm megantic_altlp.pgm megantic_altlp.pgm |
lamp_p | Fonction photométrique des lampadaires pour chaque zone | cobrahead_fctem_01.dat 42Cobra3Helios.dat A210.2.dat |
- Il est à noter que l'exemple utilisé était pour une humidité relative de 70% durant l'été, mais que ceci est à faire pour chaque humidité relative et ce pour l'été et l'hiver
Étape 9
Il faut maintenant créer un répertoire pour chaque humidité analysée dans lequel deux sous-répertoire seront inclus, c'est-à-dire ete et hiver. Dans notre cas, nous avons créer trois répertoires, soit rh50, rh70 et rh80.
Maintenant, il faut amener dans ces répertoires tous les fichiers requis pour chaque saison, de même que le modèle ILLUMINA.
Étape 10
Afin d'exécuter les calculs, il faut maintenant se connecter à un Cluster. Dans notre cas, nous nous connectons à galileo.
Ensuite, il est nécessaire de recompiler le modèle ILLUMINA à l'aide de makeILLUMINA, soit grâce à la commande suivante:
bash makeILLUMINA
Les répertoires nécessaires, créés à l'étape 9 doivent maintenant être transférés dans galileo. Dans chacun de ceux-ci, le modèle ILLUMINA doit être copié.
Étape 11
À présent, il faut créer le programme TortureMammouth qui exécutera les calculs, de même que de nouveaux répertoires pour chaque valeur d'humidité relative et chaque saison prise en compte.
Par exemple, dans le cas d'une humidité relative de 70% l'été, la commande suivante doit être exécutée:
bash makeBATCH-megantic-ete-rh70
Notes:
- La commande qstat permet de vérifier l'état des Clusters(noeuds de calcul) avant ou pendant l'exécution.
- Pour effacer une tâche, utiliser la commande qdel suivie du numéro de la tâche à effacer.
Pour exécuter le calcul, il faut effectuer la commande suivante:
bash TortureMammouth
Cette étape doit être répétée pour chaque saison et chaque valeur d'humidité relative.
Étape 12
Le modèle ILLUMINA génère deux fichiers image par calcul effectué, soit un fichier illustrant la contribution (PCL) et l'autre illustrant la sensibilité à la pollution lumineuse (PCW).
Par exemple, les fichiers illustrant respectivement la contribution et la sensibilité à la pollution lumineuse pour l'été ont la forme suivante:
ete_pcl.pgm et ete_pcw.pgm
Il est maintenant temps d'extraire les données et de renommer les fichiers obtenus puisque les noms attribués par TortureMammouth n'indiquent pas la valeur de l'humidité relative, ni celle de la longueur d'onde.
Pour ce faire, il faut sélectionner l'un des répertoires créés à l'étape 9 (par exemple: rh70/ete) et effectuer la commande suivante:
extract-data.bash
Il faut indiquer le nom de la saison vis-à-vis les deux questions qui apparaîtront par la suite, soit Experiment folder name? et Experiment name?
Par exemple, on écrira pour le cas de l'été:
- Experiment folder name? ete
- Experiment name? ete
Toujours dans le même exemple, le fichier obtenu aura le nom suivant: PCL-ete-ta0.050-wl435-el90-az0.pgm
Note: Dans le nom venant d'être cité en exemple, chaque terme correspond à un paramètre de l'environnement :
- ta0.050 = Épaisseur optique
- wl435 = Longueur d'onde
- el90 = Angle d'élévation
- az0 = Angle azimutal
Étape 13
Comme les cartes ont une incertitude de l'ordre de 3 km, il existe un programme capable d'étaler les points lumineux apparaissant sur les cartes afin que ceux-ci soient représentatif de l'incertitude. Ce programme est nommé interp-pgm16bit. Il entrer le nom des fichiers créés à l'étape 13, de même que la résolution souhaitée en pixel (Dans notre cas 1 pixel = 1 km). Par exemple, pour l'hiver avec une épaisseur optique de 0,1 et une longueur d'onde de 568 nm:
Name of the pgm file? | PCL-hiver-ta0.100-wl568-el90-az0.pgm |
Output resolution (pixels)? | 3 |
Name of the output file? | PCL-hiver-ta0.100-wl568-el90-az03km.pgm |
Étape 14
Il peut être plus facile d'analyser une carte lorsque celle-ci est en couleur. Pour ce faire, il faut d'abord savoir quel est la résolution numérique de l'image (8bit ou 16 bit) à l'aide de la commande suivante:
more ete_...*pgm
- Si le nombre indiqué est 255, la résolution est de 8 bit.
- Si le nombre indiqué est 65535, la résolution est de 16 bit.
Selon la résolution de l'image, on utilisera le programme pgm8bit2color.bash ou le programme pgm16bit2color.bash.
Donc, on entre le programme approprié suivi du nom du fichier à mettre en couleur. Par exemple:
pgm16bit2color.bash PCL-ete-ta0.050-wl435-el90-az03km.pgm