Додавання імені файлу до поля атрибутів за допомогою поля Обчислити?


10

Хтось знає, як додати ім’я файлу форми до поля таблиці атрибутів файлу?

Я знайшов опис:

'Ви повинні використовувати вбудову змінної у CalculateField, як% Name% у виразі, так що незалежно від імені файлу, рядок буде вставлено на основі Імені файлу dbase!'

Я спробував обчислити інструмент CalculateField із% Name%, але отримав повідомлення:

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

Цей код python додає поле 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.
Нейт Бредшоу

Нічого не трапиться, якщо я введіть код на консолі пітона на дуговій карті (10.6) Здається, що ця версія не працює (?)
Девід

6

На веб-сайті arcscripts є сценарій, який повинен допомогти вам у цьому

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

Підсумок Простий скрипт для створення поля під назвою "FILENAME" та прикріплення імені файлу форми до кожного запису в таблиці атрибутів. Використовуйте стільки файлів форм у вказаному каталозі. Корисно підбирати записи формату та поєднувати в окремий файл, щоб підтримувати сукупність слідів оригінального імені формату.

Запустіть файл у каталозі, що містить усі шаблонні файли, які потребують модифікації

Я сподіваюся, що це те, що ти хочеш


Для інформації: не працює для Arcgis 10.X (синтаксис коду Python змінився після Arcgis 9.x).
gisnside


1

Якщо все вищезазначене не працює для вас через несумісність версії або відсутність знань (як це для мене), спробуйте це вирішити:

  • скористайтеся інструментом конвертації "Експортувати в CAD" та експортуйте всі ваші класи функцій із бази даних геоданих у файл DWG
  • ім'я класу функцій буде використано для заповнення поля шару для файлу CAD
  • використовуйте інструмент перетворення CAD в Geodatabase, щоб експортувати свої функції назад в GDB
  • відтепер у вашій таблиці з'являться поля назв шару для кожної окремої функції
  • використовуйте інструмент "Об'єднання" для об'єднання класів функцій з GDB в один єдиний файл форми, який містить поле атрибута шару з оригінальною назвою класу функцій для ідентифікації елементів

0

Я знайшов це посилання на інструмент ArcGIS для служби риб та дикої природи США, який робить саме те, що ви шукаєте. Це спрацювало як шарм!


Це той самий інструмент, описаний у попередній відповіді
PolyGeo

Інструмент від Служби риб та диких тварин США працює лише в тому випадку, якщо назва поля "NAME". Це можна зробити гнучким, оновивши інструмент обчислення поля "Назва поля" на% Ім'я поля%
Eleza Kollannur
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.