Quiero limpiar la tabla de atributos de un archivo de forma de carretera para todas las entradas en los campos.
Por ejemplo: como se ve a continuación, tengo una función de carretera con un "Nombre", Nombre desde y Nombre hasta en la lista de atributos. En la fila seleccionada, el nombre del segmento es Louis Botha.
El NameFrom también contiene este nombre de segmento (Louis Botha & Unknown).
Después de limpiar los datos, solo quiero que lo siguiente se presente en los campos relevantes:
Nombre = Louis Botha Nombre De = Nombre desconocido Para = Janeke
¿Hay alguna forma de eliminar esto en los campos "nombre de" y "nombre de" para TODOS los atributos?
arcpy
arcgis-10.1
fields-attributes
Dean van den Heever
fuente
fuente
Respuestas:
El siguiente script realiza las acciones que está realizando después de usar un cursor. Hay una gran cantidad de manejo de errores para lidiar con muchos problemas potenciales: elimine según sea necesario. Esto altera los datos originales, así que asegúrese de ejecutar esto en una copia para asegurarse de que los resultados son lo que busca. Agregué comentarios en el guión en lugar de resaltar aquí.
fuente
Puede usar la siguiente función de Python en la Calculadora de campo.
Copie lo anterior en la sección de código de script de codeblock / pre-logic. Puede ejecutarlo una vez para Name_From usando
remove_name(!Name!, !Name_From!)
como expresión, y una segunda vez para Name_To usandoremove_name(!Name!, !Name_To!)
.Este código funcionará no solo para los casos en que el valor del Nombre está al principio o al final de Name_From / Name_To , sino también para aquellos en los que está en el medio. Por ejemplo,
remove_name('Janeke', 'Hereeniging & Janeke & Willemse')
vuelve'Hereeniging & Willemse'
. Para que esto funcione, los nombres de entrada deben estar separados por ampersands (&
).fuente