Tôi có khoảng 50 mxd với tất cả các lớp bị hỏng mà tôi đã trải qua và đặt lại thủ công.
Dữ liệu được chuyển từ một máy tính khác và cấu trúc thư mục đã được thay đổi, vì vậy đây không chỉ là một quá trình thay đổi đơn giản (ví dụ):
"F: \ Data \ Rivers.shp" thành "C: \ Data \ Rivers.shp"
nó giống như:
"F: \ Data \ Rivers.shp" thành C: \ Data \ Park \ Water \ Rivers.shp
và v.v. cho tất cả các loại dữ liệu (ranh giới, bìa rau, đường, v.v.) mỗi loại trong thư mục con của riêng chúng.
Tôi muốn tạo một tập lệnh mà tôi có thể chạy liên tục bất cứ khi nào tôi mở một trong những mxd này ít nhất sẽ sửa chữa một số lớp phổ biến hơn được tìm thấy trong hầu hết các mxd của tôi, và sau đó tôi có thể tự sửa phần còn lại. Bằng cách đó tôi có thể tiết kiệm ít nhất bản thân mình một số thời gian.
Tôi đã sử dụng một cái gì đó dọc theo dòng:
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr == "Rivers": #Should this be the layner name in TOC or FC name?
lyr.replaceDataSource(r"C:\Data\Park\Water", "SHAPEFILE_WORKSPACE", "Rivers")
Ý tưởng sau đó sẽ là bằng cách nào đó thêm nhiều tập lệnh "thay thế" ở trên cho các lớp phổ biến khác có trong mxd của tôi.
Tuy nhiên, đoạn script trên thậm chí không sửa được lớp Rivers.
Làm thế nào tôi có thể làm cho nó hoạt động, và cũng thêm vào các lớp khác để được sửa chữa có đường dẫn tệp khác nhau?