继续我之前的问题'create vectorplot from velocity dataset'。我还有2个问题,如何让数字看起来如下:
1)如何进行区域插值?我曾尝试使用interpolate = TRUE
,但没有用
2)如何定义具有相同长度的箭头符号(这意味着箭头仅显示速度方向)
这里我的数据uv.nc和我写的语法:
library (raster)
flname <- 'uv.nc'
u <- raster(flname, varname = 'U')
v <- raster(flname, varname = 'V')
uv <- stack(u,v)
s <- sqrt(u^2 + v^2)
library(rasterVis)
jet <- colorRampPalette(c('#00007F', 'blue', '#007FFF', 'cyan','#7FFF7F', 'yellow', '#FF7F00', 'red', '#7F0000'))
range = seq(0, 0.5, 0.05)
vectorplot(uv, isField = 'dXY', interpolate = TRUE, col.regions = jet, region=s, length=0.05)
答案 0 :(得分:2)
(第一个问题)interpolate
参数需要panel.levelplot.raster
调用levelplot
函数(由vectorplot内部使用以呈现背景)。但是,这不能直接与当前版本的rasterVis
一起使用。你可以尝试这个技巧:
levelplot(s,
panel = panel.levelplot.raster,
interpolate = TRUE,
margin = FALSE) +
vectorplot(uv, isField = 'dXY', region = FALSE)
(第二个问题)箭头的长度由您的数据决定,因为您使用的是dXY = TRUE
。因此,您应该使用修改数据来获得具有相同幅度的向量。
uv0 <- uv / s
vectorplot(uv0, isField = 'dXY', region = s)