GPS 데이터를 개선하기 위한 참조 테이블 역할을 하는 웹 서비스

GPS 장치로 기록된 고도 데이터는 매우 부정확한 경향이 있으며, 특히 러시아 강 계곡과 같이 구릉 지형에서는 더욱 그렇습니다. (참고: 이전 게시글 참조)

러시아 강 계곡에서 얻은 GPX 파일로 생성된 최종 고도 추적 데이터는 여러 가지 이유로 의심스럽습니다. 첫째, 그래프를 보면 저희가 해수면 아래 거의 15미터(약 50피트)까지 내려갔다는 것을 알 수 있습니다. 이는 믿기 어렵습니다. 왜냐하면 저희는 강둑을 따라 이동하고 있었고, 태평양에서 불과 16km(약 10마일) 정도 떨어져 있었기 때문입니다.

둘째로, 저희는 주로 서쪽으로 향했고, 강을 따라 하류 방향으로 이동했지만, 기록을 살펴보면 대체로 오르막길을 따라 이동한 것으로 보입니다.

저희는 기록된 GPS 고도 데이터를 미국 지질조사국(USGS)에서 제공하는 정보와 비교하여 평가할 수 있습니다. USGS는 위도와 경도 좌표를 입력받아 NASA에서 측정한 고도 데이터를 제공하는 웹 서비스를 운영하고 있으며, 이 데이터는 미국 본토에 위치한 13,000개 이상의 기준점을 사용하여 정확성을 평가받았습니다.

Altova MapForce 매핑 도구에서 고도 관련 웹 서비스를 활용하면, GPX 파일에서 각 지점을 추출하고, 해당 좌표를 USGS 웹 서비스로 전송하여, 수정된 고도 데이터를 포함하는 새로운 GPX 파일을 생성할 수 있습니다.

이 솔루션은 "데이터 매핑 패턴" 블로그 게시물에 설명된 "룩업 테이블" 패턴과 유사하게 웹 서비스를 활용합니다. 위도와 경도 좌표로 식별되는 각 데이터 포인트는 정확히 하나의 고도 값과 연결됩니다. 로컬 룩업 테이블과 마찬가지로, 소스 데이터 포인트는 고유하지만, 출력 값은 중복될 수 있습니다.

USGS 웹 서비스를 XMLSpy에서 WSDL 파일을 열어 사용해 보면서 익숙해질 수 있습니다. 특히, 내장된 문서를 확인하는 데 유용합니다.

XMLSpy는 웹 서비스에 대한 SOAP 요청을 생성할 수 있으며, 이를 통해 필요한 파라미터를 쉽게 식별하고 테스트할 수 있습니다.

첫 번째 테스트에서는 해수면보다 낮은 고도를 기록한 좌표를 사용했습니다. Source_Layer 요소는 결과를 얻기 위해 어떤 지도 데이터셋을 사용할지 지정합니다. 우리는 http://gisdata.usgs.gov/XMLWebServices2/Elevation_Service_Methods.php에 있는 목록에서 미국 서반부를 포함하는 지도를 선택했습니다

XMLSpy는 웹 서비스 제공자에게 요청을 보내고, 그 결과를 자동으로 열어줍니다.

GPS 장치가 해수면 아래 12미터 지점을 기록한 반면, 미국 지질조사국(USGS)은 실제 고도가 해수면보다 33미터 이상 높다고 보고했습니다.

피트 단위로 고도를 요청할 수도 있었지만, GPX 형식에서 고도 값을 미터 단위로 정의하고 있기 때문에 그렇게 하지 않았습니다. 어쨌든 최종 데이터에 대해 StyleVision 스타일 시트를 적용하여 지역화 작업을 진행할 예정입니다.

웹 서비스를 이용한 데이터 매핑

