2 votos

¿Calcular la suma de distancias entre varios puntos en ArcMap?

Estoy utilizando ArcMap 10.2.

Tengo dos capas: una es de unas 2.000 urnas geolocalizadas y la otra es de una docena de instalaciones geolocalizadas. Me gustaría calcular la distancia total entre cada urna y la docena de instalaciones. Por ejemplo, la urna 1 está a 10 km de la instalación X, a 15 km de la instalación Y, a 20 km de la instalación Z, y así sucesivamente. Por tanto, a la urna 1 se le asignaría una puntuación de 45 km. Me gustaría calcular esta puntuación para las aproximadamente 2000 urnas.

Hasta ahora, he utilizado la herramienta de distancia de punto donde las urnas son las características de entrada y las instalaciones son las características cercanas, dejó el radio de búsqueda en blanco, y ArcGIS produce una tabla, con una columna "DISTANCIA" poblada, por lo que parece de haber funcionado. Mi pregunta es triple:

  1. ¿Es este el procedimiento correcto?
  2. ¿En qué unidad se reporta esta distancia (las proyecciones son UTM, por lo que asumo que está en metros por defecto?)
  3. Si dejo el "radio de búsqueda" en blanco, ¿ArcGIS calcula por defecto las distancias en toda la extensión de la capa?

1voto

xenny Puntos 670

Este es un procedimiento correcto. A continuación, puede utilizar la tabla de resumen para obtener la suma de la distancia basada en los ID de sus urnas, y unir esta tabla.

El punto de distancia efectivamente proporciona distancias basadas en el sistema de coordenadas, por lo que en tu caso serán metros, y si no especificas una distancia funcionará en toda la extensión.

Como observación, si tiene un número muy grande (por ejemplo, 100.000) de urnas y sólo unas pocas instalaciones, puede crear un conjunto de rásteres con distancia euclidiana, sumarlos y luego extraer los valores a puntos. Esto será menos preciso (debido a la reslución del raster), pero más rápido.

1voto

FelixIP Puntos 4035

Cree un campo numérico (doble) en la tabla de boletas y pruebe esto con la calculadora de campos. Bloque de código:

def TotalDist(shp ):
  p=shp.firstPoint
  mxd = arcpy.mapping.MapDocument("CURRENT")
  layers=arcpy.mapping.ListLayers(mxd, "facilities")
  lr=layers[0]
  g=arcpy.Geometry()
  geometryList=arcpy.CopyFeatures_management(lr,g)
  s=0
  for f in geometryList:
    s+=f.distanceTo(p)
  return s

TotalDist( !Shape!)

Este es el enfoque de la vieja escuela de la Avenida, mi protesta contra las molestas limitaciones de la licencia de ArcGIS :) Es una buena idea para tener sólo 2 capas en la tabla de contenido y ocultar TOC. Funcionará mucho más rápido

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X