- Timestamp:
- 08/08/11 17:08:15 (13 years ago)
- Location:
- trunk/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/cronin_gustiness_ncdf.pro
r50 r72 7 7 ; ========================= 8 8 ; 9 ; Cronin gustiness correction on corrected sst on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc` have been produced by 12 ; :ref:`sst_correction_ncdf.pro`. 13 ; 14 ; Cronin gustiness corrected ++ on corrected sst on OAFLUX grid 15 ; is written in 16 ; :file:`${PROJECT_OD}/TropFlux_gustiness_19890101_20091231.nc` 17 ; if this file not already exists. 18 ; 19 ; This file will be used by :ref:`TropFlux_swr_BLND_19890101_20091231.pro` and 20 ; :ref:`TropFlux_19890101_20091231.pro`. 21 ; 9 22 ; .. graphviz:: 10 23 ; … … 13 26 ; rankdir="LR", 14 27 ; ] 15 ; file_sst [shape=ellipse,fontname=Courier,label="/Volumes/Iomega_HDD/TropFlux/input_cor/full_cor/TropFlux_sst_19890101_20091231.nc"]; 16 ; ncfile [shape=ellipse,fontname=Courier,label="/Users/pkb/data/TropFlux/TropFlux_gustiness_19890101_20091231_v50.nc"]; 28 ; 29 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc"]; 30 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_gustiness_19890101_20091231.nc"]; 31 ; 17 32 ; cronin_gustiness_ncdf [shape=box, 18 33 ; fontname=Courier, … … 20 35 ; URL="http://forge.ipsl.jussieu.fr/tropflux/browser/trunk/src/cronin_gustiness_ncdf.pro", 21 36 ; label="${PROJECT}/src/cronin_gustiness_ncdf.pro"]; 22 ; {file_sst} -> {cronin_gustiness_ncdf} -> {ncfile} 37 ; 38 ; {file_in} -> {cronin_gustiness_ncdf} -> {file_out} 23 39 ; } 24 40 ; … … 33 49 ; ======== 34 50 ; 51 ; :ref:`project_profile.sh` 52 ; 53 ; :ref:`mooring_corrections` 54 ; 55 ; :ref:`sst_correction_ncdf.pro`. 56 ; 35 57 ; :func:`initncdf <saxo:initncdf>` 36 58 ; :func:`julday <saxo:julday>` … … 40 62 ; ==== 41 63 ; 42 ; hard coded directory - usage of ${PROJECT_ID}64 ; coding rules 43 65 ; 44 ; coding rules 66 ; why writing more than 1 timestep ? 67 ; 68 ; KNOWN ISSUES 69 ; ============ 70 ; 71 ; test of existence of fullfilename_in not very efficient because 72 ; MUST_EXIST keyword of :func:`isafile <saxo:isafile>` not yet implemented 45 73 ; 46 74 ; EVOLUTIONS 47 75 ; ========== 76 ; 77 ; - fplod 20110808T144208Z aedon.locean-ipsl.upmc.fr (Darwin) 78 ; 79 ; * usage of ${PROJECT_OD} 80 ; * complete description 81 ; * remove v50 in output filename 82 ; * remove return statement 48 83 ; 49 84 ; - fplod 20101215T092619Z aedon.locean-ipsl.upmc.fr (Darwin) … … 61 96 ;- 62 97 pro cronin_gustiness_ncdf 63 @common 98 ; 99 @cm_4cal 100 @cm_4data 101 @cm_4mesh 102 @cm_4data 103 @cm_project 104 ; 105 ; test if ${PROJECT_OD} defined 106 CASE project_od_env OF 107 '' : BEGIN 108 msg = 'eee : ${PROJECT_OD} is not defined' 109 ras = report(msg) 110 STOP 111 END 112 ELSE: BEGIN 113 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 114 ras = report(msg) 115 END 116 ENDCASE 117 ; 118 ; check if output data will be possible 119 iodirout = isadirectory(project_od_env) 120 ; 121 ; existence and protection for reading 122 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 123 msg = 'eee : the directory' + iodirout + ' is not accessible.' 124 ras = report(msg) 125 STOP 126 ENDIF 127 ; 128 ; existence and protection for writing 129 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 130 msg = 'eee : the directory' + iodirout + ' was not found.' 131 ras = report(msg) 132 STOP 133 ENDIF 134 ; 64 135 da1=19880101 & da2=20101231 65 136 date1=19890101 & date2=20081231 66 67 file_sst='/Volumes/Iomega_HDD/TropFlux/input_cor/full_cor/TropFlux_sst_19890101_20091231.nc' 68 initncdf, file_sst 69 sst=read_ncdf('sst',da1,da2,file=file_sst,/nostr) & sst=reform(sst-273.15) 137 ; 138 ; build data filename 139 filename='TropFlux_sst_19890101_20091231.nc' 140 ; 141 ; check if this file exists 142 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 143 IF fullfilename[0] EQ '' THEN BEGIN 144 msg = 'eee : the file ' + fullfilename + ' was not found.' 145 ras = report(msg) 146 STOP 147 ENDIF 148 ; 149 ; build output filename 150 filename_out = 'TropFlux_gustiness_19890101_20091231.nc' 151 fullfilename_out = iodirout + filename_out 152 ; in order to avoid unexpected overwritten 153 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 154 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 155 ras = report(msg) 156 STOP 157 ENDIF 158 ; 159 initncdf, fullfilename 160 sst=read_ncdf('sst',da1,da2,file=fullfilename,/nostr) & sst=reform(sst-273.15) 70 161 help, sst 71 162 … … 90 181 xlon=reform(glamt(*,0) ) & ylat=reform(gphit(0,*)) 91 182 92 ncfile='! /Users/pkb/data/TropFlux/TropFlux_gustiness_19890101_20091231_v50.nc'183 ncfile='!' + fullfilename_out 93 184 lon_attr={units:'degrees_east',long_name:'Longitude'} 94 185 lat_attr={units:'degrees_north',long_name:'Latitude'} … … 105 196 @ncdf_quickwrite 106 197 107 return108 198 end -
trunk/src/d2m_to_q2m_erai.pro
r50 r72 6 6 ; d2m_to_q2m_erai.pro 7 7 ; =================== 8 ; 9 ; Converstion of d2m to q2m on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/erai_d2m_19890101_20091231_oafluxgrid.nc` have been 12 ; produced by :ref:`interp_erai_dewt_1989_2009.pro`. 13 ; 14 ; :file:`${PROJECT_OD}/erai_t2m_19890101_20091231_oafluxgrid.nc` have been 15 ; produced by :ref:`interp_erai_t2m_1989_2009.pro`. 16 ; 17 ; :file:`${PROJECT_OD}/erai_msl_19890101_20091231_oafluxgrid.nc` have been 18 ; produced by ++. 19 ; 20 ; q2m on OAFLUX grid is written in 21 ; :file:`${PROJECT_OD}/q2m_erai_19890101_20091231_oafluxgrid.nc` 22 ; if this file not already exists. 23 ; 24 ; This file will be used by :ref:`q2m_correction_ncdf.pro`. 8 25 ; 9 26 ; .. graphviz:: … … 13 30 ; rankdir="LR", 14 31 ; ] 15 ; file_d2m [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_d2m_19890101_20091231_oafluxgrid.nc"];16 ; file_ t2m [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_t2m_19890101_20091231_oafluxgrid.nc"];17 ; file_ msl [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_msl_19890101_20091231_oafluxgrid.nc"];18 19 ; file_q2m [shape=ellipse,fontname=Courier,label=" /Volumes/PRAVEEN/TropFlux/input_uncor/q2m_erai_19890101_20091231_oafluxgrid.nc"];32 ; 33 ; file_d2m [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_d2m_19890101_20091231_oafluxgrid.nc"]; 34 ; file_t2m [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_t2m_19890101_20091231_oafluxgrid.nc"]; 35 ; file_msl [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_msl_19890101_20091231_oafluxgrid.nc"]; 36 ; file_q2m [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/q2m_erai_19890101_20091231_oafluxgrid.nc"]; 20 37 ; 21 38 ; d2m_to_q2m_erai [shape=box, … … 24 41 ; URL="http://forge.ipsl.jussieu.fr/tropflux/browser/trunk/src/d2m_to_q2m_erai.pro", 25 42 ; label="${PROJECT}/src/d2m_to_q2m_erai.pro"]; 43 ; 26 44 ; {file_d2m file_t2m file_msl} -> {d2m_to_q2m_erai} -> {file_q2m} 27 45 ; } … … 29 47 ; SEE ALSO 30 48 ; ======== 49 ; 50 ; :ref:`project_profile.sh` 51 ; 52 ; :ref:`mooring_corrections` 53 ; 54 ; :ref:`interp_erai_dewt_1989_2009.pro` 55 ; :ref:`interp_erai_t2m_1989_2009.pro` 56 ; 57 ; :ref:`d2m_to_q2m_erai.pro` 31 58 ; 32 59 ; :func:`rh_to_spechum` … … 46 73 ; ==== 47 74 ; 48 ; hard coded directory - usage of ${PROJECT_ID} 75 ; I (fp) do not know how 76 ; ${PROJECT_OD}/erai_msl_19890101_20091231_oafluxgrid.nc is produced. 77 ; 78 ; es0 undefined 49 79 ; 50 80 ; coding rules … … 53 83 ; ========== 54 84 ; 85 ; - fplod 20110808T120234Z cratos (Linux) 86 ; 87 ; * usage of ${PROJECT_OD} 88 ; * complete description 89 ; * remove return statement 90 ; 55 91 ; - fplod 20101215T162933Z aedon.locean-ipsl.upmc.fr (Darwin) 56 92 ; … … 71 107 ;- 72 108 pro d2m_to_q2m_erai 73 @common 74 ;; reading erai dew point temperature 109 ; 110 @cm_4cal 111 @cm_4data 112 @cm_4mesh 113 @cm_4data 114 @cm_project 115 ; 116 ; test if ${PROJECT_OD} defined 117 CASE project_od_env OF 118 '' : BEGIN 119 msg = 'eee : ${PROJECT_OD} is not defined' 120 ras = report(msg) 121 STOP 122 END 123 ELSE: BEGIN 124 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 125 ras = report(msg) 126 END 127 ENDCASE 128 ; 129 ; check if output data will be possible 130 iodirout = isadirectory(project_od_env) 131 ; 132 ; existence and protection for reading 133 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 134 msg = 'eee : the directory' + iodirout + ' is not accessible.' 135 ras = report(msg) 136 STOP 137 ENDIF 138 ; 139 ; existence and protection for writing 140 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 141 msg = 'eee : the directory' + iodirout + ' was not found.' 142 ras = report(msg) 143 STOP 144 ENDIF 145 ; 75 146 d1=19881001 & d2=20101231 76 77 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_d2m_19890101_20091231_oafluxgrid.nc' 78 initncdf, file 79 td=read_ncdf("d2m", d1,d2, file=file,/nostr) 80 81 ;; reading erai air temperature 82 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_t2m_19890101_20091231_oafluxgrid.nc' 83 initncdf, file 84 t=read_ncdf("t2m", d1,d2, file=file,/nostr) 147 ; 148 ; build d2m filename 149 filename_d2m='erai_d2m_19890101_20091231_oafluxgrid.nc' 150 ; 151 ; check if this file exists 152 fullfilename_d2m = isafile(iodirout + filename_d2m, NEW=0, /MUST_EXIST) 153 IF fullfilename_d2m[0] EQ '' THEN BEGIN 154 msg = 'eee : the file ' + fullfilename_d2m + ' was not found.' 155 ras = report(msg) 156 STOP 157 ENDIF 158 ; 159 ; build t2m filename 160 filename_t2m='erai_t2m_19890101_20091231_oafluxgrid.nc' 161 ; 162 ; check if this file exists 163 fullfilename_t2m = isafile(iodirout + filename_t2m, NEW=0, /MUST_EXIST) 164 IF fullfilename_t2m[0] EQ '' THEN BEGIN 165 msg = 'eee : the file ' + fullfilename_t2m + ' was not found.' 166 ras = report(msg) 167 STOP 168 ENDIF 169 ; 170 ; build msl filename 171 filename_msl='erai_msl_19890101_20091231_oafluxgrid.nc' 172 ; 173 ; check if this file exists 174 fullfilename_msl = isafile(iodirout + filename_msl, NEW=0, /MUST_EXIST) 175 IF fullfilename_msl[0] EQ '' THEN BEGIN 176 msg = 'eee : the file ' + fullfilename_msl + ' was not found.' 177 ras = report(msg) 178 STOP 179 ENDIF 180 ; 181 ; build output filename 182 filename_out = 'q2m_erai_19890101_20091231_oafluxgrid.nc' 183 fullfilename_out = iodirout + filename_out 184 ; in order to avoid unexpected overwritten 185 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 186 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 187 ras = report(msg) 188 STOP 189 ENDIF 190 ; 191 ; reading erai dew point temperature 192 initncdf, fullfilename_d2m 193 td=read_ncdf("d2m", d1,d2, file=fullfilename_d2m,/nostr) 194 195 ; reading erai air temperature 196 initncdf, fullfilename_t2m 197 t=read_ncdf("t2m", d1,d2, file=fullfilename_t2m,/nostr) 85 198 tt=time &jpt=n_elements(time) 86 199 help, t, td … … 99 212 t=t-273.15 100 213 101 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_msl_19890101_20091231_oafluxgrid.nc' 102 initncdf, file 103 P=read_ncdf("msl", d1, d2, file=file,/nostr) 214 initncdf, fullfilename_msl 215 P=read_ncdf("msl", d1, d2, file=fullfilename_msl,/nostr) 104 216 help, P 105 217 q2m=rh_to_spechum(rh,t,P) 106 218 107 ; ;writing field108 ncfile='! /Volumes/PRAVEEN/TropFlux/input_uncor/q2m_erai_19890101_20091231_oafluxgrid.nc'219 ;writing field 220 ncfile='!' + fullfilename_out 109 221 time=timegen(7670, units='days', start=julday(1,1,1989)) & jpt=n_elements(time) 110 222 cda0=string(jul2date(time(0)),format='(i8.8)') … … 129 241 130 242 @ncdf_quickwrite 131 return132 243 end -
trunk/src/interp_erai_sst_1989_2009.pro
r71 r72 70 70 ; TODO 71 71 ; ==== 72 ; 73 ; on cratos strange red data looking with ncview 72 74 ; 73 75 ; make it work : pb on loholt1:: -
trunk/src/lwr_correction_ncdf.pro
r50 r72 6 6 ; lwr_correction_ncdf.pro 7 7 ; ======================= 8 ; 9 ; Correction of lwr on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/erai_lwr_19890101_20091231_oafluxgrid.nc` have been 12 ; produced by :ref:`interp_erai_lwr_1989_2009.pro`. 13 ; 14 ; Corrected lwr on OAFLUX grid is written in 15 ; :file:`${PROJECT_OD}/TropFlux_lwr_19890101_20091231.nc` 16 ; if this file not already exists. 17 ; 18 ; This file will be used by :ref:`TropFlux_19890101_20091231.pro`. 8 19 ; 9 20 ; .. graphviz:: … … 14 25 ; ] 15 26 ; 16 ; file_in [shape=ellipse,fontname=Courier,label=" /Volumes/PRAVEEN/TropFlux/input_uncor/erai_lwr_19890102_20091231_oafluxgrid.nc"];17 ; 18 ; ncfile [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_lwr_19890101_20091231_v1.nc"];27 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_19890101_20091231_oafluxgrid.nc"]; 28 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_lwr_19890101_20091231.nc"]; 29 ; 19 30 ; lwr_correction_ncdf [shape=box, 20 31 ; fontname=Courier, … … 23 34 ; label="${PROJECT}/src/lwr_correction_ncdf.pro"]; 24 35 ; 25 ; {file_in} -> {lwr_correction_ncdf} -> { ncfile}36 ; {file_in} -> {lwr_correction_ncdf} -> {file_out} 26 37 ; 27 38 ; } … … 29 40 ; SEE ALSO 30 41 ; ======== 42 ; 43 ; :ref:`project_profile.sh` 44 ; 45 ; :ref:`mooring_corrections` 46 ; 47 ; :ref:`interp_erai_lwr_1989_2009.pro` 31 48 ; 32 49 ; :func:`initncdf <saxo:initncdf>` … … 44 61 ; IDL> lwr_correction_ncdf 45 62 ; 46 ;47 63 ; TODO 48 64 ; ==== 49 65 ; 50 ; hard coded directory - usage of ${PROJECT_ID}51 ;52 66 ; coding rules 67 ; 68 ; lwr long name 'Air Temperature at 2m" : ??? 69 ; 70 ; 19890101 is not provided in ERA-Intermim file str : a possible workaround is 71 ; to copy 19890102 72 ; dataset to 19890101 using nco before processing. see 73 ; ref:`compute_erai_daily_region_2d.sh` 74 ; 75 ; here I (fp) replace hard coded date 19890102 by 19890101. must check 76 ; consistency with this module and interp_erai_lwr_1989_2009.pro. 77 ; 78 ; KNOWN ISSUES 79 ; ============ 80 ; 81 ; test of existence of fullfilename_in not very efficient because 82 ; MUST_EXIST keyword of :func:`isafile <saxo:isafile>` not yet implemented 53 83 ; 54 84 ; EVOLUTIONS 55 85 ; ========== 56 86 ; 87 ; - fplod 20110808T120234Z cratos (Linux) 88 ; 89 ; * usage of ${PROJECT_OD} 90 ; * complete description 91 ; * replace erai_lwr_19890102_20091231_oafluxgrid.nc by erai_lwr_19890101_20091231 92 ; * remove v1 in output filename 93 ; 57 94 ; - fplod 20101215T113707Z aedon.locean-ipsl.upmc.fr (Darwin) 58 95 ; … … 69 106 ;- 70 107 pro lwr_correction_ncdf 71 @common 108 ; 109 @cm_4cal 110 @cm_4data 111 @cm_4mesh 112 @cm_4data 113 @cm_project 114 ; 115 ; test if ${PROJECT_OD} defined 116 CASE project_od_env OF 117 '' : BEGIN 118 msg = 'eee : ${PROJECT_OD} is not defined' 119 ras = report(msg) 120 STOP 121 END 122 ELSE: BEGIN 123 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 124 ras = report(msg) 125 END 126 ENDCASE 127 ; 128 ; check if output data will be possible 129 iodirout = isadirectory(project_od_env) 130 ; 131 ; existence and protection for reading 132 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 133 msg = 'eee : the directory' + iodirout + ' is not accessible.' 134 ras = report(msg) 135 STOP 136 ENDIF 137 ; 138 ; existence and protection for writing 139 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 140 msg = 'eee : the directory' + iodirout + ' was not found.' 141 ras = report(msg) 142 STOP 143 ENDIF 144 ; 72 145 da1=19880101 & da2=20091231 73 74 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_lwr_19890102_20091231_oafluxgrid.nc' 75 initncdf, file 76 lwr=read_ncdf('lwr',da1,da2,file=file,/nostr) 146 ; 147 ; build data filename 148 filename='erai_lwr_19890101_20091231_oafluxgrid.nc' 149 ; 150 ; check if this file exists 151 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 152 IF fullfilename[0] EQ '' THEN BEGIN 153 msg = 'eee : the file ' + fullfilename + ' was not found.' 154 ras = report(msg) 155 STOP 156 ENDIF 157 ; 158 ; build output filename 159 filename_out = 'TropFlux_lwr_19890101_20091231.nc' 160 fullfilename_out = iodirout + filename_out 161 ; in order to avoid unexpected overwritten 162 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 163 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 164 ras = report(msg) 165 STOP 166 ENDIF 167 ; 168 initncdf, fullfilename 169 lwr=read_ncdf('lwr',da1,da2,file=fullfilename,/nostr) 77 170 help, lwr 78 171 ; 79 172 lwr_mean=grossemoyenne(lwr,'t',/nan) 80 173 help,lwr_mean … … 116 209 time=time-julday(1,1,1950) & jpt=n_elements(time) 117 210 118 ncfile='! /Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_lwr_19890101_20091231_v1.nc'211 ncfile='!' + fullfilename_out 119 212 lon_attr={units:'degrees_east',long_name:'Longitude'} 120 213 lat_attr={units:'degrees_north',long_name:'Latitude'} … … 123 216 globattr={source:'Basic data obtained from ERAI. Mean correction for bias and correction for variability are applied',timerange:cda0+' - '+cda1} 124 217 125 126 218 ncfields = 'lwr[longitude,latitude,time]=lwr_new:lwr_attr; ' $ 127 219 + 'longitude[]=lon:lon_attr; ' $ -
trunk/src/q2m_correction_ncdf.pro
r50 r72 6 6 ; q2m_correction_ncdf.pro 7 7 ; ======================= 8 ; 9 ; Correction of q2m on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/erai_q2m_19890101_20091231_oafluxgrid.nc` have been 12 ; produced by :ref:`d2m_to_q2m.pro`. 13 ; 14 ; Corrected q2m on OAFLUX grid is written in 15 ; :file:`${PROJECT_OD}/TropFlux_q2m_19890101_20091231.nc` 16 ; if this file not already exists. 17 ; 18 ; This file will be used by :ref:`TropFlux_19890101_20091231.pro`. 8 19 ; 9 20 ; .. graphviz:: … … 14 25 ; ] 15 26 ; 16 ; file_in [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_q2m_19890101_20091231_oafluxgrid.nc"]; 17 ; 18 ; ncfile [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_q2m_19890101_20091231_v20.nc"]; 27 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_q2m_19890101_20091231_oafluxgrid.nc"]; 28 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_q2m_19890101_20091231.nc"]; 19 29 ; 20 30 ; q2m_correction_ncdf [shape=box, … … 24 34 ; label="${PROJECT}/src/q2m_correction_ncdf.pro"]; 25 35 ; 26 ; {file_in} -> {q2m_correction_ncdf} -> { ncfile}36 ; {file_in} -> {q2m_correction_ncdf} -> {file_out} 27 37 ; 28 38 ; } … … 30 40 ; SEE ALSO 31 41 ; ======== 42 ; 43 ; :ref:`project_profile.sh` 44 ; 45 ; :ref:`mooring_corrections` 46 ; 47 ; :ref:`d2m_to_q2m.pro` 32 48 ; 33 49 ; :func:`initncdf <saxo:initncdf>` … … 47 63 ; ==== 48 64 ; 49 ; hard coded directory - usage of ${PROJECT_ID}65 ; can be tested because d2m_to_q2m.pro pb 50 66 ; 51 67 ; coding rules … … 54 70 ; ========== 55 71 ; 72 ; - fplod 20110808T143129Z aedon.locean-ipsl.upmc.fr (Darwin) 73 ; 74 ; * usage of ${PROJECT_OD} 75 ; * remove v20 in output filename 76 ; 56 77 ; - fplod 20101215T113945Z aedon.locean-ipsl.upmc.fr (Darwin) 57 78 ; … … 68 89 ;- 69 90 pro q2m_correction_ncdf 70 @common 91 ; 92 @cm_4cal 93 @cm_4data 94 @cm_4mesh 95 @cm_4data 96 @cm_project 97 ; 98 ; 99 ; test if ${PROJECT_OD} defined 100 CASE project_od_env OF 101 '' : BEGIN 102 msg = 'eee : ${PROJECT_OD} is not defined' 103 ras = report(msg) 104 STOP 105 END 106 ELSE: BEGIN 107 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 108 ras = report(msg) 109 END 110 ENDCASE 111 ; 112 ; check if output data will be possible 113 iodirout = isadirectory(project_od_env) 114 ; 115 ; existence and protection for reading 116 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 117 msg = 'eee : the directory' + iodirout + ' is not accessible.' 118 ras = report(msg) 119 STOP 120 ENDIF 121 ; 122 ; existence and protection for writing 123 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 124 msg = 'eee : the directory' + iodirout + ' was not found.' 125 ras = report(msg) 126 STOP 127 ENDIF 128 ; 71 129 da1=19880101 & da2=20101231 72 73 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_q2m_19890101_20091231_oafluxgrid.nc' 74 initncdf, file 75 q2m=read_ncdf('q2m',da1,da2,file=file,/nostr) 130 ; 131 ; build data filename 132 filename='erai_q2m_19890101_20091231_oafluxgrid.nc' 133 ; 134 ; check if this file exists 135 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 136 IF fullfilename[0] EQ '' THEN BEGIN 137 msg = 'eee : the file ' + fullfilename + ' was not found.' 138 ras = report(msg) 139 STOP 140 ENDIF 141 ; 142 ; build output filename 143 filename_out = 'TropFlux_q2m_19890101_20091231.nc' 144 fullfilename_out = iodirout + filename_out 145 ; in order to avoid unexpected overwritten 146 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 147 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 148 ras = report(msg) 149 STOP 150 ENDIF 151 ; 152 initncdf, fullfilename 153 q2m=read_ncdf('q2m',da1,da2,file=fullfilename,/nostr) 76 154 help, q2m 77 155 … … 114 192 time=time-julday(1,1,1950) & jpt=n_elements(time) 115 193 116 ncfile='! /Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_q2m_19890101_20091231_v20.nc'194 ncfile='!' + fullfilename_out 117 195 lon_attr={units:'degrees_east',long_name:'Longitude'} 118 196 lat_attr={units:'degrees_north',long_name:'Latitude'} … … 121 199 globattr={source:'Basic data obtained from ERAI. Mean correction for bias and correction for variability are applied',timerange:cda0+' - '+cda1} 122 200 123 124 201 ncfields = 'q2m[longitude,latitude,time]=q2m_new:q2m_attr; ' $ 125 202 + 'longitude[]=lon:lon_attr; ' $ -
trunk/src/sst_correction_ncdf.pro
r50 r72 6 6 ; sst_correction_ncdf.pro 7 7 ; ======================= 8 ; 9 ; Correction of sst on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/erai_sst_19890101_20091231_oafluxgrid.nc` have been 12 ; produced by :ref:`interp_erai_sst_1989_2009.pro`. 13 ; 14 ; Corrected sst on OAFLUX grid is written in 15 ; :file:`${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc` 16 ; if this file not already exists. 17 ; 18 ; This file will be used by :ref:`cronin_gustiness_ncdf.pro` and 19 ; :ref:`TropFlux_19890101_20091231.pro`. 8 20 ; 9 21 ; .. graphviz:: … … 14 26 ; ] 15 27 ; 16 ; file_sst [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_sst_19890101_20091231_oafluxgrid.nc"]; 17 ; 18 ; ncfile [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_sst_19890101_20091231_v20.nc"]; 28 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_sst_19890101_20091231_oafluxgrid.nc"]; 29 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_sst_19890101_20091231.nc"]; 19 30 ; 20 31 ; sst_correction_ncdf [shape=box, … … 24 35 ; label="${PROJECT}/src/sst_correction_ncdf.pro"]; 25 36 ; 26 ; {file_ sst} -> {sst_correction_ncdf} -> {ncfile}37 ; {file_in} -> {sst_correction_ncdf} -> {file_out} 27 38 ; 28 39 ; } … … 31 42 ; SEE ALSO 32 43 ; ======== 44 ; 45 ; :ref:`project_profile.sh` 46 ; 47 ; :ref:`mooring_corrections` 48 ; 49 ; :ref:`interp_erai_sst_1989_2009.pro` 33 50 ; 34 51 ; :func:`initncdf <saxo:initncdf>` … … 48 65 ; ==== 49 66 ; 50 ; hard coded directory - usage of ${PROJECT_ID}51 ;52 67 ; coding rules 68 ; 69 ; temperature SI units = K : why + and - 273... 70 ; 71 ; hard coded coefficient correction. 72 ; 73 ; KNOWN ISSUES 74 ; ============ 75 ; 76 ; test of existence of fullfilename_in not very efficient because 77 ; MUST_EXIST keyword of :func:`isafile <saxo:isafile>` not yet implemented 53 78 ; 54 79 ; EVOLUTIONS 55 80 ; ========== 56 81 ; 82 ; - fplod 20110808T124236Z cratos (Linux) 83 ; 84 ; * usage of ${PROJECT_OD} 85 ; * complete description 86 ; * remove v20 in output filename 87 ; 57 88 ; - fplod 20101215T114224Z aedon.locean-ipsl.upmc.fr (Darwin) 58 89 ; … … 69 100 ;- 70 101 pro sst_correction_ncdf 71 @common 102 ; 103 @cm_4cal 104 @cm_4data 105 @cm_4mesh 106 @cm_4data 107 @cm_project 108 ; 109 ; test if ${PROJECT_OD} defined 110 CASE project_od_env OF 111 '' : BEGIN 112 msg = 'eee : ${PROJECT_OD} is not defined' 113 ras = report(msg) 114 STOP 115 END 116 ELSE: BEGIN 117 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 118 ras = report(msg) 119 END 120 ENDCASE 121 ; 122 ; check if output data will be possible 123 iodirout = isadirectory(project_od_env) 124 ; 125 ; existence and protection for reading 126 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 127 msg = 'eee : the directory' + iodirout + ' is not accessible.' 128 ras = report(msg) 129 STOP 130 ENDIF 131 ; 132 ; existence and protection for writing 133 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 134 msg = 'eee : the directory' + iodirout + ' was not found.' 135 ras = report(msg) 136 STOP 137 ENDIF 138 ; 72 139 da1=19880101 & da2=20091231 73 74 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_sst_19890101_20091231_oafluxgrid.nc' 75 initncdf, file 76 sst=read_ncdf('sst',da1,da2,file=file,/nostr) & sst=sst-273.15 140 ; 141 ; build data filename 142 filename='erai_sst_19890101_20091231_oafluxgrid.nc' 143 ; 144 ; check if this file exists 145 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 146 IF fullfilename[0] EQ '' THEN BEGIN 147 msg = 'eee : the file ' + fullfilename + ' was not found.' 148 ras = report(msg) 149 STOP 150 ENDIF 151 ; 152 ; build output filename 153 filename_out = 'TropFlux_sst_19890101_20091231.nc' 154 fullfilename_out = iodirout + filename_out 155 ; in order to avoid unexpected overwritten 156 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 157 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 158 ras = report(msg) 159 STOP 160 ENDIF 161 ; 162 initncdf, fullfilename 163 sst=read_ncdf('sst',da1,da2,file=fullfilename,/nostr) & sst=sst-273.15 77 164 help, sst 78 165 … … 116 203 time=time-julday(1,1,1950) & jpt=n_elements(time) 117 204 118 ncfile='! /Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_sst_19890101_20091231_v20.nc'205 ncfile='!' + fullfilename_out 119 206 lon_attr={units:'degrees_east',long_name:'Longitude'} 120 207 lat_attr={units:'degrees_north',long_name:'Latitude'} … … 123 210 globattr={source:'Basic data obtained from ERAI. Bias and variability correction are applied',timerange:cda0+' - '+cda1} 124 211 125 126 212 ncfields = 'sst[longitude,latitude,time]=sst_new:sst_attr; ' $ 127 213 + 'longitude[]=lon:lon_attr; ' $ -
trunk/src/t2m_correction_ncdf.pro
r50 r72 14 14 ; 15 15 ; Corrected air temperature at 2 m height is written in 16 ; :file:`${PROJECT_OD}/TropFlux_t2m_19890101_20091231_v50.nc`. 16 ; :file:`${PROJECT_OD}/TropFlux_t2m_19890101_20091231.nc` 17 ; if this file not already exists. 18 ; 19 ; This file will be used by :ref:`TropFlux_19890101_20091231.pro`. 17 20 ; 18 21 ; .. graphviz:: … … 23 26 ; ] 24 27 ; 25 ; file_t2m [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_t2m_19890101_20091231_oafluxgrid.nc"]; 26 ; 27 ; ncfile [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_t2m_19890101_20091231_v50.nc"]; 28 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_t2m_19890101_20091231_oafluxgrid.nc"]; 29 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_t2m_19890101_20091231.nc"]; 28 30 ; 29 31 ; t2m_correction_ncdf [shape=box, … … 33 35 ; label="${PROJECT}/src/t2m_correction_ncdf.pro"]; 34 36 ; 35 ; {file_ t2m} -> {t2m_correction_ncdf} -> {ncfile}37 ; {file_in} -> {t2m_correction_ncdf} -> {file_out} 36 38 ; 37 39 ; } … … 65 67 ; ==== 66 68 ; 67 ; make it work !!68 ;69 69 ; coding rules 70 70 ; … … 75 75 ; hard coded time in module name and in output filename 76 76 ; 77 ; why v50 in filename output78 ;79 77 ; hard coded correction values 80 78 ; … … 82 80 ; 83 81 ; Probleme d'adequation entre les tailles du domaine nx*ny*jpt 350*60*1 et du tableau 350*60*7670 84 ;85 82 ; 86 83 ; hard coded attributes … … 96 93 ; EVOLUTIONS 97 94 ; ========== 95 ; 96 ; - fplod 20110808T130628Z aedon.locean-ipsl.upmc.fr (Darwin) 97 ; 98 ; * remove v50 in filename output 99 ; * replace _ID by _OD (like other correction modules) 98 100 ; 99 101 ; - fplod 20110104T093758Z aedon.locean-ipsl.upmc.fr (Darwin) … … 124 126 pro t2m_correction_ncdf 125 127 ; 126 @common 128 @cm_4cal 129 @cm_4data 130 @cm_4mesh 131 @cm_4data 127 132 @cm_project 128 133 ; 129 ; check for input directory 130 ; 131 ; test if ${PROJECT_ID} defined 134 ; test if ${PROJECT_OD} defined 132 135 CASE project_id_env OF 133 136 '' : BEGIN 134 msg = 'eee : ${PROJECT_ ID} is not defined'137 msg = 'eee : ${PROJECT_OD} is not defined' 135 138 ras = report(msg) 136 139 STOP 137 140 END 138 141 ELSE: BEGIN 139 msg = 'iii : ${PROJECT_ ID} is ' + project_id_env142 msg = 'iii : ${PROJECT_OD} is ' + project_id_env 140 143 ras = report(msg) 141 144 END 142 145 ENDCASE 143 146 ; 144 iodirin = isadirectory(project_id_env) 145 ; 146 ; existence and protection of ${PROJECT_ID} 147 IF (FILE_TEST(iodirin, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 148 msg = 'eee : the directory' + iodirin + ' is not accessible.' 147 ; check if output data will be possible 148 iodirout = isadirectory(project_od_env) 149 ; 150 ; existence and protection for reading 151 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 152 msg = 'eee : the directory' + iodirout + ' is not accessible.' 149 153 ras = report(msg) 150 154 STOP 151 155 ENDIF 152 156 ; 153 ; build uncorrected t2 filename 157 ; existence and protection for writing 158 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 159 msg = 'eee : the directory' + iodirout + ' was not found.' 160 ras = report(msg) 161 STOP 162 ENDIF 163 ; 154 164 da1=19890101 155 165 da2=20091231 166 ; 167 ; build uncorrected t2 filename 156 168 filename_t2_uncor='erai_t2m_'+ string(da1,format='(i8.8)')+'_'+ string(da2,format='(i8.8)')+'_oafluxgrid.nc' 157 169 ; 158 170 ; check if this file exists 159 fullfilename_t2_uncor = isafile(iodir in+ filename_t2_uncor, NEW=0, /MUST_EXIST)171 fullfilename_t2_uncor = isafile(iodirout + filename_t2_uncor, NEW=0, /MUST_EXIST) 160 172 IF fullfilename_t2_uncor[0] EQ '' THEN BEGIN 161 173 msg = 'eee : the file ' + fullfilename_t2_uncor + ' was not found.' … … 163 175 STOP 164 176 ENDIF 165 ; test if ${PROJECT_OD} defined166 CASE project_od_env OF167 '' : BEGIN168 msg = 'eee : ${PROJECT_OD} is not defined'169 ras = report(msg)170 STOP171 END172 ELSE: BEGIN173 msg = 'iii : ${PROJECT_OD} is ' + project_od_env174 ras = report(msg)175 END176 ENDCASE177 ;178 ; check if output data will be possible179 iodirout = isadirectory(project_od_env)180 ;181 ; existence and protection182 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN183 msg = 'eee : the directory' + iodirout + ' was not found.'184 ras = report(msg)185 STOP186 ENDIF187 177 ; 188 178 ; build output filename 189 filename_out='TropFlux_t2m_'+ string(da1,format='(i8.8)')+'_'+ string(da2,format='(i8.8)')+' _v50.nc'179 filename_out='TropFlux_t2m_'+ string(da1,format='(i8.8)')+'_'+ string(da2,format='(i8.8)')+'.nc' 190 180 fullfilename_out = iodirout + filename_out 191 181 ; in order to avoid unexpected overwritten -
trunk/src/ws_correction_ncdf.pro
r50 r72 6 6 ; ws_correction_ncdf.pro 7 7 ; ====================== 8 ; 9 ; Correction of ws on OAFLUX grid 10 ; 11 ; :file:`${PROJECT_OD}/erai_ws_19890101_20091231_oafluxgrid.nc` have been 12 ; produced by :ref:`interp_erai_ws_1989_2009.pro`. 13 ; 14 ; Corrected ws on OAFLUX grid is written in 15 ; :file:`${PROJECT_OD}/TropFlux_ws_19890101_20091231.nc` 16 ; if this file not already exists. 17 ; 18 ; This file will be used by :ref:`TropFlux_19890101_20091231.pro`. 8 19 ; 9 20 ; .. graphviz:: … … 13 24 ; rankdir="LR", 14 25 ; ] 15 ; file_in [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_uncor/erai_ws_19890101_20091231_oafluxgrid.nc"]; 16 ; ncfile [shape=ellipse,fontname=Courier,label="/Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_ws_19890101_20091231_v20.nc"]; 26 ; 27 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_ws_19890101_20091231_oafluxgrid.nc"]; 28 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/TropFlux_ws_19890101_20091231.nc"]; 29 ; 17 30 ; ws_correction_ncdf [shape=box, 18 31 ; fontname=Courier, … … 21 34 ; label="${PROJECT}/src/ws_correction_ncdf.pro"]; 22 35 ; 23 ; {file_in} -> {ws_correction_ncdf} -> { ncfile}36 ; {file_in} -> {ws_correction_ncdf} -> {file_out} 24 37 ; 25 38 ; } … … 28 41 ; ======== 29 42 ; 43 ; :ref:`project_profile.sh` 44 ; 45 ; :ref:`mooring_corrections` 46 ; 47 ; :ref:`interp_erai_vs_1989_2009.pro` 48 ; 49 ; :func:`initncdf <saxo:initncdf>` 50 ; :func:`read_ncdf <saxo:read_ncdf>` 51 ; :func:`grossemoyenne <saxo:grossemoyenne>` 52 ; :func:`julday <saxo:julday>` 53 ; :func:`caldat <saxo:caldat>` 54 ; :func:`ncdf_quickwrite <saxo:ncdf_quickwrite>` 55 ; 30 56 ; EXAMPLES 31 57 ; ======== … … 38 64 ; ==== 39 65 ; 40 ; hard coded directory - usage of ${PROJECT_ID}41 ;42 66 ; coding rules 67 ; 68 ; hard coded correction 69 ; 70 ; KNOWN ISSUES 71 ; ============ 72 ; 73 ; test of existence of fullfilename_in not very efficient because 74 ; MUST_EXIST keyword of :func:`isafile <saxo:isafile>` not yet implemented 43 75 ; 44 76 ; EVOLUTIONS 45 77 ; ========== 46 78 ; 79 ; - fplod 20110808T131954Z aedon.locean-ipsl.upmc.fr (Darwin) 80 ; 81 ; * usage of ${PROJECT_OD} 82 ; * complete description 83 ; * remove v20 in output filename 84 47 85 ; - fplod 20101215T115916Z aedon.locean-ipsl.upmc.fr (Darwin) 48 86 ; … … 59 97 ;- 60 98 pro ws_correction_ncdf 61 @common 99 ; 100 @cm_4cal 101 @cm_4data 102 @cm_4mesh 103 @cm_4data 104 @cm_project 105 ; 106 ; test if ${PROJECT_OD} defined 107 CASE project_od_env OF 108 '' : BEGIN 109 msg = 'eee : ${PROJECT_OD} is not defined' 110 ras = report(msg) 111 STOP 112 END 113 ELSE: BEGIN 114 msg = 'iii : ${PROJECT_OD} is ' + project_od_env 115 ras = report(msg) 116 END 117 ENDCASE 118 ; 119 ; check if output data will be possible 120 iodirout = isadirectory(project_od_env) 121 ; 122 ; existence and protection for reading 123 IF (FILE_TEST(iodirout, /DIRECTORY, /EXECUTABLE, /READ) EQ 0) THEN BEGIN 124 msg = 'eee : the directory' + iodirout + ' is not accessible.' 125 ras = report(msg) 126 STOP 127 ENDIF 128 ; 129 ; existence and protection for writing 130 IF (FILE_TEST(iodirout, /DIRECTORY, /WRITE) EQ 0) THEN BEGIN 131 msg = 'eee : the directory' + iodirout + ' was not found.' 132 ras = report(msg) 133 STOP 134 ENDIF 135 ; 62 136 da1=19880101 & da2=20101231 63 64 file='/Volumes/PRAVEEN/TropFlux/input_uncor/erai_ws_19890101_20091231_oafluxgrid.nc' 65 initncdf, file 66 u=read_ncdf('u10',da1,da2,file=file,/nostr) 67 v=read_ncdf('v10',da1,da2,file=file,/nostr) 137 ; 138 ; build data filename 139 filename='erai_ws_19890101_20091231_oafluxgrid.nc' 140 ; 141 ; check if this file exists 142 fullfilename = isafile(iodirout + filename, NEW=0, /MUST_EXIST) 143 IF fullfilename[0] EQ '' THEN BEGIN 144 msg = 'eee : the file ' + fullfilename + ' was not found.' 145 ras = report(msg) 146 STOP 147 ENDIF 148 ; 149 ; build output filename 150 filename_out = 'TropFlux_ws_19890101_20091231.nc' 151 fullfilename_out = iodirout + filename_out 152 ; in order to avoid unexpected overwritten 153 IF (FILE_TEST(fullfilename_out) EQ 1) THEN BEGIN 154 msg = 'eee : the file ' + fullfilename_out + ' already exists.' 155 ras = report(msg) 156 STOP 157 ENDIF 158 ; 159 initncdf, fullfilename 160 u=read_ncdf('u10',da1,da2,file=fullfilename,/nostr) 161 v=read_ncdf('v10',da1,da2,file=fullfilename,/nostr) 68 162 w=sqrt(u*u+v*v) 69 163 … … 109 203 time=time-julday(1,1,1950) & jpt=n_elements(time) 110 204 111 ncfile='! /Volumes/PRAVEEN/TropFlux/input_cor/full_cor/TropFlux_ws_19890101_20091231_v20.nc'205 ncfile='!' + fullfilename_out 112 206 lon_attr={units:'degrees_east',long_name:'Longitude'} 113 207 lat_attr={units:'degrees_north',long_name:'Latitude'} … … 116 210 globattr={source:'Basic data obtained from ERAI. Bias and variability correction are applied',timerange:cda0+' - '+cda1} 117 211 118 119 212 ncfields = 'ws[longitude,latitude,time]=w_new:w_attr; ' $ 120 213 + 'longitude[]=lon:lon_attr; ' $
Note: See TracChangeset
for help on using the changeset viewer.