问题标签 [shapely]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
769 浏览

python - AttributeError:未找到函数“GEOSCovers”

我已经在我的电脑 win 64 位 python 2.7 上安装了。当我写进口匀称它工作正常。但是上面的错误出现在以下代码中:

错误:

0 投票
3 回答
24793 浏览

python - 使用 Geopandas 计算到最近要素的距离

我正在寻找使用 Geopandas / Shapely来做相当于 ArcPy生成近邻表的操作。我对 Geopandas 和 Shapely 非常陌生,并且开发了一种有效的方法,但我想知道是否有更有效的方法来做到这一点。

我有两个点文件数据集 - 人口普查块质心和餐馆。我正在寻找,对于每个人口普查块质心,到它最近的餐厅的距离。在同一家餐厅是多个街区最近的餐厅方面没有限制。

这对我来说变得有点复杂的原因是Geopandas 距离函数计算元素,基于索引匹配。因此,我的一般方法是将餐厅文件转换为多点文件,然后将块文件的索引设置为所有相同的值。然后所有的块质心和餐馆都有相同的索引值。

现在阅读 Block Centroid 和 Restaurant Shapefile:

由于 Geopandas 距离函数按元素计算距离,因此我将 Restaurant GeoSeries 转换为 MultiPoint GeoSeries:

然后我将块的索引设置为等于 0(与餐厅多点的值相同)作为按元素计算的解决方法。

最后,我使用 Geopandas 距离函数计算每个 Block 质心到最近餐厅的距离。

请就如何改进这方面的任何方面提供任何建议。我不喜欢使用 Geopandas 或 Shapely,但我希望学习 ArcPy 的替代方法。

谢谢您的帮助!

0 投票
2 回答
4273 浏览

python - 如何在匀称(或更好的库)中创建带有弧的多边形

我正在尝试使用 shapely 来识别形状使用的区域以及将在 CNC 路由器上切割它的工具使用的区域。形状是使用ezdxf从 dxf 绘图中导入的。

刀具路径可以是矩形(如果它们是由沿着直线的锯盘切割的)或一组段(如果它们是由铣刀铣削的)。在这两种情况下,我都可以使用LineString.buffer()自动创建偏移量并找到工具使用的区域。

我使用 shapely 是因为我认为它是找出形状是否相互重叠的最佳工具(union()用于将所有工具合并为一个形状并overlaps()查找干扰)。请让我知道是否有更好的工具用于此目的。

buffer()在创建分段以表示拐角处的弧方面做得很好。

有没有办法创建线段来表示形状本身的弧线?

例如,如何在此形状的左侧创建弧线?我需要创建自己的(慢)python 函数吗?或者有没有优化的匀称方式?

绿色是零件,黄色是锯盘切割,洋红色是铣刀切割

0 投票
1 回答
327 浏览

matlab - 如何在 windows 上匀称地安装,以便可以从 matlab 导入?

我在 Windows 7/64 上。shapely 没有在他们的pypi 页面上提供 Windows 安装程序,即使他们最近似乎 有。他们的 pypi 页面和他们的README说要使用chris gohlke 的非官方二进制文件。我不清楚原因——像pypi这样的东西不能安装dll,所以如果你的代码依赖于dll,你必须手动制作安装程序,但是制作安装程序很痛苦,因为你需要ms visual studio或某物?

无论如何,gohlke 的二进制文件在 winpython(2.7)中对我来说很好,但当我尝试使用 matlab 的新python 桥导入时却不行。shapely 是 windows 上唯一在 matlab 中给我带来麻烦的 python 库——我可以使用 openCV、numpy、scipy、scikit's、mosek、picos、PIL、future,一切都很好。它也是我需要 gohlke 安装程序的唯一库。所以我认为有联系。

当我py.importlib.import_module('shapely')在matlab中时,我得到了这个:

还会出现一个弹出窗口:

谷歌搜索,我得到 https://msdn.microsoft.com/en-us/library/ms235560(v=vs.90).aspx

