¿Cómo se pueden cambiar las rutas de datos de origen para cada archivo de capa en la carpeta X usando arcpy?
He seguido Actualizando y arreglando las fuentes de datos con arcpy.mapping lo mejor que puedo, sin embargo, todo lo que obtengo es un poco útil Runtime error <type 'exceptions.ValueError'>: Layer: Unexpected error
que no me dice lo suficiente como para solucionar lo que está mal o falta.
Aquí está el código (simplificado para probar un archivo de una sola capa):
import arcpy, os
fname = r'K:\Layers\xxx.lyr'
lyr = arcpy.mapping.Layer(fname)
oldpath = lyr.workspacePath
print 'oldpath: ', oldpath
lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb')
print 'newpath: ', lyr.workspacePath
y los resultados:
oldpath: K:\Canvec_Utility\Temp.gdb
Traceback (most recent call last):
File "x10x.py", line 12, in <module>
lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb')
File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line 181, in fn_
return fn(*args, **kw)
File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\_mapping.py", line 601, in findAndReplaceWorkspacePath
return convertArcObjectToPythonObject(self._arc_object.findAndReplaceWorkspacePath(*gp_fixargs((find_workspace_path, replace_workspace_path, validate), True
)))
ValueError: Layer: Unexpected error
((movió la sección 'actualizar' a una respuesta))
Runtime error...
citado arriba es del shell interactivo de python en Arccatalog, que no proporciona un rastreo. Los resultados con el rastreo se copian desde un shell de comandos.