奇怪的 R 问题:每当我使用 "raster" 包进行 运行 任何栅格计算时,互联网都会断开连接
Weird R problem: Internet keeps disconnecting whenever I run any raster calculation using the "raster" package
我 运行 研究了 R 的“光栅”包中似乎相当独特的问题。
我不确定如何为阅读本文的人提供一个可重现的示例,但总而言之,每当我执行涉及光栅对象的计算时,整个互联网都会关闭house. 虽然我无法提供光栅图像本身,因为它们太大了,但我可以提供它们的一般描述。像这样的对象每个大约 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)
有时我会使用更大的光栅堆栈(大约 10 GB)
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 个光栅的简单堆叠操作中断开互联网连接的计算类型 运行ges:
ann.cost_hp_t_stack <- stack(ann.cost_hp_t)
(ann.cost_hp_t 是一个包含 30 个栅格的列表,这些栅格看起来像上面(以前的)描述中的单个栅格层,将被堆叠起来创建 ann.cost_hp_t_stack,类似于中的栅格堆栈上面(后面)的描述),
到如下所示的操作:
for (i in c(1:30)){
ann.cost_hp_t[[i]] <- ann.cost_t_im / ((1 + 0.05)^i)
}
其中 ann.cost_t_im 是与上述栅格图层相似的另一个栅格图层。
除了整个 router/house 的互联网中断之外,我的本地磁盘也被填满了,我必须定期重新启动 R 以释放大约 140 GB 的磁盘 space。
如果您已经读到这里,非常感谢您抽出宝贵时间。另外,如果格式混乱,请见谅。
TL;DR:当我使用 R 中的“光栅”包在千兆字节的数据上创建千兆字节时,我的互联网一直断线。
raster
包不使用您的网络进行正常计算(它仅在您使用 getData 函数时使用它来下载数据)。所以它与此直接相关。它必须与您的计算机在创建文件时所做的有关。
我能想到的就是你有一个自动将你的数据复制到云端的系统。因此,如果您创建了一堆大文件,那会降低 Internet 速度。
至于你的磁盘被填满了;那是因为您正在使用带有功能的非常大的文件,然后需要将这些文件保存到磁盘(在临时文件中)。您可以使用 calc
等其他函数来使用文件名。当然,仍然会有文件,但是你可以剪掉中间文件;如果有的话。请参阅 raster::removeTmpFiles
以在不退出 R 的情况下删除它们。
我 运行 研究了 R 的“光栅”包中似乎相当独特的问题。
我不确定如何为阅读本文的人提供一个可重现的示例,但总而言之,每当我执行涉及光栅对象的计算时,整个互联网都会关闭house. 虽然我无法提供光栅图像本身,因为它们太大了,但我可以提供它们的一般描述。像这样的对象每个大约 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)
有时我会使用更大的光栅堆栈(大约 10 GB)
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 个光栅的简单堆叠操作中断开互联网连接的计算类型 运行ges:
ann.cost_hp_t_stack <- stack(ann.cost_hp_t)
(ann.cost_hp_t 是一个包含 30 个栅格的列表,这些栅格看起来像上面(以前的)描述中的单个栅格层,将被堆叠起来创建 ann.cost_hp_t_stack,类似于中的栅格堆栈上面(后面)的描述),
到如下所示的操作:
for (i in c(1:30)){
ann.cost_hp_t[[i]] <- ann.cost_t_im / ((1 + 0.05)^i)
}
其中 ann.cost_t_im 是与上述栅格图层相似的另一个栅格图层。
除了整个 router/house 的互联网中断之外,我的本地磁盘也被填满了,我必须定期重新启动 R 以释放大约 140 GB 的磁盘 space。
如果您已经读到这里,非常感谢您抽出宝贵时间。另外,如果格式混乱,请见谅。
TL;DR:当我使用 R 中的“光栅”包在千兆字节的数据上创建千兆字节时,我的互联网一直断线。
raster
包不使用您的网络进行正常计算(它仅在您使用 getData 函数时使用它来下载数据)。所以它与此直接相关。它必须与您的计算机在创建文件时所做的有关。
我能想到的就是你有一个自动将你的数据复制到云端的系统。因此,如果您创建了一堆大文件,那会降低 Internet 速度。
至于你的磁盘被填满了;那是因为您正在使用带有功能的非常大的文件,然后需要将这些文件保存到磁盘(在临时文件中)。您可以使用 calc
等其他函数来使用文件名。当然,仍然会有文件,但是你可以剪掉中间文件;如果有的话。请参阅 raster::removeTmpFiles
以在不退出 R 的情况下删除它们。