Korea Digital Contents Society
[ Article ]
Journal of Digital Contents Society - Vol. 19, No. 8, pp.1593-1601
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 31 Aug 2018
Received 05 Jul 2018 Revised 25 Aug 2018 Accepted 28 Aug 2018
DOI: https://doi.org/10.9728/dcs.2018.19.8.1593

S-129 선저여유수심 정보 표출을 위한 국제표준기반 표출엔진 설계 및 구현

김효승1 ; 문창호1 ; 이서정2, *
1한국해양대학교 컴퓨터공학과
2한국해양대학교 해사IT공학부
Design and Implementation of Portrayal Engine for S-129 Under Keel Clearance Information Display
Hyoseung Kim1 ; Changho Mun1 ; Seojeong Lee2, *
1Department of Computer Engineering, Korea Maritime and Ocean University, Busan 49112, Korea
2Department of Marine Information Technology, Korea Maritime and Ocean University, Busan 49112, Korea

Correspondence to: *Seojeong Lee, Tel: +82-51-410-4578, E-mail: sjlee@kmou.ac.kr

Copyright ⓒ 2018 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

초록

국제수로기구는 항해안전을 위해 세계 각국의 수로정보 통일하고 신속하게 교환할 목적으로 창설된 기구이다. 국제수로기구 S-100 표준은 공통된 데이터 구조로써 다양한 수로정보를 표현할 수 있는 지리 공간 표준이다. S-100 표준을 기반으로 전자해도를 위한 S-101을 비롯하여 다양한 명세들이 개발되고 있다. 본 논문에서는 S-100 기술의 구현에 관심 있는 개발자들의 어려움을 도와주기 위해, 선저여유수심관리 데이터모델을 표출하는 프로세스를 기준으로 선저여유수심관리 데이터모델의 검증을 위해 전자해도에 표출하는 실험을 했다. 데이터 표출 프로세스는 데이터 인코딩과 표출엔진으로 구성되며, 데이터 인코딩은 응용 스키마 생성과 데이터 셋 생성과정을 포함한다. 본 논문에서는 표출엔진의 XSLT 처리과정과 드로잉 명령집합에 대해 상세히 설명한다. 또한, 부산항 인근지역의 항로를 정하고 선저여유수심의 결과가 전자해도에 표출되는 실험을 해보았다.

Abstract

The International Hydrographic Organization has developed the S-100 standard as a geospatial standard to express various types of hydrographic information. Product specification describes information of data on ENC such as definition, structure, data model, etc. S-129 PS is for under keel clearance management information. In this paper, to help developers to implement S-129 PS using the technology of S-100, we analyze the process to portray the S-100 based data and then implement a case study. This paper introduces the XSLT processing of portrayal engine to reform the generated data set, and the generation of drawing instructions to display the data set on the electronic chart. A case study is experimented to display the portrayal output of under keel clearance management on an electronic chart.

Keywords:

Data model, Electronic navigational chart, S-100 standard, Under keel clearance management

키워드:

S-100 표준, 데이터 모델, 선저여유수심관리, 전자해도

Ⅰ. 서론

국제수로기구에서는 선박항해에 필수적인 해도의 표준을 정하고 있다. S-100기반 전자해도는 기존 해도표출 방식을 보완하기 위해 새롭게 정의되고 있으며, 선저여유수심관리에 대한 표준 개발은 그 일환으로 S-129의 공식 번호를 받고 2016년 착수되었다[1].

선저여유수심이란 선박의 가장 밑 부분과 해저 지형과의 거리를 의미하며 선저여유수심관리는 동적으로 변하는 환경요소에 대한 정보와 각 선박의 정보를 고려하여 선박별로 실시간으로 정확한 선저여유수심을 제공해주는 것이다. 화물을 운반하는 선박은 항해 안전이 보장된 범위 내에서 최대 선저여유수심의 허용 범위까지 화물을 적재할 수 있는 경제적 이점을 갖게 된다[2].

선저여유수심관리의 국제 표준화에는 호주와 한국 등 다양한 국가의 참가자로 구성된 워킹그룹에서 국제 표준화를 진행하고 있다. 한국해양대학교에서는 S-129 표준화에 참여하고 있으며 데이터모델링 부분을 맡고 있다.

