SlideShare a Scribd company logo
전자해도 세미나
- 나의 전자해도 분투기-
주제 데이터를 어디서 얻지 …?
돈 들여서 산다. 그런데 이제 S-63 만 나온다. 배가 있어야 차트를 산다.
1. 전자해도 를 공부 하기 위해
아니지 프로그래밍 을 지금 부터 배워서 S-63 차트를 풀어 보자. 어 근데 좀 복잡하네
이것도 귀찮다. 기냥 전자해도 공부할 수 있는 샘플을 다운로드 받자
http://www.charts.noaa.gov/InteractiveCatalog/nrnc.shtml
2. 실습 전자해도 다운로드 방법
데이터 변환
및 적용 성 평가
전자해도세미나
 US3NY01M
앞에 두글자는 해도를 제작한 국가약자 (한국은 KR) 세번째 위치한
숫자는 축척으로 세번째 스케일을 갖는 해도를 뜻 함
코드 지도구분 축척
1 총도(Overview Chart) ≤ 1,500,000
2 항양도(General Chart) 350,000 ∼ 1,499,999
3 해안도(Coastal Chart) 90,000 ∼ 349,999
4 항만접근도(Approach Chart) 30,000 ∼ 89,999
5 항박도(Harbour Chart) 7,500 ∼ 29,999
6 항박계류도(Berthing Chart) 5,000
4. ISO/IEC 8211가 필요 한 이유
- 전자해도 인코딩 표준이 ISO/IEC 8211로 되어 있기에…
- 전자해도 S-57 및 S-101 기본데이터를 가지고 먼가 만들라믄 필요 함
- 다행인 것은 차세대 전자해도는 GML 데이터로 굳어지고 있음.. 다행
- 그러나 어찌될지 모름
여기서 잠깐 …
데이터 해석단계
ISO/IEC 8211 구조
파싱
데이터 가공단계
DBMS, File, Memory etc
데이터 디스플레이 단계
S-52 Standard Process Library
CSP 알고리즘 적용
 항해용 S/W 제작을 위한 표준들
항해 GIS
항해 통신
항해 GIS
항해 통신
기타 관련 표준
S-57, S-100,S-10X,S-52,S-58,S-63,S-64
IEC-61162, IEC-61163, NMEA 0183, NMEA 2000
IEC 61174
이 과정을 부르는 오브젝트를 얻는다.
속성‘DRVAL1’ 과 ‘DRVAL2’ 값를 얻어라
‘DRVAL1’ = –1.
이것은 저조 선보�� 위에 있는 디폴트 색이
' DEPIT ' ( 조간대 지역 )이라는 것을
확실히 하기 위한 안전 장치이다
이 영역 오브젝트를 심볼화 하기위해 ‘SEABED01’의 심볼화 절차를 수행한다.
DRVAL1과 DRVAL2의 값을 ‘SEABED01’로 넘겨준다.
SEABED01(‘DRVAL1’,DRVAL2’)
심볼 라이브러리로 부터 ‘DRGARE01’을 선택후
영역을 컬러로 채운 제일위에 나타내라.
경계를 Dashed 라인으로,1 unit폭으로,색깔은 ‘CHGRF’로 심볼화 하라.
LS(DASH,1,CHGRF)
속성값 ‘DRVAL1’이 주어졌나?
심볼화 종료
출입구 과정을 빠져나감 .
DEPARE01
속성값 ‘DRVAL2’이 주어졌나? ‘DRVAL2’ = ‘DRVAL1’ + 0.01m.
오브젝트가 클래스’DRGARE’의 절차에 의해 불려 졌는가?
속성’RESTRN’의 값을 얻어라.
속성값 ‘RESTRN’이 주어졌나?
‘DRGARE’의 심볼화를 완성하기 위해 ‘RESCSP01’의 심볼화 절차를 수행한다.
‘RESTRN’의 값을 ‘SEABED01’로 넘겨준다.
RESCSP01(RESTRN)
no
yes
no
yes
yes
yes
no
no
- 전자해도를 그릴때 일반 지리정보 데이터와는
달리 데이터의 속성 값에 따라 그려지는 절차가
정해져있음 표준으로
- 원 이렇게 까다로워서야 ….
 C++ 로 구현 되어 있는 오픈 소스가 있음
 C++ 소스정보는 위의 링크 참조
(https://web.archive.org/web/20120630005558/http://home.gdal.org
/projects/iso8211/)
 JAVA는 nasa north wind project에 포함되어 있음(JNI)
 Python도 있음
