【发布时间】:2018-05-21 15:43:53
【问题描述】:
我使用 R maptools 包加载一个形状文件
Subcat<-readShapeSpatial("Contour500/Catchments500.shp",proj4string = CRS('+init=epsg:4326'))
class(Subcat)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"
然后我加载另一个形状文件
load("Temperature/WCAdj.RData")
class(WcT$Geoloc)
[1] "SpatialPoints"
attr(,"package")
[1] "sp"
我想使用 sp 包中的 over 功能
over(WcT$Geoloc,Subcat)
但是当我运行它时,我得到了下一个错误
Error: identicalCRS(x, y) is not TRUE
这很奇怪,因为我对两个文件 CRS('+init=epsg:4326') 使用了相同的 CRS。我仔细检查并发现CRS的属性顺序略有不同
proj4string(Subcat)
[1] "+init=epsg:4326 +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0"
proj4string(WcT$Geoloc)
[1] "+init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
唯一的区别是属性的顺序(+ellps、+no_defs 和+datum),但所有值都相同。我通过使用再次加载 Subcat 解决了这个问题
Subcat<-readShapeSpatial("Contour500/Catchments500.shp",proj4string = CRS("+init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"))
但是我想知道是否有其他解决方案,因为我想避免将来出现同样的错误,并且想知道这个错误来自哪里。我在 (https://www.nceas.ucsb.edu/~frazier/RSpatialGuides/OverviewCoordinateReferenceSystems.pdf ) 和 SP 包文档 https://cran.r-project.org/web/packages/sp/sp.pdf 中检查了 CRS 定义的详细信息,但它们没有提供有关属性顺序的太多详细信息。
有人遇到过同样的问题吗?
有谁知道如何避免这种情况?
以防万一
sessionInfo()
R version 3.3.3 (2017-03-06)
…
other attached packages:
[1] rgeos_0.3-2 maptools_0.8-27 rgdal_0.8-11 sp_1.0-14
提前致谢!
【问题讨论】: