writeRaster 输出文件大小

2024-01-02

我有一个函数,可以将多波段图像作为栅格砖对象读取,遍历波段进行各种计算,然后将栅格写出作为新的 .tif。所有这些都工作正常,但新图像文件的文件大小大约是原来的四倍(我假设是因为原始图像有 4 个波段)。我想知道 writeRaster() 函数中是否有一个我不知道的参数,或者是否有其他方法可以确保输出图像的文件大小与输入的文件大小基本相同。

原始文件大小为134 MB;输出范围从 471 到 530 MB 左右,具体取决于格式。

简化代码:

library(rgdal)
library(raster)

path = "/Volumes/ENVI Standard Files/"
img = "qb_tile.img"

imageCorrection = function(path, img){
  raster = brick(paste0(path, img))   
  raster = reclassify(raster, cbind(0, NA))  

  for(i in 1:nlayers(raster)){   
    raster[[i]] = raster[[i]] - minValue(raster[[i]]) 
  }
  writeRaster(raster, paste0(path,img,"_process.tif"), format = "GTiff", overwrite=TRUE)
}

您可以使用以下命令设置写入栅格的默认数据类型rasterOptions()如下:

rasterOptions(datatype="INT2U")

或者直接在 writeRaster 调用中:

writeRaster(yourRas, "path/to/raster/", dataType="INT2U", options="COMPRESS=LZW")

另请注意选项参数,您可以在其中指定压缩。

通常,当我从 R 导出整数栅格时,我会确保我确实有整数而不是浮点数,因为这可能会导致空栅格。导出前请尝试以下操作:

ras <- as.integer(ras)

请注意:还要检查栅格中的负值。尝试INT2S如果您的值低于零。

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

