J'essaie de polygoniser un raster en utilisant GDALPolygonize () dans un script Python. Le script a commencé la polygonisation hier à 17h et continue de polygoniser à 9h30. Je n'ai aucune idée de la distance, mais je sais que cela continue car lorsque je rafraîchis mon explorateur Windows, je peux voir la taille du fichier changer pour le fichier de formes de sortie.
Mon raster est plutôt volumineux, mais je ne m'attends toujours pas à ce qu'il prenne autant de temps. Mon raster est de 35 486 colonnes et 23 682 lignes avec une taille de cellule de 1 mètre. Il s'agit d'un raster binaire où une valeur de 1 représente des données et 0 est NoData.
Lorsque j'ai polygonisé dans ArcGIS à l'aide de Raster en polygone dans la boîte à outils de conversion, cela a pris 56 secondes. Le fichier de formes résultant est de 200 Mo tandis que le fichier de formes toujours créé par GDALPolygonize n'est toujours que de 100 Mo. Cela me fait penser que GDAL est à mi-chemin après avoir couru toute la nuit.
Spécifications: Windows 7 64 bits, 8 Go de RAM, GDAL 1.10 64 bits, ArcGIS Desktop 10.2, 64 bits Géotraitement en arrière-plan pour ArcGIS Desktop, Python 2.7.3 64 bits
MISE À JOUR Jour 2 - GDALPolygonize est toujours en cours d'exécution. Il a passé la nuit 2 nuits d'affilée et toute une journée sans se terminer. ArcGIS a pris 56 secondes.
la source
Réponses:
J'ai la même expérience. L'algorithme est vraiment lent pour les rasters énormes, mais assez rapide pour les plus petits. Il existe une solution de contournement possible:
gdalwarp -te 12.08 48.5 12.5 51.1 original_file.tif part1.tif
gdal_polygonize.py part1.tif -f "ESRI Shapefile" part1.shp
ogr2ogr -f "ESRI Shapefile" -update -append merge.shp part1.shp -nln merge
ogr2ogr "output.shp" "input.shp" -dialect sqlite -sql "SELECT ST_Union(geometry), field FROM input GROUP BY field"
Je sais, c'est fou comme l'enfer, mais la dernière fois a été bien plus rapide.
Stanley
la source
gdalwarp
, ne pourriez-vous pas simplement carreler votre raster en créant un fichier vrt lors de son enregistrement? C'est du moins ainsi que j'ai appris à découper mes rasters et je n'ai pas à le faire pour chaque tuile séparément.