ArcPyの2点間に円弧を作成しますか?


10

私は、ライブポイントデータの視覚化を自動化するPythonスクリプトに取り組んでいます。2つの座標ペアのテーブルがあります。これらの2点を円弧などに接続したい(放物線??)。

2点を直線で結ぶことができましたが、つまらないビジュアルになります。

主要なハードルの1つは私のライセンスレベルであるArcViewです。

これらの2つのポイント間の線のパスを表す一連のポイントを生成する方法を誰かが知っていますか?

その後、ポイントをポリラインコマンドに使用できます。


5
あなたは本当に十分な情報を提供していません:「退屈なビジュアルを改善する」は特定でもなければ良い問題でもありません。しかし、おそらく、gis.stackexchange.com / questions / 5204 /…の同様のスレッドからいくつかのアイデアを得るでしょう。
whuber

1
同時に多くの行を表示していますか、それとも一度に1つ(またはいくつか)しか表示していませんか?
アンディW

ポイント数は、2から約50までの任意の場所とすることができる
ピクセル

回答:


27

これらのタイプの「フローマップ」の最も一般的な問題は、多くのラインが含まれている場合、ラインが非常に衝突するために、明白でないパターンを見分けることが困難になることです(相互フローを考えると、さらに大きい範囲)。また、長い線がグラフィックを支配する傾向がありますが、フローの分布が主に短いスペースを超えている可能性は十分にあります(たとえば、場所間のさまざまな分布のホストがLevyフライトに似ている傾向があります)。これは必ずしも悪いことではないと思います(長い線は多くの現象で短い線よりも本質的に興味深いかもしれません)とはいえ、いわば木のために森を失いたくはないと思います。

私が提案したいくつかの潜在的な「解決策」を見逃したことは間違いありませんが、私が遭遇した仕事の問題を個人が解決しようと試みた方法のいくつかを要約しようと思います。

線を歪める

あなたがその場で他のスレッドのいくつかを熟読すると、人々がこの問題にどのように対処したかについていくつかの例が表示されます。特に、ラインは歪んでいるため、相互に、またはマップ上の他のオブジェクトと重なりません。(すでにコメントで言及されている)別の同様の質問に対する Whuberの回答は、この例です。プレゼンテーションスタンフォード大学のいくつかの研究者は、これと同じ考え方を示しています(Phanさんら。、2005)。そのプレゼンテーションをありがとうございました。別のスレッドでこの回答をdslambに送信します(そして、そのスレッドへのすべての回答も質問に関心があります)。これの基本的な例の1つが、Minardによる古い移民マップが望ましい出力の例(1864年頃)であることは、特に興味深いと思います。

特定のユースケース(少数のノードとライン)を考えると、これで十分なようです。私が提示する他の「解決策」は、多くの行と多くの起点-終点を持つデータを視覚化することを目的としています(ただし、それらは一般にコミュニティにとって有用な要約になると想定しているため、関係なく続行します)。

アルファブレンディング、色、線の幅/高さを使用する

前述の同じスレッドにリストしたマップ、ネットワークフローの表現はこれらの例です。Facebookの友達はラインのアルファレベルを調整する良い例なので、2つの場所の間の暗い(またはその場合は明るい)接続を表すには、さらに多くのフローが必要です。また、発生頻度が低くなる傾向があるため、これにより長い線の輝度が下がります。同様のロジックは、このフォーラムで以前に言及された、ポリゴン領域のValue-by-Alphaマップ(Roth et al。、2010)から来ています。

同じ答えで私が提示するもう1つのマップは、色と非伝統的な3D遠近法の弧線を使用しています(Ratti et al。、2010)。著者は、クラスタリング基準を使用して同種の領域をグループ化し、それらをカラーコーディングしました(したがって、定義により、色内の領域は、色間よりもフローパターンが類似しています)。クラスタリング基準自体は、データのパターンを特定するのに興味深いものになる可能性がありますが、Andrew Gelmanが述べたように、これに関する問題のように思われるかもしれませんが、これは、あなたがすでに知っていること、つまり互いにより近くにあることを伝えます。より多くのつながりを持つ傾向があります。

