当前位置: 首页 > news >正文

Python 解析GIS的SHP文件

工作中需要处理一些GIS数据,在 Python 中解析地理信息系统 (GIS) 的 Shapefile (.shp) 文件通常可以通过 geopandas 库来完成。geopandas 是基于 pandas 的一个扩展库,它支持地理空间数据的操作和分析。

下面是一个简单的示例,展示如何使用 geopandas 读取并解析一个 Shapefile 文件:

  1. 首先确保已经安装了 geopandas

    pip install geopandas
    
  2. 使用 geopandas 读取 Shapefile 或压缩的 zip 文件:

import geopandas as gpd# 指定 Shapefile 的路径
file_path = './data/ne_10m_admin_0_countries.zip'# 读取 Shapefile
data = gpd.read_file(file_path)
protected_lands_area = gpd.read_file('./data/10m_cultural/ne_10m_parks_and_protected_lands_area.shp')# 显示数据的基本信息
print("Data columns:", data.columns)
print("Geometry type:", data.geometry.type)# 显示数据的前几行
print(data.head())

Data columns: Index(['featurecla', 'scalerank', 'LABELRANK', 'SOVEREIGNT', 'SOV_A3','ADM0_DIF', 'LEVEL', 'TYPE', 'TLC', 'ADMIN',...'FCLASS_TR', 'FCLASS_ID', 'FCLASS_PL', 'FCLASS_GR', 'FCLASS_IT','FCLASS_NL', 'FCLASS_SE', 'FCLASS_BD', 'FCLASS_UA', 'geometry'],dtype='object', length=169)
Geometry type: 0      MultiPolygon
1      MultiPolygon
2      MultiPolygon
3           Polygon
4      MultiPolygon...     
253    MultiPolygon
254         Polygon
255         Polygon
256         Polygon
257         Polygon
Length: 258, dtype: objectfeaturecla  scalerank  LABELRANK SOVEREIGNT SOV_A3  ADM0_DIF  LEVEL  \
0  Admin-0 country          0          2  Indonesia    IDN         0      2   
1  Admin-0 country          0          3   Malaysia    MYS         0      2   
2  Admin-0 country          0          2      Chile    CHL         0      2   
3  Admin-0 country          0          3    Bolivia    BOL         0      2   
4  Admin-0 country          0          2       Peru    PER         0      2   TYPE TLC      ADMIN  ... FCLASS_TR  FCLASS_ID FCLASS_PL  \
0  Sovereign country   1  Indonesia  ...      None       None      None   
1  Sovereign country   1   Malaysia  ...      None       None      None   
2  Sovereign country   1      Chile  ...      None       None      None   
3  Sovereign country   1    Bolivia  ...      None       None      None   
4  Sovereign country   1       Peru  ...      None       None      None   FCLASS_GR  FCLASS_IT FCLASS_NL FCLASS_SE  FCLASS_BD FCLASS_UA  \
0      None       None      None      None       None      None   
1      None       None      None      None       None      None   
2      None       None      None      None       None      None   
3      None       None      None      None       None      None   
4      None       None      None      None       None      None   geometry  
0  MULTIPOLYGON (((117.70361 4.16341, 117.70361 4...  
1  MULTIPOLYGON (((117.70361 4.16341, 117.69711 4...  
2  MULTIPOLYGON (((-69.51009 -17.50659, -69.50611...  
3  POLYGON ((-69.51009 -17.50659, -69.51009 -17.5...  
4  MULTIPOLYGON (((-69.51009 -17.50659, -69.63832...  [5 rows x 169 columns]
  1. 绘制地图

示例数据是全球地图和一些陆地保护区(美国的,红色区域),我们可以将两个数据叠加在一起绘制,代码如下:

import matplotlib.pyplot as plt# 绘制地图
fig, ax = plt.subplots(1, 1)
data.plot(ax=ax)
protected_lands_area.plot(ax=ax, color='red')
plt.show()

绘图

http://www.lryc.cn/news/425608.html

相关文章:

  • 大模型微调--文章3
  • 游戏测试中需求分析的本质
  • 2024零基础入行软件测试全网最全攻略
  • spring-boot-starter-quartz 自动化配置解析
  • DM8 数据库查询版本号以及授权到期时间SQL
  • 算法【Java】—— 双指针算法
  • 【Python快速入门和实践013】Python常用脚本-目标检测之按照类别数量划分数据集
  • C++ Primer 总结索引 | 第十八章:用于大型程序的工具
  • Python实现GAN(生成对抗网络)图像修复算法
  • java语言中的websocket
  • ASP.NET在线交流论坛管理系统
  • 【Kubernetes】身份认证与鉴权
  • 数据集与数据库:有什么区别?
  • BurpSuite
  • NetApp数据恢复—NetApp存储误删除文件如何恢复数据?
  • 基于springboot的医药管理系统
  • Android中的EventBus的用法
  • 梧桐数据库(WuTongDB):数据库在数据处理中是如何利用缓存机制的
  • C语言-数据类型
  • 左值引用、右值引用、移动构造
  • tekton通过ceph挂载node_modules的时候报错failed to execute command: copying dir: symlink
  • Xil_DCacheFlushRange的用法
  • k8s使用subpathexpr和hostpath分pod名字持久化日志
  • FChen的408学习日记--三次握手和四次握手
  • Unity技巧:轻松实现鼠标悬停文本时的动态变色效果
  • 谷歌账号活动异常,或者申诉回来以后需要手机验证的原因,以及验证手机号的错误操作和正确操作
  • System V IPC奥秘:解锁共享内存、消息队列与信号量的高效通信之路
  • 怎么将pdf转为ppt文件?pdf转ppt的8个方法
  • 【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task03 大咖项目分享 人话八股文Bakwaan_Buddy项目开发尝试
  • 如何在wordpress当中使用插件WP Coder(将html、css、javascript应用到wordpress上)