본 논문에서는 선저여유수심관리 데이터모델을 검증을 위해 전자해도에 표출하는 실험을 했다. 기본적으로 데이터 표출(portrayal) 프로세스는 데이터 인코딩과 표출엔진으로 구성되며, 데이터 인코딩은 응용 스키마 생성과 데이터 셋 생성과정을 포함한다. 본 논문에서는 이 프로세스 중 표출엔진의 XSLT 처리과정과 드로잉 명령집합에 대해 상세히 설명하고, 이에 따라 S-129 표출에 필요한 소프트웨어 모듈을 구현하였다. 부산항 인근지역의 항로를 정하고 선저여유수심의 결과가 전자해도에 표출되는 실험을 해보았다.


Ⅱ. 관련연구

2-1 S-129 선저여유수심관리 표준

그림 1은 호주해사청(AMSA, Australian Maritime Safety Authority)에서 규정하고 있는 선저여유수심의 제한이다. 선저여유수심 제한은 1m 혹은 정적 흘수값(Static draught)의 10%로 규정하고 있다[3].

Fig. 1.

Concept of under keel clearance

선저여유수심관리는 환경정보와 선박정보를 기반으로 정확한 선저여유수심 값을 계산하여 각 선박에게 제공하는 것으로, 안전운항을 돕고 화물 적재 효율성을 증진시키는 이점을 갖는다. 이러한 이점으로 인해 선저여유수심관리 서비스는 현재 호주, 캐나다 등의 국가에서 실시하고 있다.

2-2 S-100 표출 프로세스

Fig. 2.

Portrayal process of UKCM data model

그림 2는 선저여유수심관리의 데이터를 표출하기위해 참조해야하는 국제수로기구에서 정의한 표준 프로세스이다[4]. 해당 제품사양에 포함된 데이터 모델을 기반으로 데이터 인코딩과 표출 엔진 구현의 단계를 거친다. 데이터 인코딩 단계는 S-100 표준에 제시된 방법을 따라야하고, 그 결과 응용스키마와 데이터 셋이 각 XSD(XML schema definition)와 GML(geography markup language)의 형식으로 작성된다.

표출 엔진은 다음 단계의 렌더링 수행을 위한 드로잉 명령집합을 생성한다. 드로잉 명령집합은 피처가 전자해도에 어떤 모양으로 표현되어야 하는지에 대한 정보를 담는 XML 문서이다. 드로잉 명령집합은 XSLT 처리 과정을 통해 생성되며 해당 과정에 필요한 스타일시트 문서와 관련 SVG 이미지, 색상 정의 문서를 작성한다. 데이터 셋과 드로잉 명령집합이 생성되면 전자해도에 데이터 모델을 표출할 수 있다.


Ⅲ. 표출 엔진(Portrayal Engine)

본 논문에서는 S-129 선저여유수심관리의 표출 프로세스 중 표출엔진, XSLT변환과정과 이에 필요한 입력 문서 및 변환 결과에 대해 상세히 설명한다.

3-1 표출 엔진

표출 단계는 미리 정의된 피처정보에 표출에 필요한 드로잉 정보를 매칭시켜 드로잉 명령집합을 생성하는 과정으로 XSLT 변환과정이 필요하다. XSLT는 기존 XML문서를 새로운 문서로 변환하는데 사용하는 방법이다. XSLT를 위하여 표출 규칙이나 심볼 정보 등을 담고 있는 표출 함수(portrayal function)를 변환 규칙으로 사용한다. 그림 3은 표출 엔진에서 수행해야하는 작업과 입력 및 출력 결과에 대한 프로세스이다.

Fig. 3.

Detail process of portrayal engine

XSLT 과정에 앞서 데이터 셋에 대해 XML 문서 형식으로 변환하는 과정을 거친다. S-100 표준은 ISO/IEC 8211, GML, HDF5 등 다양한 데이터 인코딩 방식을 지원한다. S-100 표준에서는 표출 프로세스에서 모든 인코딩 방식에 대해 적용이 가능하도록 데이터 셋 형식변환 과정을 권고한다[5].

입력 문서를 생성하기 위해 입력 스키마를 정의한다. 입력 스키마는 피처, 공간, 정보로 객체를 분류하며 관계를 갖는다. 입력 스키마를 구성하기 위한 기본 객체들은 S-100 표준에서 제공하는 스키마 문서에 정의되어 있으며 해당 스키마 문서를 참조하여 입력 스키마를 정의한다.

