Artikel_2

Lamona I Bernawis

Berikut ini ingin menyampaikan beberapa hal mengenai kode matlab yang sering digunakan para oseanografer. Loren Shure dari Mathworks yang terkenal dengan blognya di Matlab Central itu sendiri sebenarnya adalah seorang oseanografer, karena beliau lulus dari SIO. Seperti telah kita ketahui bersama, banyak mfile berguna yang bisa diunduh bebas dari Seamat. Terimakasih kepada para ilmuwan yang telah menyumbangkannya demi kemudahan, kemajuan dan penyebarluasan bidang ilmu ini. Memang demikianlah sesuatu ilmu seharusnya, untuk disebarluaskan.

Gbr.1. Kontur densitas potensial ini dibuat dengan skrip matlab. Bernawis 2007.

T-S diagram

Jika anda pengguna mfile TSdiagram dari bapak Blair Greenan, penambahan sedikit skrip kode sederhana berikut bisa membuat tampilan label pada TS diagram anda menjadi lebih rapi.

Versi 2.0 8 –September 1998 oleh Blair Greenan.

Perhatikan bagian yang dicetak tebal.

function tsdiagram(S,T,P,sigma,marker,axislim) % tsdiagram Plots a temperature vs. salinity diagram % with selected density contours. % ============================================================================= % tsdiagram Version 2.0 8-Septermber-1998 % % Usage: % tsdiagram(S,T) draws several randomly chosen contours and assumes % Pressure = 0. % % tsdiagram(S,T,P) draws several randomly chosen contours. % % tsdiagram(S,T,P,sigma) draws contours lines of density anomaly % % SIGMA (kg/m^3) at pressure P (dbars), given a range of % % salinity (ppt) and temperature (deg C) in the 2-element vectors % % S,T. The freezing point (if visible) will be indicated. If sigma % is set to -1 no contours will be drawn. The user can input sigma % as a scalar (in which case the specified number of contours will be % drawn) or as a vector (in which case the contours will be drawn for % the specified isopycnals). % % tsdiagram(S,T,P,sigma,marker) Set marker to specified symbol and color. If % not specified then default to green dot '.g'. % % tsdiagram(S,T,P,sigma,marker,axislim) axislim is a vector to set the limits % for the x and y axes [lower_limit_s upper_limit_s lower_limit_t upper_limit_t]. % % Description: % Function produces a 2-D T-S plot with various options for choosing % isopycnals, markers and axis limits. % % Input: % S = salinity [psu] % T = temperature [deg C] % P = pressure [db] % sigma = density [kg/m^3] % marker = string indicating color and style of marker to be plotted % axislim = vector indicating desired axis limits [smin smax tmin tmax] % % Output: % n/a % % Author: % Blair Greenan % Bedford Institute of Oceanography % September 8, 1998 % Matlab 5.2.1 % greenanb@mar.dfo-mpo.gc.ca % % Notes: % RP (WHOI) 9/Dec/91 % % 7/Nov/92 Changed for Matlab 4.0 % % 14/Mar/94 Made P optional. % % Blair Greenan (BIO) 27AUG98 % Version 2.0: Previous version did not actually take in % T,S data. It simply set up a T-S plot with isopynals drawn % on which you could overlay your T-S data by using "hold on". % This version takes in T-S data and sets up the plot based on % the min/max values of T and S and then plots the data. To % added data from another dataset use "hold on" and plot it. % % ============================================================================= % Set up function based on number of input arguments given if (nargin<2), error('tsdiagram: Not enough calling parameters'); elseif (nargin==2), P=0; sigma=5; marker='.g'; minS=floor(min(S)) maxS=ceil(max(S)) minT=floor(min(T)) maxT=ceil(max(T)) elseif (nargin==3), sigma=5; marker='.g'; minS=floor(min(S)); maxS=ceil(max(S)); minT=floor(min(T)); maxT=ceil(max(T)); elseif (nargin==4), marker='.g'; minS=floor(min(S)); maxS=ceil(max(S)); minT=floor(min(T)); maxT=ceil(max(T)); elseif (nargin==5), minS=floor(min(S)); maxS=ceil(max(S)); minT=floor(min(T)); maxT=ceil(max(T)); elseif (nargin==6), minS=axislim(1); maxS=axislim(2); minT=axislim(3); maxT=axislim(4); end; % % Convert to columns to be on the safe side sigma=sigma(:); % % If sigma ~= -1 then do isopycnal contours, otherwise skip if (sigma ~= -1) % grid points for contouring Sg=minS+[0:30]/30*(maxS-minS); Tg=minT+[0:30]'/30*(maxT-minT); % % Use seawater state equation to return specific volume % anomaly SV (m^3/kg*1e-8) and the density anomaly SG (kg/m^3) [SV,SG]=swstate(ones(size(Tg))*Sg,Tg*ones(size(Sg)),P(1)); % % clear axis cla; % plot isopycnal contours %dimodif biar tampilannya bagus [CS,H]=contour(Sg,Tg,SG,sigma);%,'-k'); % attach labels to contours % new style Matlab contour labelling ... I don't like it in this case so % clabel(CS,H) if (max(size(sigma))==1) %clabel(CS);--> Greenan's original %to have neater labelling, modified by Lamona Bernawis set(H,'edgecolor','k'); clabel (CS,H,'LabelSpacing',500,'FontSize',7); else %clabel(CS,sigma);Greenan %modified by Mona set(H,'edgecolor','k'); clabel (CS,H,'LabelSpacing',500,'FontSize',7); end; end % set plot to "square" axis('square'); % set axis limits axis([minS maxS minT maxT]); % place labels on axes xlabel('Salinity (psu)'); ylabel('Temperature ({\circ}C)'); % %plot freezing temp. freezeT=swfreezetemp([minS maxS],P(1)); line([minS maxS],freezeT,'LineStyle','--'); % % Label with pressure, then return to other axes %text(S(1),T(2), ... %[' Pressure = ' int2str(P(1)) ' dbars'],'horiz','left','Vert','top'); % % plot data hold on; plot(S,T,marker) ** Jika anda lebih menyukai versi asli bapak Greenan; 1. hapus tanda % yang ditambahkan di sini   %clabel(CS);--> Greenan's original 2. Hapus baris skrip ini %to have neater labelling, modified by Lamona Bernawis 3. Ganti ‘k’ dengan ‘g’ kembali set(H,'edgecolor','k'); 4. Hapus baris skrip ini clabel (CS,H,'LabelSpacing',500,'FontSize',7); Atau tambahkan tanda % sebelum ‘set’ dan ‘clabel’ agar perintah diabaikan. Dan hal yang sama sesudah ‘else’. Di bawah ini contoh TS diagram yang dihasilkan dari versi asli dan sesudah dimodifikasi. Label kontur isopiknalnya kelihatan menjadi lebih sederhana dan rapi.

TSdiag sesudah




















Gbr.2 Contoh TS diagram sebelum (kiri) dan sesudah (kanan) dimodifikasi. Garis kontur densitas potensial diganti menjadi berwarna hitam. Labelnya tidak lagi ditandai dengan tanda + pada garis kontur densitas potential, tetapi berada di tengah-tengah garis kontur. Bernawis 2007.

Oh ya, line plot T-S majemuk seperti ini (data T-S beberapa stasiun digabung dalam satu kontur isopiknal) dihasilkan dengan menggunakan perintah ‘hold on’ dan ‘plot’ biasa, sesudah memanggil fungsi mfile tsdiagram-nya.

Bahan bacaan: 1. Ocean Mixing Research Group -Programming (Blair Greenan) 2. SEAMAT – Matlab Tools for Oceanographic Analysis 3. Matlab documentation 4. Matlab central


copyright_9