2011년 11월 10일 목요일

[ArcGIS]지자체별 평균표고 미만의 셀 갯수와 면적 계산하기

스크립트나 프로그램을 작성하지 않고 DEM을 이용하여 지자체별 평균표고 미만의 셀 갯수와 면적을 계산하는 과정입니다.

1. 레이어 준비
ArcMap을 실행하여 다음과 같이 시군구 및 dem 레이어를 추가한다.
 - 지자체 레이어 명: 시군구
 - DEM 레이어 명: dem(셀사이즈 30을 가정함)
2. 필드 추가
TOC에서 시군구 레이어를 선택 후 오른쪽 마우스를 눌러 테이블을 열고 다음과 같이 필드를 추가한다.

DEM_MEAN (Double) - 지자체별 평균표고
DEM_MIN (Double) - 지자체별 최소표고
DEM_MAX (Double) - 지자체별 최대표고
UND_CNT (Long Integer) - 지자체별 평균표고 미만의 셀 갯수
UND_ARA (Double) - 평균표고 미만 면적
3. Zonal Statistics
시군구 및 DEM 레이어를 이용해서 다음과 같이 Zonal Statistics 분석을 수행한다.
Spatial Analyst 툴바 --> Zonal Statistics 또는 ArcToolbox --> Spatial Analyst Tools --> Zonal --> Zonal Statistics 도구를 사용하면 된다.

Zone Field는 Unique한 값이어야 하며 아래에서는 시군구코드를 사용하였다.
Join output table to zone layer를 체크하여 분석 후 바로 값을 계산할 수 있도록 한다.

분석이 완료되면 지자체 레이어의 테이블을 열고 Field Calculator를 이용하여 평균, 최소, 최대표고값을 계산한다.
조인테이블에서 평균값은 MEAN, 최소값은 MIN, 최대값은 MAX 필드이다.

DEM_MEAN  <-- MEAN
DEM_MIN  <-- MIN
DEM_MAX  <-- MAX

지자체 레이어를 선택 후 오른쪽 마우스를 눌러 Join or Relates --> Remove Join(s) --> Remove all joins를 실행하여 조인을 제거한다.

4. 평균표고 래스터 생성
이제 시군구 레이어의 DEM_MEAN 필드를 이용하여 시군구 레이어를 래스터로 변환한다.
Spatial Analyst 툴바의 옵션에서 다음 그림과 같이 Mask Dataset을 dem, Extent를 dem, 셀 크기는 dem의 셀 크기로 설정한다.

Spatial Analyst 툴바의 Convert --> Features to Raster 도구를 실행하여 다음과 같이 설정한 후 OK 버튼을 눌러 변환한다. 저장할 이름은 adm_mean으로 설정하였다.
변환된 결과는 다음과 같다.
5. DEM에서 지자체별 평균표고 미만 래스터 추출
이제 DEM에서 지자체별 평균표고 미만의 래스터를 추출하는 과정이다.

Spaital Analyst 툴바의 Raster Calculator를 열고 다음 식을 입력 후 실행한다.
이 식의 의미는 표고값이 평균값보다 작으면 1값을, 그렇지 않으면 NoData가 계산된다.
Con([adm_mean] > [dem], 1)

생성된 Calculation 레이어를 mean_under라는 이름으로 변경한다.
mean_under 레이어를 선택 후 팝업메뉴의 Data --> Make Permanent를 실행하여 저장할 수 있다.
6. Zonal Statistics
이제 마지막 단계로 지자체별로 평균표고 미만의 래스터 셀 갯수와 면적을 계산한다.
시군구 및 mean_under 레이어를 이용해서 다음과 같이 Zonal Statistics 분석을 수행한다.
value raster는 위에서 분석한 mean_under이며 역시 Join output table to zone layer를 선택한다.

분석이 완료되면 지자체 레이어의 테이블을 열고 Field Calculator를 이용하여 셀의 갯수와 면적값을 계산한다.
조인테이블에서 셀의 갯수는 COUNT, 면적은 AREA 필드이다.
면적계산은 Count * (셀크기 * 셀크기)로 계산하거나 Zonal Statistics의 결과 테이블의 AREA 필드값을 계산하면 된다.

UND_CNT <-- COUNT
UND_ARA <-- AREA

지자체 레이어를 선택 후 오른쪽 마우스를 눌러 Join or Relates --> Remove Join(s) --> Remove all joins를 실행하여 조인을 제거한다.

7.결과
결과는 다음 테이블과 같다.