Mam shapefile przedstawiający oddalonych obszarów w Australii, uzyskany z Australian Bureau of Statistics:R - skazani na działce() - Farbowanie Shapefile wielokątów w oparciu o wartości szczeliny
http://www.abs.gov.au/AUSSTATS/[email protected]/DetailsPage/1270.0.55.005July%202011?OpenDocument
W tym samym adresem URL jest PDF "ASGS Remoteness Structure Edition 2011 Mapy PDF" - Próbuję odtworzyć pierwszą mapę z tego dokumentu PDF.
Czytałem w shapefile i dodaje informacje o kolorze do gniazda data
:
ra <- readShapeSpatial("RA_2011_AUST", delete_null_obj = TRUE)
[email protected]$COLOUR <- "#FFFFFF"
[email protected]$COLOUR[(as.numeric(as.character([email protected]$RA_CODE11)) %% 10) == 0] <- "#006837"
[email protected]$COLOUR[(as.numeric(as.character([email protected]$RA_CODE11)) %% 10) == 1] <- "#31A354"
[email protected]$COLOUR[(as.numeric(as.character([email protected]$RA_CODE11)) %% 10) == 2] <- "#78C679"
[email protected]$COLOUR[(as.numeric(as.character([email protected]$RA_CODE11)) %% 10) == 3] <- "#C2E699"
[email protected]$COLOUR[(as.numeric(as.character([email protected]$RA_CODE11)) %% 10) == 4] <- "#FFFFCC"
Jedyne co pozostaje mi zrobić, to działka mapa! To tutaj utknęłam ...
[email protected]
to lista 35 wielokątów, z których każdy ma szczelinę ID
, która jest indeksem ramki danych [email protected]
. Więc wszystko, co muszę zrobić, to powiedzieć plot()
, aby znaleźć kolor w [email protected]$COLOUR[ID]
. Cóż, niezupełnie. Każdy z 35 wielokątów (klasa "Wielokąty") ma własną listę wielokątów (klasa "Wielokąt"); w sumie jest 6902 wielokątów !!!
Moje zrozumienie plot()
polega na tym, że muszę przekazać mu wektor kolorów w tej samej kolejności, w jakiej będą drukowane wielokąty. Dlatego uważam, że będę musiał stworzyć wektor o długości 6902 z każdym elementem utrzymującym wartość koloru dla powiązanego wielokąta. Jak ja to robię?
Byłoby to łatwe, gdyby wielokąty zostały naniesione w porządku, ale tak nie jest. Każdy z 35 wielokątów ma szczelinę plotOrder
, która jest wektorem całkowitym, więc wektor koloru będzie prawdopodobnie musiał być uporządkowany według wartości w każdym z tych wektorów.
W tym momencie wszystko wydaje się nieco zbyt skomplikowane. Czy jestem całkowicie nie na miejscu?
Dzięki za porady!
Powinieneś czytać shapefiles, używając readOGR z pakietu rgdal, który będzie ładowany do danych projekcji, jeśli istnieje plik .prj z plikiem shape. – Spacedman