Próbuję przyciąć duży ECW (szczegóły poniżej), ale plik rastrowy jest zbyt duży, aby go w całości przetworzyć.
Niektóre szczegóły ECW poniżej
Sterownik: falki skompresowane ECW / ERDAS (SDK 5.0)
rozmiar pliku: 50 gb Rozmiar to 450000, 565081 Rozmiar piksela: 0,15 0,15 COLORSPACE = RGB COMPRESSION_RATE_TARGET = 9 WERSJA = 2 Liczba pasm: 4
Obszar, który chcę wyciąć, to w przybliżeniu 1/5 oryginalnego pliku.
Oto metody, które wypróbowałem bezskutecznie:
Użyłem Arcgis do zapisania ecw do tiff / innych formatów ... (szybko się poddałem)
Użyłem Qgis i jego narzędzia do strzyżenia ... tworzenie pliku zatrzymało się na około 40%.
Użyto gdal_translate z OSGeo4W z innymi opcjami niż Qgis. (Próbowałem tego myślenia, że MAYBE zwalniając trochę pamięci, nie używając Qgis, przydałoby się)
Użyłem gdal_retile, myśląc, że pocię obraz na kawałki i złapię ten, który chciałem. Polecenie „gdal_retile -ps 10000 10000 -of ecw -tileIndex tile.shp -targetDir input.ecw To się zawiesiło jeszcze szybciej”
Czy ktoś ma pomysł?
Aby uzyskać informacje, uruchamiam Windows 7 64 bity na i5-3470 3,2 GHz z 16 GB pamięci RAM.
Możesz go wyciąć bezpośrednio za pomocą narzędzia gdal gdal_translate, jeśli znasz współrzędne swojego obszaru zainteresowania, jeśli jest georeferencyjny:
Jeśli nie, użyj
-srswin
flagi w ten sposób:gdal_translate -srcwin [xoff yoff xsize ysize] infile outfile.
Inną opcją jest zbudowanie „wirtualnego” rastra (kilku kilobajtów), który wskazuje na twój początkowy zestaw danych, za pomocą gdalbuildvrt .
Niestety do korzystania z gdalbuildvrt potrzebny będzie plik georeferencyjny.
Po przycięciu nie zapomnij utworzyć piramid w celu łatwego oglądania. Następujące polecenie zbuduje zewnętrzne piramidy skompresowane algorytmem DEFLATE (bezstratnym):
Na koniec możesz obliczyć statystyki, aby uniknąć głupich problemów z konkretnym programem komercyjnym:
źródło
gdaladdo -ro input.vrt 2 4 8 16
wtedygdaladdo -ro --config COMPRESS_OVERVIEW DEFLATE input.vrt 2 4 8 16
. Moim celem jest skończenie z ECW, więc spróbowałemgdal_translate -of ECW input.vrt output.ecw
i dostałem następujący błąd:0ERROR 6: GDALDriver::Create() ... no create method implemented for this format.
gdalinfo --formats
. Jeśli nie widzisz ECW na liście, wypróbuj te instrukcje: faunalia.pt/node/438Prosty „klip”
gdalwarp
powinien działać (wiem, że jest to odwieczne pytanie: 18 miesięcy IRL jest jak epoka geologiczna w latach internetowych).Mam antenę 70 Gb (ECW, 94000 x 81000 pikseli przy 10 cm / px), a GDAL może dowolnie przyciąć ją za pomocą pliku kształtu za pomocą
gdalwarp -cutline [clipfile] -crop_to_cutline [infile] [outfile]
w wierszu polecenia systemu Windows. (Zdaję sobie sprawę, że to rozwiązanie wymaga zbudowania pliku kształtu dla docelowego obszaru zainteresowania, ale nie jest to największe wyzwanie znane GIS).
Wyodrębnienie fragmentu wielkości połowy przedmieścia zajmuje ~ 0,4 sekundy; podzielenie pliku na ćwiartki zajmuje 4 sekundy. Specyfikacja mojego komputera nie różni się znacząco (i7-4770 @ 3,4 GHz, 16 GB pamięci RAM, Win7-64 Ultimate).
źródło