-2

我有一个 R 模型,可以从大约 6 个预测变量中预测一个值。我有一组与预测变量相对应的空间层,有些是栅格,有些是矢量要素类,我想通过将模型应用于每个输入栅格像元来生成预测值栅格。

(我在编程 ArcPy 和 Python 方面经验丰富,对 R 的经验较少,没有使用过 Grass)。

  1. 在 R 中,我是否应该遍历输出栅格的所有单元格,找到所有相关的预测变量值,然后调用模型并将结果写入输出栅格?还是有更有效的方法,比如使用光栅堆栈?

  2. 哪些 R 包对此有用?我应该使用草吗?

  3. 其中两个输入栅格具有相同的大小和对齐方式,而第三个栅格具有更大的像元大小。在开始循环之前,我是否需要以某种方式转换第三个栅格以匹配其他栅格?我该怎么做?

  4. 作为矢量要素类的预测层是由 python 脚本生成的,我希望从同一个 R 脚本中调用它。我可以将它们作为栅格获取(但这将是一个缓慢的过程)或:

    • 我可以将它们转换为 R 中的栅格 - 如何?
    • 我可以按原样使用它们吗?如何从矢量要素类中获取某个位置的值(对应于栅格单元的中心)?

最后,R 是最好的地方吗?还是草?还是蟒蛇?

4

1 回答 1

0

Rraster包将是您解决该问题的首选解决方案。

  1. 使用 . 将矢量转换为栅格rasterize。为此,您可以访问以下 QA 链接Shapefile to raster conversion in R?

  2. 将所有栅格转换为相同的投影和像素分辨率。访问以下网络链接https://gis.stackexchange.com/questions/154276/reprojecting-raster-from-lat-lon-to-utm-in-r

  3. 按照https://gis.stackexchange.com/questions/193158/creating-raster-stack-using-r堆叠所有栅格

  4. 在栅格堆栈上覆盖包含纬度、经度和因变量的点矢量图层并提取栅格值https://gis.stackexchange.com/questions/60527/how-to-extract-values-from-rasters-at-location -of-points-in-r

  5. 使用各自的 R 包应用任何回归模型。

  6. 使用raster::predict函数将模型应用于栅格层范围,使用栅格堆栈作为自变量,如https://gis.stackexchange.com/questions/326910/generating-prediction-raster-from-random-forest-model-using-r

于 2019-12-30T07:46:56.177 回答