如何将地图投影从太平洋中心更改为大西洋中心?

2023-12-19

library(sf)
library(tidyverse)

我有一个 sf 对象

几何类型:点

预计太平洋上空

bbox: xmin: 0 ymin: -78 xmax: 359 ymax: 0 (WGS 84)

我想将 sf 对象重新投影到太平洋中心 (0,360) 的大西洋中心 (-180,180)。我发现在顺丰包允许从大西洋视图到太平洋视图的功能(即)st_shift_longitude(x)。但我想要的却恰恰相反......

帮助?谢谢


如果没有一些数据的暗示,很难确定,但这是一种方法:

我假设原来的sf点对象没有设置 crs,因为 0-360 的经度不常见。下面的代码使用 -78-0 表示纬度,使用 0-360 表示经度组成一些数据点。一个(有点不寻常的)crs"+proj=longlat +ellps=WGS84 +pm=-360 +datum=WGS84 +no_defs"设置后,然后将经度/纬度数据转换为常用的 4326。

library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1; sf_use_s2() is TRUE
library(tidyverse)

set.seed(42)  # for reporducibility
points <- tibble(x = sample(0:359, size = 20, replace = T),
                 y = sample(-78:0, size = 20, replace = T)) %>%
  st_as_sf(coords = c("x", "y"), remove = F)

# Set a crs that understands 0-360 longitude
points <- st_set_crs(points, "+proj=longlat +ellps=WGS84 +pm=-360 +datum=WGS84 +no_defs")

# reproject to epsg 4326, the usual lon/lat crs
points_4326 <- points %>% st_transform(4326)

mapview::mapview(points_4326)

显示旧经度(0-360)和新经度(-180 到 180)的样本数据的头部:

> head(points_4326)
Simple feature collection with 6 features and 2 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: -166 ymin: -66 xmax: 88 ymax: -5
Geodetic CRS:  WGS 84
# A tibble: 6 × 3
      x     y    geometry
  <int> <int> <POINT [°]>
1   240   -66  (-120 -66)
2    23   -66    (23 -66)
3    46    -5     (46 -5)
4    88   -10    (88 -10)
5    17   -61    (17 -61)
6   194   -13  (-166 -13)

Created on 2022-04-19 by the reprex package https://reprex.tidyverse.org (v2.0.1)

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

如何将地图投影从太平洋中心更改为大西洋中心? 的相关文章

随机推荐

  • 如何使用 RestSharp 发送请求

    我正在尝试使用 RestSharp 客户端发布请求 如下所示 我将身份验证代码传递给以下函数 public void ExchangeCodeForToken string code if string IsNullOrEmpty code
  • 如何使用 jQuery 1.x 检测/处理 net::ERR_BLOCKED_BY_CLIENT?

    我正在尝试使用一个简单的脚本来检测内容拦截器 广告拦截扩展 基于主机的拦截 基于代理的拦截 如下所示 try ajax url pagead2 googlesyndication com pagead js adsbygoogle js d
  • 如何使用 NodeJS 在 SSH2 上执行多个命令

    我正在尝试使用 我想按照数组的顺序执行多个命令 从 GitHub 进行部署 我现在使用的代码包含在下面 async series Deploy from GitHub function callback Console shizzle co
  • 如何从 Ruby 中的 MULTI 块内的 Redis 读取数据?

    我在 MULTI 事务中封装了一组复杂的 Redis 命令 但事务中的逻辑取决于 Redis 中已有的值 但事务中的所有读取似乎都会返回nil 下面是一个演示该问题的示例 Dev gt redis set foo bar gt OK Dev
  • VBA 系统.集合.队列

    我刚刚发现here http analystcave com excel vba dictionary arrays and other data structures The VBA Queue 内置 Stacks and Queues可
  • Web 视图不适用于某些特定的 url

    public class MainActivity extends AppCompatActivity String url https www pinterest com Override protected void onCreate
  • 如何使用 swift 验证本地玩家?

    我正在尝试将游戏中心集成到我的游戏中并创建排行榜 我已经在 iTunes Connect 上创建了排行榜 启用了游戏中心并创建了一个沙盒测试器 尽管如此 我还是有这个错误 not able to authenticate fail erro
  • 使用 ruby​​ on Rails 安装 Susy 和 Compass

    我刚刚开始使用 ruby on Rails 我尝试做的第一件事就是安装 gems compass 和 susy 在弄清楚我需要将它们包含在 gemfile 中之后 我正在使用 RubyMine 并认为它会为我做这件事 当我尝试将 susy
  • 无损图像压缩工具[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Running 谷歌页面速度 https developers google com speed 在公
  • 如何在 Web 浏览器视图中从 Ionic 应用程序打开外部链接

    第 1 步 Ionic 创建新应用程序 离子启动 myApp1 侧菜单 第 2 步 创建新页面主页和关于我们 离子生成关于我们的页面 步骤 3 在 关于我们 页面创建按钮 将 URL 重定向到另一个网站 aboutus html GO ab
  • “很抱歉,出了点问题”:rails + nginx + puma + digitalocean + ssl

    我刚刚在生产服务器上的 Rails 应用程序上成功配置了 ssl 但现在 当我尝试访问该站点时 我收到 我们很抱歉 但出了点问题 错误 如果我不使用任何 ssl 设置来禁用 ssl 我的 Rails 应用程序将运行得很好 只有当我使用ssl
  • vim的正则表达式解释

    如果我想要所有带有文本 ruby 但不带有 myruby 的行 那么这就是我要做的 g
  • Rails 中的受保护方法和私有方法

    Ruby 中的方法可见性 公共 受保护和私有方法 已在以下地方得到了很好的解释 这篇博文 http weblog jamisbuck org 2007 2 23 method visibility in ruby 但在 Ruby on Ra
  • python 日志记录关闭和应用程序退出

    我在应用程序中使用日志记录模块 我想到如果日志记录模块支持一种可以优雅地关闭文件句柄等然后关闭应用程序的方法 那就太好了 例如 logger logging getLogger my app logger fatal We re toast
  • Windows 上的 SSH ControlMaster 与 Cygwin 真的可行吗?

    有没有人能够在 Windows 上使用 control master 和 cygwin 创建多个会话而无需重复登录 我需要自动执行一系列 SSH 步骤 但无法要求用户每次都输入所需的标记化密码 我已经配置了我的 cygwin ssh con
  • JDBC 中缺少 dll

    我目前正在 Java 中使用 SQL 最近我收到这个错误 com microsoft sqlserver jdbc AuthenticationJNI
  • mvc 4 windows Azure Request.Url 中的端口号错误

    我正在编写一个小型的 asp net MVC4 Web 应用程序 项目模板是 Visual Studio 2012 中的 azure mvc 4 模板 当我在 razor 视图中请求 Request Url 时 我得到了错误的端口号 例如
  • 从当前日期减去 7 天

    看来我不能从当前日期减去7天 这就是我正在做的 NSCalendar gregorian NSCalendar alloc initWithCalendarIdentifier NSGregorianCalendar NSDateCompo
  • Redux 不会立即更新状态

    我对 Redux 有问题 更可能不是问题而是误解 如果我在函数中进行分派并在存储中写入新值 那么我无法立即从存储中获取该函数的新值 Example testFunc gt console log in func before this pr
  • 如何将地图投影从太平洋中心更改为大西洋中心?

    library sf library tidyverse 我有一个 sf 对象 几何类型 点 预计太平洋上空 bbox xmin 0 ymin 78 xmax 359 ymax 0 WGS 84 我想将 sf 对象重新投影到太平洋中心 0