Alan Hesapla'yı kullanarak özellik alanına dosya adı eklensin mi?


10

Herkes şekil dosyasının adını dosyanın öznitelik tablosundaki bir alana nasıl ekleyeceğini biliyor mu?

Bir açıklama buldum:

'CalculateField öğesinde ifadenin içindeki% Name% gibi satır içi değişken kullanmanız gerekir, böylece dosya adı ne olursa olsun, dbase dosyasının adı temel alınarak dize eklenir!'

% Name% ile CalculateField aracı denedim, ama mesaj var:

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)

Benim hatam nerede?

Yanıtlar:


12

Bu python kodu, FILENAME alanını tüm Özellik sınıflarına (Veri Kümeleri olanlar hariç) ekler ve özellik sınıfı adıyla doldurulur.

# 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")

sürüm 10.2'de çalışır. ancak sürüm 10.2.2'de çalışmaz.
Nate Bradshaw

Kodu ark haritasının python konsoluna yazarsam hiçbir şey olmaz (10.6) Bu sürümle çalışmıyor gibi görünüyor (?)
David

6

Arcscripts web sitesinde bunu yapmanıza yardımcı olacak bir komut dosyası var

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

Özet "FILENAME" adlı bir alan oluşturmak ve şekil dosyasının dosya adını öznitelik tablosundaki her girdiye eklemek için kullanılan basit bir komut dosyası. Belirtilen bir dizinde en fazla şekil dosyasıyla kullanın. Şekil dosyası girişlerini ayırırken ve orijinal şekil dosyası adının bir kırıntı izini korumak için ayrı bir dosyada birleştirirken kullanışlıdır.

Dosyayı, değişiklik gerektiren tüm shafiles'leri içeren bir dizinde çalıştırın

Umarım peşinde olursun


Bilgi için: Arcgis 10.X için çalışmıyor (Arcgis 9.x'ten sonra Python kod sözdizimi değişti).
gisnside


1

Yukarıdakilerin tümü sizin için işe yaramazsa, sürüm uyumsuzluğu veya bilgi eksikliği (benim için olduğu gibi) nedeniyle, bu geçici çözümü deneyin:

  • CAD'e Aktar dönüştürme aracını kullanın ve tüm özellik sınıflarınızı coğrafi veritabanınızdan bir DWG dosyasına dışa aktarın
  • CAD dosyasının Katman alanını doldurmak için özellik sınıfının adı kullanılır
  • özelliklerinizi tekrar GDB'ye aktarmak için CAD'den Geodatabase'e dönüştürme aracını kullanın
  • artık her bir özellik için tablonuzda katman adı alanları olacak
  • özellik sınıflarınızı GDB'den tek bir şekil dosyasında birleştirmek için Birleştir aracını kullanın; bu öğe, öğeleri tanımlamanız için katman öznitelik alanı ile orijinal özellik sınıfı adını içerir

0

Bu bağlantıyı tam olarak aradığınızı yapan bir ABD Balık ve Yaban Hayatı Servisi ArcGIS Aracı'na buldum . Bir cazibe gibi çalıştı!



ABD Balık ve Yaban Hayatı Servisi aracını yalnızca alan adı "NAME" ise çalışır. Alan Aracı Hesapla 'Alan Adı'% Alan Adı% ile güncellenerek esnek hale getirilebilir
Eleza Kollannur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.