このリポジトリは気象庁 がウェブサイトで公開している「潮位表」の推算潮位(天文潮位)および「潮汐観測資料」の毎時潮位・潮位偏差(確定値)のデータ取得ツールです. 潮位表 テキストファイルフォーマット および 潮汐観測資料 テキストファイルフォーマット を参考にテキストファイルを読み取ることで実行されます. 実行には MATLAB が必要です.
取得したい地点名・年・月を入力してインスタンスを生成します.
station = JMAtide('能登', 2024, 1);
続いて,loadastronimocaltide メソッドでそれぞれ潮位,潮位偏差を気象庁ウェブサイトから取得します. 格納されるプロパティ名は AstronomicalTide です.
station = station.loadastronimocaltide; % 推算潮位の取得
plotastronomicaltide で取得したデータの簡易的なプロットが可能です.
% 潮位のプロット
station.plotastronomicaltide;
緯度経度を入力して,一番近い潮位表の掲載地点を求めることもできます.
stationname = JMAtide.findNearestStationForAstro([136.674; 137.263], [37.168; 37.434]) % lon, lat
stationname =
2×1 の cell 配列
{'輪島'}
{'能登'}
月ごとの推算潮位を取得後に datetime 型で日時を指定することで,特定時刻の推算潮位を毎時データから内挿で求めることができます.
% 2024年1月
station = JMAtide(stationname, 2024, 1);
% 毎時推算潮位取得
station = station.loadastronimocaltide;
% 特定時刻の推算潮位の抽出 2024/01/25T19:15
atide = station.getastronomicaltide(datetime(2024,1,25,19,15,0,0))
atide =
21.0000
24.8500
対象期間外の時刻を指定して潮位を取得しようとした場合,NaN を返します.
% 2024年1月でない時刻の指定
station.getastronomicaltide(datetime(2024,2,1,3,10,0,0))
ans =
NaN
NaN
気象庁の毎時潮位観測資料は,地点ごとおよび月ごとにファイルが分かれています. このため,観測地点名・年・月を入力してインスタンスを生成し,変数の初期化を行います.
tidegauge = JMAtide('東京', 2019, 10);
loadssh, loadssha でそれぞれ潮位,潮位偏差を気象庁ウェブサイトから取得します. 格納されるプロパティ名は ssh と ssha です.
tidegauge = tidegauge.loadssh; % 潮位
tidegauge = tidegauge.loadssha; % 潮位偏差
plotssh,plotssha で取得したデータの簡易的なプロットが可能です.
% 潮位のプロット
tidegauge.plotssh;
% 潮位偏差のプロット
tidegauge.plotssha;
年月の指定部分に配列を入力することで,長期間の潮位データを対象とすることが可能です.
tidegauge = JMAtide('東京', 2019); % 2019年1月〜12月, (1x12)配列
tidegauge = JMAtide('東京', [2018,09; 2019,10]); % 2018年9月 と 2019年10月, (1x2)配列
tidegauge = JMAtide('東京', 2019, 8:11) % 2019年9月〜11月, (1x4)配列
1 | 2 | 3 | 4 | |
---|---|---|---|---|
1 | 1x1 JMAtide | 1x1 JMAtide | 1x1 JMAtide | 1x1 JMAtide |
tidegauge = tidegauge.loadssha;
tidegauge.plotssha;
地点名を cell 配列で複数指定すると,複数地点の潮位データを同時に扱えます.
% 以下の9地点,2019年10月
tidegauge = JMAtide({'布良','東京','岡田','三宅島(坪田)','小田原','石廊崎','内浦','清水港','御前崎'}, 2019, 10);
% 潮位取得
tidegauge = tidegauge.loadssh;
% 潮位偏差取得
tidegauge = tidegauge.loadssha;
% plot - 潮位偏差
lines = tidegauge.plotssha;
xlim([tidegauge(1).Time(24*8)+hours(1), tidegauge(1).Time(24*14)])
legend(lines, {'布良','東京','岡田','三宅島(坪田)','小田原','石廊崎','内浦','清水港','御前崎'}, 'NumColumns',2, 'Location','NorthWest');
csvssh,csvsshaでそれぞれ潮位,潮位偏差を csv ファイルとして出力します. データの期間(年,月)が同じであれば,複数の地点を1つのファイルにまとめて出力します.
% ファイル出力前に,単位を cm → m へ
tidegauge = tidegauge.convertunit('m');
% CSVファイルとして出力
% 同一期間のため,全地点のデータを1つのファイルに格納
tidegauge.csvssh % 潮位
tidegauge.csvssha % 潮位偏差
sealevel_201910_MRTKOKMJODG9UCSMOM.dat
sealevelanomaly_201910_MRTKOKMJODG9UCSMOM.dat
% 出力ファイルの確認 1行目〜10行目
dbtype sealevel_201910_MRTKOKMJODG9UCSMOM.dat 1:10
1 # time, 布良, 東京, 岡田, 三宅島(坪田), 小田原, 石廊崎, 内浦, 清水港, 御前崎
2 20191001T0000, 0.830, 1.080, 0.840, 3.770, 2.760, 3.250, 1.040, 1.320, 1.530
3 20191001T0100, 0.980, 1.130, 0.930, 3.840, 2.870, 3.220, 1.030, 1.260, 1.510
4 20191001T0200, 1.250, 1.390, 1.160, 4.080, 3.120, 3.370, 1.220, 1.370, 1.670
5 20191001T0300, 1.570, 1.790, 1.480, 4.400, 3.450, 3.660, 1.560, 1.610, 1.960
6 20191001T0400, 1.870, 2.230, 1.800, 4.710, 3.770, 4.030, 1.940, 1.950, 2.300
7 20191001T0500, 2.060, 2.600, 2.040, 4.970, 4.000, 4.400, 2.280, 2.300, 2.630
8 20191001T0600, 2.130, 2.820, 2.140, 5.120, 4.100, 4.650, 2.510, 2.570, 2.850
9 20191001T0700, 2.050, 2.810, 2.120, 5.140, 4.060, 4.740, 2.590, 2.700, 2.930
10 20191001T0800, 1.840, 2.610, 1.970, 5.000, 3.890, 4.640, 2.500, 2.640, 2.850
- 速報値ではなく,確定値が格納されたファイルを取得します.
- 観測地点一覧表(気象庁)の地点記号,観測地点名をもとにしています.この表に記載されている通りに地点名を入力しないと値を取得できません (例:×三宅島,✔︎三宅島(坪田)).また,年月日によっては掲載されていても取得できない地点があります.
MIT