6. 6
해양 GIS
(융합과학)
해양공간
(연안, 표면, 수중, 해저)
해양학
통계학 정보학
지리학
해양 (GIS)자료
(관측, 조사, 연구)
해양현상 해석
(분석, 평가, 재구축)
분석, 해석
해양 GIS ?
R오픈소스를 이용한 선박자동식별장치 데이터 처리 및 GIS가시화
1. 해양과학과 해양GIS 소개
7. 7
해양 데이터 ?
R오픈소스를 이용한 선박자동식별장치 데이터 처리 및 GIS가시화
1. 해양과학과 해양GIS 소개
해양과학 분야 데이터의 특성 및 분류
Fields Number of data items
Physical (22) Water Characteriscs (4), Wave (9), ADCP (3), Acoustic (4)
Chemical (117) Water Quality (54), Sediment (43), Poracity Water (20)..
Biological (97)
Bacteria (9), Protozoa (19), Phyto Plankton (12),
Zoo Plankton (8), Fish (12), Pelagic Invertebrate (4),
Benthos (24), Algae (9)..
Geological & Geophysical (28) Geology (20), Geophysics (8)..
Others (24) Deep Sea (4), Weather (9), Stream water (12), Energy..
Total 287
<고정지점관측>
<이동관측>
<원격광역관측>
8. 8
해양 GIS 업무흐름
R오픈소스를 이용한 선박자동식별장치 데이터 처리 및 GIS가시화
1. 해양과학과 해양GIS 소개
시스템공간분석MappingGIS DB 구축공간DB모델링
추상화
구체화
Flowchart
ERD
Layer
File data
Table type GDB
- Indexing
- Searching
- Management
Topology analysis
Distance anaysis
Spatial statistics
Spatial modeling
Raster analysis
GIS
data
Decision making
Stand alone system
Backup
Server
DB
Server
Portal
Server
WebGIS
Server
Web GIS system
Researcher
Data model
해양GIS Working Process
9. 9
해양GIS의 기능과 역할
R오픈소스를 이용한 선박자동식별장치 데이터 처리 및 GIS가시화
1. 해양과학과 해양GIS 소개
GIS = 순환적 기술체계 = 의사결정 도구
(해양연구분야)
해양GIS는 해양연구 연구프로젝트의 전 과정에서 탐색적 분석, 공간패턴 분석 등을 통한
연구의 의사결정을 지원하는 순환구조적 기술체계이다.
공간분석 가시화
3차원공간, 공간적분포, 최적공간..
공간계획,기획 공간자료 생성/구축
해양공간정보 매핑
공간구획, 정점도, 인덱스맵 등
Basemap, Grid, mesh..
점, 선, 면(벡터), 이미지(래스터/위성)
Length, Area, Volume, size,
Raster Calc., GeoStatistics
지도중첩, 수치심볼화, 등급정의 등..
Thematic map, Overlay
Shp, GeoDatabase, Raster map,
Vector Map
Ocean
Research
Goal
9
11. 목 차
선박식별정보를 이용한 어업활동 공간밀도 가시화
1. 해양과학과 해양 GIS 소개
2. 연구 개요
3. 연구 내용
4. 향후 계획 및 맺음말
12. 연구 배경
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
수산자원 고갈 / 바다환경 오염 / 연근해 어업관리, 이용 정책 이슈..
Where?
어업활동 공간적 분포 ?
주요 어업활동 밀집지역 ?
AIS정보 활용 방안 ?
오픈소스 기반 방법론 ?
12
선박, 인명 사고 다발지역 ?
13. 연구 목적
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
대용량데이터
처리
자료 가공
및 분석
데이터
공간 가시화
연근해 어업활동 분석을 위한 Open source 기반
대용량 AIS데이터 분석 및 가시화 방법론 연구
AIS데이터 등 대용량
해양관측 빅데이터
를 PC에서 처리하기
위한 방법론 필요
기존의 번거로운
자료 전처리(자료변환,
통계산출, 자료재생성
등)를 동일환경에서
신속하고 편리하게
수행할 수 있는 방안
대두
상용 GIS S/W에
종속되지 않고 오픈
소스를 이용해 다양한
방법으로 보유자료를
빠르게 가시화 할 수
있는 방법론 요구
13
14. 연구지역 및 자료
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
연구 대상지역(경기만) 연구 대상 자료
일시 : 2014년 10월 11일
기간 : 1일간
단위 : 밀리초 단위 데이터
어선수 : 353
자료구조 : 1,172,033행 7열
파일포맷 : CSV text file
파일크기 : 76MB
(어선식별번호, 일시, 경도, 위도, 순..)
14
15. 지능형 해상교통관리시스템(V-PASS)은 선박운항 중에 발생할 수 있는
위험요소를 사례별, 유형별 자료에 근거해 사고 위험도를 측정하고
선박의 위치 정보를 기반으로 충돌, 항로이탈, 비정상운항 여부를
감지하고 예측해 단계별(관심-주의-경계)로 알림 기능을 작동시키는 장비
V-PASS GICOM
연구대상 자료 V-PASS(AIS) ?
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
(출처 : 한국과학기술기획평가원, 2015, “IMO 차세대 해양안전종합관리체계 기술개발 사업”, p39~40)
15
16. V-PASS(AIS) 관련 법령
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
http://law.go.kr/LSW/admRulLsInfoP.do?admRulSeq=2200000032761
16
17. 오픈소스 R 과 QGIS
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
R ? R is a language and environment for statistical computing and graphics.
R은 1993년 뉴질랜드 오클랜드대학의 통계학과 교수 2명(Ross Ihaka, Robert
Gentleman)에 의하여 개발
1976년 Bell Lab의 John Chambers, Rick Becker, Allan Wilks에 의하여 개발된
S-Language에 그 뿌리를 두고 있음
17
자료전처리 > 통계분석 > 통계모델링 > 머신러닝 > 가시화 > 리포팅 > 웹기반표출
18. Microsoft R ?
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
CRAN?
“Comprehensive R Archive Network” (CRAN)은 R 배포판, 기여된 확장 프로그램들
(즉, 패키지들), R과 관련된 문서들, 그리고 바이너리들로 구성되어 있는 동일한 자
료들을 전달하는 사이트들의 모음(네크워크)을 의미
18
19. 19
R ecosystem ?
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
2. 연구 개요
LINUX MACWINDOWS
CROSS PLATFORM
R-core
engineCRAN
R-IDE
packages
packages
28. 목 차
선박식별정보를 이용한 어업활동 공간밀도 가시화
1. 해양과학과 해양 GIS 소개
2. 연구 개요
3. 연구 내용
4. 향후 계획 및 맺음말
29. 29
전체 프로세스
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
패키지 & 자료 로딩
어선식별정보CSV 파일로딩
(WindowsCommon Dialog)
파일read (colClasses)
자료추출
(밀리초->분단위 & 추출)
추출자료 파일저장
(밀리초->분단위 & 추출)
추출자료 저장파일 네이밍룰
항적 plot (개략 확인용)
자료 전처리(시간단위)
(밀리초->초)
데이터프레임 생성(1차)
공간데이터 처리
위경도 컬럼 추출 및
좌표계 정의
좌표변환
(구형좌표->평면좌표)
데이터프레임 재배열
(In-Memory)
컬럼명 재정의 및
데이터프레임 생성(2차)
어업활동 분석
고유선박수 추출,
어선별 데이터프레임 생성
지점간 시간차
연산변수 생성
연속한 두 지점간 이동거리
산출변수 생성 및 입력
어선별 연속한 두 지점간
시간차, 이동거리, 이동속도
연산 및 컬럼 추가생성
단위어선별 데이터프레임
최대행 추축(경계조건)
처리결과 자동취합
(rbind)
취합 데이터프레임
에러체크 및 처리
공간가시화
전체어선 항적 plot,
이동속도분포 plot
속성값 통계 리뷰
(Boxplot, Histogram)
QGIS
공간분석용 격자망 생성
사고 공간밀도 생성
사고이력 공간데이터 로딩
(선박사고/인명사고)
종합공간분석도 plot
WebGIS기반 가시화
(QGIS & Plug-in)
데이터프레임 생성(3차)
파일저장(Excel/CSV)
QGIS Spatial join 수행
분석결과 공간데이터 생성
(공간 통행밀도도)
QGIS
QGIS Web Browser
30. 오픈소스 R과 QGIS를 이용한 수행과정
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
76MB
1,172,033 row
(밀리초 데이터)
5MB
16,728 row
(분간격 데이터 추출)
추출자료
엑셀파일로
저장
파일명+“__mins.xlsx”
시간차 계산을 위한
일시 컬럼 추출
구형좌표->평면좌표
변환을 위한 위치컬럼
추출 및 변환
시간포맷,
평면좌표 산출
컬럼을 재배열
추출자료에
존재하는
어선 댓수 산출
353
For (j in 1:어선수) {
어선식별데이터셋 추출
평면x좌표 컬럼 배열
평면y좌표 컬럼 배열
For (I in 1:행수) {
컬럼10 추가 : 시간차 산출
컬럼11 추가 : 두점간 거리 산출
컬럼12 추가 : 두점간 이동속도 산출
}
어선별 산출결과 데이터프레임을
어선 댓수 만큼 행결합(rbind)
}
AISBIGFiles
산출정보
엑셀파일로 저장
파일명+“__mins_finish.xlsx”
산출정보
CSV파일로 저장
파일명+“__mins_finish.csv”
QGIS
공간속성
조건추출
저속운항지역
공간가시화
통행밀도
공간가시화
종합
공간가시화
Spatial join
(count points in polygon)
DF
DF
DF
DF
DF
DF
DF
DF
CSV -> SHP
RSHP
DF DF
RSHPRSHP
DF
RSHP
DF RSHP:Data Frame r-Object :In-Memory shape r-Object
(Fortified r-object)
:Physical Files
30
31. 대용량데이터 고속 처리(’sqldf’ package)
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
AIS데이터(AreaB_20141011.csv)-> 1,172,033라인 7컬럼 / 파일사이즈 : 76 MB
PC에서 처리시 문제점
->엑셀에서 오픈시 1,048,576까지만 읽어 옴.
->문자형 컬럼값(년월일시분초) 등을 숫자형으로 인식하여 자동변환(20141011235957000->2.0141E+16) 문제
R-’SQLDF’패키지를 이용한 대용량데이터 (고속)처리
31
32. 대용량데이터 고속 처리(’sqldf’ package)
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
# 필요한 패키지는 sqldf, xlsx 설치하고 로딩 후 실행..
# 패키지 설치 및 로딩 필요 sqldf, xlsx
Install.packages(“sqldf”), library(sqldf)
Install.packages(“sqldf”), library(xlsx)
V1011 <- read.csv("E:/Trans_AIS/VPASS_B_10/AreaB_20141011.csv", header = FALSE, fileEncoding = "utf8",
colClasses = c("character", "character", "numeric", "numeric", "numeric", "numeric", "numeric"))
V1011_min <- sqldf("select * from V1011 where V2 like '%00000'")
write.xlsx(V1011_min, file = "E:/Trans_AIS/VPASS_B_10/V1011_min.xlsx", sheetName = "sheet1", col.names = TRUE,
row.names = FALSE)
system.time(plot(V1011_min$V3, V1011_min$V4, pch = 20, col = V1011_min$V1, cex=1))
system.time(plot(V1011$V3, V1011$V4, pch = 20, col = V1011$V1, cex=1))
rm(V1011)
rm(V1011_min)
[처리 미션]
◈ 문자형으로 처리되어야 하는 숫자형데이터를 자동변환처리
◈ 초단위 자료를 정시, 정분 자료로 빠르게 가공
◈ 요구 처리된 자료를 엑셀 .xlsx로 자동생성
◈ 공간자료처리 : .xlsx -> .xls -> GIS Data(Point/line) -> 공간연산 -> mapping
fileEncoding=”utf-8” 지정은 한글깨짐 방지 옵션
coClasses 는 데이터유형을 지정하여 인식하게 하는 기능으로서 컬럼수와 동일한 갯수만틈 지정
32
33. 대용량 AIS자료처리 예
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
대용량 데이터 멀티쓰레드 연산기술 활용(MRO MKL & RTVS(R tools for Visual Studio)
33
34. MRO 멀티코어 라이브러리(MKL) 처리 성능
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
system.time(V1011 <- read.csv("E:/Trans_AIS/VPASS_B_10/AreaB_20141011.csv", header = FALSE, fileEncoding = "utf8",
colClasses = c("character", "character", "numeric", "numeric", "numeric", "numeric", "numeric")))
사용자 시스템 elapsed
11.72 0.11 11.83
> system.time(V1011_min <- sqldf("select * from V1011 where V2 like '%00000'"))
사용자 시스템 elapsed
1.84 0.03 1.87
>system.time(write.xlsx(V1011_min, file = "E:/Trans_AIS/VPASS_B_10/V1011_min.xlsx", sheetName = "sheet1",
col.names = TRUE, row.names = FALSE))
사용자 시스템 elapsed
49.97 0.25 47.83
자료처리 성능(속도)
[시스템환경]
OS : Windows 10 x64
CPU : intel i7-3770 / 4-Core / 3.40GHz
RAM : 16 GB
R : MRO 3.2.5 + MKL(멀티쓰레드 라이브러리)
https://mran.microsoft.com/download/
1,172,033 obs. Of 7 variables : 읽기 속도
16,728 / 1,172,033 obs. Of 7 variables : 추출 속도
16,728 obs. Of 7 variables : 쓰기 속도
34
35. R 패키지(SP, RGDAL) 공간좌표 정의/변환/연산
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
> library(rgdal) #rgdal 패키지 설치 및 로딩
> library(sp) #SP(Spatial Points) 패키지 설치 및 로딩
> head(G1011_min)
> df<-subset(G1011_min, select=c(V4, V3))
> names(df)<-c("Latitud", "Longitud")
> head(df)
# Conversion into SpatialPoints
> coordinates(df) <- ~Longitud+Latitud
# Setting default projection
> proj4string(df) <- CRS('+init=EPSG:4326')
# Projection
# Be sure to have rgdal first installed.
> df_utm <- data.frame(spTransform(df, CRS('+init=EPSG:32652')))
> head(df_utm)
> str(df_utm)
> names(df_utm)<-c("x_utm", "y_utm")
> head(df_utm)
> df<-data.frame(df)
> FinalDf=data.frame(cbind(G1011_min$V1, G1011_min$V2, G1011_min$V3, G1011_min$V4,
> df_utm$x_utm, df_utm$y_utm, G1011_min$V5,G1011_min$V6,G1011_min$V7,G1011_min$V8))
> names(FinalDf)<c("Ship_ID","datetime","Longitud","Latitud","x_utm","y_utm","v7","v8","v9","v10")
> head(FinalDf)
SP 패키지
변환함수
to UTM..
대상 추출
원래 데이터에 삽입, 구성!
AIS(GICOMS) 데이터 (초단위 ->분단위 추출 : 선박운항 속도 계산을 위해 간격은 가변적으로 조정할 수 있음) 위경도 -> Utm 좌표값으로 변환
입력파일 -> G1011_min.csvhttp://stackoverflow.com/questions/30429384/how-to-transform-longitude-latitude-degree-to-utm-r-rgdal-sp
35
36. R 패키지(LUBIRDATE) 일자, 시간 연산/변환
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
> period=seq(as.POSIXct("2016-01-01 10:20:00"),
as.POSIXct("2016-01-02 23:25:00"), "mins")
> strdate<-data.frame(as.character(period))
> names(strdate)<-c(“date”)
> head(strdate)
> tail(strdate)
숫자형문자로 이루어진 일자+시작 데이터를 이용해 특정 간격의 일자+시각 시퀀스 데이터로 생성한 후,
다시 문자형 자료로 데이터프레임으로 만들기!
원하는 일자, 시각의 시작과 끝을 지정하고 시간간격(주, 일, 시간, 분, 초 등)
옵션을 지정하면 정의된 시간 간격만큼의 시퀀스를 자동으로 만들어 줌
본 예제의 경우, 지정한 시작일과 끝일까지의 분단위 2226개 시퀀스를 생성!
생성된 일자, 시간 시퀀스 값은 다시 문자형 데이터로 변환한 후,
데이터프레임으로 생성시킴!(strdate)
시계열 그래프를 plot 해야 할 경우 기존의 문자형 일자값을 Date포맷으로 바꿔야 할 경우, 유용!
Character to Datetime intervals & Datetime intervals to Character
36
37. AIS데이터 공간조인을 위한 QGIS 활용
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
1km간격 정방격자 생성 -> 1분간격 어선 AIS좌표 지점데이터와 Spatial Join -> 격자속성값 생성
37
38. R GIS가시화 패키지를 이용한 분석결과 표출
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
Spatial Join결과 shape파일을 -> R-object(데이터프레임)로 변환하여 종합 가시화
구글 베이스맵 로딩
격자망(Polygon) shp파일 로딩
Point자료 조건부 가시화
38
39. 오픈소스 R을 이용한 공간가시화 결과
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
1 2 3
4 5 6
V-PASS 1분간격 추출정보 plot 어선 이동속도(저속)별 plot 0 < V(m/s) <= 0.3 조건 plot
1km간격 정방격자 생성>공간연산>로딩 단위 구역(격자)당 어선운항 밀도 종합 공간가시화
39
40. 40
R + GIS Packages ArcGIS Desktop
구분 R + GIS Packages ESRI ArcGIS Desktop
장점
◈ 무료, S/W, 공간데이터 파일 필요 없음
(공간데이터 제작이 필요한 경우 제외)
◈ 신속한 데이터 처리 및 분석작업이 가능
◈ 멀티플랫폼을 지원하며 QGIS등과 연동
◈ 멀티쓰레드 기능 활용 가능
◈ R scripts 및 Python기반 최적화 되어 있음
◈ 정밀한 고급분석이 가능 함.
◈ 고품질 지도 콘텐츠 제작 기능이 탁월
◈ 사용자 GUI 환경 및 편의기능이 뛰어남
◈ Python 을 이용한 커스터마이징 기능 제공
단점
◈ 사용자 환경이 상대적으로 불편
◈ 운영환경이 가볍고 빠름(Mac/Linux)
◈ 고가 S/W, 공간자료 형태로 변환하여 사용하여야 함.
◈ 운영체제 종속성
◈ 운영환경이 무거움(윈도우 OS공통문제)
Point Density Analysis, R vs ArcGIS
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
44. 44
Interpolation in R 참고자료
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
Thiessen polygons IDW
2nd order polynomial Kriging Generate the variance map
Points Feature
library(gstat) # Use gstat's idw routine
library(sp) # Used for the spsample function
library(spatstat) # Used for the dirichlet tessellation function
library(maptools) # Used for conversion from SPDF to ppp
library(raster) # Used to clip out thiessen polygons
library(rgdal)
library(tmap)
전문 패키지에 의한 고급 공간분석 및 가시화 기능 제공..
45. 45
Plotly with R (On-Line interative Graph) 참고자료
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
http://rpubs.com/mariner610/212324
Rstudio 온라인 스토리지(Rpubs.com)에 그래프 저장, 공유
46. 46
Shiny by Rstudio (to Web Contents) 참고자료
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
3. 연구 내용
http://shiny.rstudio.com/gallery/superzip-example.html http://shiny.rstudio.com/gallery/bus-dashboard.html
http://shiny.rstudio.com/gallery/kmeans-example.html http://shiny.rstudio.com/gallery/word-cloud.html
47. 목 차
선박식별정보를 이용한 어업활동 공간밀도 가시화
1. 해양과학과 해양 GIS 소개
2. 연구 개요
3. 연구 내용
4. 향후 계획 및 맺음말
48. 기대효과
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
4. 향후 계획 및 맺음말
중소규모 연안 어선 및 낚시배들의 운항 위치 및 운항패턴 분석
주간/야간별 어선 운항 공간분포 파악(계절별, 시기별)
어선 운항 공간밀도 분석(계절별, 시기별)
실시간 어업(밀도) 모니터링
어
업
현
황
선박, 인명사고 정보 등과 연계하여 사고 다발지역 파악
기존항로의 적정성 및 충돌사고 예방을 위한 참고자료 활용
제한구역 통행, 진입방지 및 이상선박 징후 예측에 활용
접경해역 중국어선 불법 조업행위 분석 및 대책 수립
어업 밀집 해역에 대한 환경조사 및 관리 정책 수립, 시행
어업관련 해양공간이용 계획 정책수립을 위한 기초자료로 활용
지자체별 중소규모 어업통계 산출
어선 V-PASS정보를 이용한 실시간 어선 관제시스템
어
업
안
전
어
업
관
리
오픈소스를 이용한
대용량 선박데이터 일괄처리 및 가시화분석 기법 고도화
개발 확대
48
49. 향후 계획
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
4. 향후 계획 및 맺음말
구분 주요내용 비고
융합분석 콘텐츠 개발
어업과 관련한 해양생태, 자원, 환경, 기후, 정책
등 융복합연구 아이템 기획 연구
AIS정보 정밀분석 어업현황, 안전, 관리 분야별 세분화 분석 연구
빅데이터 플랫폼
Linux + Hadoop 기반의 빅데이터 분산처리 플
랫폼 구축 및 대용량 AIS데이터 관리기술 연구
데이터 처리 자동화
자료수집 -> 자료가공/변환->자료선별->자료
생성->자료버전별 관리 등 자료 처리의 전과정
자동화 운영기법 연구(Only with R..)
공간 가시화/분석
AIS데이터 공간질의 및 공간조인, 공간연산 등
고급 공간분석을 위한 기법 연구(Only with R..)
실시간 모니터링
데이터분포, 특성, 생성데이터셋 구조 등 AIS데
이터 통계 및 가시화를 동시에 모니터링 할 수
있는 웹기반 대시보드 기법 연구
49
50. 50
선박식별데이터, 연구선상시관측자료,
해양관측위성 자료, 수치모델자료,
각종 관측기기 자료 등 해양과학 데이터
대용량 수치데이터
변환/전처리/가공
클러스터 구축
빅데이터 플랫폼
분산 저장/관리 자료 가공/처리
예측 알고리즘 개발
(해양과학 전문분야)
분석/기계학습/AI
(대용량 분산병렬처리) 가시화 서비스
글로벌/로컬 해양 관측자료
Hadoop HDFS(Open Source)
데이터 분산저장
향후 계획 – 빅데이터 플랫폼 구축 및 활용기술 연구
선박자동식별정보를 이용한 어업활동 공간밀도 가시화
4. 향후 계획 및 맺음말
NoSQL
RDBMS