Я новичок в использовании R в географии.
Рабочий .kmz: https://www.cnrfc.noaa.gov/ - со второй капли внизу справа под панелью карты под названием «Загрузить файлы наложения», я загрузил и использую kml «Дренажные бассейны», который следует загрузить как «basins.kml»
library(rgdal)
library(tidyverse)
Если посмотреть на .kml в текстовом редакторе, похоже, что имя слоя KML - "cnrfc_09122018_basins_thin", поэтому читаем его с помощью:
cnrfc_basins <- readOGR("basins.kml", "cnrfc_09122018_basins_thin")
дает мне "Large SpatialPolygonsDataFrame".
Чтобы иметь возможность строить график, похоже, мне нужно «укрепить его» (?) И сделать более обычным data.frame
, поэтому из некоторых других сообщений, с которыми я сталкивался:
cnrfc_basins_fortify <- merge(broom::tidy(cnrfc_basins),
as.data.frame(cnrfc_basins), by.x="id", by.y=0)
построение с этим:
ggplot() + geom_path(data = cnrfc_basins_fortify, aes(x=long, y=lat, group = group)) +
coord_quickmap()
дает мне данные, которые я ожидаю:
Но для этих примерно сотни полигонов у меня есть сотни тысяч строк data.frame. Как уменьшить их, чтобы у меня была только одна строка для каждого многоугольника? (Каждый многоугольник, который представляет конкретный бассейн, уже имеет уникальный пятизначный идентификатор в столбце «Имя»). Чем меньше строк, тем проще работать с файлом и быстрее соединяться, когда я присоединяю данные к этим уникальным многоугольникам.
Любой совет очень ценится.
cnrfc_basins
вместоcnrfc_basins_fortify
- person G5W   schedule 16.03.2019st_read
, вы сможете объединить их с помощьюst_union
. - person G5W   schedule 16.03.2019