Forum QGIS
Piramidy - tworzenie, edycja, czyszczenie..... - 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: Piramidy - tworzenie, edycja, czyszczenie..... (/thread-499.html)



Piramidy - tworzenie, edycja, czyszczenie..... - vansen - 01-07-2011

Myślę, że warto zebrać w tym temacie trochę informacji nt. generowania piramid w rastrach, ponieważ zrobiłem trochę ciekawych obserwacji przy obróbce GeoTiff.

Pierwsza sprawa to rozrastanie się rozmiarów plików rastrowych. Rozumiem, że przy piramidowaniu generowane są podglądy i rozmiar pliku się zwiększa - logiczne.
Ale przy korzystaniu z funkcji "wyczyść podglądy" (gdaladdo) rozmiar powinien się zmniejszać, a jest przeciwnie. Dodatkowo kilkakrotnie próbowałem powtórzyć operację czyszczenia, żeby finalnie uzyskać możliwie najmniejszy rozmiarowo plik bez wygenerowanych podglądów - nie udało mi się to.

Z gdalinfo wynika, że pliki które dostałem były już wcześniej piramidowane na 8 poziomów (2 4 8 16 32 64 128 256) a po wygenerowaniu piramid ilość podglądów spadła z 8 do 7 i rozmiar poszczególnych podglądów zmniejszył się o 1 piksel.

Będę wdzięczny za wszelkie uwagi, doświadczenia i przypadki z jakimi zetknęliście się przy takich operacjach.
Jeśli ktoś jest w stanie wyjaśnić "tajemnicę" struktury Geo Tiff'a, to bardzo chętnie dowiedziałbym się czegoś nowego i myślę, że taki temat mógłby być dobrym instruktarzem (chyba, że problem leże w niedostatkach GDAL-a, o których wspominał Borys w jednym z wczesniejszych postów).


RE: Piramidy - tworzenie, edycja, czyszczenie..... - Rayo - 01-07-2011

Nie jestem fachowcem od struktury GeoTiffów, ale myślę, że warto zwrócić uwagę na dwie rzeczy:

1. Rozmiar plików zależy od zastosowanej kompresji. Sprawdź, czy przy usuwaniu piramid nie zmienia się kompresja oryginalnego obrazka.
Dla piramid też warto poeksperymentować z ustawieniami kompresji, bo im mniejsze pliki tym szybsze wczytywanie.

2. Wydaje mi się, że różnica wielkości 1 piksela może wynikać z zaokrąglania i zastosowanego oprogramowania do generowania piramidek. Jeśli oryginalny obraz ma nieparzystą szerokość (lub wysokość), np. 1001x1001 pikseli, to jeden algorytm może przyjąć, że obraz o połowę mniejszy to 500x500, a inny 501x501 pikseli. No bo połowy piksela nie da się wyświetlić Smile


RE: Piramidy - tworzenie, edycja, czyszczenie..... - vansen - 04-07-2011

1. Jak można sprawdzić rodzaj kompresji?

2. Czasem w natłoku można zapomnieć, że jednak wszystkim rządzi matematyka Wink


RE: Piramidy - tworzenie, edycja, czyszczenie..... - brylu - 04-07-2011

(04-07-2011, 07:59)vansen napisał(a): 1. Jak można sprawdzić rodzaj kompresji?

2. Czasem w natłoku można zapomnieć, że jednak wszystkim rządzi matematyka Wink
Używając GDAL-a przy rastrach trzeba zawsze bardzo uważaćSmile Z moich doświadczeń wynika, że nie możliwe jest wykonanie kilku operacji na jednym rastrze jedna po drugiej używając kilku komend. Bardzo często ostatnia komenda "anuluje " efekty działania poprzedniej. Jeśli chodzi o kompresję tak właśnie jest. Czyli czyszcząc piramidy należy od razu ustawić kompresję wynikowego rastra. W przeciwnym wypadku efekt może być taki, że wynikowy raster choć z wyczyszczonymi piramidami będzie pozbawiony kompresji, a co za tym idzie będzie "cięższy" od wejściowego. Do uzyskiwania informacji o rastrach bardzo przydatny jest programik XnView. Pokazuje bardzo dużo informacji, które można wyświetlić obok ikony pliku w kolumnie eksploratora.


RE: Piramidy - tworzenie, edycja, czyszczenie..... - vansen - 04-07-2011

Zastosowałem się do wskazówek i puściłem gdaladdo -clean z kompresją i mam następujący wynik: plik wynikowy większy o ok 2 MB od źródła, a ilość podglądów w gdalinfo bez zmian... i bądź tu mądry.

A co do XnView - zainstalowałem, ale jakoś nie mogę zlokalizować funkcji do wyświetlenia info o rastrze.


RE: Piramidy - tworzenie, edycja, czyszczenie..... - brylu - 07-07-2011

Jeśli chodzi o XnView to żeby zobaczyć szczegóły należy klikać menu View - View As - Thumbnails & Details. Jeśli chcesz więcej szczegółów to prawy klik na ikonie pliku i properties. Komplet informacji jest też wyświetlany w dolnej części ekrany w zakładce Properties. Można tam znaleźć wszystkie potrzebne informacje. Co do kompresji to ważne jest również jaka metodę kompresji wykorzystałeś dla rastra po wyczyszczeniu.


RE: Piramidy - tworzenie, edycja, czyszczenie..... - vansen - 14-07-2011

Na początku trochę się pochwalę - poradziłem sobie z wyczyszczeniem podglądów w GeoTiff - użyłem opcji "Konwertuj raster" (gdal_translate) bez żadnych parametrów i dostałem czyściutki plik.... ale..... plik wejściowy ma rozmiar 47 MB, a wyjściowy 261 MB.

Wydaje mi się, że powinienem teraz nałożyć na niego jakąś kompresję (przed piramidowaniem), ale nie wiem za bardzo jak to zrobić. Po piramidowaniu z zastosowaniem kompresji JPG (80) plik dalej się rozrasta.

Da się coś z tym zrobić?

Dostałem rastry które już zostały spiramidowane, ale te poziomy podglądów mi nie odpowiadają i chciałbym się ich pozbyć i zrobić piramidowanie po swojemu dla wszystkich rodzajów plików (mam 4 różne rodzaje). Może po części się powtarzam, ale ciągle kombinuję metodą małych kroczków,a nie wiem czy idę w dobrą stronę.


Uzupełnienie - postanowiłem spróbować piramidowania rastra na różnych poziomach kompresji JPG (10) i (100) - wyjściowe pliki mają identyczny rozmiar.... Jak to możliwe? Skąd takie efekty?