geopandas缓冲区相交分析(数据量大时推荐)

geopandas缓冲区相交分析(数据量大时推荐)

目录

1.需求

2.实现代码

3.其它


1.需求

        [1] 不采用arcgis、qgis等软件实现

        [2] 需要自己编写1个gui软件实现相关功能,那么就不能使用arcpy环境

        [3] 采用python自己写代码实现

        功能需求:点shp、线shp,对点进行缓冲区,然后与线进行相交分析,将最近的点属性赋予线要素!(点线数量很多,不适合shapely的那种单个相交函数判断)

        开源的geopandas.sjoin_nearest更加适合,其应用example也进一步证明了如此。底层代码做了优化,实现了类似postgis的ST_Intersects等sql执行功能!        

2.实现代码

        无论问gpt4还是自己部署的ollama-qwen2:7b,一开始直接问大量数据相交处理,都给出的结果不太好,但是如果说具体sjoin函数,再详细说说,那结果还可以。如下是ollama-qwen2:7b给的代码:

# ollama-qwen2:7b 生成
import geopandas as gpd

'''
个人建议:
# 为确保CRS一致性,一开始都要设置成4326,然后统一投影成cgcs2000对应的epsg投影坐标系下面!
'''

# 加载点数据集,并为点创建缓冲区
point_gdf = gpd.read_file('path_to_point_data.shp')
buffer_distance = 0.5 # 缓冲距离
buffered_points = point_gdf.geometry.buffer(buffer_distance)
buffered_points.crs = 'epsg:4326'

# 加载线数据集(假设线的数据文件名和路径)
line_gdf = gpd.read_file('path_to_line_data.shp') 

# 使用sjoin函数进行空间连接,找出与点缓冲区相交的线
result_gdf = gpd.sjoin(line_gdf, buffered_points, how='left', op='intersects') 

# 保存结果到文件
result_gdf.to_file('output_shp.shp')

3.其它

        自己部署ollama,实现大模型编程自由,省的网络不好时不好问。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值