You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中从URL获取并解压.gz格式的ASCII网格文件

解决方法

方法1:先下载到本地再处理

这是最稳妥的方式,避免内存处理的问题:

  • 用download.file()把.gz文件下载到本地:
    url <- "你的目标.gz文件URL"
    download.file(url, destfile = "summer_days.asc.gz", mode = "wb")
    
  • 用gunzip()解压(需要先安装R.utils包:install.packages("R.utils")):
    library(R.utils)
    gunzip("summer_days.asc.gz", remove = TRUE) # remove=TRUE会删除原压缩包
    
  • 最后用raster()读取ASC文件:
    library(raster)
    r <- raster("summer_days.asc")
    

方法2:内存中直接处理(不存本地)

如果不想在本地保存文件,可以直接在内存中完成解压和读取:

  • 读取压缩文件的原始字节,再通过gzcon解压并转为文本内容:
    library(raster)
    url <- "你的目标.gz文件URL"
    
    # 读取压缩文件的原始二进制数据
    raw_data <- readBin(url, what = "raw", n = 1e6) # n值可适当调大,确保覆盖文件大小
    # 创建解压连接并读取文本
    con <- gzcon(rawConnection(raw_data))
    asc_text <- readLines(con)
    close(con)
    
    # 将文本写入临时文件,用raster读取后删除临时文件
    temp_file <- tempfile(fileext = ".asc")
    writeLines(asc_text, temp_file)
    r <- raster(temp_file)
    file.remove(temp_file)
    

方法3:直接用raster读取压缩文件

raster包支持直接读取.gz压缩的ASC文件,无需手动解压,这是最简便的方法:

library(raster)
url <- "你的目标.gz文件URL"
r <- raster(url)

内容的提问来源于stack exchange,提问作者Ezra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:15:23