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.