Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Piramidy - tworzenie, edycja, czyszczenie.....
01-07-2011, 11:58,
#1
Piramidy - tworzenie, edycja, czyszczenie.....
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).
01-07-2011, 19:11,
#2
RE: Piramidy - tworzenie, edycja, czyszczenie.....
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
04-07-2011, 07:59,
#3
RE: Piramidy - tworzenie, edycja, czyszczenie.....
1. Jak można sprawdzić rodzaj kompresji?

2. Czasem w natłoku można zapomnieć, że jednak wszystkim rządzi matematyka Wink
04-07-2011, 11:38, (Ten post był ostatnio modyfikowany: 04-07-2011, 11:46 {2} przez brylu.)
#4
RE: Piramidy - tworzenie, edycja, czyszczenie.....
(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.
04-07-2011, 12:29,
#5
RE: Piramidy - tworzenie, edycja, czyszczenie.....
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.
07-07-2011, 09:45,
#6
RE: Piramidy - tworzenie, edycja, czyszczenie.....
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.
14-07-2011, 15:08, (Ten post był ostatnio modyfikowany: 14-07-2011, 15:14 {2} przez vansen.)
#7
RE: Piramidy - tworzenie, edycja, czyszczenie.....
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?


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [błąd] GENERUJ PIRAMIDY [wiki] 6 25 388 17-04-2011, 21:10
Ostatni post: borys

Skocz do: