问题标签 [terra]

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 投票
1 回答
59 浏览

r - terra::distance 仅报告到 NA 栅格像元的距离

我正在尝试使用terra::distance我会使用raster::distanceFromPoints的 . 但是,terra::distance仅报告从点到 NA 单元的距离。这是预期的结果吗?我在我的解决方法中包含了示例代码。

带点的栅格图用于距离计算

使用对角线 NA 单元格绘制或栅格并指向 50,50

terra::distance 的点图

terra::distance 栅格显示仅针对 NA 像元计算的距离

期望的输出

使用 terra::distance 获取距离值的解决方法

0 投票
1 回答
100 浏览

satellite - 用 Python 进行仿射变换

从 MATLAB 翻译我的代码我正在尝试使用 Python 3 应用仿射变换来地理配准 TERRA-ASTER 卫星图像,

使用来自四个场景角的坐标对 (src,dst) 的变换矩阵。

使用 Skimage 包中的函数

tform 与 MATLAB 中的相同,但经过转置,但翘曲会创建平面绿色图像,而不是 MATLAB 中的预期图像(请参阅下面的 WeTransfer 链接)。

有任何想法吗?根据我搜索的解决方案,数值表示低对比度或没有图像,具体取决于我使用 tform 还是 tform.inverse 和 tf.warp。

WeTransfer (50 MB) 下载图像,包括输入图像 naivasha.tif 和输出图像 naivasha_georef_python.png 和 naivasha_georef_matlab.jpg。

0 投票
1 回答
37 浏览

r - 为什么我不能在 terra::rast 中添加日期作为标题?

我正在慢慢过渡到terra::rastfrom raster,我注意到我无法在我的标题中添加日期。我想出了一个解决方法(重新分配给角色),但我想知道为什么它在工作时不起作用raster?错误消息信息量不大。

这是一个例子:

此代码在执行以下操作时有效:

想法?

0 投票
0 回答
53 浏览

r - 从 Rcpp 访问栅格/terra 对象的值

有没有办法从 Rcpp 中读取栅格或 terra 对象的像元值?目前我将对象转换为向量并通过单元格(或行/列)访问:

RCPP:

回复:

我知道我可以通过fastizeizeRcpp::S4中的方式访问基本信息(例如 ncol、xmin、..) 。但是直接从 Rcpp 中读取值会很棒,因为转换为向量的 RAM 非常昂贵,甚至可能很大。任何帮助/指导都会很棒!

0 投票
1 回答
50 浏览

r - 如何在 terra 或 raster 中执行邻域分析并保持输入的相同 NA 单元格?

我想在 R 中执行邻域分析以平滑我拥有的图层,但保持输入栅格的所有 NA 不变。

但是,例如,当我执行以下操作时,计算会在 NA 值上“传播”——在我的情况下,这是一种不受欢迎的行为。

在此处输入图像描述

更新: 按照下面@dww 提出的建议,我可以使用terra::mask. 那么,解决这个问题的方法是:

在此处输入图像描述