입력 문서는 입력 스키마에 지정된 형식에 따라 구성되며 피처이름, 아이디, 원시값과 XLST 처리 과정에 필요한 속성들을 포함한다. 원시값은 해당 피처의 지리적 형태를 나타내며 point, curve, surface 등의 값을 갖는다.

표출 단계의 결과물 혹은 관련 기술들은 다양한 파일 형식과 언어를 사용한다. 표 1은 표출 단계에서 사용되는 언어 혹은 파일 형식을 설명한다.

File format and language used in portrayal process

3-2 XSLT 처리과정

XSLT는 XML 문서의 변환 기능을 수행하는 과정으로 입력 문서의 데이터에 스타일시트를 적용하여 데이터를 다른 구조로 출력한다. XSLT 처리 과정에서 처리기는 입력문서의 내부요소들을 탐색하며 XPath 기술이 사용된다[6]. XPath는 스타일시트에 사용된 요소나 속성들을 찾기 위해 사용되며 /, *, @ 등 특수한 기호를 통해 XML 문서에서 모든 유형의 정보를 탐색하는 기술이다. XPath를 통해 입력 문서의 엘리먼트나 속성 중 스타일시트에 정의된 템플릿과 일치하는 부분을 찾는다.

그림 3은 XPath와 XSL 서식요소를 통해 템플릿이 적용되는 과정을 보여주며 선저여유수심관리 모델의 피처 중 S129_Route를 예로 들었다[7]. ①은 템플릿을 적용할 입력 문서의 엘리먼트를 찾는 과정이다. S129_Route.xsl 문서에서는 match 속성을 사용하여 엘리먼트명이 S129_Route이고 primitive 속성값이 Curve인 엘리먼트를 찾아 템플릿을 적용한다. ②는 ①을 통해 찾은 엘리먼트를 대상으로 SimpleLineStyle.xsl 문서에 정의된 SimpleLineTemplate이라는 템플릿을 적용하는 과정이다. 템플릿 호출과 함께 필요한 정보들을 매개변수로 넘겨준다. 이후 SimpleLineTemplate에 정의된 구조에 따라 S129_Route의 드로잉 명령집합이 생성된다.

Fig. 4.

XSLT process

3-3 표출 라이브러리와 표출 카탈로그

표출 라이브러리는 표출 모델 중에 사용되는 각종 자원으로 심볼 이미지, 색상, 글꼴 등을 포함한다. 표출 카탈로그는 표출 라이브러리의 각 자원에 대해 설명하는 문서로 자원 혹은 파일의 이름, 위치, 형식, 설명 등을 포함한다.

선저여유수심관리의 피처는 표출 라이브러리 중에서 ColorProfiles, Symbols, AreaFills, Fonts, Rules를 사용한다.

Component of portrayal library

(1) ColorProfiles

ColorPrifiles는 표출 과정에 사용되는 색상들을 정의한 문서이다. 각 색상은 토큰값과 수치값을 갖는다. 수치값은 RGB와 CIE(International Commission on Illumination) 1931 색공간 좌표체계로 나타낸다. 토큰값은 외부문서에서 수치값을 참조하는데 사용된다. 선저여유수심관리에서는 경로, 텍스트, 면 등의 요소에 색상이 사용된다. 문서는 XML 형태로 구성되며 S-100 표준의 s100ColorProfile.xsd 스키마를 참조한다.

(2) Symbols

Symbols는 전자해도에 표현되어야하는 특수한 기호, 이미지를 말한다. S-100 표준에서는 SVG(Scalable Vector Graphics) 파일 형태로 Symbols를 구성한다. SVG는 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 확장자이며, W3C에서 정의된 표준이다. 이미지의 왜곡이나 손상 없이 다양한 해상도 변화에 대응할 수 있는 장점이 있다(W3C, 2011). S-100 표준의 Appendix 9-C에는 SVG 이미지 정의에 대한 내용을 다루고 있다. 선저여유수심관리에서는 UnderKeelClearanceControlPoint 피처의 표현에 SVG 이미지가 사용된다. S-100 표준의 SVG는 mm단위를 사용하며 이미지의 중심 좌표가 (0 , 0)인 특징을 갖는다.

(3) Fonts

Fonts는 전자해도에 사용되는 글꼴의 모음으로 트루타입 형식의 글꼴을 사용한다. ttf, tte의 확장자를 갖는다.

3-4 드로잉 규칙

