【发布时间】:2018-06-20 16:39:44
【问题描述】:
我一直在尝试在绘制后将根据 Lambert Conformal Conic 投影(分辨率为 1000 m x 1000 m)投影的地理栅格图层导出为图像文件(例如,作为 *.eps)它有一些重叠的点(这很简单),但是在导出后打开图像时,很明显它的分辨率比前面提到的要低。
我一直在使用可从以下位置下载的 24 个生物气候层:https://sites.ualberta.ca/~ahamann/data/climatewna.html。以下是其中一个图层的示例(保存为 *.tif)及其分辨率:
> 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 公里。在这张图片中,岛屿的长度大约是这个数字的五分之一(......是的,我数过了)。
对于如何解决此问题的任何帮助,我将不胜感激。感谢您抽出宝贵时间阅读并考虑这个问题。
【问题讨论】:
-
你能用
png(filename="<something>", width=3132, height= 2359, units="px"); <plotting code>; dev.off()吗? -
@BenBolker:我刚刚尝试过,但最终图像的分辨率与以前相同,质量很差。我已经编辑了问题以包含我期望生成的分辨率图像(因为它是“prediction.grd”所基于的层)和我最终澄清的图像。
-
那张图片是 108x157 像素,所以看起来它不是用
png('file.png', height= 2359, width=3132); plot(projection); dev.off()创建的(请注意,Ben 的高度和宽度颠倒了)。 -
@RobertHijmans:它是按照 Ben 描述的方式生成的,但它只是最初创建的整体图像的一部分。我裁剪了它和上面的 *.tif 图像,以便可以更容易地看到具有大量沿海结构的特定区域。如果您认为这会有所帮助,我可以发布两个原件。
-
在这种情况下,要考虑的另一件事是在
plot中使用maxpixels参数。例如。plot(projection, maxpixels=ncell(projection))
标签: r image resolution raster projection