Abstract
Management Program for Specimen Information Database (MPSID) is using by Korean Herbarium of Standard Herbal Resources at Korea Institute of Oriental Medicine. This software was coded in PHP language, it provides user-friendly web interface, and it shows information of specimen collecting loca- tion visually using SVG (Scalable Vector Graphics) format map data. This system is different to general GIS (Geographic Information System), but it is helpful to get the collecting locations for user. In this article, visualization method of MPSID for collecting locations was introduced.
서론
한약재의 연구에서 그 기원이 되는 생물체의 표본 확보는 매우 중요하며 확보된 표본의 정보를 일목 , 요연하게 관리하여 필요시 쉽게 확인할 수 있도록 하는 시스템도 반드시 필요하다 전산기술이 발달하 . 지 않았던 과거에는 표본 정보가 기재된 카드와 종이에 인쇄된 목록만으로 표본 정보를 확인해야 했지 만 현재는 표본관마다 소프트웨어를 이용하여 표본 정보를 관리하고 있다 , .
표본 정보 중에서 채집 지역에 대한 정보는 보통 주소체계 형식의 계층형 위치 정보와 경 위도 좌표가 · 쓰이는데 이는 지도상에 시각적으로 표현함으로써 정보 이용자의 직관적인 이해를 도울 수 있다 여기 , . 에서는 현재 한국한의학연구원 한약표준표본관 (KIOM) 에서 사용 중인 표본정보 DB 관리프로그램에 구 현된 국내 채집지 지도 출력 기능을 소개하고자 한다.
표본정보관리 프로그램에서 SVG를 이용한 채집지 위치 시각화
최고야
*한국한의학연구원 한약자원그룹
Visualization of Collecting Locations Based on Scalable Vector Graphics for the Specimen Information Software
Choi Goya
*Herbal Medicine Resources Group, Korea Institute of Oriental Medicine, Daejeon 305-811, Republic of Korea
*Correspondence: 최고야(Choi Goya. Tel: +82-42-868-9348 Fax: +82-42-868-9541 E-mail: [email protected])
· Received 2014-03-04, accepted 2013-03-07.
Keywords: Scalable vector graphics(SVG), Korean herbal medicine, Specimen Information Software
본론
표본정보 관리프로그램 개요
1. DB
표본정보 관리프로그램은 로 제작된 웹 인터페이스 기반의 프로그램으로서 데이터베
KIOM DB PHP ,
이스는 MySQL 을 이용하고 있다 데이터 입력 필드는 표 과 같으며 이를 바탕으로 표본정보 조회 . 1 , 및 수정 목록 출력 정렬 검색 및 라벨 출력 등 표본 관리에 필요한 기본적인 기능을 제공하고 있다 , , , .
채집지 정보의 형식 2.
표본정보 에 입력되어 있는 국내 채집지 위치 정보는 표본에 따라 다양한 수준이지만 다음
KIOM DB ,
과 같은 형식을 따르고 있으며 모두 영문으로 기재되어 있다.
고유명칭 산 섬 식물원 연구소 등 ( · · · ), 리 읍 면 동 시 군 광역시 도 국가 , · · , · , · ,
현재까지 KIOM 표본정보 DB 에 등록된 표본들은 경 위도 좌표가 기재되어 있지 않아 여타 지리정보 · , 시스템과 같이 지도상에 정확한 위치를 자동으로 표시하는 기능을 구현할 수는 없다 또한 위와 같이 . , 행정구역에 기반한 위치 정보도 모든 표본에서 읍면 리까지 구체적으로 기재되지는 않았으며 일부 - , 표본은 시 군 단위까지만 기록된 것도 있다 따라서 채집지 위치를 시 군 수준에서 지도상에 표현하는 · . · 것을 목표로 하였다.
지도 데이터의 형식 3.
필드 종류 설명
id int(11) DB 내부적으로 사용되는 고유번호 kind int(1) 표본 종류 압착 액침 약재( / / ) code tinytext 표본라벨에 출력되는 코드번호 s_name tinytext 학명
confirm int(1) 학명 검증 여부 검증 미검증( / ) family tinytext 과명
g_name tinytext 일반명 식물명( ) h_name tinytext 생약명 k_name tinytext 한약명
date date 채집일
col_adrs tinytext 채집지 col_or tinytext 채집자 id_or tinytext 동정자
memo text 비고
표 1. 표본정보DB관리프로그램의 데이터 필드
을 토대로 수정하여 만든 것이며 기존 연구 ,
3)의 예제로서 웹 주소 ‘http://journal.khmi.or.kr/2019641 에 공개되어 있다 이 지도 데이터는 형식의 벡터 이미지로서 대한민국의 광역시 도와 시
5632’ . SVG , · ·
군별로 레이어가 설정되어 있어 시 군 단위별로 색상을 달리하여 표현할 수 있다 · . SVG 형식이기 때문 에 웹브라우저인 크롬이나 인터넷 익스플로러 11 등에서 원활하게 표시된다 .
채집지 정보와 지도 데이터의 연계 4.
파일은 또는 태그를 이용해 다른 형식의 미디어 파일처럼 취급할 수도 있고
SVG <IMG> <EMBED> ,
웹페이지 내에 직접 <SVG> 태그를 적어서 화면에 표시할 수도 있다 (HTML5 기준 )
4). 여기에서는 프로그래밍과의 간편한 연동을 위해 후자의 방식 을 채택하였다
PHP (inline SVG) .
이미지가 비록 텍스트 기반으로서 동급의 다른 이미지 형식에 비해 용량이 작은 편이지만 웹페
SVG ,
이지에 인라인으로 매우 복잡한 지도 데이터를 모두 포함시킬 경우에는 페이지가 로드되는 시간도 오래 걸리며 서버측에도 부담이 될 수 있다 따라서 여기에서는 광역시 도별로 별도의 파일을 만들어 . ·
예 채집지 정보에 따라 필요한 광역시 도 데이터만을 로드
( : map_korea_Chungcheongbuk-do.php) ·
하도록 하였다 예 ( : <? if($p1 == “Gyeonggi-do”) include(“map_korea_Gyeonggi-do.php”); ?>).
각 광역시 도 파일에서 시 군별 레이어에는 스타일 클래스를 부여하여 · · <SVG> 내부의 <STYLE>
태그로 색상을 지정할 수 있도록 하였다 그림 ( 1). 클래스 이름은 각 시 군 명칭과 동일하게 하되 모든 · , 시 군 레이어의 공통적인 스타일과 다중으로 적용되도록 하였다 예 · ( : class=“l0 Jincheon-gun”). · 시 군 중에서 고성군의 경우 강원도와 경상남도에 같은 이름의 행정구역이 있어 클래스 이름이 중복되지만, 광역시 도 파일은 해당 지역 한 곳만 로드되므로 문제되지 않는다 · .
그림 1. map_korea_Chungcheongbuk-do.php 코드 일부( )
이 시 군별 클래스의 스타일 속성을 지정하기 위해 · <SVG> 안에 <STYLE> 태그를 포함시켰다 그림 ( 행 여기서 은 모든 시 군에 공통으로 적용되는 스타일 무색 이고 그림 행
2, 11~16 ). ‘.l0’ · ( ) ( 2, 14 ),
에서 해당 채집지의 시 군명을 를 통해 변수에 지정함으로써 해당 시 군의
‘.<?=$class?>’ · PHP ‘$class’ ·
레이어 색상 (fill 속성 을 변경하게 된다 그림 ) ( 2, 15 ). 행
그림 2. map_korea.php 코드 일부( )
에서 선택된 채집지 정보에서 광역시 도와 시 군 정보를 추출하기 위해 함수를 이용하
DB · · explode()
였다 그림 ( 3, 2 ). DB 행 의 채집지 정보는 행정구역이 쉼표로 구분되므로 , explode() 함수에서 구분자를 쉼표 로 하여 배열을 만들면 배열의 마지막에는 가 그 앞에는 광역시 도 이름이 그리고 그
‘ ’ ‘Korea’ , · ,
앞에는 시 군 이름이 입력된다 따라서 · . count() 함수로 배열의 개수를 세어 도 이름은 , ‘$p1’ 변수에 , 시 군 이름은 · ‘$p2’ 변수에 각각 지정하였다 그림 ( 3, 3 ). 행 행정구역상으로는 특별시나 광역시의 구 지역이 시 군과 동등한 단위이지만 지도상에 표시하기에는 면적이 너무 작으므로 강화군 등 광역시 · , 소재 군 지역만 일반 시 군과 동일하게 표시되도록 하고 군 지역을 제외한 나머지 특별 광역시 경계를 · , · 하나의 시 군과 같이 취급하였다 그림 · ( 3, 5~6 ). 행 그리고 범례로서 해당 시 군 이름을 표시하도록 하였 · 다 그림 ( 3, 7 ). 행
그림 3. map_korea.php 코드 일부( )
구현 결과 5.
이상의 과정을 통해 표본정보 DB 관리프로그램에서 채집지의 위치 정보를 지도상에 시각화하는 기능
다만 이러한 방법은 표본 채집이 이루어지는 모든 국가의 행정구역별 지도 데이터를 따로 구비해야 한다는 어려움이 있으며 시 군 수준이 아닌 더 구체적인 위치를 표시하는 데에는 한계가 있다 추후에 , · . 는 중국 등 주요 국외 채집지의 지도 데이터를 확보하여 국외 채집지도 쉽게 파악할 수 있도록 해야 할 것이며 표본 채집시 , GPS 등을 이용하여 경 위도 좌표를 기록하고 이를 바탕으로 더 정밀한 위치를 · 시각화할 수 있도록 함이 바람직하다.
그림 4. 위치 정보 시각화 구현 결과 예( )