Tiff limit exceeded - czy da się ominąć? - Wersja do druku +- Forum QGIS (http://forum.quantum-gis.pl) +-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html) +--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html) +--- Wątek: Tiff limit exceeded - czy da się ominąć? (/thread-603.html) |
Tiff limit exceeded - czy da się ominąć? - cooleq - 01-12-2011 Witam, usiłuję zrobić podkład z tiff'ow do serwera. Napisałem taki skrypt: Kod: #! /bin/bash RE: Tiff limit exceeded - czy da się ominąć? - Rayo - 01-12-2011 (01-12-2011, 12:21)cooleq napisał(a): .. i rozmiar pliku z piramidą mosaic.vrt.ovr zwiększył się ponad 4GB otrzymałem błąd. Rzeczywiście w specyfikacji jest, że jest limit do 4GB tylko jak to teraz obejść? Jak to się rozwiązuje w serwerach? Dawno się tym nie bawiłem, ale z tego co pamiętam to trzeba włączyć też kompresję dla piramidek. Jakoś tak. Kod: gdaladdo -r average --config COMPRESS_OVERVIEW DEFLATE ../mosaic.vrt 2 4 8 16 32 64 128 256 RE: Tiff limit exceeded - czy da się ominąć? - cooleq - 01-12-2011 Dzięki za odpowiedź. Rzeczywiście przydatna opcja. Zacząłem tworzyć i już widać różnice. Jednak jest to metoda pośrednia i nie wiem czy wystarczy, a na pewno nie na długo. Wpadła mi do głowy za to inna myśl. Żeby zmienić kolejność w skrypcie i dla każdego pliku tiff wchodzącego w skład mozaiki osobno stworzyć piramidy. Uniknę wtedy efektu skumulowanego i jednego dużego pliku. Czy to jest możliwe i czy dużo stracę na wydajności? RE: Tiff limit exceeded - czy da się ominąć? - tomalos - 01-12-2011 Powinno się dać, po wpisaniu: Kod: gdalbuildvrt --format GTiff gdzieś pod koniec pojawia się takie coś: Kod: <Option name="BIGTIFF" type="string-select" description="Force creation of BigTIFF file"> Jak źle myślę to mnie poprawcie. RE: Tiff limit exceeded - czy da się ominąć? - Rayo - 01-12-2011 (01-12-2011, 13:28)cooleq napisał(a): Wpadła mi do głowy za to inna myśl. Żeby zmienić kolejność w skrypcie i dla każdego pliku tiff wchodzącego w skład mozaiki osobno stworzyć piramidy. Uniknę wtedy efektu skumulowanego i jednego dużego pliku. Czy to jest możliwe i czy dużo stracę na wydajności? Jeżeli masz dużo plików to wydajność bardzo spadnie. Kiedy system będzie wyświetlał mapę ze wszystkimi plikami to będzie musiał pobrać piramidkę z każdego z nich, a to zajmuje sporo czasu. Ja mam zrobiony VRT z 860 plików (ok 60GB) i piramidy (16 32 64 128 256 512) zajmują poniżej 2GB. Dodatkowo mam wyliczone piramidy dla pojedynczych plików i kiedy mapa jest wyświetlana w dużej skali to system korzysta właśnie z nich. Ale wtedy na ekranie maksymalnie widać cztery pliki więc nie ma problemu z wydajnością. Z tego też powodu zrezygnowałem z piramid 2, 4 i 8 dla VRT, a one zajmują najwięcej miejsca. RE: Tiff limit exceeded - czy da się ominąć? - cooleq - 01-12-2011 W man nie widzę takiej opcji http://www.gdal.org/gdalbuildvrt.html i u mnie to nie działa w efekcie drukuje opcje: Kod: root@debian:/mnt/mapy/temp# gdalbuildvrt --format GTiff -srcnodata 0 ../mosaic.vrt ../mosaic/*.tif Używam wersji gdal 1.7.3-6 Za stara? EDIT: RAYO: czyli masz zrobione piramidki 2 4 8 w pojedynczych plikach a te mniejsze w zbiorczym pliku dla mozaiki? Nie wiem czy dobrze zrozumiałem. A jeśli są dla pojedynczych to są one jako osobne pliki czy może wewnętrznie bo słyszałem o takich ale nie wiem jak je robić. EDIT2: Robiłem też operację w win w qgis, tu jest nowszy gdal chyba 1.8. Stworzył plik ponad 6 GB jednak się wysypał przez nieobsługiwany format. RE: Tiff limit exceeded - czy da się ominąć? - Rayo - 01-12-2011 (01-12-2011, 14:29)cooleq napisał(a): czyli masz zrobione piramidki 2 4 8 w pojedynczych plikach a te mniejsze w zbiorczym pliku dla mozaiki? Nie wiem czy dobrze zrozumiałem. A jeśli są dla pojedynczych to są one jako osobne pliki czy może wewnętrznie bo słyszałem o takich ale nie wiem jak je robić. Piramidy dla pojedynczych plików mam wewnętrzne, bo takie pliki już dostałem (ortofotomapa). Jeżeli liczysz piramidy z parametrem -ro to generują się pliki zewnętrzne. Bez tego parametru wewnętrzne. Nie wiem tylko, czy wewnętrzne są możliwe dla innych formatów niż GeoTiff. Dla VRT na pewno nie ma wewnętrznych, bo to tylko plik tekstowy. Piramidka 2 dla pojedynczego pliku to nie to samo co dla dużego VRT. 2 oznacza, że wymiary obrazu w piramidzie to wymiary oryginału podzielone przez 2. Napiszę później jak szacowałem, które piramidy liczyć. Robiłem to dosyć dawno i muszę sobie przypomnieć, żeby czegoś nie namieszać. RE: Tiff limit exceeded - czy da się ominąć? - cooleq - 05-12-2011 Witam ponownie, napiszę, że obecnie poprzestaję na zastosowaniu kompresji w jednym pliku. Plik ma około 800mb i wszystko działa dość sprawnie. Jak zacznie dochodzić więcej plików i przestanę się mieścić w ograniczeniu to zastanowię się nad innym rozwiązaniem. Mam jeszcze pytanie co do tworzenia mozaiki. Obecnie robię to z opcją "-srcnodata 0" jednak w niektórych mapach daje to bardzo dobry efekt w innych natomiast nie(wycina punkty w treści mapy, nie tylko z ramek) od czego to może zależeć i jak można się uporać z tym problemem. Zależy mi jednak, żeby wyglądało to w miarę ładnie. |