s啊打发十分

本文介绍了一个使用Python的pandas和geopandas库,通过逐块读取CSV和GeoJSON文件,提取经纬度信息,然后在GeoJSON文件中寻找距离给定点0.1公里内的点,最后将结果保存为新的GeoJSON文件的过程。
摘要由CSDN通过智能技术生成

import pandas as pd
import geopandas as gpd
from shapely.geometry import Point

# 读取CSV文件(文件A)并逐块处理
csv_file = "file_a.csv"
chunk_size = 10000  # 调整适当的块大小
result_gdf = gpd.GeoDataFrame(columns=["geometry"])

for chunk_a in pd.read_csv(csv_file, chunksize=chunk_size):
    # 读取GeoJSON文件(文件B)并逐块处理
    geojson_file = "file_b.geojson"
    gdf_b = gpd.read_file(geojson_file, chunksize=chunk_size)

    for index_a, row_a in chunk_a.iterrows():
        # 提取CSV文件中的经纬度信息
        lon, lat = row_a['longitude'], row_a['latitude']

        # 创建点对象
        point = Point(lon, lat)

        # 遍历GeoJSON文件中的每个块
        for chunk_b in gdf_b:
            # 找到GeoJSON文件中附近的点
            nearby_points = chunk_b[chunk_b.geometry.distance(point) < 0.1]  # 调整距离阈值

            # 将找到的附近点添加到结果GeoDataFrame中
            result_gdf = pd.concat([result_gdf, nearby_points])

# 将结果保存为新的GeoJSON文件
result_gdf.to_file("result.geojson", driver="GeoJSON")

print("处理完成,结果保存在 result.geojson")
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值