奇怪的 R 问题:每当我使用 "raster" 包运行任何栅格计算时,互联网都会断开连接



我在R上遇到了一个似乎相当独特的问题"光栅";包裹

我不知道如何为阅读本文的人提供一个可复制的例子,但长话短说,每当我进行涉及光栅对象的计算时,整个房子的互联网都会关闭虽然我不能提供光栅图像本身,因为它们太大了,但我可以提供它们的一般描述。像这样的对象每个大约有1 GB。

class      : RasterLayer 
dimensions : 15336, 19016, 291629376  (nrow, ncol, ncell)
resolution : 30.85642, 30.85642  (x, y)
extent     : 610995.9, 1197762, 9526801, 10000015  (xmin, xmax, ymin, ymax)
crs        : +proj=utm +zone=52 +south +datum=WGS84 +units=m +no_defs  +ellps=WGS84 +towgs84=0,0,0
source     : C:/Users/tug74077/AppData/Local/Temp/RtmpcVf7pt/raster/r_tmp_2020-07-21_082952_22832_46671.grd
names      : layer 
values     : 6378.035, 2016403  (min, max)

有时我使用光栅堆栈,它要大得多(大约10GB(

class      : RasterStack 
dimensions : 15336, 19016, 291629376, 30  (nrow, ncol, ncell, nlayers)
resolution : 30.85642, 30.85642  (x, y)
extent     : 610995.9, 1197762, 9526801, 10000015  (xmin, xmax, ymin, ymax)
crs        : +proj=utm +zone=52 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
names      : ap_hp_stack.1, ap_hp_stack.2, ap_hp_stack.3, ap_hp_stack.4, ap_hp_stack.5, ap_hp_stack.6, ap_hp_stack.7, ap_hp_stack.8, ap_hp_stack.9, ap_hp_stack.10, ap_hp_stack.11, ap_hp_stack.12, ap_hp_stack.13, ap_hp_stack.14, ap_hp_stack.15, ... 
min values :     426.50653,     403.31589,     381.38617,    360.64886,     341.03912,     322.49561,     304.96039,     288.37863,     272.69846,      257.87088,      243.84953,      230.59058,      218.05255,      206.19627,      194.98465, ... 
max values :     134839.22,     127507.53,     120574.50,    114018.44,     107818.85,     101956.36,      96412.63,      91170.34,      86213.09,       81525.38,       77092.55,       72900.77,       68936.89,       65188.55,       61644.02, ...

断开互联网连接的计算类型包括30个光栅的简单堆叠操作:

ann.cost_hp_t_stack <- stack(ann.cost_hp_t)

(ann.cost_hp_t是上面(前一个(描述中看起来像单个光栅层的30个光栅的列表,这些光栅将被堆叠以创建ann.cost_hp_tstack,其类似于上面(后一个(中的光栅堆叠(,

到一个看起来像这样的操作:

for (i in c(1:30)){
ann.cost_hp_t[[i]] <- ann.cost_t_im / ((1 + 0.05)^i)
}

其中ann.cost_ im是类似于上述光栅层的另一光栅层。

除了整个路由器/房子的互联网被切断外,我的本地磁盘也被填满了,我必须定期重新启动R以释放大约140 GB的磁盘空间。

如果你读到这里,非常感谢你抽出时间。此外,如果格式令人困惑,也很抱歉。

TL;DR:当我使用";光栅";以R封装,以创建一个又一个千兆字节的数据。

raster包不使用您的网络进行正常计算(它只用于在使用getData函数时下载数据(。因此,它与此直接相关。它必须与您的计算机在创建文件时所做的操作相关。

我所能想到的就是你有一个系统,可以自动将你的数据复制到云端。因此,如果你创建了一堆大文件,就会减慢互联网的速度。

至于磁盘的填充;这是因为您使用的是非常大的文件和函数,然后需要将这些文件保存到磁盘(在临时文件中(。您可以使用calc等其他函数来使用文件名。当然,仍然会有文件,但你可以删掉中间文件;如果有的话。参见raster::removeTmpFiles,了解在不退出R 的情况下移除它们

相关内容

最新更新