最後に、このカテゴリには、フローのボリュームを伝えるために、ライン幅、または3Dパースペクティブラインの高さの場合のいずれかを使用してラインに重みを付けるテクニック(アルファブレンディングと同様)を含めます。2dでのいくつかの例については、Toblerのフローマッピングソフトウェアページのページを参照してください(そして、私が言及した他の記事は、行の高さを使用した3dの例です)。また、そのページには、Toblerがフローマッピングの問題とその歴史的応用を説明する非常に役立つ記事があります(Tobler、1987)。

3Dの別の例は、このサイトのマンコフによるこの回答です。Sociological imagesブログのこの投稿は、フロー図でインフローとアウトフローを区別する便利な方法を示しています(ただし、ノード数が比較的少なく、ネットワーク上のノードを過剰作図を減らすための任意の方法)。同じタイプの矢印(およびハッシュを使用する他のいくつかの矢印)も(Tobler、1987)に含まれています。

結局のところ、線の幅と色は、実際にプロットしすぎる問題を解決しません。3Dの円弧はある程度役立ちますが、より複雑なフローパターンでは、ユーティリティの有用性が制限されると思います。IMOアルファブレンディングは、これら3つのさまざまな状況で最も役立つようですが、色と線幅は、上記の線の歪みと組み合わせて使用​​できます(使用する必要があります)。

データ削減

私はここで2つのタイプの手法をグループ化します。1)小さな複数のマップ(つまり、視覚化するオブジェクトが本質的に少ない多くのマップを使用して視覚化することにより、過剰描画が削減されます)、または2)線ではなく、密度を介して一部のフローを表す他のグラフィック表現またはコロプレスマップ。これらの例は、(Corcoran et al。、2009; Rae、2009; Wood et al。、2010)にあります(Raeの参照をありがとうございます)。これらは、一連の小さな複数のマップ(または単に小さな領域)を提示するか、コロプレスマッピングスキームを使用していくつかの統計を表すことによって表示される視覚情報の量を減らす傾向があります(例は、流入数、流出数などです) 、流れの方向、流れの平均距離)。ポイントレベルのデータがある場合、これらの統計をカーネル密度ラスターマップで表すか、それらを四角形に集約できます。

このように情報が削減された場合、過剰プロットはそれほど問題ではありません。非常に優れたインタラクティブなオンラインの例は、フォーブス誌によるこの移行マップです。一度に表示できるのは1つの郡だけですが、情報が減るため、ライン(および流入と流出の違い)を解析するのがはるかに簡単になります。ESRIマッピングブログの最近の投稿でも、小さい倍数を使用して同様の手法を使用しています(彼らはまた、世界地図の特定の投影法を選択して、「きれいに見える」線を作成し、色を活用してさまざまな国際的な起源をさらに強調しています)。その例では、最終宛先がすべてのフローで同じであるため、それはかなりうまくいきますが、フローが相互的である可能性がある場合、おそらくうまくいきません。

フローの他の非マップ表現の使用

このサイトの他のユーザーは、実際の地図に代替の図を使用してフローを表すことを提案しています(実際の地理的位置以外の方法で出発地と目的地をマッピングするだけです)。これらの例は、サーキュラービジュアライゼーション(Circosによって生成されるものなど)、アークダイアグラム(Protovisのこの例を参照。これらはクリスコグラム(Xiao&Chun、2009)とも呼ばれます)、またはマトリックスヒートマップ(ここでは、 Protovis Webサイト)。別のオプションは、フローのパターンを識別するために、ある種の自動化されたネットワークレイアウトを使用することです(Graphvizで可能なものなど)。Graphvizの他に、Gephi、NetworkX pythonライブラリ、および一部のRライブラリも人気のツールです(参照統計サイトのこの回答)。

私が引用するライブラリは、インタラクティブな視覚化も開発しているので、かなりクールです。円形のグラフィックスに似たスタイルの次に示します(円形ではありません!)。これは、以前に説明したいくつかのライン歪み技術、ネットワーク配置(円形のドーリングカートグラムに似ているように見える)、およびその他の有用な統計的要約(私はもともと情報美学のブログで両方の例を見ました)を使用した別のインタラクティブな視覚化です。


