我正在绘制大气污染物场或气象场的地图,这些场之间的差异通常与地形叠加。我的字段是网格的。
一条白线神秘地出现,有时是两条。
这似乎有点随机发生。我的意思是:相同的代码和字段,相同的行;但是当我更改字段或色标时,它会更改位置,或者消失,或者出现另一个。有时水平,有时垂直。
这是我的代码
#!/usr/bin/env Rscript
library(rasterVis)
library(RColorBrewer)
NX <- 468
NY <- 421
hgt <- matrix(0.,NX,NY)
# read from file:
ucon <- file("hgt.dat", open="rb")
for (n in seq(1,NX)) {
hgt[n,] <- readBin(ucon, "numeric", n=NY, size=4)
}
close(ucon)
hgtbks <- c(-100,10,500,1000,1500,2000,2500,3000,3500)
hgtcols <- colorRampPalette(c("gray30","white"))(length(hgtbks)-1)
tit <- "Orography"
bkstart=50.0; bkmax=1500.; bkby=100.
bks <- seq(bkstart, bkmax, bkby)
nbks <- length(bks)
cols <- rev(colorRampPalette(brewer.pal(11,"Spectral"))(nbks-2))
cols <- c("white",cols)
legendbreaks <- seq(1,nbks)
legendlabels <- formatC(bks,digits=3)
legendlabpos <- legendbreaks
rpl <-
levelplot(hgt, margin=FALSE , col.regions= hgtcols, at= hgtbks
, main= list(label=tit, cex=1.8)
, colorkey=list(draw= TRUE, col=cols, at=legendbreaks
, labels=list(labels=legendlabels, at=legendlabpos, cex=1.2))
, xlab=NULL, ylab=NULL, scales= list(draw= FALSE))
png("whiteline.png", width=800, height=840)
plot(rpl)
graphics.off()
我真的很想用我的数据上传一个文件,但目前我找不到办法(我认为我做不到,甚至不是 ASCII 文件)。数据矩阵 (468x421) 太大,无法明确包含在代码中,但它确实是图片中显示的地形文件(平均海平面以上的海拔高度)。
这是生成的“白线”地图:
真的,我认为这可能是一个级别图错误。当 hgt 是一个矩阵和它是一个适当的光栅对象时,它似乎都会发生:这似乎没有什么区别。任何想法?