问题标签 [r-stars]

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 回答
55 浏览

r - 是否可以在 R 中创建一个星星对象,它是其他两个星星对象的最小值?

我有两个作为 tif 读入 R 的星星对象:

它们覆盖相同的范围并具有相同的分辨率。我知道我可以用对象做代数——例如,要创建一个新对象,它是前两个值的平均值,我可以使用:

但是,我想知道是否可以创建一个从它们中提取最小值的新对象。我已经尝试了几种不同的方法,但我已经用这个碰到了一堵砖墙。有人知道这是否可能吗?

0 投票
0 回答
46 浏览

r - 操纵星星物体

我的问题是关于转换“星”类对象。作为时空克里金法的结果,我有一个星星对象,如下所示:

更准确地说,我想做的是将 sfc 维度“拆分”为“x”和“y”坐标。我以一种非常复杂的方式成功地做到了这一点,包括(1)构建四个数据框(每次一个),(2)通过

(3) 使用代码将 4 星对象组装成列表 (4)

用于重新组装具有三个维度的星星对象:

我可以与 ggplot() 一起使用:

这是非常复杂且不优雅的,我相信有一种更直接的方法可以从包含 (x,y) 坐标的 sfc_POINT 对象中获取二维“x”和“y”。

谢谢,罗伯托

0 投票
1 回答
255 浏览

r - 克里格中的“CRS 对象有注释,在输出中丢失”

我正在尝试使用 CRS("+init=epsg:4326") 来获取具有纬度、经度的水质数据集。

在此处输入图像描述

- 这就是 GGT 数据集的样子

在此处输入图像描述 - 这里似乎工作正常

然后当我运行下面的代码块时它显示错误

有很长的错误行

proj4string(obj) 中的警告消息:
“CRS 对象有注释,在输出中丢失”proj4string(obj) 中的警告消息:
“CRS 对象有注释,在输出中丢失”proj4string(obj) 中的警告消息:

0 投票
2 回答
363 浏览

r - 我应该怎么做才能响应这个警告?“请注意,rgdal 将于 2023 年底退役”

当我加载 rgdal 包时,我一直注意到这条消息:

“请注意,rgdal 将于 2023 年底退役,计划在您方便的时候尽早使用 GDAL 和 PROJ 过渡到 sf/stars/terra 功能。”

我不知道这是什么意思。这是否意味着有些 sf/stars/terra 函数使用 rgdal 而其他函数不使用?或者这是否意味着 sf/stars/terra 根本不使用 rgdal,我应该使用这些包而不是其他依赖 rgdal 的包?

哪些常见的依赖 rgdal 的软件包会受到影响?

0 投票
0 回答
17 浏览

r-stars - 带有值的星对象缺少图层

如果我尝试使用stars::包从内存中加载 tif 文件,则此对象中没有包含这些值的层。

这是我正在寻找的一个例子:

具有 2 个维度和 1 个属性的星星对象

属性):

分钟。第一曲。中位数平均第三曲。最大限度。

第 1 层 15.75 40.5 41.5 65.25 90

方面):

从到偏移 delta refsys 点值 x/y

x 1 10 -180 36 +proj=longlat +datum=WGS8... NA NULL [x]

y 1 10 90 -18 +proj=longlat +datum=WGS8... NA NULL [y]

在 r_stars 中有一个包含所有值的“层”。但是,如果我使用函数从内存中加载 tif 文件,read_stars()则输出如下所示:

r_stars <- read_stars("data/dem/dem/1.tif")

r_stars

1 个文件中具有 1 个属性的 stars_proxy 对象:

$1.tif

[1] "[...]/1.tif"

方面):

从到偏移 delta refsys 点值 x/y

x 1 14400 95 0.000277778 WGS 84 FALSE NULL [x]

y 1 9360 29.6001 -0.000277778 WGS 84 FALSE NULL [y]

缺少“层”。我实际上对如何使用来自星星对象的值一无所知。是否有需要在read_stars()-function 中指定的参数?

最好的问候,斯滕

0 投票
1 回答
134 浏览

r - 如何使用 R 中另一个星星对象的范围从一个星星对象中提取值?

我对在 R 中使用 stars 包很陌生,我无法弄清楚如何创建一个包含来自对象 A 的值但对象 B 的范围的 stars 对象 C。具体来说,我有一张平均弹簧图欧洲的温度(对象 A),我想使用包含落叶阔叶林(对象 B)的单独星星对象来裁剪它。

