;;snoweurdjfmhighlow.ncl Dr. Sujata Mandke ;; begin ;******************************** ; Read monthly Snow data ;******************************** diri = "/home/data/" ; input directory fili = "swe_mon_jan1979tomay2007smmrssmi.nc" ; input snow file ;******************************** in1 = addfile(diri+fili ,"r") tm = in1->time ymd = cd_calendar(tm, -2) ; yyyymmdd ;;------- ;;;follows selection of time from input file ;period 1982-2006 are selected as SST data ;;;is available for this period ;;-------- ;;;; ymdStrt = 19820101 ; start yyyymmdd ymdLast = 20061201 ; end yyyymmdd iStrt = ind(ymd.eq.ymdStrt) ; index start iLast = ind(ymd.eq.ymdLast) ; index last delete(tm) delete(ymd) ;********************************** snow= in1->swe(iStrt:iLast,{50:70},{20:140}) ;;;reading snow over Eurasia 50-70N;20-140E ;;------------------------------ ; 'swe' file contains a _FillValue (-999.0) ; when there is no snow cover ; Therefore _FillValue (-999.0) is set to 0.0 ;------------------------------------- snow = where(ismissing(snow), 0.0, snow) ;-------------------------------- ;--Follows averaging snow over DJFM ;-------------------------------- y = runave_n_Wrap(snow,4,0,0) sdjfm =y(0::12,:,:) ;; ;;--follows area averaging djfm snow over Eurasia snoweur=wgt_areaave(sdjfm,1.0,1.0,0) ;;;area-averaged snow over Eurasia snoweur!0="time" snoweur&time=sdjfm&time ;---- snowstdaneur = dim_standardize_n_Wrap(snoweur, 0, 0) ;;;standardised djfm snow anomaly over Eurasia 50-70N;20-140E snowstdaneur!0= "time" ;;;--- snowlow = where(snowstdaneur.lt.-0.5, snowstdaneur, snowstdaneur@_FillValue) ; average only negative values values snowlow!0="time" snowlow&time=sdjfm&time snowlowavg=avg(snowlow) print(snowlowavg) ;------------ ;; To determine the number of data values used to calculate the average use following: nlow = num(.not.ismissing(snowlow)) print("no of years snow was low="+nlow) ;;;------ snowhigh = where(snowstdaneur.gt.0.5, snowstdaneur, snowstdaneur@_FillValue) ; average only negative values values print(snowhigh) snowhighavg=avg(snowhigh) print(snowhighavg); ;;----------- ;; To determine the number of data values used to calculate the average use: nhigh = num(.not.ismissing(snowhigh)) print("no of years snow was low="+nhigh) ;********************************* end