2009년 12월 10일 목요일

[ArcGIS]Raster의 pixel depth 및 크기 산정

▣ Raster pixel depth란?
 - pixel depth 또는 bit depth는 래스터 파일에 저장될 수 있는 값의 범위를 말하며, 2^n식(n=pixel depth)에 의해 값의 범위가 결정된다.
예를 들어 8-bit 래스터는 256(2^8)개의 고유값을 가질 수 있으며 범위는 0에서 255까지이다.

아래는 bit depth의 각 유형 마다 저장 가능한 범위를 나타낸다.

unsigned 1 bit = 0 to 1
unsigned 2 bit = 0 to 4
unsigned 4 bit = 0 to 16
unsigned 8 bit = 0 to 255
signed 8 bit = -128 to 127
unsigned 16 bit = 0 to 65535
signed 16 bit = -32768 to 32767
unsigned 32 bit = 0 to 4294967295
signed 32 bit = -2147483648 to 2147483647
floating point 32 bit = -3.402823466e+38 to 3.402823466e+38

또한 사용자에게 숨겨진 다음의 예외사항이 있다. GRID 데이터 셋은 항상 32 bit(signed, unsigned, float)이지만, ArcGIS는 위 유형 중 최적의 bit depth를 보여주고, ArcInfo Workstation은 항상 GRID의 bit depth를 보여준다.

이미 전체 bit 범위값이 포함된 래스터(가령  0 ~ 255(unsigned 8 bit)의 값이 모두 포함된 음영기복도)가 있고, 이 래스터에 NoData가 추가되는 경우 더 높은 bit depth(unsigned 16 bit)로 표시된다.

▣ Raster 파일 크기 산정
ArcGIS에서 새 이미지를 생성하거나 기존 이미지를 내보내기하는 경우에 bit-depth가 변경될 수 있다.

이는 저장될 이미지가 필요로 하는 디스크 공간과 관련된 문제로 여러가지 이유에서 발생될 수 있는데, 래스터 이미지 내의 개별 픽셀(셀)이 저장되는데 필요한 총 비트수로 설명된다.

8 bit 이미지로 작업을 할 경우, 래스터 이미지 내 각 픽셀을 저장하는데 1 byte(8 bits)가, 16 bit일 경우 2 bytes, 32 bit일 경우 4 bytes가 소요된다.

이를 바탕으로 이미지 크기를 추정하는 식은 다음과 같다.
 - Rows x Columns x number of bands x pixel depth (8 bits = 1 byte)

예를  들면 RGB 3개의 밴드를 가진 8-bit 이미지로 100 rows x 100 columns일 경우
 = 100 rows x 100 columns x 3 bands x 1 = 약 30,000 bytes
 
또다른 예로 단일 밴드인 32-bit 이미지로 1000 rows x 1000 columns일 경우
 = 1000 rows x 1000 columns x 1 band x 4 = 약 4,000,000 bytes

※ 참고 : http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.gateway&p=43&pf=554