2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【R】海面水温データOSTIAをダウンロードする

Last updated at Posted at 2020-04-27

はじめに

本記事では,Rを使って海面水温データOSTIAをダウンロードする方法を解説します.

ご注意:データをダウンロードする際は,対象サイトの規約等をご確認の上,サーバーに過剰な負荷をかけないように心がけましょう.

OSTIA

OSITA(the Operational Sea Surface Temperature and Sea Ice Analysis)は,英国気象庁が開発している全球規模の海面水温データです.同データは国内外の研究開発に利用されており,最近では風況マップ作成時における気象モデルの入力値としても採用されています.

OSTIAの概要を下表に示します.OSTIAの水平解像度は約5km(0.054°×0.054°),時間解像度は1日です.

データ 範囲 配信期間 解像度 データソース ファイル形式
OSTIA 全球 2006年〜 0.054°×0.054°,1日毎 人工衛星(AVH PF, AVH, AATSR, TMI) 及び現場水温 NetCDF

手順

ユーザ登録

OSTIAはNASAのPO.DAACでNetCDF形式のファイルで配信されています.まずはEarthdata Loginでユーザー登録をした後,PO.DAAC DriveDrive API Passwordを入手します.

図1.png

ダウンロード

Rのcurlパッケージを利用して,1日毎に収録されているファイルYYYYMMDD-UKMO-L4HRfnd-GLOB-v01-fv02-OSTIA.nc.bz2をダウンロードします.ダウンロードする際には,上記で登録したUsernameDrive API Passwordが必要となります.

download_ostia.R
# setting -------------------------------------------------------------------------------------

library(tidyverse)
library(lubridate)
library(curl)

odir     <- "." # output directory
sdate    <- "2019-01-01" # start date
edate    <- "2019-01-01" # end date

Username <- "XXXXXXX" # Username
Password <- "YYYYYYY" # Drive API Password

# function ----------------------------------------------------------------

curl_ostia <- function(url, destfile, h){
  message(str_c(" downloading: ", basename(destfile)))
  curl_download(url = url, destfile = destfile, handle = h)
}

# main --------------------------------------------------------------------

ostia_url <- "https://podaac-tools.jpl.nasa.gov/drive/files/allData/ghrsst/noaa/L4/GLOB/UKMO/OSTIA"
ostia_handle <- new_handle()

handle_setopt(handle = ostia_handle, httpauth = 1, userpwd = str_c(Username, Password, sep = ":"))

ostia_tbl <-
  tibble(cdate = seq(from = as_date(sdate), to = as_date(edate), by = "1 day")) %>% 
  mutate(
    n     = yday(x = cdate) %>% formatC(x = ., width = 3, flag = "0"),
    year  = year(x = cdate),
    file  = format(x = cdate, "%Y%m%d-UKMO-L4HRfnd-GLOB-v01-fv02-OSTIA.nc.bz2"),
    ifile = str_c(ostia_url, year, n, file, sep = "/"),
    ofile = str_c(odir, "/", basename(path = ifile))
  )

pwalk(
  .l = list(url = ostia_tbl$ifile, destfile = ostia_tbl$ofile, h = list(ostia_handle)), 
  .f = curl_ostia
  )
> source('download_ostia.R')
 downloading: 20190101-UKMO-L4HRfnd-GLOB-v01-fv02-OSTIA.nc.bz2
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?