R:如何在保持图像分辨率的同时从光栅图层中导出图像?
R: How is it possible to export from R an image from a raster layer while maintaining image resolution?
我一直在尝试将根据 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 的 'export' 下拉菜单生成的绘图,将其另存为具有可查看扩展名的图像在 R 之外,而不是作为具有原始扩展名或类似内容的文件。我可以打开保存的图像,但它显然与上面所说的图层分辨率不同。
下图是我用刚才描述的方法保存的。为了说明我一直遇到的麻烦,温哥华岛(即南端聚集了许多白点的大岛)长约 500 公里,如果分辨率为 1 公里,则应对应图像中的约 500 个像素1 公里作为栅格层。在这张图片中,岛的长度大约是该数字的五分之一(...是的,我数过了)。
对于如何解决此问题的任何帮助,我将不胜感激。感谢您花时间阅读并考虑这个问题。
要获得与 RasterLayer r
分辨率相同的图像,您可以这样做
png('file.png', height=nrow(r), width=ncol(r))
plot(r, maxpixels=ncell(r))
dev.off()
我一直在尝试将根据 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 的 'export' 下拉菜单生成的绘图,将其另存为具有可查看扩展名的图像在 R 之外,而不是作为具有原始扩展名或类似内容的文件。我可以打开保存的图像,但它显然与上面所说的图层分辨率不同。
下图是我用刚才描述的方法保存的。为了说明我一直遇到的麻烦,温哥华岛(即南端聚集了许多白点的大岛)长约 500 公里,如果分辨率为 1 公里,则应对应图像中的约 500 个像素1 公里作为栅格层。在这张图片中,岛的长度大约是该数字的五分之一(...是的,我数过了)。
对于如何解决此问题的任何帮助,我将不胜感激。感谢您花时间阅读并考虑这个问题。
要获得与 RasterLayer r
分辨率相同的图像,您可以这样做
png('file.png', height=nrow(r), width=ncol(r))
plot(r, maxpixels=ncell(r))
dev.off()