ArcPy에서 두 점 사이에 호를 생성 하시겠습니까?


11

라이브 포인트 데이터의 시각화를 자동화하는 파이썬 스크립트를 작성하고 있습니다. 좌표 쌍이 두 개인 테이블이 있습니다. 이 두 점을 원호 또는 비슷한 호 (포물선 ??)로 연결하고 싶습니다.

두 점을 직선으로 연결할 수 있었지만 지루한 시각을 제공합니다.

주요 장애물 중 하나는 내 라이센스 수준 인 ArcView입니다.

누구나이 두 점 사이의 선 경로를 나타내는 점 집합을 생성하는 방법을 알고 있습니까?

그런 다음 points to polyline 명령을 사용할 수 있습니다.


5
충분한 정보를 제공하지는 않습니다 : "지루한 시각 개선"은 구체적이거나 좋은 문제 진술이 아닙니다. 그러나 gis.stackexchange.com/questions/5204/… 에서 비슷한 스레드에서 아이디어를 얻을 수 있습니다 .
— whuber

1
한 번에 한 줄 또는 여러 줄 을 동시에보고 있습니까?
— Andy W

포인트 수는 2에서 약 50까지 가능합니다.
— Pixel

답변:


28

이러한 유형의 "흐름 맵"에서 가장 일반적인 문제는 많은 행이 포함되어있을 때 불명확 한 패턴을 식별하기가 어려워집니다 (왕복 흐름이 고려 될 때). 훨씬 더). 또한 긴 선이 그래픽을 지배하는 경향이 있지만, 흐름의 분포가 짧은 공간에 걸쳐 우세하게 가능할 수 있습니다 (예를 들어, 장소 간 다른 분포의 호스트는 Levy 항공편 과 유사 합니다 ). 나는 이것이 반드시 나쁜 것은 아니라고 생각합니다 (긴 줄은 많은 현상의 짧은 줄보다 본질적으로 흥미로울 수 있습니다). 그러나 우리가 말하기 위해 나무의 숲을 잃고 싶지 않다고 생각합니다.

의심의 여지가 없지만, 제안 된 몇 가지 잠재적 인 "해결책"을 놓쳤지만 개인이 내가 겪은 작업의 문제를 해결하려고 시도한 방법 중 일부를 요약하려고합니다.

라인 왜곡

다른 스레드를 살펴보면 사람들이이 문제를 어떻게 처리했는지 몇 가지 예를 볼 수 있습니다. 특히 선이 왜곡되어 맵에서 서로 또는 다른 객체와 겹치지 않습니다. 다른 유사한 질문에 대한 Whuber의 답변 (주석에 이미 언급되어 있음)이 이에 대한 예입니다. 스탠포드 (Stanford)의 일부 연구원 들의 발표 는 이와 같은 아이디어를 보여줍니다 (Phan et al., 2005). 다른 스레드 에서이 답변 에 대한 프레젠테이션에 dslamb을 보내 주셔서 감사합니다 (그 스레드에 대한 모든 답변은 귀하의 질문에 관심이있을 것입니다). 특히 이것의 주요 예 중 하나가 Minard의 구식 이민지도라는 것이 흥미로운 것을 발견했습니다 (1864 년경!).

특정 유스 케이스 (작은 수의 노드와 라인)를 고려하면 충분합니다. 내가 제시하는 다른 "솔루션"은 많은 라인과 많은 기원-목적지로 데이터를 시각화하기 위해 더 의도 된 것입니다.

알파 블렌딩, 색상 및 선 너비 / 높이 사용

앞에서 언급 한 동일한 스레드에 나열된 맵, 네트워크 흐름 표시 가 이러한 예입니다. 페이스 북 친구는 선의 알파 레벨을 조정하는 좋은 경우이므로 두 곳의 연결을 더 어둡게 (또는이 경우 더 밝게) 나타내려면 더 많은 흐름이 필요합니다. 더 긴 줄은 더 드물게 발생하는 경향이 있기 때문에 더 긴 줄을 강조합니다. 이전에이 포럼 에서 언급 한 다각형 영역 (Roth et al., 2010)에 대한 Value-by-Alpha 맵에서 유사한 논리가 나옵니다 .

같은 답변으로 제시된 다른지도는 색상과 비 전통적인 3D 원근법 선을 사용합니다 (Ratti et al., 2010). 저자는 클러스터링 기준을 사용하여 균일 한 영역을 함께 그룹화하고 색상을 지정했습니다 (정의로 색상 내의 영역은 색상 간보다 흐름 패턴이 더 유사합니다). Andrew Gelman이 언급했듯이 클러스터링 기준 자체는 데이터의 패턴을 식별하는 데 흥미로울 수 있습니다 .Andrew Gelman이 언급 했듯이이 문제는 아마도 당신이 이미 알고있는 것을 서로에게 가깝게 알려줍니다. 더 많은 연결이있는 경향이 있습니다.

