У меня есть большой растровый файл (129600 на 64800 пикселей) с глобальными водоемами (значения 1 бит 0 и 1), и я пытаюсь извлечь береговые линии океана и внутренних вод.
Я пытался с ArcGIS и QGIS конвертировать из растра в полилинию, но это занимает много времени.
Кто-нибудь знает лучший / более быстрый способ (Python или R) или лучший инструмент для этой задачи?
Обновить
- R: rasterToContour может быть быстрым и точным, но если у вас очень большой набор данных, такой как у меня (8 398 080 000 пикселей), вам нужен либо очень большой объем ОЗУ (более 16 ГБ), либо вы заставляете R делать больше обработки на жестком диске, и это также займет много времени.
- Python / GDAL: gdal_poligonize создает полигоны вместо полилиний
Обновление 2
- R rasterToContour: rasterToContour не дает желаемых результатов. По сравнению с ArcGIS (растр-полигон, за которым следует объект-линия), он не извлекает точный контур пикселя, как показано в примерах ниже.
ОБНОВЛЕНИЕ 3
Python / GDAL: я запустил gdal_polygonize из командной строки для ArcGIS на тестовом наборе данных, и результаты были предельно ясны:
- гдал: 49 секунд
- ArcGIS: 1,84 секунды