2012-07-03 2 views
1

건물 내의 다양한 위치에 분포 된 수치 데이터 히트 맵을 만드는 방법을 찾고 있습니다. 몇 시간 동안 데이터 매핑 등을 연구하고 조언을 구했습니다. 나는 GIS에 처음 온 사람이다. 사용할 수있는 옵션의 대부분은 위도/경도를 사용하는 대부분의 타일 API이며 내 요구 사항에 과도 함입니다 ...조언 : 매트릭스의 사용자 정의 shapefile 또는 C# 히트 맵

궁극적으로, 방금 히트 맵 오버레이로 배경 이미지 (평면도)를 출력하여 높은 강도. 데이터는 특정 위치 (예 : 활동 레벨 : 14, 위치 : 수신 입구)에 바인딩되어 있으므로 무작위로 맵에 분산되지 않습니다. 데이터에는 타임 스탬프가 있으며 최종 목표는 애니메이션을위한 시간별 활동의 PNG를 인쇄하는 것입니다.

두 가지 옵션이있는 것 같습니다.

나는이 튜토리얼 (http://dylanvester.com/post/Creating-Heat-Maps-with-NET-20-%28C-Sharp%29.aspx)을 좋아한다. 최종 이미지는 내가 원했던 것과 매우 유사합니다. 훌륭한 시작입니다. 즉, x, y 좌표 또는 x, y 좌표에 "수신 입구"와 같은 위치를 지정해야합니다. 그런 다음 모든 히트 맵에 앞서 매트릭스를 처리하고 CSV 파일의 데이터를 가져 와서 적절한 좌표에 활동 값을 입력해야합니다.

다른 옵션은 바닥 계획에서 사용자 정의 shapefile (?)을 만드는 것입니다. 즉, 정의 된 영역이있는 벡터 그래픽을 만듭니다. 각 영역은 태그 지정 가능 위치에 기인합니다. 이것은 가장 유연한 옵션 인 것처럼 보입니다. 그러나 저는 셰이프 파일을 생성하는 방법을 찾기 위해 정말로 고심하고 있습니다.

GIS 용어에 익숙하지 않아서 검색이 어려워졌습니다. 후자는 시간이 지남에 따라 활동 값을 변경하는 가장 현명한 해결책입니다 (https://gist.github.com/1370472과 같은 모양 파일을 사용하십시오).

링크 발견

  • guthcad.com/cad2shape.htm (그러나 CAD 도면, 단지 래스터 배치도가없는)
  • stackoverflow.com/questions/4014072/arcgis-flex-overlay-을 바닥 계획 - PNG (인정, 타일 싶지 않아)
  • oliverobrien.co.uk/2010/01/simple-choropleth-maps-in-quantum-gis/
  • gis.stackexchange.com/questions/ 20901/대화 형 플로어 사용 계획 (위대해 보인다)

요약하면 : 건물 내의 위치에 바인딩 된 데이터를 매핑하고 싶습니다. C# 튜토리얼에는 아주 좋은 코드가 있지만, 활동 데이터를 좌표로 연결하는 것은 잠재적으로 지저분합니다 (좌표 사이의 벡터가 사용될 수 있기 때문에 위치 간의 전환을 설명 할 수는 있지만).). 다른 옵션은 QGIS와 같은 방법으로 CSV 데이터에 연결할 수있는 영역이있는 이미지를 만드는 것입니다. 더 많은 경험을 가진 사람들이 최선의 방향 또는 대안을 제시 할 수 있습니까?

감사합니다.

답변

0

저는 최근에 미국의 특정 이벤트에 대한 히트 맵과 비슷한 것을했습니다.

내 입력 데이터는 단순히 위도, 경도 및 이벤트 수의 세 열이있는 CSV 파일이었습니다.

사용 가능한 옵션을 검토 한 후 GHeat.Net을 사용하여 종료되었습니다. 사용하기가 매우 쉬웠고 나의 필요를 충족시키기 위해 약간의 수정 만 필요했습니다.

출력물은 투명한 PNG이며 Google Maps에 오버레이됩니다.

귀하의 규모는 상당히 다르지만, 귀하의 경우에도 동일한 해결책이 필요하다고 생각합니다.

UPDATE

는 X 경우, y 값은 비교적 작은 범위의 정수이고, 충분한 샘플이있는 경우, 당신은 단순히 각 배열 요소의 값이되는 더불어, (스파 스?) 배열을 만들 수 있습니다 해당 좌표에서의 샘플 수. 히트 맵에서 "가장 뜨거워지는"배열 요소 (가장 많은 샘플을 가진 배열 요소)를 식별하고 더 낮은 값을 사용하여 히트 맵에서 "흰색"과 동일하게 만듭니다 (또는 다른 말로하면 가장 높은 값을 사용하여 배열의 모든 값을 정규화합니다). 정규화 된 값을 컬러 스케일에 매핑). 배열을 PNG에 매핑합니다.

GHeat와 같은 히트 맵은 각 데이터 포인트 주위에 영향권을 만듭니다. 데이터에 따라 필요하지 않을 수도 있습니다.

샘플 속도가 충분히 높지 않은 경우 GHeat에서 영향 범위를 벗어나 자신의 배열에 적용 할 수 있습니다.

영향 범위의 재료는 기본적으로 데이터 샘플의 특정 좌표에 "1"값을 추가하고 더 매끄러운 모양의지도를 제공하기 위해지도의 인접한 픽셀에 더 작은 값을 추가합니다. 내가 GHeat에 사용되는 특정 알고리즘을 모르겠지만, 기본적인 아이디어는이 같은 패턴 뭔가 사용 이웃뿐만 아니라, 특정 X에 Y 값을 추가하는 것입니다

0.25 | 0.5 | 0.25 
----------------- 
0.5 | 1.0 | 0.5 
----------------- 
0.25 | 0.5 | 0.25 
+0

감사합니다, 나는이있을 것이다 그것 (진짜로)을보십시오. 나는 그가 필요로하지 않기 때문에 long/lat 해결책으로부터 멀리 이동하려고 노력하고있다. 나는 수동으로 x, y 좌표를 식별해야하고 내 위치를 코드화하고 데이터 일치를 코드화해야하는지 또는 셰이프 파일과 같은 것을 사용할지 여부를 식별하려고 시도하고 있는데,이 경우 튜토리얼을 찾는 위치에 대한 조언이 유용 ​​할 것입니다. – user969670

+0

추가됨 네가 방금 말했던 것을 바탕으로 생각했다. 모양 파일 iirc는 벡터 모양을 정의합니다. 그렇다면 히트 맵에 잘 맞는지 모른다. –