如何从 1 个具有不同范围和分辨率的栅格中减去 3 个栅格

2024-01-18

我有 4 个具有不同分辨率和范围的栅格。谁能帮助我如何从栅格(d1)中减去3个栅格(a,b,c)以获得名为“e”的新输出栅格

就像 e= d1-a-b-c。 `

d1
class      : RasterLayer 
dimensions : 180, 360, 64800  (nrow, ncol, ncell)
resolution : 1, 1  (x, y)
extent     : -1.110223e-16, 360, -90, 90  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
source     : memory
names      : Liquid_Water_Equivalent_Thickness 
values     : -249.2061, 806.3248  (min, max)

> a
class      : RasterLayer 
dimensions : 39, 46, 1794  (nrow, ncol, ncell)
resolution : 0.826087, 1.153846  (x, y)
extent     : 48, 86, 6, 51  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +ellps=WGS84 +datum=WGS84 +towgs84=0,0,0 
source     : memory
names      : layer 
values     : 0, 0.4987984  (min, max)

> b
class      : RasterLayer 
dimensions : 39, 46, 1794  (nrow, ncol, ncell)
resolution : 0.826087, 1.153846  (x, y)
extent     : 48, 86, 6, 51  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +ellps=WGS84 +datum=WGS84 +towgs84=0,0,0 
source     : memory
names      : layer 
values     : 0, 555.5283  (min, max)

> c
class      : RasterLayer 
band       : 1  (of  4  bands)
dimensions : 46, 39, 1794  (nrow, ncol, ncell)
resolution : 1, 1  (x, y)
extent     : 47.5, 86.5, 5.5, 51.5  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
source     : D:/GLDAS Data/2002_GLDAS/GLDAS_NOAH10_M.A200201.001.grb.SUB.nc4 
names      : Average.layer.1.soil.moisture 
z-value    : 2 
zvar       : SoilMoist 
level      : 1

`


为了实现这一点,您需要确保每个栅格的范围和分辨率相同,下面是我的代码,它生成示例栅格并通过它们进行处理以使它们具有相同的范围和分辨率。这是带注释的代码:

#### ----- Making Sample rasters ----- ####
e1 <- extent(-1.110223e-16, 360, -90, 90)
d1 <- raster(e1)
res(d1) <- 1
d1[] <- runif(64800, min = 0, max = 1)
#plot(d1)

e2 <- extent(48, 86, 6, 51)
a <- raster(e2)
res(a) <- c(0.826087, 1.153846)
a[] <- rnorm(1794, 5, 1)
#plot(a)

e3 <- extent(48, 86, 6, 51)
b <- raster(e3)
res(b) <- c(0.826087, 1.153846)
b[] <- rnorm(1794, 12, 1)

e3 <- extent(47.5, 86.5, 5.5, 51.5)
c <- raster(e3)
res(c) <- 1
c[] <- rnorm(1794, 12, 1)

