1

我已经阅读了 R 中的 lodgepole 松种子规划单位的 shapefile readShapePoly,就像这样

spu <- readShapePoly("spus.shp")

当我单独绘制 spus 时,它们就会出现。

plot(spu, border=TRUE)

当我尝试将 shapefile 添加到我知道 spus 应该去的加拿大地图时,它们没有出现。

map("worldHires","Canada", xlim=c(-141,-110), ylim=c(45,65), col="gray90", fill=TRUE)
plot(spu, add=TRUE, border=TRUE)

我认为这是因为 shapefile 缺少 .prj 文件中包含的投影信息:

PROJCS["NAD_1983_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],
PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-126.0],PARAMETER["Standard_Parallel_1",50.0],
PARAMETER["Standard_Parallel_2",58.5],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0]]

的部分输出

summary(spu)

Object of class SpatialPolygonsDataFrame
Coordinates:
     min     max
x 642162.8 1870556
y 457057.2 1421478
Is projected: NA 
proj4string : [NA]
Data attributes:

表明没有投影信息与 R 中的 spu 对象相关联。我想我可以通过使用正确proj4string的 with来解决这个问题,readShapePoly,但找不到如何将 .prj 文件中的信息转换为 proj4 字符串。我该怎么做/这是正确的方法吗?

4

1 回答 1

3

要将 .prj 转换为 proj4,您可以使用命令行工具gdalsrsinfo,如此所述。

要从 R 运行它,您可以执行以下操作:

system('gdalsrsinfo "spus.prj"')

.prjspus.prj文件的完整(或相对于 wd)路径在哪里。

返回的信息中包含 proj4 字符串。

请注意,要按此处提供的方式工作,包含 gdalsrsinfo.exe 的路径应包含在系统 PATH 环境变量中。否则,您可以在调用中提供 gdalsrsinfo 的完整路径system

于 2014-05-01T00:37:30.810 回答