Rules은 XSLT 처리 과정에서 사용되는 XSL 스타일시트의 모음이다. 선저여유수심관리에 사용되는 스타일 시트 문서는 10가지이며 그림 5와 같다[7].

Fig. 5.

Component of drawing rules

main.xsl 문서는 템플릿 적용 범위를 지정하고 탐색한다. 탐색 중인 엘리먼트 중 Group 1의 템플릿(S129Route, NonNavigableArea, InformationBox, Control Point)을 적용할 수 있는 엘리먼트가 발견되면 해당 템플릿을 적용한다. Group 1의 템플릿에서는 매개변수를 통해 드로잉 명령집합을 구성하는데 필요한 데이터들을 Group 2의 템플릿으로 전달한다. Group 2의 템플릿에서는 매개변수를 전달받아 드로잉 명령집합의 구성에 따라 엘리먼트, 속성 등을 새로운 XML 문서에 출력한다.


Ⅳ. 드로잉 명령집합(Drawing Instructions)

XSLT 처리 과정을 통해 S-100 표준에서 정의한 구조의 드로잉 명령집합이 도출된다. 그림 6은 S-100 표준에서 정의한 드로잉 명령 패키지 모델을 나타낸다[5].

드로잉 명령집합은 피처에 따라 전자해도에 표현될 형상에 대한 데이터를 다루는 XML 형식의 문서이다. 형상은 피처 타입에 따라 결정되거나 룰에 따라 정의되며 점, 선, 면, 텍스트 등의 형상의 유형에 따라 필요한 데이터들이 다르다. 표 3은 선저여유수심관리 모델의 드로잉 명령 집합 구성을 보여준다.

Structure of drawing instructions of UKCM model

4-1 드로잉 명령(DrawingInstruction)

DrawingInstruction 클래스의 속성들은 형상의 종류에 상관없이 모든 드로잉 명령이 포함하는 항목이다. DrawingInstruction 클래스에 정의된 속성들은 다음과 같다.

Fig. 6.

Model of the drawing instruction package

(1) viewingGroup

뷰잉 그룹은 형상을 종류, 유형, 목적에 따라 구분한다. 뷰잉 그룹 값에 따라 전자해도에 데이터를 출력하거나 출력하지 않을 수 있으며 선원들은 필요한 정보 유형에 따라 데이터를 제어할 수 있게 된다. 뷰잉 그룹은 국제해사기구의 범주에 따라 분류된 5자리의 번호를 값으로 갖는다.

(2) displayPlane

해당 속성은 전자해도에 형상이 표출될 때 레이더 표시와의 관계를 나타낸다. 레이더 밑에 표출 되면 UNDARRADAR, 레이더 위에 표출되면 OVERRADER 값을 갖는다.

(3) drawingPriority

해당 속성은 전자해도에 형상이 표출될 때의 우선순위를 나타낸다. 정수형 자료형을 사용하여 우선순위를 표현하며 우선순위 값이 클수록 전자해도 상에서 위에 표출되어야한다.

(4) scaleMinimum, scaleMaximum

형상은 전자해도에 표출될 때 축척에 따라 표출여부가 달라질 수 있다. 해당 속성은 형상이 표출되기 위한 최소 축척, 최대 축척의 값을 갖는다. 축척과 관계없이 항상 표출되는 경우 scaleMinimum과 scaleMaximum은 생략한다.

(5) featureReference, spatialReference

해당 속성은 드로잉 명령이 적용될 피처 혹은 공간을 연결하는 참조값을 갖는다. 피처 참조값은 피처의 아이디를 나타내며 렌더링 과정에서 피처 데이터를 찾기 위해 사용한다. 공간 참조값은 피처와 관련된 지형 데이터와 드로잉 명령을 매칭시킨다. 공간 참조값은 경우에 따라 사용되지 않을 수 있다.

4-2 선 명령(LineInstruction)

선 명령은 전자해도에 선 형태의 형상을 표출하기 위해 사용되며 선 스타일 패키지(Line Styles Package)를 포함한다. 선 스타일 패키지는 선을 나타내기 위한 관련 속성과 클래스들로 구성한다. 선저여유수심관리 모델에서는 항해경로를 나타내는 S129_Route 피처가 선 명령을 사용한다. S129_Route의 형상을 표현하기 위한 선 패키지 모델의 주요 속성과 클래스들은 다음과 같다.

(1) Pen 클래스

