在R中提取单点OPeNDAP数据遇格式问题:如何转为时间序列数据框?
问题:使用opendap.catalog批量下载单点NDVI数据时返回glue对象而非数值数据
需求
我需要在R中自动化下载单点位置的植被指数(NDVI)数据,以便批量处理多个点位,选用opendap.catalog包进行数据子集化下载。
执行代码
library(opendap.catalog) library(sf) lat <- 42.443962 lon <- -76.501884 city <- data.frame(Lat = lat, Lon = lon) sf <- st_as_sf(x = city, coords = c("Lon", "Lat"), crs = "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0") bbox <- st_buffer(sf, 10) # 因为单点下载失败,所以围绕点位创建了一个小边界框 nc <- dap(URL = "https://www.ncei.noaa.gov/thredds/dodsC/ncFC/cdr/ndvi-fc/AVHRR_and_VIIRS_NDVI:_aggregation_best.ncd", AOI = bbox, startDate = "2011-01-01", endDate = "2020-12-31", varname = "NDVI", verbose = T)
正常运行输出
source: https://www.ncei.noaa.gov/thredds/dodsC/ncFC/cdr/ndvi-fc/AVH... varname(s): > NDVI [1] (NOAA Climate Data Record of Normalized Difference Vegetation Index) ================================================== diminsions: 1, 1, 3653 (names: longitude,latitude,time) resolution: 0.05, 0.05, 1 days extent: -76.53, -76.53, 42.43, 42.43 (xmin, xmax, ymin, ymax) crs: +proj=longlat +a=6378137 +f=0.00335281066474748 +p... time: 2011-01-01 to 2020-12-31 ================================================== values: 3,653 (vars*X*Y*T)
问题现象
运行后返回的nc对象为类型'glue'的列表,而非预期的数值数据:
print(nc) ## $NDVI https://www.ncei.noaa.gov/thredds/dodsC/ncFC/cdr/ndvi-fc/AVHRR_and_VIIRS_NDVI:_aggregation_best.ncd?NDVI[10957:1:14609][951:1:951][2069:1:2069]
仅下载少量日期时能得到NDVI数值列表。
最终目标
将NDVI结果转换为包含时间列的数据框,用于后续绘图。
内容的提问来源于stack exchange,提问作者TJ Samojedny
相关产品推荐
相关产品推荐

