필드 계산을 사용하여 속성 필드에 파일 이름을 추가 하시겠습니까?


10

모양 파일 이름을 파일의 속성 테이블에있는 필드에 추가하는 방법을 아는 사람이 있습니까?

설명을 찾았습니다.

'표현식에서 % Name %와 같이 CalculateField에서 인라인 변수를 사용해야 파일의 이름이 무엇이든 문자열이 dbase 파일의 이름을 기반으로 삽입됩니다!'

% Name %으로 CalculateField 도구를 시도했지만 메시지가 나타납니다.

Executing: CalculateField "2011-11-6 15_41_point" DBFName %Name% PYTHON #
Start Time: Thu Dec 08 23:34:23 2011
WARNING 000405: No records within table
Succeeded at Thu Dec 08 23:34:24 2011 (Elapsed Time: 1.00 seconds)

내 실수는 어디에?

답변:


12

이 파이썬 코드는 FILENAME 필드를 모든 피쳐 클래스 (데이터 세트의 클래스 제외)에 추가하고 피쳐 클래스 이름으로 채 웁니다.

# Import standard library modules
import arcpy, os, sys
from arcpy import env

# Allow for file overwrite
arcpy.env.overwriteOutput = True

# Set the workspace directory 
env.workspace = r"P:\geodatabase.gdb\filename" 

# Get the list of the featureclasses to process
fc_tables = arcpy.ListFeatureClasses()

# Loop through each file and perform the processing
for fc in fc_tables:
    print str("processing " + fc)

    # Define field name and expression
    field = "FILENAME"
    expression = str(fc) #populates field   

    # Create a new field with a new name
    arcpy.AddField_management(fc,field,"TEXT")

    # Calculate field here
    arcpy.CalculateField_management(fc, field, '"'+expression+'"', "PYTHON")

버전 10.2에서 작동합니다. 버전 10.2.2에서는 작동하지 않습니다.
Nate Bradshaw

파이썬에서 arc map의 파이썬 콘솔에 코드를 입력해도 아무 변화가 없습니다 (10.6)이 버전에서는 작동하지 않는 것 같습니다 (?)
David

6

arcscripts 웹 사이트에는이를 수행하는 데 도움이되는 스크립트가 있습니다

http://arcscripts.esri.com/details.asp?dbid=14534

요약 "FILENAME"이라는 필드를 작성하고 shapefile의 파일 이름을 속성 테이블의 각 항목에 첨부하는 간단한 스크립트입니다. 지정된 디렉토리 내에서 많은 shapefile과 함께 사용하십시오. 쉐이프 파일 항목을 따로 분리하고 별도의 파일로 결합하여 원래 쉐이프 파일 이름의 이동 경로 추적을 유지하는 데 유용합니다.

수정이 필요한 모든 shapfile을 포함하는 디렉토리 내에서 파일을 실행하십시오.

이것이 당신이 추구하는 것이기를 바랍니다.


정보 : Arcgis 10.X에서 작동하지 않습니다 (Arcgis 9.x 이후 Python 코드 구문이 변경되었습니다).
gisnside


1

버전 비 호환성 또는 지식 부족 (위와 같이)으로 인해 위의 모든 내용이 효과가없는 경우이 해결 방법을 시도하십시오.

  • CAD로 내보내기 변환 도구를 사용하고 지오 데이터베이스의 모든 피쳐 클래스를 DWG 파일로 내보내기
  • 피처 클래스의 이름은 CAD 파일의 레이어 필드를 채우는 데 사용됩니다.
  • CAD를 지오 데이터베이스로 변환 도구를 사용하여 피쳐를 다시 GDB로 내보내기
  • 이제 각 단일 피처에 대한 레이어 이름 필드가 테이블에 있습니다.
  • 병합 도구를 사용하여 GDB의 피처 클래스를 하나의 단일 쉐이프 파일로 결합합니다. 여기에는 항목을 식별 할 수있는 원래 피처 클래스 이름이있는 레이어 속성 필드가 있습니다.

0

나는 당신이 찾고있는 것을 정확하게하는 미국 물고기 및 야생 동물 서비스 ArcGIS 도구에 대한 이 링크 를 발견 했습니다. 그것은 매력처럼 작동했습니다!


이것은 이전 답변
PolyGeo

US Fish and Wildlife Service의 도구는 필드 이름이 "NAME"인 경우에만 작동합니다. % Field Name %으로 필드 계산 도구 'Field Name'을 (를) 업데이트하여 유연하게 만들 수 있습니다
Eleza Kollannur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.