How to convert csv to shp in R

六眼飞鱼酱① 提交于 2019-12-21 23:05:29

问题


I have been trying for the past couple of days to convert a csv to shapefile. I know I can easily do in QGIS or Arc but would like to add this process into my existing R code.

So i can read in the csv with no issues

MyData <- read.csv(file="c:/TheDataIWantToReadIn.csv", header=TRUE, sep=",")

I found the code below from the Packages Shapefile help guide. However I can't seem to find a way for it to work on my code. My rows are each a point, therefore my shapefile I am trying to create will be all points. I don't have an Id column, however I do have x and y data in two separate columns.

dd <- data.frame(Id=c(1,2),X=c(3,5),Y=c(9,6))
ddTable <- data.frame(Id=c(1,2),Name=c("Item1","Item2"))
ddShapefile <- convert.to.shapefile(dd, ddTable, "Id", 1)
write.shapefile(ddShapefile, "c:/test", arcgis=T)

Any help would be greatly appreciated.


回答1:


I would suggest using rgdal rather than shapefiles. In order to use rgdal, you'll have to check out the system requirements from http://cran.revolutionanalytics.com/web/packages/rgdal/.

The following code should get you in the right direction:

install.packages(c("rgdal", "sp"))
library(rgdal)
library(sp)
MyData <- read.csv(file="c:/TheDataIWantToReadIn.csv", header=TRUE, sep=",")

The following code snippet comes from Mapping in R using the ggplot2 package.

class(MyData) # data.frame
coordinates(MyData)<-~longitude+latitude # whatever the equivalent is in your 
# data.frame
class(MyData) # [1] "SpatialPointsDataFrame"
          # attr(,"package")
          # [1] "sp"

The following code snippet comes How to write a shapefile with projection - problem solved

writeOGR(crest.sp, "c:/test", "layer name", driver = "ESRI Shapefile")


来源:https://stackoverflow.com/questions/30127293/how-to-convert-csv-to-shp-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!