crs(d1) = crs("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
crs(a) = crs("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
crs(b) = crs("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
crs(c) = crs("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
#### ----- Making Sample rasters ----- ####


##### Cropping all rasters to the lowest extent #####
ex <- intersect(intersect(intersect(extent(a), extent(b)), extent(c)), extent(d1))

d1_crop = crop(d1, ex)
a_crop = crop(a, ex)
b_crop = crop(b, ex)
c_crop = crop(c, ex)
##### Cropping all rasters to the lowest extent #####


##### Reprojecting the rasters to make them the same resolution, making them the same as d1's resolution #####
a_res = projectRaster(a_crop, d1_crop)
b_res = projectRaster(b_crop, d1_crop)
c_res = projectRaster(c_crop, d1_crop)
##### Reprojecting the rasters to make them the same resolution, making them the same as d1's resolution #####

##### Doing your calculations after the resolution and extents are the same.
e = d1_crop-a_res-b_res-c_res
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 1 个具有不同范围和分辨率的栅格中减去 3 个栅格 的相关文章

  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • R 更改小数位且不四舍五入

    gt signif 1 89 digits 2 1 1 9 我想要1 8 这有点笨拙 但它会起作用并保持所有数字 x lt 1 829380 trunc dec lt function x n floor x 10 n 10 n Resul
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • 带 R 的多彩标题

    我想添加颜色某些词在我的图表标题中 我已经能够在这里找到一些先例 http blog revolutionanalytics com 2009 01 multicolor text in r html 具体来说 我希望用撇号括起来的文本 在
  • 表单提交时出现 rvest 错误

    我想从以下网页中抓取数据 https swgoh gg u zozo collection 180 emperor palpatine https swgoh gg u zozo collection 180 emperor palpati
  • 使用 dplyr::filter 的整洁方式是什么?

    使用下面的函数调用foo c b 输出以内联方式显示 正确的写作方式是什么df gt filter x gt x 我已经包含了一个使用的示例mutate以整洁的风格与之对比filter foo lt function variables x
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • GGPLOT2:如何在 ggplot() 脚本中绘制特定选择

    这是一个名为的大型数据集的峰值P 其中有 10 个优惠 CS 有不同的商店 SHP 具有多个数值 数据集列出了按周排序的它们 WK 2 tm 52 它创建一个大文件 仅前 6 行出现峰值 WK MND CS SHP RevCY RevLY
  • 为什么 \K 似乎消耗了基本 R 的 gsub 中的一个字符

    这是一个示例字符串 bcadefgh 我希望我能匹配除了 cad 具有以下模式 wa w K w 如果我想替换所有不是的东西 cad 我可以用gsub 像这样gsub wa w K w bcadefgh perl TRUE 但是这输出 ca
  • 如何修改秤包生成的标签?

    所以我正在制作金字塔可视化 我在用着scale y continuous labels scales label number si accuracy 0 1 来生产标签 但是 我想去掉图表女性部分的负号 我认为保留 SI 后缀但删除负号的
  • 在多行中打印带有列名称的 R 数据框

    我有一个带有长列名称的 R 数据框 所以当我打印数据框时它太宽了 有没有一种简单的方法可以将数据框打印到屏幕上 并且列名出现在多行中 我知道我可以缩短名字 但我不想这样做 当奥斯卡的答案被接受时 我想这可能真的是一个答案 不幸的是 这只是复
  • 如何关闭 RStudio 中的突出显示环绕行为?

    我已经搜索过这个问题 很可能我只是想不出正确的搜索词 所以如果这个问题已经被问到并得到回答 我深表歉意 我还检查了 RStudio 选项 在 RStudio 中 如果突出显示某个单词 然后键入单引号 双引号或括号 它会将该单词包含在该字符中
  • R - Quantstart:多种股票的测试策略

    我正在使用一些指标构建基本交易策略 我的问题是我希望它在多个股票上运行 而不必指定我想要测试的每个单独的股票 目前我可以使用向量一次获取多个符号 如下所示 Get Shares from Yahoo Finance Stocks lt AS
  • R中将矩阵拆分为子矩阵的函数

    我有一个 16 行 12 列的矩阵 M 我想将其拆分为 16 个矩阵的数组 每个矩阵有 4 行 3 列 我可以通过以下方式手动完成 M matrix sample 0 127 16 12 replace TRUE c 16 12 ma1 M
  • ggplot2 可视化/显示中的地图错误?

    正如您在下面看到的 我使用 ggplots 制作的地图上存在一个奇怪的显示问题 任何投影似乎都会发生同样的问题 这是代码 仅包maps and ggplot2需要 mapWorld lt borders world colour gray5
  • 使用函数参数作为 R 中新数据框的名称

    这很简单 但我已经搜索并未能找到这个小问题的解决方案 我想使用函数的参数作为新数据框的名称 例如 assign dataset lt function dataname x lt c 1 2 3 y lt c 3 4 5 dataname

随机推荐

  • 计算 JMS 队列中的消息数

    检查 JMS 队列并获取其中所有消息的最佳方法是什么 如何统计队列中消息的数量 Thanks 使用 JmsTemplate public int getMessageCount String messageSelector return j
  • HasColumnType 和 Database generated 的正确用法是什么

    我正在将大约 80 个实体的大量 EF 模型从 EF4 迁移到 EF6 并且还将其从 Designer EDMX 生成数据库更改为 Code First 数据库 现在 我正在使用 EF Fluent api 配置实体关系 但我不确定是否正确
  • 更新后pgadmin无法登录

    刚刚将 pgadmin4 更新到版本 4 8 现在它不接受 ssh 隧道密码进入服务器 我收到以下错误消息 Failed to decrypt the SSH tunnel password Error utf 8 codec can t
  • 了解 QEMU 的好来源是什么?

    您会推荐什么书或网站来了解 QEMU 我想查看一些使用示例以及如何使用 API 最佳资源 主要 QEMU 使用文档 http wiki qemu org Manual Qemu 手册页 http manpages ubuntu com ma
  • 为什么用方法返回指针会使调试模式下的测试失败?

    当我在发布模式下启动以下测试时 它们都通过了 但在调试模式下它们都失败了 TestFixture public unsafe class WrapperTests Test public void should correctly set
  • ASP.net 是用户角色

    我无法弄清楚如何快速找出角色中的用户名是 否吗 我已经做到了 Roles FindUsersInRole Admin usersName 但我有点卡住了 有什么简单的方法吗 以下返回 true 或 false 具体取决于指定用户是否属于指定
  • 如何批量重命名路径下的文件新的不同名称?

    我有一个文件 destination txt 其中包含有关我的 CD 的路径信息 C Users NekhayenkoO Desktop LOG Dateien CD Imaging SME99 ISO C Users Nekhayenko
  • 将 R 中的数字四舍五入到指定的位数

    我在 R 中对数字进行四舍五入时遇到问题 我有以下数据 我想将它们四舍五入到 8 位小数 structure c 9 50863385275955e 05 4 05702267762077e 06 2 78921491976249e 05
  • 插入具有相同唯一 ID 的多行

    我使用一个查询插入多行 显然 ID 列会自动递增每一行 我想创建另一个 ID 列 并使查询期间插入的所有行的 ID 保持不变 因此 如果我在一个查询期间插入 10 行 我希望所有 10 行的 id 为 1 如何才能做到这一点 谢谢你的帮助
  • 在maven中,如何将非java src文件包含在输出jar中的同一位置?

    我收到了一个源代码包 在 src 目录树内有一些属性文件 properties 我想将它们保留在输出 jar 中的同一位置 例如 我想要 src main java com mycompany utils Myclass java src
  • 使用 javascript 创建动态 div

  • 表达式树不能包含使用可选参数的调用或调用

    表达式树可能不包含使用以下内容的调用或调用 可选参数 return this RedirectToAction
  • 应用程序的音频无法通过扬声器播放

    我的应用程序中有一个奇怪的错误 我正在使用 AVAudioPlayer 来播放声音 它的多个实例 声音通过耳机完美地工作 但是在没有耳机的情况下使用该应用程序不会从扬声器发出声音 所有音频剪辑均采用 AAC 编码 我尝试通过 Objecti
  • 使用 XMLHttpRequest 生成 RGB 图像的主色

    读者须知 这是一个很长的问题 但需要背景知识才能理解所提出的问题 The 色彩量化技术 https en wikipedia org wiki Color quantization通常用于获取主色图像的 进行颜色量化的著名库之一是莱普托尼卡
  • 为什么只有部分 C++ 模板实例导出到共享库中?

    我有一个 C 动态库 在 macOS 上 它有一个模板化函数 其中包含一些在公共 API 中导出的显式实例化 客户端代码只能看到模板声明 他们不知道其中发生了什么 并且依赖于这些实例化在链接时可用 由于某种原因 只有其中一些显式实例化在动态
  • 使用 ggplot2 为不同的行重新分级添加图例

    我想添加一个图例来告诉使用哪种颜色代表哪条线ggplot2 我的代码如下 require lme4 require ggplot2 m1 lt lmer Reaction 1 I Days 1 Days Subject data sleep
  • 在 Compojure 中组合路线

    我在 Clojure 中使用 Compojure 开发了两个不同的 Web 应用程序 每个都使用 defroutes 来创建其处理程序 如何将 defroutes 的两种不同定义合并为一个 defroute 我想将第一个应用程序的路由重用到
  • MongoDB:applyOps:管理员无权执行命令

    非常美好的一天 我在 mongodb 中有一个用户 如下所示 该用户具有超级用户权限 我使用以下命令确认了角色设置show users命令 id admin mongoadmin user mongoadmin db admin roles
  • 验证 Netsuite 中的内联编辑

    我需要在 NetSuite 中验证内联编辑 我已经有一个客户端脚本 在正常编辑记录时效果很好 我尝试在保存之前的功能上添加一个用户事件脚本来验证记录 但似乎内联编辑会忽略这一点 以前有人遇到过这个吗 您可以提供的任何见解都会有所帮助 谢谢
  • 如何从 1 个具有不同范围和分辨率的栅格中减去 3 个栅格

    我有 4 个具有不同分辨率和范围的栅格 谁能帮助我如何从栅格 d1 中减去3个栅格 a b c 以获得名为 e 的新输出栅格 就像 e d1 a b c d1 class RasterLayer dimensions 180 360 648