使用过多内存从 {raster} 包中提取

2024-02-21

我一直在使用extract函数从raster包使用 shapefile 定义的区域从光栅文件中提取数据。但是,我对该过程现在所需的内存量存在问题。我确实有大量 shapefile(~1000)。光栅文件很大(~1.6gb)

我的流程是:

shp <- mclapply(list.files(pattern="*.shp",full.names=TRUE), readShapePoly,mc.cores=6)
ndvi <- raster("NDVI.dat")
mc<- function(y) {
temp <- gUnionCascaded(y)
extract <- extract(ndvi,temp)
mean <- range(extract, na.rm=T )[1:2]
leng <- length(output)
}
output <- lapply(shp, mc)

我可以做一些改变来减少内存负载吗?我尝试加载更少的 shapefile,该文件运行了大约 5 分钟,然后内存再次激增。它是一台四核计算机 2.4GHz 和 8GB 内存


我会这样做(未经测试):

## Clearly we need these packages, and their dependencies
library(raster)
library(rgeos)
shpfiles <- list.files(pattern="*.shp",full.names=TRUE)
ndvi <- raster("NDVI.dat")
## initialize an object to store the results for each shpfile
res <- vector("list", length(shpfiles))
names(res) <- shpfiles
## loop over files
for (i in seq_along(shpfiles)) {
  ## do the union
  temp <- gUnionCascaded(shpfiles[i])
  ## extract for this shape data (and don't call it "extract")
  extracted <- extract(ndvi,temp)
  ## further processing, save result
  mean <- range(extracted, na.rm = TRUE )[1:2]
  res[[i]] <- mean  ## plus whatever else you need
}

根本不清楚上面 mc() 的返回值是什么意思,所以我忽略它。这将比您最初尝试的内存效率更高、速度更快。我怀疑这里是否值得使用并行的东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用过多内存从 {raster} 包中提取 的相关文章

  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • c# 通过内存地址调用方法

    我正在尝试在 C 中的指定内存地址调用函数 以下是我在 C 中的操作方法 typedef void do int i auto doActor do 0xAAAABEEF doActor 1 如果可能的话 如何在 C 中复制这种行为 对 C
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

    我想构建一个多页闪亮应用程序 我可以在其中控制用户可以看到哪个页面 迪安 阿塔利确实这个演示应用程序中有类似的东西 https github com daattali advanced shiny tree master multiple
  • 如何在Windows下调试Python中的访问冲突内存问题?

    您建议使用哪些工具或流程来调试 ctypes 内存问题 为什么可以打印数组的内容但无法复制它 我已将问题范围缩小到以下几行 lots of code valid data as bytes bytearray self output buf
  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • Gradle 构建错误:内存不足

    当我使用 gradle 构建时 它失败并显示以下信息 OpenJDK 64 Bit Server VM warning INFO os commit memory 0x0000000788800000 89128960 0 failed e
  • R 中按时间划分的平均值

    我每秒测量一次化合物浓度 我想求 30 秒和 60 秒的平均值 我一直在阅读这里的帖子 我尝试过lubridate and dplyr 但没有运气 我正在努力完成这项工作 但我一直没能做到 我正在从 SAS 过渡到 R 所以请耐心等待 这是
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 使用字符串中的变量名称访问变量值,R

    Intro 一个数据集有大量的age year变量 age 1990 age 1991 etc 我有一个字符串值数组length age years 表示这些变量 使得age years 1 回报 age 1990 etc Need 我想搜
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • 如何对数字进行四舍五入并使其显示零?

    R 中将数字四舍五入到小数点后 2 位的常用代码是 gt a 14 1234 gt round a digits 2 gt a gt 14 12 但是 如果该数字的前两位小数位为零 则 R 会在显示中抑制零 gt a 14 0034 gt
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • R - 计算 bin 中特定值的数量

    我有一个如下所示的数据框 df Value lt c 1 1 0 2 1 3 4 0 0 1 2 0 3 0 4 5 2 3 0 6 Sl lt c 1 20 df lt data frame Sl Value gt df Sl Value
  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t

