数据来源:全国地理信息资源目录服务系统 https://www.webmap.cn

  • 前言
    • 1 解压数据
    • 2 数据分类汇总
    • 1.引入库
    • 3.数据合并

前言

如果需要获取国家标准的政区数据,个人推荐可以使用全国地理信息资源目录服务系统进行搜索及下载。同时,由于该网站的资源为分幅压缩的地理空间数据库文件,如果要进行大范围研究就显得不太方便。故本文将以网站公布的比例尺为1:100万的全国基础地理数据库为例,使用Python将数据进行解压、分类、合并等预处理,以帮助大家更方便地使用该数据。

数据来源:全国地理信息资源目录服务系统
https://www.webmap.cn


提示:以下是本篇文章正文内容,下面案例可供参考

1 解压数据

下载到的全国基础地理数据库为 zip 压缩包,如果数据文件较多,推荐使用 Python 的 zipfile 第三方模块进行批量解压,示例代码如下所示:


import os
import zipfilefor zip_file in os.listdir("../Material/2017版全国基础地理数据库压缩数据包"):with zipfile.ZipFile(f"../Material/2017版全国基础地理数据库压缩数据包/{zip_file}", "r") as zip_obj:# extractall:解压全部文件zip_obj.extractall("../Material/2017版全国基础地理数据库")print(f"{zip_file}  解压成功!")

2 数据分类汇总

在网站中下载得到的全国基础地理数据库为分幅保存的,而这一步骤就是将所有数据库中的要素类提取出来,并按照数据要素图层类别进行重新分类。

源数据库中所有要素类均以要素对应代码命名,为便于我们使用,我们还需要知道代码对应的图层类型。经过查阅官网文档,可知其对应情况如下:

数据分层 数据编号
水系(面) HYDA
水系(线) HYDL
水系(点) HYDP
居民地(面)) RESA
居民地(点) RESP
铁路 LRRL
公路 LRDL
行政境界(面) BOUA
行政境界(线) BOUL
行政境界(点) BOUP
居民地地名(点) AGNP
自然地名(点) AANP

示例代码如下所示:

1.引入库

import os
import arcpy
import openpyxldict_code_name = dict()
# 成果数据组织.xlsx 为保存有图层类型及其代码的Execl表
workbook = openpyxl.load_workbook("../Material/成果数据组织.xlsx")
sheet = workbook.active
# 3, 15:Execl表中第3-14行数据为图层类型及其代码,随个人数据表的改变而改变
for i in range(3, 15):# B列存储图层类型,C列存储要素代码data_name = sheet["B" + str(i)].valuedata_code = sheet["C" + str(i)].valuedict_code_name[data_code] = data_namefor code in dict_code_name:arcpy.CreateFileGDB_management("../Material/2017版全国基础地理数据库(按数据图层分类)",f"{dict_code_name[code]}.gdb")print(f"{dict_code_name[code]}.gdb  创建成功!")for gdb in os.listdir("../Material/2017版全国基础地理数据库"):arcpy.env.workspace = f"../Material/2017版全国基础地理数据库/{gdb}"for feature in arcpy.ListFeatureClasses():inFeatures = featureoutLocation = os.path.join("../Material/2017版全国基础地理数据库(按数据图层分类)",f"{dict_code_name[feature]}.gdb")outFeatureClass = gdb.split(".")[0] + "_" + featurearcpy.FeatureClassToFeatureClass_conversion(inFeatures, outLocation, outFeatureClass)print(f"{outFeatureClass}  导出成功!")

3.数据合并

重新进行分类汇总之后,每一类要素类都各自保存在了一个数据库中,而同一个数据库中,可能存在很多分幅后的数据。这一步,就是通过Merge函数,将分幅后的数据进行合并。合并后,数据库中的所有要素类都将合并为一个要素类,示例代码如下所示:):

import os
import arcpyarcpy.CreateFileGDB_management("../Material", "2017版全国基础地理数据库(分类合并).gdb")
for gdb in os.listdir("../Material/2017版全国基础地理数据库(按数据图层分类)"):arcpy.env.workspace = f"../Material/2017版全国基础地理数据库(按数据图层分类)/{gdb}"arcpy.Merge_management(arcpy.ListFeatureClasses(),f"../Material/2017版全国基础地理数据库(分类合并).gdb/{gdb.split('.')[0]}")print(f"{gdb.split('.')[0]}  合并完成!")

注意:在完成数据合并后,还可以对数据进行其他处理,例如使用Dissolve函数按照指定要素字段进行数据融合等。

全国基础地理数据库数据预处理相关推荐

  1. 近红外光谱基础知识—数据预处理

    文章目录 前言 一.近红外光谱是什么? 二.近红外光谱的数据处理流程 2.1 整体流程 三. 数据预处理算法 2.2.1 平滑处理(Smoothing) 2.2.2 位移校正(Offset corre ...

  2. 全国矢量shp数据:行政区划,县界,道路,河流....都可下载

    前段时间我们分享过一次全国矢量数据,包含道路,水系,铁路等等 不过第二天我们就把文章删除了 以至于后台不少留言问为啥删除 主要原因是数据精度稍微有点差(部分数据偏差过大) 不过 今天我们来重新分享 这 ...

  3. 中国基础地理数据(1951-2023)含水系、气象站shp、乡镇行政shp、DEM等 免费下载

    中国大都市群基础地理数据(1951-2023) 简介 大都市区基础地理数据(1951-2023)包括全国和京津冀.长三角和大湾区三大城市群的1比25万三级水系流域数据集.全国基础地理数据库1比100万 ...

  4. conda安装 sklearn_十分钟上手sklearn 安装,获取数据,数据预处理

    sklearn是机器学习中一个常用的python第三方模块,对常用的机器学习算法进行了封装 其中包括: 1.分类(Classification) 2.回归(Regression) 3.聚类(Clust ...

  5. 【ArcGIS风暴】全国1:100万基础地理数据库获取及ArcGIS图幅完美拼接---以甘肃省为例

    在日常工作中,如第三次全国国土调查.不动产登记等,我们总需要对图斑.线状等数据进行数据分幅.图幅拼接等操作.另外,日常学习工作中,无论是制图还是进行分析,都不可避免的需要使用一些基础地理数据,像行政边 ...

  6. 【机器学习基础】Python数据预处理:彻底理解标准化和归一化

    数据预处理 数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析. 常用的方法有两 ...

  7. python部分引入total值的问题_Python数据分析基础与过程综述,关键数据预处理异常点的发现与处理,python,及,流程,回顾,重点,之,值...

    一. python数据分析基础库的导入 基本是固定搭配 import numpy as np #科学计算基础库,多维数组对象ndarray import pandas as pd #数据处理库,Dat ...

  8. 数据集准备及数据预处理_数据理解和准备–数据集的基础工作

    数据集准备及数据预处理 In my previous four articles, I worked on a single variable of a dataset. I have shown e ...

  9. 数据分析问题(异常值识别)中数据预处理部分流程(含2022年全国服务外包大赛实例)

      博主个人理解的数据预处理主要包括 个方面:读取文件 => 数据概览 => 缺失值填补 => 数据分布预览 => 衍生特征设计.这套流程在完成异常值识别时作为数据预处理时没有 ...

  10. python必备基础代码-【Python基础系列】常见的数据预处理方法(附代码)

    本文简单介绍python中一些常见的数据预处理,包括数据加载.缺失值处理.异常值处理.描述性变量转换为数值型.训练集测试集划分.数据规范化. 1. 加载数据 1.1 数据读取 数据格式有很多,介绍常见 ...

最新文章

  1. 单向链表的建立和简单的增删改查
  2. CAN笔记(14) STM32-M4 寄存器
  3. uFrame近况(2016年4月8日更新)
  4. java编译可执行文件_Java编译器完成但没有创建可执行文件?
  5. 车油表灯亮了,还能开多久?
  6. python3.6爬淘宝信息
  7. 关于SQLserve安装中出现“启用windows功能NetFx3时出错“
  8. 软件智能:aaas系统中的数学程序与技术服务之4 序篇之 综述2 词典lexicon
  9. 学海无涯!java全栈工程师面试题
  10. 2010年JNCIA-FWV、JNCIS-FWV教学视频
  11. 简述python 的模块的分析
  12. Linux系统管理命令(1)accton的使用
  13. ceph 代码分析 读_Ceph代码分析
  14. 跳马问题C++递归调用
  15. bootloader介绍
  16. 搭建免费私人服务器---用你的笔记本做服务器
  17. 刀马旦计算机音乐,刀马旦 MIDI File Download :: MidiShow
  18. Excel快速合并多行数据
  19. 记一次计算机课作文,记一次课堂活动作文500字
  20. CMake Error: Could not find a package configuration file provided by “serial“

热门文章

  1. QComboBox下拉框给选项增加删除按钮
  2. 毕设教程系列 - FCM模糊聚类算法
  3. 官方最新linux版idea工具ideaIU-2020.1.1.tar.gz
  4. node.js安装和vue全局安装教程
  5. 转载---美团外卖系统架构演进与稳定性的探索
  6. 今天,我想和你聊聊读研这件事
  7. mac环境变量配置文件加载优先级
  8. gmsk的matlab仿真,MSKGMSK 导师传给我的关于MSK和GMSK的一些相关MATLAB仿真源码 - 下载 - 搜珍网...
  9. 一个炫酷的个人网站带后台
  10. 驱动英特尔核显,让黑苹果流畅运行「OpenCore专门篇」