在 R 中创建地形图

2023-11-30

我正在尝试创建一个脚本,该脚本将为给定的一组坐标生成二维地形或等高线图。我的目标类似于

contour(volcano)

但对于用户设置的任何位置。事实证明,这具有惊人的挑战性!我努力了:

library(elevatr)
library(tidyr)

# Generate a data frame of lat/long coordinates.
ex.df <- data.frame(x=seq(from=-73, to=-71, length.out=10), 
                       y=seq(from=41, to=45, length.out=10))

# Specify projection.
prj_dd <- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"

# Use elevatr package to get elevation data for each point.
df.sp <- get_elev_point(ex.df, prj = prj_dd, src = "epqs")

# Convert from spatial to regular data frame, remove extra column.
# Use tidyr to convert to lat x lon table with elevation as fill.
# Sorry for the terrible code, I know this is sloppy.
df <- as.data.frame(df.sp)
df$elev_units <- NULL
df.w <- df %>% spread(y, elevation)
df.w <- as.matrix(df.w)

这将创建一个类似于以下的矩阵volcano数据集但充满了NAs,但 10 个纬度/经度对与高程数据除外。contour可以处理NAs,但结果是contour(df.w)上面只有一条细线。我不知道从这里该去哪里。我只是需要更多积分吗?预先感谢您的任何帮助——我对 R 还很陌生,我想我在这个项目上已经付出了太多的努力。


抱歉延迟回复。我想我需要检查一下elevatr问题!

我会用elevatr::get_elev_raster(),它返回一个可以直接绘制的栅格对象raster::contour().

下面的代码示例以相当粗略的分辨率抓取较小的区域。不过,最终的轮廓看起来不错。

library(elevatr)
library(raster)

# Generate a data frame of lat/long coordinates.
ex.df <- data.frame(x=seq(from=-73, to=-72.5, length.out=10), 
                    y=seq(from=41, to=41.5, length.out=10))

# Specify projection.
prj_dd <- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"

# Use elevatr package to get elevation data for each point.
elev <- get_elev_raster(ex.df, prj = prj_dd, z = 10, clip = "bbox")

raster::contour(elev)

enter image description here

如果需要使用的话graphic::contour(),您需要首先将光栅对象转换为矩阵raster::as.matrix(elev)。但这会翻转坐标,我还没有花足够的时间来尝试弄清楚这一部分......希望raster解决方案适合您。

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

在 R 中创建地形图 的相关文章

  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in
  • 从每小时中提取/子集分钟值

    我的数据框包含以下格式的日期值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
  • 如何从R中串扰的filter_select中删除(全部)?

    我遵循图 16 7 的示例https plotly r com client side linking html https plotly r com client side linking html并且无法弄清楚为什么有一个名为 全部 的
  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • 如何更改 r 中的树状图标签

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

    我有来自离散选择实验 DCE 的数据 该实验研究了来自不同行业的个人的招聘偏好 我已经格式化为长格式 我想使用 mlogit 进行建模 我已导出数据 并且可以使用 asclogit 命令在 Stata 中成功运行模型 但在 R 中运行时遇到
  • 在防风草模型上使用 VIP 包计算重要性度量

    我正在尝试使用 vi firm 在防风草中制作的逻辑回归模型上计算特征重要性 对于正则表达式 我将使用 iris 数据集并尝试预测观察结果是否为 setosa iris1 lt iris gt mutate class case when
  • R 中的点图每行有多个值

    我有以下 R 输入文件 car 1 car 2 car 3 car2 1 car2 2 car2 3 然后 我使用以下命令来绘制图表 autos data 点图 autos data V2 autos data V1 但这将每个汽车和 ca
  • 如何通过组度量的平均值在 df 内排列 dplyr:: 组?

    借鉴吴卡拉的设计https stackoverflow com a 26555424 9350837 https stackoverflow com a 26555424 9350837答案 我希望根据各个组汇总测量的平均值对分组 df 进
  • 将模式的所有元素与向量以相同的顺序匹配

    我创建了一个函数yes seq需要两个参数 一个模式pat和数据dat 该函数以相同的顺序查找数据中是否存在模式 例如 dat lt letters 1 10 dat 1 a b c d e f g h i j pat lt c a c g
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • 使用 R SOAP (SSOAP) 检索数据/抓取

    在 B cycle 页面 www bcycle com whowantsitmore aspx 上 我试图抓取投票的位置和值 The URL http mapservices bcycle com bcycleservice asmx ht
  • R 中具有 p 值的相关矩阵

    假设我想要传导相关矩阵 library dplyr data iris iris gt select if is numeric gt cor y iris Petal Width method spearman gt round 2 现在
  • 如何在R中创建for循环? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 R 编程中启动 for 循环 https stackoverflow com questions 4162363 how to start a for loop in r programmin
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • 基本 dyplr 函数给出错误:“check_dots_used”

    试图找出为什么我会收到此错误 以前从未见过 谷歌没有帮助 check dots used action warn 中的错误 未使用参数 action warn 我在下面的非常基本的试验中收到错误 而且在 group by count 中也收
  • 使用矢量相应地更改传单线条的颜色

    无论如何 是否可以根据某些变量的值更改传单线条的颜色 我用谷歌搜索 发现了这个link http hgoebl github io Leaflet MultiOptionsPolyline demo 然而 我想知道是否有一种简单的方法可以在
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • ggplot2 + 使用比例 X 的日期结构

    我真的需要帮助 因为我已经迷路了 我正在尝试创建一个折线图 显示几个团队一年来的表现 我将一年分为几个季度 2012 年 1 月 1 日 2012 年 4 月 1 日 2012 年 8 月 1 日 12 1 12 并将 csv 数据帧加载到
  • 在 R 中读入原始二进制数据并将其转换为整数

    我有一个二进制文件 其中包含编码为不同长度 主要是 2 4 字节 的有符号或无符号整数的数值 为了处理这些数据 我将文件的所需部分读取为raw向量与readBin 然后尝试将其转换为十进制 问题是 R的内置函数有限制 我不太明白 比如没有l

随机推荐

  • ASP.Net 按钮单击事件未触发

    这或许与这个问题 但我有更多的信息 最近 在使用 Linq 编写了一些新代码后 我将 ASP Net 应用程序更新到了 NET 3 5 现在我的页面间歇性地停止触发事件处理程序 我将范围缩小到带有 Ajax 的页面 并且我认为是 Scrip
  • C 编译错误:“可变大小的对象可能未初始化”

    为什么我使用以下代码收到错误 可变大小的对象可能未初始化 int boardAux length length 0 我假设您正在使用 C99 编译器 带有支持动态大小的数组 您的代码中的问题是 当编译器看到您的变量声明时 它无法知道数组中有
  • ASP.Net Identity 注销所有会话

    如何使用 ASP NET Identity 注销所有会话 假设您使用同一用户从两个不同的浏览器登录 当用户从一个浏览器注销时 另一个浏览器的会话也应该失效 我需要这个来使用户在更改密码时的所有会话无效 您可以使用以下代码使用 ASP Net
  • 在 Nexus 中部署工件时出错

    我在 Nexus 服务器中部署自己的存储库中的工件时遇到错误 无法部署工件 无法传输工件 无法传输文件 http my artifact 返回代码为 400 我让 Nexus 与一个自定义存储库 my repo 一起运行 并使用下一个 Ma
  • 在作业中进行大量选择后,Spring 批处理内存不足

    我的工作遇到了问题 我正在尝试从数据库读取记录并写入txt 文件 数据库包含 1 800 000 条记录 有 149 列 问题是 select 位于 jobConfig xml 中的 bean mysqlItemReader 中 但是 我认
  • spring MVC POST 表单的大小限制?

    我有一个表格
  • 将存储库公开为 IQueryable

    我想将存储库公开为 IQueryable 类型 该存储库使用 Linq to NHibernate 与数据库进行通信 谁能指出我的示例实现吗 例如 我的存储库上相应的 GetEnumerator 实现是什么样子 Edit 这样的事情合适吗
  • 使用passport.js在node.js中进行身份验证后重定向到上一页

    我正在尝试使用node js express 和passport js 建立登录机制 登录本身工作得很好 会话也用 redis 很好地存储 但在提示用户进行身份验证之前将用户重定向到他开始的位置时确实遇到了一些麻烦 例如用户点击链接http
  • NumberField 或如何让 TextField 输入 Double、Float 或其他带点的数字

    根据评论这个问题我做了一个自定义的 SwiftUIView基于一个TextField 它使用数字键盘 只能输入数字和点 只能输入一个点 点 并且可以通过Bindable Double State价值通过View用于输入 但有一个错误 当您删
  • iOS 上的 CVOpenGLESTextureCache 与 glTexSubImage2D

    我的 OpenGL 应用程序使用 OpenGL 全屏渲染纹理并定期更新其中的一部分 到目前为止 我一直在使用 glTexImage2D 来推送初始纹理 然后使用 glTexSubImage2D 更新脏区域 为此 我使用单缓冲 这效果很好 我
  • 大数的质因数分解[关闭]

    Closed 这个问题是无关 目前不接受答案 我想求小于10 12的大数的质因数分解 我得到了这个代码 用java public static List
  • 类工厂方法实现

    因此 我正在研究 Objective C 的 Apple 文档 在开始 iphone 开发之前 其中一项练习指出 我应该创建一个指定的初始值设定项 具有 3 个参数 和合适的工厂方法 现在我根据我的理解这样做了 但我无法实现工厂方法 因为我
  • 以编程方式清除 Android 上 PhoneGap/Cordova 应用程序的缓存以模拟全新安装?

    这与我之前的问题有关 每次安装应用程序时 如何清除 Android 模拟器上应用程序的 localStorage 它还建立在 如何清除 Android 应用程序缓存 and 如何以编程方式清除应用程序数据 上述问题都没有给出适用于 Andr
  • 新线程的异步等待行为

    我试图理解 async await 的精确行为 但在理解它时遇到了一些麻烦 考虑这个例子 public async void StartThread while true SomeOtherClass SomeSynchronousStuf
  • win 秒更新后 MS-access 无法捕获树视图事件

    使用 TreeView MSComctlLib TreeCtrl 2 的 Access 2010 应用程序按预期显示和填充 但在 Windows 安全补丁之后突然不会将事件触发回 VBA 尝试回滚 syswow64 中的 MSCOMCTL
  • 获取远程PC的日期时间?

    是否有任何类可用于获取 net 中远程 PC 的日期时间 为此 我可以使用计算机名称或时区 对于每种情况 是否有不同的方法来获取当前日期时间 我使用的是 Visual Studio 2005 我给你一个解决方案 使用WMI 您可能需要也可能
  • 如何使用请求模块下载,然后上传文件而无需中间文件

    我想先下载一个图像文件到服务器 然后将该文件上传到其他服务器 如果没有download file step 这将非常简单 var fs require fs var path tmp test png var formData method
  • 带 bo​​otstrap.css 的 webpack 不起作用

    这是我的webpack config js file var ExtractTextPlugin require extract text webpack plugin webpack require webpack module expo
  • 括号可以使用任意标识符作为参数吗? C++

    例如 是 const int someInt 有效代码 如果是这样 该声明与 const int someInt 您可以在两边放置任意多个括号表达式而不改变含义 但你不能对类型做同样的事情 特别是 正如其他人指出的那样 代码中的括号将含义从
  • 在 R 中创建地形图

    我正在尝试创建一个脚本 该脚本将为给定的一组坐标生成二维地形或等高线图 我的目标类似于 contour volcano 但对于用户设置的任何位置 事实证明 这具有惊人的挑战性 我努力了 library elevatr library tid