Menu |
Prof /
IlluminaGuideThis document is obsolete please go to the new version. ILLUMINA USER'S GUIDEGeneral informationIn that document, the red text means that you have to adapt that part to your specific case. Operating systemIllumina should be used with a computer running under linux with a fortran and gcc compilers installed (e.g. gfortran) and mercurial. Other software dependanciesThe following software are needed by the system
Installing the codeILLUMINA model is available from bitbucket: https://bitbucket.org/aubema/illumina All sources codes are released under GNU public licence. To install the model from google code, please follow these steps: cd mkdir hg cd hg hg clone https://aubema@bitbucket.org/aubema/illumina Then you must compile the code: cd illumina bash makeILLUMINA Then edit the $HOME/.bashrc file. This will render the executables accessible from anywere on the file system. echo "PATH=$PATH:$HOME/hg/illumina/:$HOME/hg/illumina/bin" >>$HOME/.bashrc cd source .bashrc Preparing a modelling experimentStep 1: making light inventory for each spectral lineWe have to create zones files. In ILLUMINA, zone files allow the user to define different geographical zones with different type of lamp (different by their relative contribution to the DMSP-OLS satellite imagery, photometry function or light output pattern (LOP), lamp height). Two or more zones may be in the same geographical region or partly overimposed. Since each zone defines the lamp photometry, the user have to combine both lamp type LOP in an average LOP to define some kind of new combined lamp type. By default, as a first step, all the geographical domain will be defined by 2 zones (urban and contryside). These two cases are discriminated on the basis of a threshold value to the OLS relative radiance. Then additional zones are defined as circle shaped zones with center position and radius. Each new zone overwrite the precedings. To create zone you have to edit a .zon file with a simple text editor like kwrite or gedit following the format shown below: Sample .zon file for a Hg spectral line5 14 95Cobra_5Sentinel.dat ! City 86%Na 14%Hg 95%Cobra (CB) 5%Sentinel (SL) 45 34 66Cobra_34Sentinel.dat ! Countryside 66%Na 34%Hg 66%CB 34%SL (threshold 45/63) 241 50 8 10 93Cobra_7Helios.dat ! Sherbrooke 90%Na 10%Hg 93%CB 7%Helios (HS) 306 58 25 11 67Helios_22Cobra_11Sentinel.dat ! zone 1 RICE-OMM 89%Na 11%Hg 67%HS 22%CB 11%SL 305 55 2 0 A210.2.dat ! Astrolab's parking LPS 0%Na 0%Hg 100%HS 264 52 4 20 40Helios_40Cobra_20Sentinel.dat ! Cookshire 80%Na 20%Hg 40%HS 40%CB 20%SL 321 73 3 20 40Helios_40Cobra_20Sentinel.dat ! Lac-Megantic 80%Na 20%Hg 40%HS 40%CB 20%SL First line contentThis line contain 3 elements:
Second line
Following lines
Step 2: find a DMS-OLS image in ILLUMINA's standard pgm formatSample file for southern part of Quebec province Step 3: Create a reflectance image in ILLUMINA's standard pgm formatWe are using MODIS reflectance product for summer (~mid August) and winter (~mid February) at the nearest neighbourg wavelength according to the following table:
According that DMSP make a yearly average, we have to make a correction for the impact of snow cover during winter (if applicable). For Quebec's region we roughly estimated that there is snow cover 0.25 of the year so that we assumed that the yearly reflectance is given by: {#0.75 x MODIS_R(summer) + 0.25 x MODIS_R(winter) #} This file is created with moypondpgm16bit program. Visual example with MODIS band 4 year 2009: Step 4: find or create a land/water image in ILLUMINA's standard pgm formatThis file is important to correct an important artefact arising from the fact that water surface are almost non reflecting and the optical resolution of DMSP-OLS (2.7km) is lower that the numerical resolution (1km) and then there is abnormal light overspill sometimes over water surface. In the following process, having a very low reflectivity with non zero OLS value will be interpreted as a very high light luminosity. To correct roughly for that we force lamp luminosity to be 0 over water. If you do not already have a water mask, you can use the following rules to create a new one. Ocean surface may be identified with a Digital elevation model by setting a threshold near 0m in elevation. Rivers or lakes can be identifies using a threshold on MODIS summer reflectance but this will need some validation or training with local geographical maps. If some water pixels are not captured by this dual filter, you will see some abnormally high luminosity in the luminosity files. Most of the time it will appear as white lines in cities because many cities are colocated with rivers. Masque des plans d'eau du Québec Step 5: run ols3lum programRun program ols2lum with files created at steps 2, 3 et 4 as summarized below:
Step 6 : file quick verificationOpen all the _lumlp_NN.pgm files to confirm that they are realistics according to the specific experiment. lumlp files are giving the light luminosity for each zone at the given wavelength. Examples with 546 Hg line but contrast boosted
Zone 5, wich is the Astrolab parking lot, have not been shown here because there is no Hg lamps. This image was consequently completely black. Step 7: Preparation of the batch fileThis file is a bash program that will generate a lot of running experiment according to the number of desired cases for each variable. We must define the following variables in the makeBATCH program:
We must also define the following arrays in makeBATCH program:
Step 9Il 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 10Afin 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 sur galileo. Chacun de de ces répertoires doit contenir l'exécutable de ILLUMINA (illumina) compilé sur le cluster. Étape 11À présent, il faut créer le programme qui exécutera les calculs, de même que de nouveaux répertoires pour chaque saison ou période prise en compte. bash makeBATCH Nom_fichier_batch Notes:
Pour exécuter le calcul, il faut effectuer la commande suivante: bash Nom_fichier_batch Cette étape doit être répétée pour chaque saison et chaque valeur d'humidité relative. Étape 12: extraire les résultatsLe 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). Il produit aussi la valeur de radiance dans la direction calculée. Cette valeur n'est toutefois pas calibrée car les fichiers lumlp ne sont pas calibrés au départ. Par exemple, les fichiers illustrant respectivement la contribution et la sensibilité à la pollution lumineuse pour l'expérience 2005 ont la forme suivante: 2005_pcl.pgm et 2005_pcw.pgm Il est maintenant temps d'extraire les données et de renommer les fichiers obtenus puisque les noms attribués par Nom_fichier_batch n'indiquent pas toutes les valeurs requises pour que les fichiers soient correctement indexés sur le portail. Actuellement ces informations sont indiquées dans les noms du répertoire contenant les résultats. Pour extraire les données, il faut se placer dans votre répertoire $HOME cd $HOME cp svn/illumina/trunk/extract-output-data.bash . Les fichiers Nom_fichier_batch devraient s'y trouver. Ensuite y effectuer la commande suivante: bash extract-output-data.bash experiment_name Nom_fichier_batch
cat megantic-2005-ete_* > list-megantic-2005-ete Dans cet exemple, la commande pour extraire les données serait: bash extract-output-data.bash 2005 list-megantic-2005-ete Ici 2005 est le nom de l'expérience (i.e. ce qui précède _436_lumlp (ou autre longueur d'onde que 436) dans les fichiers d'intrants) et list-megantic-2005-ete est le nom du fichier texte contenant tous les fichiers batch correspondant à l'été 2005 pour Mégantic. A la fin de l'exécution de extract-output-data.bash, un répertoire Results/experiment_name aura été créé dans $HOME et il contiendra tous les fichiers PCL (ex.: PCL-x302y58-2005-ta0.05-wl436-el15-az0.pgm) et tous les fichiers PCW (ex.L PCW-x302y58-2005-ta0.05-wl436-el15-az0.pgm). Ce répertoire contiendra aussi un fichier data.txt contenant toutes les valeurs de radiances non calibrées et un fichier *.o* pour chaque run. Ces fichiers contiennent le log de l'execution. Note: Dans les noms venant d'être cités en exemple, chaque terme correspond à un paramètre de l'environnement :
Étape 13 Je pense que cette étape n'est pas nécessaireComme 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:
Étape 14Il 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
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-x302y58-2005-ta0.05-wl436-el15-az0.pgm Étape 15: Renommage des fichiers pour le portailPour être bien indexés par le portail les fichiers doivent être nommés comme suit: PCL-Astrolab_b_midnight_summer_2005-ta0.05-wl436-el15-az0.pgm Signification: PCL = type de données Astrolab = nom du site d'observation b_midnight_summer_2005 = période (b_midnight est pour before midnight, période par défaut des données OLS) ta0.05 = épaisseur optique des aérosols de 0.05 wl436 = longueur d'onde de 436nm el15 = 15 deg d'angle d'élévation az0 = 0 deg d'angle d'azimuth Exemple de commande pour renommer les fichiers ci-haut correctement: list=`ls -1 *x302y58-2005*`;for i in Essentiellement cette commande changera x302y58-2005 pour Astrolab-b_midnight_summer_2005. I.e. avant le tiret, c'est le nom du site d'observation qui remplace la position et après on met la période de la nuit suivie de la saison et de l'année. Les tirets séparent les champs utilisés par le portail alors que les underscore servent à séparer les mots d'un champs donné. Par ex., le champ période contient 4 mots (b, midnight, summer, 2005). Notez que si la modélisation a été faite pour après minuit on utilisera les mots a et midnight (a_midnight) et si la modélisation correspond à l'hiver on utilisera le mot winter. Le nom du site est à la discrétion de l'utilisateur du présent guide mais devra ne pas porter à confusion pour les futurs usagers du portail. |