| tentang |
|
petunjuk |
|
depan |

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.
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
