Cómo graficar un punto en una serie de tiempo en python.
Estoy enfrentando un problema al trazar puntos en una serie de tiempo, ya que no puedo identificar el valor del eje y. Tengo 2 conjuntos de datos: un archivo NetCDF con datos satelitales (temperatura de la superficie del mar) y otro archivo CSV con datos de la trayectoria de tormentas (tiempo, longitud, latitud, velocidad del viento, etc.). Puedo trazar la serie de tiempo de temperatura deseada para todas las ubicaciones de la trayectoria de tormentas ubicadas en el océano. Sin embargo, quiero indicar el momento de la ocurrencia de la huella de la tormenta dentro de cada línea de la serie de tiempo. Entonces, una línea representa una ubicación y la temperatura cambiante a lo largo del tiempo, pero también quiero mostrar CUÁNDO ocurrió la tormenta en esa ubicación.
Este es mi código hasta ahora (funciona):
lati = stormtrack_lat.values
loni = stormtrack_lon.values
for i, dummy in enumerate(lati):
dsloc = SSTskin_file.sel(lon=loni[i], lat=lati[i], method='nearest')
dsloc['analysed_sst'].plot()
#plt.plot(dsloc,stormtrack_time[i], "or") #aquí quiero agregar un punto a cada línea que indique el momento en que ocurrió la tormenta en esta ubicación
plt.title('Mi título')
plt.xlabel('tiempo')
plt.ylabel('SST skin en K')
El archivo netcdf contiene los datos de tiempo como coordenada de fecha y hora, pero mi archivo CSV contiene estos datos:
| da | INDEX | SIZE | AREA | x | y | RADIUS | MEANV
2020021018 1505 2934 177.363 -2.82 49.87 1782.18 16.18
2020021100 1505 3812 220.078 5.25 49.57 2811.51 16.17
...
donde ‘da’ representa la fecha y hora (YYYYMMDDHH). Entonces, creo que necesito (1) convertir los valores de ‘da’ del CSV en un formato de fecha y hora para usarlos en la línea plt.plot(dsloc,stormtrack_time[i], "or")
y luego (2) encontrar esos valores de fecha y hora dentro del archivo netcdf y luego (3) usar ese punto de tiempo para trazar el valor de SST correspondiente/punto de tiempo.
El problema es que no sé CÓMO hacer esto. ¿Alguien puede ayudar?
¡Gracias!
davy.ai
Para resolver este problema, puedes seguir estos pasos:
datetime.strptime
del módulo datetime. Puedes crear una nueva columna en tu archivo CSV con estos valores convertidos.sel
con la coordenada de tiempo del archivo NetCDF.¡Espero que esto ayude! Avísame si tienes alguna pregunta.