J'ai environ 1 000 images satellites au format TIFF et je souhaite créer un fichier de formes qui serve d'index aux rasters. Cela ressemble à un catalogue d'images, mais je ne souhaite pas créer de catalogue d'images.
Certains obstacles que je peux prévoir, c’est que les images sont géoréfringues et ne sont donc pas de forme rectangulaire (je parle de la zone de données).
Pour clarifier, j'ai besoin que le polygone ne couvre que les pixels non nuls (ou non nodata) du raster, et non le raster rectangulaire entier. Jusqu'à présent, la plupart des réponses donnent un polygone rectangulaire, qui couvre les données, ainsi que les pixels non liés aux données.
Mon image
Résultat fourni par les outils que j'ai examinés (type catalogue d'images, divers scripts Arcscripts, script Python personnalisé donné dans l'une des réponses):
Résultat que je veux:
la source
Réponses:
Il existe un plugin dans QGIS appelé Image Boundary . C'est un excellent outil. Cet outil contient une option pour "Pixels valides" qui permet d’omettre les bords noirs d’une image satellite, par exemple.
la source
Le code suivant prendra un raster en entrée, en obtiendra l'étendue et l'insérera dans une classe de polygones:
Vous pouvez l' exécuter dans la fenêtre Python ArcMap en mettant en place
in_raster
etfc
comme ceci:où
r_extent
est une classe de polygones existante. Ensuite, copiez simplement le code et exécutez-le. J'ai compris:la source
Vous pouvez utiliser gdaltindex pour cela: http://www.gdal.org/gdaltindex.html
Toutefois, il continuera à créer des rectangles (par exemple 4 + 1 points) dans le même système de référence que les images. Mais je me demande si c'est vraiment un problème: quelle est la taille de vos images?
la source
J'ai essayé l'outil "Image Boundary" dans QGIS mais il échoue avec certains rasters.
Une autre option qui a fonctionné pour moi est la suivante: - 1. Convertir le raster en entrée en un seul numéro numérique à l’aide de l’utilitaire de ligne de commande gdal_translate.
gdal_translate -co compress = lzw -b 1 -ot byte-scale 1 1 inp.tif out.tif
Cela créera un raster avec des valeurs de 1 partout. Inp.tif avait des valeurs non nulles.
Le fichier de forme de sortie aura des limites non quadrilatérales, avec plusieurs sommets de polygone, suivant la limite réelle de l'image.
la source
Si une solution scriptée vous intéresse, essayez la commande gdal nearblack . Vous pouvez également utiliser le drapeau -white pour récupérer des données délimitées par des espaces. Vous pouvez polygoniser la sortie pour générer une empreinte non rectangulaire des données raster.
la source
Je pense que, dans le monde ArcGIS, vous pouvez y parvenir avec l' outil 3D Analyst \ Conversion \ From Raster \ Raster Domain .
la source
ArcGIS 3D Analyst contient un outil appelé Domaine raster qui crée une empreinte de polygone ou de polyligne des parties de données d'un jeu de données raster - et ignore les cellules NoData. A bien fonctionné pour moi.
la source
Vous pouvez créer un catalogue d'images avec une référence spatiale attribuée, ajouter le catalogue d'images à ArcMap, puis "Exporter l'empreinte". N'oubliez pas qu'il est possible de créer un catalogue d'images "NON-GÉRÉ" afin de ne pas dupliquer chaque jeu de données raster.
la source