我是python的初学者。在提问之前,对不起我的英语不好。
我有两个 shapefile(建筑物 - 多面体,城市 - 多面体)我试图将这两个相交,因为我想获取 city1 的建筑物位置信息。
我将向您展示我使用的两个不同的代码。
import geopandas as gpd
sg = gpd.read_file('sg_4326/sg4326.shp')
sb = gpd.read_file('sb_4326/sb4326.shp')
sg = sg.rename(columns = {"EA002_NAM" : "gu_name"}) ##TO change index
sg.set_index("gu_name", inplace = True)
sg.sort()
sg_g = sg.geometry[u"광진구"] ##To get city1
mm = sb.geometry.intersects(sg_g) ##Intersects sb(buildings) and sg_g(city1)
mm[mm == 1]
另一个是
import geopandas as gpd
sg = gpd.read_file('sg_4326/sg4326.shp')
sb = gpd.read_file('sb_4326/sb4326.shp')
sg = sg.rename(columns = {"EA002_NAM" : "gu_name"}) ##TO change index name
sg_g = sg[sg["gu_name"] == u"광진구"] ##To get a city1
sg_g = sg_g.set_geometry("geometry", crs = {"init" : "epsg : 4326"})##TO set crs
sb = sb.set_geometry("geometry", crs = {"init" : "epsg : 4326"})
mm = sb.geometry.intersects(sg_g) #Intersect sb(buildings) and sg_g(city1)
mm[mm == 1]
我认为这两者的不同之处在于上面的类型相交sg_g(shapely.geometry.polygon.Polygon)
并且sb(geopandas.geodataframe.GeoDataFrame)
另一个是sg_g(geopandas.geodataframe.GeoDataFrame)
和sb(geopandas.geodataframe.GeoDataFrame)
第一个的输出都是假的(错误的),但第二个是正确的
你能告诉我两者的区别吗?
有什么办法可以一次性转换
(geopandas.geodataframe.GeoDataFrame)
吗(shapely.geometry.polygon.Polygon)
?