Pen 클래스는 width 속성과 Color 클래스로 구성된다. width 속성은 선의 두께를 나타내며 mm 단위를 사용한다. Color 클래스는 표출 라이브러리의 ColorProfile을 참조하기 위한 토큰값과 투명도 값으로 구성한다.

(2) offset, capStyle, joinStyle 속성

선 스타일 패키지는 offset, capStyle, joinStyle 등의 속성을 포함한다. offset은 실제 좌표와의 변위차를 의미하며 capStyle은 선의 끝부분에 대한 처리 방법을 의미한다. joinStyle은 두 개의 선이 만나는 부분을 처리하는 방법을 의미한다. 이 속성들은 각각 0, butt, miter의 초기값을 갖으며 선저여유수심관리 모델에서는 초기값을 사용한다. 이 외에도 점선 형태를 나타내기 위한 dash 클래스, 특수한 심볼로 이루어진 선을 나타내기 위한 symbol 클래스 등이 있지만 선저여유수심관리 모델에서는 사용하지 않는다.

4-3 면 명령(AreaInstruction)

면 명령은 전자해도에 면 형태의 형상을 표현하기 위해 사용한다. 선저여유수심관리 모델에서는 항행불가구역을 나타내는 UnderKeelClearanceNonNavigableArea 피처의 표현에 면 명령을 사용한다. 면 명령에서 해당 피처의 표현은 colorFill 클래스와 hatchFill 클래스로 나누어 정의한다. 그림 7은 colorFill 클래스와 hatchFill 클래스가 표현할 수 있는 면의 형상이다.

Fig. 7.

Two ways to fill surface

colorFill 클래스는 면을 단순한 색으로 채워 표현할 때 사용하며 색상 토큰값과 투명도를 속성으로 갖는 Color 클래스를 포함한다. hatchFill 클래스는 면을 빗금 형태의 패턴으로 채워 표현할 때 사용한다. hatchFill 클래스의 주요 속성과 클래스는 다음과 같다.

(1) direction, distance

direction 속성은 빗금의 방향을 나타내기 위해 사용한다. 벡터 형태의 데이터를 사용하며 x, y값으로 구성된다. distance 속성은 빗금 사이의 간격을 의미한다.

(2) Line Style

hatchFill은 면을 여러 개의 선으로 채우는 방식이다. 선의 모양, 색상 등에 대한 정의를 하기 위해 선 명령에서 사용하는 선 스타일 패키지를 사용한다. 선 스타일 패키지의 Pen 클래스와 offset, capStyle 등의 속성들로 구성한다.

4-4 점 명령(PointInstruction)

점 명령은 전자해도의 특정 지점에 형상을 표현하기 위해 사용하며 심볼 패키지(Symbol Package)를 포함한다. 심볼 패키지는 특수한 기호를 나타내기 위한 관련 속성과 클래스들을 포함한다. 선저여유수심관리 모델에서는 예상지점을 나타내는 UnderKeelClearanceControlPoint 피처가 점 명령을 사용한다. 점 명령의 주요 속성과 클래스들은 다음과 같다.

(1) reference

심볼 패키지는 특수한 기호를 나타내기 위해 표출 라이브러리의 SVG 이미지를 사용한다. reference 속성은 SVG 이미지를 참조하기 위한 값으로 미리 정의된 식별자를 갖는다.

(2) rotation, rotationCRS

rotation 속성은 SVG 이미지의 회전 정도를 나타내며 rotaionCRS는 회전을 위한 좌표참조시스템을 나타낸다. 두 값은 초기값으로 0, portrayalCRS 값을 갖으며 선저여유수심관리 모델에서는 초기값을 사용한다. S-100 표준에서 사용되는 좌표참조시스템은 표 4와 같다.

Coordinate Reference System type in S-100

(3) scaleFactor, offset

scaleFactor 속성은 SVG 이미지의 확대 정도를 나타내며 1의 초기값을 갖는다. offset 속성은 실제 좌표의 위치에서 이미지가 이동하여 그려지는 정도로 x축, y축으로의 이동정도를 나타낸다. offset 속성은 초기값으로 0, 0 값을 갖는다. 선저여유수심관리 모델에서 두 속성은 초기값을 사용한다.

4-5 텍스트 명령(TextInstruction)

텍스트 명령은 전자해도의 특정 지점에 텍스트를 표현하기 위해 사용한다. 선저여유수심관리 모델에서는 UnderKeelClearanceControlPointInformationbox 피처가 텍스트 명령을 사용하며 텍스트 명령의 주요 속성과 클래스들은 다음과 같다.

(1) text

text 속성은 전자해도에 표현할 문자열 데이터 값을 갖는다. 선저여유수심관리 모델에서 전자해도 상에 표현해야할 문자열 데이터는 Under Keel ClearanceControlPointInformationbox 피처의 ETA, TimeWindowOpen, TimeWindowClose 속성의 값이다. XSL 스타일시트를 정의할 때 이 3가지 속성을 매개변수로 전달받고 XSL 문자열 처리 함수를 이용해 하나의 문자열 형태로 편집하여 text 속성으로 값을 넘겨준다.

(2) Font 클래스

Font 클래스는 글자 모양을 정의하며 serifs, weight, slant, proportion의 속성을 갖는다. serifs는 글자와 기호를 이루는 획의 일부 끝이 돌출된 형태인 세리프체의 사용여부를 의미한다. weight 속성은 글자의 굵기를 다루며 slant 속성은 글자의 기울임을 나타낸다. proportion 속성은 각 글자의 넓이에 대한 정의를 나타낸다.

(3) offset

offset 속성은 실제 좌표 위치에서 이미지가 이동하여 그려지는 정도로 x축, y축으로의 이동정도를 나타낸다. 그림 8은 UnderKeelClearanceControlPointInformationbox 피처의 표현에 offset이 필요한 이유를 설명한다.

Fig. 8.

Concept of offset

UnderKeelClearanceControlPointInformationbox 피처와 UnderKeelClearanceControlPoint 피처는 같은 좌표의 데이터를 갖는다. UnderKeelClearanceControlPoint 피처는 SVG 이미지로 그림 8의 좌측에 있는 기호로 표현되며 SVG 이미지로 표현될 때 이미지의 중심점은 좌표의 위치이다.

UnderKeelClearanceControlPoint Informationbox 피처는 텍스트로 표현되며 기호에서 일정구간 떨어진 위치를 갖는다. 텍스트는 좌측상단을 기준으로 화면에 그려지며 좌표에서 x축 y축으로 일정 구간 이동한 위치를 갖는다. offset 속성은 좌표로부터 텍스트 기준점까지의 이동거리를 x, y 값으로 표현한다.

(4) foreground, background

foreground와 background는 색상을 다루는 속성이다. foreground는 문자의 색을 의미하며 background는 배경의 색을 의미한다. 그림 8을 보면 text 배경의 테두리가 검은색 선으로 형성되어있다. 하지만 S-100 표준의 텍스트 명령에는 테두리에 관련된 속성이나 클래스가 없어 드로잉 명령집합에 관련 사항을 포함시킬 수 없다. 테두리의 표현은 선저여유수심관리 프로젝트 팀의 향후 논의에 따라 수정될 수 있다.


Ⅴ. 실험 및 결과

선저여유수심관리 모델의 피처들을 표출하기 위해 피처들이 그려질 대상 전자해도가 필요하다. S-100 기반의 전자해도인 S-101 해도는 현재 제품사양이 확정된 후 개발 단계에 있어 본 논문의 실험대상으로 활용하기 어렵다. 본 논문에서는 기존 전자해도 표준인 S-52/S-57 기반 해도를 활용하여 선저여유수심관리 데이터 표출을 구현하였다.

드로잉 명령집합은 우선순위를 나타내는 drawingPriority 속성의 값이 낮은 순으로 정렬된 후, 우선순위가 낮은 피처부터 출력된다. S-57 해도 위에 선저여유수심관리 모델의 피처들을 그리기 위해서 위도, 경도로 표현된 선저여유수심관리 데이터의 좌표 값들은 S-57 전자해도시스템에서 사용하는 좌표체계에 맞춰 값이 변환된다. 전자 해도의 확대나 축소 혹은 화면 중심이 이동할 때 피처를 다시 그려야하는 요구가 발생한다. 화면에 표현되는 범위나 피처들이 달라지기 때문에 해도 데이터와 선저여유수심관리 데이터가 다시 그려진다. 테스트 및 구현 환경은 표 5와 같다.

System configuration

테스트는 선박이 부산항에서 출발하여 부산항의 협수로를 따라 동해를 향해 운항하는 경우를 가정하고 선저여유수심관리 모델의 모든 피처를 나타낼 수 있도록 설정하였다.

