여러 데이터 세트에 대해 Arc Catalog를 통해 메타 데이터를 동시에 생성하는 방법을 찾고 있습니다. 여러 지형지 물 클래스와 래스터로 구성된 파일 지오 데이터베이스 내에서 작업하고 있습니다. 데이터에는 공통 주제가 있으므로 한 항목에 대한 메타 데이터 템플릿을 생성 한 다음 동일한 메타 데이터 정보 내에 다른 데이터 세트를 채우고 싶습니다. ISO 표준 메타 데이터 템플릿을 사용하려고합니다.
나는 약간의 연구를했는데 세 가지 옵션이 있지만 (지금까지도 성공하지는 못했습니다) :-Conversion Toolbox 내에서 ‘Metadata Importer’도구 사용 X-tools pro에는 ‘일괄 처리 메타 데이터 편집’옵션을 사용할 수 있지만 ArcMap 내에서 매개 변수를 설정 한 후 Arc Catalog를 통해 이러한 구획을 볼 수 없습니다. 세 번째 옵션은 ‘일괄 가져 오기 프로그램’을 추가하는 것입니다 ( http : //edndoc.esri .com / arcobjects / 9.0 / Samples / Metadata / Importers / Batch_Importer / Batch_Importer.htm ). ArcCatalog에 추가했지만 실행할 수 없습니다 ( ‘ICommand_OnClick () 오류 메시지가 나타납니다).
ArcGIS 10과 협력하고 있습니다.
답변
SP2부터는 빠른 방법을 찾지 못할 것입니다. 메타 데이터가 @ ArcGIS 10에서 심하게 손상 되었기 때문입니다. 실제로 샘플 코드가 제대로 작동한다고 기대하지는 않습니다. 메타 데이터가 손상 될 수도 있습니다. 실제 유일한 옵션은 수동으로 수행하는 것입니다.
지난 2 개월 동안 주요 메타 데이터 업데이트 프로젝트를 수행했으며 ArcGIS 10의 문제로 인해 수동으로 수행해야했습니다. 층별로.
더 좋은 소식이 있었으면 좋겠습니다. 행운이 있기를 바랍니다.
답변
일부 래스터에 대해 메타 데이터를 동시에 만들었습니다. 지리 데이터베이스 작업 공간과 달리 파일 작업 공간에 있었기 때문에 문제가 될지 확실하지 않습니다. 올바르게 이해하면 여러 파일에 대한 일반 메타 데이터를 만들려고합니다. 내가 한 일은 다음과 같습니다.
arcCatalog를 열고 파일 중 하나의 메타 데이터를 업데이트하십시오.
텍스트가 모든 파일에 적용되도록 일반화
메타 데이터를 동일한 폴더로 내 보냅니다. (내 arcCatalog 옵션에서 ISO 19139 메타 데이터 구현 사양을 선택했습니다).
파일이 .xml 파일로 내보내집니다.
변환 도구> 메타 데이터> 메타 데이터 가져 오기 …를 마우스 오른쪽 단추로 클릭하고 “일괄 처리”를 선택하십시오 (모델 작성기 기호가 옆에 있음)
이제 내 보낸 메타 데이터 .xml 파일을 소스로 추가하고 대상으로 적용 할 모든 파일을 탐색 할 수 있습니다.
큰 데이터 세트 (예 : 각 파일로 이동)에 대해이 작업을 수행하는 것은 다소 어색하지만, 모델이므로 도구로 사용하기 위해 쉽게 수정할 수 있습니다. 재귀 옵션을 선택하면 메타 데이터가 첨부되도록 폴더 내의 모든 파일이 추가됩니다. 사실, 나는 지금 그것을하고 여기에 게시 할 수 있습니다.
* 업데이트 *
파일의 DESCRIPTION 섹션을 업데이트하는 목적을 제공하는 도구를 만들었습니다. 당신이 그것을 사용하려면 알려 주시기 바랍니다. 단점이 있지만 실행됩니다.
답변
예, Jupyter 노트북에서 실행하는이 작은 스크립트를 만들었습니다. 메타 데이터 와 메타 라이터 변수를 필요에 따라 변경하면됩니다 . 디렉토리 내에서 확장자 (예 : 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')
* 백 슬래시 참고