;; NCL function to create a mask file based on state boundaries load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" name = "northwest" states = (/"ID", "OR", "WA"/) ;name = "southwest" ;states = (/"AZ", "CA", "CO", "NV", "NM", "UT"/) ;name = "greatplains" ;states = (/"KS", "MT", "NE", "ND", "OK", "SD", "TX", "WY"/) ;name = "midwest" ;states = (/"IL", "IN", "IA", "MI", "MN", "MO", "OH", "WI"/) ;name = "northeast" ;states = (/"CT", "DE", "ME", "MD", "MA", "NH", "NJ", "NY", "PA", "RI", "VT", "WV"/) ;name = "southeast" ;states = (/"AL", "AR", "FL", "GA", "KY", "LA", "MS", "NC", "SC", "TN", "VA"/) ;name = "southwest" ;states = (/"CA", "NV", "AZ", "UT", "NM", "CO"/) ;allstates = (/"AL", "AR", "AZ", "CA", "CO", "CT", "DE", "FL", "GA", "IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NC", "ND", "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY" /) ;do a=0,dimsizes(allstates)-1 ; name = allstates(a) ; states = (/name/) ;name = "coterminous" ;states = allstates filename = "masks/"+name+".nc" n = dimsizes(states) system("cp proto.nc "+filename) fin = addfile(filename, "w") data = fin->mask lat = fin->lat lon = fin->lon ndim = dimsizes(data) nx = ndim(1) ny = ndim(0) long_name = name+" mask" do s = 0,n-1 long_name = long_name + " "+states(s) bdy = readAsciiTable("poly-coords/"+states(s)+".txt",2,"float",0) print(""+states(s)) do j=0,ny-1 do i=0,nx-1 if gc_inout(lat(j,i),lon(j,i),bdy(:,0),bdy(:,1)) data(j,i) = 1 end if end do end do delete(bdy) end do data@long_name = long_name fin->mask = data ;end do