问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

arcgis怎么将mdb文件转换成shape文件。请告诉我具体详细步骤 输出路径具体操作

发布网友 发布时间:2022-04-10 23:47

我来回答

2个回答

懂视网 时间:2022-04-11 04:09

# -*-coding:utf-8-*- import arcpy import pyodbc import os   # 指定工作空间 arcpy.env.workspace = r"E:shp"   # 2000坐标系 fc_2000 = "YDBP_2000.shp" cursor_2000 = arcpy.da.InsertCursor(fc_2000, ["FLOWSN", "XMMC", "KCID", "DKID", "COOR_TYPE", "SHAPE@"])   # 80坐标系 fc_80 = "YDBP_80.shp" cursor_80 = arcpy.da.InsertCursor(fc_80, ["FLOWSN", "XMMC", "KCID", "DKID", "COOR_TYPE", "SHAPE@"])   # 未知坐标系 fc_unknown = "YDBP_unknown.shp" cursor_unknown = arcpy.da.InsertCursor(fc_unknown, ["FLOWSN", "XMMC", "KCID", "DKID", "COOR_TYPE", "SHAPE@"])   # 根据需要设置变量:流程号、项目名称、勘测定界ID、地块ID、坐标系类型 FLOWSN = "" XMMC = "" KCID = "" DKID = "" COOR_TYPE = "" count = 0   # 遍历每个mdb文件 path = r"E:LYMDB" mdblist = os.listdir(path) try:     for mdbfile in mdblist:           # 获取项目名称         XMMC = mdbfile[:-4]         print XMMC.decode("gb2312") + " is beginning..."           # 获取mdb文件的完整路径         mdbfullpath = os.path.join(path, mdbfile)           # 根据本机的驱动程序编写连接字符串         # mdbsource = r‘DRIVER={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=‘ + mdbfullpath + ‘;‘         mdbsource = r‘DRIVER={Microsoft Access Driver (*.mdb)};DBQ=‘ + mdbfullpath.decode("gb2312") + ‘;‘         with pyodbc.connect(mdbsource) as dbconn:             cur = dbconn.cursor()           # 根据勘测定界技术说明,获得勘测ID与坐标系的对应关系         xysql = "select * from DELIMITATION_TAC order by SB_SB_ID;"         cur.execute(xysql)         xyalldata = cur.fetchall()         xynum = len(xyalldata)         xydict = {}         if xynum > 0:             for xyid in range(xynum):                 xydict[xyalldata[xyid][26]] = xyalldata[0][23]           # 根据勘测定界表,获取FLOWSN,勘测ID与地块ID的对应关系         kcidsql = "select * from PLOT order by PL_ID;"         cur.execute(kcidsql)         kcidalldata = cur.fetchall()         kcidnum = len(kcidalldata)         kcdict = {}         if kcidnum > 0:             FLOWSN = kcidalldata[0][14]             for id in range(kcidnum):                 kcdict[kcidalldata[id][13]] = kcidalldata[id][15]               # 根据坐标点顺序升序排序,并获取界址点成果表         sql = "select * from PNT_COORD order by PL_ID,PNT_SERIAL;"         cur.execute(sql)         alldata = cur.fetchall()           # 计算成所有坐标行数,包括表头         rownum = len(alldata)           # 存放坐标点的列表         polygonarray = arcpy.Array()           # 根据需要,设置字段         PNT_SERIAL = ""         PL_ID = ""           # 遍历读取坐标表中的坐标         for i in range(1, rownum, 1):             row = alldata[i]             X_COORD = row[1]             Y_COORD = row[2]             PNT_SERIAL = row[7]             PL_ID = row[9]               # 对DKID第一次赋值             if DKID == "":                 DKID = row[9]               # 生成坐标点             pnt = arcpy.Point()             pnt.ID = int(PNT_SERIAL)             pnt.X = float(Y_COORD)             pnt.Y = float(X_COORD)               # 如果地块ID发生变化,说明包含多个地块             if DKID == PL_ID:                 polygonarray.add(pnt)             else:                 # 生成面要素                 poly = arcpy.Polygon(polygonarray)                   # 根据地块ID找到对应的勘测ID                 KCID = kcdict[DKID]                   # 根据勘测ID获取坐标系类型                 COOR_TYPE = xydict[KCID]                   # 追加到要素类中                 if COOR_TYPE == u"80国家大地坐标系":                     cursor_80.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])                 elif COOR_TYPE == u"2000国家大地坐标系":                     cursor_2000.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])                 else:                     cursor_unknown.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])                   # 将新的地块ID赋值给fid                 DKID = row[9]                   # 清除掉之前的坐标点,并将当前坐标点添加到polygonarray中                 polygonarray.removeAll()                 polygonarray.add(pnt)           if polygonarray.count > 0:             # 生成面要素             poly = arcpy.Polygon(polygonarray)               # 根据地块ID找到对应的勘测ID             KCID = kcdict[DKID]               # 根据勘测ID获取坐标系类型             COOR_TYPE = xydict[KCID]               # 根据不同的坐标系,追加到不同的图层中             if COOR_TYPE == u"80国家大地坐标系":                 cursor_80.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])             elif COOR_TYPE == u"2000国家大地坐标系":                 cursor_2000.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])             else:                 cursor_unknown.insertRow([FLOWSN, XMMC, KCID, DKID, COOR_TYPE, poly])           # 计数,便于统计         count = count + 1           print mdbfile.decode("gb2312")           # 关闭mdb连接         dbconn.close()           # 将变量初始化         FLOWSN = ""         XMMC = ""         KCID = ""         DKID = ""         COOR_TYPE = ""       print "一共上图{0}个...".format(count) except Exception as e:     print e.args   # 删除图层游标,释放资源 if cursor_2000:     del cursor_2000   if cursor_80:     del cursor_80   if cursor_unknown:     del cursor_unknown  

