У меня проблемы с запуском sf
на моем компьютере (версия R 4.3.3, Linux Ubuntu 22.04.4). При попытке импортировать шейп-файл с помощью st_read()
я сталкиваюсь со следующими сообщениями об ошибках и предупреждениями:
> parks <- sf::st_read("Canada/PAs/ProtectedConservedArea_2023.gdb")
Multiple layers are present in data source /run/user/1472454/gvfs/smb-share:server=files.ok.ubc.ca,share=rsmarcus/GitHub/NDVI/Canada/PAs/ProtectedConservedArea.gdb, reading layer `ProtectedConservedArea'.
Use `st_layers' to list all layer names and their type in a data source.
Set the `layer' argument in `st_read' to read a particular layer.
Reading layer `ProtectedConservedArea' from data source
`/Canada/PAs/ProtectedConservedArea.gdb' using driver `OpenFileGDB'
Error: OGR error: cannot export to WKT
In addition: Warning messages:
1: In CPL_read_ogr(dsn, layer, query, as.character(options), quiet, :
automatically selected the first layer in a data source containing more than one.
2: In CPL_read_ogr(dsn, layer, query, as.character(options), quiet, :
GDAL Message 1: organizePolygons() received a polygon with more than 100 parts. The processing may be really slow. You can skip the processing by setting METHOD=SKIP, or only make it analyze counter-clock wise parts by setting METHOD=ONLY_CCW if you can assume that the outline of holes is counter-clock wise defined
3: In CPL_read_ogr(dsn, layer, query, as.character(options), quiet, :
GDAL Error 1: PROJ: proj_as_wkt: std::bad_alloc
В настоящее время я использую sf
версию 1.0-16 (с GEOS 3.12.1, GDAL 3.8.4 и PROJ 9.3.1) - эти ошибки появились только после недавнего обновления моих пакетов. До обновления своих пакетов я мог без проблем использовать все функции sf
, включая импорт того же шейп-файла. Я пробовал обновить все свои пакеты на случай, если возникла проблема с зависимостью (с помощью функции update.packages()
), но это не устранило проблему.
Я прикрепил строку воспроизводимого кода, используя шейп-файл охраняемых территорий Канады, который можно получить здесь: https://data-donnees.az.ec.gc.ca/data/species/protectrestore/canadian-protected -conserved-areas-database/Базы данных
library('sf')
parks <- sf::st_read("Canada/PAs/ProtectedConservedArea_2023.gdb")
Я надеюсь решить эту проблему, не прибегая к установке более старой версии пакета для запуска моего кода!
Хм, этот текст ошибки появляется только здесь github.com/r-spatial/sf/blob/… что заставляет меня думать, что это связано с обработкой координатных ссылок. Моя система, кажется, справляется, создавая WKT crs на основе Canada Albers EA Conic...
@Spacedman, я не думаю, что это связано с дисковым пространством, поскольку я запускаю его на машине с 500 ГБ ОЗУ, так что это не должно быть проблемой. у меня также есть GEOS 3.12.1, PROJ 9.3.1 и GDAL 3.8.4, поэтому SF должен работать с ними
Хорошо, после многократных переустановок sf
мне удалось заставить его работать. Я полагаю, что проблема связана с установкой GDAL: я снова установил GDAL, выполнив действия, описанные здесь, и после этого смог успешно загрузить и использовать sf
.
У меня работает с версией 1.0-16, до которой я только что обновился. Мои базовые версии библиотеки для sf: «Связывание с GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1». Я получаю те же предупреждения OGR, что и вы, но не ошибку WKT. Это не что-то вроде того, что вам не хватает места на диске? Может быть, есть какой-то промежуточный этап, на котором нужно записать загрузку WKT? Теперь гадаю...