Model Structure
Feature object························································Feature record
Meta feature object················································Meta feature record
Cartographic feature object····································Cartographic feature record
Geo feature object·················································Geo feature record
Collection feature object········································Collection feature record
Spatial object·························································spatial record
Vector object·························································Vector record
Isolated node object···············································Isolated node vector record
Connected node object···········································Connected node vector record
Edge object····························································Edge vector record
Face object························Face vector record or (loop of) edge vector record(s)
Raster object··························································Raster record
Matrix object·························································Matrix record
Attributes····························································Feature or spatial attribute field
Relationship between feature objects······Collection feature record or pointer field
Relationship between feature and spatial objects·····Pointer field
① Data Set Descriptive(Meta) : 전체 Exchange set에 관련 정보를 가짐
▪ Exchange set의 일반적인 목적과 성질을 식별하는데 필요한 정보
▪ 사용된 좌표계, 수평 및 수직 데이텀, 원천 규모, 높이 및 수심의 측정
단위 등에 관한 정보
▪ Exchange set의 기원에 관한 정보
▪ Spatial 레코드 내의 위치 데이터의 정밀도를 기술하는 정보
② Catalogue : 어떤 레코드 혹은 어떤 범위의 레코드를 찾는데 필요한 정보를 제공
▪ 전체 Exchange set 내에서 참조 파일에 ���치한 디코더를 허가하기 위해 필요한 정보
▪ Exchange set 내의 개개의 레코드들 간의 특별한 관계에 관한 정보
③ Data Dictionary : 사용된 객체와 속성에 관한 설명을 담고 있음
▪ 객체 클래스와 속성을 정의하는 정보
▪ 속성이 가질 수 있는 속성 값들에 관한 정보
▪ 객체 클래스에 대한 속성들이 유효한지 확인하는 정보
④ Feature : 업데이트 명령 및 관계를 포함한 실세계 관련정보를 가짐 (속성정보)
⑤ Spatial : 업데이트 명령 및 위상관계, 공간 속성을 포함한 feature
레코드에 대한 좌표값 (공간정보)
*.전자해도 를 텍스트 파일로 변환해보자
1) 로컬에 있는 ENC 를 선택한다.
2) 로컬에 떨어진 텍스트 파일을 확인해
보자
3) 첨부되어 있는 S-57 문서와 비교해보자
 전자해도는 위계관계가 있다.
Field
SubField
Value
 모듈 기능 구성
