GPS 트랙에서 폴리 라인 기반 "히트 맵"을 생성 하시겠습니까?


30

올 겨울 나는 GPS를 사용하여 내리막 스키 / 스노 보드를 추적 할 계획입니다. 내 승마의 대부분은 같은 리조트에서 발생합니다. 특정 영역에서 실행 한 양을 보여주는 일종의 "히트 맵"을 만들려고합니다. 데이터베이스에 점점 더 많은 GPS 추적을 추가함에 따라 가장 많이 이동 한 지역에 대한 일종의 선형 히트 맵을 보는 것이 목표입니다. 내리막 스키의 특성상 오르막 리프트 리프트는 "가장 인기있는"노선이 될 것입니다.

1) 내 트랙이 매번 동일하지 않을 것입니다. 2) 한 번의 "실행"을 따르는 영역은 수백 피트 너비 일 수 있습니다.이 "선형"데이터를 분석하여 정렬을 만드는 가장 좋은 방법은 무엇입니까? 히트 맵 내 생각은 선을 버퍼링 한 다음 폴리를 교차시켜 일종의 벤 다이어그램을 얻는 것이 었습니다. 선호하는 것은 오픈 소스 기술을 사용하는 것입니다. QGIS와 PostGIS를로드하여 사용할 수 있습니다.

업데이트 : @ blah238의 응답과 관련하여 영역을 통과하는 패스 수 ( "실행")를 수집 한 다음 카운트로 상징 할 수있는 것을 생각하고있었습니다. 개념적으로 이것은 ArcGIS " 이벤트 수집 "(점은 아닌 선의 경우) 또는 중심선으로 이중선 축소 (대략 동일한 영역의 여러 선)와 유사합니다.

비슷한 개념의보다 시각적 인 예는 교통 혼잡지도 일 수 있습니다. 혼잡도가 높은 지역은 "여행 량이 많은"스키장 / 지역과 같습니다.

구글 교통지도

몇 가지 아이디어를 줄 수있는 다음 질문을 읽었지만 실제로 달성하려는 것을 다루지 않습니다.

클러스터링 궤적 ((x, y) 포인트의 GPS 데이터) 및 데이터 마이닝

GPS 경로로 오류 관리 (이론적 프레임 워크?)


GPX 데이터를 사용한다고 가정 할 때 간격을두고 위도 / 경도 값을 측정해야하므로 이미 포인트 기능에 있어야합니다. 그런 다음 히트 맵을 사용할 수 없습니까? 아니면 GPX 호환 장치를 사용하고 있지 않습니까 ??
RomaH

아, 어 네가 원하는 걸 잘못 읽었 어.
RomaH

@RomaH, 실제로, 선을 사용하는 대신 점을 사용하여 히트 맵을 생성하려는 아이디어가 있습니다. 이전에 소스 포인트 사용을 고려하지 않았으므로 이것이 확실히 조사 할 것입니다.
RyanDalton

거리가 가장자리가 잘 정의 된 필드를 다루고 있습니다. 선 모델을 수행하려는 경우 여러 폴리 오버레이, 결합 및 point2one 플러그인을 사용하여 상속 된 값으로 선 맵을 만들 수 있습니다. 그러나 새로운 회선 기능을 정당화하기 위해 얼마나 멀리 떨어져 있어야하는지 결정해야합니다. 개인적으로 히트 맵 솔루션에 만족하지만 다시 한 번 귀하의 요구를 인식하지 못합니다.
RomaH

나는 본질적으로 동일한 것을 달성하는 매우 멋진 방법이지만 GPS 트랙 포인트를 사용하여 히트 맵을 만드는 이 질문 을 우연히 발견했습니다 .
RyanDalton

답변:


17

포인트 이외의 다른 지오메트리를 지원하도록 히트 맵 렌더링 변환을 확장하여 GeoTools / GeoServer에서 이에 대한 약간의 작업을 수행했습니다.

피자 배달 히트 맵

아직 완료되지 않았지만 GitHub의 저장소에서 기능 분기를 가져올 수 있습니다 .

스크린 샷은 피자 배달원으로 일했을 때의 GPS 트랙입니다.


여전히 벡터 지오메트리를 출력하지 않지만 더 높은 값을 제공하기 위해 오버랩을 수집합니다.
smithkm

