필자는 합리적으로 고화질의 글로벌지도 래스터를 가지고 있으며 파일로 플롯하려고하지만 해상도를 유지하지 못하는 것 같습니다. 제한된 영역을 그려 보는 것은 효과가 있지만, 내가 사용한 어떤 방법이든지 상관없이 항상 전체 해상도가 줄어 들었습니다. 내가 여기서 뭔가를 놓치고 있니? 이 문제가 발생하기 전에 고해상도 래스터를 출력하는 경우가 많지만이 경우 원인을 확인할 수 없습니다. 설명하려면 :파일로 출력 할 때 래스터 플롯의 해상도가 낮습니다.
require(raster)
require(rworldmap)
data(countriesCoarse); worldmap = countriesCoarse
[email protected] = data.frame(x = rep(1,length(worldmap))) # uniform vector
x_res = 3600; y_res = 1800
r0 <- raster(extent (-180,180,-90,90), ncol=x_res, nrow=y_res, crs=crs(worldmap))
rastermap <- rasterize(worldmap, r0, 'x') # ~ 2 mins
# small-area plot confirms raster's data resolution is ok
plot(rastermap, col='grey', xlim=c(-10,5), ylim=c(49,60), asp=T, axes=F, box=F, legend=F)
# the resolution is maintained for limited-area plot to file
png('plot0.png', width=x_res, height=y_res)
plot(rastermap, col='grey', axes=F, box=F, legend=F, xlim=c(-10,5), ylim=c(49,60), asp=T)
dev.off(); browseURL('plot0.png')
# but outputting global plots loses resolution..
par(mai=c(0,0,0,0))
png('plot1.png', width=x_res, height=y_res)
plot(rastermap, col='grey', axes=F, box=F, legend=F)
dev.off(); browseURL('plot1.png')
png('plot2.png', width=x_res, height=y_res)
image(rastermap, col='grey')
dev.off(); browseURL('plot2.png')
pdf('plot3.pdf', width=24, height=12)
plot(rastermap, col='grey', axes=F, box=F, legend=F)
dev.off(); browseURL('plot3.pdf')
require(Cairo)
CairoPNG('plot4.pdf', width=x_res, height=y_res)
plot(rastermap, col='grey', axes=F, box=F, legend=F)
dev.off(); browseURL('plot4.pdf')
이 출력 플롯은 일반적으로 파일 (동일한 해상도 출력을) 나올 방법은 다음과 같습니다
NB :
빠른
또는
는 그래픽 장치는 래스터 화를 수행하는 것이다. 누구든지 고해상도 래스터를 얻는 더 빠른 방법을 알고 있다면 도움이 될 것입니다. – geotheory