Je me demandais si quelqu'un avait déjà abordé ce genre de problème:
Je veux délimiter des fragments basés sur des pixels voisins de la même classe (forêt) avec un seuil de distance de 3 pixels (ce qui est biologiquement significatif pour mon espèce d'intérêt).
Ma préoccupation est, voir l'image ci-jointe pour un exemple, que parfois ces fragments sont en fait des couloirs, et souvent les couloirs et les fragments réels sont regroupés en un même fragment en raison de leur proximité.
Je me demande s'il existe un moyen de distinguer les couloirs des fragments en fonction de la forme, du nombre de pixels environnants, etc.?
Par exemple, dans la case suivante, les couloirs possibles sont indiqués par les cases rouges et les fragments par les cases vertes.
J'ai accès à QGIS et R.
Réponses:
Avant de commencer une analyse, je vous recommande fortement d'appliquer un filtre à vos données pour nettoyer l'effet "sel et poivre". Tout algorithme aura du mal avec le modèle structurel actuel de vos données. Une simple majorité focale donnerait probablement des résultats indésirables. Une méthode plus robuste applique une approche par tamisage, où une unité de mappage minimale peut être spécifiée. Cela peut être fait via la fonction gdal_sieve.py dans GDAL, la
raster > analysis > sieve
fonction dans QGIS ou la fonction sieve dans ArcGIS Gradient Metrics Toolbox .Cela ressemble à quelque chose qui pourrait être résolu avec les opérateurs de morphologie mathématique (par exemple, extraire des routes de l'imagerie ). J'imagine qu'un opérateur de dilatation suivi d'un opérateur de fermeture clarifierait les couloirs. Vous pouvez ensuite appliquer un opérateur d'ouverture pour supprimer les couloirs et différencier les rasters pour tirer les couloirs identifiés en tant qu'objets distincts. Ces types de fonctions de décomposition d'images sont quelque peu automatisés dans les logiciels MSPA et GUIDOS mais, encore une fois, seraient notamment affectés par les discontinuités de vos données.
Il existe un plug-in QGIS pour MSPA ainsi que des fonctions disponibles dans GRASS (disponibles via l'interface graphique QGIS). L'un des problèmes avec MSPA et GUIDOS est que la taille de l'image est limitée. Malheureusement, dans le logiciel ESRI, les opérateurs morphologiques ne sont disponibles que dans l' extension ArcScan . Avec quelques fouilles, vous trouverez d'autres options logicielles ainsi que des méthodes pour définir des opérateurs morphologiques via l'algèbre raster avec des matrices de noyau personnalisées.
Une autre approche consisterait à utiliser des méthodes de filtrage de détection de bord, comme un opérateur de noyau Sobal . Il existe une fonction sobal dans ArcGIS Gradient Metrics Toolbox ainsi que dans le package spatialEco R. L'avantage de l'implémentation R est que vous pouvez renvoyer la fonction de gradient de l'opérateur alors que l'implémentation ArcGIS ne renvoie que la fonction de premier ordre (qui peut être tout ce dont vous avez besoin). Je crois que la boîte à outils Orfeo (disponible en tant que module complémentaire QGIS) a une option sobal dans la fonction EdgeExtraction.
la source
Ce n'est pas une solution complète mais, consultez ces outils pour l'analyse de la connectivité (le premier correspond bien à ce que vous recherchez):
MSPA - Morphological Spatial Pattern Analysis ( http://forest.jrc.ec.europa.eu/download/software/guidos/mspa ) à partir de la boîte à outils GUIDOS ( http://forest.jrc.ec.europa.eu/download/software / guidos ) et
Conefor Sensinode ( http://www.conefor.org/ ).
Pensez également à former un algorithme d'apprentissage automatique pour classer vos instances (corridor vs fragments). Vous pouvez donner des attributs spatiaux au niveau du patch (par exemple, la taille du patch, le rapport de zone de périmètre, le rapport de cercle) et les entités basées sur la distance (par exemple, la distance aux fragments) à classer. Pour calculer les fonctionnalités de niveau correctif nécessaires à la classification, vous pouvez essayer FragStats ( https://www.umass.edu/landeco/research/fragstats/fragstats.html ).
Vous pouvez également envisager un «système de règles basé sur l'expert» plus simple pour classer chaque instance. Par exemple, les corridors auront un rapport périmètre-surface plus élevé que les fragments d'habitat, etc.
Plus d'informations intéressantes ici pour les analyses de connectivité: http://conservationcorridor.org/corridor-toolbox/programs-and-tools/
Cependant, le fait que certains couloirs ne disposent pas d'une «connectivité pixel complète» sera un problème que vous devrez d'abord régler. Je pense que vous devez définir une sorte de critère de seuil basé sur la distance pour décider si un pixel fait partie d'un couloir ou non.
la source
Il semble que cela dépende de la forme de votre fragment. Si la largeur est plus de 2 (ou 3) fois la hauteur (ou l'inverse), vous pouvez l'appeler un couloir?
Êtes-vous arrivé à la délimitation des fragments?
la source