2017-04-12 122 views
1

Shapely和Jupyter/iPython之间的互操作性为不错。我可以做很酷的东西像创建一批几何形状,并查看他们的笔记本:以图形方式选择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

现在就是爽!对于我来说,快速查看和编辑它特别有用,例如,组成二维有限元网格的多边形。不幸的是,产生的图像只是静态的SVG图形;没有内置交互。使用iPython中的相同图形界面,可以选择图像中这些对象的子集。

更具体地说,我希望能够创建一个列表并添加一些显示的多边形,例如,点击/选择它们,或者在它们周围拖动套索/框,也可以删除他们再次点击时。

我已经研究过试图用matplotlib或javascript来做这件事,虽然我已经有了一些初步的成功,但它可能是那种在我目前的知识/技能水平以外的项目。

由于Jupyter是有很多的,我可能不知道的,我想知道是否有现有的解决方案在那里对这种在Jupyter笔记本的情况下的互动特征的某种庞大的工具?

更新:它看起来像我将不得不自己创造一些东西。令人高兴的是,this tutorial将使得LOT更容易。

更新#2:似乎Bokeh是一个更适合此目的的库。我相信我将放弃创建自定义Jupyter小部件并使用Bokeh小部件和交互来创建应用程序的想法。这样的应用程序可以在Jupyter笔记本中使用,但也可以在其他地方使用。

回答

1

BokehPlotly是两个交互式的python可视化库,支持空间数据。你可以查看一些例子(12),看看这是你在找什么。 This repository包含一些非常酷的二维和三维可视化的例子,你可以在你的jupyter笔记本上运行。您还可以使用GeoPandas和Folium创建完全交互式地图(here是一个很好的教程)。

+0

很多很棒的信息 - 当它发生的时候,我刚刚去了PyOhio另一个周末,在一个散景教程会议中,并决定在那一点,散景是我可能会用来解决我的问题。谢谢(你的)信息!。 –

+0

此外,对于稍后可能会发现此问题的人来说:它似乎可以使用自定义Jupyter小部件来完成类似的事情。但是Bokeh库似乎很容易开始使用。我确实建议朝那个方向发展。 –

相关问题