R:如何在保持图像分辨率的同时从R导出栅格图层中的图像?

时间:2018-06-20 16:39:44

标签: r image resolution raster projection

我一直试图将绘制后的兰伯特保形圆锥投影(分辨率为1000 m x 1000 m)投影的地理栅格图层作为图像文件(例如* .eps)导出它具有一些重叠点(足够直接),但是在导出后打开图像时,很明显它的分辨率比上述分辨率差。

我一直在使用24个生物气候层,这些层可从https://sites.ualberta.ca/~ahamann/data/climatewna.html下载。这是其中一个图层(另存为* .tif)及其分辨率的示例:

enter image description here以下是我正在运行的脚本的相关部分:

> projection <- raster("prediction.grd")
> projection

class       : RasterLayer 
dimensions  : 3132, 2359, 7388388  (nrow, ncol, ncell)
resolution  : 1000, 1000  (x, y)
extent      : -3594000, -1235000, 4703000, 7835000  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=49 +lat_2=77 +lat_0=0 +lon_0=-95 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
data source : C:\Users\User\Documents\Project\prediction.grd 
names       : layer 
values      : 7.006775e-12, 0.001495079  (min, max)

> plot(projection, col = colorPalette(14, "jc"), colNA = 'black', axes = FALSE); 
> points(train_locality_points, col='white', pch=15, cex=0.2)

在运行此代码之后,我将导出通过R Studio的“导出”下拉菜单生成的图,以将其另存为具有可在R之外查看的扩展名的图像,而不是文件。原始扩展名或类似名称。我可以打开保存的图像,但显然质量与上述图层分辨率不同。

下面的图像是我以上述方式保存的图像。为了说明我遇到的麻烦,温哥华岛(即,南岛上聚集了许多白点的大岛)的长度约为500公里,如果分辨率为1公里,则应对应于图像中的约500个像素栅格图层的距离为1公里。在这张图片中,岛的长度用那个数字的五分之一表示(...是的,我算过)。

enter image description here

任何有关如何解决此问题的帮助,我将不胜感激。感谢您抽出宝贵的时间阅读并考虑这个问题。

1 个答案:

答案 0 :(得分:1)

要获得与RasterLayer r具有相同分辨率的图像,您可以

png('file.png', height=nrow(r), width=ncol(r)) 
plot(r, maxpixels=ncell(r))
dev.off()