R 中使用 sf 和 sp 的投影差异

2024-01-01

我有一个已从 GeoTIFF 转换为 shapefile 的网格。我想将 shapefile 转换并导出为 GeoPackage 并更改投影,以便在 GIS 中打开时使用英国国家网格作为地理坐标系。然而,这似乎只能使用sp并不是sf(似乎没有保留数据等方面)。

这是一个问题,因为我想导出包含多个图层的 GeoPackages,而您目前只能在其中执行此操作sf并不是sp。难道我做错了什么?

library(rgdal)
library(sf)

download.file("https://drive.google.com/uc?id=1URbux7Sw25KFTySqRFKXk53DV2UK4lsA&export=download" , destfile="Grid_Shapefile.zip")
unzip("Grid_Shapefile.zip")
Grid_sp <- readOGR(".", "Grid_Shapefile")
Grid_sf <- st_as_sf(Grid_sp)

BNG_Grid_sp <- spTransform(Grid_sp, CRS("+init=epsg:27700"))
BNG_Grid_sf_v1 <- st_transform(Grid_sf, crs=27700)
BNG_Grid_sf_v2 <- st_transform(Grid_sf, crs="+init=epsg:27700 +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy +towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894")

BNG_Grid_sf_v1_geom <- st_geometry(BNG_Grid_sf_v1)
BNG_Grid_sf_v2_geom <- st_geometry(BNG_Grid_sf_v2)

proj4string(BNG_Grid_sp)
attributes(BNG_Grid_sf_v1_geom)
attributes(BNG_Grid_sf_v2_geom)

writeOGR(BNG_Grid_sp, dsn = "BNG_Grid_sp.gpkg", layer = "Grid_sp", driver = "GPKG")
st_write(BNG_Grid_sf_v1, "BNG_Grid_sf_v1.gpkg", "Grid_sf_v1")
st_write(BNG_Grid_sf_v2, "BNG_Grid_sf_v2.gpkg", "Grid_sf_v2")

解决方案(感谢罗杰发布的内容)here https://github.com/r-spatial/sf/issues/810)正在使用lwgeomRoger 在 sf GitHub 上发布的帖子提供了更多详细信息。

library(rgdal)
library(sf)

download.file("https://drive.google.com/uc?id=1URbux7Sw25KFTySqRFKXk53DV2UK4lsA&export=download" , destfile="Grid_Shapefile.zip")
unzip("Grid_Shapefile.zip")
Grid_sp <- readOGR(".", "Grid_Shapefile")
Grid_sf <- st_as_sf(Grid_sp)

library(lwgeom)
BNG_Grid_sf_v4 <- st_transform_proj(Grid_sf, crs="+init=epsg:27700 +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy +towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894")
st_crs(BNG_Grid_sf_v4)
st_write(BNG_Grid_sf_v4, "BNG_Grid_sf_v4.gpkg", "Grid_sf_v4")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中使用 sf 和 sp 的投影差异 的相关文章

  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 从网络源获取 R 中的数据作为数据框

    我正在尝试使用 RCurl 包将一些空气污染背景数据作为 data frame 直接加载到 R 中 该网站有 3 个下拉框 用于在下载 csv 文件之前选择选项 如下图所示 我试图从下拉框中选择 3 个值 并使用 下载 CSV 按钮将数据作
  • R read_excel:libxls 错误:无法解析文件

    我试图使用 readxl read excel 将 xls 文件读入 R 但它给出了以下错误 Error filepath data xls libxls error Unable to parse file 还尝试了 readxl exc
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • fread 将空导入为 NA

    我正在尝试导入带有空白的 csv 读取为 不幸的是他们都读作 NA now 为了更好地演示问题 我还展示了如何NA NA and 都映射到同一事物 除了最底部的示例 这将妨碍简单的解决方法dt is na dt lt gt write cs
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 有没有一种简单的方法来判断存储在一个列表中的许多数据帧是否包含相同的列?

    我有一个包含许多数据框的列表 df1 lt data frame A 1 5 B 2 6 C LETTERS 1 5 df2 lt data frame A 1 5 B 2 6 C LETTERS 1 5 df3 lt data frame
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • R 中的 Websocket

    我设法在 R 中建立到 Mtgox websocket 的连接 规格如下 url https socketio mtgox com mtgox Currency USD https socketio mtgox com mtgox Curr
  • 替换字符串/文本中“从第 n 次到最后一次”出现的单词

    这个问题以前曾被问过 但尚未得到令提问者满意的答案 https stackoverflow com questions 36368712 how to use stringrs replace all function to replace

