0 votos
229 vistas
 Necesito crear el campo "ORDEN" pero en función del más cercano, es decir, NO USAR el campo FID sino el campo "NEAR_DIST" donde ordene con 1 el más cercano (fi 22) y con 24 el más lejano (fid 8)
por Novato (100 puntos)   en ArcGIS Desktop | 229 vistas

1 Respuesta

0 votos
Para crear el campo "ORDEN" basado en "NEAR_DIST" en ArcMap, primero abre la tabla de atributos de tu capa, luego haz clic en el botón de opciones de tabla y selecciona "Add Field". Nombra el nuevo campo como "ORDEN", selecciona "Long Integer" como tipo de datos y haz clic en "OK". Después, haz clic derecho en el encabezado del nuevo campo "ORDEN" y selecciona "Field Calculator". Asegúrate de que "Python" esté seleccionado como el lenguaje de cálculo y utiliza el siguiente script:

# Expresión para calcular el orden basado en NEAR_DIST
def calculate_order(near_distances):
    sorted_distances = sorted(near_distances)
    return [sorted_distances.index(dist) + 1 for dist in near_distances]

# Asignar a una variable la lista de distancias
near_distances = [ !NEAR_DIST! for _ in range(0, len(!NEAR_DIST!)) ]
# Calcular los valores de orden
orders = calculate_order(near_distances)
# Asignar el valor correspondiente a la fila actual
orders[ !FID! ]
por Administrador (7.9k puntos)  
0
Franz gracias por tu pronta respuesta, lamentablemente no me resulta o algo estoy haciendo mal. Si me puedes explicar "con manzanas" como decimos en mi país, te lo agradeceré enormemente.
Este sería el script que tengo que copiar?
def calculate_order(near_distances):
    sorted_distances = sorted(near_distances)
    return [sorted_distances.index(dist) + 1 for dist in near_distances]
1,450 preguntas
1,594 respuestas
986 comentarios
1,299 usuarios