两个地理序列的指数是不同的--理解指数

The indices of the two GeoSeries are different - Understanding Indices(两个地理序列的指数是不同的--理解指数)
本文介绍了两个地理序列的指数是不同的--理解指数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用GeoPandas,我有两个GeoDataframes和相同的CRS。其中一个包含带有多边形geometrygeometry列,另一个包含带有点geometry的列。我想检查哪些点在多边形内部。

我天真地尝试

shape.contains(points)

这给了我

>  The indices of the two GeoSeries are different

我不理解此消息。当我检查documentation时,它显示

我们还可以逐行检查两个GeoSeries。上面的GeoSeries有不同的指数。我们可以根据索引值对齐两个GeoSeries并使用Align=True将元素与相同索引进行比较,或者使用Align=False忽略索引并根据元素的匹配顺序进行比较:

这些指数是什么?为什么要相互核对,而不是geometry columns? 我在网上读到,我必须将我的几何图形转换为shapely几何图形。但使用GeoPandas的全部意义不就是我可以对数据执行地理操作吗?

我对此感到困惑。如何检查shape中的geometries是否包含points中的任何geometries

推荐答案

您所描述的实际上是一个空间连接。下面的例子从英国城市的经度/纬度构造点,然后找出城市所在的行政区域多边形。这是NxM比较

import pandas as pd
import numpy as np
import geopandas as gpd
import shapely.geometry
import requests

# source some points and polygons
# fmt: off
dfp = pd.read_html("https://www.latlong.net/category/cities-235-15.html")[0]
dfp = gpd.GeoDataFrame(dfp, geometry=dfp.loc[:,["Longitude", "Latitude",]].apply(shapely.geometry.Point, axis=1))
res = requests.get("https://opendata.arcgis.com/datasets/69dc11c7386943b4ad8893c45648b1e1_0.geojson")
df_poly = gpd.GeoDataFrame.from_features(res.json())
# fmt: on

gpd.sjoin(dfp, df_poly)

这篇关于两个地理序列的指数是不同的--理解指数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)