11

I am trying to find a way to create metadata through ArcCatalog for multiple datasets simultaneously. I'm working within a file geodatabase, which composes of multiple feature classes and rasters. The data has common theme so I'd like to create template of metadata for one item and then populate other datasets within the same metadata information. I'm planning to use ISO standard metadata template.

I've done some research and it appears that there are three options (but neither of them too successful so far):

  • use 'Metadata Importer' tool within Conversion Toolbox (however I will be able to copy metadata on one-to-one basis only)
  • X-tools pro have 'Batch Metadata Editing' option available but after setting the parameters within ArcMap I can't see these changes through ArcCatalog
  • third option is adding 'Batch Importer' (http://edndoc.esri.com/arcobjects/9.0/Samples/Metadata/Importers/Batch_Importer/Batch_Importer.htm). I managed to add it to ArcCatalog but I'm not able to run it (I get error message 'ICommand_OnClick() ).

I'm working with ArcGIS Desktop 10.

0

3 Answers 3

5

I just created metadata simultaneously for some rasters. They were in a file workspace as opposed to a geodatabase workspace so I'm not sure if that will be an issue. If I understand correctly you are trying to create generic metadata for multiple files. Here's what I did:

Open ArcCatalog and update the metadata for one of the files

Be generic so the text will apply to all files

Export the metadata into the same folder. (I have the ISO 19139 metadata implementation specification selected in my ArcCatalog options).

The file will be exported as an .xml file.

Open the following tool: Conversion Tools>Metadata>Import Metadata... open it with a right click and choose "batch" (it's the one with the ModelBuilder symbol next to it)

Now you can add your exported metadata .xml file as the source and navigate to all the files to apply to as the target.

Granted it's a bit awkward to do this for large datasets (navigating to each file for example) but as this is a model you could easily modify it to work as a tool instead. Choose the recursive option and it will add all files within a folder to have the metadata attached. In fact, I might do that now and post it here.


I've created a tool that serves my purpose of just updating the DESCRIPTION section of a file. If you would like to use it let me know. It's got quirks but it runs.

0
4

Sorry to say your not going to find a quick way to do it as of SP2; primarily because Metadata is badly broken @ ArcGIS 10. I really would not expect that sample code you see to work cleanly, I suspect it might even damage the metadata. Your real only option is going to be to do it manually.

We undertook a major metadata update project over the last 2 months and because of the issues in ArcGIS 10 we had to perform it manually; layer by layer.

I wish there was better news for you; I wish you luck.

0
0

Yes, I made this little script that I run from Jupyter notebook. Just change as required the variables metadatain, and metawriter. It will recursively add metadata to all the files with an extension (for instance shp) inside a directory.

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')

*Note the backslashes

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.