때로는 웹 서비스를 대량의 데이터를 보내기 전에 테스트하기 위해, 작은 규모의 단순화된 MapForce 매핑을 만드는 것이 유용할 수 있습니다. 아래 스크린샷은 getElevation 웹 서비스에 대한 간단한 매핑을 보여주며, 문자열 상수를 사용하여 매개변수를 제공하고, 텍스트 파일을 출력으로 사용합니다.

"MapForce 출력" 버튼을 클릭하면, 제공된 매개변수를 사용하여 매핑 작업이 실행됩니다. 그 결과는 다음과 같습니다

맵포스 매핑의 실제 적용 버전을 시작하기 위해, GPX 스키마의 두 개의 복사본을 사용하고, 고도 정보 외에는 모든 요소를 소스에서 대상으로 연결할 것입니다.

다음으로, 테스트 환경에서 정의된 웹 서비스와 해당 매개변수를 그대로 복사하여 운영 환경에 적용하고, 웹 서비스 내의 X_Value와 Y_Value를 원본 GPX 파일의 위도와 경도에 각각 연결합니다.

웹 서비스의 출력 부분에서, 우리는 단순히 결과를 출력 구성 요소의 고도(elevation) 요소에 연결합니다. (고도를 미터 단위로 소수점 두 자리까지 반올림했는데, 13까지 표시하는 것은 불필요하다고 생각했습니다. 여기서는 지각판의 융기와 하강을 측정하는 것이 아니니까요!)

새로운 버전의 매핑을 실행하면, 각 요소에서 좌표 정보가 웹 서비스에 전달되고, 웹 서비스에서 반환된 고도 값이 출력 측의 요소에 삽입됩니다.

변환된 GPX 파일을 원래 파일과 비교하여 고도 데이터를 확인하려면 Altova DiffDog를 사용할 수 있습니다. 이 프로그램을 사용하면 변경 사항이 격자 형태로 명확하게 표시됩니다. 또한, 변환 과정에서 위도와 경도 값에서 불필요한 뒤에 붙는 숫자(0)들이 제거되었습니다.

변환된 파일을 스타일 비전 SPS 스타일 시트와 함께 사용하여, 지역화 기능을 활용한 그래프를 만들 수도 있습니다.

강을 따라 하류로 이동하는 것처럼, 트랙은 해수면 아래로 내려가지 않으며, 전체적인 경향은 하향으로 기울어져 있습니다!

GPS 장치에서 기록되는 고도 데이터는 본질적으로 x-y 좌표보다 정확도가 떨어집니다. 또한, 이동 중에는 언덕이나 다른 장애물들이 GPS 위성 중 하나 이상과의 시야를 가려 위성들의 전파 신호가 차단될 수 있습니다.

아래 지도는 러시아 강 계곡 여행의 일부 구간을 보여줍니다. 빨간 점은 GPS가 기록한 해발 -12.8미터 지점을 나타내지만, 미국 지질조사국(USGS)은 +33.28미터로 보고했습니다. 서쪽으로 바로 보이는 와일드 호그 힐은 해발 1,100피트가 넘으며, 넓은 영역의 하늘을 가리고 GPS 위성 신호가 매우 잘 차단될 가능성이 높습니다.

마지막으로, 뉴햄프셔 하이킹 GPX 파일에서 얻은 고도 데이터를 활용하여 XMLSpy 프로그램을 사용하여 미국 지질조사국(USGS)의 고도 정보를 녹색으로 표시하고, 원래 GPS 고도 경로 위에 겹쳐서 그래프를 만들었습니다.

어떤 모양이 오래된 침식으로 인해 변형된 뉴잉글랜드 산의 경사면을 더 정확하게 묘사하는지 알아보는 것은 어렵지 않습니다.

만약 해당 도구를 사용하고 싶으시다면, 알토바 미션킷 웹 서비스를 참조 테이블로 활용하여, 사용자가 직접 데이터 매핑을 구성할 수 있습니다 무료 체험판을 다운로드하려면 여기를 클릭하세요.