使用MATLAB从Openweathermap.org收集数据

时间:2019-03-26 16:20:24

标签: matlab url web-scraping

当前,我正在使用MATLAB从API抓取有关open.maxmap,temp.min,压力和湿度的openweathermap.org数据。我的问题是,无论我在URL中指定什么纬度和经度,URL都保持不变。这是我用于获取当前数据的API网站的链接:https://openweathermap.org/current

当前,我正在尝试一种方法,该方法是更改​​纬度和经度以匹配for循环中某个点的纬度和经度。我正在尝试将这些数据写入csv文件。写作进展顺利,我唯一的问题是,无论我如何更改URL,工作表上的数据都保持不变。

clear all
close all
% Using data from https://openweathermap.org/history
% Inputs are the latitude and longitude.

%% Add the EPA Code

match_file = 'C:\Users\tadams15\Desktop\Matching_Sites.csv';
data = xlsread(match_file);
lat = data(:,1);
lon = data(:,2);
for i = 1:length(lat)
    latv = lat(i);
    lonv = lon(i);
    url = ['https://samples.openweathermap.org/data/2.5/weather?lat=',num2str(latv),'&lon=',num2str(lonv),'&appid=b6907d289e10d714a6e88b30761fae22'];
    tempmaxtarget = 'temp_max';
    tempmintarget = 'temp_min';
    prestarget = 'pressure';
    humtarget = 'humidity';

    tempmax = urlfilter(url,tempmaxtarget);
    tempmin = urlfilter(url,tempmintarget);
    pressure = urlfilter(url,prestarget);
    humidity = urlfilter(url,humtarget);
    input = [tempmin tempmax pressure humidity];
    dlmwrite('Site_Info.csv',input,'delimiter',',','-append');
end

1 个答案:

答案 0 :(得分:1)

我不使用MATLAB,而是使用Python,所以我无法进行测试,但看来您需要修复网址。

您似乎每次都在调用示例退货:

https://samples.openweathermap.org/data/2.5/weather

也许您想要代替吗?:

api.openweathermap.org/data/2.5/weather