웹 GIS 엔진, FingerEyes-Xr에서 CAD 도면 시각화

지리정보 분야에서 CAD 파일은 수치지도의 구축 및 공유을 위한 목적으로 현재까지도 활발하게 사용되고 있습니다. 흔히 많이 사용되는 SHP 파일보다 더욱 다양한 공간 정보를 ‘지도’라는 개념으로 제공하는데요. 이러한 지도로써의 정보를 그대로 사용자에게 제공할 수 있도록 FingerEyes-Xr을 이용하여 CAD 지도를 웹에서 바로 보여줄 수 있습니다. 이러한 FingerEyes-Xr에서 제공하는 CAD 도면 시각화 기능의 장점은 다음과 같습니다.

사용자는 위의 장점을 웹이라하는 환경에서 모두 얻을 수 있습니다. 아래의 영상은 실제 CAD 도면 하나를 FingerEyes-Xr에서 불러와 웹에서 시각화하는 내용입니다.

CAD 파일을 통해 제공되는 지형지물에 대한 모든 정보를 제공하고 있는데요. 해당 정보는 POLYLINE, LINE, CIRCLE, ARC, TEXT는 물론이고 BLOCK도 제공합니다. 위의 기능 시연에서 사용한 수치지도는 국가공간정보포털에서 제공하는 수치지형도를 이용하였습니다.

분석가 관점에서 데이터를 개략적으로 살펴보기

수집된 데이터를 활용하여 AI 학습하기에 앞서 가장 먼저 해야 할 것은 수집된 데이터를 개략적으로 살펴보는 일입니다. 이 글은 간단하지만 의미있는 데이터셋을 개략적으로 살펴보는 것에 대한 내용을 살펴봅니다.

간단하지만 의미있는 데이터셋은 Kaggle에서 제공하는 전복(Abalone) 데이터셋이며 다운로드 받은 파일은 CSV 형식으로 파일을 열어 그 일부를 보면 다음과 같습니다.

내용을 보면 일반적인 첫줄에 컬럼명이 아닌 바로 데이터값으로 시작하는 것과 총 9가지의 컬럼값으로 구성되어 있다는 것을 파악할 수 있습니다.

이제 이 데이터를 파이선을 통해 개략적으로 살펴보도록 하겠습니다.

pandas를 사용하여 파일을 불러오는 코드로 시작합니다.

import pandas as pd

raw_data = pd.read_csv('./datasets/datasets_1495_2672_abalone.data.csv', 
        names=['sex', 'tall', 'radius', 'height', 'weg1', 'weg2', 'weg3', 'weg4', 'ring_cnt'])

데이터에 컬럼 정보가 없으므로 names 인자를 통해 컬럼의 의미를 파악할 수 있으면서 식별자로 사용할 수 있는 이름을 지정해 줍니다. 총 9개인데, 각각의 의미는 ‘성별’, ‘키’, ‘지름’, ‘높이’, ‘전체무게’, ‘몸통무게’, ‘내장무게’, ‘껍질무게’, ‘껍질의고리수’입니다.

개략적인 내용 파익으로 이 데이터셋의 실제 내용 중 시작부분을 살펴보는 코드입니다.

print(raw_data.head())

결과는 다음과 같습니다.

다음은 전체적인 데이터의 구성을 살펴보는 코드입니다.

print(raw_data.info())

결과는 다음과 같은데, 총 4177개의 전복 데이터가 있으며 각 컬럼 데이터의 타입과 Null 값이 아닌 데이터의 개수 정보를 파악할 수 있습니다. sex 컬럼의 데이터 타입은 object인데, 이는 문자열이기 때문입니다.

앞서 sex가 문자열인데, 이는 전복의 성별값입니다. I는 유충, M은 수컷, F는 암컷인데, 이 sex에 대한 정보를 좀더 살펴보기 위한 코드입니다.

print(raw_data['sex'].value_counts())

결과는 다음과 같은데, 수컷(M)이 1528개, I가 1342개, F가 1307라는 것을 알 수 있습니다.

다음은 데이터에 대한 간단한 통계를 확인하기 위한 코드입니다.

print(raw_data.describe())

결과는 다음과 같습니다.

각 컬럼에 대한 데이터수, 평균, 편차, 최대값, 최소값, 25%/50%/75%에 대한 백분위수(Percentile)가 제공됩니다.

끝으로 각 컬럼에 대한 히스토그램을 살펴보는 코드입니다.

import matplotlib.pyplot as plt

raw_data.hist(bins=10)
plt.show()

결과는 다음과 같습니다.