Clear Filters
Clear Filters

MATLAB Interface for NOAA Data

4 views (last 30 days)
Behrooz Daneshian
Behrooz Daneshian on 27 Dec 2022
Edited: Karim on 28 Dec 2022
Hi everyone, I want to use MATLAB Interface for NOAA Data to access daily weather data acrros the states. The attached folder contains the codes for this toolbox. The code below using station function returns stations with given feature ( stations having FIPS=37). However, it only returns 25 station. what I want is to get all the stations with FIPS=37. Can anyone help me with this regard? I checked in the noaa website that for location of FIPS=37,(North Calorina) 2484 stations exist.
% read my Token
n = noaa("NpMoDLCgEVBMZTdPFQHQUOwllVQNHYjz");
% returns stations having the same locationid=FIPS:37
d = stations(n,[],"locationid","FIPS:37")

Answers (1)

Karim
Karim on 28 Dec 2022
Edited: Karim on 28 Dec 2022
Using inspiration from this answer: How to get daily temperatures of past 30 years for a given location from NOAA online database - MATLAB Answers. I was able to deduce the following demonstration. At first glance you need to use the limit parameter, however there seems to be a limit to the limit of 1000. So you also need to use the offset parameter. See below for a demonstration.
myToken = "NpMoDLCgEVBMZTdPFQHQUOwllVQNHYjz";
% start with offfset 0
myURL = "https://www.ncei.noaa.gov/cdo-web/api/v2/stations?locationid=FIPS:37" + "&limit=1000" + "&offset=0";
opt = weboptions('KeyName','token','KeyValue',myToken);
data = webread(myURL,opt);
data.results
ans = 1000×1 cell array
{1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct}
% now use offset 1000 (or whaterver value u used as previous limit) to get
% the next batch
myURL = "https://www.ncei.noaa.gov/cdo-web/api/v2/stations?locationid=FIPS:37" + "&limit=1000" + "&offset=1000";
opt = weboptions('KeyName','token','KeyValue',myToken);
data = webread(myURL,opt);
data.results
ans = 1000×1 cell array
{1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct} {1×1 struct}

Categories

Find more on Climate Science and Analysis in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!