Mam duży plik rastrowy (129600 na 64800 pikseli) z globalnymi częściami wód (1 bit wartości 0 i 1) i próbuję wydobyć linie brzegowe oceanów i wód śródlądowych.
Próbowałem z ArcGIS i QGIS przekonwertować z rastra na polilinię, ale to trwa wieki.
Czy ktoś zna lepszy / szybszy sposób (Python lub R) lub lepsze narzędzie do tego zadania?
Aktualizacja
- R: rasterToContour może być szybki i precyzyjny, ale jeśli masz bardzo duży zestaw danych, taki jak mój (8 398,080 000 pikseli), potrzebujesz bardzo dużej ilości pamięci RAM (ponad 16 GB) lub zmuszasz R do większego przetwarzania na dysku twardym i to zajmie także wieki.
- Python / GDAL: gdal_poligonize tworzy wielokąty zamiast polilinii
Aktualizacja 2
- R rasterToContour: rasterToContour nie zapewnia oczekiwanych rezultatów. W porównaniu do ArcGIS (raster do wielokąta, a następnie funkcja do linii) nie wyodrębnia dokładnego obrysu pikseli, jak pokazano w poniższych przykładach.
AKTUALIZACJA 3
Python / GDAL: Uruchomiłem gdal_polygonize z wiersza poleceń przeciwko ArcGIS na testowym zbiorze danych, a wyniki były bardzo jasne:
- gdal: 49 sekund
- ArcGIS: 1,84 sekundy