Changeset 580 for trunk


Ignore:
Timestamp:
06/20/12 15:30:15 (12 years ago)
Author:
lelod
Message:

extension a amsub

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/interpol_correc.pro

    r562 r580  
    6060; ==== 
    6161; 
     62; 
    6263; on peut changer le codage en dur des fauchees ou demi-fauchees, mais 
    6364; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauchee 
     
    7677; EVOLUTIONS 
    7778; ========== 
     79; 
     80; - lelod 20120620 
     81;   amelioration du code et introduction des corrections par 
     82;   satellite pour amsub 
     83; impasse sur difference amsub - mhs a ce niveau 
     84; remis les donnees de correction dans data_raf_amsu pour update VARAMMA 
    7885; 
    7986; - lelod 20120525 
     
    129136reads, strmid(numch,1,1),numcanal,format='(i1.1)' 
    130137 
    131 if nomcanal eq 'a' then nbpixel=30 
    132 if nomcanal eq 'b' then nbpixel=90 
    133138pixelsize,pixatot,pixbtot,alongatot,alongbtot 
    134139if nomcanal eq 'a' then begin 
     
    140145endelse 
    141146 
    142 ; parametres AMSU et calcul de la fauchee 
     147; parametres AMSU et calcul de la geometrie de la fauchee 
     148; pourinterpolation de la correction (calculee sur geometrie AMSUA) a AMSUB 
    143149nfova=30 
    144150nfovb=90 
    145 ndfova=nfova/2 
    146 ndfovb=nfovb/2 
    147 print,'nb points',numch,ndfova,ndfovb 
    148 fovb=fltarr(ndfovb) 
     151ndfova=nfova/2 ; 15 
     152ndfovb=nfovb/2 ; 45 
     153; cas AMSUA 
    149154fova=fltarr(ndfova) 
    150 alongb=fltarr(ndfovb) 
    151 alongab=alongbtot[ndfovb:nfovb-1] ; verifier l'intervalle!!!!! 
    152 pixb=pixbtot[ndfovb:nfovb-1] 
    153155alonga=alongatot[ndfova:nfova-1] 
    154156pixa=pixatot[ndfova:nfova-1] 
    155157;ifov nadir : diametre (km) 
    156 ifova=48.05 & ifovb=16 
     158ifova=48.05 
    157159; position dans la fauchee: premier point au nadir a ifov/2 
    158 ; 
     160; zone pixel : ellipse de grand axe pixb et petit axe alongb 
     161coefa=1 ; recouvrement des pixels dans la fauchee 
     162fova(0)=ifova/2. 
     163for i=1,ndfova-1 do fova(i)=fova(i-1)+coefa*(pixa(i-1)/2 +pixa(i)/2) ; verifier!!! 
     164fov_a=fltarr(ndfova) 
     165;fov_a(14)=fova(0) 
     166;for i=0,13 do fov_a(13-i)=fov_a(14-i)+coefa*(pixa(13-i)/2 +pixa(14-i)/2) 
     167for i=0,ndfova-1 do fov_a(i)=-fova(ndfova-1-i) 
     168 
     169fovb=fltarr(ndfovb) 
     170alongb=fltarr(ndfovb) 
     171alongb=alongbtot[ndfovb:nfovb-1] ; verifier l'intervalle!!!!! 
     172pixb=pixbtot[ndfovb:nfovb-1] 
     173;ifov nadir : diametre (km) 
     174ifovb=16. 
    159175coefb=0.8 
    160176fovb(0)=ifovb/2. 
     
    164180;for i=0,43 do  fov_b(43-i)=fov_b(44-i)+coefb*(pixb(43-i)/2 +pixb(44-i)/2) 
    165181for i=0,ndfovb-1 do fov_b(i)=-fovb(ndfovb-1-i) 
    166 ; zone pixel : ellipse de grand axe pixb et petit axe alongb 
    167 ; 
    168 coefa=1 
    169 fova(0)=ifova/2. 
    170 for i=1,ndfova-1 do fova(i)=fova(i-1)+coefa*(pixa(i-1)/2 +pixa(i)/2) ; verifier!!! 
    171 fov_a=fltarr(ndfova) 
    172 ;fov_a(14)=fova(0) 
    173 ;for i=0,13 do fov_a(13-i)=fov_a(14-i)+coefa*(pixa(13-i)/2 +pixa(14-i)/2) 
    174 for i=0,ndfova-1 do fov_a(i)=-fova(ndfova-1-i) 
    175182 
    176183 
    177184path = project_env + '/src/dataref_amsu/' 
    178185; lecture des fichiers d'ajustement au nadir pour AMSUA et B 
    179 ; cas amsua: noaa17 saute - lecture pour les 5 satellites utilises N15, 16, 
    180 ;                           18, 19, M02 
     186; noaa17 elimine - lecture pour les 5 satellites utilises N15, 16, 18, 19, M02 
    181187if nomcanal eq 'a' then begin 
    182    cor_l=fltarr(nfova,5) 
    183    cor_s=fltarr(nfova,5) 
    184       cor_seaa15=project_id_env+'AMSU/CORR_SEA_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 
    185       cor_landa15=project_id_env+'AMSU/CORR_LAND_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 
    186       cor_seaa16=project_id_env+'AMSU/CORR_SEA_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 
    187       cor_landa16=project_id_env+'AMSU/CORR_LAND_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 
    188       cor_seaa18=project_id_env+'AMSU/CORR_SEA_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 
    189       cor_landa18=project_id_env+'AMSU/CORR_LAND_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 
    190       cor_seaa19=project_id_env+'AMSU/CORR_SEA_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 
    191       cor_landa19=project_id_env+'AMSU/CORR_LAND_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 
    192       cor_seaM2=project_id_env+'AMSU/CORR_SEA_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 
    193       cor_landM2=project_id_env+'AMSU/CORR_LAND_AMSUA'+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 
    194       listcorr_l=[cor_landa15,cor_landa16,cor_landa18,cor_landa19,cor_landM2] 
    195       for nosat=0,4 do begin 
    196           corrland=listcorr_l[nosat] 
    197          openr, lun1,corrland, /get_lun, ERROR = error 
    198          IF (error NE 0) then begin 
    199             ras = report(['eee : can not open for reading '$ 
    200                           + '!C' $ 
    201                           + 'code : ' + !ERROR_STATE.MSG $ 
    202                           + corrland]) 
    203             STOP 
    204          ENDIF 
    205          readf, lun1, t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,$ 
    206                 t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,$ 
    207                 t21,t22,t23,t24,t25,t26,t27,t28,t29,t30 
    208          a=[t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,$ 
    209             t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,$ 
    210             t21,t22,t23,t24,t25,t26,t27,t28,t29,t30] 
    211          cor_l[*,nosat]=interpol(a,nfova,/lsquadratic)  
    212          free_lun, lun1 
    213       endfor 
    214      listcorr_s=[cor_seaa15,cor_seaa16,cor_seaa18,cor_seaa19,cor_seaM2] 
    215       for nosat=0,4 do begin 
    216           corrsea=listcorr_s[nosat] 
    217           openr, lun1,corrsea, /get_lun, ERROR = error 
    218           IF (error NE 0) then begin 
    219             ras = report(['eee : can not open for reading '$ 
    220                           + '!C' $ 
    221                           + corrsea]) 
    222             STOP 
    223          ENDIF 
    224       readf, lun1, t1,t2,t3,t4,t5,$ 
    225              t6,t7,t8,t9,t10,$ 
    226              t11,t12,t13,t14,t15,$ 
    227              t16,t17,t18,t19,t20,$ 
    228              t21,t22,t23,t24,t25,$ 
    229              t26,t27,t28,t29,t30 
    230  
    231       a=[t1,t2,t3,t4,t5,$ 
    232          t6,t7,t8,t9,t10,$ 
    233          t11,t12,t13,t14,t15,$ 
    234          t16,t17,t18,t19,t20,$ 
    235          t21,t22,t23,t24,t25,$ 
    236          t26,t27,t28,t29,t30] 
    237       free_lun, lun1 
    238          cor_s[*,nosat]=interpol(a,nfova,/lsquadratic)  
    239          free_lun, lun1 
    240       endfor 
    241  
    242 endif 
    243  
    244 ;cas amsub 
    245 if nomcanal eq 'b' then begin 
    246    cor_landb = path + 'CORR_LAND_AMSUB_JUIL2006.DAT' 
    247    cor_seab = path + 'CORR_SEA_AMSUB_JUIL2006.DAT' 
    248    cor_l=fltarr(nfovb) 
    249    cor_s=fltarr(nfovb) 
    250    openr, lun1,cor_landb, /get_lun, ERROR = error 
     188   instr='A' 
     189   nfov=nfova 
     190endif else begin 
     191   instr='B' 
     192   nfov=nfovb 
     193endelse 
     194cor_l=fltarr(nfov,5) 
     195cor_s=fltarr(nfov,5) 
     196cor_sea15=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 
     197cor_land15=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 
     198cor_sea16=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 
     199cor_land16=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 
     200cor_sea18=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 
     201cor_land18=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 
     202cor_sea19=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 
     203cor_land19=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 
     204cor_seaM2=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 
     205cor_landM2=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 
     206listcorr_l=[cor_land15,cor_land16,cor_land18,cor_land19,cor_landM2] 
     207for nosat=0,4 do begin 
     208   corrland=listcorr_l[nosat] 
     209   openr, lun1,corrland, /get_lun, ERROR = error 
    251210   IF (error NE 0) then begin 
    252211      ras = report(['eee : can not open for reading '$ 
    253             + '!C' $ 
    254             + cor_landb]) 
     212                    + '!C' $ 
     213                    + 'code : ' + !ERROR_STATE.MSG $ 
     214                    + corrland]) 
    255215      STOP 
    256216   ENDIF 
    257    for i=0, numcanal-1 do begin 
    258       readf, lun1, t1,t2,t3,t4,t5,$ 
    259              t6,t7,t8,t9,t10,$ 
    260              t11,t12,t13,t14,t15,$ 
    261              t16,t17,t18,t19,t20,$ 
    262              t21,t22,t23,t24,t25,$ 
    263              t26,t27,t28,t29,t30 
    264  
    265       a=[t1,t2,t3,t4,t5,$ 
    266          t6,t7,t8,t9,t10,$ 
    267          t11,t12,t13,t14,t15,$ 
    268          t16,t17,t18,t19,t20,$ 
    269          t21,t22,t23,t24,t25,$ 
    270          t26,t27,t28,t29,t30] 
    271    endfor 
    272                        ;interpolation 
    273    cor_l[ndfovb:nfovb-1]=interpol(a[ndfova:nfova-1],fova,fovb,/spline) 
    274    cor_l[0:ndfovb-1]=interpol(a[0:ndfova-1],fov_a,fov_b,/spline) 
    275  
     217   readf, lun1, t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,$ 
     218          t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,$ 
     219          t21,t22,t23,t24,t25,t26,t27,t28,t29,t30 
     220   a=[t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,$ 
     221      t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,$ 
     222      t21,t22,t23,t24,t25,t26,t27,t28,t29,t30] 
     223   if nomcanal='a' then begin 
     224      cor_l[*,nosat]=interpol(a,nfova,/lsquadratic)  
     225   endif else begin 
     226      cor_l[ndfovb:nfovb-1,nosat]=interpol(a[ndfova:nfova-1],fova,fovb,/spline) 
     227      cor_l[0:ndfovb-1,nosat]=interpol(a[0:ndfova-1],fov_a,fov_b,/spline) 
     228   endelse 
    276229   free_lun, lun1 
    277    openr, lun1,cor_seab, /get_lun, ERROR = error 
     230endfor 
     231 
     232listcorr_s=[cor_sea15,cor_sea16,cor_sea18,cor_sea19,cor_seaM2] 
     233for nosat=0,4 do begin 
     234   corrsea=listcorr_s[nosat] 
     235   openr, lun1,corrsea, /get_lun, ERROR = error 
    278236   IF (error NE 0) then begin 
    279237      ras = report(['eee : can not open for reading '$ 
    280             + '!C' $ 
    281             + cor_seab]) 
     238                    + '!C' $ 
     239                    + corrsea]) 
    282240      STOP 
    283241   ENDIF 
    284    for i=0, numcanal-1 do begin 
    285       readf, lun1, t1,t2,t3,t4,t5,$ 
    286              t6,t7,t8,t9,t10,$ 
    287              t11,t12,t13,t14,t15,$ 
    288              t16,t17,t18,t19,t20,$ 
    289              t21,t22,t23,t24,t25,$ 
    290              t26,t27,t28,t29,t30 
    291       a=[t1,t2,t3,t4,t5,$ 
    292          t6,t7,t8,t9,t10,$ 
    293          t11,t12,t13,t14,t15,$ 
    294          t16,t17,t18,t19,t20,$ 
    295          t21,t22,t23,t24,t25,$ 
    296          t26,t27,t28,t29,t30] 
    297    endfor 
    298                        ;interpolation 
    299    cor_s[ndfovb:nfovb]=interpol(a[ndfova:nfova-1],fova,fovb,/spline) 
    300    cor_s[0:ndfovb-1]=interpol(a[0:ndfova-1],fov_a,fov_b,/spline) 
     242   readf, lun1, t1,t2,t3,t4,t5,$ 
     243          t6,t7,t8,t9,t10,$ 
     244          t11,t12,t13,t14,t15,$ 
     245          t16,t17,t18,t19,t20,$ 
     246          t21,t22,t23,t24,t25,$ 
     247          t26,t27,t28,t29,t30 
     248    
     249   a=[t1,t2,t3,t4,t5,$ 
     250      t6,t7,t8,t9,t10,$ 
     251      t11,t12,t13,t14,t15,$ 
     252      t16,t17,t18,t19,t20,$ 
     253      t21,t22,t23,t24,t25,$ 
     254      t26,t27,t28,t29,t30] 
    301255   free_lun, lun1 
    302 endif 
     256    
     257   if nomcanal='a' then begin 
     258      cor_s[*,nosat]=interpol(a,nfova,/lsquadratic)  
     259   endif else begin 
     260      cor_s[ndfovb:nfovb-1,nosat]=interpol(a[ndfova:nfova-1],fova,fovb,/spline) 
     261      cor_s[0:ndfovb-1,nosat]=interpol(a[0:ndfova-1],fov_a,fov_b,/spline) 
     262   endelse 
     263   free_lun, lun1 
     264endfor 
    303265 
    304266end 
Note: See TracChangeset for help on using the changeset viewer.