【发布时间】:2020-09-27 16:53:33
【问题描述】:
我正在尝试按月为给定位置绘制混合层深度。
数据文件:http://www.ifremer.fr/cerweb/deboyer/mld/Surface_Mixed_Layer_Depth.php 它是页面上的最后一个文件,但现在任何文件都可以使用。
remove(list=ls())
library(raster)
mld <- brick("/Users/mld_DReqDTm02_c1m_reg2.0.nc", stopIfNotEqualSpaced = FALSE, varname = "mld")
print(mld)
extent(mld) <- extent(0, 360, -90, 90)
mld[mld > 1e4] <- NA
mld180 <- rotate(mld)
names(mld180) = month.abb
pprj <- "+proj=laea +lat_0=-90 +lon_0=180 +datum=WGS84 +ellps=WGS84 +no_defs +towgs84=0, 0, 0"
这是我裁剪数据的地方,但我不确定我是否正确执行。当我需要给它宽纬度和经度时,它可以工作,但我只想给它一个坐标,南纬 61 度到南纬 65 度,东经 140 度,我得到一个错误,它不会绘图。
g4 <- rgeos::gBuffer(SpatialPoints(cbind(0, 0), proj4string = CRS(pprj)),
width = spDists(rbind(c(-140, -65), c(-140, -61)), longlat = TRUE, segments = T) * 1000,
quadsegs = 180)
target <- projectExtent(mld180, pprj)
Warning message:
In rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[, :
48 projected point(s) not finite
mld_trans <- crop(projectRaster(mld180, target, CRS(pprj)), g4)
mld_trans <- mask(mld_trans, g4)
boxplot(mld_trans,las = 1, xlab="Month", ylab="MLD (m)")
我做错了什么,如何将数据裁剪到这个位置,然后按月绘制深度?
【问题讨论】: