R / GIS:批量处理,距离和高程计算

时间:2012-01-02 09:05:52

标签: r gis

我的数据框df有三个变量:citystatecountry。我想计算3件事

  1. 计算每行的纬度/经度。
  2. 计算每个城市与任意点的距离,比如国家资本
  3. 从纬度/经度计算每个点的高程。
  4. 我可以将dismo包用于1,但无法找到从df“批量处理”的方法,而不是直接复制和粘贴城市,州和国家/地区名称geocode(c())代码。至于2和3,我完全被难住了。任何帮助将不胜感激。

    编辑注:对于这篇文章的其他读者......我很感谢Paul和Spacedman的帮助。系统不允许我将多个响应标记为正确。我给了保罗竖起大拇指,因为他在太空人面前回应。请阅读他们两人花时间写的内容。感谢。

2 个答案:

答案 0 :(得分:3)

我将分享我对每一点的看法:

对于1.您可以使用paste为地理编码创建输入向量:

df$geocode_string = with(df, paste(city, state, country, sep = ", "))
coords_latlong = geocode(df$geocode_string)

关于第2点,在将df转换为spSpatialPointsDataFrame提供的类之后,请查看coordinates中的sp函数}},你可以使用spDistsN1找到所有点到另一个点的距离。

决赛有点棘手,找到你需要DEM(数字高程模型)的高度。也许有一种更为简单的方法geocode,我不知道。

答案 1 :(得分:2)

您可以使用geonames.org服务查询SRTM或ASTER高程数据库中的位置:

http://www.geonames.org/export/web-services.html

你甚至可以使用我的geonames包:

https://r-forge.r-project.org/projects/geonames/

让生活更轻松。