[85] | 1 | pro hodo |
---|
| 2 | |
---|
| 3 | ;;Procedure pour tracer des hodographes des vents ou des vents effectifs |
---|
| 4 | ;;On trace en un point donne les vecteurs vents au cours du temps |
---|
| 5 | |
---|
| 6 | |
---|
| 7 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 8 | |
---|
| 9 | ;;Choix du fichier |
---|
| 10 | ;file='/d6/vblmd/MERIDIANI_EXOMARS/saves_simu_LS_68.5/jour20/wrfout_d01_2024-03-20_06:00:00' |
---|
| 11 | ;file='/d6/vblmd/MERIDIANI_EXOMARS/saves_simu_LS_244_tau2/wrfout_d01_2024-09-08_00:00:00' |
---|
| 12 | ;file='/d6/vblmd/MERIDIANI_EXOMARS/saves_simu_LS_244_tau05/wrfout_d01_2024-09-08_00:00:00' |
---|
| 13 | file='/d6/vblmd/MERIDIANI_EXOMARS/saves_simu_LS_244_tau5/wrfout_d01_2024-09-08_00:00:00' |
---|
| 14 | ;file='/d6/vblmd/MERIDIANI_EXOMARS/saves_simu_LS_244_tau1/wrfout_d01_2024-09-08_00:00:00' |
---|
| 15 | |
---|
| 16 | ;;Choix de la methode |
---|
| 17 | effective='true' |
---|
| 18 | ;effective='false' |
---|
| 19 | |
---|
| 20 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 21 | |
---|
| 22 | ;;Reglages |
---|
| 23 | |
---|
| 24 | ;;Nom du fichier |
---|
| 25 | nomfich='Hodo_landingsite_tau5' |
---|
| 26 | |
---|
| 27 | ;;Choix des heures (0 = 1ere heure du ncdf) |
---|
| 28 | start_hour=0. |
---|
| 29 | end_hour=23. |
---|
| 30 | |
---|
| 31 | |
---|
| 32 | ;;Choix de l'eta-level (premier a 1) |
---|
| 33 | level=2 |
---|
| 34 | |
---|
| 35 | ;;Choix de la position (en indices) |
---|
| 36 | pos=[72.,72.] |
---|
| 37 | |
---|
| 38 | ;;Choix de l'affichage des heures |
---|
| 39 | debut=0 ;;heure reelle (a adapter a start_hour) |
---|
| 40 | pas=2 ;;commenter si on ne veut rien |
---|
| 41 | |
---|
| 42 | ;;Sous titre (commentable) |
---|
| 43 | subtitre='Tau = 5' |
---|
| 44 | |
---|
| 45 | ;;Echelle (commenter pour echelle automatique) |
---|
| 46 | hrange=[-20.,15.] |
---|
| 47 | xdiv=7 |
---|
| 48 | vrange=[-30.,5.] |
---|
| 49 | ydiv=7 |
---|
| 50 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 51 | |
---|
| 52 | getcdf, file=file, charvar='XLAT', invar=lat |
---|
| 53 | getcdf, file=file, charvar='XLONG', invar=lon |
---|
| 54 | lon=reform(lon(*,0,0)) ;;pour un [i,j] donne l'abscisse de lon donne la longitude |
---|
| 55 | lat=reform(lat(0,*,0)) |
---|
| 56 | |
---|
| 57 | if (effective eq 'false') then begin |
---|
| 58 | |
---|
| 59 | getcdf, file=file, charvar='U', invar=u |
---|
| 60 | getcdf, file=file, charvar='V', invar=v |
---|
| 61 | |
---|
| 62 | u=reform(u(*,*,level-1,start_hour:end_hour)) |
---|
| 63 | v=reform(v(*,*,level-1,start_hour:end_hour)) |
---|
| 64 | |
---|
| 65 | var='' |
---|
| 66 | lev='_lev'+STRTRIM(level,2) |
---|
| 67 | |
---|
| 68 | |
---|
| 69 | endif else begin |
---|
| 70 | |
---|
| 71 | ;;Vent effectif obtenu par integration sur l'altitude |
---|
| 72 | effwind, $ |
---|
| 73 | 'U', $ |
---|
| 74 | file, $ |
---|
| 75 | u, $ |
---|
| 76 | start_time=start_hour, $ |
---|
| 77 | end_time=end_hour |
---|
| 78 | |
---|
| 79 | effwind, $ |
---|
| 80 | 'V', $ |
---|
| 81 | file, $ |
---|
| 82 | v, $ |
---|
| 83 | start_time=start_hour, $ |
---|
| 84 | end_time=end_hour |
---|
| 85 | |
---|
| 86 | var='Effective' |
---|
| 87 | lev='' |
---|
| 88 | |
---|
| 89 | endelse |
---|
| 90 | |
---|
| 91 | u=reform(u(pos[0],pos[1],*)) |
---|
| 92 | v=reform(v(pos[0],pos[1],*)) |
---|
| 93 | |
---|
| 94 | |
---|
| 95 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 96 | |
---|
| 97 | PS_Start,filename=nomfich+var+'_pos'+STRTRIM(pos[0],2)+'-'+STRTRIM(pos[1],2)+lev+'.ps',xsize=8,ysize=8 |
---|
| 98 | !P.Charsize = 1.2 |
---|
| 99 | |
---|
| 100 | ;;Reglages graphiques |
---|
| 101 | |
---|
| 102 | if (n_elements(hrange) eq 0.) then begin |
---|
| 103 | if ( abs( max(u)-min(u)) ge abs( max(v)-min(v))) then range=abs( max(u)-min(u)) else range=abs( max(v)-min(v)) |
---|
| 104 | hrange=[min(u)-1,min(u)-1+ range +2] |
---|
| 105 | vrange=[min(v)-1,min(v)-1 + range +2] |
---|
| 106 | endif |
---|
| 107 | |
---|
| 108 | valon=lon(pos[0]) |
---|
| 109 | valat=lat(pos[1]) |
---|
| 110 | |
---|
| 111 | ;;Trace |
---|
| 112 | plot, $ |
---|
| 113 | u, $ |
---|
| 114 | v, $ |
---|
| 115 | xtitle=var+' U Wind Velocity (m/s)', $ |
---|
| 116 | ytitle=var+' V Wind Velocity (m/s)', $ |
---|
| 117 | title='Hodograph : lon '+string(valon, FORMAT='(F7.2)')+' | lat '+string(valat, FORMAT='(F7.2)'), $ |
---|
| 118 | subtitle=subtitre, $ |
---|
| 119 | PSYM=-4, $ |
---|
| 120 | Xrange=hrange, $ |
---|
| 121 | Xticks=xdiv, $ |
---|
| 122 | Yrange=vrange, $ |
---|
| 123 | Yticks=ydiv, $ |
---|
| 124 | XTicklen=1.0, $ |
---|
| 125 | YTicklen=1.0, $ |
---|
| 126 | XGridStyle=1, $ |
---|
| 127 | YGridStyle=1 |
---|
| 128 | |
---|
| 129 | ;;affichage de l'origine |
---|
| 130 | oplot,[0],[0],PSYM=5,symsize=1.5 |
---|
| 131 | |
---|
| 132 | ;;Reperage des heures |
---|
| 133 | if n_elements(pas) ne 0 then begin |
---|
| 134 | |
---|
| 135 | for t=0,end_hour-start_hour,pas do begin |
---|
| 136 | |
---|
| 137 | XYOUTS, u(t),v(t),debut+t,CHARSIZE=0.9 |
---|
| 138 | |
---|
| 139 | endfor |
---|
| 140 | |
---|
| 141 | endif |
---|
| 142 | |
---|
| 143 | ;;Conversion en .png |
---|
| 144 | PS_End, /PNG |
---|
| 145 | |
---|
| 146 | end |
---|