随机推荐

  • 当引用父对象字段、属性或方法时,“base”和“this”之间有什么区别吗?

    考虑以下代码 public class Vehicle public void StartEngine Code here public class CityBus Vehicle public void MoveToLocation Lo
  • 如何将 C 数组映射到 C#?

    我的问题与尝试从 C 调用用 C 编写的函数有关 我查看了 C 库附带的头文件 以了解 C dll 中存在的函数 这是我所看到的 C 代码 对于名为 LocGetLocations 的函数 typedef enum eLocNoError
  • 正确的 Proguard 配置以保持静态内部类

    我有以下内容 public class A extends B static class C Object field1 int field2 boolean field3 I cannot通过反射得到C类 我尝试过以下方法 keep cl
  • 如何反转可变参数模板函数的参数顺序?

    我有一个模板函数 with 可变参数模板参数 像这样 template
  • 如何调试Go语言编写的程序?

    如何调试 Go 程序 我一直在使用Gedit Go IDE http gohelp wordpress com 但它没有调试功能 有没有办法单步执行我的代码并检查内存 或者我被打印语句困住了 我可以用吗输出调试字符串 http msdn m
  • 高度未知的 CSS 粘性页脚

    有没有办法使用 CSS 将页脚粘贴到浏览器屏幕的底部或内容后面 取决于哪个更长 without提前知道页脚的大小 现在 我在保存页脚和内容的容器中使用绝对定位 容器的最小高度为 100 但是如果我更改页脚 我发现我必须更改容器底部的填充以匹
  • 反序列化包含 java.lang.CharSequence 成员变量的类

    我有一个简单的类包含name类型变量java lang CharSequence class Person public java lang CharSequence name 当我尝试使用 GSON 库反序列化 JSON 字符串时 Per
  • Dashing 无法在 Heroku 上运行

    我正在尝试将 Dashing 部署到 Heroku 一切都在本地主机上完美运行 按照 github 页面提供的说明进行部署 这似乎与向后移植宝石有关 以下是heroku日志文件 2014 11 26T21 12 22 141799 00 0
  • 在python中将多个Excel文件(xlsx)附加在一起

    import pandas as pd import os import glob all data pd DataFrame for f in glob glob output test xlsx df pd read excel f a
  • d3:绘制累积图

    Does d3 https d3js org 有内置方法将数据集绘制为累积图吗 例如 如果 y 值为 2 4 2 2 我希望它们实际上被绘制为 2 6 8 10 d3 有办法做到这一点还是我必须遍历数据集并手动执行此操作 你可以检查http
  • git clone 在不同服务器上产生不同的权限

    在一台服务器上执行 git clone git github com blasto333 PHP Point Of Sale git 时 文件权限是 我显示一个文件 但所有文件都是这样 rw r r 1 chrism chrism 3297
  • 如何将参数传递给角度2中的POST方法

    我想将参数传递给 Angular 2 中的 POST 方法 但我使用时它不起作用params new httpParams set 但它没有起作用 我也尝试过params new httpParams set 和 headers然后它也不起
  • 无法查看.Net Core bitbucket pipelines 测试结果

    我终于设法通过以下命令在 bitbucket 管道中制作测试报告 dotnet test MyTests logger trx LogFileName test reports results xml 构建拆解 说 Found matchi
  • 查询优化和 API 限制

    我们正在跟踪许多客户的 Facebook 页面和帖子指标 根据开发人员见解控制台 见解 gt 开发人员 gt 活动和错误 该文档对 Graph API 的限制和限制有些不清楚 我们只是想确保我们对可用的资源有正确的理解 我们正在努力优化我们
  • 在 Windows 10 上禁用 NPM run dev 不编译资产并为用户提供错误通知

    我最近重新安装了 Windows 10 操作系统 运行时npm install command npm 安装正确 然而 在运行npm run watch命令或npm run dev命令 资产未编译 显示以下消息 通知被禁用原因 Disabl
  • LDAP:过滤多个UID

    我正在尝试为一个团队设置 mediawiki 并且希望仅对一组用户进行 LDAP 身份验证 我知道我可以提出组 LDAP 身份验证 但是有没有一种快捷方式可以仅过滤一组 uid 进行身份验证 您可以使用的 LDAP 搜索过滤器是 uid a
  • data.table:如何将字符向量传递给函数 get data.table 以将其内容视为列名?

    这是一个数据表 library data table DT lt data table airquality 这个例子产生了我想要的输出 DT New Ozone log Ozone New Wind log Wind 我怎样才能写一个函数
  • 在猫鼬中进行条件查找

    我有两个收藏 文章和书签 articles id 5faa889ade5e0a6326a873d3 name article 1 id 5faa889ade5e0a6326a873d name article 2 书签 id 5faa889
  • 在 eclipse Oxygen 中更改 PHP 语言库

    面向 PHP 开发人员的 Eclipse 版本 氧气释放 4 7 0 内部版本号 20170620 1800 我怎样才能改变PHP Language Library到 PHP 7 参见下面的屏幕 该项目源自先前的 eclipse 版本 已导
  • 使用过多内存从 {raster} 包中提取

    我一直在使用extract函数从raster包使用 shapefile 定义的区域从光栅文件中提取数据 但是 我对该过程现在所需的内存量存在问题 我确实有大量 shapefile 1000 光栅文件很大 1 6gb 我的流程是 shp lt