스마트팜 데이터의 이해 (1/3)

스마트팜 데이터의 이해 (1/3)

경남농업기술원 스마트팜 내부, Thumbnail 이미지 출처


스마트팜이란?

농림수산식품교육문화정보원(EPIS, 이하 농정원)이 운영하는 SmartFarm Korea 에서 정의하는 스마트팜의 개념을 보면 스마트 온실, 스마트 과수원, 스마트 축사를 통틀어 스마트팜이라고 지칭하고 있다. 과거에 프리바 유리온실 모델과 같은 ICT 기반의 원예온실로 불리던 개념이 축산과 과수 농장까지 확대되면서 스마트팜이 개념으로 발전하였다.

스마트팜의 구성요소는 크게 현장의 환경정보와 영상정보를 수집하는 수집부, 수집된 데이터를 저장하고 필요한 형태로 가공/분석하는 저장부, 가공/분석된 정보를 이용하여 온실 관리에 필요한 정보를 표출하고 장비를 제어하는 활용부로 나눌 수 있다.

  • 데이터 수집부 : 센서(환경정보), CCTV(영상), Node장비(데이터 일괄수집/전송)
  • 데이터 저장부 : 클라우드 또는 기업 서버(수집데이터 저장 + 활용서비스로 데이터 송출)
  • 데이터 활용부 : Node장비(개별 제어기로 데이터 전송), 제어기(창/Fan/CO2시비기 관수기,양액기,급이기), 어플리케이션(모니터링 및 분석 서비스)

각각의 구성요소이 어떻게 연계되어 동작하는지를 한마디로 요약해보면 “수집부에서 관찰된 외부환경의 상황을 저장부에서 최적 생육을 위한 조건에 부합하는지 판단하고 최적 조건이 될 수 있도록 하는 제어 신호를 다시 활용부의 제어기 Node장비로 전송하여 개별 제어기들이 최적 조건을 유지하도록 동작시키는 것” 이다.

스마트팜 도입으로 인한 효과는 1) 생산성 및 품질 향상, 2) 위험상황 조기발견으로 피해 최소화, 3) 모니터링을 위한 시간 절약으로 노동력 절감 을 기대할 수 있으나 스마트팜 설비를 갖추기 위한 투자비용을 회수하는데 필요한 시간은 운영을 어떻게 하는지에 따라 큰 차이가 날 수 있다.

정부에서 스마트팜의 개념을 정립하고 관련 정책을 도입된 것은 2014년으로 도입 첫해의 스마트팜 면적은 100ha 수준이었으나 2016년 말에는 19배 증가한 1912ha로 보고되어 매년 성장하고 있으나 (출처), 아직까지는 정부 주도 정책 사업이 스마트팜 확산을 견인하는 단계로 자발적인 확산으로 이어지기 위해서는 보다 섬세한 정책 설계가 필요할 것으로 판단된다.


스마트 온실 데이터를 살펴보자

사용 데이터는 2014~2016년 3년간 진행된 농촌진흥청 "시설농업 ICT융합 운영활성화 모델 개발" 연구과제에서 수집된 스마트 온실의 환경 데이터로 해당 데이터는 농정원에서 운영하는 SmartFarm Korea에서 오픈API 신청 후 사용이 가능하다.

이번 Post에서 사용하는 샘플 데이터는 수집 농가 중 파프리카 농가 1개소의 2015년 1년치의 데이터로 AWS S3 Agdata Lab 저장소에서 다운로드할 수 있다. 측정 주기는 1분 단위이고 14개의 환경요소를 측정하여 기록한 데이터이다.

먼저 csv파일을 읽어서 측정치 개수를 확인해보자. nrow()로 확인해본 결과 525,081개이다. 1년간 1분단위로 정확히 측정되었다면 60분 x 24시간 x 365일 = 525,600개의 측정치가 있어야 하는데 519개의 결측치가 있다. 이는 측정치가 기록된 시간이 예를들어 59분00초에 1개, 59분59초에 1개가 기록될 경우 하나의 측정치만 저장하기 때문에 발생한 결측치이다.

  library(dplyr); library(ggplot2); library(knitr); library(kableExtra)
dat <- read.csv('env_min_spl.csv')
print(paste('number of observation :',nrow(dat)))
## [1] "number of observation : 525081"

