纬度/经度转换到UTM循环(R代码) [英] Lat/Long Conversion to UTM Loop (R code)

查看:102
本文介绍了纬度/经度转换到UTM循环(R代码)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对初学者的问题事先表示歉意,但是R空间分析对我来说是全新的.

I apologize in advance for my beginner question, but R spatial analysis is completely new to me.

我正在尝试将整个数据集(纬度,经度)转换为适用于厄瓜多尔的UTM(区域= 17).我下面的代码仅转换第一个纬度/经度坐标.任何建议将不胜感激!

I'm trying to convert an entire dataset (lat,long) into UTM for Ecuador (zone=17). My code below is only converting the first lat/long coordinates. Any advice would be greatly appreciated!

require(proj4)
require(rgdal)
require(sp)
require(proj4)

## Load dataset, total h7_x length = 327463
h7 <- read.csv('h7.csv', header=T)
h7 <- data.frame(x=h7$h7_x, y=h7$h7_y)

## Convert Lat/Long to UTM
proj4string <- "+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"

## Transformed data
pj.h7 <- project(h7, proj4string, inverse=TRUE)
latlon.h7 <- data.frame(lat=pj.h7$y, lon=pj.h7$x)

推荐答案

您可以执行以下操作:

library(rgdal)

## Load dataset, total h7_x length = 327463
h7 <- read.csv('h7.csv')
coordinates(h7) <- ~ h7_x + h7_y
proj4string(h7) <- CRS("+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs")

latlon.h7 <- spTransform(h7, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84"))

现在是一个可复制的示例(这是您应该设置的问题,引用其他人没有的文件没有帮助.)

And now a reproducible example (this is how you should set up a question, it is not helpful to refer to files that others do not have.)

# example data
d <- data.frame(x=c(830816, 848933, 773072), y=c(9933229, 9861005, 9755835), id=1:3)

# create a SpatialPoints object 
coordinates(d) <- ~ x + y
proj4string(d) <- CRS("+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs")

# transform
latlon <- spTransform(d, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84"))
coords <- coordinates(latlon)

这篇关于纬度/经度转换到UTM循环(R代码)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