Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Created on Thu May 16 21:53:49 2019
- @author: pedroherreralormendez
- """
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.basemap import Basemap
- from netCDF4 import Dataset
- '''Lectura archivos verano'''
- u_ver = Dataset('u_verano.nc') #Lectura archivo u_verano
- v_ver = Dataset('v_verano.nc') #Lectura archivo v_verano
- '''Lectura archivos invierno'''
- u_inv = Dataset('u_invierno.nc') #Lectura archivo u_invierno
- v_inv = Dataset('v_invierno.nc') #Lectura archivo v_invierno
- print ('Las variables de u son: ' + str(u_ver.variables.keys()))
- print ('Las variables de v son: ' + str(v_ver.variables.keys()))
- '''Lectura archivos presión'''
- p_inv = Dataset('p_inv.nc')
- p_ver = Dataset('p_ver.nc')
- '''Extracción de datos'''
- lat = u_ver.variables['lat'][:] #Extracción de datos de latitud
- lon = u_ver.variables['lon'][:] #Extracción de datos de longitud
- ###############
- # No hay necesidad de extraer lat y lon en cada archivo ya que
- # el arreglo de latitudes y longitudes es el mismo para todos los casos
- ###############
- '''u y v Verano'''
- u_ver_data = u_ver.variables['uwnd'][:] #Extracción de datos u verano
- v_ver_data = v_ver.variables['vwnd'][:] #Extracción de datos v verano
- viento_ver = np.sqrt((u_ver_data**2) + (v_ver_data**2))*3.6 #Calculo de la Magnitud del viento Verano
- '''u y v Invierno'''
- u_inv_data = u_inv.variables['uwnd'][:] #Extracción de datos de u invierno
- v_inv_data = v_inv.variables['vwnd'][:] #Extracción de datos de v invierno
- viento_inv = np.sqrt((u_inv_data**2) + (v_inv_data**2))*3.6 #Calculo de la Magnitud del viento Invierno
- '''Presión Verano e Invierno'''
- p_inv_data = p_inv.variables['slp'][:]
- p_ver_data = p_ver.variables['slp'][:]
- East = 359.0
- West = 220.0
- North = 70.0
- South = 0.00
- '''Ploteo del viento en Verano'''
- plt.figure(figsize=(12,8))
- m = Basemap(projection='cyl', llcrnrlon = West, \
- urcrnrlon = East,llcrnrlat = South,urcrnrlat = North, \
- resolution='l')
- m.drawcoastlines()
- m.drawcountries()
- m.drawparallels(np.arange(-90.,120.,10.), labels=[True,False,True,False])
- m.drawmeridians(np.arange(0.,360.,10.),labels=[True,False,False,True])
- lons, lats= np.meshgrid (lon, lat)
- x,y=m(lons, lats)
- cb = m.contourf(x,y,viento_ver[0,:,:], cmap='cubehelix_r')
- m.quiver(x,y,u_ver_data[0,:,:], v_ver_data[0,:,:]) #Plotea vectores
- cs = m.contour(x,y,p_ver_data[0,:,:],20, colors = 'k')
- m.colorbar(cb, label = 'Km/h')
- plt.clabel(cs, inline=1, fontsize=10)
- plt.title('Climatología Viento en Superficie y Presión \n JJA 1985-2015')
- plt.savefig('Viento_verano.png')
- '''Ploteo del viento en Invierno'''
- plt.figure(figsize=(12,8))
- m = Basemap(projection='cyl', llcrnrlon = West, \
- urcrnrlon = East,llcrnrlat = South,urcrnrlat = North, \
- resolution='l')
- m.drawcoastlines()
- m.drawcountries()
- m.drawparallels(np.arange(-90.,120.,10.), labels=[True,False,True,False]) #Dibuja las líneas de latitud
- m.drawmeridians(np.arange(0.,360.,10.),labels=[True,False,False,True]) #Dibuja las líneas de longitud
- lons, lats= np.meshgrid (lon, lat)
- x,y=m(lons, lats)
- cb = m.contourf(x,y,viento_inv[0,:,:], cmap='cubehelix_r')
- m.quiver(x,y,u_inv_data[0,:,:], v_inv_data[0,:,:]) #Plotea los vectores
- cs = m.contour(x,y,p_inv_data[0,:,:], 20,colors = 'k')
- m.colorbar(cb,label = 'Km/h')
- plt.clabel(cs, inline=1, fontsize=10)
- plt.title('Climatología Viento en Superficie y Presión \n DJF 1985-2015')
- plt.savefig('Viento_invierno.png') #Guarda la figura con un nombre y extensión .png
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement