shapefile是GIS中一种数据类型,在ArcGIS中被称为要素类(Feature Classes),主要包括点(point)、线(polyline)和多边形(polygon)。

解析geopandas文件的方式很多,本文介绍两个 pyshp和geopandas。

1.pyshp(Python Shapefile Library)

是一个Python库,用于在Python脚本中对ArcGIS中的Shapefile文件(.shp,.shx,.dbf等格式)进行读写操作。

安装:
pip install pyshp
解析:
Reader类, 对shapefile文件读取;Editor类,对shapefile文件编辑;Writer类,对shapefile文件写操作

每个文件包含 "几何数据"(Geometry)和"属性数据"(Attribute Record) ,两个文件数据一一对应。

import shapefile
tpath = 'D:\\work2017\\china_train\\china-shp\\train\\rai_4m.shp'
sf = shapefile.Reader(tpath)
shapes = sf.shapes()

每个几何对象包含有4个属性:数据类型(shapeType),代表该"几何数据"对象的数据类型(点,shapeType=1,线,shapeType=3,多边形,shapeType=5);数据范围(bbox),只针对多点数据,代表该"几何数据"对象的边界范围;数据块(parts),只针对线或者多边形,代表该"几何数据"对象各个块的第一个点的索引;点集(points),代表该"几何数据"对象的所有点坐标。 "属性数据"即每个"几何数据"对象在属性表中的对应项。

属性数据就是一个二维数据

recds = sf.records()
for i in recds:print i[9]

解析后一行属性的结果:

<type 'list'>: [2.4675391, 9.0042706, 2, 3, '30000', '232723', '\xc4\xae\xba\xd3\xcf\xd8', '23', '27', '23', 52.933796, 122.69707]

2. geopandas

它是以pandas的模式对 shp文件的封装,使用起来更方便。

安装:conda install -c conda-forge geopandas

依赖库需要c++环境,如果还是用 pip安装,可能会安装不成功。

解析与展示:

 %matplotlib  inline
import shapely, geopandas, fiona
import seaborn as sns
from fiona.crs import from_epsg,from_stringtpath = 'D:\\work2017\\china_train\\china-shp\\train\\rai_4m.shp'
shp_df = geopandas.GeoDataFrame.from_file(tpath,encoding = 'gb18030')
shp_df.head()
shp_df.plot()

解析后数据:

展示图形:

参考:

1.Using geopandas on Windows
http://geoffboeing.com/2014/09/using-geopandas-windows/

2.shapefile+matplotlib
https://stackoverflow.com/questions/15968762/shapefile-and-matplotlib-plot-polygon-collection-of-shapefile-coordinates

3.用Python做地图投影
http://www.jianshu.com/p/241546a36a93

shapefile文件(shp)读取相关推荐

  1. ncl 添加点shp文件_一:python读取shapefile文件

    使用geopandas读取shapefile格式的矢量文件 包括shapefile文件的读取.修改.保存 import geopandas as gpd # 导入包 segpath = r" ...

  2. Java使用GeoTools轻松读取shapefile文件内容

    日常GIS开发中难免会将一些shapefile文件数据读取存入数据库中,很多人第一想到的就是使用GeoTools操作和显示地图的开源Java 代码库. 生活捉弄人,因为项目需要对于从来没有做过GIS相 ...

  3. .shp文件的存储结构是怎样的?底层读取shapefile文件

    .shp文件的存储结构是怎样的?底层读取shapefile文件 基础知识 shp的存储结构 python 字节流读取Shp文件 基础知识 大家都比较熟悉shp文件,它是GIS软件可以读取的矢量文件.但 ...

  4. C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件

    这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...

  5. shp文件中polyline是什么_shp文件的读取

    首先了解一下shp文件的一些简单知识 Shapefile文件是美国环境系统研究所(ESRI)所研制的GIS文件系统格式文件,是工业标准的矢量数据文件. Shapefile将空间特征表中的非拓扑几何对象 ...

  6. SHP(shapefile)文件详细格式介绍

    shape文件由ESRI开发,一个ESRI(Environmental Systems Research Institute)的shape文件包括一个主文件,一个索引文件,和一个dBASE表.其中主文 ...

  7. Shapefile文件读取-文件头

    1 介绍 在Shapefile文件格式介绍一文中我们介绍了shapefile文件的结构组成,本文主要介绍如何读取shapefile文件头部分,使用的语言是c++. 2 文件头结构 Shapefile文 ...

  8. shapefile java_JAVA读取SHAPEFILE文件的源代码.pdf

    java读取ShapeFile文件的源代码 时间:2010-04-20 22:20来源: 作者:giser 点击: 70次 java读取ShapeFile文件的源代码 java读取ShapeFile文 ...

  9. C#读取SHAPEFILE文件总结0--大纲

    SHAPEFILE文件是地图文件的祖宗,学习怎么读取当然对学习很有裨益.在网上找了几篇资料,主要是百度文库里面看到个C#读取shapefile的DOC,就跟着抄代码学习一下. 现在刚好把point类型 ...

最新文章

  1. python3.7.2下载-Python 3.7.2和3.6.8版本发布下载,附更新说明
  2. Android应用开发-快速入门
  3. 关系数据 规范化的理解
  4. LOJ#2542. 「PKUWC2018」随机游走
  5. python灰度图像为什么显示成彩色的_python opencv image 怎么变成伪彩色
  6. 深入了解Oracle数据字典升级脚本catupgrd.sql调用过程
  7. (附源码)计算机毕业设计SSM餐厅订餐系统
  8. 使用ffmpeg转换webm格式到MP4格式
  9. 视频自动生成字幕(免费版)
  10. ardl模型stata命令_计量经济学《手把手教你EViews软件操作教程与案例分析》
  11. 使用数字滤波器处理音频噪声(附Matlab程序)
  12. js用blob下载pdf文件打开后中文乱码
  13. a1708硬盘转接口_macbook pro2017 a1708转接卡更换大容量硬盘,Apple/苹果笔记本电脑_好文分享_优购 - 荐优,购适...
  14. 怎么上传云班课的计算机作业,云班课作业怎么提交_作业提交方法_咖绿茵手游站...
  15. 接口测试常见面试题(含答案)
  16. 微信支付 postman_微信刷脸支付补贴政策有哪些?
  17. linux安装GPU显卡驱动、CUDA和cuDNN库
  18. 免费开源的箱包制造行业ERP管理系统介绍
  19. 人工智能-强化学习-算法:Critic 【用于评价一个 Actor/Policy π】--> Q-Learning【用于训练出来一个最优 Actor/Policy π,擅长处理离散型 actions】
  20. 仿乐享微信源码分享,微信管家升级版最新版本

热门文章

  1. 【Redis核心原理和应用实践】应用 2:缓兵之计 —— 延时队列
  2. 怎样成长为更好的自己--《靠谱:顶尖咨询师教你的工作基本功》
  3. 家庭财务管理系统(C++面向对象课程设计附课设报告)
  4. 2021年T电梯修理新版试题及T电梯修理模拟考试
  5. 微信订阅号之客服消息接口回复
  6. [闲言]小城故事之小城之晨
  7. 系统学习做汉堡_您如何学习策略设计模式? 做一个汉堡!
  8. DockerCon 2016 西雅图即将到来,8大主题详尽解读
  9. 丰巢快递柜收费,究竟挑动了我们哪根神经?
  10. 奕泽linux升级,想升级音响丰田奕泽告诉你怎么做