使用 spTransform 将 SpatialPolygonsDataFrame 转换为投影坐标

Convert SpatialPolygonsDataFrame to projected coordinates using spTransform

我正在尝试进行点模式分析。为此,我必须转换一个 SpatialPolygonsDataFrame,以便它包含投影坐标而不是曲线坐标。但是我不断收到同样的错误:

as.owin.SpatialPolygons(Netherlands_flat) 中的错误: 只有投影坐标可以转换为 spatstat class 个对象

这是我用于边框的数据:

download.file("http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces.zip",destfile="ne_10m_admin_1_states_provinces.zip")
unzip("ne_10m_admin_1_states_provinces.zip",exdir="NaturalEarth")
border <- shapefile("NaturalEarth/ne_10m_admin_1_states_provinces.shp")

#extract the border of the Netherlands 
Netherlands <- border[paste(border$iso_a2)=="NL",]

我可以用这些事件来绘制荷兰的情节。

#Plot 
plot(babesia$Longitude, babesia$Latitude, pch="+",cex=0.5, xlim=c(3.360782, 7.227095), ylim = c(50.723492, 53.554584))
plot(Netherlands, add = T)

Netherlands with events

但是在使用 Spatstat 包后,我一直 运行 这个错误。

我试过这个代码来转换坐标

coord_netherlands <- coordinates(Netherlands)
proj4string(Netherlands)
summary(Netherlands)

Netherlands_flat <- spTransform(coord_netherlands, CRS("+proj=longlat +datum=WGS84 +no_defs"))
Netherlands <- as.owin(Netherlands_flat)

as.owin.SpatialPolygons(Netherlands_flat) 中的错误: 只有投影坐标可以转换为 spatstat class 个对象

有谁知道如何解决这个问题?非常感谢您!

你快到了。你只需要在调用spTransform时投影到另一个坐标系即可。您目前要求地球球体模型(经度、纬度)的地理坐标。相反,您应该要求一个平面 (x,y) 坐标系。这可能是荷兰适当区域的 utm 坐标,或者可能有更好的选择。您的事件还需要从 (long,lat) 转换到相同的坐标系。也许您可以查看 spatstat 包的 shapefile 插图作为示例。或者查看本网站上的 spatstat 标签。我正在 phone 做我不能提供详细的帮助。 祝你好运。

如果您的活动在名为 xydata.frame 中,您可以像这样投影到 UTM 区域 31N:

xy <- data.frame(lon = 1:2, lat = 1:2)
coordinates(xy) <- ~lon+lat
proj4string(xy) <- CRS("+proj=longlat +datum=WGS84")
xy
# SpatialPoints:
#      lon lat
# [1,]   1   1
# [2,]   2   2
# Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84
# +ellps=WGS84 +towgs84=0,0,0 
events.utm <- spTransform(xy, CRS("+proj=utm +zone=31N +datum=WGS84"))
events.utm
# SpatialPoints:
#           lon      lat
# [1,] 277438.3 110598.0
# [2,] 388786.7 221094.9
# Coordinate Reference System (CRS) arguments: +proj=utm +zone=31N
# +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0