postgis 로이 효과를 얻는 방법에 대한 아이디어가 있습니까? 또는 qgis?
chrismarx

15

MapBoxTileMill 을 사용하여 정확하게 수행하는 좋은 자습서는 다음 과 같습니다 .

스크린 샷


1
이 개념은 거의 동일하며 모든 GIS에서 쉽게 수행 할 수 있습니다. 그러나 이것은 기본적으로 "모든 트랙을 연한 녹색 버퍼로 빨간색으로 만듭니다"라고 제안하고 있으며지도에서 눈에 띄나요? 시각 효과를 위해 나는 확실히 일할 것입니다. 나는 원래이 예제에서 "실행"의 "횟수"를 보여줄 수있는 더 "분석적인"것을 시도하고 있다고 생각한 것 같습니다. 계속 궁리합니다.
RyanDalton

@ blah238 나는 비슷한 예를 찾고 있었다 ... 많은 감사합니다!
Sunil

1
@ blah238, 조금 더 생각해 본 결과, 나의 첫 질문에 대한 매우 유효한 답변을 제공했습니다. 나는 내 생각에 대해 더 분명 했어야했다. 답변 해 주셔서 감사합니다. 달성하려는 내용을보다 정확하게 반영하기 위해 질문을 업데이트했습니다. 도움을 주셔서 감사합니다.
RyanDalton

5

여기 내 간단한 접근 방식이 있습니다.

  1. umap에서 새지도를 만듭니다 : http://umap.openstreetmap.fr/ko
  2. 데이터 가져 오기를 클릭하고 모든 gpx 파일을 선택하고 맵에 업로드하십시오 (모든 파일을 한 번에 가져올 수 있음)
  3. 지도 설정 편집> 기본 속성을 입력하고 불투명도 0.25, 무게 10을 선택합니다.

위의 세 단계는 5 분이 걸리며 결과는 다음과 같습니다. 여기에 이미지 설명을 입력하십시오


3

QGIS에 대한 나의 접근 방식은 다음과 같습니다. 이것은 일련의 버스 노선을위한 것이 었으며, 어느 도로가 가장 밀도가 높은 버스 노선을 통과하고 있는지 확인하고 싶었습니다.

  • Qchainage 플러그인을 사용하여 라인을 포인트로 변환했습니다. 라인 당 많은 포인트를 생성 할 때까지 (1 라인 당 1500, 라인은 약 9km) 다른 시나리오를 테스트했습니다.
  • Qgis가 내장 한 히트 맵 심볼 렌더링을 스타일 탭에 적용했습니다. 레이어 속성> 스타일> 히트 맵
  • 반경과 최대 값으로 재생합니다. 최상의 렌더링 품질을 선택하십시오.
  • 반대쪽의 검은 색과 다른 밝은 색에서 시작하여 새로운 색 램프 (연속 선택)를 만들었습니다.

그리고 voilà.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


2

나는 이것이 꽤 오래된 게시물이라는 것을 알고 있지만 비슷한 연구를하고 있습니다. ArcGIS에서이 작업을 수행 할 수있는 매우 간단한 모델 / 작업 흐름을 개발했습니다 (QGIS 일 수도 있지만 아직 구현하지는 않았습니다).

GPX 또는 TCX 파일이있는 경우 (모든 포인트 파일은 작동하지만) 간단히 Excel에서 열고 CSV로 변환하여 ArcGIS로 가져올 수 있습니다. 이 Points to Line도구를 사용하면 시간별로 포인트를 정렬하여 GPS 포인트를 CSV에서 궤적으로 변환 할 수 있습니다 (이 경우 리조트, 경로 또는 이벤트의 특정 날짜에 따라 고유 식별자를 사용하여 그룹화 할 수도 있음) -예를 들어 Day1, 2 등). 고유 한 ID로 그룹화하지 않는 한 단일 폴리 라인 레이어가 만들어집니다. 그런 다음 Split Line at Vertices각 연속 점 사이에 선분을 만드는 도구 를 사용하십시오 . 거기에서 Line Density지정된 셀 크기와 검색 반경이 주어지면 셀을 통과하는 선 수를 계산하고 래스터를 출력하는 도구 를 사용합니다 . 이 래스터는 히트 맵으로 상징화 될 수 있습니다.

