Перед началом любого анализа я настоятельно рекомендую применить фильтр к вашим данным, чтобы убрать эффект «соли и перца». Любой алгоритм будет бороться с текущей структурой ваших данных. Простое фокусное большинство, скорее всего, приведет к нежелательным результатам. Более надежный метод - применение метода сита, в котором можно указать минимальную единицу отображения. Это можно сделать с помощью функции gdal_sieve.py в GDAL, raster > analysis > sieve
функции в QGIS или функции сита в ArcGIS Gradient Metrics Toolbox .
Это похоже на то, что может быть решено с операторами математической морфологии (например, извлечение дорог из изображений ). Я предположил бы, что оператор расширения, сопровождаемый оператором Закрытия, прояснит коридоры. Затем можно применить оператор «Открытие», чтобы удалить коридоры, и развести растры, чтобы вывести идентифицированные коридоры как отдельные объекты. Эти типы функций декомпозиции изображений несколько автоматизированы в программном обеспечении MSPA и GUIDOS, но, опять же, это заметно будет зависеть от разрывов в ваших данных.
Существует плагин QGIS для MSPA, а также доступные функции в GRASS (доступны через графический интерфейс QGIS). Одной из проблем MSPA и GUIDOS является то, что вы ограничены в размере изображения. К сожалению, в программном обеспечении ESRI морфологические операторы доступны только в расширении ArcScan . С некоторыми копаниями вы найдете другие программные опции, а также методы определения морфологических операторов посредством растровой алгебры с пользовательскими матрицами ядра.
Другим подходом могут быть методы фильтрации обнаружения краев, такие как оператор ядра Sobal . В ArcGIS Gradient Metrics Toolbox есть функция sobal, а также в пакете SpaceEco R. Преимущество реализации R состоит в том, что вы можете вернуть градиентную функцию оператора, тогда как реализация ArcGIS возвращает только функцию 1-го порядка (которая может быть всем, что вам нужно). Я полагаю, что в наборе инструментов Orfeo (доступном как дополнение QGIS) есть опциональная опция в функции EdgeExtraction.