Użyj Rcartogram na obiekcie SpatialPolygonsDataFrame
Próbuję zrobić to samo, co zadałem w tym pytaniu,Mapa kartogramu i choropleth w R, ale zaczynając od SpatialPolygonsDataFrame i mając nadzieję, że skończy się na tym samym typie obiektu.
Mogę zapisać obiekt jako plik kształtu, użyjscapetoad, otwórz go ponownie i przekonwertuj, ale wolałbym mieć to wszystko w R, aby procedura była w pełni powtarzalna, i aby móc automatycznie kodować dziesiątki odmian.
Rozwidliłem kod Rcartogram na github i do tej pory dodałem moje wysiłkitutaj.
Zasadniczo to, co robi to demo, tworzy SpatialGrid na mapie, sprawdza gęstość zaludnienia w każdym punkcie siatki i przekształca ją w macierz gęstości w formacie wymaganym dlacartogram()
pracować nad. Jak na razie dobrze.
Ale, jak interpolować oryginalne punkty mapy na podstawie wynikucartogram()
?
Są tu dwa problemy. Pierwszym jest uzyskanie mapy i siatki do tych samych jednostek, aby umożliwić interpolację. Drugim jest dostęp do każdego punktu każdego wielokąta, interpolowanie go i utrzymywanie ich w odpowiedniej kolejności.
Siatka jest w jednostkach siatki, a mapa jest w rzutowanych jednostkach (w przypadku przykładowego longlat). Siatka musi być rzutowana na longlat lub mapę na jednostki siatki. Moją myślą jest stworzenie fałszywego KSR i wykorzystanie go wraz zspTransform()
funkcja wpackage(rgdal)
, ponieważ to obsługuje każdy punkt obiektu przy minimalnym zamieszaniu.
Dostęp do każdego punktu jest trudny, ponieważ jest kilka warstw w dół obiektu SpPDF: obiekt> wielokąty> Wieloboki> linie> myślniki. Jakieś pomysły, jak uzyskać do nich dostęp, zachowując nienaruszoną strukturę ogólnej mapy?