当前位置: 首页 > 知识库问答 >
问题:

如何从GeoDataFrame中提取线串数据并与多边形匹配?

东郭兴学
2023-03-14

亲爱的社区:,

主要问题:

我有一个GeoDataFrame包含纽约-曼哈顿的街道网络(通过osmnx包获得),在那里我想从所有街道中提取坐标(lon/lat数据),这些街道存储为几何学下的LineStrings,就像这样:

**

field_1                                                     0
access                                                       
bridge                                                       
geometry    LINESTRING (-73.9975944 40.7140611, -73.997492...
highway                                           residential
junction                                                     
key                                                         0
lanes                                                        
length                                                 11.237
maxspeed                                               25 mph
name                                         Catherine Street
oneway                                                   True
osmid                                                 5670536
ref                                                          
service                                                      
tunnel                                                       
u                                                  1773060097
v                                                    42437559
width                                                        
geometry    LINESTRING (-73.9975944 40.7140611, -73.997492...
Name: 0, dtype: object

**

我试图做的是提取每个行项目的几何体信息:

df.iloc[x][3]

问题是输出格式为str:

[1]: LINESTRING (-73.9975944 40.7140611, -73.9974922 40.7139962)
[2]: print(type(...))
[2]: <class 'str'>

这使得自动化和处理输出数据变得困难。有人知道如何提取它,使它已经是LineString(或任何其他可用的列表/数组)格式吗?

进一步问题:

我的总体目标是使用出租车区域(多边形格式的区域)的形状文件来映射这些街道信息,以确定哪些街道位于哪个区域,哪些lon/lat区域在一个区域(多边形)内被街道覆盖。利用shapely、geopandas或osmnx软件包(即类似于“polygon.contains(Point)”但在“polygon.contains(LineString)”的意义上)是否有直接的方法来实现这一点?

非常感谢您的支持!

共有1个答案

文嘉禧
2023-03-14

要提取几何坐标,您需要使用以下代码:

df.geometry.apply(lambda geom: geom.coords, axis=1)
 类似资料:
  • 我的geodataframe如下所示: 我可以在“几何体”列中看到点列表,但我想将这些点拉出并放入列表中。例如,在pandas中,您可以执行类似df['column']的操作。到列表()。但是,在尝试此操作时,我得到一个错误: 你知道我如何去掉“多边形”名称,直接得到组成该多边形的点的列表吗?说清楚,我不想要多边形的外部或边界,我想要边界内的所有点。

  • 我有一个包含数千个多边形的形状文件。他们中的许多人接触但不交叉。我需要接电话的公用线路。 我尝试使用下面的函数来达到我的目的,但是输出显示了一些,其中的行只有两个点,这应该是一个整体。 对于,我尝试使用函数在同一个中连接两个短行,如果它们彼此接触。但是结果也显示了一个。 geopandas本身的交叉功能似乎也会导致

  • 我是加特林的新手,我有自己无法解决的问题。我必须从我创建的feeder中提取价值,但我不知道该怎么做。你知道怎么做吗?谢谢你的帮助。

  • 我使用以下方法从拉多边形中获取多边形: 但是,我正在尝试从多边形获取坐标,但我不能: poligon@polygons[1]类“Polygons”Slot“Polygon”的对象:[1]类“多边形”Slot”labpt“的对象:[1]-46.37327-23.91955 提前致谢

  • 问题内容: 我有一个String变量(基本上是一个英语句子,带有未指定数量的数字),我想将所有数字提取到一个整数数组中。我想知道是否有使用正则表达式的快速解决方案? 我使用了Sean的解决方案,并对其进行了一些更改: 问题答案: …打印和。 -?匹配前导负号-可选。 d匹配一个数字,但是我们需要像Java String中那样编写。因此, d +匹配1个或多个数字。