我有一个数据帧与Lat Lon mean_wind和wind_dir 在每个网格单元.我试图用背景和风向上的平均风作为每个网格单元格上的箭头制作空间图.
我试过跟踪样本数据框架 wind.dt
win.plt<- ggplot(wind.dt,aes(x=Lon,y=Lat))+
#Mean wind plot : OK
geom_tile(aes(fill=mean_wind),alpha=1)+
geom_tile(aes(color=mean_wind), fill=NA) +
scale_fill_gradientn(colours=(brewer.pal(9,rev("RdYlGn"))))+
scale_color_gradientn(colours=(brewer.pal(9,rev("RdYlGn"))),guide=F)
#Wind Direction : doesnot work
geom_segment(arrow = arrow(),aes(yend = Lon + wind_dir, xend = Lat + wind_dir))
win.plt
wind.dt<-structure(list(Lon = c(170.25, 171, 171.75, 172.5, 173.25, 174,
174.75, 175.5, 176.25, 177, 177.75, 178.5, 179.25, 180, 180.75,
181.5, 182.25, 183, 183.75, 184.5, 185.25, 186, 186.75, 187.5,
188.25, 189, 189.75, 190.5, 191.25, 192, 192.75, 193.5, 194.25,
170.25, 171, 171.75, 172.5, 173.25, …Run Code Online (Sandbox Code Playgroud) abline我如何使用斜率和截距将的长度限制在 1985 年到 1990 年之间。我知道geom_segment,但它不需要斜率和截距。这是我的数据和脚本
> dput(df)
structure(list(year = c(1979, 1980, 1981, 1982, 1983, 1984, 1985,
1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998), value = c(7.33, 10.32, 11.65, 6.19, 8.3, 9.24, 8.13,
9.94, 10.85, 11.37, 7.17, 9.18, 11.24, 11.38, 8.32, 9.29, 7.48,
8.63, 10.17, 8.94)), .Names = c("year", "value"), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
脚本
plt <- ggplot(df, aes(year, value)) +
geom_line() +
geom_abline(aes(slope = 0.00225, intercept …Run Code Online (Sandbox Code Playgroud) 如何根据给定示例中的以下条件重新分类(子集)栅格r1(与 具有相同的维度和范围r2)r2。
状况:
r2是>0.5,保留对应值和相邻的2个网格细胞旁0.5的值(即,具有值缓冲网格单元>0.5中r2,以在所有方向上环绕两个栅格)中r1并改变其它值为0。IE。我如何更改网格单元格的值,r1以便它给出对应于>0.5值网格单元格的值及其缓冲(环绕)中每个方向的两个网格单元格r2。
如果我只需要获取网格单元,>0.5我可以通过以下代码轻松获得,但是,我还想提取该>0.5值以及 2 个周围网格单元的值。
示例计算代码是:
set.seed(150)
r1 <- raster(ncol=10, nrow=5) #Create rasters
values(r1) = round(runif(ncell(r1),5,25))
r2 <- raster(ncol=10, nrow=5)
values(r2) = round(runif(ncell(r2),0.1,1))
selfun <- function(x,y) {
ifelse( x >0.5, y,0)
} # It works only for >0.5 gridcells, i need this gridcells and its adjacent
#two gridcells in each direction. …Run Code Online (Sandbox Code Playgroud)