Esri ha proporcionado instrucciones sobre cómo hacer un mapa de flujo radial, pero creo que las líneas curvas solo se producirán a larga distancia, como la mitad del globo.
Para distancias cortas (20 km), una línea geodésica probablemente todavía se verá bastante recta. Para seguir usando este proceso para un mapa de flujo radial en distancias cortas, entonces, pensé que podríamos editar la configuración de referencia para que la tierra sea más pequeña, por lo tanto, obtendrás una buena línea curva para una pequeña distancia. Alguien sabe cómo hacer esto?
Alternativamente, ¿hay otra herramienta en ArcGIS Desktop 10.0 para usar para hacer líneas curvas? Tengo 90 puntos que necesito conectar hasta 54 puntos, sería bueno automatizarlo en lugar de tener que dibujar las líneas manualmente.
Respuestas:
Aquí hay una ilustración del flujo de trabajo que mencioné en el comentario anterior, y aunque no conozco ninguna rutina simple predefinida para hacer esto, he adjuntado una hoja de cálculo de Excel para importar un conjunto de coordenadas de origen-destino y la hoja luego hace un conjunto o coordenadas de línea circular (hoja de cálculo aquí ). Tiene fórmulas configuradas, por lo que es bastante fácil importar nuevas coordenadas OD y extender las fórmulas para completar los resultados, pero seguiré la lógica del proceso de manera más explícita, y otros pueden dar consejos sobre cómo escribirlo completamente dentro ArcMap (o lo que sea).
Brevemente, creo que esto es razonable para visualizar datos de OD principalmente por la misma razón por la que las grandes líneas circulares son populares, proporcionan más distinción visual entre líneas. El enfoque que sugiero también tiene una ventaja sobre las grandes líneas circulares, ya que la dirección del flujo está codificada en el semicírculo. En esta otra respuesta en el sitio, proporciono una visión general más general de las técnicas de visualización para el mapeo de flujo, y muchas de esas mismas técnicas se pueden aplicar además de hacer arcos como este.
Entonces, para detallar cómo se dibujan líneas como sugiero, esencialmente solo tengo 3 pasos para el proceso, 1) encontrar la orientación del flujo, 2) encontrar el punto medio y la distancia del flujo, 3) tratar el punto medio como el centro de un círculo, y luego dibuje el arco (un semicírculo desde el origen hasta el destino). Para que quede claro, estoy comenzando con un par de coordenadas de origen
(x1,y1)
y de destino proyectadas(x2,y2)
.Entonces 1) encuentre la orientación del flujo. Primero se usa la fórmula
ATAN((y2 - y1)/(x2 - x1))
y luego, dependiendo de la dirección, se asigna una orientación dependiendo de si la dirección es hacia el este o hacia el oeste. Un pseudocódigo de ejemplo a continuación (asigno puntos OD que están en las mismas coordenadas con una orientación de cero). Aquí la varaibleor_rad
está destinada a ser la abreviatura de "orientación en radianes" y sepi
refiere al valor de pi.2) Encuentre el punto medio y la distancia del flujo. Esto es muy simple, para solo un conjunto de coordenadas emparejadas será el punto medio en las coordenadas (x, y)
(x1+x2/2,y1+y2/2)
. Así que definamosmid_x = (x1 + x2)/2
ymid_y = (y1 + y2)/2
para la siguiente parte. La distancia usando el pythagoreum theorum es simplementedistance = SQRT((x1 - x2)^2 + (y1 - y2)^2)
.3) Luego, dada esa información, dibuje el círculo dado sobre un número predeterminado de grados y un radio (que es la mitad de la distancia entre los dos puntos). Por ejemplo, digamos que comenzamos con un conjunto de pares de coordenadas OD en
(1,3):(3,2)
. La orientación en grados será ~ 116 (y en radianes ~ 2), el punto medio x, y será(2,2.5)
y la distancia entre los dos puntos es aproximadamente 2.2.Entonces, digamos que queremos dibujar el semicírculo alrededor de 180 grados. En pseduo-code (usando las variables que ya definí) las iteraciones se verán algo así;
A continuación se inserta un diagrama de las coordenadas originales que especifiqué anteriormente. Comenzar en cero y terminar en 180 asegura que el ser y los puntos finales estén en los mismos lugares. Ajustar el ciclo para tener más pasos (arco más detallado) o menos (arco menos detallado) debería ser bastante obvio.
Para tener en cuenta, otros hilos en el sitio discuten la creación de líneas a partir de datos de puntos (ver la etiqueta de creación de polilíneas ). Tengo un ejemplo en la hoja de cálculo xls adjunta, y utilicé la herramienta arcmap ET Geo-wizards para convertir las coordenadas de la hoja de cálculo en líneas de archivo de forma. Los arcos en los datos de ejemplo en la hoja de cálculo adjunta posteriormente se ven así;
Una actualización simple pero potencialmente útil para esta configuración actual sería actualizar las fórmulas para permitir una cantidad de excentricidad predeterminada en el arco, aunque no he estado muy seguro de cómo hacerlo en mis pocos intentos hasta ahora. Espero recibir sugerencias y comentarios de la comunidad aquí sobre mi consejo.
fuente