writeRaster 输出文件大小 的相关文章

  • 无法使用include_graphics在Rmarkdown中插入png(错误:文件不是PNG格式)

    这个错误很奇怪 当我编织文档时 出现以下错误 Quitting from lines 42 43 sigminer doc Rmd Error in png readPNG path native TRUE info TRUE file i
  • 通过非 sf 列内连接两个 sf 对象

    我尝试使用内连接或左连接连接两个 sf 数据帧 这些数据框内部都有几何列 我不断收到错误 check join x y 中的错误 y 应该是一个数据框 对于空间连接 请使用 st joinFALSE 下面的可重现示例 df1 lt data
  • R - 如何为一个图例元素组合 expression()、paste() 和 formatC() 命令?

    我正在努力创造一个美好的传奇 它应该包含希腊字母 mu 我可以使用表达式 一些文字 即 和 mm 以及使用 formatC 格式化的模型系数来完成此操作 我运行没有问题的是要么没有希腊字母 然后我可以使用简单的粘贴命令 leg txt lt
  • 在开发模式下安装包(R源未编译成Rdb)

    我需要修改R代码在一个R具有 Fortran 绑定的包 当我安装软件包时 我看到存储库目录没有源代码 但是 Rdb而是二进制文件 我看了看devtools包 但我仍然不清楚如何在不编译 R 源部分的情况下安装该包 类似于 python py
  • 在绘图中的所有坐标之间绘制线条

    我有以下数据框 data lt data frame x c 5 1 3 2 5 7 12 y c 5 7 6 1 3 5 6 我可以使用 ggplot 函数绘制这些坐标 并在这些坐标之间画一条线 ggplot data aes x y g
  • 使用 R 中绘制的标准误差创建条形图

    我试图找到在 R 中创建条形图并显示标准错误的最佳方法 我看过其他文章 但我无法弄清楚与我自己的数据一起使用的代码 之前没有使用过 ggplot 这似乎是最常用的方法 而 barplot 不与数据框合作 我需要在两种情况下使用它 我为此创建
  • 列表列中的设置操作

    我正在尝试做集合运算在存储在列表列中的向量之间 例如this https stackoverflow com questions 38712196 text file to dataframe with a list column DT l
  • 如何在 conda 中静音或抑制 gfortran (或 clang?)后端?

    我一直致力于构建一个非常特殊的 conda 环境 专为python and R与串扰使用rpy2 我想出的方法可以安装正确的R包如下 install main environment sh now date T echo Start Tim
  • 有条件地将可选组替换为 gsub

    一位用户问我如何做到这一点如何使 ggplot 图例中的选定单词变为斜体 https stackoverflow com questions 76054997 how to italicize select words in a ggplo
  • 将阿拉伯文本分配给 R 变量

    R 无法正确显示阿拉伯文本 当我使用阿拉伯语时 我得到了非常奇怪的东西 这是一个屏幕截图 问题是我想创建一个带有阿拉伯文本的词云 我需要首先解决这个问题 R 版本 R 2 15 2 GUI 1 53 Leopard 版本 64 位 6335
  • 使用 ggplot_build 和 ggplot_gtable 后使用 ggsave 保存图形

    我正在通过更改 ggplot build 生成的数据来修改使用 ggplot 构建的图表 原因类似于包括 geom boxplot 中填充美学中使用的缺失因子水平的空间 https stackoverflow com questions 1
  • 使用 gbuffer 在 R 中缓冲(地理)空间点

    我正在尝试缓冲数据集中半径为 100 公里的点 我正在使用该功能gBuffer从包装中rgeos 这是我到目前为止所拥有的 head sampledf postalcode lat lon city province 1 A0A0A0 47
  • 使用facet时ggplot2控制每行的面板数量?

    Is it possible to control the number of panels per row in a ggplot I can only get an equal number of panels on each row
  • 为 RStudio Server 1.0.44 配置日志目录

    我在 CentOS 7 上运行 RStudio Server 1 0 44 根据文档 https support rstudio com hc en us articles 200554766 RStudio Server Applicat
  • 网页抓取(R 语言?)

    我想获取中间栏中的公司名称this http www consumercomplaints in bysubcategory mobile service providers page 1 html页面 以蓝色粗体书写 以及登记投诉者的位置
  • 在R中绘制3x3方形网格

    我得到了一个数字列表 n 9 想将它们画在一个 3 3 的正方形网格中 每个网格填充相应的数字 我如何在 R 中执行此操作而不安装额外的软件包 例如情节 非常感谢 这里有一个ggplot解决方案比我预期的要难一点 Setup the dat
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • R Shiny - 修复了 Shiny 仪表板中的侧边栏和主标题

    我有一个简化的闪亮仪表板 请参阅下面的代码 我想修复侧边栏和主标题 因此 在其他帖子的帮助下 我编写了一个 CSS 文件来解决该问题 sidebar color FFF position fixed width 220px white sp
  • 将函数应用于每个列组合

    我有一个数据框n列并希望对每个列应用一个函数组合列 这与如何cor 函数将数据帧作为输入并生成相关矩阵作为输出 例如 X lt data frame A rnorm 100 B rnorm 100 C rnorm 100 cor X 这将生

