|
| LISA
|
Base de données
SANOAUtilitaires d'extraction
|
- Les utilitaires proposes ici necessitent l'installation de GAWK sur votre machine.
- Ils permettent de creer des fichiers individuels trois colonnes, facilement visualisables avec XMGR, Gnuplot ou autre...
- Il faut copier les deux fichiers (décrits ci-dessous)
- Pour creer des fichiers trois colonnes, lancer la commande:
SanoaRaw2Esq
Pour toute question concernant ces scripts, envoyez un mail a L.Menut
#!/bin/sh
clear
echo " ------------------------------------------------------------"
echo " SANOA donnees brutes vers fichiers individuels "
echo " ------------------------------------------------------------"
echo " "
echo " Nettoyage du repertoire pour le prefixe ESQ_Sanoa_* "
\rm ESQ_Sanoa_*
echo " "
echo " -------------------------------------------------------------"
echo " -- Donner date de debut --> jj mois an"
echo " Ex. 080898 pour 8 Aout 98"
echo " "
read datedeb
echo " "
echo " -------------------------------------------------------------"
echo " -- Donner date de fin"
echo " "
read datefin
echo " "
echo " -------------------------------------------------------------"
echo " Extraction des polluants suivants:"
echo " "
echo " 1. [HNO2] -- 2. [CH2O] -- 3. [O3] -- 4. [NAPH] "
echo " 5. [TOL] -- 6. [BEN] -- 7. [MXYL] -- 8. [PXYL] "
echo " 9. [NO] -- 10. [NO2] -- 11. [SO2] -- 12. [O4] "
echo " "
ficnom=Avril_Aout_98.BLK
echo "-- Debut du traitement de " $datedeb " a " $datefin
gawk -f SanoaRaw2Esq.awk -v datedeb=${datedeb} -v datefin=${datefin} -v ficnom=${ficnom} ${ficnom}
#-----------------------------------------------------------------------
#
# SANOA DONNEES BRUTES VERS FICHIERS INDIVIDUELS
#
#-----------------------------------------------------------------------
#
# Script construit pour le fichier des donnees ESQUIF de l'ete 1998.
# Pour traiter un autre fichier de meme format, changer le nom dans
# le script de lancement "SanoaRaw2Esq".
#
# Donnees brutes: Manuel PINHARANDA - Service d'Aeronomie
# Osvaldo ANTIVILO - Service d'Aeronomie
# Jean-Pierre POMMEREAU - Service d'Aeronomie
# Robert VAUTARD - LMD
# Cecile HONORE - LMD
# Laurent MENUT - LMD
#
# Programme AWK: Laurent MENUT - LMD (lmenut@lmd.ens.fr)
# Derniere revision: Fevrier 1998
#-----------------------------------------------------------------------
#
# Cree un fichier avec:
# Colonne 1 = la date en heure decimale
# (de la date de debut a la date de fin)
# La date de debut est notee 0
# Colonne 2 = La valeur du polluant choisi
# Colonne 3 = L'ecart-type du polluant choisi, calcule
# pendant la periode d'integration de l'instrument
#-----------------------------------------------------------------------
FILENAME==ficnom {
if(FNR == 1){print "---------------------------------------------"}
if(FNR == 1){print "--- Lecture de " ficnom}
if(FNR > 1){
date[FNR-1]=$1
flux375[FNR-1]=$2
flux280[FNR-1]=$3
flux250[FNR-1]=$4
Chno2[FNR-1]=$5
Ehno2[FNR-1]=$6
Ch2o[FNR-1]=$7
Eh2o[FNR-1]=$8
Co3[FNR-1]=$9
Eo3[FNR-1]=$10
Cnaph[FNR-1]=$11
Enaph[FNR-1]=$12
Ctol[FNR-1]=$13
Etol[FNR-1]=$14
Cbenz[FNR-1]=$15
Ebenz[FNR-1]=$16
Cmxyl[FNR-1]=$17
Emxyl[FNR-1]=$18
Cpxyl[FNR-1]=$19
Epxyl[FNR-1]=$20
Cno[FNR-1]=$21
Eno[FNR-1]=$22
Cno2[FNR-1]=$23
Eno2[FNR-1]=$24
Cso2[FNR-1]=$25
Eso2[FNR-1]=$26
Co4[FNR-1]=$27
Eo4[FNR-1]=$28
nline=FNR
print FNR " lignes lues"
}
}
END{
print "---> Fin de lecture des donnees brutes dans Avril_Aout_98.BLK"
# Decomposition de la date de debut et de fin
jdeb=substr(datedeb,1,2)
mdeb=substr(datedeb,3,2)
andeb=substr(datedeb,5,2)
hdeb=0
jfin=substr(datefin,1,2)
mfin=substr(datefin,3,2)
anfin=substr(datefin,5,2)
hfin=24
if(mdeb < 10)mdeb=substr(mdeb,2,1)-1
if(mfin < 10)mfin=substr(mfin,2,1)-1
# Calendrier
tab[1]=31
tab[3]=31
tab[4]=30
tab[5]=31
tab[6]=30
tab[7]=31
tab[8]=31
tab[9]=30
tab[10]=31
tab[11]=30
tab[12]=31
if (andeb % 4 == 0){tab[2]=29}
if (andeb % 4 != 0){tab[2]=28}
# Calcul du jour Julien correspondant a la date de debut
jjdeb=0
for (i=1;i<=mdeb;i++){
jjdeb=jjdeb+tab[i]
}
jjdeb=jjdeb+jdeb+hdeb/24.
# Calcul du jour Julien correspondant a la date de fin
jjfin=0
for (i=1;i<=mfin;i++){
jjfin=jjfin+tab[i]
}
jjfin=jjfin+jfin+hfin/24.
print "-- Demande d extraction pour la periode " jjdeb " a " jjfin
# Extraction entre jjdeb et jjfin
for (k=1;k<=nline;k++){
if(date[k]>= jjdeb && date[k]<= jjfin){
time=(date[k]-jjdeb)*24.
if(Chno2[k] > 0){
printf("%-f %-f %-f \n",time,Chno2[k],Ehno2[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_hno2"
}
if(Ch2o[k] > 0){
printf("%-f %-f %-f \n",time,Ch2o[k],Eh2o[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_h2o"
}
if(Co3[k] > 0){
printf("%-f %-f %-f \n",time,Co3[k],Eo3[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_o3"
}
if(Cnaph[k] > 0){
printf("%-f %-f %-f \n",time,Cnaph[k],Enaph[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_naph"
}
if(Ctol[k] > 0){
printf("%-f %-f %-f \n",time,Ctol[k],Etol[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_tol"
}
if(Cbenz[k] > 0){
printf("%-f %-f %-f \n",time,Cbenz[k],Ebenz[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_benz"
}
if(Cmxyl[k] > 0){
printf("%-f %-f %-f \n",time,Cmxyl[k],Emxyl[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_mxyl"
}
if(Cpxyl[k] > 0){
printf("%-f %-f %-f \n",time,Cpxyl[k],Epxyl[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_pxyl"
}
if(Cno[k] > 0){
printf("%-f %-f %-f \n",time,Cno[k],Eno[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_no"
}
if(Cno2[k] > 0){
printf("%-f %-f %-f \n",time,Cno2[k],Eno2[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_no2"
}
if(Cso2[k] > 0){
printf("%-f %-f %-f \n",time,Cso2[k],Eso2[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_so2"
}
if(Co4[k] > 0){
printf("%-f %-f %-f \n",time,Co4[k],Eo4[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_o4"
}
# En plus, Ox et NOx
printf("%-f %-f %-f \n",time,Co3[k]+Cno2[k],Eo3[k]+Eno2[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_Ox"
printf("%-f %-f %-f \n",time,Cno[k]+Cno2[k],Eno[k]+Eno2[k]) >> "ESQ_Sanoa_" datedeb "_" datefin "_NOx"
}
}
}