Данные геокода - Как использовать .kml файл в R - PullRequest
2 голосов
/ 27 февраля 2020

Я использовал некоторые данные с открытым исходным кодом для создания картограмм, показывающих плотность населения в Республике Ирландия c, используя пакет leaflet в R.

Найден подходящий файл .kml, который на основе тех же геокодов, что и в моей таблице плотности населения (она находится на уровне "маленькой области", которая разбивает страну на примерно 19 000 кусков).

У меня есть некоторый код для импорта файла .kml:

ireland <- readOGR("Source Data/Small_Areas__Generalised_100m__OSi_National_Boundaries.kml")

и фрейм данных df_merged, который имеет поля GEOGID и density (и несколько других). Код для создания карты:

popup1 <- paste0("<span style='color: #7f0000'><strong>Data</strong></span>",
                 "<br><span style='color: salmon;'><strong>Small Area: </strong></span>", df_merged$GEOGID, 
                 "<br><span style='color: salmon;'><strong>Population: </strong></span>", df_merged$T1_1AGETT,
                 "<br><span style='color: salmon;'><strong>Area: </strong></span>", df_merged$Shape__Area,
                 "<br><span style='color: salmon;'><strong>Density: </strong></span>", df_merged$density
)

mymap_density <- leaflet() %>%

  addProviderTiles("Esri.WorldGrayCanvas",
                   options = tileOptions(minZoom = 5,
                                         maxZoom = 18,
                                         opacity = 1)) %>%

  addPolygons(data = ireland,
              fillColor = ~palette_density(df_merged$density),
              fillOpacity = 0.5,
              color = "darkgrey",
              weight = 0.1,
              popup = popup1) %>%

  addLegend(position = "topleft",
            colors = my_color_scheme,
            labels = c("Lowest", "", "", "", "", "", "", "", "Highest"),
            opacity = 0.6,
            title = "Population Density")

Карта dr aws в порядке, но есть проблема: совершенно очевидно, что данные для данного геокода не отображаются в правильной части карта. Например, на карте ниже геокод A048053001 представляет небольшую городскую зону в Корке, но данные для этого геокода показаны в совершенно другом месте на карте. Карта говорит мне, что большая пустая область сельской местности имеет крошечную область и огромную плотность населения, которая является ненормальной.

Я действительно ничего не знаю о внутренностях файлов .kml, поэтому я ' Я не уверен, как go об исправлении этой проблемы. Ни в одной точке кода я не сказал R, что поле df_merged$GEOGID должно быть связано с определенным многоугольником внутри файла .kml - поэтому я пропустил этап или допустил ошибку здесь?

Если Я импортирую файл .kml в Google Планета Земля, такой проблемы не возникает, что, как мне кажется, исключает какие-либо проблемы с базовыми данными (предоставленными правительством Ири sh, которое в любом случае должно быть надежным источником).

Приведенный выше код на самом деле не является воспроизводимым примером, поскольку он опирается на внешние файлы данных.

Может кто-нибудь предложить какой-либо совет, пожалуйста?

Спасибо.

enter image description here

...