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

一、内容提示


        前边几篇文章,介绍了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

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

        python工具箱截图如下:

图片

2.1 MDB2GDB

将指定的mdb转出为gdb

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

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

图片

​录屏如下:

arcmap_mdb2gdb

2.2 MutilMDB2GDB

批量将mdb转出为gdb

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

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

图片

​录屏如下:

arcmap_muiltmdb2gdb

三、在ArcGIS Pro中将MDB转出为SHP或GDB

3.1 MDB转GDB

将指定的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倍左右。

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

图片

​录屏如下:

mdb2gdb

② mdb批量转gdb


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

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

图片

​录屏如下:

mdb2gdb批量

 

3.2 MDB转SHP

将指定的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


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

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

图片

​录屏如下:

mdb转shp批量

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


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

图片

  • 35
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

craybb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值