私が役立つと思う他のいくつかのリソースは、空間データマイニングとVisual Analytics Labからのソフトウェアと記事です。また、CrimeStatプログラムでの犯罪旅行需要モデリングは、そのようなフローデータに適用可能な回帰手法への穏やかな導入です。これらのツールのいずれかを使用すると、フローパターンと他の地理情報との興味深い相関関係を特定できます。データをグラフィカルに表示したり統計分析を行ったりするために役立つヒントを得られる別の場所は、Journal of Computational and Graphical Statistics、Volume 20 Issue 2の最近の号でしょう。、1987年から2008年までの米国の民間航空会社のフライト到着/出発統計の調査(ビッグデータの処理に興味がある場合は、これも検討に値するでしょう)。すべての記事は無料で、各論文にポスターが関連付けられています。

結局のところ、データとメディアは、フローデータに伴う視覚的な混乱を減らす上でこれらの手法のいくつかがどの程度うまく機能するかを決定します。これがこの視覚化の問題への対処方法に関するアイデアを見つけるのに役立つ場所であることを願っています。質問をあなたが達成したいものにさらに絞り込むと、他の人が実際のプログラムによる実装に有用なフィードバックを提供できます(まだ利用できない場合)。


引用

*注、非ゲートPDFドキュメントへのリンクは、見つけた場合に含まれます


2
現在、グラフィックスは省略していますが、必要に応じて、リンクをたどらずに例を見たい場合はグラフィックスを含めることができます。
Andy W

すごい!! ...引用付きで完成!私が二度投票できたら、そうします!素晴らしい答え、男:)
R Thiede、2011年

私は現在、データ削減(および大きな円の線)を使用した、かなりクールなインタラクティブな視覚化を見つけました。TruliaInsightsブログで、国際的なハウスハンターの間で最も人気のある米国の都市を見つけてください。
Andy W

5

私たち自身の暗闇によって、ここに素晴らしい手順があります。

基本的に、手順は次のようになります。-線の間にある点を再投影します-それらの間に直線を描画します-その線をxの量に分割し、最後に-分割された線を元の線に投影します投影。

お金がかかるのでArcの使用をやめましたが、この手順が機能するために、基本的な機能を提供するためにESRIに追加の賄賂を支払う必要はないと思います。つまり、「エクステンション」を購入する必要はないと思います。ただし、ラインの細分割がSpatial Analystの一部であるかどうかについては前向きではないので、訂正の下で話しています。おそらく、よりESRIcallyに傾倒している人のいくつかがここで私を助けることができますか?:)


1
以前はArcViewで真の曲線を作成できませんでしたが、バージョン9以降、ArcViewは真の曲線を作成できるようになりました。
blord-castillo 2011


2

大圏法を使用して、マップ上の2点から視覚的に魅力的なポリラインを作成できます。http://www.esri.com/software/arcgis/defense-solutions/military-analyst.html-軍事アナリストを確認してください。あなたが探しているものを持っている必要があります!


私はもはやArcのスピードにかなりのスピードが出ていませんが、いくつかの再投影でこれを行うことはできませんか?軍事アナリストはおそらくあなたにお金がかかるだろうから
R Thiede '30

私の地図の範囲は約40マイルになるので、この解決策がうまくいくとは思いません。それが大陸の規模であったならば、私はこれがうまくいくと信じています。
ピクセル

軍事アナリストは無料です@RThiedeはい、それはより大きな範囲でよりよく機能します。ただし、線を作成した後、それらを編集して必要な結果を得ることができます(ベジェ曲線を使用してポリラインに沿って何百もの点を作成し、曲線を作成するため)
Michael Markieta

簡単に線を編集して必要な弧を得ることができましたが、私の投稿が示すように、このプロセスを自動化するためにPythonを使用しています。フィードバックをお寄せいただきありがとうございます!
Pixel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.