【ArcGIS 脚本工具】在ArcPro中实现mdb转gdb

ArcGIS Pro作为主力使用很久了,但是ArcMap也从来没有卸载过。

要问为什么,就是还需要ArcMap来读写mdb数据库,Pro是不支持读写mdb数据库的。

我之前尝试过不借助ArcMap把mdb转成gdb,奈何技术太菜搞不定。

直到我看到了公众号【GIS探案】 大佬的公众号文章。

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

图片

当场就跪了加三连。

但是探案大佬没有一步到位将mdb转到gdb,只到shp还是有些不足。

①mdb数据库的要素数据集这一层没有保留。

②转换后要素类的别名和字段别名丢失,并且如果mdb的要素类的字段名超过10个字符,转换后的gdb的要素类的字段名会被截断。

③mdb数据库内的独立表未转换到gdb内。

④纯代码不方便操作。

因此,在探案大佬的基础上,小编续写了部分代码,并制作了这个 mdb转gdb(ArcPro) 脚本工具,它可以不通过ArcMap就实现mdb转gdb,并改善了上面说的4条不足。

工具界面

图片

工具界面

工具演示

工具说明

1、初次运行需要联网以安装fiona库。如果有梯子最好断开,否则可能安装失败。

2、只能转换点、线、面要素类和独立表,其他数据类型没有测试。

3、线、面要素类在转换过程中形状会出现细微变化,对拓扑要求很高的话谨慎使用。

工具获取

请在【学学GIS】公众号后台发送数据库转换Pro版,按提示即可获取。

请注意,该脚本工具仅适用于ArcPro,ArcMap用户可使用下面的工具,转换效果更好,并可以双向转换。

【更新】mdb与gdb互转 脚本工具

往期回顾

【合集】ArcGIS Pro脚本工具大放送

【ArcGIS 脚本工具】点要素XY坐标标注

【ArcGIS 脚本工具】修改多个布局的同一文本元素

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用ArcPy模块来编写一个Python脚本实现批量合并多个mdbgdb库的操作。以下是一个基本的脚本示例: ```python import arcpy import os # 设置工作空间和输出gdb路径 workspace = r"C:\data" output_gdb = r"C:\output.gdb" # 获取所有的mdb文件 mdb_files = arcpy.ListFiles("*.mdb") # 创建输出gdb,如果已存在则删除 if arcpy.Exists(output_gdb): arcpy.Delete_management(output_gdb) arcpy.CreateFileGDB_management(os.path.dirname(output_gdb), os.path.basename(output_gdb)) # 批量合并mdbgdb for mdb_file in mdb_files: mdb_path = os.path.join(workspace, mdb_file) feature_datasets = arcpy.ListDatasets("*", "Feature") for fd in feature_datasets: fd_path = os.path.join(mdb_path, fd) arcpy.FeatureClassToGeodatabase_conversion(fd_path, output_gdb) tables = arcpy.ListTables() for table in tables: table_path = os.path.join(mdb_path, table) arcpy.TableToGeodatabase_conversion(table_path, output_gdb) print("合并完成") ``` 在上述示例,我们首先设置了工作空间和输出gdb路径。然后,我们使用arcpy.ListFiles函数来获取所有的mdb文件。接下来,我们创建了输出gdb并删除了已存在的同名gdb。随后,我们使用arcpy.ListDatasets来获取所有的特征数据集,并使用arcpy.FeatureClassToGeodatabase_conversion函数将特征类拷贝到输出gdb。类似地,我们使用arcpy.ListTables来获取所有的表,并使用arcpy.TableToGeodatabase_conversion函数将表拷贝到输出gdb。最后,我们输出一个完成的消息。 注意:示例的路径和文件名需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值