2017-04-12 23 views
1

ShapelyとJupyter/iPythonの相互運用性はniceです。Jupyter/iPythonノートブックで幾何学的オブジェクトをグラフィカルに選択

some_nodes = [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2]] 
some_boxes = [] 
some_boxes.append([some_nodes[0], some_nodes[3], some_nodes[4], some_nodes[1]]) 
some_boxes.append([some_nodes[1], some_nodes[4], some_nodes[5], some_nodes[2]]) 

from shapely.geometry import MultiPolygon, Polygon 
MultiPolygon([Polygon(box) for box in some_boxes]) 

を...とJupyterは私にこれを表示します:私は、幾何学的形状の束を作成し、ノートにそれらを表示するようにクールなものを行うことができます

Jupyter_Shapely_output

が今ではクールです!たとえば、2次元の有限要素メッシュを構成するポリゴンなどを素早く表示および編集することは、私にとっては特に有益です。

悲しいことに、悲しいことに、生成された画像は静的なSVGグラフィックスに過ぎません。組み込みのインタラクションはありません。iPythonのこの同じグラフィカルインタフェースを使用して、画像内のオブジェクトのサブセットを選択すると便利です。

具体的には、リストを作成して、表示されているポリゴンをクリック/選択するか、それらのまわりのラーソ/ボックスをドラッグして削除するなどして、表示されたポリゴンを追加することができますもう一度クリックすると表示されます。

私はmatplotlibやjavascriptでこれをやろうとしていましたが、初期の成功はあったかもしれませんが、現在のレベルのナレッジ/スキルではおそらくプロジェクトのようです。

Jupyterは多分私が気づいていない多くの機能を備えた幾分広がっているツールなので、Jupyterノートブックのコンテキストでこの種の相互作用のための既存のソリューションが存在するかどうか疑問に思っていますか?

更新:自分で何かを作成する必要があるように見えます。幸いなことに、this tutorialはそれをもっと簡単にするつもりです。

更新#2:Bokehは、この目的にはるかに適したライブラリです。カスタムJupyterウィジェットを作成し、代わりにBokehウィジェットとインタラクションを使用してアプリを作成するというアイデアを放棄するつもりです。このようなアプリはJupyterのノートブックでも使用できますが、他の場所でも使用できます。

答えて

1

BokehおよびPlotlyは、空間データをサポートする2つのインタラクティブなPythonビジュアライゼーションライブラリです。これがあなたが探しているものかどうか確認するためにいくつかの例(12)を調べることができます。 This repositoryには、あなたのジュピターノートブックですぐに実行できる2Dおよび3D視覚化の非常にクールな例が含まれています。 GeoPandasとFoliumを使って完全なインタラクティブマップを作成することもできます(hereは素晴らしいチュートリアルです)。

+0

素晴らしい情報がたくさんあります。私はちょうど他の週末にPyOhioに行き、Bokehのチュートリアルセッションに参加し、その時点でBokehが私の問題を解決するために使用しているものと決めました。情報をありがとう!。 –

+0

また、この質問を後で見つけるかもしれない人たちのために、カスタムJupyterウィジェットを使って同様のことを達成できるようだ。しかし、Bokehの図書館は、始めるにはとても簡単です。私はその方向に向けることを提案します。 –

関連する問題