다음으로 측정된 변수를 확인해보자. 1~6번째 변수는 측정 시간과 관련된 변수들이고 7번째 변수부터 환경 요인을 의미하는 변수들이다.

names(dat)
##  [1] "date"    "year"    "month"   "day"     "hour"    "minute"  "OTP"    
##  [8] "LTP"     "RTP"     "EVTP"    "LHM"     "RHM"     "EVHM"    "RAN"    
## [15] "CO2"     "INS"     "ACC_INS" "WD"      "WDS"     "LDTP"

각각의 의미는 다음과 같다.

OTP(외부온도),  LTP(좌측내부온도),  RTP(우측내부온도),  EVTP(평균내부온도),   LHM(좌측내부습도),  RHM(우측내부습도),  EVHM(평균내부습도),   RAN(감우:강우유무),   CO2(내부CO2농도),   INS(일사량),  ACC_INS(누적일사량),  WD(풍향),   WDS(풍속),  LDTP(지면온도) 

엑셀이나 Rstudio로 dat 파일을 열어보면 다음과 같은 측정치가 기록된 데이터임을 확인할 수 있을 것이다.

Table 1: 온실내부환경 raw 데이터 예시
date year month day hour minute OTP LTP RTP EVTP LHM RHM EVHM RAN CO2 INS ACC_INS WD WDS LDTP
2015-01-01 2015 1 1 5 21 -4.4 14.7 14.9 14.8 81.8 85.3 81.8 0 387 2 714 NA 2.8 NA
2015-01-01 2015 1 1 5 22 -4.5 14.7 14.9 14.8 81.8 85.1 81.8 0 390 0 714 NA 3.2 NA
2015-01-01 2015 1 1 5 23 -4.4 14.7 14.9 14.8 81.8 85.5 81.8 0 385 0 714 NA 2.8 NA
2015-01-01 2015 1 1 5 24 -4.5 14.7 14.9 14.8 81.7 85.3 81.7 0 389 0 714 NA 2.0 NA
2015-01-01 2015 1 1 5 25 -4.5 14.8 14.9 14.8 81.8 85.7 81.8 0 389 0 714 NA 1.5 NA
2015-01-01 2015 1 1 5 26 -4.5 14.8 14.8 14.8 81.8 85.8 81.8 0 388 0 714 NA 1.6 NA
2015-01-01 2015 1 1 5 27 -4.6 14.8 14.8 14.8 81.8 85.8 81.8 0 391 0 714 NA 1.9 NA
2015-01-01 2015 1 1 5 28 -4.6 14.8 14.8 14.8 81.8 85.8 81.8 0 385 0 714 NA 1.9 NA
2015-01-01 2015 1 1 5 29 -4.6 14.8 14.8 14.8 81.8 85.8 81.8 0 383 0 714 NA 1.7 NA
2015-01-01 2015 1 1 5 30 -4.7 14.9 14.8 14.8 81.3 85.9 81.3 0 390 0 714 NA 1.5 NA
2015-01-01 2015 1 1 5 31 -4.6 14.9 14.7 14.8 81.8 85.6 81.8 0 386 0 714 NA 1.8 NA
2015-01-01 2015 1 1 5 32 -4.6 14.9 14.7 14.8 81.9 85.8 81.9 0 389 0 714 NA 1.6 NA
2015-01-01 2015 1 1 5 33 -4.7 14.9 14.8 14.8 82.0 85.2 82.0 0 387 0 714 NA 1.8 NA
2015-01-01 2015 1 1 5 34 -4.7 14.9 14.8 14.8 81.9 85.4 81.9 0 383 0 714 NA 1.8 NA
2015-01-01 2015 1 1 5 35 -4.8 14.9 14.7 14.8 82.1 85.7 82.1 0 389 0 715 NA 2.2 NA
2015-01-01 2015 1 1 5 36 -4.7 14.9 14.7 14.8 81.9 85.7 81.9 0 386 0 715 NA 1.8 NA
2015-01-01 2015 1 1 5 37 -4.7 14.9 14.7 14.8 82.2 85.7 82.2 0 388 0 715 NA 1.7 NA
2015-01-01 2015 1 1 5 38 -4.7 14.9 14.7 14.8 82.7 85.7 82.7 0 385 0 715 NA 1.4 NA
2015-01-01 2015 1 1 5 39 -4.7 14.9 14.8 14.9 82.0 85.5 82.0 0 385 0 715 NA 2.1 NA
2015-01-01 2015 1 1 5 40 -4.7 14.9 14.7 14.8 82.9 85.6 82.9 0 386 0 715 NA 3.0 NA
2015-01-01 2015 1 1 5 41 -4.6 14.9 14.7 14.8 82.8 85.7 82.8 0 385 2 715 NA 1.0 NA
2015-01-01 2015 1 1 5 42 -4.8 14.9 14.7 14.8 82.9 85.7 82.9 0 387 9 715 NA 1.8 NA
2015-01-01 2015 1 1 5 43 -4.7 14.9 14.7 14.8 82.8 85.7 82.8 0 386 0 715 NA 2.2 NA
2015-01-01 2015 1 1 5 44 -4.8 14.9 14.8 14.9 82.6 85.0 82.6 0 388 0 715 NA 2.6 NA
2015-01-01 2015 1 1 5 45 -4.8 14.9 14.8 14.8 82.9 85.3 82.9 0 389 0 715 NA 2.5 NA
2015-01-01 2015 1 1 5 46 -4.8 14.9 14.8 14.8 82.9 85.7 82.9 0 386 0 715 NA 1.9 NA
2015-01-01 2015 1 1 5 47 -4.9 14.9 14.7 14.8 82.0 85.8 82.0 0 383 0 715 NA 3.0 NA
2015-01-01 2015 1 1 5 48 -4.8 14.9 14.8 14.8 81.9 85.8 81.9 0 385 0 715 NA 2.2 NA
2015-01-01 2015 1 1 5 49 -4.9 14.9 14.8 14.8 82.5 85.8 82.5 0 387 0 715 NA 4.2 NA
2015-01-01 2015 1 1 5 50 -4.8 14.9 14.8 14.8 82.4 86.1 82.4 0 385 0 715 NA 3.3 NA

