Как сохранить шейп-файл после преобразования файла crs из существующего шейп-файла в R? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь с этим кодом, но он не работает. Пожалуйста, помогите мне с этим вопросом. Спасибо.

readshp <- readOGR(file.path(nhgisdir, “file1.shp”))`enter code here`
trshape <- spTransform(readshp, "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0”)
writeOGR(trshape, file.path(workdir,”file1_tr.shp"), driver="ESRI Shapefile”) # This one goes  wrong!!

1 Ответ

0 голосов
/ 25 апреля 2020

Убедитесь, что вы указали все необходимые аргументы функций, которые вы используете для их работы. Также убедитесь, что вы используете только один тип кавычек, чтобы открывать и закрывать строки. Ваш вопрос использует два разных типа и ", что, вероятно, вызывает ошибки, так как r не знает, где начинаются и заканчиваются ваши команды.

Теперь функциям для чтения шейп-файлов readOGR нужны некоторые аргументы: dsn, каталог ваших шейп-файлов и layer, фактический шейп-файл, но без расширения файла. Функция writeOGR работает аналогично, но имеет различное поведение в зависимости от используемого вами драйвера. Для ESRI Shapefile аргумент dsn должен быть именем файла, в который вы хотите сохранить шейп-файл, включая расширение. И layer будет именем файла без расширения.

Вся эта информация, и какой тип аргументов должен быть указан для какого драйвера, содержится в документации rgdal . И есть множество учебных пособий, например, от доктора Эмили Берчфилд

Наконец, вот пример кода:

library(rgdal)
in_shape <- readOGR(dsn="/path/to/shape/", layer="shapefile") 
transformed_shape <- spTransform(in_shape, CRS("+proj=longlat +ellps=GRS80"))
writeOGR(transformed_shape, dsn="/path/to/shape/exported_shapefile.shp", layer="exported_shapefile", driver="ESRI Shapefile")
...