对象 A:https ://i.stack.imgur.com/DQsZn.jpg

对象 B:https ://i.stack.imgur.com/6dons.jpg

两个对象都使用相同的 bbox 进行裁剪。目标是生成的对象(对象 C)具有 B 的范围,但具有来自 A 的温度值。

tif 文件的 Dropbox 链接:

对象 A:https ://www.dropbox.com/s/lwvdxnis7k38e18/CRU.SpringT.2009.2018_EU.tif?dl=0

对象 B:https ://www.dropbox.com/s/uybxk40z853mu7a/EU%20Dec%20Broadleaf.tif?dl=0

0 投票
0 回答
66 浏览

r - 带有裁剪栅格的R中星星栅格的边缘检测

我有一个名为raster. 我正在尝试对其进行边缘检测,例如:

这很好用,但是当我尝试other_object使用 sf 对象裁剪光栅时:

由于 NA,我收到错误。有什么方法可以创建裁剪栅格,以使边缘检测方法不会由于图像中缺少区域而引发错误?

0 投票
0 回答
89 浏览

r - st_contour - 应该使用 aes 创建映射

我知道“应该使用 aes 创建映射”位已经完成,所以我希望这是一个足够不寻常的案例,因为我试图找出它发生的原因并提出不足。

根据这个线程stars,我可以使用ggplot. 我正在尝试将相同的对象绘制为轮廓。有问题的数据文件是All_Rasters_Scaled.ascggmapgeom_stars

工作正常。Edzer 告诉我st_contour返回一个sf带有轮廓的对象,你必须将它传递geom_sf. 所以:

错误:mapping必须由aes()

我的印象是,在使用对象时不应该看到这个错误sf,实际上这在某种程度上是sf生态系统的重点,因为geometry存在该列。该对象可能以某种方式被错误地创建并且具有所有 NA:

xmin ymin xmax ymax

呐呐呐呐呐

但是,如果我在没有指定任何参数的情况下创建它:

bbox 输出是一样的。对象中的轮廓最小值/最大值也奇怪地重叠。无论我创建的方式如何mycontour,我都会遇到同样的aes错误。尝试指定 aes:

坐标系已经存在。添加新的坐标系,它将替换现有的坐标系。FUN(X[[i]], ...) 中的错误:找不到对象“lon”

或者

警告:忽略未知的美学:x 坐标系已经存在。添加新的坐标系,它将替换现有的坐标系。FUN(X[[i]], ...) 中的错误:找不到对象“纬度”

基本上看起来ggmap/ggplot框架不理解mycontour, 创建者geom_contour是一个sf对象,并且它的aes映射是geometry列。

任何建议都非常感谢。我不确定是否存在geom_contour无法正确创建对象的潜在问题,因此所有值都是NA,并且我不知道如何从对象中提取geometry数据。sf

mymap对象的代码ggmap是:

但是sf对象通常可以在空白处正常工作ggplot()+

提前致谢!

编辑:添加更多细节:

“sf” “data.frame”

为 1 个特征设置的几何图形

几何类型:MULTIPOLYGON

尺寸:XY

边界框: xmin: NA ymin: NA xmax: NA ymax: NA

大地 CRS:WGS 84