ISO8211Reader reader = new ISO8211Reader(); //객체를 생성한다.
reader.Open( File); //파일열기를 시도한다.
while (reader.getRecord() && bContinue) //레코드를 읽어드림
{
count++;
while (reader.getField() && bContinue)
{
while (reader.getSubField())
{
//데이터를 해석하는 로직을 집어넣는다.
}
}
}
reader.close();
 전자해도 객체들은 정해져 있음
 코드들이 객체사전에 들어가 있음 (http://www.s-57.com/)
 프로그램 실행 후 앞서 생성한 파일과 비교해 보시오.
 CTRL+F 로 OBJL 부분을 찾아서 비교
.
 MONALISA 2.0 (https://github.com/maritime-web)
 OpenSeaMap
 OpenCPN (https://opencpn.org/OpenCPN/info/downloads.html)
 전자해도 기반 S/W를 오픈소스로 개발하고자 할 때 파싱방법과 파싱
할 수 있는 방법을 알아야 함
 전자해도는 IEC 8211 표준으로 캡슐링 되어 있음
 전자해도를 처음 파싱할 때는 표준문서를 참조하면서 구조를 익혀
야 함
감사합니다.

More Related Content

전자해도세미나

  • 1. 전자해도 세미나 - 나의 전자해도 분투기-
  • 2. 주제 데이터를 어디서 얻지 …? 돈 들여서 산다. 그런데 이제 S-63 만 나온다. 배가 있어야 차트를 산다. 1. 전자해도 를 공부 하기 위해 아니지 프로그래밍 을 지금 부터 배워서 S-63 차트를 풀어 보자. 어 근데 좀 복잡하네 이것도 귀찮다. 기냥 전자해도 공부할 수 있는 샘플을 다운로드 받자 http://www.charts.noaa.gov/InteractiveCatalog/nrnc.shtml
  • 3. 2. 실습 전자해도 다운로드 방법 데이터 변환 및 적용 성 평가
  • 5.  US3NY01M 앞에 두글자는 해도를 제작한 국가약자 (한국은 KR) 세번째 위치한 숫자는 축척으로 세번째 스케일을 갖는 해도를 뜻 함 코드 지도구분 축척 1 총도(Overview Chart) ≤ 1,500,000 2 항양도(General Chart) 350,000 ∼ 1,499,999 3 해안도(Coastal Chart) 90,000 ∼ 349,999 4 항만접근도(Approach Chart) 30,000 ∼ 89,999 5 항박도(Harbour Chart) 7,500 ∼ 29,999 6 항박계류도(Berthing Chart) 5,000
  • 6. 4. ISO/IEC 8211가 필요 한 이유 - 전자해도 인코딩 표준이 ISO/IEC 8211로 되어 있기에… - 전자해도 S-57 및 S-101 기본데이터를 가지고 먼가 만들라믄 필요 함 - 다행인 것은 차세대 전자해도는 GML 데이터로 굳어지고 있음.. 다행 - 그러나 어찌될지 모름
  • 8. 데이터 해석단계 ISO/IEC 8211 구조 파싱 데이터 가공단계 DBMS, File, Memory etc 데이터 디스플레이 단계 S-52 Standard Process Library CSP 알고리즘 적용
  • 9.  항해용 S/W 제작을 위한 표준들 항해 GIS 항해 통신 항해 GIS 항해 통신 기타 관련 표준 S-57, S-100,S-10X,S-52,S-58,S-63,S-64 IEC-61162, IEC-61163, NMEA 0183, NMEA 2000 IEC 61174
  • 10. 이 과정을 부르는 오브젝트를 얻는다. 속성‘DRVAL1’ 과 ‘DRVAL2’ 값를 얻어라 ‘DRVAL1’ = –1. 이것은 저조 선보다 위에 있는 디폴트 색이 ' DEPIT ' ( 조간대 지역 )이라는 것을 확실히 하기 위한 안전 장치이다 이 영역 오브젝트를 심볼화 하기위해 ‘SEABED01’의 심볼화 절차를 수행한다. DRVAL1과 DRVAL2의 값을 ‘SEABED01’로 넘겨준다. SEABED01(‘DRVAL1’,DRVAL2’) 심볼 라이브러리로 부터 ‘DRGARE01’을 선택후 영역을 컬러로 채운 제일위에 나타내라. 경계를 Dashed 라인으로,1 unit폭으로,색깔은 ‘CHGRF’로 심볼화 하라. LS(DASH,1,CHGRF) 속성값 ‘DRVAL1’이 주어졌나? 심볼화 종료 출입구 과정을 빠져나감 . DEPARE01 속성값 ‘DRVAL2’이 주어졌나? ‘DRVAL2’ = ‘DRVAL1’ + 0.01m. 오브젝트가 클래스’DRGARE’의 절차에 의해 불려 졌는가? 속성’RESTRN’의 값을 얻어라. 속성값 ‘RESTRN’이 주어졌나? ‘DRGARE’의 심볼화를 완성하기 위해 ‘RESCSP01’의 심볼화 절차를 수행한다. ‘RESTRN’의 값을 ‘SEABED01’로 넘겨준다. RESCSP01(RESTRN) no yes no yes yes yes no no - 전자해도를 그릴때 일반 지리정보 데이터와는 달리 데이터의 속성 값에 따라 그려지는 절차가 정해져있음 표준으로 - 원 이렇게 까다로워서야 ….
  • 11.  C++ 로 구현 되어 있는 오픈 소스가 있음  C++ 소스정보는 위의 링크 참조 (https://web.archive.org/web/20120630005558/http://home.gdal.org /projects/iso8211/)  JAVA는 nasa north wind project에 포함되어 있음(JNI)  Python도 있음
  • 12. Model Structure Feature object························································Feature record Meta feature object················································Meta feature record Cartographic feature object····································Cartographic feature record Geo feature object·················································Geo feature record Collection feature object········································Collection feature record Spatial object·························································spatial record Vector object·························································Vector record Isolated node object···············································Isolated node vector record Connected node object···········································Connected node vector record Edge object····························································Edge vector record Face object························Face vector record or (loop of) edge vector record(s) Raster object··························································Raster record Matrix object·························································Matrix record Attributes····························································Feature or spatial attribute field Relationship between feature objects······Collection feature record or pointer field Relationship between feature and spatial objects·····Pointer field
  • 13. ① Data Set Descriptive(Meta) : 전체 Exchange set에 관련 정보를 가짐 ▪ Exchange set의 일반적인 목적과 성질을 식별하는데 필요한 정보 ▪ 사용된 좌표계, 수평 및 수직 데이텀, 원천 규모, 높이 및 수심의 측정 단위 등에 관한 정보 ▪ Exchange set의 기원에 관한 정보 ▪ Spatial 레코드 내의 위치 데이터의 정밀도를 기술하는 정보 ② Catalogue : 어떤 레코드 혹은 어떤 범위의 레코드를 찾는데 필요한 정보를 제공 ▪ 전체 Exchange set 내에서 참조 파일에 위치한 디코더를 허가하기 위해 필요한 정보 ▪ Exchange set 내의 개개의 레코드들 간의 특별한 관계에 관한 정보 ③ Data Dictionary : 사용된 객체와 속성에 관한 설명을 담고 있음 ▪ 객체 클래스와 속성을 정의하는 정보 ▪ 속성이 가질 수 있는 속성 값들에 관한 정보 ▪ 객체 클래스에 대한 속성들이 유효한지 확인하는 정보
  • 14. ④ Feature : 업데이트 명령 및 관계를 포함한 실세계 관련정보를 가짐 (속성정보) ⑤ Spatial : 업데이트 명령 및 위상관계, 공간 속성을 포함한 feature 레코드에 대한 좌표값 (공간정보)
  • 15. *.전자해도 를 텍스트 파일로 변환해보자 1) 로컬에 있는 ENC 를 선택한다. 2) 로컬에 떨어진 텍스트 파일을 확인해 보자 3) 첨부되어 있는 S-57 문서와 비교해보자
  • 16.  전자해도는 위계관계가 있다. Field SubField Value
  • 18. ISO8211Reader reader = new ISO8211Reader(); //객체를 생성한다. reader.Open( File); //파일열기를 시도한다. while (reader.getRecord() && bContinue) //레코드를 읽어드림 { count++; while (reader.getField() && bContinue) { while (reader.getSubField()) { //데이터를 해석하는 로직을 집어넣는다. } } } reader.close();
  • 19.  전자해도 객체들은 정해져 있음  코드들이 객체사전에 들어가 있음 (http://www.s-57.com/)  프로그램 실행 후 앞서 생성한 파일과 비교해 보시오.  CTRL+F 로 OBJL 부분을 찾아서 비교 .
  • 20.  MONALISA 2.0 (https://github.com/maritime-web)  OpenSeaMap  OpenCPN (https://opencpn.org/OpenCPN/info/downloads.html)
  • 21.  전자해도 기반 S/W를 오픈소스로 개발하고자 할 때 파싱방법과 파싱 할 수 있는 방법을 알아야 함  전자해도는 IEC 8211 표준으로 캡슐링 되어 있음  전자해도를 처음 파싱할 때는 표준문서를 참조하면서 구조를 익혀 야 함

Editor's Notes

  1. 제안 제목으로 제시한 “S-10X 기반 전자해도 데이터 모델링 및 서비스 연구 제안“ 제목이 구체적이지 않고, 모호하다는 생각이 듭니다. 한국선급은 이네비 과제 진행하면서, S-100 표준에 대해 상당히 많은 부분을 파악 하였기 때문에, 구체적이고 명확한 용어를 사용 하셔야 할 것 같습니다. S-10X 기반 전자해도라는 용어는 의미가 모호하구요, S-101 전자해도 인지, S-10X 수로정보인지에 대한 확인이 필요합니다. 내용을 종합해보면 주제1는 재검토가 필요하고, 주제3의 경유 1과제 내용 외의 신규 모델링 대상을 식별하는 것에 관심이 적을 것 같으므로, 주제2에 대해 “공간 DBMS 기반 S-100 데이터 관리 및 활용 기술”로 제안해 보시면 어떨까 합니다. 혹은 Open GIS를 활용한 S-100 데이터 처리 및 활용 기술(S-100 Viewer) 개발 등등
  2. 위의 절차는 S-100 Feature Catalogue 제작 절차로 이해되며, S-100 Feature Catalogue는 S-100 FCB(Feature Catalogue Builder)로 작업을 하기 때문에, Feature Catalogue의 유효성은 담보 되어 있다고 확신합니다. Feature Catalogue에 대한 검증 절차는 불필요 하다는 생각 입니다.
  3. 위의 절차는 S-100 Feature Catalogue 제작 절차로 이해되며, S-100 Feature Catalogue는 S-100 FCB(Feature Catalogue Builder)로 작업을 하기 때문에, Feature Catalogue의 유효성은 담보 되어 있다고 확신합니다. Feature Catalogue에 대한 검증 절차는 불필요 하다는 생각 입니다.