首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:如何将EPSG 25832坐标转换为EPSG 4326坐标

R:如何将EPSG 25832坐标转换为EPSG 4326坐标
EN

Stack Overflow用户
提问于 2017-10-10 10:12:46
回答 1查看 2.5K关注 0票数 0

我有一个csv文件,其中三列都是value x y格式。我知道x和y指的是EPSG 25832。我需要将这些坐标转换为EPSG 4326,因为当我在shapefile上调用summary()来绘制数据时,我得到了这一行:

代码语言:javascript
复制
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0]

WGS84对应于EPSG 4326,对吗?

通过阅读其他答案,我了解到我需要使用rgdal包中的spTransform函数。然而,我没有找到任何关于函数用法的详细解释。请帮帮我!

文档对我来说很神秘(我对R和空间数据不熟悉),所以它帮不了我。

编辑:添加dput(head(data))的输出

代码语言:javascript
复制
structure(list(Value = c(10L, 9L, 17L, 13L, 10L, 6L), X = c(687199.0608, 
687199.0608, 687199.0608, 687199.0608, 687199.0608, 687199.0608
), Y = c(4928179.721, 4928179.721, 4928179.721, 4928179.721, 
4928179.721, 4928179.721)), .Names = c("Value", "X", "Y"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))
EN

回答 1

Stack Overflow用户

发布于 2017-10-10 10:58:25

这应该就行了!

问题是..。你需要用CRS定义两个坐标系统..。这些都是由他们的EPSG代码定义的。然后,您只需使用spTransform :)来转换它们,但这当然只有在为具有坐标和proj4string的数据分配正确的坐标系时才有可能。

代码语言:javascript
复制
library(rgdal)
library(data.table)
d <- structure(list(Value = c(10L, 9L, 17L, 13L, 10L, 6L), X = c(687199.0608, 
687199.0608, 687199.0608, 687199.0608, 687199.0608, 687199.0608
), Y = c(4928179.721, 4928179.721, 4928179.721, 4928179.721, 
4928179.721, 4928179.721)), .Names = c("Value", "X", "Y"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

d = as.data.table(d)
d = d[,.(X,Y)]
coordinates(d) <- c("X","Y")
proj4string(d) <- CRS("+init=epsg:25832") 
CRS.new <- CRS("+init=epsg:4326") # WGS 84
dnew <- spTransform(d, CRS.new)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46664164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档