2012年6月16日土曜日

Matlab Plot of time series data (e.g. Tide data)

日付や時刻の時系列データを、x軸を日付にしてプロットする

サマーハイドロ2012で観測している潮汐データ (Radar gauge tide data)

tide.txt

Station Name
Xpert
06/03/2012,00:00:00,h-3611,2.040,M,G
06/03/2012,00:00:01,h-3611,2.040,M,G
06/03/2012,00:00:02,h-3611,2.040,M,G


まずデータを読み込む

fname=['C:\Users\XXXX\Desktop\Tide\MATLAB\'];
[date,time,type,height,unit,sign]=textread([fname 'tide.txt'],'%s%s%s%f%s%s','headerlines',2,'delimiter',',');

日付を datevec を使って、日付ベクトルに変換する

date_1 = datevec(date);
 %06/05/2012 ---> [2012 6 5 0 0 0]

時刻を datevec を使って、時刻ベクトルに変換する

time_1 = datevec(time);
% 16:00:00 ---> [2012 1 1 16 0 0]

日付ベクトルと時刻ベクトルを合体して、日付時刻ベクトルにする

dates = [date_1(:,1:3) time_1(:,4:6)];
% [2012 6 5 16 0 0]

日付時刻ベクトルをシリアル日付番号に変換する

dates_num = datenum(dates);
% dates_num = 735025.6

プロットする

plot(dates_num,height,'k')

x軸の範囲を指定する

xlim([dates_num(599),dates_num(end)])

set(gca,'Xtick',dates_num(599:240:end))
 
x軸の軸ラベルの間隔を指定する。
データは6分毎なので、1日ずつ軸ラベルをつける場合は
1日=6分×10×24=240をデータ間隔に指定する。

datetick('x',6,'keeplimits','keepticks')

x軸の軸ラベルをフォーマット6 ( mm/dd ) で表示させる
'keeplimits','keepticks' をつけないと1日ずつ表示されないので大事

x軸のラベル

xlabel('Date (UTC)','FontSize',14)



y軸のラベル

ylabel('Height above staff zero (m)','FontSize',14)

タイトル
title('Observed water level (6-min averaged) at York Harbor, ME ','FontSize',14)

x軸、y軸のラベルのフォントサイズを大きくする
set(gca,'FontSize',14)

グリッドを表示する

grid on



おしまい


0 件のコメント:

コメントを投稿