Thêm tên tệp vào trường thuộc tính bằng Trường tính toán?


9

Có ai biết cách thêm tên shapefile vào một trường trong bảng thuộc tính của tệp không?

Tôi đã tìm thấy một mô tả:

'Bạn phải sử dụng biến nội tuyến trong Tính toán như năng suất% Tên% trong biểu thức để cho dù tên tệp là gì, chuỗi sẽ được chèn dựa trên Tên của tệp dbase!'

Tôi đã thử tính toán công cụ tính toán với% Name%, nhưng tôi nhận được thông báo:

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)

Lỗi của tôi ở đâu?

Câu trả lời:


11

Mã python này thêm trường FILENAME cho tất cả Featureclass (không bao gồm các dữ liệu trong Bộ dữ liệu) và được điền với tên featureclass.

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

hoạt động trong phiên bản 10.2. nhưng không hoạt động trong phiên bản 10.2.2.
Nate Bradshaw

Không có gì xảy ra nếu tôi nhập mã trong bảng điều khiển python của bản đồ vòng cung (10.6) Có vẻ như nó không hoạt động với phiên bản này (?)
David

6

Có một đoạn script trên trang web arcscripts sẽ hỗ trợ bạn thực hiện điều này

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

Tóm tắt Một tập lệnh đơn giản để tạo một trường có tên là "FILENAME" và đính kèm tên tệp của shapefile vào mỗi mục trong bảng thuộc tính. Sử dụng với càng nhiều shapefiles trong một thư mục được chỉ định. Hữu ích khi chọn các mục nhập shapefile và kết hợp thành một tệp riêng biệt để duy trì đường dẫn bánh mì của tên shapefile ban đầu.

Chạy tệp trong một thư mục chứa tất cả các shapfiles cần sửa đổi

Tôi hy vọng rằng đây là những gì bạn đang theo đuổi


Để biết thông tin: không hoạt động đối với Arcgis 10.X (Cú pháp mã Python đã thay đổi sau Arcgis 9.x).
gisnside


1

Nếu tất cả những điều trên không phù hợp với bạn, do phiên bản không tương thích hoặc thiếu kiến ​​thức (giống như đối với tôi), thì hãy thử cách giải quyết này:

  • sử dụng công cụ chuyển đổi Xuất sang CAD và xuất tất cả các lớp đối tượng từ cơ sở dữ liệu địa lý của bạn sang tệp DWG
  • Tên của lớp đối tượng sẽ được sử dụng để điền vào trường Lớp cho tệp CAD
  • sử dụng công cụ chuyển đổi CAD sang Geodatabase để xuất lại các tính năng của bạn vào GDB
  • bây giờ bạn sẽ có các trường tên lớp trong bảng của mình cho từng tính năng
  • sử dụng công cụ Hợp nhất để kết hợp các lớp tính năng của bạn từ GDB thành một shapefile duy nhất, sẽ có trường thuộc tính lớp với tên lớp tính năng ban đầu để bạn xác định các mục

0

Tôi tìm thấy liên kết này với Công cụ ArcGIS của Cơ quan Động vật và Động vật hoang dã Hoa Kỳ thực hiện chính xác những gì bạn đang tìm kiếm. Nó làm việc như một say mê!


Đây là công cụ tương tự được mô tả trong câu trả lời trước đó
PolyGeo

Công cụ từ Dịch vụ Cá và Động vật hoang dã Hoa Kỳ chỉ hoạt động nếu tên trường là "NAME". Nó có thể được thực hiện linh hoạt bằng cách cập nhật Công cụ tính toán 'Tên trường' với% Tên trường%
Eleza Kollannur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.