# # Ed Hill # Thu Dec 18 13:51:19 EST 2003 # Mask out wind forcing curl data over land (so only the sea data is # left) using the WORLDBATH elevation data from Ingrid. # URLs: # http://iridl.ldeo.columbia.edu/expert/SOURCES/.TRENBERTH/.Annual/.taux # http://iridl.ldeo.columbia.edu/expert/SOURCES/.TRENBERTH/.Annual/.taux # http://ingrid.mit.edu/SOURCES/.WORLDBATH/.bath/ matlab -nojvm clear all ncload('TRENBERTH_taux.cdf') ncload('TRENBERTH_tauy.cdf') cx = mod(X+360.0,360.0); cy = Y; origX = X; origY = Y; ncload('WORLDBATH_data.cdf') bx = X; by = Y; clear X Y mask = zeros(size(taux)); nx = size(taux,2); ny = size(taux,1); ib = zeros(1,nx); jb = zeros(1,ny); for i = 1:nx, ib(i) = round(mean([ max(find(bx < cx(i))) min(find(bx > cx(i))) ])); end for j = 1:ny, jb(j) = round(mean([ max(find(by < cy(j))) min(find(by > cy(j))) ])); end b_tau = zeros(size(taux)); for j = 1:ny, b_tau(j,:) = bath(jb(j),ib); end b_mask = double(b_tau < -50.0); surf(b_mask), view(2), shading interp m_taux = taux .* b_mask; m_tauy = tauy .* b_mask; idu = 'tau_x'; idv = 'tau_y'; units = 'newtons/m2'; desc = [ 'TRENBERTH tau data with a zero-mask over land.' ]; ncname = [ 'TRENBERTH_tau_masked.nc' ]; nc = netcdf(ncname, 'clobber'); nc.reference = desc; nc.author = 'Ed Hill '; nc.date = 'Dec 12, 2003'; nc('lon') = length(cx); nc('lat') = length(cy); nc{'lon'} = 'lon'; nc{'lat'} = 'lat'; nc{ idu } = { 'lat', 'lon' }; nc{ idv } = { 'lat', 'lon' }; nc{'lon'}.uniquename = 'lon'; nc{'lon'}.long_name = 'longitude'; nc{'lon'}.gridtype = ncint(1); nc{'lat'}.uniquename = 'lat'; nc{'lat'}.long_name = 'latitude'; nc{'lat'}.gridtype = ncint(0); nc{'lon'}.units = 'degree_east'; nc{'lat'}.units = 'degree_north'; nc{ idu }.units = units; nc{ idu }.long_name = idu; nc{ idu }.missing_value = ncdouble(NaN); nc{ idu }.FillValue_ = ncdouble(-9999.); nc{ idv }.units = units; nc{ idv }.long_name = idv; nc{ idv }.missing_value = ncdouble(NaN); nc{ idv }.FillValue_ = ncdouble(-9999.); nc{'lon'}(:) = origX; nc{'lat'}(:) = origY; nc{ idu }(:) = m_taux; nc{ idv }(:) = m_tauy; nc = close(nc); scp TRENBERTH_tau_masked.nc channel.mit.edu:/home/edhill/TRENBERTH_tau_masked/ # AS ROOT ON channel.mit.edu : cd /home/benno/ingrid/data/MIT/LOCAL/PEOPLE/EH3 mkdir TRENBERTH_tau_masked cd TRENBERTH_tau_masked ln -s /home/edhill/TRENBERTH_tau_masked/* % OK, *THIS* (below) is the correct format for Ingrid desc = [ 'TRENBERTH tau data with a zero-mask over land.' ]; ncname = [ 'TRENBERTH_tau_masked_XY.nc' ]; nc = netcdf(ncname, 'clobber'); nc.reference = desc; nc.author = 'Ed Hill '; nc.date = 'Dec 12, 2003'; nc('X') = length(cx); nc('Y') = length(cy); nc{'X'} = 'X'; nc{'Y'} = 'Y'; nc{ idu } = { 'Y', 'X' }; nc{ idv } = { 'Y', 'X' }; nc{'X'}.uniquename = 'X'; nc{'X'}.long_name = 'longitude'; nc{'X'}.gridtype = ncint(1); nc{'Y'}.uniquename = 'Y'; nc{'Y'}.long_name = 'latitude'; nc{'Y'}.gridtype = ncint(0); nc{'X'}.units = 'degree_east'; nc{'Y'}.units = 'degree_north'; nc{ idu }.units = units; nc{ idu }.long_name = idu; nc{ idu }.missing_value = ncdouble(NaN); nc{ idu }.FillValue_ = ncdouble(-9999.); nc{ idv }.units = units; nc{ idv }.long_name = idv; nc{ idv }.missing_value = ncdouble(NaN); nc{ idv }.FillValue_ = ncdouble(-9999.); nc{'X'}(:) = origX; nc{'Y'}(:) = origY; nc{ idu }(:) = m_taux; nc{ idv }(:) = m_tauy; nc = close(nc); !scp TRENBERTH_tau_masked_XY.nc channel.mit.edu:/home/edhill/TRENBERTH_tau_masked/ % Mask out (zero) a region for the Pacific basin matlab -nojvm clear all ncload('TRENBERTH_curl_all.cdf') cx = mod(X+360.0,360.0); cy = Y; origX = X; origY = Y; ncload('WORLDBATH_data.cdf') bx = X; by = Y; clear X Y mask = zeros(size(ratio)); nx = size(ratio,2); ny = size(ratio,1); ib = zeros(1,nx); jb = zeros(1,ny); for i = 1:nx, ib(i) = round(mean([ max(find(bx < cx(i))) min(find(bx > cx(i))) ])); end for j = 1:ny, jb(j) = round(mean([ max(find(by < cy(j))) min(find(by > cy(j))) ])); end b_tau = zeros(size(ratio)); for j = 1:ny, b_tau(j,:) = bath(jb(j),ib); end b_mask = double(b_tau < -50.0); surf(b_mask), view(2), shading interp pacm = b_mask; surf(pacm), view(2), shading interp pacm(:,46:63) = 0.0; pacm(64:72,1:50) = 0.0; pacm(43:70,35:50) = 0.0; pacm(40:70,40:50) = 0.0; surf(pacm), view(2), shading interp curlmasked = ratio .* pacm; id = 'curl' desc = [ 'TRENBERTH curl data with a zero-mask for Pacific Basin integration.' ]; ncname = [ 'TRENBERTH_curl_masked.nc' ]; nc = netcdf(ncname, 'clobber'); nc.reference = desc; nc.author = 'Ed Hill '; nc.date = 'Dec 12, 2003'; nc('X') = length(cx); nc('Y') = length(cy); nc{'X'} = 'X'; nc{'Y'} = 'Y'; nc{ id } = { 'Y', 'X' }; nc{'X'}.uniquename = 'X'; nc{'X'}.long_name = 'longitude'; nc{'X'}.gridtype = ncint(1); nc{'Y'}.uniquename = 'Y'; nc{'Y'}.long_name = 'latitude'; nc{'Y'}.gridtype = ncint(0); nc{'X'}.units = 'degree_east'; nc{'Y'}.units = 'degree_north'; nc{ id }.units = 'kilogram meter-2 second-2'; nc{ id }.long_name = id; nc{ id }.missing_value = ncdouble(NaN); nc{ id }.FillValue_ = ncdouble(-9999.); nc{'X'}(:) = origX; nc{'Y'}(:) = origY; nc{ id }(:) = curlmasked; nc = close(nc); !scp TRENBERTH_curl_masked.nc channel.mit.edu:/home/edhill/TRENBERTH_tau_masked/