在没有安装 rgdal 的情况下解压并读取 R 中的形状文件

2023-11-21

我想在 R 中解压并读取来自网络的形状文件,而不依赖于 rgdal。我找到了read.shp的功能fastshp软件包显然可以在环境中安装 rgdal 的情况下完成此操作,但是,我在实施时遇到了麻烦。

我想要一个可以解压缩然后读取形状文件的函数,类似于在此找到的内容SO帖子但对于read.shp功能。我尝试了以下方法但没有成功:

dlshape=function(shploc, format) {
  temp=tempfile()
  download.file(shploc, temp)
  unzip(temp)
  shp.data <- sapply(".", function(f) {
    f <- file.path(temp, f)
    return(read.shp(".", format))
  })
}

shp_object<-dlshape('https://www2.census.gov/geo/tiger/TIGER2017/COUNTY/tl_2017_us_county.zip', 'polygon')
 Error in read.shp(".", format) : unused argument (format) 

我还尝试了以下方法:

  dlshape=function(shploc) {
      temp=tempfile()
      download.file(shploc, temp)
      unzip(temp)
      shp.data <- sapply(".", function(f) {
        f <- file.path(temp, f)
        return(read.shp("."))
      })
    }

 shp_object<-dlshape('https://www2.census.gov/geo/tiger/TIGER2017/COUNTY/tl_2017_us_county.zip')

Error in file(shp.name, "rb") : cannot open the connection
In addition: Warning messages:
1: In file(shp.name, "rb") : 'raw = FALSE' but '.' is not a regular file
2: In file(shp.name, "rb") :
 Show Traceback
 Rerun with Debug
 Error in file(shp.name, "rb") : cannot open the connection

我怀疑这与函数中的事实有关read.shp()我向它提供文件夹名称而不是 .shp 名称(例如readOGR这有效但不适合read.shp)。非常感谢任何帮助。


您可以使用unzip()来自 utils 和read_sf()从 sf 解压缩,然后加载您的 shapefile。这是一个工作示例:

# Create temp files
temp <- tempfile()
temp2 <- tempfile()

# Download the zip file and save to 'temp' 
URL <- "https://www2.census.gov/geo/tiger/TIGER2017/COUNTY/tl_2017_us_county.zip"
download.file(URL, temp)

# Unzip the contents of the temp and save unzipped content in 'temp2'
unzip(zipfile = temp, exdir = temp2)