선저여유수심관리 데이터는 제공하는 서비스에 따라 서비스 시나리오가 달라질 수 있다. 본 테스트에서는 선박의 진행 경로와 선박의 위치에 따라 주변의 선저여유수심 데이터를 표출하며 표출되는 데이터는 항행위험구역과 기준점이다. 아래는 테스트를 위하여 가정한 시나리오이다.

(1) 항행위험구역

선박의 가장 밑 부분과 선저여유수심 제한 값의 차이를 기준 값으로 항행위험 및 불가구역을 설정한다. 그림 9의 ②와 ③은 각각 항행위험구역과 항행불가 구역을 표시한다. S-129 선저여유수심관리 데이터모델 표준에서 본 논문의 4장에서 설명한 드로잉 명령에 따라 빨강 혹은 주황의 색으로 채우고, 사선 형태의 패턴으로 표시하도록 구현했다.

(2) 예상지점

테스트에서 예상지점은 출항시를 Point 0으로 하여 예상도착시간(ETA; estimated time of arrival)에 맞는 3개의 예상지점을 표시한다. 본 실험에서 예상지점 간격은 15분이다. 선박이 Point 1을 통과하면 Point 1은 해도 상에서 표시하지 않으며 새로운 예상지점을 표시한다. 그림 9의 ①은 경로를 나타내며 ④는 예상지점을 검정 나비넥타이 모양의 기호로 나타낸 것이다. ⑤는 예상지점의 ETA와 선박이 통과해야 하는 시간 범위를 텍스트 상자의 형태로 표시한다.

Fig. 9.

Portrayal result of test scenario


Ⅵ. 결론 및 향후 연구

본 논문에서는 선저여유수심관리 프로젝트팀에서 정의한 데이터 모델을 기반으로 S-100 표준의 표출 단계에 따라 입력 및 출력 문서를 생성하고 이를 렌더링하는 과정 중 표출 엔진의 구현에 대해 상세하게 설명하고, 이를 이용하여 기존 전자해도에 표출하는 실험을 수행한 결과를 보여준다.

선저여유수심 데이터 모델링을 기반으로 데이터 인코딩을 위한 응용스키마와 데이터셋, 표출엔진구현의 결과물인 드로잉 명령집합 생성을 위해 표준에서 권고하는 명령집합의 세부구조와 작성 방법을 분석하고 이에 따라 정확한 수치들을 정의하고 결과 문서를 도출하였다. 이를 기반으로 표출 테스트를 수행하였다.

기존 S-52/57기반 전자해도에 실험을 한 결과, 새로운 표준을 따르는 데이터 모델을 기존 전자해도에 표출하는데 문제가 없음을 확인했고, 향후 S-102 전자해도 표준의 정의가 완료되면 본 논문에서 수행한 선저여유수심관리 표출하는 실험을 새로운 전자해도에 적용해 볼 계획이다.

Acknowledgments

본 논문은 정보통신산업진흥원 지원 “기상.환경.선체 정보를 활용한 IEC 61162-150 기반 선박안전운항지원 SW 플랫폼 및 서비스 개발” 과제와 해양수산부 재원으로 한국해양과학기술진흥원과 한국형 e-Navigation 사업단의 지원을 받아 수행된 “IMO 차세대 해양안전종합관리 체계 기술개발” 연구 결과 중 일부입니다.

References

  • International Hydrographic Organization, "HSSC7-05.1D Development of an S-100-Based Product Specification for Under Keel Clearance Management Information", International Hydrographic Organization, 2015.
  • H. Kim, C. Mun, S. Lee, "A Design of Data Model for Marine casualty based on S-100", Journal of Digital Contents Society, Vol. 18, No. 1, pp. 151-159, Feb 2017.
  • Australian Maritime Safety Authority, "Fact Sheet - Under Keel Clearance Management System", Australian Maritime Safety Authority, May 2016.
  • H. Kim, C. Mun, S. Lee, "Analysis and Experiment of Portrayal Process based on S-100 Standard of Marine Safety Information", Journal of Digital Contents Society, Vol. 9, No. 7, pp. 1289-1296, Jul 2018.
  • International Hydrographic Organization, “S-100 – UNIVERSAL HYDROGRAPHIC DATA MODEL edition 3.0.0”, International Hydrographic Organization, Apr 2017.
  • W3Schools Online Web Tutorials. XPath Tutorial [Internet]. Available: https://www.w3schools.com/xml/xpath_intro.asp.
  • C. Mun, Implementation of a Data Model for S-129 Under Keel Clearance Management and Display Test on S-52/S-57 SENC, Master’s degree, Korea Maritime and Ocean University, Feb 2018.
