Mam około 50 MXD ze wszystkimi uszkodzonymi warstwami, przez które przechodziłem i ręcznie resetowałem.
Dane zostały przeniesione z innego komputera, a struktura folderów została zmieniona, więc nie jest to zwykły proces zmiany (przykład):
„F: \ Data \ Rivers.shp” na „C: \ Data \ Rivers.shp”
jest bardziej jak:
„F: \ Data \ Rivers.shp” do C: \ Data \ Park \ Water \ Rivers.shp
i tak dalej dla wszystkich rodzajów danych (granice, pokrycie warzyw, drogi itp.), każdy w swoim własnym podfolderze.
Chcę utworzyć skrypt, który będę mógł uruchamiać wielokrotnie za każdym razem, gdy otworzę jeden z tych plików MXD, który przynajmniej naprawi niektóre z bardziej popularnych warstw, które znajdują się w większości plików MXD, a następnie będę mógł ręcznie naprawić resztę. W ten sposób mogę przynajmniej zaoszczędzić trochę czasu.
Używam czegoś w stylu:
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")
Pomysł polega na tym, aby w jakiś sposób dodać wiele skryptów „zamień” powyżej dla innych popularnych warstw, które znajdują się w mxd's.
Jednak powyższy skrypt nawet nie naprawia warstwy Rivers.
Jak mogę go uruchomić, a także dodać inne warstwy do naprawy, które mają różne ścieżki plików?
źródło