# Read the shapefile. Alternatively make an assignment, such as f<-sf::read_sf(your_SHP_file)
sf::read_sf(temp2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有安装 rgdal 的情况下解压并读取 R 中的形状文件 的相关文章

  • 收集四列,其中两个键中包含值

    已经提出了类似的问题 但它们都涉及在一个关键列中收集多个列 我需要两个键中的多个列 这是我的数据框 ID measure A 1 measure A 2 measure B 1 measure B 2 1 8 25 23 5 4 5 2 8
  • 从每小时中提取/子集分钟值

    我的数据框包含以下格式的日期值YYYY MM DD HH MM SS跨越 125000 多行 按分钟细分 每行代表一分钟 1 2018 01 01 00 04 00 2 2018 01 01 00 05 00 3 2018 01 01 00
  • dplyr:带引号变量名的 mutate 的标准评估

    我将如何使用mutate 我的假设是我正在寻找标准评价就我而言 因此mutate 但我对此并不完全有信心 当使用接受变量名列表的函数时 如下所示 createSum function data variableNames data gt m
  • 将文件夹中的多个 csv 文件读取到 R 中的单个数据帧中[重复]

    这个问题在这里已经有答案了 我有一个包含 332 个 csv 文件的文件夹 文件名称如下 001 csv 002 csv 003 csv 330 csv 331 csv 332 csv 所有文件都具有相同数量的变量和相同的格式 我需要读取一
  • 如何更改 r 中的树状图标签

    我在 R 中有一个树形图 它基于使用 hclust 的分层聚类 我正在对不同颜色的标签进行着色 但是当我尝试使用以下命令更改树图的标签 集群所基于的数据帧的行 时dendrogram dendrogram gt set labels dat
  • mlogit:需要 TRUE/FALSE 时缺少值

    我有来自离散选择实验 DCE 的数据 该实验研究了来自不同行业的个人的招聘偏好 我已经格式化为长格式 我想使用 mlogit 进行建模 我已导出数据 并且可以使用 asclogit 命令在 Stata 中成功运行模型 但在 R 中运行时遇到
  • 配置 fix() 和 edit() 以从 R/RStudio 在 Notepad++ 中打开

    当我在 RStudio 或 RGUI 中执行此操作时 fix SomeFunction 或使用edit 我可以在记事本中看到该函数的代码 有什么方法可以更改此设置 以便代码预览在 Notepad 中打开 而不是在普通的旧记事本中打开 同样
  • 在 R 中使用深度网络和 MNIST 数据读取手写数字第 3 部分

    我尝试编写一个基于深度网络的程序来读取手写数字 我在 Youtube 上找到了一个代码 https www youtube com watch v 5bso 5X7Zu4 https www youtube com watch v 5bso
  • 根据 R 中的字符串模式选择行

    假设我有以下数据 df lt data frame name c TO for Turnover for people HC people Hello world beenie man apple pears TO is number c
  • 行方向变异的有效方法

    我有两个数据框 dfUsers and purchases使用以下代码生成 set seed 1 library data table dfUsers lt data table user letters 1 5 startDate sam
  • Shiny:从DT数据表中选定的行获取信息

    我们正在尝试重新创建示例 https demo shinyapps io 029 row selection https demo shinyapps io 029 row selection 使用DT包来渲染数据帧而不是shiny包 DT
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • 按组复制数据框

    我有以下数据框 df structure list Group c 1 1 1 1 2 2 2 2 2 2 3 3 3 index c 1 2 3 4 1 2 3 4 5 6 1 2 3 row names c NA 13L class c
  • 如何创建 highcharter 事件函数以在 Shiny R 中创建“下拉函数”

    我正在建造一个shiny应用程序 我想要完成的事情之一是创建一个下拉菜单 我想将劳动力变量绘制为不同级别的年份变量的函数 请参阅下面的示例数据框 year level 2 level 3 labour 1 2013 10 101 1 2 2
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • 基本 dyplr 函数给出错误:“check_dots_used”

    试图找出为什么我会收到此错误 以前从未见过 谷歌没有帮助 check dots used action warn 中的错误 未使用参数 action warn 我在下面的非常基本的试验中收到错误 而且在 group by count 中也收
  • R 3.5 - read.csv 无法读取 UTF-16 csv 文件

    我的代码如下 read csv http asic gov au Reports YTD 2018 RR20180420 001 SSDailyYTD csv skip 1 fileEncoding UTF 16 sep t header
  • 使用矢量相应地更改传单线条的颜色

    无论如何 是否可以根据某些变量的值更改传单线条的颜色 我用谷歌搜索 发现了这个link http hgoebl github io Leaflet MultiOptionsPolyline demo 然而 我想知道是否有一种简单的方法可以在
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整

随机推荐

  • Verilog 显示中不必要的空间

    我正在尝试以十进制显示一些 32 位值 除了 b 和前一个字符之间有奇怪数量的不必要的空格外 这工作正常 例如 如果我有一个 32 位 reg a 其十进制值为 33 我将使用类似的东西 initial begin display a d
  • GetMaxAmplitude 的值范围

    我有一个有趣的想法 可以在 Android 手机上开箱即用地使用麦克风端口 我正在集思广益如何使用 Android 手机记录咖啡烘焙机内的烘焙温度 这个想法突然出现在我的脑海中 麦克风是低压的 我的热电偶也是低压的 所以我开始研究 andr
  • 如何将图像视图从一个活动发送到另一个活动

    我在第一个活动的列表视图中有一个图像视图 我想通过单击列表视图项目将我的图像视图发送到第二个活动 我尝试过以下代码 将可绘制图像转换为字节数组 Bitmap bmp BitmapFactory decodeResource getResou
  • 在 VSTS 构建和发布中排除/跳过文件

    我们正在为 VSTS CI CD 创建架构 以将我们的 Web 应用程序部署到 Azure 应用服务 我们希望在将 web config 部署到 Azure 服务器时排除它 因为我们直接修改不同环境中的 web config CI 任务如下
  • Seaborn 混淆矩阵(热图)2 种配色方案(正确的对角线与错误的其余部分)

    背景 在混淆矩阵中 对角线表示预测标签与正确标签匹配的情况 所以对角线是好的 而所有其他单元格都是坏的 为了向非专家阐明 CM 的优点和缺点 我想为对角线赋予与其他部分不同的颜色 我想通过以下方式实现这一目标Python 和 Seaborn
  • Android 版 OpenCV - 访问 Mat 的元素

    在 OpenCV4Android 中访问和修改 Mat 的各个元素的标准方法是什么 另外 BGR 我认为这是默认值 和灰度的数据格式是什么 编辑 让我们更具体一些 mat get row col 返回一个双精度数组 这个数组里有什么 如果您
  • 构建设置中缺少 Xcode 12 beta 有效架构

    Hi I m using Xcode Version 12 0 beta 3 12A8169g Valid architectures in build settings is missing Does anybody know how t
  • 在 Guice 中管理同一依赖树的多个版本的最佳模式是什么?

    我想实例化同一类型依赖树 链的多个版本 它们对该树 链中的某些接口使用不同的实现 在这种情况下使用的最佳 Guice 实践 模式是什么 这是我的问题的具体示例 我有一个Writer接口可能是文件编写器或标准输出编写器 它将位于我的依赖关系层
  • 在清理之前修改传入django表单的数据

    我需要修改传入的数据Form清洁前 我成功了 但看起来很糟糕 def init self args kwargs if len args gt 0 data args 0 elif data in kwargs data kwargs da
  • 如何在gcc中编译带有头文件的C程序?

    我想在 gcc 中编译一个 C 程序 它有我的 2 个头文件 我正在使用命令 gcc UDP Receive c o UDP Receive lm 编译它 但出现错误 指出 UDP Data h 没有这样的文件或目录 我如何告诉编译器包含这
  • Angular 4 Selected 在模型中给出时无法正常工作?

    当我试图提供下拉菜单时 默认情况下 我需要选择一个需要显示的值 当我不使用 ngModel 时 我可以显示默认值 没有 ngModel
  • 如何在机器人之父中为电报机器人创建菜单?

    I m new in telegram bot and see this bot that but when type start show menu to me and with out type slash to command jus
  • apache httpclient 4.3 没有超时

    我在使用以下代码使 Apache HttpClient 4 3 post 请求超时时遇到问题 RequestConfig requestConfig RequestConfig custom setConnectionRequestTime
  • Doctrine 查询语言获取每组的最大/最新行

    我正在尝试将相对简单的 SQL 语句转换为可在 Doctrine 中运行的语句 但失败了 这是 SQL 语句 它在针对我的数据库运行时按要求工作 SELECT a FROM score a INNER JOIN SELECT name MA
  • 搜索排序矩阵的最有效方法?

    我有一项任务是编写一个算法 不是用任何特定语言 只是伪代码 该算法接收一个矩阵 大小 M x N 该矩阵的排序方式是所有行都已排序 所有列都已排序单独排序 并在该矩阵中找到某个值 我需要编写我能想到的最省时的算法 矩阵看起来像 1 3 5
  • 如何深度克隆iframe?

    有没有办法深度克隆iframe 基本的 jQuery 克隆只是使用相同的 src 创建另一个 iframe 我想要实现的是一种克隆 iframe 的方法 它是准确的当前内容 即任何可能的输入值 通过 javascript 进行的任何 DOM
  • jquery:如何选择没有被 html 标签包围的文本?

    Beer br Vodka br rum br whiskey 如何选择啤酒 还是朗姆酒 在 jquery 中 它们没有被任何 html 标签包围 如果您的意思是要直接选择文本节点 建议不要使用 jQuery 需要澄清的是 获取一组包装的文
  • 我应该将 ASP.NET MVC 控制器操作设为虚拟吗?

    文件 gt ASP NET MVC 项目的新项目 用于生成具有虚拟操作的控制器 我不确定 MVC 2 或 MVC 3 是否会停止这种情况 但这不再是最佳实践吗 T4MVC确实使动作方法变得虚拟 如果您正在使用它 它应该使操作方法变得虚拟 没
  • Python selenium - 修改网页的源代码

    我正在使用 Python selenium 来自动输入我的出勤信息 一切正常 现在我想通过修改源代码来尝试 我看到很少有帖子指出可以使用它进行修改driver execute script 它适用于 JavaScript 但就我而言 我需要
  • 在没有安装 rgdal 的情况下解压并读取 R 中的形状文件

    我想在 R 中解压并读取来自网络的形状文件 而不依赖于 rgdal 我找到了read shp的功能fastshp软件包显然可以在环境中安装 rgdal 的情况下完成此操作 但是 我在实施时遇到了麻烦 我想要一个可以解压缩然后读取形状文件的函