截图如下:

技术图片

技术图片

技术图片

var cpro_id = "u6292429";

热心网友 时间:2022-04-11 01:17

在arccatalog中找到你的mdb数据库,在数据库上右键---export--To shapefile(mulpitle),然后再弹出的对话框中指定输出路径即可!这个功能可以批量实现mdb转shp

 

 

 

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我更新了win7QQ拼音在游戏上(剑侠情缘2)不能打字?打出来的都是... 游漓江的船票在哪里买最方便?如何去 因为我想看剑侠情缘,又不想下载什么PPS啊,QQ直播之类软件, 最好是类似... ...两部手机下载相同的手游剑侠情缘却是不一样的都是在QQ上下载的 教子小书坊:一位外交官父亲给孩子的家书图书信息 教子小书坊:一位外交官父亲给孩子的家书内容简介 高二孩子和家长逆反如何教育 高二孩子和家长逆反怎么办 叛逆期孩子怎么教育沟通叛逆期孩子如何教育沟通 请问用otg连接鼠标和键盘后怎么玩手机上的全民枪战,求教程。带图的给... 去邮局寄包裹的步骤是怎么样?我没去做.不好意思问下大家 水泥地面起白白的东西 像硝一样 怎么处理呀? 下雨后水泥地发霉?就是一层白色的东西 水泥地长白毛怎么处理啊 水泥地面撒上了食用醋,结果一片白,怎么处理能恢复原样?急急急 食用碱水洒到水泥地上有白点如何处理? 水泥地长白毛怎么办啊急啊、求解决方法越方便越好别只给我科普 水泥地面一层白色粉末多久能消除 混凝土发白怎么解决? 刚做的家庭水泥地面有小裂缝,抹了一点水泥膏后,地面发白,怎么处理? 水泥地面很多白色点怎么处理 水泥地面冒白色絮状物怎么处理? 京东购物麻烦不,本人未成年用不了淘宝购物(支付宝未成年不可以实名认证),京东咋样,听说是注册完成后 五菱荣光轮胎175/70R14我想换175/65R14的可不可以? 175/70/14换成185/70/14的可以吗?有那些改变? 五菱荣光小卡轮胎175/75/14的能换175/70/14吗?需要改钢圈吗? 175轮胎70R14C和75R14C及175R14C有何区别? 荣光小卡前面轮胎175 70 14能换175 75 14吗?这样载3吨左右会不会磨到边? 五菱荣光小卡原车胎是175 75R14的安装的175 70R14的雪地胎可以吗? 原车是175/75r14c轮胎可以换175/70r14c轮胎吗? 175 70r14轮胎能换175/75r14轮胎吗 清凉油有哪些妙用? 观赏鱼黄金怎样养才不退色 手链编双对鱼黄金好吗 请问谁知道养的七彩神仙鱼黄金用什么上色好鱼吃了不伤鱼知道的告诉我谢谢 品靓上菜-鲑鱼黄金炒饭的做法? 观赏鱼黄金碗 最近两天发现观赏鱼黄金鲤脸上有个红包不知道什么引起的,有没有高手可以帮忙解答指点一下小弟非常感谢 孔雀鱼黄金礼服配什么公鱼好 孔雀鱼黄金礼服总喜欢呆在缸底。还喜欢扎堆睡觉。正常吗?公鱼还躺着以为死了, 刚买的孔雀鱼黄金剑尾用身体蹭缸底是怎么回是用亚甲蓝行吗 观赏鱼黄金大胡子公和雪花母配会繁殖什么颜色的小鱼 海水宠物鱼黄金参养殖资料 黄金桂鱼没有鱼鳞 数据库mdb批量添加数据 求教:三湖鱼黄金虎的繁殖方法,谢谢!!! 金龙鱼油是植物油吗? 雷龙吃什么 钓鱼黄金钓位有哪些 钓鱼黄金钓位 请问原版起司猫吃鱼黄金吊坠是什么牌子的啊? 清蒸黄金鲽怎么做如何做好吃