【问题标题】:How to get date and depth from netcdf file and merge into a data frame?如何从 netcdf 文件中获取日期和深度并合并到数据框中?
【发布时间】:2020-09-15 01:13:06
【问题描述】:

我从以下位置下载了温度数据 https://www.nodc.noaa.gov/cgi-bin/OC5/woa18/woa18.pl

我在 R 中打开它。我正在尝试创建一个数据框 Temp,其中所有温度、深度和日期信息都合并到一个数据框中。

我可以在单个时间点 depth_Temp <- data.frame(Temp_Jan@z) 上执行此操作,在那里我可以通过深度获取温度

是否可以从一月到五月获取深度和日期并将它们合并在一起?

 library(raster)
 library(ncdf4)

 Temp_Jan <- brick("woa18_decav_t01_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)
 Temp_Feb <- brick("woa18_decav_t02_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)
 Temp_Mar <- brick("woa18_decav_t03_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)
 Temp_Apr <- brick("woa18_decav_t04_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)
 Temp_May <- brick("woa18_decav_t05_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)


 depth_Temp <- data.frame(Temp_Jan@z)

 Temp <- rbind(Temp_Jan, Temp_Feb, Temp_Mar, Temp_Apr, Temp_May)

我还单独导入每个文件Temp_Jan &lt;- brick("woa18_decav_t01_01.nc", stopIfNotEqualSpaced = FALSE, varname = "t_an", lvar=4)。是否可以使用一行代码导入所有文件,或者单独执行它们是否更安全/更容易?

【问题讨论】:

    标签: raster r-raster ncdf4


    【解决方案1】:

    你应该可以使用 tidync 轻松解决这个问题:

    df <- tidync::tidync("woa18_decav_t01_01.nc") %>% 
      tidync::hyper_tibble()
    

    【讨论】:

    • 谢谢。这确实打开了一个数据框,有趣的是,时间只是整个数据框的一个值(373.5)。我不擅长 ncdf 文件。如果它说time Size:1 standard_name: time long_name: time units: months since 1955-01-01 00:00:00 axis: T climatology: climatology_bounds 是否意味着它只是一月份整个月份的一个值?那么文件中没有时间组件?
    • 你应该只有一次,因为 WOA 只是一个平均值,而不是单个月份的值
    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2013-06-28
    • 2018-02-08
    • 2021-12-10
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多