이제 스마트 온실에서 측정된 환경 데이터가 어떤 형태인지는 파악되었을 것이다. 다음으로 분단위로 측정된 데이터를 60분간의 평균으로 시간단위 데이터로 변환해보자.

dat_hour <- dat[,c(1,5,7:19)] %>% group_by(date,hour) %>% summarise_all(funs(round(mean(.,na.rm=T),2)))
nrow(dat_hour)
## [1] 8760

dat_hour 데이터 행의 개수는 8,760개로 dat의 525,800개 대비 확연히 줄었다 분단위 측정치를 시간단위로의 변환이 필요한 이유는 데이터의 크기 때문이다. 분단위 측정 데이터는 1개 농가의 1년치 데이터의 크기가 약 40MB이다. 1000개 농가 데이터를 5년간 수집하고 있다면 데이터 크기는 200GB이다. 하드디스크의 가격이 싸기 때문에 저장공간의 문제는 크지 않으나 Cloud DB에 저장된 데이터를 분석하기 위해 인터넷망으로 불러와야 하는 상황이라면 200GB를 다운로드하기 위해서는 많은 시간이 소요될 것이다. 200GB 분단위 데이터를 시간단위 데이터로 변환하면 200 / 60 = 3.3GB 60배 더 빠른 속도로 데이터를 받을 수 있다.

시간단위로 요약된 dat_hour는 다음과 같이 매 시간별로 분단위 60개의 측정치의 평균값으로 표현된다.