마지막으로,이 범주에는 흐름의 부피를 전달하기 위해 선 너비 또는 3D 원근감 높이의 경우 선을 가중하는 기법 (알파 블렌딩과 유사 함)이 포함됩니다. 2d의 일부 예는 Tobler의 플로우 맵핑 소프트웨어 페이지의 페이지 를 참조하십시오 (그리고 언급 한 다른 기사는 행 높이를 사용하는 3d의 예입니다). 또한 Tobler에는 flowmapping의 문제와 그 내역 응용 프로그램을 설명하는 매우 유용한 기사가 있습니다 (Tobler, 1987).

3d의 또 다른 예는 이 사이트의 mankoff의 답변 입니다. 사회학 이미지 블로그 의이 게시물 은 플로우 다이어그램에서 유입 및 유출을 구분하는 유용한 방법을 보여줍니다 (다시 노드 수와 상대적으로 작고 네트워크의 노드를 배치 할 수 있기 때문에 작동합니다). 오버 플로팅을 줄이는 임의의 방법). 같은 유형의 화살표 (및 해싱을 사용하는 다른 화살표)도 있습니다 (Tobler, 1987).

결국 선 너비와 색상으로 인해 과도 플로팅 문제가 해결되지는 않습니다. 더 복잡한 흐름 패턴으로 인해 유용성이 제한적이라고 생각하지만 3d의 호는 다소 도움이됩니다. IMO 알파 블렌딩은이 세 가지의 다양한 상황에서 가장 유용한 것으로 보이지만 색상과 선 너비는 위에서 언급 한 선 왜곡과 함께 사용할 수 있습니다.

데이터 감소

여기서는 1) 작은 다중 맵 (즉, 본질적으로 객체가 적은 많은 맵을 사용하여 오버 플로팅을 줄임) 또는 2) 다른 그래픽 표현 (선은 아니지만 밀도를 통한 일부 흐름을 나타냄)을 두 가지 유형의 기술로 그룹화합니다. 또는 choropleth지도. 이들의 예는 (Corcoran et al., 2009; Rae, 2009; Wood et al., 2010)에서 찾을 수있다 (Rae 참고 문헌에 대한 감사의 표시). 이것들은 일련의 작은 다중 맵을 제시하거나 (또는 ​​더 작은 영역으로) 제시되는 시각적 정보의 양을 줄이거 나, 통계를 나타 내기 위해 choropleth 매핑 방식을 사용합니다 (예 : 유입 수, 유출 수 일 수 있음) , 흐름 방향, 흐름의 평균 거리). 포인트 레벨 데이터가있는 경우 커널 밀도 래스터 맵을 통해 이러한 통계를 나타내거나 쿼드 래트로 집계 할 수 있습니다.

이와 같이 정보가 줄어든다면 과도 플로팅은 큰 문제가되지 않습니다. 매우 멋진 대화식 온라인 예는 Forbes 잡지의 마이그레이션 맵 입니다. 한 번에 한 카운티 만 볼 수 있지만 정보를 줄이면 라인 (및 유입과 유출의 차이)을 훨씬 쉽게 구문 분석 할 수 있습니다. ESRI 매핑 블로그 의 최근 게시물 은 작은 배수로 유사한 기술을 사용합니다 (또한 세계지도에서 "예쁜"선을 표시하고 색상을 사용하여 다양한 국제 원점을 강조 표시하는 특정 투영법을 선택합니다). 이 예에서는 최종 대상이 모든 흐름에 대해 동일하기 때문에 꽤 잘 작동하지만 흐름이 상호 작용할 수 있으면 아마 잘 작동하지 않을 수 있습니다.

플로우의 다른 비맵 표현 사용

이 사이트의 다른 사람들은 흐름을 나타 내기 위해 대안 다이어그램을 실제 맵에 사용하도록 제안했습니다 (실제 지리적 위치와 다른 방식으로 출발지와 목적지를 매핑하기 만하면됩니다). 이들의 예로는 (예에 의해 제조 된 것과 어느 cicular 시각화되어 Circos 다이어그램 (참조 : ARC) 이 예 Protovis 온 이들도 불린다 kriskograms 2,009 (샤오 및 천)), 또는 매트릭스의 열지도 ( 다른 예제 로부터 Protovis 웹 사이트). 다른 옵션은 어떤 유형의 자동화 된 네트워크 레이아웃을 사용하여 흐름의 패턴을 식별하는 것입니다 (예 : Graphviz 가 지원하는 패턴 ). Graphviz 외에도 NetworkX python 라이브러리 인 Gephi로 표시되며 일부 R 라이브러리도 널리 사용되는 도구입니다 (참조통계 사이트 에서이 답변 ).

내가 인용 한 라이브러리는 대화 형 시각화를 개발했기 때문에 매우 시원합니다. 다음은 원형 그래픽과 유사한 스타일을 가진 예제 입니다 (원형은 아니지만!). 여기에 또 다른 대화 형 시각화 왜곡 기술은 앞서 언급 한 라인의 일부를 사용하여이 네트워크 (원형 Dorling의 카르 토 그램과 유사하게 나타납니다) 위치뿐만 아니라 기타 유용한 통계 요약 (나는에 원래 그 예는 모두 본 정보 미학 블로그 ).


