1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/biomass/30.mask_to_T31-T42_1.9.ncl Mon Jan 26 22:08:20 2009 -0500
1.3 @@ -0,0 +1,147 @@
1.4 +; ***********************************************
1.5 +; interpolate into model grids (T31)
1.6 +; ***********************************************
1.7 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
1.8 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
1.9 +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
1.10 +;************************************************
1.11 +begin
1.12 +
1.13 +;************************************************
1.14 +; read model grid
1.15 +;************************************************
1.16 +
1.17 + model_grid = "T31"
1.18 +;model_grid = "T42"
1.19 +;model_grid = "1.9"
1.20 +
1.21 + diri = "/fis/cgd/cseg/people/jeff/clamp_data/surface_model/"
1.22 + fili = "lnd_"+ model_grid +".nc"
1.23 + f = addfile (diri+fili,"r")
1.24 +
1.25 + lon = f->lon
1.26 + lat = f->lat
1.27 + nlon = dimsizes(lon)
1.28 + nlat = dimsizes(lat)
1.29 +
1.30 +;************************************************
1.31 +; output data
1.32 +;************************************************
1.33 + diro = "/fis/cgd/cseg/people/jeff/clamp_data/observed/biomass/"
1.34 + filo = "amazon_mask_"+model_grid + ".nc"
1.35 + c = addfile(diro+filo,"c")
1.36 +
1.37 +;************************************************
1.38 +; read 1x1 amazon_mask data
1.39 +;************************************************
1.40 + diri = "/fis/cgd/cseg/people/jeff/clamp_data/observed/biomass/"
1.41 + fili = "amazon_mask_1x1.nc"
1.42 + g = addfile(diri+fili,"r")
1.43 +
1.44 + bi = g->mask_amazon
1.45 + xi = g->lon
1.46 + yi = g->lat
1.47 +
1.48 +;************************************************
1.49 +; change from -180-180, 90N-90S into 0-360E, 90S-90N
1.50 +; Observed NPP*scale_factor
1.51 +;************************************************
1.52 +
1.53 + yi = (/ yi(::-1) /)
1.54 + bi = (/ bi(::-1,:) /)
1.55 + b2 = bi
1.56 + x2 = xi
1.57 +
1.58 + nx = dimsizes(xi)
1.59 + do i= 0,nx-1
1.60 + if (i .lt. 180) then
1.61 + p = i + 180
1.62 + xi(p) = x2(i) + 360.
1.63 + else
1.64 + p = i - 180
1.65 + xi(p) = x2(i)
1.66 + end if
1.67 + bi(:,p)= b2(:,i)
1.68 + end do
1.69 +
1.70 + bi&lat = yi
1.71 + bi&lon = xi
1.72 +
1.73 +;print (xi)
1.74 +;print (yi)
1.75 +
1.76 +;(A)
1.77 +;bo = linint2_Wrap(xi,yi,bi,True,xo,yo,0)
1.78 +
1.79 +;(B)
1.80 +
1.81 + rad = 4.*atan(1.)/180.
1.82 + clat = lat
1.83 + clat = cos(lat*rad)
1.84 +
1.85 + clat@long_name = "cos(latitude)"
1.86 + delete(clat@units)
1.87 +; printVarSummary(clat)
1.88 +
1.89 + bo = new ((/nlat,nlon/),"float")
1.90 +
1.91 + do j=0,nlat-1
1.92 + if (j.eq.0 .or. j.eq.nlat-1) then
1.93 + if (j.eq.0) then
1.94 + LATS = -90.
1.95 + LATN = lat(j)+0.5*(lat(j+1)-lat(j))
1.96 + end if
1.97 + if (j.eq.nlat-1) then
1.98 + LATS = lat(j)-0.5*(lat(j)-lat(j-1))
1.99 + LATN = 90.
1.100 + end if
1.101 + else
1.102 + LATS = lat(j)-0.5*(lat(j)-lat(j-1))
1.103 + LATN = lat(j)+0.5*(lat(j+1)-lat(j))
1.104 + end if
1.105 +
1.106 +; CLAT = clat({LATS:LATN}) ; do once for *slight* efficiency
1.107 +; TEMP = bi({LATS:LATN},:) ; 2D [lat,lon]
1.108 +
1.109 + do i=0,nlon-1
1.110 + if (i.eq.0 .or. i.eq.nlon-1) then
1.111 + if (i.eq.0) then
1.112 + LONL = 0.
1.113 + LONR = lon(i)+0.5*(lon(i+1)-lon(i))
1.114 + end if
1.115 + if (i.eq.nlon-1) then
1.116 + LONL = lon(i)-0.5*(lon(i)-lon(i-1))
1.117 + LONR = 360.
1.118 + end if
1.119 + else
1.120 + LONL = lon(i)-0.5*(lon(i)-lon(i-1))
1.121 + LONR = lon(i)+0.5*(lon(i+1)-lon(i))
1.122 + end if
1.123 +
1.124 +;print (LATS)
1.125 +;print (LATN)
1.126 +;print (LONL)
1.127 +;print (LONR)
1.128 +
1.129 + bo(j,i) = avg(bi({LATS:LATN},{LONL:LONR}))
1.130 +; bo(j,i) = wgt_areaave(TEMP(:,{LONL:LONR}), CLAT, 1.0, 0)
1.131 +
1.132 + end do
1.133 +
1.134 +; delete(CLAT)
1.135 +; delete(TEMP)
1.136 + end do
1.137 +
1.138 +; bo = where(bo.ge.0.5, 1.0,0.)
1.139 +
1.140 + bo!0 = "lat"
1.141 + bo!1 = "lon"
1.142 + bo&lat = lat
1.143 + bo&lon = lon
1.144 +; bo@units = bi@units
1.145 + bo@long_name = "amazon mask"
1.146 +; bo@_FillValue = bi@_FillValue
1.147 + bo@_FillValue = 1.e+36
1.148 +
1.149 + c->mask_amazon = bo
1.150 +end
1.151 \ No newline at end of file