Ignore:
Timestamp:
07/04/12 17:52:46 (12 years ago)
Author:
pinsard
Message:

introduce new erai dataset : new terminology and new time unit and origin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/interp_erai_msl.pro

    r180 r191  
    55; =================== 
    66; 
    7 ; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde) 
     7; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde, eraitype) 
    88; 
    99; DESCRIPTION 
     
    1212; Interpolation of msl from ERA-I grid to OAFLUX grid 
    1313; 
     14; If eraitype is set to 1, 
    1415; :file:`${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc` 
    1516; containing 
     
    1819; :ref:`compute_erai_daily_region_2d.sh`. 
    1920; 
     21; If eraitype is set to 2, 
     22; :file:`${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc` 
     23; containing 
     24; msl from ERA-I 
     25; has been produced by 
     26; :ref:`concat_eraiy.sh`. 
     27; 
    2028; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 
    2129; containing 
     
    4452;        digraph interp_erai_msl { 
    4553; 
    46 ;           file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 
     54;           file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 
     55;           file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc"]; 
    4756;           mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 
    4857;           file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_msl_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; 
     
    5463;           label="${PROJECT}/src/interp_erai_msl.pro"]; 
    5564; 
    56 ;           {file_in mask} -> {interp_erai_msl} -> {file_out} 
     65;           {file_in_erai1 file_in_erai2 mask} -> {interp_erai_msl} -> {file_out} 
    5766; 
    5867;        } 
     
    6675; 
    6776; Used by :ref:`tropflux.sh` 
     77; 
     78; :ref:`compute_erai_daily_region_2d.sh` 
     79; :ref:`concat_eraiy.sh` 
    6880; 
    6981; :func:`report <saxo:report>` 
     
    8193; ======== 
    8294; 
    83 ; :: 
     95; With ERA-I type 1:: 
    8496; 
    8597;  .compile file_interp 
    8698;  yyyymmddb = 20000101L 
    8799;  yyyymmdde = 20001231L 
    88 ;  result = interp_erai_msl(yyyymmddb, yyyymmdde) 
     100;  eraitype = 1 
     101;  result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 
     102;  print, result 
     103; 
     104; With ERA-I type 2:: 
     105; 
     106;  .compile file_interp 
     107;  yyyymmddb = 20000101L 
     108;  yyyymmdde = 20001231L 
     109;  eraitype = 2 
     110;  result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 
    89111;  print, result 
    90112; 
     
    92114; ==== 
    93115; 
    94 ; use real output of :ref:`compute_erai_daily_region_2d.sh` 
     116; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1 
    95117; 
    96118; get_erai.py + grib to netcdf conversion 
     
    116138; 
    117139; $URL$ 
     140; 
     141; - fplod 20120704T113504Z cratos (Linux) 
     142; 
     143;   * add eraitype parameter 
     144;   * conversion mPa to hPa 
     145;   * deal with time units (days vs hours) and time origin 
    118146; 
    119147; - fplod 20120320 
     
    150178function interp_erai_msl $ 
    151179         , yyyymmddb $ 
    152          , yyyymmdde 
     180         , yyyymmdde $ 
     181         , eraitype 
    153182; 
    154183;++compile_opt idl2, strictarrsubs, logical_predicate 
     
    165194result = -1 
    166195; 
    167 usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde)' 
     196usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype)' 
    168197nparam = N_PARAMS() 
    169 IF (nparam NE 2) THEN BEGIN 
     198IF (nparam NE 3) THEN BEGIN 
    170199   ras = report(['Incorrect number of arguments.' $ 
    171200   + '!C' $ 
     
    212241; 
    213242; build data filename 
    214 filename='20c3m_erai_msl_TROP_1989_2009.nc' 
     243IF eraitype EQ 1 THEN BEGIN 
     244    erai_var = 'msl' 
     245    filename='20c3m_erai_msl_TROP_1989_2009.nc' 
     246    tutoday = 24.d 
     247    tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 
     248endif 
     249IF (eraitype eq 2) THEN BEGIN 
     250    erai_var = 'msl' 
     251    tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 
     252    tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 
     253    filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 
     254    tutoday = 1.d 
     255    tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 
     256ENDIF 
    215257; 
    216258; check if this file exists 
     
    222264   ras = report(msg) 
    223265   return, result 
    224 ENDIF 
     266ENDIF ELSE BEGIN 
     267   msg = 'iii : the file ' + fullfilename + ' found.' 
     268   ras = report(msg) 
     269ENDELSE 
    225270; 
    226271; test if ${PROJECT_OD} defined 
     
    263308print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 
    264309print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 
    265 ;++mslin=read_ncdf("msl",yyyymmddb-.5d,yyymmdde,file=fullfilename,/nostr) 
    266 mslin=read_ncdf("msl",19880101,20100930,file=fullfilename,/nostr) 
    267 ; 
    268 timein=24.d*(time-julday(1,1,1957,0,0,0)) 
     310mslin=read_ncdf(erai_var,yyyymmddb,yyyymmdde,file=fullfilename,/nostr) 
     311; 
     312help, time 
     313timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 
    269314jptin=n_elements(timein) 
    270315da=jul2date(time[0]) 
     
    287332; 
    288333; conversion to hPa 
    289 ncdf_getatt, fullfilename, 'msl', units=units 
     334ncdf_getatt, fullfilename, erai_var, units=units 
    290335CASE units OF 
    291336    'Pascal': BEGIN 
    292337        mslin=mslin/100 
     338    END 
     339    'mPa': BEGIN 
     340        mslin=mslin*10 
    293341    END 
    294342    ELSE: BEGIN 
Note: See TracChangeset for help on using the changeset viewer.