Saya mencoba mempolimerisasi raster menggunakan GDALPolygonize () dalam skrip Python. Script mulai poligonisasi kemarin jam 5 sore dan masih poligonisasi sekarang jam 9:30 pagi. Saya tidak tahu seberapa jauh itu, tapi saya tahu itu masih berjalan karena ketika saya menyegarkan Windows explorer saya, saya bisa melihat perubahan ukuran file untuk output shapefile.
Raster saya agak besar, tapi saya masih tidak mengharapkannya selama ini. Raster saya adalah 35.486 Kolom dan 23.682 Baris dengan ukuran sel 1 meter. Ini adalah raster biner di mana nilai 1 mewakili data dan 0 adalah NoData.
Ketika saya mempologonisasi di ArcGIS menggunakan Raster ke Polygon di Conversion Toolbox, butuh 56 detik. Shapefile yang dihasilkan adalah 200mb sedangkan shapefile masih dibuat oleh GDALPolygonize masih hanya 100mb. Itu membuat saya berpikir GDAL sekitar setengah jalan dilakukan setelah berjalan sepanjang malam.
Spesifikasi: Windows 7 64bit, 8gb RAM, GDAL 1.10 64bit, ArcGIS Desktop 10.2, 64 bit Background Geoprocessing untuk ArcGIS Desktop, Python 2.7.3 64bit
PEMBARUAN Hari 2 - GDALPolygonize masih berjalan. Sudah semalam 2 malam berturut-turut dan sepanjang hari tanpa menyelesaikan. ArcGIS membutuhkan waktu 56 detik.
sumber
Jawaban:
Saya memiliki pengalaman yang sama. Algoritma ini sangat lambat untuk raster besar, meskipun cukup cepat untuk yang lebih kecil. Ada satu solusi yang mungkin:
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"
Saya tahu, ini gila sekali, tapi waktu terakhirnya jauh lebih cepat.
Stanley
sumber
gdalwarp
, tidak bisakah Anda hanya ubin raster Anda dengan membuat file vrt saat menyimpannya? Setidaknya, itulah cara saya belajar memotong raster saya dan saya tidak harus melakukannya untuk setiap ubin secara terpisah.