지난번 포스팅에서는 지리공간 레스터 객체 데이터로 부터 일부를 가져오기 (Raster subsetting) 하는 방법(rfriend.tistory.com/629)을 소개하였습니다.

 

이번 포스팅에서는 지리공간 레스터 객체 데이터로 부터 요약 통계량(summary statistics), 기술 통계량(descriptive statistics)을 계산하고, 시각화(visualization) 하는 방법을 알아보겠습니다.

 

(1) 레스터 객체 요약 통계량 구하기 (summarizing raster objects)

(2) 레스터 객체 시각화 하기 (visualizing raster objects)

 

 

 

 

(1) 레스터 객체 요약 통계량 구하기 (summarizing raster objects)

 

먼저, raster 패키지를 불러오고, 예제로 사용하기 위해 6행 6열, 총 36개의 픽셀로 이루어진 간단한 레스터 객체를 만들어보겠습니다.

 

레스터 객체를 출력해보면 아래의 예처럼 차원(dimensions), 해상도(resolution), 그리고 X와 Y축의 최소값과 최대값의 범위(extent)에 대한 요약 통계량을 볼 수 있습니다.

 

## ================================
## GeoSpatial data analysis using R
## : Summarizing raster objects
## ================================

library(raster)

## sample raster object 
elev <- raster(nrows = 6, ncols = 6, 
               xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, 
               vals = 1:36)

elev 
# class      : RasterLayer 
# dimensions : 6, 6, 36  (nrow, ncol, ncell)
# resolution : 0.5, 0.5  (x, y)
# extent     : -1.5, 1.5, -1.5, 1.5  (xmin, xmax, ymin, ymax)
# crs        : +proj=longlat +datum=WGS84 +no_defs 
# source     : memory
# names      : layer 
# values     : 1, 36  (min, max)
]

 

 

레스터 객체에 대해 summary(raster_obj) 함수를 사용하면 레스터 객체의 픽셀 속성값에 대한 최소값(Minimum value), 1사분위수(1st Quantile), 중위값(Median), 3사분위수(3rd Quantile), 최대값(Maximum value), 결측값 개수(NA's) 에 대한 기술통계량(descriptive statistics)을 확인할 수 있습니다.

 

## summary() function for raster objects
summary(elev)

# layer
# Min.     1.00
# 1st Qu.  9.75
# Median  18.50
# 3rd Qu. 27.25
# Max.    36.00
# NA's     0.00

 

 

레스터 객체의 픽셀 속성값에 대해 cellStats(raster_obj, summary_function) 함수를 사용하여 평균(mean), 분산(variance), 표준편차(standard deviation), 사분위수(quantile), 합계(summation) 를 구할 수 있습니다.

 

## -- cessStats() function for raster objects

## mean
cellStats(elev, mean)
# [1] 18.5


## variance
cellStats(elev, var)
# [1] 111


## standard deviation
cellStats(elev, sd)
# [1] 10.53565


## quantile
cellStats(elev, quantile)
# 0%   25%   50%   75%  100% 
# 1.00  9.75 18.50 27.25 36.00


## sum
cellStats(elev, sum)
# [1] 666

 

 

RasterBlack Calss, RasterStack Class와 같이 여러개의 층을 가지는 레스터 클래스 객체 (multi-layered raster classes objects) 에 대해서 앞서 소개한 요약 통계량을 구하는 함수를 적용하면 각 층별로 따로 따로 요약 통계량이 계산됩니다.

 

 

 

(2) 레스터 객체 시각화 하기 (visualizing raster objects)

 

## -- visualization of raster objects

## plot()
plot(elev, main = "raster objects")

 

 

레스터 객체의 픽셀 속성값에 대해 히스토그램(histogram for raster objects)을 그리려면 hist() 함수를 사용하면 됩니다. 

 

## histogram
hist(elev, main = "histogram for raster objects")

 

레스터 객체의 픽셀 속성값에 대해서 raster 패키지의 raster::density() 함수를 사용하여 추정 밀도 곡선(smoothed density estimates curve) 을 그릴 수 있습니다.

 

## raster::density() : density plot (smoothed density estimates)
density(elev, main = "density plot for raster objects")

 

 

레스터 객체의 픽셀 속성값에 대해 boxplot() 함수를 사용하면 상자그림(box plot for raster objects)을 그릴 수 있습니다.

 

## boxplot
boxplot(elev, main = "box plot for raster objects")

 

 

만약 레스터 객체에 대해 시각화를 하려고 하는데 안된다면 values() 또는 getValues() 함수를 사용해서 레스터 객체로 부터 픽셀의 속성값을 반환받은 결과에 대해서 시각화를 하면 됩니다.

 

 

 

[Reference]

[1] "Geocomputation with R - Attritube data operations"
    : geocompr.robinlovelace.net/attr.html

 

Geocomputation with R

Geocomputation with R is for people who want to analyze, visualize and model geographic data with open source software. It is based on R, a statistical programming language that has powerful data processing, visualization, and geospatial capabilities. The

geocompr.robinlovelace.net

 

이번 포스팅이 많은 도움이 되었기를 바랍니다.

행복한 데이터 과학자 되세요!  :-)

 

728x90
반응형
Posted by Rfriend
,