У мене великий растровий файл (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 (растр до багатокутника з наступною ознакою на лінію), він не отримує точного контуру пікселя, як показано в прикладах нижче.
результат растрового ToContour
ОНОВЛЕННЯ 3
Python / GDAL: Я запустив gdal_polygonize з командного рядка проти ArcGIS на тестовому наборі даних, і результати були надзвичайно чіткими:
- gdal: 49 секунд
- ArcGIS: 1,84 секунди