Table 2: 온실내부환경 월통계 요약표
date hour OTP LTP RTP EVTP LHM RHM EVHM RAN CO2 INS ACC_INS WD WDS
2015-01-01 0 -1.19 15.19 16.79 16.00 80.16 84.18 80.16 0 410.88 0.41 706.17 NaN 1.92
2015-01-01 1 -1.82 16.18 16.04 16.11 76.84 85.65 76.84 0 400.63 0.23 707.67 NaN 1.69
2015-01-01 2 -2.26 15.94 15.69 15.83 80.03 85.83 80.03 0 398.77 0.52 709.45 NaN 3.32
2015-01-01 3 -2.74 15.68 15.71 15.70 79.02 85.57 79.02 0 398.90 0.23 711.08 NaN 2.69
2015-01-01 4 -3.81 15.05 15.40 15.23 79.86 86.02 79.86 0 393.88 0.72 712.60 NaN 3.08
2015-01-01 5 -4.58 14.78 14.88 14.82 81.90 85.80 81.90 0 388.20 0.52 714.42 NaN 2.27
2015-01-01 6 -5.07 14.71 14.48 14.60 82.66 86.32 82.66 0 384.87 1.07 716.05 NaN 1.97
2015-01-01 7 -5.27 14.62 13.92 14.28 82.88 87.03 82.88 0 379.98 6.20 538.18 NaN 2.79
2015-01-01 8 -4.82 15.45 14.20 14.83 81.89 86.76 81.89 0 390.82 74.72 11.73 NaN 2.97
2015-01-01 9 -4.11 17.49 15.60 16.55 79.12 85.16 79.12 0 452.00 229.20 66.10 NaN 3.43
2015-01-01 10 -3.28 19.76 21.11 20.43 71.96 71.74 71.96 0 423.32 364.98 174.65 NaN 2.98
2015-01-01 11 -2.26 21.04 23.16 22.11 69.42 71.18 69.42 0 409.98 403.62 315.88 NaN 1.91
2015-01-01 12 -1.49 21.70 25.46 23.57 68.15 60.76 68.15 0 348.08 469.20 464.60 NaN 2.51
2015-01-01 13 -0.95 20.98 25.61 23.29 69.26 61.75 69.26 0 306.37 489.25 640.67 NaN 2.66
2015-01-01 14 -0.53 22.72 25.32 24.03 68.46 64.12 68.46 0 310.90 440.28 809.60 NaN 3.12
2015-01-01 15 -0.50 20.47 22.92 21.69 76.64 71.61 76.64 0 333.83 321.40 949.08 NaN 2.14
2015-01-01 16 -0.96 17.96 19.23 18.60 82.56 79.66 82.56 0 346.15 148.90 1036.17 NaN 1.76
2015-01-01 17 -1.68 17.57 18.36 17.98 82.84 86.27 82.84 0 344.10 13.77 1061.72 NaN 1.01
2015-01-01 18 -2.31 17.12 17.18 17.18 79.99 87.69 79.99 0 372.87 1.10 1064.45 NaN 1.20
2015-01-01 19 -2.40 16.79 16.86 16.82 78.42 86.81 78.42 0 386.25 0.35 1066.10 NaN 2.45
2015-01-01 20 -2.46 16.90 16.81 16.86 77.42 86.61 77.42 0 394.55 0.55 1067.57 NaN 2.40
2015-01-01 21 -2.55 17.07 16.89 16.99 75.93 85.83 75.93 0 399.45 0.62 1069.28 NaN 2.08
2015-01-01 22 -2.79 16.91 16.75 16.85 74.36 85.38 74.36 0 405.00 1.25 1070.78 NaN 0.78
2015-01-01 23 -3.03 17.17 16.69 16.94 74.69 84.28 74.69 0 412.20 1.98 1072.43 NaN 0.43
2015-01-02 0 -2.75 17.79 17.04 17.42 74.11 83.81 74.11 0 421.36 1.19 1074.08 NaN 0.63
2015-01-02 1 -2.72 18.07 17.24 17.68 74.61 83.56 74.61 0 428.35 0.97 1075.57 NaN 0.88
2015-01-02 2 -2.72 17.94 16.88 17.42 75.27 84.41 75.27 0 426.53 1.07 1077.13 NaN 0.74
2015-01-02 3 -2.94 17.53 16.56 17.05 76.95 84.98 76.95 0 427.12 0.48 1078.65 NaN 0.86
2015-01-02 4 -2.73 17.35 16.32 16.84 78.49 85.84 78.49 0 425.73 0.15 1080.23 NaN 0.96
2015-01-02 5 -2.62 17.43 16.25 16.86 78.89 86.21 78.89 0 424.45 1.33 1081.72 NaN 1.18

NEXT : 스마트팜(ICT 기반 원예온실) 데이터의 이해 (2/3)

장박 avatar
About 장박
장박은 농업정보시스템 연구실에서 오랜시간 숙성되고 있는 농업데이터사이언티스트이다.
comments powered by Disqus