推广 热搜: page  数据  小红  红书  考试  论文  数据分析  关键词  哪些  搜索 

自定义Python工具箱实现mdb转出为shp或gdb格式----终章(工具免费)

   日期:2024-12-25     移动:https://sicmodule.kub2b.com/mobile/quote/12723.html

        前边几篇文章,介绍了mdb地理数据库结构解析、mdb转出为shp示例,以及mdb转为gdb的几种技术路线探讨,并未对mdb转出为shp、或gdb格式进行完整实现。

        为了方便使用,并支持更加复杂的使用场景,小编已将前边几篇文章中的内容进行集成,将mdb数据转出为shp或gdb格式的功能封装为Python工具箱,并分别在ArcMap10.8.1和ArcGIS Pro3.1中进行使用演示。

        (1)在ArcMap中将mdb(批量)转出为gdb

        (2)在ArcGIS Pro中将mdb(批量)转出为gdb或shp,开源实现

        (3)使用方便,在目录树中展开即可使用,不需要再折腾环境。

        MDB转出为GDB,内容比较多,每一篇文章的内容篇幅都很长,希望对大家有帮助。

(1) mdb(个人地理数据库)转shape file其实并不简单

(2) mdb转gdb实现过程介绍(1)mdb地理数据库结构解析和gdb库的创建

(3)mdb转gdb实现过程介绍(2)三种方式实现GDB数据库的读、写,并将实现方式与ArcGIS环境共存配置


 

        在ArcMap中将mdb(批量)转出为gdb,难度不大,使用arcpy很容易实现mdb数据结构的解析、图层创建以及数据的复制等。唯一的缺点就是转出的效率不高,速度较慢。

        python工具箱截图如下

将指定的mdb转出为gdb

        ArcMap毕竟是原生支持mdb格式,mdb中的关系类、表、注记类等都能很好的支持。为什么单独提到关系类、表、注记类呢?因为在开源实现时,会碰到很多问题,后续将进行介绍。

        工具使用过程和截图如下图

​录屏如下

批量将mdb转出为gdb

        递归指定文件目录,将文件下的所有mdb数据转出为gdb。支持将gdb输出在mdb当前所在位置或指定输出位置。

        工具使用过程和截图如下图

​录屏如下

将指定的mdb转出为gdb

        这部分是本文分享的重点。由于ArcGIS Pro不再支持mdb格式的地理数据,给仍存留mdb数据,或收集到mdb数据将如何在pro中使用的单位或部门带来了很多不便。

        而对于热爱技术,喜欢使用开源或第三方库实现一些GIS小工具的小伙伴,能否不依赖于arcpy,实现mdb、gdb数据的读写,同样倍感困惑(至少小编之前就为此苦恼)。

        python工具箱截图如下

① mdb转gdb


        在实现mdb转gdb的过程汇总,大概可以分为三个步骤

        一是解析mdb结构

        二是复制一个与mdb结构一致的gdb

        三是将mdb中的数据写入gdb中。

        对于第一步,解析mdb结构。小编使用的是pyodbc库,其只能解析要素数据集、要素类和表,所以,小编的代码只支持这三类数据结构的解析、创建和读写(一般来说,够用了)。

        对于第二步,复制一个与mdb结构一致的gdb。小编使用ogr实现,碰到的困难主要是创建数据集(开源中没有数据集的概念)。

        对于第三步,将mdb中的数据写入gdb中。主要是字段类型之间的一些对应关系,一开始很担心写入效率,但比arcmap中快5倍左右。

        工具使用过程和截图如下图

​录屏如下

② mdb批量转gdb


        递归指定文件目录,将文件下的所有mdb数据转出为gdb。支持将gdb输出在mdb当前所在位置或指定输出位置。

        工具使用过程和截图如下图

​录屏如下

 

将指定的mdb转出为shp

① mdb转shp


        在ArcMap中,就没有写mdb转shp的功能,感觉意义不大,本身ArcMap支持mdb。但在Pro中,或基于技术研究的冲动,mdb转shp是很有必要的。这里的一个困难,是导出mdb中的表,无论是创建dbf还是将数据写入dbf,都有些麻烦。至于字段名长度上,就没有什么纠结的了,无论是shp还是dbf,都不能超过10个字符。但是Esri对dbf进行了重写,字段长度是没有10个字符的限制的。

        工具使用过程和截图如下图

​录屏如下

②mdb批量转shp


        递归指定文件目录,将文件下的所有mdb数据转出为shp。支持将shp文件输出在mdb当前所在位置或指定输出位置。

        工具使用过程和截图如下图

​录屏如下

有需要工具的,按下图操作。私信关键词“mdb数据转出”免费获取。


        每一篇文章的背后都凝聚了很多心血和努力,如果您觉得这些内容对您有帮助或启发,请考虑转发、关注。这不仅是对我工作的肯定,也会帮助我继续创作更多有价值的内容。谢谢大家的支持

本文地址:https://sicmodule.kub2b.com/quote/12723.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号