Shape文件批量导入ArcGIS

Shape文件批量导入ArcGIS

2015-06-02 作者: xuzhiping 浏览: 4169 次

摘要: 将文件夹中的shape文件批量导入到ArcGIS的File GeoDatabase中。工具界面如图一: 图一 Shape批量导入File GDB工具界面 由图可知,工具的界面并不复杂,只需要制定shape文件所在的文件夹和File GDB保存的路径就可...

将文件夹中的shape文件批量导入到ArcGIS的File GeoDatabase中。工具界面如图一:

图一 Shape批量导入File GDB工具界面

由图可知,工具的界面并不复杂,只需要制定shape文件所在的文件夹和File GDB保存的路径就可以了。通过该工具,可以将指定文件夹根目录下所有的Shape文件和第一级子目录中所有的Shape文件转换到与根目录同名的File GDB数据库中,第一级子目录会转换为FileGDB中同名的Feature Dateset。此工具要求根目录及一级子目录中只能有Shape文件,子目录可以为空,但是空子目录同样会被转换为Feature Dateset。一级子目录中的Shape文件最好都具有相同的坐标系统。FileGDB存储的路径不能与输入的存储shape数据的路径相同,最好也不要放在它的子目录中。

制作工具,代码如下:

import sys
import os
import arcgisscripting
gp = arcgisscripting.create(9.3)
Workspace = sys.argv[1]
gp.Workspace = Workspace
Output_GDB_Path = sys.argv[2]
gp.OverWriteOutput = 1
File_GDB = Output_GDB_Path + os.sep + os.path.basename(gp.Workspace) + ".gdb"
gp.CreateFileGDB(Output_GDB_Path, os.path.basename(File_GDB))
gp.AddMessage("++++++++++++++++++++++++++++")
gp.AddMessage("数据库创建成功")
Feature_Classes = gp.ListFeatureClasses()
count1 = len(Feature_Classes)
if count1 > 0:
for Feature_Class in Feature_Classes:
gp.CopyFeatures_management(Feature_Class,File_GDB + os.sep + \
Feature_Class[:-4])
Folder_Lists = os.listdir(gp.Workspace)
for Folder_List in Folder_Lists:
List_Element = gp.Workspace + os.sep + Folder_List
if os.path.isdir(List_Element):
gp.workspace = gp.workspace + os.sep + Folder_List
gp.CreateFeatureDataset_management(File_GDB,Folder_List)
gp.AddMessage("++++++++++++++++++++++++++++")
gp.AddMessage("要素数据集" + str(Folder_List) + "创建成功!")
Feature_Classes = gp.ListFeatureClasses()
count2 = len(Feature_Classes)
if count2 > 0:
for Feature_Class in Feature_Classes:
gp.CopyFeatures_management(Feature_Class,File_GDB + os.sep + \
Folder_List + os.sep + Feature_Class[:-4])
gp.AddMessage("++++++++++++++++++++++++++++")
gp.AddMessage(str(Folder_List) + "中所有文件复制完毕!")
Dateset_SF = gp.describe(Feature_Class).SpatialReference
gp.DefineProjection_management(File_GDB + os.sep + Folder_List,\
Dateset_SF)
gp.AddMessage("++++++++++++++++++++++++++++")
gp.AddMessage(str(Folder_List) + "坐标系统定义成功!")
gp.workspace = Workspace

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org