在之前博客中记录了如何获取省界经纬度数据
下面介绍如何获取城市区域的边界经纬度数据,具体思路同上一篇博客
https://blog.csdn.net/weixin_43718675/article/details/93410875

import shapefile
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib
import matplotlib.pyplot as plt
import os
import h5pyfile=shapefile.Reader('gadm36_CHN_shp/gadm36_CHN_2.shp')  #读取城市.shp文件
shapes=file.shapes()   #获取point
records=file.records() #获取省-市名称

打开records文件,如下

pro_city_points=[] #建立城市边界列表
pro_city_names=[] #建立城市名称列表
pro_names=[]  #建立省份列表for i in range(len(shapes)):points=shapes[i].points #h获取经纬度数据    pro_name=file.records()[i][3]  #获取省名称city_name=file.records()[i][6]  #获取市区名称city_ch_name=file.records()[i][8]  #获取市区中文名称pro_city_name=[pro_name,city_name,city_ch_name]lon =[]  lat  =[] #将每个tuple的lon和lat组合起来[lon.append(points[i][0]) for i in range(len(points))]  [lat.append(points[i][1]) for i in range(len(points))]   lon=np.array(lon).reshape(-1,1)lat=np.array(lat).reshape(-1,1) loc=np.concatenate((lon,lat),axis=1)pro_city_points.append(loc)pro_city_names.append(pro_city_name)pro_names.append(pro_name)pro_names=list(set(pro_names))  #使用集合去掉重复的省名称

打开,如下图

将各个城市的边界数据保存为hdf文件,

file_name='province_city_boundary_lon_lat.hdf'  #保存的目标文件名和路径
f=h5py.File(file_name,mode='w')  #创建一个hdf文件for pro_name in pro_names[0:]:#每一个省份创建一个群组 pro = f.create_group(pro_name)for pro_city_name,points in zip(pro_city_names,pro_city_points):#将对应省份的城市的放在一个group下if pro_city_name[0]==pro_name:  city=pro.create_group(pro_city_name[1])city['longitude']=points[:,0]city['latitude']=points[:,1]f.close() #写入完成后,记得关掉。

生成结果如下:

下载使用链接为:
http://bbs.06climate.com/forum.php?mod=viewthread&tid=92137&extra=
如果没有金币下载,可以私聊我,我发给你

基于python的pyshp库读取.shp数据来获取中国城市边界的经纬度数据,并生成hdf文件相关推荐

  1. 下载地图包,并基于python的pyshp库读取.shp数据来获取中国省界的经纬度数据

    目前画地图的软件都能很方便的调用省界数据,但是如果想要单独对省界做一些个性化设置,如设置宽度.样式.颜色什么的,就需要将省界数据单独拿出来进行设置了. 软件在画地图时,描述的边界都是一些列经纬度格点的 ...

  2. python操作文件的库_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefil ...

  3. python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.reader(" ...

  4. python中pyshp_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.Reader(" ...

  5. Python 基于Python从mysql表读取千万数据实践

    基于Python 从mysql表读取千万数据实践   by:授客 QQ:1033553122 场景:   有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_b ...

  6. python人脸识别库_基于Python的face_recognition库实现人脸识别

    Python Python开发 Python语言 基于Python的face_recognition库实现人脸识别 一.face_recognition库简介 face_recognition是Pyt ...

  7. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库

    第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.cs ...

  8. 基于python的npcap库与dpkt库实现抓包及存储

    基于python的npcap库与dpkt库实现抓包及存储 import pcap import dpkt import socket import sys import getopt import o ...

  9. Python用pydicom库读取dicom文件

    Python用pydicom库读取dicom文件并调用 方法1:通过group.element读取 方法2:通过tag读取 方法3:get()方法 通用 import pydicompath = 'x ...

最新文章

  1. postman指定User-Agent的header无效
  2. 算法篇 - 二叉搜索树
  3. Android中实现照片滑动时左右进出的动画的xml代码
  4. HelloMyBLOG!!!
  5. Linux--内核Uevent事件机制 与 Input子系统【转】
  6. sql server 多条记录数据合并为一条_面试必备sql知识点——MySQL基础
  7. mysql每一行数据类型_MySQL_MySQL编程中的6个实用技巧,每一行命令都是用分号(;)作为 - phpStudy...
  8. android dialog转layout
  9. 开机LOGO与动画修改
  10. CAD的dwg格式转换为PDF
  11. 数据结构:二叉树的非递归遍历
  12. P2141 珠心算测验
  13. 拓嘉启远:拼多多前期没有流量如何补充
  14. Markdown入门指南 --写博客,word必备技术
  15. 用 Python 玩视频剪辑 让生活简易化
  16. 查看电脑可支持最大内存容量的方法
  17. kernel核函数是什么、用来干什么 及其详细推导
  18. 3D模型 在Android Studio 中的应用
  19. PDF防传播防复制一机一码制作教程版权在我手
  20. 5.3上午 外教课 听力

热门文章

  1. 猎户座-逻辑可视化开发模式实践
  2. 解决localhost和IP访问在IE内核浏览器中访问不一致的办法
  3. Nginx proxy_set_header 理解
  4. python手势识别系统_Face++ API实现手势识别系统设计
  5. 743.网络延迟时间
  6. 遥感影像计算机解译各种方法,遥感信息提取方法分类 - 高分一号、高分二号卫星查询遥感数据购买 - 新闻资讯 - 遥感卫星影像数据查询中心-北京揽宇方圆-购买高分卫星影像...
  7. PDF杂谈一 PDF对象流
  8. MT41K512M16VRP-107 AIT:P内存颗粒D9ZWM
  9. Jedis+JedisPool+JedisPoolConfig:完美“掌控“Redis
  10. JavaScript的关键字var、let、const三者的区别