저자소개
김효승(Hyoseung Kim)

2010~2015 : 한국해양대학교 IT공학부 학사

2015~2017 : 한국해양대학교 대학원 컴퓨터공학전공 석사

2017~현재 : 한국해양대학교 대학원 컴퓨터공학전공 박사과정 재학

※관심분야 : 소프트웨어 품질, 해양 소프트웨어, e-Navigation

문창호(Changho Mun)

2010~2016 : 한국해양대학교 IT공학부 학사

2016~2018 : 한국해양대학교 대학원 컴퓨터공학전공 석사

※관심분야 : 해양 소프트웨어, e-Navigation

이서정(Seojeong Lee)

숙명여자대학교 전산학과 졸업 (1989, 이학사)

동대학교 대학원 전산학과 석사과정 졸업(1991, 이학석사)

동대학교 대학원 전산학과 박사과정 졸업(1998, 이학박사)

1998년~2003년 동덕여자대학교 강의교수

2003년 미국 카네기멜론대학교 소프트웨어전문가 과정이수

2005년~현재 한국해양대학교 해사IT공학부 교수

2009년~현재 해양수산부 국제해사기구 정부대표단 활동

2015년 바다의날 해양수산부 장관표창 수상(해양소프트웨어품질보증 표준개발 공적)

※관심분야: 소프트웨어설계, 해양소프트웨어품질, 소프트웨어기능안전성

Fig. 1.

Fig. 1.
Concept of under keel clearance

Fig. 2.

Fig. 2.
Portrayal process of UKCM data model

Fig. 3.

Fig. 3.
Detail process of portrayal engine

Fig. 4.

Fig. 4.
XSLT process

Fig. 5.

Fig. 5.
Component of drawing rules

Fig. 6.

Fig. 6.
Model of the drawing instruction package

Fig. 7.

Fig. 7.
Two ways to fill surface

Fig. 8.

Fig. 8.
Concept of offset

Fig. 9.

Fig. 9.
Portrayal result of test scenario

Table 1.

File format and language used in portrayal process

Name Applying in S-100 portrayal process
XML Default tags of input document and data set
GML Geo tags which is defined in S-100 standard
XSD General schema for S-100 based GML
XSLT Document translation technique for applying portrayal rules for data set
XSL Document style of portrayal rule
SVG Symbol file type

Table 2.

Component of portrayal library

Name Description Applying in S-129
Pixmaps XML document of pixmap images X
ColorProfiles XML document of color information and related CSS2 style sheet file O
Symbols SVG image file O
LineStyles XML document of definition of line style O
AreaFills XML document of definition of filling areas O
Fonts True type font file X
Rules XSL template document O

Table 3.

Structure of drawing instructions of UKCM model

Name Description
4.1 DrawingInstruction Common class for all drawing
4.2 LineInstruction Class for expressing line
4.3 AreaInstruction Class for expressing area using color-fill or patterns
4.4 PointInstruction Class for expressing point using specific symbol
4.5 TextInstruction Class for expressing text

Table 4.

Coordinate Reference System type in S-100

Name Description
geographicCRS A geographic CRS with axis latitude and longitude measured in degrees.
Angles are defined clockwise from the true north direction. Distances will be measured in meters.
portrayalCRS A Cartesian coordinate system with the y-axis pointing upwards. Units on the axes and for distances are millimetres. Angles are measured in degrees clockwise from the positive y-axis
Note that the actual output device may have a different orientation of the y-axis.
localCRS A Cartesian coordinate system originated at a local geometry. Units on the axes and for distances are millimetres.
Angles are measured in degrees clockwise from the positive y-axis.
lineCRS A none-Cartesian coordinate system where the x-axis is following the geometry of a curve and the y-axis is perpendicular to the x-axis (positive to the left of the x-axis).
Units on the axes and for distances are millimetres. Angles are measured in degrees clockwise from the positive y-axis.

Table 5.

System configuration

Items Details
OS Windows 10 Education 64bit
CPU Intel Core i5-6400 CPU 2.70GHz
RAM 8GB
Developing tools Visual Studio 2015 MFC
Rendering libraries GDI, GDI+