How to get daily temperatures of past 30 years for a given location from NOAA online database

조회 수: 7 (최근 30일)
Hi all and Merry Christmas.
I want to download average daily temperatures of the past 30 years for a given location from NOAA database. I am given a base URL as below:
and also I received a token from NOAA website that I need to use that to access the data. According to the NOAA instructions, assigned token is required to use these queries and must be in the header. Can anyone tell me how to set the token in the header? This is the first time I want to do that.(please visit the below link for further infirmation)
  댓글 수: 5
the cyclist
the cyclist 2023년 1월 20일
This problem was already solved, but I wanted to add some info I stumbled across later. I learned about a site/utility that will convert curl commands to MATLAB (and many other languages).
For clarity, I am talking about cURL, the library and unix command line tool for transferring data over a network -- not the mathematical curl operator.

댓글을 달려면 로그인하십시오.

채택된 답변

the cyclist
the cyclist 2022년 12월 26일
Here is how you can do this using webread:
myToken = 'PUT_YOUR_TOKEN_BETWEEN_THESE_QUOTES';
myURL = 'https://www.ncei.noaa.gov/cdo-web/api/v2/locations/FIPS:37';
opt = weboptions('KeyName','token','KeyValue',myToken);
data = webread(myURL,opt);
  댓글 수: 15
Behrooz Daneshian
Behrooz Daneshian 2022년 12월 27일
I can run it .Thank you very much for taking time on my questions. I learned a lot from you.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

the cyclist
the cyclist 2022년 12월 26일
편집: the cyclist 2022년 12월 26일
Here is an example that worked for me (using my own token, of course).
It uses MATLAB's system function to call the system's curl function.
myToken = 'PUT_YOUR_TOKEN_BETWEEN_THESE_QUOTES';
myURL = 'https://www.ncei.noaa.gov/cdo-web/api/v2/locations/FIPS:37';
cmdString = ['curl -H ''token:',myToken,''' ''',myURL,''''];
[status, curlOutput] = system(cmdString)
The trickiest part is actually constructing the string to send out to the system, because the string itself has quotes in it. There is probably a more elegant way, or even a MATLAB function that will do this more directly, but I know this solution works.
  댓글 수: 7
the cyclist
the cyclist 2022년 12월 26일
편집: the cyclist 2022년 12월 26일
@Image Analyst, "curl" is unix utility for pulling URL info. (Some web searching suggests that it is, in fact, shipped with Windows. But, I can't really help there.) Given the error that @Behrooz Daneshian reported directly from the command line, I'm guessing we're not going to get that to work via MATLAB.
I agree that webread or websave is promising. Probably one just needs to figure out how to send the token along with the URL. I tried a couple simple Name-Value input combinations, but did not get it to work (yet).
the cyclist
the cyclist 2022년 12월 26일
Just after I posted the above comment, I figured out (well, found out) how to do this. See my other answer.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Weather and Atmospheric Science에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by