是否有另一种方法可以避免将值传播到 NA 单元格内focal
(这里是计算平均值的方形滤波器的一个简单示例,但我正在搜索对所有类型的滤波器都有用的东西,例如由 定义的任何矩阵terra::focalMat()
在定义权重矩阵时我应该处理这个问题吗?

0 投票
1 回答
31 浏览

r - 在 terra SpatRaster 中命名分类级别时,如何防止添加额外的级别?

我有一个分类栅格,它有 21 个类别:

我想为每个分类级别命名。但是,当我这样做时,似乎添加了一个额外的级别,因此现在有 22 个级别。列表开头有一个额外的“NA”级别。

我该如何防止这种情况发生?

lc_code额外的问题:检查变量是否landcover_classes_cavmVec确实与原始 1:21lc_2003级别中的等效数字匹配的好策略是什么?我不知道如何验证这段代码是否符合我的要求。

0 投票
0 回答
28 浏览

r - 处理具有 1.6*10^9 值的大型光栅文件

我正在使用 1.6*10^9 单元格的栅格文件。文件可以在这里下载https://nextcloud.eatlas.org.au/s/YPSmYfDXNcHWNxQ/download/GBR_NESP-TWQ-5.4_JCU_Predicted-seagrass-probability_20201203.zip

类:SpatRaster 尺寸:46035、36147、1(nrow、ncol、nlyr)分辨率:0.0003、0.0003(x、y)范围:142.51、153.35、-24.497、-10.687(xmin、xmax、ymin、ymax)坐标。参考。: lon/lat WGS 84 (EPSG:4326) 来源: seagrass_probability.tif 名称: seagrass_probability 最小值: 0 最大值: 1

我正在尝试减小此文件的大小,以便可以使用它执行不同的操作,例如转换为矩阵、data.frame 或执行光栅代数。我已经尝试过这里提到的所有方法从巨大的光栅文件中删除 NA 值

但这需要很长时间,而且即使我有 32Gb 的内存,我也会用完内存。

唯一的解决方案是将这个光栅分割成更小的对象还是我必须简单地读取它的一个子集?我没想到 300mb 的 .tiff 文件会有这么大的问题。事实上,在移除 NA 之后,对象可能更易于管理,但即使达到这一点也需要中间步骤。

0 投票
1 回答
117 浏览

r - terra 包的初始化功能产生致命错误

我正在使用 terra 包中的初始化函数在 RStudio 中创建栅格。根据文档,此功能应该适用于大型栅格,但是当我尝试为所有单元格创建一个具有单个值的 10,000 x 10,000 栅格时,我在 RStudio 中遇到了一个致命错误。

使用示例代码按预期工作

但是,当我将尺寸增加到 10k x 10k 时,会发生致命错误。

在我的 Macbook Pro 上观察活动监视器显示,当 RStudio 进程超过 80GB 的 RAM 运行代码时,内存压力会达到峰值。我的计算机上有 16GB 的 RAM,所以我认为问题可能与某些内存问题有关?

我不确定该功能是否未按预期工作,或者问题是否出在 RStudio 上。还是我做错了什么?

任何帮助将不胜感激。

我的规格:
操作系统:Monterey 12.0.1
芯片:Apple M1 Pro。
R 版本:4.1.2 (2021-11-01)
RStudio 版本:2021.9.1.372 《鬼兰花》

编辑:

大地版本:1.4.22

我在@FKneip 的链接中尝试了 rhijmans 推荐的两种解决方案,但都导致了与以前相同的致命错误。

0 投票
0 回答
38 浏览

python - 从 netcdf 到栅格 (tif) 的转换会改变分辨率和范围?

我正在尝试将 netcdf 文件转换为光栅 (tif) 格式。我创建了一个脚本,不久前它运行良好。但是现在,当我尝试对不同的文件使用相同的简单脚本时,分辨率会0.5 x 0.50.5 x 0.5263158. 范围也从:

我也尝试过在 R 中使用不同的光栅包,但它们返回一条消息说单元格不等间距。文件(附在此处)可能是一个很好的问题,但我看不出在哪里以及如何。

复制代码:

完整的结果是:

0 投票
2 回答
70 浏览

r - 如何创建包含栅格数据的数据框,由 shapefile 分隔?

我参加了一个统计类,我们在其中使用全球温度栅格数据,然后使用 shapefile 选择特定国家所需的数据。我们学习了很多有趣的步骤来处理数据,但我从来没有学会如何“只是”创建一个数据框,其中列出了每个国家的温度数据。

这是我正在使用的栅格数据:temp92_without_gasflares.tif (请注意,它非常大。这是另一个非常相似的包含光数据的格式化数据集,如果你想看看这个,它要小得多)

这些是我们一直在使用的shapefile 。

我像这样导入数据:

现在我想创建一个数据框,其中包含 1992 年每个国家/地区的平均温度,如下所示:

老实说,我真的不知道从哪里开始或为此谷歌搜索什么。这有点容易实现还是更复杂?