使用边界框坐标从 netcdf 文件中提取数据?

Extracting data using bounding box coordinates from netcdf files?

提问人:Dasr 提问时间:10/24/2023 更新时间:10/24/2023 访问量:24

问:

我是使用 netcdf 文件的新手。我已经从哥白尼接口下载了与SST(海面温度)相关的netcdf文件(https://cds.climate.copernicus.eu/cdsapp#!/dataset/satellite-sea-surface-temperature?tab=overview)

基本上,数据在一个压缩文件夹中提供,其中包含我感兴趣的每一天的一个 .nc 文件(我要求提供一系列日期)。

数据分辨率为 .5 度,据我所知,这意味着 7200,3600 (lon,lat)。鉴于我对全球数据不感兴趣,我需要做的第一件事就是为世界特定区域每天的数据子集。我有该区域的边界框坐标(6.6173,42.8348,11.1534,44.931)lon/lat,lon/lat)。

如何对一个文件执行此操作?

到目前为止,我已经做到了:

library(netcdf4)

#(ncin is the file name for one netcdf file for one day- using one day as an example, there's a long process of setting paths etc before you get to this stage)

# extracting longitude 
lon <- ncvar_get(ncin,"lon")
# finding out how many points of longitude there are
nlon <- dim(lon)

# extracting latitude
lat <- ncvar_get(ncin,"lat")
# finding out how many points of latitude there are
nlat <- dim(lat)

# time is just 1 figure because it's just one day
time <- ncvar_get(ncin,"time")

# temparray dim are 7200 (longitude) and 3600 (latitude)
temp_array <- ncvar_get(ncin,"analysed_sst")

# closing the file as it saves a lot of resources
nc_close(ncin)

我已经尝试过,它给了我所有 lon 的索引,例如落在边界框内的索引,但后来我很挣扎,因为我得到的纬度观测值多于经度,然后我需要将其与 SST 相关联,我真的不知道该怎么做。which(lon > 6.6173 & lon < 11.1534)

总之,有没有一种简单的方法可以为我感兴趣的边界框提供坐标,并从 netcdf 文件中提取与此相关的所有数据?另外,一旦我确定了如何做到这一点,我是否需要每天循环提取,从而压缩文件夹中的每个文件,或者我可以合并所有文件(也许它们太大了?

谢谢。

R 空间 netcdf netcdf4

评论


答: 暂无答案