Python - ESCALAR VECTORES Y PONER ESCALA CON quiver y quiverkey

   
Vista:

ESCALAR VECTORES Y PONER ESCALA CON quiver y quiverkey

Publicado por MIGUEL (2 intervenciones) el 07/11/2013 13:36:51
Tengo el siguiente codigo basado en la libreria basemap de matplotlib
para dibujar un mapa con trayectoria de un vehiculo y unos vectores de velocidad

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
# Para hacer el mapa con proyeccion Transverse Mercator
# setup Transverse Mercator Projection.  
    m = Basemap(width=Fwidth, height=Fheight, projection='tmerc',
            resolution='c', lat_0=truelat,   lon_0=truelon)
 ...
# cordenadas del mapa
# Convert trajectory to map projection coords. xpt,ypt = m(lon,lat). 
    xpT,ypT = m(Meta.GPS.LON,Meta.GPS.LAT)
 
#dibujo trayectoria            
    m.plot(xpT,ypT,linewidth=1.5,  color='r')
...
# Dibujo vectores.    
    Q = m.quiver(xv,yv,udat,vdat, angles='xy',   color ='black')     #or specify, e.g., width=0.003, scale=400)
    qk = plt.quiverkey(Q, 0.95, 1.05, 1, '1 m/s', labelpos='W',  color ='r')

Obtengo una grafica como la imagen 1 (VER imagen 1), donde casi no se ven los vectores.
Tengo dos problemas:

1) Cuando intento escalar la imagen con esta instrucción:

Q = m.quiver(xv,yv,udat,vdat, angles='xy', scale=400, color ='black')

los vectores me salen enormes, no importa la escala que ponga. ( VER Imagen 2)
Sólo quiero los vectores un poco mas grande

2) Quiero poner una escala de modulo del vector en función de su longitud, las unidades son m/s como los vectores.
Esto se hace con quiverkey y lo explica bastante bien en la fig 4.9 de este enlace.

http://physics.nmt.edu/~raymond/software/python_notes/paper004.html

Mi problema es que da igual las unidades que ponga, el vector no cambia de tamaño. No parece escalarse correctamente. Podemos ver el vector arriba a la derecha con 1m/s de unidades.La instrucción es:

qk = plt.quiverkey(Q, 0.95, 1.05, 1, '1 m/s', labelpos='W', color ='r')

¿ Estoy haciendo algo mal ? Parece no estar entendiendo algo.

Adjunto la funcion entera:
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder