问题标签 [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.
r - 如何在 R 中使用 terra 包编写光栅分层?
terra
我想使用包逐层编写栅格。我正在使用以下代码
它给了我以下错误
错误:[writeRaster] 无法打开文件:C:/Users/nn/Desktop/lyr.1 另外:警告消息:C:/Users/nn/Desktop/lyr.1:没有这样的文件或目录(GDAL 错误 4)
我想raster
使用以下函数在包中提供相同的输出
r - 如何使用 terra 包将栅格堆栈中提取的值添加到 Spatial 对象的 data.frame?
我想使用包将光栅堆栈中提取的值添加到 Spatial 对象的terra
data.frame
正如您从输出val
文件中看到的那样,我们过去使用sp
包的参数来获得它不存在raster
。现在如何val
在提取的 data.frame 中添加字段?
r - R Terra 包错误:[area] area(x, sum=FALSE) 将被删除。使用“cellSize(x)”
我正在尝试复制以下问题的答案,但在 R Terra area 命令上出现错误:
我正在运行的确切代码如下:
打印 r 产量
我在使用 area() 命令时收到以下错误:
我已经在我的默认 R 实例上尝试过这个,并且还从头开始设置了一个干净的实例。我在两次安装中都遇到了同样的错误。两个系统都是 macOS。如果我尝试将 area 命令更改为 cellSize 命令,R 将完全退出并重新启动。
这是每个设置的 sessionInfo():
系统 2:全新安装 MacOS Big Sur
系统一:macOS Catalina
r - 为什么 terra::cellSize() 和 raster::area() 会产生不同的栅格单元面积估计值?
我刚刚注意到,terra::cellSize()
产生的细胞面积估计与raster::area()
.
首先,为什么这两种方法不能提供相同的答案?第二,哪个估计最准确?请参见下面的示例。
由reprex 包(v0.3.0)于 2021-07-08 创建
raster
在过去的几年里,我一直在使用(并且喜欢它),最近被新terra
软件包提供的速度和其他改进所震撼。我假设terra::cellSize()
(或terra::expanse()
,就此而言)提供的面积估计值比 更准确raster::area()
,但我很想在更新之前的面积估计值之前了解更多有关变化的信息。
感谢您所做的一切,https://github.com/rspatial!
r - 提高 R(terra 包和 vrt)中 150gb+ 栅格图块的区域统计计算速度
我在 R 中工作 - 我有一个分辨率为 60 厘米的栅格 (.tif) 切片目录,从 Google 地球引擎 (NAIP 2018 NDVI) 下载。(由于人类受试者对我的多边形数据的要求,我在 pc 上而不是在 Google 地球引擎中运行我的分析。)这 52 个图块的大小为 1.2-3.8GB。我也有 982 个多边形,我正在尝试从这些栅格中计算区域平均值。我的代码(如下)使用 terra 包,我没有将切片镶嵌成一个非常大的单一栅格,而是选择创建一个 VRT(虚拟栅格)文件。
我在 Xeon Gold 6134 @ 3.2GHZ 上运行此代码,并拥有 128GB 的内存。无论我将 terraOptions() 设置为什么,R 甚至都没有接近使用我的处理器或内存潜力的很大一部分。
使用此代码,所有 982 个多边形将需要 11.8 天才能运行。如果有人能指出我可能尚未尝试过的特定技巧/工具,我将不胜感激(例如,我尝试使用所有 terraOptions,我尝试了 raster 包和exact_extract 包。该exact_extract()
功能不会t 对我有用,因为我使用 SpatRaster/VRT 和sf
多边形对象作为输入 - 再次避免镶嵌非常大的奇异栅格。)
谢谢你。(我很抱歉我无法共享数据,因为它太大或与人类主题相关......)这是未循环的代码:
编辑:52 个 1.2-3.8GB 的磁贴。我最初对 150GB 总目录大小的报价不正确,因为这是 ArcGIS 中的压缩大小。
show(ras) 产生:
r - 在 R terra 提取中使用 xy=TRUE
我正在尝试提取像素质心的坐标,我的点落在该像素内。这是一个可重现的示例
我希望提取的 xy 坐标仅与原始坐标稍有偏差,但这些值似乎都混在一起了。我在我的代码中犯了错误还是有另一种获取这些值的方法?
overlay - SpatRaster 和使用 terra 包的向量之间的数学运算
我有一个关于app()
家庭功能的简单问题
我想将一个向量(n个值)除以一个栅格并得到n个结果栅格
同样想知道如何使用 SpatRasterDataset。那可能吗?
这是一个例子:
r - 裁剪和屏蔽拉斯塔数据并将其转换为矢量
我正在尝试裁剪和屏蔽栅格数据并将栅格数据转换为矢量和带有 terra 的 sf 对象。但是,我总是收到以下错误消息: UseMethod 中的错误("st_as_sf")
not applicable method for 'st_as_sf'
applied to object of class "SpatVector"
。对于克服这一障碍的任何帮助或建议,我将不胜感激。
我的代码如下所示
我正在使用 SEDAC 人口密度栅格数据(正式类 SpatRaster),我试图通过使用阿富汗形状文件 (adm_afg_sf) 将其限制为阿富汗的形状。
任何反馈都会非常受欢迎。
r - 使用 sapp() 将 terra::focal 应用于 SpatRaster 的每一层
我最近开始使用terra
并且必须赞扬开发人员,在使用 R 中的许多大型栅格时,它让我的生活变得如此轻松。但是,我偶然发现了一个小问题,我正在尝试sapp
将focal
函数应用于每一层在 SpatRater 中,focal
一次只能应用于一层。
使用小型可重现的 RasterSpat,我可以运行以下命令作为所需输出的示例:
当我sapp
使用与以下相同的语法运行上述可重现数据时sapply
:
我得到:
h(simpleError(msg,call))中的错误:在为函数“rast”选择方法时评估参数“x”时出错:未使用的参数(wopt = wopt)
如果我尝试:
我得到以下信息:
注意图层的最大值。如何调整我的代码以使 sapp 按需要工作?
我可以使用 sapply 获得所需的结果,但我认为如果我能让 sapp 工作,sapp 对于更大的数据会更有效率。
如果有人可以提供一些帮助,将不胜感激:)
r - 有没有办法使用 terra 包中的 rast 函数从带有缓冲区的栅格中提取数据?
我正在使用光栅包从光栅中提取一些坐标的值。我打算使用 1 公里的缓冲区进行提取。但是在 terra pakcage 中使用提取功能似乎是不可能的。
如果您能帮助我,将不胜感激。