【R】rnoaa

1. はじめに

rnoaaは、NOAA(National Oceanic and Atmospheric Administration)にアクセスしてデータを取得するインターフェースとなるパッケージです。

2. インストール

CRANからインストールできます。

install.packages("rnoaa")

GDALも必要なのでインストールします。

また、実際にデータを取得する際にはTokenが必要なので、こちらからあらかじめtokenを取得しておきます。

3. つかってみる

こちらに示されているように、たくさんのデータを取得できます。

まず、どこのデータが取れるかリストを出してみます。

ncdc_locs(locationcategoryid='CITY', sortfield='name', sortorder='desc', token =  "YOUR-TOKEN-KEY")
$meta
$meta$totalCount
[1] 1989

$meta$pageCount
[1] 25

$meta$offset
[1] 1


$data
      mindate    maxdate                  name datacoverage            id
1  1892-08-01 2020-11-30            Zwolle, NL       1.0000 CITY:NL000012
2  1901-01-01 2021-01-13            Zurich, SZ       1.0000 CITY:SZ000007
3  1957-07-01 2021-01-13         Zonguldak, TU       1.0000 CITY:TU000057
4  1906-01-01 2021-01-13            Zinder, NG       0.9025 CITY:NG000004
5  1973-01-01 2021-01-13        Ziguinchor, SG       1.0000 CITY:SG000004
6  1938-01-01 2021-01-13         Zhytomyra, UP       0.9723 CITY:UP000025
7  1948-03-01 2021-01-13        Zhezkazgan, KZ       0.9302 CITY:KZ000017
8  1951-01-01 2021-01-13         Zhengzhou, CH       1.0000 CITY:CH000045
9  1941-01-01 2020-11-02          Zaragoza, SP       1.0000 CITY:SP000021
10 1936-01-01 2009-06-17      Zaporiyhzhya, UP       1.0000 CITY:UP000024
11 1957-01-01 2021-01-13          Zanzibar, TZ       0.8016 CITY:TZ000019
12 1973-01-01 2021-01-13            Zanjan, IR       0.9105 CITY:IR000020
13 1893-01-01 2021-01-14     Zanesville, OH US       1.0000 CITY:US390029
14 1912-01-01 2021-01-13             Zahle, LE       0.9819 CITY:LE000004
15 1951-01-01 2021-01-13           Zahedan, IR       0.9975 CITY:IR000019
16 1860-12-01 2021-01-13            Zagreb, HR       1.0000 CITY:HR000002
17 1929-07-01 2021-01-05         Zacatecas, MX       1.0000 CITY:MX000036
18 1947-01-01 2021-01-13 Yuzhno-Sakhalinsk, RS       1.0000 CITY:RS000081
19 1893-01-01 2021-01-14           Yuma, AZ US       1.0000 CITY:US040015
20 1942-02-01 2021-01-14   Yucca Valley, CA US       1.0000 CITY:US060048
21 1885-01-01 2021-01-14      Yuba City, CA US       1.0000 CITY:US060047
22 1998-02-01 2021-01-13            Yozgat, TU       0.9993 CITY:TU000056
23 1893-01-01 2021-01-14     Youngstown, OH US       1.0000 CITY:US390028
24 1894-01-01 2021-01-14           York, PA US       1.0000 CITY:US420024
25 1869-01-01 2021-01-14        Yonkers, NY US       1.0000 CITY:US360031

attr(,"class")
[1] "ncdc_locs"

tokenを毎回入力することが面倒であれば、下記を.rprofileに記述しても良いそうです。

options(noaakey = "KEY_EMAILED_TO_YOU")

ステーションの情報を見てみます。

ncdc_stations(datasetid='GHCND', locationid='FIPS:12017', stationid='GHCND:USC00084289', token =  "YOUR-TOKEN-KEY")
$meta
NULL

$data
  elevation    mindate    maxdate latitude                  name datacoverage
1      17.7 1899-01-01 2021-01-13 28.80286 INVERNESS 3 SE, FL US            1
                 id elevationUnit longitude
1 GHCND:USC00084289        METERS -82.31266

attr(,"class")
[1] "ncdc_stations"

では、データをとってみます。

out <- ncdc(datasetid='NORMAL_DLY', stationid='GHCND:USW00014895', datatypeid='dly-tmax-normal', startdate = '2010-05-01', enddate = '2010-05-10', token =  "YOUR-TOKEN-KEY")
head(out)
> head(out)
$meta
$meta$totalCount
[1] 10

$meta$pageCount
[1] 25

$meta$offset
[1] 1


$data
# A tibble: 10 x 5
   date                datatype        station           value fl_c 
   <chr>               <chr>           <chr>             <int> <chr>
 1 2010-05-01T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   652 S    
 2 2010-05-02T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   655 S    
 3 2010-05-03T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   658 S    
 4 2010-05-04T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   661 S    
 5 2010-05-05T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   663 S    
 6 2010-05-06T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   666 S    
 7 2010-05-07T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   669 S    
 8 2010-05-08T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   672 S    
 9 2010-05-09T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   674 S    
10 2010-05-10T00:00:00 DLY-TMAX-NORMAL GHCND:USW00014895   677 S  

取得したデータをプロットしてみます。

out <- ncdc(datasetid='GHCND', stationid='GHCND:USW00014895', datatypeid='PRCP', startdate = '2010-05-01', enddate = '2010-10-31', limit=500, token =  "YOUR-TOKEN-KEY")
ncdc_plot(out, breaks="1 month", dateformat="%d/%m")

4. さいごに

いろいろな気象データを取得できるようで楽しみです。

Add a Comment

メールアドレスが公開されることはありません。