自定义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数据转出”免费获取。


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

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769748.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch】Elasticsearch动态映射与静态映射详解

文章目录 📑前言一、Elasticsearch 映射概述1.1 什么是映射?1.2 映射的分类 二、动态映射2.1 动态映射的定义2.2 动态映射的优点2.3 动态映射的缺点2.4 动态映射的应用场景2.5 动态映射的配置示例 三、静态映射3.1 静态映射的定义3.2 静态映射的优点3.3 …

进阶测开日常积累 —— 性能测试!

背景: 这次来解释一下,为什么我那么多回答都不建议大家花太多时间去学性能,建议都是简尝即可呢~具体看正文,说一下性能测试相关的东西~就好了 对于新手太不友好了,所以别花这个时间~~而且很多大多中小企业&#xff0…

vue3单个页面进行防抖节流

防抖 <template><button id"submitButton" ref"submitButton">GET</button> </template><script lang"ts" setup> import { ref, onMounted } from vue;// 防抖函数 function debounce(func: () > void, dela…

企业出海的浪潮下,如何利用亚马逊云(AWS)更好地应对?

在全球化的浪潮下&#xff0c;越来越多的企业开始将目光投向国际市场。在这个数字化时代&#xff0c;云计算技术成为企业出海的必备利器之一。AWS云作为全球领先的云服务提供商&#xff0c;凭借其卓越的性能和完善的服务体系&#xff0c;成为众多企业出海的首选。 一、出海为什…

【DataSophon】DataSophon1.2.1服务组件开启 kerberos

目录 一、DataSophon是什么 1.1 DataSophon概述 1.2 架构概览 1.3 设计思想 二、集成组件 三、环境准备 四、安装kerberos服务 4.1 Zookeeper 4.2 HDFS 4.3 HBase 4.4 YARN 4.5 hive 【DataSophon】大数据管理平台DataSophon-1.2.1安装部署详细流程-CSDN博客 【Da…

什么是未授权访问漏洞?Hadoop Redis靶场实战——Vulfocus服务攻防

什么是未授权访问漏洞&#xff1f;Hadoop & Redis靶场实战——Vulfocus服务攻防 一、介绍 未授权访问&#xff0c;也称为未经授权的访问或非法访问&#xff0c;是指在没有得到适当权限或授权的情况下&#xff0c;个人或系统访问了网络、计算机、数据库、文件、应用程序或…

《安富莱嵌入式周报》第339期:单片机运行苹果早期Mac系统模拟器,2GHz示波器有源探头,下一代矩阵开关面包板,卡片式声音分贝器,HP经典示波器,ReRAM

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版 https://www.bilibili.com/video/BV1Kf421Q7Lh 《安富莱嵌入式周报》第339期&#xff1a;单片机运行苹果早期Ma…

用python画蜡笔小新

代码地址: https://pan.quark.cn/s/6ae646d2fef3

Java知识点大纲

文章目录 第一阶段&#xff1a;JavaSE1、面向对象编程(基础)1)面向过程和面向对象区别2)类和对象的概述3)类的属性和方法4)创建对象内存分析5)构造方法(Construtor)及其重载6)对象类型的参数传递7)this关键字详解8)static关键字详解9)局部代码块、构造代码块和静态代码块10)pac…

mac中如何恢复因为破解脚本导致的IDEA无法启动的问题

问题 为了在mac中安装免费的2024版idea&#xff0c;导致下载了一个脚本&#xff0c;使用这个脚本后&#xff0c;但是发现idea还没有破解&#xff0c;相反导致idea无法启动&#xff0c;每次点击&#xff0c;都会弹出“cannot start IDE…” 问题排查 在访达中点击mac的应用程…

营销故事之扩大牙膏开口

职场营销故事“扩大牙膏开口”又可以说是“牙膏开口扩大1毫米”&#xff0c;为十大经典营销故事之一。某品牌的牙膏&#xff0c;包装精美&#xff0c;品质优良&#xff0c;备受顾客喜爱&#xff0c;连续10年营业额保持10%-20%的增幅。可到了第11年&#xff0c;销售业绩却停滞不…

MySQL环境搭配

下载版本37滴 下载第二个 之后进行安装 进入安装界面 next 选择默认的 进行下一步 安装成功后&#xff0c;进行一系列配置&#xff0c;成功界面如下&#xff1a; 配置 MySQL8.0 环境变量 如果不配置 MySQL 环境变量&#xff0c;就不能在命令行直接输入 MySQL 登录命令。 步…

PowerDsigner的简单使用

目录 1.PowerDesinger 2.PD与navicat的区别&#xff1a; 3.使用 1.PowerDesinger 在实际开发中&#xff0c;数据库的设计会使用专业的建模工具——PowerDesinger &#xff08;安装及其破解大家搜选相关CSDN博客吧&#xff09; 2.PD与navicat的区别&#xff1a; navicat是…

电阻式无功负载组(即电阻式感性负载组)

RL系列电阻式无功负载组&#xff08;即电阻式感性负载组&#xff09;可以通过设置特定功率因数&#xff08;pf&#xff09;来模拟电力系统中的电机负载和电磁器件以及纯阻性负载。电阻式无功负载组是需要额定kVA、额定功率因数和额定电流测试的关键任务备用应急电源系统定期进行…

Mybatis-01 原理

一. JDBC式编程 在 jdbc 编程中&#xff0c;我们最常用的是 PreparedStatement 式的编程&#xff0c;我们看下面这个例子&#xff1b; Connection conn null; PreparedStatement ps null; ResultSet rs null;try {// 1. 注册驱动Class.forName("com.mysql.jdbc.Drive…

UE5 01-给子弹一个跟角色一致的向前的方向的冲量

默认Pawn 负责角色位置, 默认PlayerController 负责记录角色相机旋转

Vant Design - VUE 时间区间限制

效果图&#xff0c;限制7天 实现代码 <a-range-picker v-model"dateTime" style"width: 100%" :disabled-date"disabledDate" format"YYYY-MM-DD HH:mm:ss" :showTime"true" :placeholder"[开始时间, 结束时间]&quo…

图像增强 目标检测 仿射变换 图像处理 扭曲图像

1.背景 在目标检测中&#xff0c;需要进行图像增强。这里的代码模拟了旋转、扭曲图像的功能&#xff0c;并且在扭曲的时候&#xff0c;能够同时把标注的结果也进行扭曲。 这里忽略了读取xml的过程&#xff0c;假设图像IMG存在对应的标注框&#xff0c;且坐标为左上、右下两个…

黑龙江等保测评知多少

黑龙江的等保测评&#xff0c;即网络安全等级保护测评&#xff0c;是指在中国黑龙江地区针对信息系统的安全性进行的一系列评估活动&#xff0c;确保这些系统符合国家规定的安全等级标准。这个过程涉及到多个阶段&#xff0c;旨在提升信息系统整体的安全水平。 以下是黑龙江等…

程序包lombok不存在,解决办法。

当前方法是针对于代码没有报错&#xff0c;本身有lombok jar包的情况 1.找到本地maven仓库中的已经下载好的lombok包&#xff0c;删掉。 2. 直接刷新maven&#xff0c;会重新下载lombok jar包&#xff0c;此时再启动项目时就可以正常运行了。