Crear flechas basadas en velocidades de GPS para mostrar el desplazamiento

8

Tengo problemas para crear simbología en ArcGIS que pueda mostrar flechas de velocidad de estaciones GPS. Tengo un archivo de puntos con información de ubicación, velocidad y dirección de cada estación de GPS. Quiero crear un mapa similar a la imagen que adjunto. El tamaño de las flechas se mantiene igual pero la longitud cambia según la velocidad. Vea abajo.

ingrese la descripción de la imagen aquí

Sin embargo, mi primer instinto fue usar símbolos graduados que simplemente escalan las flechas y no las estiran.

dmariamp
fuente

Respuestas:

12

Creo que su mejor opción es presentar datos por líneas.

  • Crea un buffer de cualquier tamaño alrededor de los puntos
  • Conviértelas en líneas

Aplique la siguiente expresión de calculadora de campo (Python) en el campo Forma:

def plineM (B,V,SCALE,shp):
 b=float(B);v=float(V)
 part=shp.getPart(0)
 buf=arcpy.Polygon(part)
 pC=buf.centroid
 X=pC.X+v*SCALE*math.cos(b/180*3.141593)
 Y=pC.Y+v*SCALE*math.sin(b/180*3.141593)
 newP=arcpy.Point(X,Y)
 pLine=arcpy.Polyline(arcpy.Array([pC,newP]))
 return pLine

----------------------------

plineM( !BEARING!, !Velocity!,0.5, !Shape! )

Asegurarse de que sus rodamientos se expresen en grados, en sentido antihorario desde el este

TABLA DE PUNTOS DE ENTRADA:

ingrese la descripción de la imagen aquí

SALIDA:

ingrese la descripción de la imagen aquí

Es posible que desee jugar con factor de escala. Tenga en cuenta que se prueba en shapefile, si no es el caso, inicie la sesión de edición en líneas antes de ejecutar la expresión.

ACTUALIZACIÓN: enero de 2020

Un par de personas informaron ERROR 000539 al usar la expresión sugerida. La razón más probable es que el búfer sea grande alrededor del punto original, lo que resulta en superposiciones del búfer. Si está utilizando la herramienta ArcGIS incorporada para convertir buffers en líneas, podría dar lugar a líneas formadas por 2 vértices:

ingrese la descripción de la imagen aquí

Una posible solución es crear memorias intermedias más pequeñas.

FelixIP
fuente
Gran respuesta. Definitivamente las líneas son el camino a seguir aquí.
Fezter
1
Sí, lo hice, de lo contrario, ¿por qué el punto 2 en la publicación? Otro enfoque es calcular coordenadas finales usando las mismas fórmulas en la tabla de polígonos y usar la herramienta xy to line.
FelixIP
1
Lea los comentarios anteriores. Si esto no funciona, conviértalo a un script verdadero. Calculadora Arcgis, puede ser impredecible, por decir lo menos.
FelixIP
1
@JGIS ver respuesta actualizada.
FelixIP
1
Veo 2 posibles razones: a) su PC no sabe qué es seno, es improbable b) no leyó mi publicación y expresó ángulos en otra cosa, pero grados. Muy probable.
FelixIP
2

FelixIP ha proporcionado una solución bastante elegante. Una alternativa más simple sería:

  1. Establezca la Simbología para su capa de puntos en "Símbolos graduados", con el Valor establecido en su campo VELOCIDAD.
  2. Haga clic en el botón Plantilla para seleccionar un símbolo que sea adecuado para representar rumbos y velocidades; elegí una flecha de la fuente ESRI North para el ejemplo.
  3. Establezca el rango de Tamaño de símbolo en algunos valores que funcionarán para su mapa (puede refinar estos valores más adelante).
  4. Haga clic en el botón Avanzado y seleccione la opción "Rotación". En la ventana Rotar, seleccione el campo Cojinete en el cuadro desplegable y elija el estilo de rotación que se adapte a sus datos.

(1)

Paso 1

(2)

Paso 2

(4)

Paso 3

(Resultado de ejemplo)

Paso 4

Adán
fuente
Debería haber señalado que estos símbolos se centrarán en dónde se encuentra el punto. Esto se puede cambiar para que el punto de inicio de la flecha se ubique en el punto GPS cambiando el desplazamiento Y del símbolo del puntero en el paso 2 para que la base de la flecha esté nivelada con el eje X de la vista previa. Si es necesario, también puede agregar una capa de puntos al símbolo para mostrar el punto GPS.
Adam
1
Gracias por tu sugerencia. Sin embargo, estaba buscando una solución donde la longitud de la flecha cambiara en función de la velocidad, no solo escalar el tamaño de la flecha.
dmariamp