Visual Studio 2008。应用程序尝试在不使用清单的情况下加载 C 运行时库。这是加载 Visual C++ DLL 的不受支持的方式。您需要修改您的应用程序以使用清单进行构建。应用程序必须使用清单来加载 C 运行时库。有关详细信息,请参阅 Visual C++ 库作为共享的并行程序集和 Visual Studio 中的清单生成。... 更正此错误 重建您的应用程序以包含清单。使用 Visual Studio 构建应用程序会自动将清单放入生成的 .exe 或 .dll 文件中。如果您在命令行构建,请使用 mt.exe 工具将清单添加为资源。如果构建 .exe,则使用资源 ID 1,如果构建 .dll,则使用资源 ID 2。有关详细信息,请参阅如何:

这似乎与 chris gohlke 的评论有关。

这是我尝试过的更多事情。

在matlab中:

但在 python 中也一样!

但是,我可以从 python 中匀称地使用:

在matlab中:

在蟒蛇中:

搜索geos_c.dll只是shapely在我的 python 中显示的目录site-packages

其他几个 SO 答案表明它是 matlab 将其不兼容的 msvcr*.dll 副本放在路径上的某个位置,并且可疑:

所以:

耶!但是一旦我尝试使用它,我就会得到完全相同的 R6034 错误弹出窗口

触发错误弹出> 10次!

以下只做一次:

我也从中删除...\AppData\Roaming\Python\Python27\site-packages了,sys.path但这并没有改变任何东西。

0 投票
1 回答
80 浏览

python - 同一列表的多次迭代

我有一个数据列表如下:

列表“数据”具有以下子列表:

我必须检查子列表是否相交。如果相交,它们应该放在一个元组中;如果不相交,则应放入不同的元组。预期结果是:

怎么做?

我试了一下:

0 投票
3 回答
1208 浏览

python - 如何在元组列表中对相交的 Shapely 几何对象进行分组

我有一个数据列表如下:

列表“数据”具有以下元素

我必须检查一个元素是否与任何其他元素相交。如果相交,它们应该放在一个元组中;如果不相交,它们应该放在不同的元组中。预期结果是:

怎么做?

我试了一下:

0 投票
2 回答
3786 浏览

python - 匀称:在两个切割点从线串上切割一块

众所周知的功能

将一条匀称的线串在一定距离处分成两条线。

我需要做的是在沿线的某个位置从线切割一段一定长度

示例行:

我尝试了一种方法来获得通过在剪切函数之上应用得到的一些线串之间的差异,但由于形状限制,结果并不好。

有任何想法吗?

0 投票
1 回答
564 浏览

python - Python gdal 在使用 ogr Within、Contains 或其他时停止工作

更新:通过进一步的调查,我发现它一定是由某种损坏的几何图形引起的。但即使我运行:

它正在导致崩溃。所以不知道如何检查。

我正在尝试测试线条是否在多边形内。除了速度之外,使用 shapely 对我来说效果很好——我有一万条线,多边形也是如此。我只是想测试一下 ogr 是否可以更快地做到这一点,但没有运气让它发挥作用。

知道这条线有什么问题吗?:

在我的两台 Windows 7 机器上,我总是让 python.exe 停止工作......问题签名:

或者有没有其他更快的方法或方法来提高使用匀称的速度?

0 投票
2 回答
334 浏览

python - Geos、Shapely 和 Hadoop 流

我正在尝试运行 Hadoop 流作业来处理地理空间数据。为此,我使用了需要libgeos的Shapely函数。

但是,作业失败,因为集群上没有安装 libgeos。

有没有办法将 libgeos 发送到集群并让 Shapely.so从目录中读取文件(可能是通过-archivesor -files)?

运行命令示例

mapper.py 从哪里开始...

这会产生以下错误

0 投票
0 回答
374 浏览

python - 通过 shapely 编辑 OSM 方式,添加一些节点,写回 OSM xml

嗨,我在谷歌上四处寻找一些提示,以完全在 python 中实现这个过程链(不使用 postgis db、osmosis 等):

  1. 从 OSM xml 读取几何图形到匀称

(为此我可以使用imposm.parser或其他东西,应该不是问题)

  1. 为某些方式添加一些节点
    • 我可以根据我的要求通过 shapely 找到这些额外节点的几何形状
    • 我需要为这些新节点添加一些标签

3._ 我需要将所有添加内容写回原始(或旧的)OSM xml 文件

在将我的新节点添加到 OSM XML 并将其写回 OSM XML 时,我特别卡住了

有任何想法吗?