2015-02-06 3 views
4

필자는 합리적으로 고화질의 글로벌지도 래스터를 가지고 있으며 파일로 플롯하려고하지만 해상도를 유지하지 못하는 것 같습니다. 제한된 영역을 그려 보는 것은 효과가 있지만, 내가 사용한 어떤 방법이든지 상관없이 항상 전체 해상도가 줄어 들었습니다. 내가 여기서 뭔가를 놓치고 있니? 이 문제가 발생하기 전에 고해상도 래스터를 출력하는 경우가 많지만이 경우 원인을 확인할 수 없습니다. 설명하려면 :파일로 출력 할 때 래스터 플롯의 해상도가 낮습니다.

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') 

이 출력 플롯은 일반적으로 파일 (동일한 해상도 출력을) 나올 방법은 다음과 같습니다

enter image description here

+0

NB :

plot(rastermap, col='grey', axes=F, box=F, legend=F, maxpixels= x_res * y_res) 

빠른

plot(rastermap, col='grey', axes=F, box=F, legend=F, maxpixels=1e8) 

또는

는 그래픽 장치는 래스터 화를 수행하는 것이다. 누구든지 고해상도 래스터를 얻는 더 빠른 방법을 알고 있다면 도움이 될 것입니다. – geotheory

답변

4

패키지 raster에서 제공하는 플롯 방법을 읽어 ?plot을 시도하고 찾아 maxpixels 인수에 대한 정보입니다. 그런 다음 시도해보십시오.

require(Cairo) 
CairoPNG('plot4.png', width=x_res, height=y_res) 
plot(worldmap, col = 'grey', border = 'grey') 
dev.off(); 
browseURL('plot4.png') 
+0

Thanks Edzer. 내가 고해상도를 출력 했으므로 문제가 데이터에 있어야한다는 것을 알았어야만합니다. 언제나처럼 가정 .. – geotheory