Dodanie nazwy pliku do pola atrybutu za pomocą funkcji Oblicz pole?


10

Czy ktoś wie, jak dodać nazwę pliku kształtu do pola w tabeli atrybutów pliku?

Znalazłem opis:

„Musisz użyć zmiennej wbudowanej w CalculateField, takiej jak% Name% w wyrażeniu, aby bez względu na nazwę pliku ciąg został wstawiony na podstawie nazwy pliku dbase!”

Próbowałem narzędzie CalculateField z% Name%, ale dostałem komunikat:

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)

Gdzie jest mój błąd?

Odpowiedzi:


12

Ten kod python dodaje pole FILENAME do wszystkich klas obiektów (z wyjątkiem tych w zestawach danych) i zapełnia się nazwą klasy obiektów.

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

działa w wersji 10.2. ale nie działa w wersji 10.2.2.
Nate Bradshaw,

Nic się nie stanie, jeśli wpiszesz kod w konsoli pythonowej mapy łukowej (10.6) Wygląda na to, że nie działa z tą wersją (?)
David

6

Na stronie internetowej arcscripts znajduje się skrypt, który powinien ci w tym pomóc

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

Podsumowanie Prosty skrypt do utworzenia pola o nazwie „FILENAME” i dołączenia nazwy pliku shapefile do każdego wpisu w tabeli atrybutów. Używaj z tyloma plikami kształtów w określonym katalogu. Przydatne przy wybieraniu pozycji z pliku kształtu i łączeniu go w osobny plik, aby zachować ścieżkę nawigacyjną oryginalnej nazwy pliku kształtu.

Uruchom plik w katalogu zawierającym wszystkie pliki shap wymagające modyfikacji

Mam nadzieję, że o to ci chodzi


Dla informacji: nie działa w Arcgis 10.X (składnia kodu w Pythonie zmieniła się po Arcgis 9.x).
gisnside


1

Jeśli wszystko powyższe nie działa dla Ciebie z powodu niezgodności wersji lub braku wiedzy (tak jak dla mnie), wypróbuj to obejście:

  • użyj narzędzia do konwersji Eksportuj do CAD i wyeksportuj wszystkie klasy obiektów z geobazy do pliku DWG
  • nazwa klasy obiektów zostanie użyta do wypełnienia pola Warstwa dla pliku CAD
  • użyj narzędzia konwersji CAD do Geodatabase, aby wyeksportować swoje obiekty z powrotem do GDB
  • będziesz mieć teraz pola nazw warstw w tabeli dla każdej pojedynczej operacji
  • użyj narzędzia Scal, aby połączyć klasy elementów z GDB w jeden plik kształtu, który będzie miał pole atrybutu warstwy z oryginalną nazwą klasy elementów, aby można było zidentyfikować elementy

0

Znalazłem ten link do narzędzia ArcGIS US Fish and Wildlife Service, które robi dokładnie to, czego szukasz. Działa jak urok!


Jest to to samo narzędzie, które opisano we wcześniejszej odpowiedzi
PolyGeo

Narzędzie z US Fish and Wildlife Service działa tylko wtedy, gdy nazwa pola to „NAME”. Można go uelastycznić, aktualizując narzędzie Oblicz pole „Nazwa pola” za pomocą% Nazwa pola%
Eleza Kollannur
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.