- Timestamp:
- 06/20/12 15:30:15 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/interpol_correc.pro
r562 r580 60 60 ; ==== 61 61 ; 62 ; 62 63 ; on peut changer le codage en dur des fauchees ou demi-fauchees, mais 63 64 ; programme adapte a AMSUA et AMSUB, pas MHS (90 points, mais fauchee … … 76 77 ; EVOLUTIONS 77 78 ; ========== 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 78 85 ; 79 86 ; - lelod 20120525 … … 129 136 reads, strmid(numch,1,1),numcanal,format='(i1.1)' 130 137 131 if nomcanal eq 'a' then nbpixel=30132 if nomcanal eq 'b' then nbpixel=90133 138 pixelsize,pixatot,pixbtot,alongatot,alongbtot 134 139 if nomcanal eq 'a' then begin … … 140 145 endelse 141 146 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 143 149 nfova=30 144 150 nfovb=90 145 ndfova=nfova/2 146 ndfovb=nfovb/2 147 print,'nb points',numch,ndfova,ndfovb 148 fovb=fltarr(ndfovb) 151 ndfova=nfova/2 ; 15 152 ndfovb=nfovb/2 ; 45 153 ; cas AMSUA 149 154 fova=fltarr(ndfova) 150 alongb=fltarr(ndfovb)151 alongab=alongbtot[ndfovb:nfovb-1] ; verifier l'intervalle!!!!!152 pixb=pixbtot[ndfovb:nfovb-1]153 155 alonga=alongatot[ndfova:nfova-1] 154 156 pixa=pixatot[ndfova:nfova-1] 155 157 ;ifov nadir : diametre (km) 156 ifova=48.05 & ifovb=16158 ifova=48.05 157 159 ; position dans la fauchee: premier point au nadir a ifov/2 158 ; 160 ; zone pixel : ellipse de grand axe pixb et petit axe alongb 161 coefa=1 ; recouvrement des pixels dans la fauchee 162 fova(0)=ifova/2. 163 for i=1,ndfova-1 do fova(i)=fova(i-1)+coefa*(pixa(i-1)/2 +pixa(i)/2) ; verifier!!! 164 fov_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) 167 for i=0,ndfova-1 do fov_a(i)=-fova(ndfova-1-i) 168 169 fovb=fltarr(ndfovb) 170 alongb=fltarr(ndfovb) 171 alongb=alongbtot[ndfovb:nfovb-1] ; verifier l'intervalle!!!!! 172 pixb=pixbtot[ndfovb:nfovb-1] 173 ;ifov nadir : diametre (km) 174 ifovb=16. 159 175 coefb=0.8 160 176 fovb(0)=ifovb/2. … … 164 180 ;for i=0,43 do fov_b(43-i)=fov_b(44-i)+coefb*(pixb(43-i)/2 +pixb(44-i)/2) 165 181 for i=0,ndfovb-1 do fov_b(i)=-fovb(ndfovb-1-i) 166 ; zone pixel : ellipse de grand axe pixb et petit axe alongb167 ;168 coefa=1169 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)175 182 176 183 177 184 path = project_env + '/src/dataref_amsu/' 178 185 ; 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 181 187 if 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 190 endif else begin 191 instr='B' 192 nfov=nfovb 193 endelse 194 cor_l=fltarr(nfov,5) 195 cor_s=fltarr(nfov,5) 196 cor_sea15=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 197 cor_land15=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA15.DAT' 198 cor_sea16=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 199 cor_land16=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA16.DAT' 200 cor_sea18=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 201 cor_land18=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA18.DAT' 202 cor_sea19=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 203 cor_land19=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_NOAA19.DAT' 204 cor_seaM2=path+'AMSU/CORR_SEA_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 205 cor_landM2=path+'AMSU/CORR_LAND_AMSU'+instr+strmid(numch,1,1)+'_DataFromJune2010_Afrique_METOP.DAT' 206 listcorr_l=[cor_land15,cor_land16,cor_land18,cor_land19,cor_landM2] 207 for nosat=0,4 do begin 208 corrland=listcorr_l[nosat] 209 openr, lun1,corrland, /get_lun, ERROR = error 251 210 IF (error NE 0) then begin 252 211 ras = report(['eee : can not open for reading '$ 253 + '!C' $ 254 + cor_landb]) 212 + '!C' $ 213 + 'code : ' + !ERROR_STATE.MSG $ 214 + corrland]) 255 215 STOP 256 216 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 276 229 free_lun, lun1 277 openr, lun1,cor_seab, /get_lun, ERROR = error 230 endfor 231 232 listcorr_s=[cor_sea15,cor_sea16,cor_sea18,cor_sea19,cor_seaM2] 233 for nosat=0,4 do begin 234 corrsea=listcorr_s[nosat] 235 openr, lun1,corrsea, /get_lun, ERROR = error 278 236 IF (error NE 0) then begin 279 237 ras = report(['eee : can not open for reading '$ 280 + '!C' $281 + cor_seab])238 + '!C' $ 239 + corrsea]) 282 240 STOP 283 241 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] 301 255 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 264 endfor 303 265 304 266 end
Note: See TracChangeset
for help on using the changeset viewer.