나는 이것을 자주 구현하고 아래에 샘플 결과를 포함시켰다.

여기에 이미지 설명을 입력하십시오


정말 흥미로운 기술인 것 같습니다. 나는이 아이디어를 결코 완성하지 않았으므로 더 자세히 조사 할 것입니다. 오래된 질문에 답변 해 주셔서 감사합니다.
RyanDalton

문제 없어! Arc Toolbox의 3 가지 도구 만 사용하는 매우 간단한 모델입니다. 또는 도구 Track Intervals to Line와 도구를 사용하여 두 가지 도구로 더욱 단순화 할 수 Line Density있습니다
andrew-ryan

1

우리는 이것을 PGRouting을 사용하여 학생들을 학교로 안내합니다.

개별 경로의 결과는 기본적으로 노드 세트 (관련 가장자리를 선택적으로 결합하여 선으로 바))입니다.

여러 학생을 단일 학교로 라우트하는 경우 히트 맵 렌더러를 사용하여 QGIS에 출력 노드 모음을 표시 할 수 있습니다. 히트 맵 렌더러는 수집 된 라우트의 '핫스팟'을 학교에 표시합니다 (아래 참조).

이지도는 교차로, 신호, 표지판 등과 같은 추가 안전 인프라를 대상으로해야하는 영역을 알려주는 데 사용되었습니다.

여기에 이미지 설명을 입력하십시오


이미지 공유에 감사드립니다. 라인 대신 GPX 꼭지점을 처리하여 핫스팟이 작은 범위 내에서 작동하는지 확인합니다.
RyanDalton

0

입상 그리드 워크를 만들고, gpsdata를 모양 파일로 변환하고, 선을 다각형 화하고, 테이블에서 x, y 포인트 데이터를 추출하고,이 시점에서 표준 연습을 사용하여 표면 밀도를 만들거나 열지도를 만듭니다. 그런 다음 선형 벡터 데이터와 병합하여 래스터 디스플레이 또는 추가 수치 처리를 위해 픽셀 값을 얻을 수 있습니다.


0

대부분의 사람들 (나 자신을 포함하여)은 GPX 파일을보고 일련의 위치 (포인트)로 생각하지만 대신 일련의 선 세그먼트 로 완벽하게 볼 수 있습니다 .

문제 공식에는 "히트 맵"이 포함되므로 궤적을 육안으로 검사 할 수 있으므로 복잡한 숫자 크 런칭 부분을 플로팅 엔진에 직접 위임하여 건너 뛸 수있는 간단한 방법이 있습니다.

"라인 버퍼링"이라고하면 라인 두께가됩니다. "패스를 모으십시오"라고 말하면 투명한 선으로 반복해서 플로팅 하여 점점 더 많은 색상을 "구축 "한다는 의미 입니다.

따라서 각 궤적을 약간의 겹침 (확대에 따라 달라 지므로 픽셀 대신 맵 거리에서 두께를 설정하려고 함)이 있고 두께가 매우 낮은 단일 폴리 라인으로 플롯하는 것이 좋습니다. 즉, 검은 색으로 0.05입니다.

각 세그먼트를 플롯하지 않는 것이 중요합니다. 그렇게하면 끝이 겹치면서 불투명도가 두 배가되고 더 강한 색상의 "점"이 생깁니다.

결국, 선택한 컬러 맵을 적용 할 수있는 회색조 이미지가 나타납니다.

아마도 Python / Cairo를 사용하여 할 수는 있지만 Python / Matplotlib은 할 것이고 Html / Canvas 또는 Html / SVG (또는 프로그래밍 방식 SVG)는 확실히 할 것입니다.

최종 결과는 출력 미디어의 해상도에만 의존합니다.


0

나는 이것이 오래된 질문이라는 것을 알고 있지만이 게시물은이 주제에 대한 최고의 검색 결과 중 하나이므로 ArcGIS에서 폴리 라인 히트 맵을 생성하는 워크 플로우에 대한 링크를 게시 할 것이라고 생각했습니다. 현재이 게시물에는 ArcGIS에 대한 솔루션이 없기 때문입니다.

https://luke-webber.github.io/polyline-heatmap/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.