Généralisation de raster - tampons dans les rasters, étendre les pixels?

12

Est-il possible de créer des tampons pour les pixels des fichiers raster? En fait, j'ai besoin d'agrandir les pixels classés 1 (en blanc sur la figure) avec une plage spatiale de 1 ou 2 pixels, afin d'effectuer une généralisation. J'utilise QGIS, est-ce possible avec gdal ou quelque chose?

entrez la description de l'image ici

vascobnunes
la source

Réponses:

13

QGIS fournit une interface à GRASS GIS, qui a commencé sa vie en tant que SIG raster et devrait donc fournir des outils efficaces pour résoudre ce problème. En se référant à ses pages de manuel de commandes raster, nous pouvons trouver les solutions suivantes:

r.buffer - mise en mémoire tampon directe des globules blancs.

r.cost - peut calculer les distances aux globules blancs. Suivez ceci avec une comparaison pour sélectionner les cellules à courte distance.

r.grow - une opération morphologique locale conçue spécifiquement pour étendre les globules blancs dans leurs voisins immédiats.

r.mfilter - un filtre focal général. Diverses statistiques focales, telles que max, moyenne, somme, médiane et écart-type, peuvent détecter la présence de globules blancs dans les quartiers locaux. Suivez ceci avec une comparaison pour sélectionner de telles cellules.

r.neighbors - un filtre focal encore plus général, qui peut être utilisé de manière similaire à r.mfilter.

r.resample - le rééchantillonnage sur une grille plus grossière est un moyen d'agrandir les globules blancs. Le résultat sera quelque peu "en bloc".

r.spread - laisser les globules blancs «se propager» dans leur voisinage obtiendra la mise en mémoire tampon souhaitée.

Nous devons nous attendre à ce que r.buffer, r.grow et peut-être r.mfilter utilisent le code le plus efficace. (Je ne les ai pas testés pour le savoir.)

whuber
la source
1

Je dirais que c'est possible. Je ne sais tout simplement pas si vous pouvez le faire avec QGIS, car je ne le connais pas assez bien. QGIS peut-il faire des statistiques de voisinage? En supposant que les pixels noirs sont nuls et que les pixels blancs sont 1, une fonction statistique de voisinage 3x3 calculant le maximum des cellules se traduira par «1» pour les pixels adjacents de la bordure blanche. Vous pouvez ensuite isoler ces pixels dans une deuxième procédure (ou exécuter les statistiques de voisinage une deuxième fois pour une deuxième rangée de pixels).

G-wizard
la source