多多边形((((NA NA,NA NA,NA NA,NA NA,NA ...

更多编辑:

工作正常,创建:

栅格数据

xmin ymin xmax ymax

-79.28970 25.68331 -79.21143 25.78939

即看起来也不错。

All_Rasters_Scaled.asc 36270 -none- numeric

包括或不包括在内不x=应该st_contour()(并且,经过测试,不会)有所作为。我知道这是不必要的,但我喜欢这样做有两个原因:

  1. 明确表达很少会受到伤害,尤其是在共享代码和教他人时。

  2. 使用 RStudio 的代码完成宏,您可以在函数中点击选项卡,它会为您提供可供选择的参数列表。我尝试按顺序使用它们。此外,如果您明确使用x(或任何默认的第一个参数),那么宏将停止为您提供该参数选项。虽然所有次要语义:)

lemons.ras$All_Rasters_Scaled.asc是一个矩阵数组,大小为 155x234,值范围从 0 到 1(它已被缩放,因此得名)。所以从概念上讲,mycontourfrom中的任何值都不st_contour应该是NA.

st_contour的参数na.rm是默认的,因此我觉得无论如何TRUE都应该删除这些s。NA

我越来越觉得有问题st_contour...

根据getGDALVersionInfo()有“GDAL 3.2.2,于 2021/03/05 发布”

@lovelery 的测试代码:

工作正常:

示例代码

l使用它创建st_contour(x, contour_lines = TRUE, ...)多线串特征而不是多面特征。如果我对 执行相同操作lemons.ras,则结果mycontour具有所有 NA 值,这可能与问题有关。l

l

mycontour

我的轮廓

创建它们的文件是st_contour: x:

X

lemons.ras(注意这里值,从 0 到 1):

柠檬.ras

差异:

  • x$L7_ETMs.tif值是整数。但是将值放大lemons.ras为整数,mycontour仍然失败。

  • x$L7_ETMs.tif是 3 维 [50 x 50 x 2],lemons.ras$All_Rasters_Scales.asc是 2 维 [155 x 234]。但是代码可以使用plot(l[1])plot(l)所以额外的带/尺寸应该无关紧要,对吧?!

编辑:如果我从 , 中删除1:2x = read_stars效果plot(l)相同。但是:x 现在是类型:列表 [50 x 50 x 6]。之前是 [50 x 50 x 2]。好的,这是因为输入文件 ,L7_ETMs.tif是 [349 x 352 x 6] 并且索引将其read_stars(tif)[, 1:50, 1:50, 1:2]限制为 2 个波段。

st_dimensions(x)给出:

x 暗淡

st_dimensions(lemons.ras)给出:

柠檬.ras 暗淡

所以这可能是问题的根源。即使lemons.rasplot已作为栅格导入并读入stars,但它似乎缺少band属性,老实说,这些属性看起来并没有添加太多东西,但也许st_contour代码期望它们存在并且没有他们。

实际上看 st_dimensions 的直接输出可能更有启发性:对于 x:

x 更暗

对于柠檬.ras:

莱姆变暗了

相比xlemons.rasNA offsetdeltapointxNULL values,所以我猜x/y几何数据x在 中band,而对于lemons.ras它在values 中。LAWD 栅格数据令人困惑。

再次阅读星星介绍,看起来拆分和合并属性band首先需要存在。所以这个问题看起来越来越多地是由于lemons.ras输入栅格没有band维度。

该文件是使用以下内容创建的:

我不知道选择是否ascii意味着没有乐队信息?我对此表示怀疑?在代码前面创建原始栅格后,它具有以下属性:

类:光栅层

尺寸:3270、3245、10611150(nrow、ncol、ncell)

分辨率:50, 50 (x, y)

范围:594830.7、757080.7、2763971、2927471(xmin、xmax、ymin、ymax)

crs : +proj=utm +zone=17 +datum=WGS84 +units=m +no_defs

来源:记忆

名称:层

值:1、1(最小值、最大值)

在创建此文件期间,看起来band或未layer使用参数。这必然是一个单层/波段栅格,显然输出足够成功,可以在遇到这个问题之前经历多轮处理、编辑、连接、应用等。在创建栅格后使用setValues. 上面有“名称:层”条目。

今天早上的中间结论:

我的输入栅格没有波段属性,只是一个普通/平面栅格,这对于简单的绘图来说很好,但显然不是星星所期望的丰富格式。然而,stars 将使用此文件并将其转换为(弱)stars 对象,但随后它将在 st_contour 中失败,可能是由于缺少乐队。

0 投票
1 回答
40 浏览

r - R 包中缺少“拆分”功能

stars尝试使用split函数拆分stars栅格对象时,我遇到了包问题。我使用的是stars0.5-4 版本(要求安装时会自动安装stars)。根据包文档,应该有一个用于拆分对象的函数split(实际上,它可能是通用 R 函数的方法)。但是,当我尝试使用它时,我的 R 说命名空间中没有这样的功能。该功能真的缺失并且文档错误吗?或者这可能是由命名空间的其他问题引起的?splitstarsstars

但是当我输入

splitstars. 有人可以解释一下吗?

提前致谢!

编辑:现在可以了,不知道是什么问题。

0 投票
1 回答
91 浏览

r - 为什么我可以绘制我的 stars_proxy 对象但不能写出来

我是明星新手,所以希望这是一个简单的答案,只是我无法正确理解明星工作流程。
R 版本:4.1.1
星星版本:0.5-5

然后我从我的环境中清除对象并重新启动 R 会话。

尝试写出文件会导致以下错误:

如果我不是写出文件,而是绘制栅格,它就可以正常工作/按预期工作。也许问题只是我未能理解这个答案也适用于我: How to reassign cell/pixel values in R stars objects