[英]time and geographical subset of netcdf raster stack or raster brick using R
對於以下具有 2016 年每日全球海面溫度的 netcdf 文件,我嘗試 (i) 時間上的子集,(ii) 地理上的子集,(iii) 然后對每個像素采取長期手段並創建一個基本圖。
文件鏈接: 這里
library(raster)
library(ncdf4)
設置我的工作目錄后打開 netcdf
nc_data <- nc_open('sst.day.mean.2016.v2.nc')
更改時間變量以便於解釋
time <- ncdf4::ncvar_get(nc_data, varid="time")
head(time)
更改為我可以解釋的日期
time_d <- as.Date(time, format="%j", origin=as.Date("1800-01-01"))
現在我只想從 9 月 1 日到 10 月 15 日進行子集化,但無法弄清楚......
在時間子集之后,創建柵格磚(或堆棧)和地理子集
b <- brick('sst.day.mean.2016.v2.nc') # I would change this name to my file with time subest
地理子集
b <- crop(b, extent(144, 146, 14, 16))
最后,我想對我所有數據天的每個像素取平均值,將其分配給單個柵格,然后繪制一個簡單的圖...
感謝您的任何幫助和指導。
在b <- brick('sst.day.mean.2016.v2.nc')
,我們可以輸入b
來查看光柵磚的信息。
b
# class : RasterBrick
# dimensions : 720, 1440, 1036800, 366 (nrow, ncol, ncell, nlayers)
# resolution : 0.25, 0.25 (x, y)
# extent : 0, 360, -90, 90 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
# data source : C:\Users\basaw\Downloads\sst.day.mean.2016.v2.nc
# names : X2016.01.01, X2016.01.02, X2016.01.03, X2016.01.04, X2016.01.05, X2016.01.06, X2016.01.07, X2016.01.08, X2016.01.09, X2016.01.10, X2016.01.11, X2016.01.12, X2016.01.13, X2016.01.14, X2016.01.15, ...
# Date : 2016-01-01, 2016-12-31 (min, max)
# varname : sst
請注意, Date
槽具有從2016-01-01
到2016-12-31
,這意味着 Z 值已經具有日期信息,我們可以使用它來對柵格磚進行子集化。
我們可以使用getZ
函數來訪問存儲在 Z 值中的值。 鍵入getZ(b)
我們可以看到一系列日期。
head(getZ(b))
# [1] "2016-01-01" "2016-01-02" "2016-01-03" "2016-01-04" "2016-01-05" "2016-01-06"
class(getZ(b))
# [1] "Date"
因此,我們可以使用以下代碼對光柵磚進行子集化。
b2 <- b[[which(getZ(b) >= as.Date("2016-09-01") & getZ(b) <= as.Date("2016-10-15"))]]
然后我們可以根據您提供的代碼裁剪圖像。
b3 <- crop(b2, extent(144, 146, 14, 16))
要計算平均值,只需使用mean
函數。
b4 <- mean(b3, na.rm = TRUE)
最后,我們可以繪制平均值。
plot(b4)
不是在 R 中,而是要指出子集和平均任務很容易在 CDO 中從命令行完成:
cdo timmean -sellonlatbox,lon1,lon2,lat1,lat2 -seldate,date1,date2 in.nc out.nc
其中 lon1,lon2 等定義要切出的 lon-lat 區域,而 date1,date2 是日期范圍。
然后,您可以將生成的文件讀入 R 進行繪圖,或使用 ncview 快速查看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.