沉闷科学的掘墓人分享 http://blog.sciencenet.cn/u/Bearjazz

博文

R语言根据经纬度获得海拔数据

已有 11949 次阅读 2014-4-29 08:21 |个人分类:我的研究|系统分类:科研笔记| R语言, 计算, 获得, 提取, 经纬度

#R语言根据经纬度获得海拔数据

 

#编者信息

熊荣川

六盘水师范学院生物信息学实验室

xiongrongchuan@126.com

http://blog.sciencenet.cn/u/Bearjazz

Google earth上可以很容易的获得经纬度信息,但是海拔高度却不能直接提供,但据说其数据库中是有相应的海拔高度的数据的,下面是R语言爱好者使用R语言根据经纬度查询google数据库从而获取经纬度的代码:

(原文地址

http://stackoverflow.com/questions/21593868/extracting-elevation-from-website-for-lat-lon-points-in-australia-using-r

#预装函数

googEl <- function(locs)  {

  require(RJSONIO)

  locstring <- paste(do.call(paste, list(locs[, 2], locs[, 1],  sep=',')),

                    collapse='|')

 u  <-  sprintf('http://maps.googleapis.com/maps/api/elevation/json?locations=%s&sensor=false',

              locstring)

  res <- fromJSON(u)

  out <- t(sapply(res[[1]], function(x) {

    c(x[['location']]['lat'], x[['location']]['lng'],

      x['elevation'], x['resolution'])

  }))    

  rownames(out) <- rownames(locs)

  return(out)

}

 

#使用方法

数据的输入格式如下图,输入为表格(或矩阵)

mat =    read.excel("input.xlsx","详表" ) #表格输入

> mat = googEl(mat) #查询google earth 数据库

    lat      lng      elevation resolution

1 25.49222 108.1841 749.4119  152.7032    

2 29.09253 105.4095 329.5924  152.7032    

3 17.259      101.5063 1244.191     152.7032  

4 18.94167 104.8097 287.4106  152.7032    

5 21.03333 104.5    691.2963  152.7032    

> writeWorksheetToFile("output.xlsx",    data=mat, sheet="带海拔")   #输出结果




 

 




https://blog.sciencenet.cn/blog-508298-789635.html

上一篇:R语言构建遗传距离似的矩阵表格
下一篇:交流,请先作自我介绍
收藏 IP: 119.78.81.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-21 21:35

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部