在ArcGIS 10中同时为多个数据集创建元数据


11

我试图找到一种通过Arc Catalog同时为多个数据集创建元数据的方法。我正在文件地理数据库中工作,该文件地理数据库由多个要素类和栅格组成。数据具有共同的主题,因此我想为一项创建元数据模板,然后在相同的元数据信息中填充其他数据集。我打算使用ISO标准元数据模板。

我已经进行了一些研究,似乎有三种选择(但到目前为止,这两种选择都不成功):-在Conversion Toolbox中使用“ Metadata Importer”工具(但是我可以一对一复制元数据)仅基于基础)-X-tools专业版提供了“批处理元数据编辑”选项,但在ArcMap中设置参数后,我无法通过Arc Catalog看到这些标记-第三个选项是添加“批处理导入器”(http://edndoc.esri .com / arcobjects / 9.0 / Samples / Metadata / Importers / Batch_Importer / Batch_Importer.htm)。我设法将其添加到ArcCatalog,但无法运行(收到错误消息'ICommand_OnClick())。

我正在使用ArcGIS 10。


我试着按照Oliver所说的去做,这很有意义,但是我不知道用iso处理什么,因为他说过(当然是系统...)“ iso 19139的数据集arcgis不存在或不存在支持”我尝试了all选项,但是它不起作用。我与arcinfo 10.0 / sp5一起请求我:avixr@nana10.co.il

Answers:


4

抱歉地说,从SP2开始,您将找不到一种快速的方法;主要是因为在ArcGIS 10上元数据严重损坏。我真的不希望您看到的示例代码可以正常工作,我怀疑它甚至可能损坏元数据。您唯一的选择是手动进行。

在过去的两个月中,我们进行了一个主要的元数据更新项目,由于ArcGIS 10中的问题,我们不得不手动执行它。一层一层地。

希望有更好的消息对您有用;祝你好运。


感谢您的回答。幸运的是,我正在处理的数据集不是很广泛,所以我可以在几个小时内手动完成。但是当数据集很大时会出现问题。Esri需要考虑的事情。–
Magda

我了解,或对一批文件设置某些全局选项的功能,例如对联系信息的更新,或您的免责声明。这种事情可以帮助很多用户。
DEWright

我认为我已经对现有工具进行了一些修改来破解它。让我知道您是否感兴趣
Oliver Burdekin

@Magda您是否尝试过该工具?
奥利弗·伯德金

5

我只是同时为一些栅格创建了元数据。它们位于与地理数据库工作空间相对的文件工作空间中,因此我不确定这是否会成为问题。如果我正确理解,您正在尝试为多个文件创建通用元数据。这是我所做的:

打开arcCatalog并更新其中一个文件的元数据

是通用的,因此文本将适用于所有文件

将元数据导出到同一文件夹中。(我在arcCatalog选项中选择了ISO 19139元数据实现规范)。

该文件将导出为.xml文件。

打开以下工具:转换工具>元数据>导入元数据...右键单击打开它,然后选择“批处理”(这是旁边带有模型构建器符号的批处理)

现在,您可以将导出的元数据.xml文件添加为源,并导航到所有要应用为目标的文件。

对于大型数据集(例如导航到每个文件)这样做有点尴尬,但是由于这是一个模型,因此您可以轻松地对其进行修改以用作工具。选择递归选项,它将添加文件夹中的所有文件以附加元数据。实际上,我现在可以这样做并将其发布在此处。

* 更新 *

我创建了一个工具,其目的仅在于更新文件的DESCRIPTION部分。如果您想使用它,请告诉我。它有古怪,但它运行。


我最终在批处理模式下使用了“导入元数据”。@Oliver-是的-我会对看到这个工具非常感兴趣!
Magda

@Magda,您可以发送电子邮件至info@burdgis.com给我发送电子邮件。最好在其他人的数据上测试此模型。
奥利弗·伯德金

哈罗@Oliver,我想使用您的工具。然后,我不需要自己再次尝试。谢谢:-)
Shiuli Pervin '16

嗨,@ ShiuliPervin,请给我发送电子邮件至info@burdgis.com,其中包含您的数据样本和您的确切要求。请包括您的ArcGIS版本。谢谢。
奥利弗·伯德金

0

是的,我做了一个从Jupyter Notebook运行的小脚本。只需根据需要更改metadatainmetawriter变量。它将以递归方式将元数据添加到目录中具有扩展名(例如shp)的所有文件。

import os
import xml.etree.ElementTree as ET
metadatain = ET.parse(r'ADDRESS\TO\METADATA.xml')
root = metadatain.getroot()

def metawriter(folder_path, extension):
    for path, subdirs, files in os.walk(folder_path):
        for name in files:
            file_extension = os.path.splitext(name)[-1]
            if(extension in file_extension):
            #if(file_extension.lower() in name.lower()):
                file_path = os.path.join(path,name)
                file_name = os.path.splitext(file_path)[0]
                print(file_path)
                print(file_name)
                metafile = file_name + extension + ".xml"
                print(metafile)
                metadatain.write(metafile)



metawriter(r'ADDRESS\TO\FOLDER', '.FILEXTENSION')

*注意反斜杠

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.