问题标签 [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 回答
141 浏览

r - 来自概率密度函数的 R 焦点权重

我正在尝试构建一个空间网格(“窗口”),其中包含来自预定义概率的权重。密度函数。目前有一个光栅包函数被调用focalWeight(),但唯一的选项是“圆形”、“高斯”或“矩形”。例如,我想使用 Cauchy 分布创建一个。关于如何做到这一点的任何建议?

0 投票
2 回答
177 浏览

r - 使用存储在对象中的公式进行栅格函数叠加

我已经为一个问题苦苦挣扎了几个小时,目前我很难找到解决方法。

我想使用包的overlay功能raster。此函数根据特定函数(例如数学函数)将多个栅格(或堆栈的栅格层)组合成一个新栅格。

这是一个实际的例子:

在此处输入图像描述

与叠加组合后生成的栅格

因此,在上面的示例中,我们的栅格有两个名为variable1和的变量variable2,我们将公式variable1 + variable2应用于它们。

问题

我正在尝试在一个函数中使用覆盖,其中我有:

  • 输入栅格堆栈(层数是可变的,以及层的名称)。一个典型的例子是env上面的堆栈。
  • 公式(公式始终基于输入栅格堆栈的图层名称编写)。典型的例子是variable1 + variable2variable1 * variable2 + 3 * variable1

我的(不成功的)尝试

我能够使用以前作为字符串存储在对象中的公式:

这行得通;但是,您可以注意到我仍然必须指定variable1variable2作为参数。我无法弄清楚如何在 fun 中自动提供图层名称作为参数。

我试过了:

但这些显然不起作用。我已经eval(parse())在函数中使用了糟糕的过程,我想找到一个不需要我编写eval(parse())包含整个overlay.

任何见解将不胜感激;)

0 投票
1 回答
367 浏览

r - R:具有相同名称和 :: 的两个函数不起作用

我正在尝试使用raster包的as.raster函数,但是grDevices包中已经有一个同名的函数。因此,我使用 :: 运算符来区分两者,但它似乎不起作用。有人可以解释我要去哪里错了吗?下面的最小工作示例:

输出:

此错误消息适用于函数的grDevices版本。

0 投票
1 回答
385 浏览

python - 为什么 R scale{raster} 函数给出的输出与在 PythonWin 中缩放相同的栅格不同?

我已经使用 R 和 PythonWin 在空间上应用统计模型。我在两个程序中创建了相同的预测栅格,并且输出不同(不是疯狂不同,而是不同)。我想知道两个预测栅格之间的差异是否可能是由于缩放问题(我必须缩放栅格中的值,因为我缩放了我正在应用的模型中的变量)?

我有 23546 列 x 9157 行、30 x 30 像元大小和浮动像素类型的大型栅格文件。如果我使用 scale{raster} 缩放 R 中的栅格值,则输出的平均值为 7.9e-17 和 stdev 1。

如果我通过减去平均值并除以标准偏差来缩放同一栅格的值,我会得到相同的输出。没有惊喜。

如果我在 PythonWin 中对同一栅格使用 arcpy.GetRasterProperties 执行此操作,则会得到不同的输出。

我也许应该指出,所有输出的最小值和最大值都是相同的。

为什么在使用(据我所知)相同的缩放值方法时,R 与 PythonWin 的输出方式不同?提前感谢您对此事的任何想法。

0 投票
0 回答
963 浏览

r - 预测栅格多项式 gbm

目前,似乎无法将多项式预测为光栅砖gbm模型预测为光栅砖。但是请注意,对于相对较小的栅格网格,有一种简单的方法可以解决这个问题 - 这将在下面解释。但是,当您处理大型栅格、许多类(在我的例子中是植被群落)和预测变量时,这里的过程非常缓慢并且并非没有挑战。我希望下面的信息可能对遇到同样挑战的任何人有用。

下面我尝试使用多项 gbm 模型和 20 个预测变量来预测 36 个植被群落的发生概率。我的研究区域是一个具有 213,000,000 像素的 30x30m 栅格网格 - 但是下面的代码与我用来开发/测试该过程的 1221 个单元格的小网格有关。

我将预测变量堆叠到栅格堆栈中,如下所示:

检查 rasStack 中的名称是否与上述模型中的名称相同很重要

在运行 predict.gbm 之前,我调用了最好的迭代模型

我可以通过将网格单元转换为一组空间点(如下所示),为我的测试区域创建一组光栅输出图像,该区域有 1221 个单元。

运行 predict.gbm 模型

我可以通过以下方式将 predtable 中的出现概率值写入一组 36 个新光栅图像:

这给了我想要的输出 - 但是 - 而不是必须预测到数据帧 - 如果可以直接预测到 rasterbrick,该过程将更快,更有效。

