piątek, 24 sierpnia 2018

Cyzelowanie opracowań fotogrametrycznych


Zdarza się, że opracowania fotogrametyczne  mają miejscowe braki w pikselach:

W tym przypadku jest to spowodowane tym, że raster ma ustawioną wartość NoData=255 a w miejscach bardzo jasnej ekspozycji raster ma wartość maksymalną 255 i dlatego część plaży jest wyświetlana jako NoData. Analogiczna sytuacja wystąpi przy wartości NoData=0 w miejscach bardzo ciemnej ekspozycji, np. na terenach leśnych.

Żeby tego uniknąć przed przycinaniem zakresu opracowania można zastosować maskę na surowych danych, tj. zmienić skraje wartości piksela: 0->1 oraz 255->254 i dopiero po takim zabiegu tworzyć pliki wynikowe z bezstratną kompresją (np. LZW). Maskowanie można wykonać np. za pomocą gdal_calc z paramterami:

--calc="1*(A<1) + 254*(A>254) + A*logical_and(A>0,A<255)" --NoDataValue=0

Takiej potrzeby może nie być przy zastosowaniu kompresji JPG. Ten sam raster zapisany w formacie JPEG nie ma już tego efektu, cała plaża pokryta jest piaskiem:


Jest to zasługa działania algorytmu kompresji JPG. Niestety to co w jednym miejscu jest zaletą, w innym jest wadą. W przypadku kompresji JPG na krawędziach opracowania pojawia się pikseloza:

Ta pikseloza uwidacznia się jeszcze bardziej przy utworzonych piramidach. Wygląda też okropnie gdy nakłada się na siebie rastry z różnych opracowań. 


Warto również pamiętać o przypisaniu w rastrze wartości NoData przed wykonaniem piramid. W przypadku gdy wartość NoData nie jest ustalona mogą dziać się dziwne rzeczy. Po zmniejszeniu rastra wyglądającego w dużym powiększeniu prawidłowo, może pojawić się czarny (lub biały) kolor w miejscach, w których raster powinien być przeźroczysty:  

Dzieje się tak dlatego, że przy braku przypisanej wartości NoData algorytm wykonujący piramidy przyjął wartość domyślną czyli NoData=0, podczas gdy w tym przypadku faktyczną wartością powinno być 255.

***

Bardzo nie lubię pikselozy, która tworzy się na krawędziach opracowań rastrowych zapisanych w formacie JPEG. Taka pikseloza ma zwyczaj uwidaczniać się jeszcze bardziej przy pomniejszonym widoku, gdy do wyświetlania wykorzystywane są utworzone piramidy. Wygląda też okropnie gdy nakłada się na siebie rastry z różnych opracowań. Dlatego wszystkie rastry produkcyjne, które umieszczam na serwerze GIS mają kompresje LZW (pomimo kilkukrotnie większego zapotrzebowania na przestrzeń dyskową).





Brak komentarzy:

Prześlij komentarz