- Timestamp:
- 03/23/12 14:57:22 (12 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/adm/guides/data_content.rst
- Property svn:keywords changed from Id to Id URL
r443 r499 12 12 .. 13 13 .. $URL$ 14 ..15 14 .. 16 15 .. - fplod 20110810T075749Z aedon.locean-ipsl.upmc.fr (Darwin) … … 561 560 Outils de mise en forme : :ref:`traite_amsuab.sh`, :ref:`correct_nadir_amsu.pro`, :ref:`amsu2ncdf.pro`, :ref:`extract_zone_nc.sh`, :ref:`cresamsu_cdf.pro`, :ref:`idl_amsu_netcdf.pro` 562 561 562 Outil de gestion de fichiers :func:`search_amsufiles` 563 563 564 Outil de lecture : :func:`readAMSU` 564 565 … … 664 665 Outils de mise en forme : :ref:`traite_msg-prod.sh` (:ref:`create_gif.sh` :ref:`create_nc.sh`) , :ref:`concat-files.sh`, :ref:`extract_zone_nc.sh` 665 666 666 Outil de lecture : :func:`MSGbuildfullfilename` :func:`MSGread` 667 Outil de lecture : :func:`MSGbuildfullfilename` :func:`MSGread`, :func:`read_regular_grid` 667 668 668 669 Outil de dessin : :func:`plotimageMSG`, :func:`evolution_msg`, :func:`hovmullerlat`, :func:`showgrid`, :func:`plot_intensityMSG`, :func:`visuMSG` -
trunk/src/extract_amsua.pro
- Property svn:keywords set to Id URL
r497 r499 14 14 ; generaliser pour amsub aussi) 15 15 ; 16 ; decode les noms des fichiers d ans la date choisie, puis17 ; appelle le prgm de lecture16 ; decode les noms des fichiers donnés en argument dans **files_list** 17 ; dans la date choisie, puis appelle le prgm de lecture 18 18 ; 19 19 ; appelle :ref:`interpol_correc`, qui fournit les fonctions de correction au … … 42 42 ; digraph extract_amsu { 43 43 ; 44 ; amsu_lista [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/list_filea"];45 44 ; amsu_t1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/AMSU/AMSU*/L1C/yyyy/yyyy_mm_dd/*.L1C"]; 46 45 ; amsu_t2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/yyyy/mm/numch_yyyymmdd_geomin_geomax.dat"]; … … 52 51 ; label="${PROJECT}/src/extract_amsua.pro"]; 53 52 ; 54 ; {amsu_ lista amsu_t1} -> {extract_amsua} -> {amsu_t2};53 ; {amsu_t1} -> {extract_amsua} -> {amsu_t2}; 55 54 ; } 56 55 ; 57 56 ; :param numch: 57 ; :param files_list: 58 58 ; :param yyyy: 59 59 ; :param mm: … … 67 67 ; ======== 68 68 ; 69 ; Creating an articial list of AMSU-A files (You may need to create 69 ; Creating an articial list of AMSU-A files (You may need to create 70 70 ; :file:`${PROJECT_ID}/AMSU/2006/08/ directory)`:: 71 71 ; 72 72 ; $ mkdir -p ${PROJECT_ID}/AMSU/2006/08 73 ; $ echo "${PROJECT_ID}/AMSU/AMSUAN15/L1C/2006/2006_08_01/NSS.AMAX.NK.D06213.S0110.E0255.B4271112.GC.L1C" > ${PROJECT_ID}/list_filea 74 ; $ echo "${PROJECT_ID}/AMSU/AMSUAN15/L1C/2006/2006_08_01/NSS.AMAX.NK.D06213.S0250.E0437.B4271213.GC.L1C" >> ${PROJECT_ID}/list_filea 73 ; 74 ; files_list = strarr(2) 75 ; files_list[0] = project_id_env + '/AMSU/AMSUAN15/L1C/2006/2006_08_01/NSS.AMAX.NK.D06213.S0110.E0255.B4271112.GC.L1C' 76 ; files_list[1] = project_id_env + 'AMSU/AMSUAN15/L1C/2006/2006_08_01/NSS.AMAX.NK.D06213.S0250.E0437.B4271213.GC.L1C' 77 ; 78 ; This above tip can replace the call to :func:`search_amsufiles`. 79 ; 80 ; Pour ne garder que le dernier fichier:: 81 ; 82 ; files_list = search_amsufiles(numch, yyyy, mm, dd) 83 ; help, files_list 84 ; files_list_last_array = strarr(1) 85 ; files_list_last_array[0] = files_list[N_ELEMENTS(files_list) - 1] 86 ; help, files_list_last_array 87 ; files_list = files_list_last_array 88 ; help, files_list 75 89 ; 76 90 ; Using AMSU-A channel 5:: 77 91 ; 78 ; IDL> numch = 'a5' 79 ; IDL> yyyy=2006L 80 ; IDL> mm=8 81 ; IDL> dd=13 82 ; IDL> resol=1 83 ; IDL> lon_min=-20. 84 ; IDL> lon_max=40. 85 ; IDL> lat_min=-5. 86 ; IDL> lat_max=40. 87 ; IDL> extract_amsua, numch, yyyy, mm, dd, resol, lon_min, lon_max, lat_min, lat_max 92 ; numch = 'a5' 93 ; yyyy=2006L 94 ; mm=8 95 ; dd=13 96 ; resol=1 97 ; lon_min=-20. 98 ; lon_max=40. 99 ; lat_min=-5. 100 ; lat_max=40. 101 ; files_list = search_amsufiles(numch, yyyy, mm, dd) 102 ; extract_amsua, numch, files_list, yyyy, mm, dd, resol, lon_min, lon_max, lat_min, lat_max 88 103 ; 89 104 ; :file:`${PROJECT_ID}/AMSU/2006/08/a5_20060801_060w30s_050e45n.dat` 90 105 ; must have been created. 91 106 ; 107 ; SEE ALSO 108 ; ========= 109 ; 110 ; :ref:`data_amsu` 111 ; 112 ; called by :ref:`traite_amsuab.sh` 113 ; 114 ; previous step : :func:`search_amsufiles` 115 ; 116 ; use :ref:`read_amsua1c.pro`, :ref:`read_amsub1c.pro`, 117 ; :func:`geolocation_to_string_idl`, :func:`mem_to_file_amsu_t2` 118 ; 119 ; next step : ++ 120 ; 121 ; TODO 122 ; ==== 123 ; 124 ; traiter les longitudes autour de 180 degres (passage de 180 a -180) 125 ; interpolswath ne gere pas cette situation 126 ; 127 ; comprendre les points bizarres autour de -40,30 visibles avec l'exemple 128 ; de 20060801 129 ; 130 ; lever le doute sur le contenu du fichier écrit par le printf (je (fplod) 131 ; crains des zeros louches!!).louche 132 ; 133 ; vérifier que pas NaN dans les lignes écrites 134 ; 135 ; faire un test avec un zone géographique dans le pacifique pour voir comment 136 ; le système réagi (devrait dire : rien à faire !) 137 ; 138 ; ajouter MHS 139 ; 140 ; eviter la creation d'un fichier vide (si pas de points dans la zone) 141 ; 142 ; tester la cohérence entre les fichiers présents dans files_list 143 ; en terme de date avec yyyy, mm et dd donnés en paramètre 144 ; 145 ; improve log 146 ; 147 ; get rid of uppercase 148 ; 149 ; check args 150 ; 151 ; decrire la limitation avec les seuils 152 ; 92 153 ; EVOLUTIONS 93 154 ; ========== 94 ; lelod 20120223 95 ; modif lecture du fichier bathy (ETOPO) pour limiter le temps 96 ; necessaire. Introduction de coordonnees limite dans initncdf, puis 97 ; domdef 98 ; Attention, si on change la zone, il faut changer les coordonnees!!! 99 ; 100 ; lelod 20111215 101 ; tests de fonctionnement effectues: la correction nadir est 102 ;correctement implementee 103 ; l'interpolation de la fauchee fonctionne 104 ; mais attention test sur la longitude code en dur: 105 ; pbs avec les fauchees qui traversent le meridien 180deg!!!! 106 ; l'interpolation ajoute des points parasites dans la zone... 155 ; 107 156 ; $Id$ 108 157 ; 109 ; $URL: svn+ssh://lelod@forge.ipsl.jussieu.fr/ipsl/forge/projets/varamma/svn/trunk/src/extract_amsua.pro $ 158 ; $URL$ 159 ; 160 ; - fplod 20120323 161 ; 162 ; * add a paramater files_list to remplace usage of :file:`list_file` 163 ; * replace usage of :file:`list_file` by the usage of the string array 164 ; files_list 165 ; * add a test if files_list no empty (see nofile label) 166 ; * reorder SEE ALSO and TODO 167 ; 168 ; - lelod 20120223 169 ; 170 ; * modif lecture du fichier bathy (ETOPO) pour limiter le temps 171 ; necessaire. Introduction de coordonnees limite dans initncdf, puis 172 ; domdef 173 ; 174 ; Attention, si on change la zone, il faut changer les coordonnees!!! 175 ; 176 ; - lelod 20111215 177 ; 178 ; * tests de fonctionnement effectues: la correction nadir est 179 ; correctement implementee 180 ; 181 ; l'interpolation de la fauchee fonctionne 182 ; mais attention test sur la longitude code en dur: 183 ; pbs avec les fauchees qui traversent le meridien 180deg!!!! 184 ; l'interpolation ajoute des points parasites dans la zone... 185 ; 110 186 ; 111 187 ; - fplod 20111214T082300Z aedon.locean-ipsl.upmc.fr (Darwin) … … 190 266 ; test sur skylla: fonctionne au moins pour un fichier! 191 267 ; 192 ; SEE ALSO193 ; =========194 ;195 ; :ref:`data_amsu`196 ;197 ; called by :ref:`traite_amsuab.sh`198 ;199 ; use :ref:`read_amsua1c.pro`, :ref:`read_amsub1c.pro`,200 ; :func:`geolocation_to_string_idl`, :func:`mem_to_file_amsu_t2`201 ;202 ; next step : ++203 ;204 ; TODO205 ; ====206 ;207 ; traiter les longitudes autour de 180 degres (passage de 180 a -180)208 ; interpolswath ne gere pas cette situation209 ;210 ; comprendre les points bizarres autour de -40,30 visibles avec l'exemple211 ; de 20060801212 ;213 ; lever le doute sur le contenu du fichier écrit par le printf (je (fplod)214 ; crains des zesors louches!!).louche215 ;216 ; vérifier que pas NaN dans les lignes écrites217 ;218 ; faire un test avec un zone géographique dans le pacifique pour voir comment219 ; le système réagi (devrait dire : rien à faire !)220 ;221 ; changer le nom des fichiers de listes pour éviter des conflits lors de runs222 ; simultanés223 ;224 ; ajouter MHS225 ;226 ; eviter la creation d'un fichier vide (si pas de points dans la zone)227 ;228 ; tester la cohérence entre les fichiers présents dans list_filea229 ; en terme de date avec yyyy, mm et dd donnés en paramètre230 ;231 ; improve log232 ;233 ; get rid of uppercase234 ;235 ; check args236 ;237 ; decrire la limitation avec les seuils238 ;239 268 ;- 240 PRO extract_amsua, numch, yyyy, mm, dd, resol $269 PRO extract_amsua, numch, files_list, yyyy, mm, dd, resol $ 241 270 , lon_min, lon_max, lat_min, lat_max 242 271 ; … … 245 274 @cm_project 246 275 @common 276 277 ; test if some files to read 278 CASE size(files_list,/DIMENSION) OF 279 0L : BEGIN 280 print, 'pas de fichiers' 281 goto, nofile 282 END 283 ELSE: BEGIN 284 print, 'nb de fichers', size(files_list,/DIMENSION) 285 END 286 ENDCASE 287 nb_file_array = size(files_list,/DIMENSION) 288 nb_file = (nb_file_array)[0] 289 ; 247 290 nomcanal=strmid(numch,0,1) 248 291 nocanal=0 … … 251 294 tbmin=100 252 295 tbmax=350 253 PRINT, 'www , debut programme extract_amsu',SYSTIME()296 PRINT, 'www : debut programme extract_amsu',SYSTIME() 254 297 ; lecture fichier land - sea (S. Masson) 255 298 file=project_id_env+'/MASK/ETOPO1_Ice_g_gmt4.nc' … … 258 301 ;lon_max=40 & lat_min=-5 & lat_max=40 259 302 260 initncdf,file, zaxisname='toto',xaxisname='lon',yaxisname='lat',XMINMESH=8000,XMAXMESH=15000, YMINMESH=4500,YMAXMESH=8500 303 initncdf,file, zaxisname='toto',xaxisname='lon',yaxisname='lat',XMINMESH=8000,XMAXMESH=15000, YMINMESH=4500,YMAXMESH=8500 261 304 domdef,lon_min-15, lon_max+15, lat_min-15, lat_max+15 262 305 bathy=read_ncdf('z',file=file) … … 271 314 jpje = n_elements(yye) 272 315 ;print,jpie,jpje,size(bate) 273 ;PRINT, 'lecture bathy terminee',SYSTIME() 316 ;PRINT, 'lecture bathy terminee',SYSTIME() 274 317 ; appel au ssprgm qui interpole les fonctions de correction (inutile 275 318 ; de l'appeler a chaque fichier....) … … 279 322 ; boucle sur les elements de la liste 280 323 281 ; lecture de la liste des fichiers AMSU-A 282 list_file = project_id_env+'list_file' 283 ;list_filea='list_file' 284 ;index_filea= 0 285 nb_file = file_lines(list_file) 324 print, 'iii : traitement du jour ',yyyy,mm,dd 286 325 a = STRARR(nb_file) 287 ; filea = STRARR(nb_filea) 288 ;print, 'www ouverture pour lecture de ', list_file 289 print, 'www traitement du jour ',yyyy,mm,dd 290 291 openr, lun_a, list_file, /get_lun 292 filea='' 293 nlist=0 294 ilist=0 295 ;PRINT,'demarrage boucle sur lichiers', SYSTIME() 296 while (not eof(lun_a)) do begin 297 ilist=ilist+1 298 onefile = '' 299 readf, lun_a, filea 300 ; filea[index_filea] = onefile 301 ; isolate string independant from satellite 302 ; a[index_filea]=strmid(file_basename(filea[index_filea]),7) 303 ; index_filea = index_filea + 1 304 ;endwhile 326 ;PRINT,'demarrage boucle sur lichiers', SYSTIME() 327 FOR ifile = 0, nb_file - 1 do begin 328 filea = files_list[ifile] 305 329 306 330 COMMON amsua_header,ama_head 307 331 COMMON amsua_data ,ama_scan 308 ;print, 'ouverture et lecture du fichier ', filea, SYSTIME()332 print, 'ouverture et lecture du fichier ', filea, SYSTIME() 309 333 openr,lu1,filea,Error=erra,/get_lun 310 334 read_amsua1c,filea, flag1 … … 341 365 ttt=REFORM(ama_scan.scnlintime/3600000.) 342 366 jnd=where(amalong[midpix,*] gt lon_min-15 and amalong[midpix,*] lt lon_max+15 and amalati[midpix,*] gt lat_min-15 and amalati[midpix,*] lt lat_max+15 ,nzon) 343 print," wwwnb de points du fichier dans le domaine geographique +15deg ",nzon, SYSTIME()367 print,"iii : nb de points du fichier dans le domaine geographique +15deg ",nzon, SYSTIME() 344 368 if nzon ne 0 then begin 345 369 amalat=amalati[*,jnd] … … 351 375 ; print,'dimension tableaux extraits',dims 352 376 n_scan=dims[1] 353 ; PRINT,'il y a des donnees dans la region ' 377 ; PRINT,'il y a des donnees dans la region ' 354 378 amaday=REFORM(ama_scan.scnlindy) 355 379 amafov= fovy_1 … … 363 387 desc=0 364 388 endelse 365 389 ; 366 390 ; correction nadir des donnees 367 391 ch_nadir=fltarr(nbpix,nzon) 368 392 landseamask=intarr(nbpix,nzon)+2 ; valeur hors zone selectionnee 369 ; PRINT,'boucle sur les points du fichier, correction nadir', SYSTIME() 393 ; PRINT,'boucle sur les points du fichier, correction nadir', SYSTIME() 370 394 371 395 for isc=0L,nzon-1L do begin … … 403 427 404 428 endfor 405 ; PRINT, 'fin boucle',SYSTIME() 429 ; PRINT, 'fin boucle',SYSTIME() 406 430 moych=fltarr(nbpix) 407 431 … … 420 444 lat=amalat[*,i] 421 445 mask=landseamask[*,i] 422 ind=where(tb gt tbmin,nbon) 446 ind=where(tb gt tbmin,nbon) 423 447 ; test pour eviter pb d'interpolation de longitude (meridien 180) 424 448 if nbon eq nbpix then begin … … 446 470 lonint=[lonint,longrid[zone]] 447 471 fovint=[fovint,fovgrid[zone]] 448 maskint=[maskint,maskgrid[zone]] 472 maskint=[maskint,maskgrid[zone]] 449 473 timeint=[timeint,replicate(tt[i],npt)] 450 474 endelse … … 454 478 endif 455 479 endfor 456 ; PRINT,'fin interpolation et selection des points de la zone', SYSTIME() 480 ; PRINT,'fin interpolation et selection des points de la zone', SYSTIME() 457 481 458 482 nn=n_elements(chint) … … 482 506 endfor 483 507 endif 484 508 ; 485 509 ; fin boucle sur les fichiers lus 486 510 endif 487 PRINT,'www : passage au fichier suivant ', SYSTIME() 488 end while511 PRINT,'www : passage au fichier suivant ', SYSTIME() 512 endfor 489 513 labfile: 490 514 if (n_elements(data) NE 0) then begin … … 510 534 endif else begin 511 535 print, 'www : no data to write' 536 goto, realend 512 537 endelse 513 538 539 nofile: 540 print, 'www : no data to read' 541 542 realend: 543 PRINT, 'www : fin programme extract_amsua',SYSTIME() 514 544 end -
trunk/src/traite_amsuab.sh
- Property svn:keywords changed from Id to Id URL
r485 r499 79 79 # during [20060801, 20060802[ and you want to produce NetCDF files:: 80 80 # 81 # $traite_amsuab.sh -b 20060801 -e 20060802 -lonmin -25 -lonmax 25 -latmin -5 -latmax 20 -numch a581 # traite_amsuab.sh -b 20060801 -e 20060802 -lonmin -25 -lonmax 25 -latmin -5 -latmax 20 -numch a5 82 82 # 83 83 # And look at log file with :: 84 84 # 85 # $tlogd.sh traite_amsuab85 # tlogd.sh traite_amsuab 86 86 # 87 87 # and of course on files in ${PROJECT_ID}. … … 89 89 # If you want to work on channel b5 of AMSU:: 90 90 # 91 # $traite_amsuab.sh -b 20060813 -e 20060814 -lonmin -25 -lonmax 25 -latmin -5 -latmax 20 -numch b591 # traite_amsuab.sh -b 20060813 -e 20060814 -lonmin -25 -lonmax 25 -latmin -5 -latmax 20 -numch b5 92 92 # 93 93 # SEE ALSO … … 108 108 # :ref:`extract_amsua.pro` 109 109 # :ref:`amsu2ncdf.pro` 110 # :func:`search_amsufiles` 110 111 # 111 112 # :ref:`geolocation_to_string_sh.sh` … … 115 116 # TODO 116 117 # ==== 117 #118 # tri chrono dans les list_file ou apres la production du fichier .dat119 # par extract_amsua.pro avec sort -n : on a besoin de connaitre la120 # convention de terminologie utilisée.121 #122 # changer le nom des fichiers de listes pour éviter des conflits lors de runs123 # simultanés124 118 # 125 119 # se bloque sur … … 150 144 # $URL$ 151 145 # 152 # 146 # - pinsard 20120323 147 # 148 # * replace creation of :file:`${PROJECT_ID}/list_file` by a call to 149 # :func:`search_amsufiles` 150 # * transform the IDL snippet to a function to be abble to use ``CASE`` 151 # 153 152 # - pinsard 20120106 154 153 # … … 471 470 prefix=$(printf "%1c" ${numch} | tr [:lower:] [:upper:]) 472 471 473 # write the file ${PROJECT_ID}/list_file containing AMSU filenames on the current date474 ls ${PROJECT_ID}/AMSU/AMSU${prefix}*/L1C/${yyyy}/${yyyy}_${mm}_${dd}/*.L1C > ${PROJECT_ID}/list_file475 #476 # qqes recettes de cuisine en commentaires pour court-circuiter la vraie liste de fichier477 # 1) pour forcer le contenu de la liste avec des noms de fichiers précis478 # echo "/homedata/eymard/varamma_d//AMSU/AMSUAN16/L1C/2006/2006_08_13/NSS.AMAX.NL.D06225.S1300.E1446.B3036869.GC.L1C" > ${PROJECT_ID}/list_file479 # echo "/homedata/eymard/varamma_d//AMSU/AMSUAN16/L1C/2006/2006_08_13/NSS.AMAX.NL.D06225.S1440.E1451.B3036969.GC.L1C" >> ${PROJECT_ID}/list_file480 #481 # 2)pour ne garder que les n derniers fichiers482 # cp ${PROJECT_ID}/list_file ${PROJECT_ID}/list_file_full483 # tail -n 2 ${PROJECT_ID}/list_file_full > ${PROJECT_ID}/list_file484 # echo "WWWWWWWWWWw : 2 files only" >> ${log} 2>&1485 #486 if [ ! -s ${PROJECT_ID}/list_file ]487 then488 echo "${command} : eee : no file found" >> ${log} 2>&1489 exit 1490 fi491 472 cat >> ${PROJECT}/src/traite_amsu_${$}.pro << EOF 492 .compile interpol_correc 493 .compile extract_amsua 494 resol=1 495 extract_amsua, '${numch}', ${yyyy},${mm}, ${dd}, resol, ${lonmin}, ${lonmax}, ${latmin}, ${latmax} 473 function traite_amsu_${$} 474 ; 475 compile_opt idl2, strictarrsubs 476 ; 477 result = -1 478 ; 479 files_list = search_amsufiles('${numch}', ${yyyy},${mm}, ${dd}) 480 ; 481 ; uncomment the following lines to test with the last file of the list 482 ; files_list_new_array = strarr(1) 483 ; files_list_new_array[0] = files_list[N_ELEMENTS(files_list) - 1] 484 ; files_list = files_list_new_array 485 ; 486 ; uncomment the following lines to test with the two last files of the list 487 ; files_list_new_array = strarr(2) 488 ; files_list_new_array[0] = files_list[N_ELEMENTS(files_list) - 2] 489 ; files_list_new_array[1] = files_list[N_ELEMENTS(files_list) - 1] 490 ; files_list = files_list_new_array 491 ; 492 ; uncomment the following lines to test with the first file of the list 493 ; files_list_new_array = strarr(1) 494 ; files_list_new_array[0] = files_list[1] 495 ; files_list = files_list_new_array 496 ; 497 CASE size(files_list,/DIMENSION) OF 498 0L : BEGIN 499 print, 'www : no file found' 500 END 501 ELSE: BEGIN 502 print, 'iii : nb de fichers', size(files_list,/DIMENSION) 503 resol=1 504 extract_amsua, '${numch}', files_list, ${yyyy}, ${mm}, ${dd}, resol, ${lonmin}, ${lonmax}, ${latmin}, ${latmax} 505 END 506 ENDCASE 496 507 EOF 497 508 if [ ${netcdf_build} -eq 1 ] … … 502 513 fi 503 514 cat >> ${PROJECT}/src/traite_amsu_${$}.pro << EOF 504 exit 515 return, result 516 end 505 517 EOF 506 518 ${IDL_CMD} << EOF >> ${log} 2>&1 507 @traite_amsu_${$} 519 .compile interpol_correc 520 .compile extract_amsua 521 result = traite_amsu_${$}() 508 522 EOF 509 523 status=${?} … … 515 529 fi 516 530 rm ${PROJECT}/src/traite_amsu_${$}.pro 517 rm ${PROJECT_ID}/list_file 2> /dev/null518 531 unset status 519 532 if [ ${netcdf_build} -eq 1 ]
Note: See TracChangeset
for help on using the changeset viewer.