Moim celem jest zmodyfikowanie istniejącego pliku kształtu przez scalenie niektórych wielokątów.
Po zaimportowaniu pliku kształtu i użyciu polecenia UnionSpatialPolygons otrzymuję kontur wielokąta, który chcę.
Jednak jest to teraz obiekt SpatialPolygons, a nie SpatialPolygonsDataFrame, więc nie jestem w stanie wyeksportować go do pliku kształtu za pomocą writeOGR.
Jak mogę obejść ten problem?
shapefile
cartography
r
ogr
Jan
źródło
źródło
Odpowiedzi:
Jak sama nazwa wskazuje, SpatialPolygonsDataFrame jest w zasadzie tylko obiektem SpatialPolygons z dołączonymi danymi (tabela atrybutów). Dane muszą mieć co najmniej tyle wierszy, ile jest funkcji
----EDYTOWAĆ----
Jeśli chcesz przekonwertować
SpatialPolygonsDataFrame
plecy naSpatialPolygons
obiekt, musisz po prostu zająć się strukturą obiektu w R.źródło
IDs
podczas wykonywania poprawnie podałeś argumentUnionSpatialPolygons
. W przeciwnym razie możesz mieć problem ze sprecyzowaniemdata
argumentu podczas ponownej konwersji naSpatialPolygonsDataFrame
.data=as.data.frame("yourData")
? Po rozpuszczeniu wewnętrznych wielokątówunionSpatialPolygons(...)
chciałbym zapisać wynik jako nowyunion
problemu.Problemy:
1: wynikiem UnionSpatialPolygons jest wielokąt przestrzenny
2: przekształcenie wyniku z powrotem w ramkę danych wielokąta przestrzennego jest prawdziwym bólem
-za. potrzebujesz bardzo dokładnej ramki danych, aby dołączyć do wielokąta przestrzennego
-b. dane użyte w UnionSpatialPolygons zawierają więcej wierszy niż dane wyjściowe i nie są sformatowane w sposób, który jest potrzebny.
Moje (brzydkie) rozwiązanie:
źródło