随机推荐

  • 根据环境设置 angularjs 项目中的基本 URL

    我正在开发一个使用 Yeoman 创建的 AngularJs 项目 该项目使用 Grunt 作为任务管理器 在我的 index html 中 我需要设置基本 url href属性值取决于环境 如果环境是开发我希望href简单 如果环境是生产
  • 使用 socket.io-redis 的示例

    大家好 感谢您的时间和帮助 我需要一个使用socket io redis的简单示例 请发表评论 我阅读了文档 但我不明白 谢谢你 socket io redis 文档没有提到您实际上需要运行 redis 服务器 因此您可能已经忘记了这一点
  • Magento 2 - 未找到请求的组件(“0”)。使用前必须添加实现

    嗨 Magento 专家朋友们 最近我已将 magento 1 迁移到 Magento 2 2 1 0 版本 拥有9000种产品和20000个订单 我使用 Magento 迁移工具进行迁移 到目前为止 一切都很好 除了 未找到所请求的组件
  • roxygen2 如何不运行示例文件

    我很清楚当代码直接位于 roxygen 注释中时如何让 roxygen 不运行示例 但是 某些示例可能有点冗长 或者您希望将示例编译在示例目录中 在这种情况下 example file path工作正常 但我不知道如何让 roxygen 不
  • awk 用于日期范围日期格式,如 mm/dd/yyyy hh:mm:ss

    我有这样的日志文件我正在尝试检索日期范围 07 10 2013 01 31 54 SNMP 07 10 2013 01 31 54 SNMP 07 10 2013 03 03 54 SNMP 我正在使用下面的 awk 命令 它给出了所有行
  • Apache-POI 对 Excel 中的行进行排序

    我想按字符串列之一对工作表中的行进行排序 我尝试使用 Sheet shiftRows 方法来实现这一点 但我无法做到这一点 它不会在我的方法中切换行的位置 我的代码有什么问题吗 或者也许有更好的方法按 Excel 中的任何字符串列对行进行排
  • 自动高度 div 上的 Img 高度

    https jsfiddle net ry9gyb8n https jsfiddle net ry9gyb8n 大家好 几周以来我一直在尝试解决这个问题 我有一个自动高度容器 容器中的左侧 div 是自动高度 因为它里面可以有各种不同的内容
  • 如何将数字的后3位转换为0

    如何将数字的后3位转换为0 例如 3444678 到 3444000 我可以这样做 整数 3444678 1000 1000 3444000 但除法和乘法可能代价高昂 还有其他解决办法吗 你可以尝试 n n 1000 但模运算符可能与除法一
  • NewtonSoft Json DeserializeObject 空 Guid 字段

    我正在使用 ASP NET MVC C 和 HTML CSS jQuery KnockoutJs 前端 我的 HTML 页面上有一个模式联系表单 这个想法是 如果我创建一个新的联系人 模式表单会弹出空白值 包括空白的隐藏 ID 字段 如果我
  • cakephp、jquery、.ajax()、数据类型:json

    cakephp 控制器功能是否可以在没有视图的情况下完成 我试图让我的服务器返回一个不是字符串的数据类型 而是一个数组 我的控制器功能 function test this gt layout plain task Numbers uno
  • 如何垂直对齐多个表格列

    我有多个具有以下结构的表 table tr td year td tr tr td semester td td semester td tr tr td course type td td course td td course type
  • 在运行时检查宏是否已定义

    在开发静态库的过程中 遇到了测试库函数的需要 功能检查不是问题 主要问题是测试库提供的每个宏定义 我从这样的代码开始 For non vital macro OS WORDSIZE detections if defined BXI ARC
  • 在开始编码之前如何处理并发[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在编写 Java 程序 目前正在调试的并发问题比我想要处理的要多得多 我想问 你在设计程序时如何处理并发问题 就我而言 这是一个相
  • 处理多版本软件发布管理的最佳方法是什么?

    我的公司为房地产机构构建了一个 Web 应用程序 最初使用经典 ASP 进行编码 然后逐渐迁移到 NET 本质上 它是一个具有后端数据库的网站 与自定义 Windows 服务 DLL 混合 NET 应用程序的相当标准 在我过去的公司中 我们
  • JavaScript 和辅助功能

    作为一名网络开发人员 我从事的许多项目都属于政府的保护范围 因此受到政府的监管508 无障碍 http www section508 gov 法律 有时W3C 可访问性 http www w3 org TR WCAG 指导方针 在满足这些要
  • SkipListener 中未调用 @OnSkipInWrite

    我正在读取 csv 文件并使用 Spring Batch 将数据插入数据库 读取 处理和写入 我在 itemWriter 类中使用 jpaRepository save 将数据保存到数据库中 我试图在 OnSkipInWrite 方法中捕获
  • 使用 java.util.logging 进行 Commons 日志记录

    我正在尝试使用公共日志记录并希望使用 java util logging 作为底层机制 日志测试 java import org apache commons logging public class LogTest public stat
  • 仅对基于 servlet 的 web 应用程序中的某些页面使用 HTTPS

    我有一个基于 servlet 的 web 应用程序在 Tomcat 6 服务器上运行 URL 方案是 HTTPS 整个站点当前通过 HTTPS 提供服务 但我真正想做的是仅为某些操作 例如购买和登录 设置 HTTPS Tomcat 中是否有
  • 如何在 React 中为 svg 图像添加颜色

    我有一个图标列表 我想将图标颜色更改为白色 默认情况下我的图标是黑色的 大家有什么建议吗 我通常使用 fill white 在我的 css 中 但现在我在 React 中执行此操作 它不起作用 import React from react
  • writeRaster 输出文件大小

    我有一个函数 可以将多波段图像作为栅格砖对象读取 遍历波段进行各种计算 然后将栅格写出作为新的 tif 所有这些都工作正常 但新图像文件的文件大小大约是原来的四倍 我假设是因为原始图像有 4 个波段 我想知道 writeRaster 函数中