如何利用python读取shp文件并且读取后选取指定省份? 您所在的位置:网站首页 python怎么得到文件所在路径信息 如何利用python读取shp文件并且读取后选取指定省份?

如何利用python读取shp文件并且读取后选取指定省份?

2023-11-11 19:54| 来源: 网络整理| 查看: 265

在我们的学习过程中,不可避免要使用到shp文件,但是shp文件有的时候实在是太复杂啦,刚开始我实在是害怕用到shp文件,因为有些文件可能包含很多地区的边界线,也可能包含省界的边界线,可能包含的是县级的边界线,其中包含的信息很多,但是我们可能需要的只是一个省或者一个地区范围内的shp文件,这种情况我们应该怎么去从大的shp文件中把自己想要的shp文件中拆出来呢?

这里主要使用的模块是shapefile,shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Classes),其中的要素主要包括点(point)、线(polyline)和多边形(polygon)。Python脚本是ArcGIS官方推荐的脚本语言,通过Python脚本能够很方便的调用ArcGIS中的各种工具和函数批量完成所需操作。本文所使用的这个库(Python Shapefile Library)是一个Python库,用于在Python脚本中对ArcGIS中的Shapefile文件(.shp,.shx,.dbf等格式)进行读写操作。

接下来看看我们的代码吧!首先导入我们需要的一些模块:

import shapefile import geopandas as gpd from matplotlib import pyplot as plt

 接下来,我们读取下载的shp文件中的dbf,这里的shp文件能够满足我们日常需要使用的中国范围内的省界啦,如果有需要的话可以私信我哦!

files=shapefile.Reader(r'C:\Users\sha\Desktop\study\中国省级行政区shp\省界\省界_region.dbf',encoding='gbk')

接下来我们对我们的这个shp包含的东西进行一个查看:

records=files.records() # 输入records可以查看shp的border的每组代表的含义

这样我们就可以看出,每个省的边界的代码是多少啦,在前面的数值就是在这个列表中对应的序号。

接下来进行读取:(这里就需要对shp文件压缩包中也进行读取哦)

file=shapefile.Reader(r'C:\Users\sha\Desktop\study\中国省级行政区shp\省界\省界_region.shp') border_shape = file # 通过创建reader类的对象进行shapefile文件的读取 # # border_points border = border_shape.shapes() # # .shapes()读取几何数据信息,存放着该文件中所有对象的 几何数据 # # border是一个列表

这样,我们可以将border读出来成为一个列表,然后我们查看我们需要的是哪个省的,然后读取这个border中对应的那个省:

border_points = border[30].points print(border_points)# 返回第1个对象的所有点坐标

读取出来后进行代码的绘画:

x, y = zip(*border_points) # x=(x1,x2,x3,…) # y=(y1,y2,y3,…) fig, ax = plt.subplots() # 生成一张图和一张子图 # plt.plot(x,y,'k-') # x横坐标 y纵坐标 ‘k-’线性为黑色 plt.plot(x, y, color='#6666ff', label='fungis') # x横坐标 y纵坐标 ‘k-’线性为黑色 ax.axis('equal')

 这样就好啦,比如这里我绘画的是重庆市的,所以我们选取的是代码30。效果图就是这样的:

初次见面,请多关照!希望能解决你的一点小烦恼哦!

一个也也也也在努力学习python的ocean小菜鸟!

水平有限,欢迎指正!!!

欢迎评论、收藏、点赞、转发、关注。

关注我不后悔,记录学习进步的过程~~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有