Je souhaite supprimer des pixels isolés (ou des blocs de pixels <9) de mon image raster.
library(raster)
# create some raster data
r <- raster(ncols=12, nrows=12)
set.seed(0)
r[] <- round(runif(ncell(r))*0.7 )
rc <- clump(r)
Avant de supprimer des blocs de pixels <9
Après avoir supprimé des blocs de pixels <9 :
Dans Erdas, il existe l' outil Sieve pour le faire, mais comment le remplacer dans R?
Réponses:
Notez que d'après la
clump
fonction, l'ID de bloc "4" avait 2 cellules sur le côté droit se connectant avec des cellules sur la gauche.la source
Grâce à @gene et https://geoscripting-wur.github.io/AdvancedRasterAnalysis/ je peux maintenant répondre à ma question (copiée et modifiée):
bibliothèque (raster)
et résultat souhaité (avec une ligne et une colonne de NA ajoutées de chaque côté du raster).
la source
Une réponse supplémentaire pour les données projetées.
bfastSpatial::areaSieve()
prend un argument de seuil, de sorte que les agrégats plus petits que le seuil soient supprimés.https://www.rdocumentation.org/packages/bfastSpatial/versions/0.6.2/topics/areaSieve
la source