如果我跑

输出是代表我要预测的第一个植被群落的栅格网格:

IDRISI 文件格式不支持多波段图像,因此我无法将 index=1:36 添加到混合中以生成多波段光栅砖作为输出。如果我尝试这样做 - 设置 format="GTiff" 或 "HFA"(或任何其他需要 rgdal 的格式),我会收到错误消息:

"Error in rgdal::putRasterData(x@file@transient, v, band = 1, offset = off) : 光栅 IO 失败”

但是,如果我设置格式 =“raster”,我可以获得 rasterbrick 输出,但这不会让我读/写除 idrisi 图像(predict.gbm 模型的第一个输出列)中的数据以外的任何数据


“警告消息:在 .rasterFromRasterFile(grdfile, band = band, objecttype, ...) 中:值文件的大小与单元格的数量不匹配(给定数据类型)”

如果我尝试将上面的光栅砖转换为一组单独的光栅图像

这些图像都没有任何意义。

这也有点令人费解,如果我尝试写为多波段 CDF 图像,我会收到一组不同的 rgdal 错误警告消息:

在这里,我不确定发生了什么?

如果有知识的人可以与 gbm 包的作者合作,使其可以直接预测到光栅砖,而不会遇到上述任何问题,那就太好了。

如果有人想知道我在完整栅格网格上使用的代码,请在下面发表评论,我很乐意提供。

欢呼艾伦

0 投票
1 回答
3926 浏览

r - 如何在 R-raster 中获取网格周围的等高线?

在 R 中有一个光栅,我如何在网格周围绘制一条等高线(不连接中心或其他任何东西,真正遵循网格的边界)具有某些值(或由某些掩码标识)?

下面的例子展示了如何获得值为 0.6 的区域周围的等高线:如何做同样的事情,但线条跟随网格的边界?该函数应返回要添加到绘图的对象(作为SpatialLinesDataFramefor rasterToContour),并且相邻网格应包含在一条等高线中(即,应仅绘制多边形的外边界)。我找不到解决方案rasterToPolygons(有关视觉方面的信息,请参见此处,但在这里对我没有帮助)。

在此处输入图像描述

0 投票
1 回答
198 浏览

r - 将 grid2poly 与栅格一起使用

我正在尝试从栅格中获取数据并将其推送为 KML 格式,以便获得一系列网格多边形。

查看网络上的示例,似乎要走的路是使用grid2polywith plotKML。不幸的是,我遇到了一个似乎可以解除阻止的错误。

我收到如下所示的所有行的错误coordinates(tminvals) <- ~x+y

从(函数(类,fdef,mtable)中的错误:无法找到函数'坐标<-'签名'“矩阵”'的继承方法</p>

我不明白我做错了什么。当我查看数据集时tminvals ,它的内容看起来与原始示例数据非常相似eberg_grid

0 投票
2 回答
1406 浏览

r - 沿 SpatialLine 的 R 栅格提取:将提取的值与实际距离相关联

在 R 中沿 a 提取栅格值时SpatialLine,如何将这些值与沿这条线的实际距离相关联?

假设我想沿以下行提取 R 标志的值:

标志

我可以提取值并绘制它们 - 但是如何用1:length(vals)实际距离替换 x 值(下面)(例如从线左侧的 0 开始)?

Rlogo_vals

我可以将单元格的提取与此处xyFromCell建议的提取单元格的坐标结合起来,但我不清楚如何走得更远。

0 投票
1 回答
3314 浏览

r - R:使用包“rgdal”和“raster”裁剪GeoTiff Raster

我想使用提到的两个包“rgdal”和“raster”来裁剪 GeoTiff 光栅文件。一切正常,除了生成的输出 tif 的质量非常差并且是灰度而不是彩色。原始数据是来自瑞士联邦地形办公室的高质量栅格地图,示例文件可在此处下载。

这是我的代码:

为了重现此示例,请下载示例数据并将其解压缩到文件夹“c:/files/”。奇怪的是,使用样本数据,裁剪图像的质量还可以,但仍然是灰度的。

我使用“数据类型”,“格式”选项进行了尝试,但没有得到任何结果。有人可以指出解决方案吗?我应该提供输入数据的更多信息吗?

编辑: Josh 的示例与示例数据2配合得非常好。不幸的是,我拥有的数据似乎更旧并且有些不同。如果您阅读以下 GDALinfo,您能告诉我我选择了什么选项:

0 投票
0 回答
121 浏览

r - R如何在未指定对象时查看标准泛型方法

我正在尝试查看 raster 包中的 writeRaster 函数:

并且 showMethods 不显示我可以在 getMethod 中使用的对象名称:

考虑到显而易见的事情,我该去哪里

* 根据@Metrics 的建议编辑: