【发布时间】:2021-12-07 09:19:14
【问题描述】:
我对在 R 中使用 stars 包很陌生,但我无法弄清楚如何创建一个 stars 对象 C,它具有来自对象 A 的值但对象 B 的范围。具体来说,我有一张地图欧洲春季平均气温(对象 A),我想使用包含落叶阔叶林存在的单独星星对象(对象 B)对其进行裁剪。
对象 A:https://i.stack.imgur.com/DQsZn.jpg
> CRU.SpringT.2009.2018_EU
stars object with 2 dimensions and 1 attribute
attribute(s):
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
CRU.SpringT.2009.2018_EU.tif -15.81895 1.201286 5.480992 4.979221 8.204463 17.55605 310479
dimension(s):
from to offset delta refsys point values x/y
x 1 1440 -10 0.0416667 WGS 84 FALSE NULL [x]
y 1 672 65 -0.0416667 WGS 84 FALSE NULL [y]
对象 B:https://i.stack.imgur.com/6dons.jpg
> Dec.BL_EU3
stars_proxy object with 1 attribute in 1 file(s):
$Consensus_reduced_class_3.tif
[1] "[...]/Consensus_reduced_class_3.tif"
dimension(s):
from to offset delta refsys point values x/y
x 20401 27600 -180 0.00833333 +proj=longlat +datum=WGS8... FALSE NULL [x]
y 3001 6360 90 -0.00833333 +proj=longlat +datum=WGS8... FALSE NULL [y]
call_list:
[[1]]
x[i = i, drop = drop, crop = crop]
attr(,".Environment")
<environment: 0x000002a17a1ecac0>
[[2]]
x[i = i, drop = drop, crop = crop]
attr(,".Environment")
<environment: 0x000002a178d61dc0>
[[3]]
e1/e2
attr(,".Environment")
<environment: 0x000002a177987b10>
两个对象都使用相同的 bbox 进行裁剪。目标是生成的对象(对象 C)具有 B 的范围,但具有 A 的温度值。
Dropbox 链接到 tif 文件:
对象 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
【问题讨论】:
-
嗨@Ben Lee。请提供
Object A和Object B的输出摘要。没有这些信息,就很难提供帮助 -
嗨@lovalery,我已经编辑了我的提交以包含输出摘要。
-
不确定我是否理解。你说
Both objects are cropped using the same bbox.所以A和B的程度相同。如果您想在对象 C 中获得 A 的温度和 B 的范围,这就像想要在 A 的范围内获得 A 的温度。在这种情况下,像这样复制 object_A 就足够了object_C <- object_AAm我错过了什么? -
@lovalery 抱歉,我可能用错误的语言描述了我想要的内容。我想要一个看起来像 B 的星星对象(也就是说,它只有存在落叶阔叶林的值),但是,显示的值不是 1,而是来自 A 的温度值。现在 B 只是存在/不存在森林,但我想要一个连续的温度值,只要存在 = 1。
-
好的。谢谢。现在对我来说更清楚了:-)。没有手头的数据并不容易,但我会尽力给你一个答案,让你尝试(至少!)让你走上正确的轨道:-)