随机推荐

  • 指定容器类型的迭代器类型的部分特化

    我有一个模板结构 它接受模板参数的迭代器类型 现在我需要将该类专门用于不同容器的迭代器 我尝试过 std vector template
  • 创建上下文失败 0x3005

    我有 Windows 8 适用于 Windows 32 位的 Eclipse IDE for Java Developers JUNO 以及更新和安装的适用于 Windows 的 Android SDK 4 1 2 我已经解压了适用于 Wi
  • 使用 JavaScript 的 AJAX 和客户端-服务器架构

    我必须对网站进行编程 但我不喜欢静态 HTML 性质 我更喜欢客户端 服务器架构 现在我发现 使用 XMLhttp 您基本上可以动态更新页面并向服务器发送 请求信息 操作 所以这基本上涵盖了客户区域 但为了完成客户端 服务器架构 服务器也需
  • 我在将 python .pack() 转换为 .grid() 时遇到问题

    我对下面的代码有问题 我在一位讲师完成的 udemy 课程上看到了这段代码 他使用以下命令在 tkinter 窗口中定义了小分区 pack method 问题是我需要使用 grid 后来 由于这两种方法不能在同一个程序中使用 我需要将 pa
  • 使用python的看门狗从linux监控afp共享文件夹

    我希望Linux机器 Raspberry pi 通过AFP Apple文件协议 macbook是主机 监视共享文件夹 我可以通过mount afp挂载共享文件夹 并安装看门狗python库来监视共享文件夹 问题是看门狗只能监视 Linux
  • 是否可以像读取 RFID 标签一样读取 iPhone 的 NFC 芯片?

    我知道 iPhone 6 不可能读取 RFID 标签 而且 iPhone API 只允许使用 NFC 进行 Apple Pay 但是是否可以像读取 RFID 标签一样读取 iPhone 的 NFC 芯片呢 也就是说 通过将 RFID 读取器
  • 活分支数量的最佳范围是多少? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何设置MenuItem的图标颜色?

    我定义了一个具有 ShareActionProvider 和共享白色图标的菜单项 如下所示
  • NoClassDefFoundError:org.apache.commons.lang.StringUtils

    Caused by java lang NoClassDefFoundError org apache commons lang StringUtils at org apache maven wagon providers file Fi
  • MVC 路由中控制器的类别? (不同命名空间中的重复控制器名称)

    我正在寻找以下场景的一些路由示例或示例 一般做事的例子是 controller action id 因此 在对商店进行产品搜索的情况下 您将拥有 public class ProductsController Controller publ
  • Python Selenium Chrome 禁用弹出窗口阻止程序

    由于某种原因 我无法弄清楚如何禁用弹出窗口阻止程序 以允许弹出窗口工作 这个有用 所以我猜测它与新版本的 Chrome Chromedriver 有关 下面是一些示例代码 我知道它可以工作 但是现在当弹出窗口发生时 我什至看不到右上角的图标
  • 饼图图例 - Chart.js

    我需要帮助将饼图的编号放入图例中 图表图像 https i stack imgur com grBpc png 如果我用鼠标悬停图表 我可以看到相对于每个项目的数字 我想将它显示在图例中 到目前为止的重要代码 var tempData la
  • 从 R 中的 ftable 对象创建乳胶表

    在提出问题之前 让我先创建一些数据 my data lt data frame A sample seq 1 100 by 5 10 replace TRUE W rnorm 10 X sample 1 10 Y sample c yes
  • 无法将 Jenkins 代理连接到控制器

    我在一台Windows 7 64位PC上设置了Jenkins 并在另一台Win7 64位PC上安装了Jenkins代理服务 控制器 PC 出现此错误 Connection was broken java net SocketExceptio
  • JQuery.Validate 检查 ul 是否至少有一个 li 项的干净方法

    在我的网页中 我有一个 AddProduct 表单 它具有产品属性 名称 价格等 字段 我使用 FineUploader 来添加图像 上传的图像将作为隐藏字段添加到表单列表的 li 元素中 基本上我的 html 看起来像
  • java.sql.SQLException: ORA-06550: 第 1 行,第 13 列:授予用户 EXECUTE 包权限后

    我花了几个月的时间开发一个带有 Oracle 数据库后端的 JAVA 应用程序 我使用 Netbeans 作为我的 IDE 并在笔记本电脑上使用 Oracle 12c 作为我的数据库 所有 PL SQL 均已编译 没有错误 经过广泛的测试
  • Win API:挂钩每个窗口显示或进程执行

    我们计划在我们的应用程序中构建某种单点登录功能 我很清楚 我必须使用 Windows API 来实现对遗留应用程序控件的读写 但据我搜索和测试 这并不是这项工作中最难的部分 然而 有一点我直到现在才弄清楚如何继续 如何 挂钩 系统 以便每次
  • 如何按类别区分搜索结果? MySQL+PHP

    Hi 我没有得到任何有效的代码 当然 我可能会错误地使用 then 因为我是初学者 有人告诉我使用 MySQL 子查询 其他人告诉我使用 PHP foreach 来实现它 我想要的是显示按类别组分隔的关键字的搜索结果 如下所示 为 寻找结果
  • 使用 Java 8 Lambda 选取列表中的元素,直到满足条件

    我正在尝试转变思维方式 以函数式方式进行思考 最近遇到了一种情况 我需要从列表中选取元素 直到满足条件 但我找不到一种简单 自然的方法来实现这一目标 显然我还在学习 假设我有这个清单 List
  • R 中使用 sf 和 sp 的投影差异

    我有一个已从 GeoTIFF 转换为 shapefile 的网格 我想将 shapefile 转换并导出为 GeoPackage 并更改投影 以便在 GIS 中打开时使用英国国家网格作为地理坐标系 然而 这似乎只能使用sp并不是sf 似乎没