gdalmerge tworzy plik, który jest o wiele za duży

12

Próbuję scalić 60 plików geotiff w jeden ogromny plik, aby móc tworzyć kafelki z tego wynikowego ogromnego pliku geotiff za pomocą gdal2tiles.

Proces scalania zadziałał, ale z jakiegoś powodu tworzy plik o rozmiarze 78 GB zamiast oczekiwanego 19 GB. Nie jestem pewien, co tam poszło nie tak.

Powodem tego jest fakt, że ułożenie 60 geotiffów jeden po drugim daje mi białe pola na granicy mapy.

użytkownik851
źródło

Odpowiedzi:

16

Zazwyczaj GeoTIFF są kompresowane do przechowywania. Uruchomienie gdal_merge na ustawieniach domyślnych nie spowoduje kompresji pliku. Dodaj opcję

-co COMPRESS=DEFLATE

(lub dowolną z innych opcji wymienionych w dokumentacji ) polecenia, aby uzyskać mniejsze pliki wyjściowe.

podmrok
źródło
1
Dla przyszłego odniesienia - mój, jeśli nikogo innego - gdal.org/frmt_gtiff.html ma zestaw opcji specyficznych dla GeoTiff, których powinieneś być w stanie użyć dla dowolnego polecenia gdal. W zależności od rodzaju zdjęć, które możesz mieć, możesz chcieć COMPRESS = LZQ lub nawet JPEG; warto poświęcić czas na sprawdzenie rodzaju kompresji stosowanej na obrazach źródłowych.
Herb
Dzięki Herb, zaktualizowałem odpowiedź, aby zawierała twój link.
podmroku
5

Jak wskazuje podmrok, najlepszym rozwiązaniem jest skompresowanie zdjęć, aby zapobiec bezpośredniemu przechowywaniu dużej ilości pustej przestrzeni (natywny obraz TIFF przypomina bitmapę: każda wartość zajmuje tyle samo miejsca). Inną przydatną opcją kompresji jest:

-co COMPRESS=LZW

Rzadko ma taki sam współczynnik kompresji jak DEFLATE, ale ma tę zaletę, że współpracuje z większością programów, które DEFLATEnie są obsługiwane w wielu środowiskach, takich jak ArcGIS 9.x.

Możesz wypróbować jeszcze bardziej agresywną kompresję bezstratną, używając jednej z transformacji falkowych, takich jak ECW , MrSID lub jedna z różnych implementacji JPEG2000. Pamiętaj, że będziesz potrzebować narzędzi korzystających z GDAL lub w inny sposób zaimplementować biblioteki, aby uzyskać dostęp do danych w tych formatach.

scw
źródło
3

Możesz uniknąć scalania plików geotiff, pisząc plik vrt, który scala je „wirtualnie”.

Jest to plik XML opisujący, w jaki sposób pliki powinny być zestawiane. Wszystkie narzędzia gdal akceptują ten plik vrt jako mapę wejściową. Zarówno gdal2tiles, jak i MapTiler są oparte na gdal, więc powinny móc korzystać z pliku vrt (nie próbowałem jeszcze z plikiem vrt, ale już próbowałem z plikiem gdal_wms i działało całkiem nieźle).

Zapisanie pliku vrt od zera nie jest łatwe. Wystarczy przekonwertować jedną z geotiffów na vrt, aby mieć przykład:

gdal_tranlate -of vrt one_of_your_geotiff.tif one_of_your_geotiff.vrt

Jest też narzędzie o nazwie gdalbuildvrt, ale go nie wypróbowałem.

Nazwa
źródło
1
Matt Perry ma ładny opis niektórych zalet korzystania z VRT tutaj: perrygeo.net/wordpress/?p=141
scw