MATLAB Answers

Downloading weather files from a server

조회 수: 13(최근 30일)
I am working on a project where i need to periodically download weather forecasts from a server. I have been experimenting with the urlread() and urlwrite() functions which is easy enough. The problem is that the url for the file includes date and time of submission. So i would like to download the most recent files.
where the date and time portion changes. How can i specify a url such that i will get the most recent copy?

  댓글 수: 0

로그인 to comment.

채택된 답변

Walter Roberson
Walter Roberson 8 Jan 2012
If you urlread() on then you could pick out the most recent file.

  댓글 수: 2

alexander 9 Jan 2012
ok i have that done. It's kind of dirty but it works. I did this:
clear all
%for most recent file use last index in relev_files
Now i want to format this data into a matrix.
i was going use character location relative to the comma and then use num2str() but this does not work on the right side of the comma. How can i specify the end of a line?
I tried (ta_data(6:\n) but this does not work.
Abdul 9 Aug 2015
I have worked on this and put the data in the separate matrices
close all, clear all, clc
%%download weather forecast data from server
%for most recent file use last index in relev_files
% ta_url=['',current_files(relev_files(1:end)-21:relev_files(1:end)+20)];
%%put forecast data into vectors
C = [strsplit(ta_data, '\n')]' ;
D = char(C(2:end-1));
for I = 1:length(D)
E = strsplit(D(I,:), '-');
year(I) = str2num(char(E(1,1)));
month(I) = str2num(char(E(1,2)));
F = char(E(1,3));
G = strsplit(F, 'T');
day(I) = str2num(char(G(1,1)));
H = char(G(1,2));
J = strsplit(H, ':');
hour(I) = str2num(char(J(1,1)));
min(I) = str2num(char(J(1,2)));
K = char(J(1,3));
L = strsplit(K, 'Z');
sec(I) = str2num(char(L(1,1)));
M = char(L(1,2));
N = strsplit(M, ',');
value(I) = str2num(char(N(1,2)));
% F = strsplit(D(1,:), 'T')
[year' month' day' hour' min' sec' value']
t = datetime(year, month, day, hour, min, sec);
plot(t, value, '*')
hold on
plot(t, value, '-k', 'Linewidth', 2)
axis tight, grid minor
ylabel('Temperature (°C)')

로그인 to comment.

More Answers (0)

이 질문에 답변하려면 로그인을(를) 수행하십시오.

Translated by