(十六)arcpy开发&利用arcpy在arcgis中创建gdb文件

52 篇文章 79 订阅
37 篇文章 17 订阅

本次我们学习的是如利用arcgis提供的python接口arcpy在arcgis中创建gdb文件。在代码中,多处利用检查机制,首先检查路径传入的路径是否存在,如果传入的需要创建的gdb文件已经存在,那么代码会说明已经存在了。当路径已经创建好后,接下来要创建的gdb文件检查是否创建好了。接下来我们看一下实现的具体代码。

#coding=utf-8
import arcpy
import os
import logs
import shutil
import socket
logger = logs.ArcLogger()

def checkFileGDBIntegrity(path):
    if os.path.exists(path) or path == 'in_memory':
        logger.p5("GDB folder: OK,", )
        if arcpy.Describe(path).dataType in ['Workspace', 'Folder', 'FeatureDataset', 'FileSystem']:
            logger.p5("%s integrity: OK" % arcpy.Describe(path).dataType)
            return True
        else:
            logger.p3("路径是不真实的、路径出现了问题")
            return False
    else:
        logger.p3("路径 %s 不存在." % path)
        return False

def newFileGDB(blankFileGDB, path, name):
        if not name.endswith('.gdb'):
            name = name + '.gdb'
        logger.p5("Creating GDB %s in\n %s" % (name, path))
        src = blankFileGDB
        dest = os.path.join(path,name)
        if os.path.exists(dest):
            logger.p3("File GDB %s already exists" % dest)
            return False
        if socket.gethostname().upper() == 'FLOPSY':
            # 由于未知原因, 创建GDBFile可能出现问题
            #从空的GDB文件中创建
            if os.path.exists(blankFileGDB):
                logger.p5("Copying over the blank fgdb...")
                shutil.copytree(src,dest,ignore=shutil.ignore_patterns('*.lock'))
            else:
                logger.p5("No empty template GDB found!")
                return False
        else:
            arcpy.AddMessage("Creating file GDB: %s" % dest)
            arcpy.CreateFileGDB_management(path,name)

        # 确定GDB文件已经创建好了
        if checkFileGDBIntegrity(dest):
            arcpy.AddMessage("GDB created OK.")
            return True
        else:
            logger.p2("Problem creating GDB!")
            return False

blankFileGDB = os.path.join(os.environ['SYSTEMROOT'], 'test.gdb')
newFileGDB(blankFileGDB,"C:\\Users\\qin\\Desktop\\111","test");

最后创建的gdb文件如下所示。


                                                                    更多内容,请关注公众号

                                                             

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用ArcPy的数据集合工具(Data Management Tools)的相关工具来实现此功能。以下是一个示例代码: ``` import arcpy # 设置工作空间和数据集 arcpy.env.workspace = r"C:\data" gdb = "my_geodatabase.gdb" dataset1 = "my_dataset1" dataset2 = "my_dataset2" dataset3 = "my_dataset3" # 获取数据集的路径 path1 = arcpy.Describe(gdb + "\\" + dataset1).catalogPath path2 = arcpy.Describe(gdb + "\\" + dataset2).catalogPath path3 = arcpy.Describe(gdb + "\\" + dataset3).catalogPath # 使用CopyFeatures工具复制数据集1到数据集2和数据集3 arcpy.CopyFeatures_management(path1, path2) arcpy.CopyFeatures_management(path1, path3) # 使用CalculateField工具在数据集2和数据集3更新字段值 expression = "my_expression" field = "my_field" arcpy.CalculateField_management(path2, field, expression) arcpy.CalculateField_management(path3, field, expression) ``` 在上述代码,我们首先指定工作空间和数据集名称,然后使用`arcpy.Describe()`方法获取每个数据集的路径。接下来,我们使用`arcpy.CopyFeatures_management()`方法将数据集1复制到数据集2和数据集3。最后,我们使用`arcpy.CalculateField_management()`方法更新数据集2和数据集3的字段值。 请注意,这个示例代码仅供参考,并且您需要根据自己的数据和需求进行修改。同时,建议您在使用数据集合工具(Data Management Tools)时先备份数据以避免意外修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yGIS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值