내가 유용하다고 생각하는 다른 리소스로는 Spatial Data Mining 및 Visual Analytics Lab 에서 제공하는 소프트웨어와 기사가 있습니다 . 또한 CrimeStat 프로그램 의 범죄 여행 수요 모델링 은 이러한 흐름 데이터에 적용 가능한 회귀 기술을 소개합니다. 이러한 도구 중 하나를 사용하면 흐름 패턴에서 다른 지리 정보와 흥미로운 상관 관계를 식별 할 수 있습니다. 데이터를 그래픽으로 표시하거나 통계 분석을하는 데 유용한 영감을 얻을 수있는 또 다른 곳은 Journal of Computational and Graphical Statistics of Journal of Issue 20 Issue 2 의 최근 문제 일 것입니다.1987 년부터 2008 년까지 미국의 상업용 항공사에 대한 비행 도착 / 출발 통계를 조사 할 때 (빅 데이터를 처리하는 데 관심이있는 경우 검토하는 것이 좋습니다). 모든 기사는 무료이며 각 논문과 관련된 포스터가 있습니다.

결국, 데이터와 매체는 이러한 기술 중 일부가 흐름 데이터와 함께 제공되는 시각적 혼란을 줄이는 데 얼마나 잘 작동 하는지를 나타냅니다. 그래도이 시각화 문제를 해결하는 방법에 대한 아이디어를 찾을 수있는 유용한 장소가되기를 바랍니다. 질문을 달성하려는 대상으로 추가로 구체화하면 실제 프로그래밍 방식 구현에 대해 유용한 피드백을 제공 할 수 있습니다 (아직 제공되지 않는 경우).


인용

* 참고, pdf 파일에 대한 링크는 내가 찾을 수있을 때 포함됩니다


2
현재 그래픽을 생략했지만 요청한 경우 사람들이 링크를 따르지 않고 예제를 보려는 경우 그래픽을 포함시킬 수 있습니다.
— Andy W

와우! ... 인용으로 완성! 두 번 투표 할 수 있다면! 멋진 답변, man :)
— R Thiede

나는 현재 데이터 축소 (및 큰 원 선)를 사용하여 또 다른 멋진 대화 형 시각화를 발견했습니다 . Trulia Insights 블로그를 통해 국제 주택 사냥꾼들 사이에서 가장 인기있는 미국 도시를 찾으십시오 .
— Andy W

5

우리 자신의 어두운 환경 에서 좋은 절차가 있습니다 .

기본적으로 절차는 다음과 같습니다.-선 사이에 원하는 점을 재 투영하고, 선 사이를 긋고, 선을 x 조각으로 세분화하고, 마지막으로-세분 된 선을 원본으로 다시 투영합니다. 투사.

비용이 많이 들기 때문에 Arc 사용을 중단했지만이 절차가 작동하려면 기본 기능을 제공하기 위해 ESRI에 추가 뇌물을 지불 할 필요가 없다고 생각합니다. 내 말은, "확장"을 사야한다고 생각하지 않습니다. 나는 라인을 세분화하는 것이 Spatial Analyst의 일부인지에 대해 긍정적이지 않기 때문에 정정하고 있습니다. 아마도 ESRI가 더 경 사진 일부가 나를 도울 수 있습니까? :)


1
이전에는 ArcView를 사용하여 실제 곡선을 만들 수 없었지만 ArcView는 이제 버전 9부터 실제 곡선을 수행 할 수있었습니다.
— blord-castillo


2

큰 원법을 사용하여 맵의 두 점에서 시각적으로 매력적인 폴리 라인을 만들 수 있습니다. http://www.esri.com/software/arcgis/defense-solutions/military-analyst.html- 군 분석가를 확인하십시오 . 당신이 찾고있는 것을 가지고 있어야합니다!


더 이상 Arc 속도를 높이 지 않지만 일부 재 투영 으로이 작업을 수행 할 수 없습니까? Military Analyst가 아마도 당신에게 돈을 지불 할 것이기 때문에 ...
— R Thiede

내지도의 범위가 약 40 마일이 될 것이기 때문에이 솔루션이 어쨌든 작동하지 않을 것이라고 생각합니다. 대륙 규모라면 이것이 효과가 있다고 생각합니다.
— Pixel

Military Analyst는 무료 @RThiede입니다. 예, 훨씬 더 잘 작동합니다. 그러나 선을 만든 후 원하는 것을 제공하기 위해 선을 편집 할 수 있습니다 (베 지어 곡선을 사용하여 폴리선을 따라 수백 개의 점을 생성하여 곡선을 만들 때)
— Michael Markieta

원하는 호를 얻기 위해 선을 쉽게 편집 할 수는 있지만 게시물에 표시된 것처럼 Python을 사용 하여이 프로세스를 자동화하고 있습니다. 피드백을 주셔서 감사합니다!
— Pixel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.