问题标签 [r-raster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
784 浏览

r - R比较土地利用的栅格

我正在使用 raster 包来显示已转换为 ASCII 文件的纺织品。

使用 ggplot2 显示地图我没有问题。我拥有的地图包含一个 506 * 608 的网格。每个网格单元都有一个与之关联的值。这是地图中包含的唯一信息,以及 x 和 y 坐标。

我在 R 中使用以下代码显示了地图:

我的地图中的每个网格单元值对应于我在基于代理的模拟中模拟的多个代理在该位置的移动量(范围从 0 到 20,000)。总之,我想知道agent在地图上移动了哪些地方,哪些区域使用频率最高,所以grid cell的值越高,agent使用的越多。

我有许多地图,每个地图都具有完全相同的坐标系,但在每个栅格地图中具有不同的代理移动分布(以及网格单元值),我想比较每个地图以显示代理移动在统计上是否不同地图。

这可能吗?

谢谢

0 投票
1 回答
4525 浏览

r - 包 'classInt' 不可用(对于 R 版本 3.1.0)

我试图安装raster给我非零退出状态的包,因为classInt没有安装。

我最近在 Ubuntu 上更新和升级了所有 R 包和 R-core(到 3.1)。

现在,如果我尝试classInt从 CRAN 存储库安装软件包,或者即使手动安装(下载 tar.gz 并设置存储库),我会收到以下错误代码:

关于如何调试的任何想法?

整个错误输出以完成帖子:

这里是会话信息:

和选项()

0 投票
0 回答
406 浏览

r - 并行分类栅格

我想使用模型nb.mdl和栅格堆栈对 R 中的某些栅格进行分类,inStk但存在集群错误:

clus.classif 中的错误(inStk,nb.mdl,“test.tif”):集群错误

关于它来自哪里的任何想法?

0 投票
1 回答
2000 浏览

r - 使用 NA 值在 R 中聚合栅格

我在 R 中有一个 1 公里分辨率的栅格,其 NA 值遍及各处,但位置不规则(即具有数据的单元格不连续,并且 NA 值分散在各处)。我正在尝试使用用户定义的用于平均圆角的函数(如下所示)以 5 公里分辨率(因子 = 5)聚合此栅格(使用 {raster} 包中的 aggregate() 命令)。截至目前,除非栅格具有连续的 5x5 像元区域,否则我无法弄清楚如何让 aggregate() (或我的函数,如果这是问题所在)提供结果值。换句话说,如果聚合窗口命中一个 5x5 的单元格区域,其中只有 5 个具有数据值的单元格(20 个 NA 单元格),我仍然希望它返回这 2 个单元格的平均值。我尝试修改函数和 aggregate() 命令的 na.action 选项,但没有成功。

抱歉没有工作示例,但不确定如何在 R 中生成类似的示例栅格图层。

这是我的循环平均函数:

这是我正在使用的聚合代码(其中“角度”是一个 1 公里的栅格,NA 值分散在各处):

但这会返回一个栅格图层,其值仅在 5x5 窗口的每个像元都包含一个值的聚合位置处。

0 投票
3 回答
640 浏览

r - 如何在 R 中每 50 列对大 data.table 进行子集化并查找字符行的模式

我有一个包含 18050 列的 data.table,我需要每 50 列对我的表进行子集化,并找到包含字符的“myrowname”的模态结果。我现在做的是:

这当然可行,但我想知道是否有更快速的方法(可能更快)来对 data.table 进行子集化。

编辑一些示例数据,仅包含将要被子集化的行,请告诉我这是否足够:

0 投票
1 回答
804 浏览

r - 使用 SpatialPolygonDataFrame 裁剪 RasterLayer

我有一个栅格网格,我想根据包“maptools”的数据提供的世界地图的陆地边界进行裁剪。通过进行一些研究,我发现我必须使用该crop()功能,然后使用该mask()功能,但我收到一条错误消息。

这是我的代码:

0 投票
1 回答
1381 浏览

r - 将栅格中的值检索到具有不同范围和分辨率的另一个栅格中

我有一个气候值的栅格层“w_wgs”。另一方面,我创建了一个空的栅格“网格”。我想将存储在“w_wgs”中的值分配到我的空栅格网格中。我尝试了 merge()、overlay()、over(),但这些都不起作用。

我怎样才能做到这一点 ?假设这两个栅格没有相同的范围和分辨率(显然也不相同数量的单元格)......但两者都具有相同的 CRS(WGS84)。

在这里,我的 2 个对象的描述:

0 投票
1 回答
1405 浏览

r - 使用随机森林模型提高预测新数据的速度

我正在使用随机森林生成物种分布模型。这些模型试图根据各种环境属性预测一个物种发生的概率。对于大多数物种,我们的初始潜在预测变量集介于 10 到 25 个之间,每个预测变量都由一个包含 460,000,000 个像元的 GIS 栅格文件表示。由于训练数据的性质,我不会在这里详细介绍,我实际上是在基于数据子集构建多个 RF 模型(大约 10 到 100+),然后结合起来为每个物种创建我的整体模型. 实际上构建模型需要的时间相对较短(通常几分钟或更短),但使用 predict 函数基于此模型生成预测概率的栅格层可能需要 20 多个小时。

提供更多细节...一旦我有了训练有素的模型,我将通过 raster 包创建代表预测器层的层的栅格堆栈,然后使用 predict() 函数中的预测到该堆栈光栅包。我有一个相当强大的桌面(Core i7,3.5GHz,w/32 GB RAM),输入和输出光栅文件在本地硬盘上,而不是通过网络移动。我在这里看到了 mbq 的回答,其中提供了有关使用 randomForest 加速模型生成的有用建议,并且正在寻找类似的建议来加速预测操作。我能想到一些可能的事情帮助(例如,种植较少数量的树,使用其中一个库进行并行处理),我计划在时间允许的情况下测试这些,但我不清楚如果问题主要是这些是否会产生重大影响读写瓶颈。我将不胜感激任何建议。

0 投票
1 回答
832 浏览

r - 尝试使用 R 将大型 csv 文件转换为栅格图层的内存问题

我有一个地理栅格地图的大型 CSV 文件表示 - 42011 列 x 18510 行,磁盘上大约 10GB。该文件是使用 FFT 函数作为卷积的输出创建的,该函数涉及将原始栅格分成六个条带,处理每个条带,并使用重叠相加方法将结果矩阵附加到 csv 文件中。

我现在正在尝试使用 R 包raster将结果写回光栅文件类型(例如 ESRI bil、GeoTIFF 等) 。CSV 文件中的每个数字都映射到栅格的等效像元。

在 R 中执行此操作的明显方法是:

但是,我的电脑在尝试创建矩阵的阶段内存不足:

计算机运行 64 位 R 和 16GB RAM。

到目前为止我尝试过的事情包括:

  • bigmemory - 这看起来很有希望,因为 raster 函数可以将 big.matrix 作为输入,但该包目前不适用于 Windows。

  • ff - 到目前为止我还没有完全掌握这个包的功能,但目前我看不到从 data.table 到 ff 对象的方法,我不确定是否会有方法从那个到栅格层。

  • 稀疏矩阵(使用包“Matrix”) - CSV 可能超过 50% 0。但是,我目前无法找到一种方法从磁盘将其作为稀疏矩阵读取,或者将其从 data.table 获取到稀疏矩阵中。我不知道我是否能够到达光栅。

我最熟悉 R,但也有 Python 的工作知识和访问 ArcGIS。我不确定这个问题是在这里还是在 gis.stackexchange 上更好,但这似乎主要是一个编程问题。任何建议都感激不尽!

0 投票
1 回答
2736 浏览

r - 将 Raster 对象转换为 Shapefile

基本上,我有一个带有一堆线条的 spLines 对象,在我对其进行光栅化之后 -rast2 <- rasterize(spLines, rast, fun='count')为了获得网格频率图。但是,我想将该rast2 Object转换并保存到Shapefile中。那可能吗?

提前致谢!