# -*- coding: utf-8 -*- """ Created on Wed Mar 25 13:57:14 2020 @author: DEROL """ # -*- coding: utf-8 -*- """ Created on Mon Mar 23 17:39:19 2020 @author: DEROL """ #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Mar 9 10:11:03 2020 @author: sakaros """ import numpy as np import matplotlib.pyplot as plt import glob as gb import re # precipitations sierem aflat = np.arange(-35, -35+0.5*145, 0.5) aflon = np.arange(-18, -18+0.5*139, 0.5) time = np.arange('1940-01', '2000-01', dtype='datetime64[M]') rfile = np.sort(gb.glob('/Users/DELL/Documents/Thèse/rain_af/*.txt')) rfiles = rfile.reshape(12,60).T.reshape(720) afr = np.empty((rfiles.shape[0], aflat.shape[0], aflon.shape[0])) for i in range(len(rfiles)): pp = np.loadtxt(rfiles[i], skiprows=6) pp[pp <0] = np.nan afr[i, :,:] = pp[::-1,:] ### plot average continental rainfall plt.contourf(aflon, aflat, np.nanmean(afr, 0)) plt.colorbar() plt.xlabel('Longitude (°E)', fontweight = 'bold') plt.ylabel('Latitude (°N)', fontweight = 'bold') import numpy.ma as ma import fiona import shapely.vectorized from shapely.geometry import shape fname = 'bassin_versant_sanaga.shp' cn_area = fiona.open(fname) pol = cn_area.next() geom = shape(pol['geometry']) lonmin =9 ; lonmax = 15.5; latmin = 3; latmax =8 ; lon=np.arange(lonmin, lonmax+.5, .5); lat=np.arange(latmin,latmax+.5,0.5) x0, x1 = lonmin, lonmax y0, y1 = latmin, lonmax xx,yy = np.meshgrid(lon,lat) mask_ = shapely.vectorized.contains(geom, xx, yy) mask = np.tile(mask_, (720, 1,1)) #np.where(np.in1d(aflon, lon) == 1); inlon = np.where(np.in1d(aflon, lon) == 1) # inlat = np.where(np.in1d(aflat, lat) == 1) rain = afr[:, inlat[0], :][:, :, inlon[0]] #rain = ma.masked_array(rain, ~mask) plt.contourf(lon,lat, rain[1, :, :]) plt.colorbar() plt.xlabel('Longitude (°E)', fontweight = 'bold') plt.ylabel('Latitude (°N)', fontweight = 'bold') # regrouper les données par années an1=rain[1:720:60] an2=rain[2:720:60] an3=rain[3:720:60] an4=rain[4:720:60] an5=rain[5:720:60] an6=rain[6:720:60] an7=rain[7:720:60] an8=rain[8:720:60] an9=rain[9:720:60] an10=rain[10:720:60] an11=rain[11:720:60] an12=rain[12:720:60] an13=rain[13:720:60] an14=rain[14:720:60] an15=rain[15:720:60] an16=rain[16:720:60] an17=rain[17:720:60] an18=rain[18:720:60] an19=rain[19:720:60] an20=rain[20:720:60] an21=rain[21:720:60] an22=rain[22:720:60] an23=rain[23:720:60] an24=rain[24:720:60] an25=rain[25:720:60] an26=rain[26:720:60] an27=rain[27:720:60] an28=rain[28:720:60] an29=rain[29:720:60] an30=rain[30:720:60] an31=rain[31:720:60] an32=rain[32:720:60] an33=rain[33:720:60] an35=rain[34:720:60] an36=rain[36:720:60] an37=rain[37:720:60] an38=rain[38:720:60] an39=rain[39:720:60] an40=rain[40:720:60] an41=rain[41:720:60] an42=rain[42:720:60] an43=rain[43:720:60] an44=rain[44:720:60] an45=rain[45:720:60] an46=rain[46:720:60] an47=rain[47:720:60] an48=rain[48:720:60] an49=rain[49:720:60] an50=rain[50:720:60] an51=rain[51:720:60] an52=rain[52:720:60] an53=rain[53:720:60] an54=rain[54:720:60] an55=rain[55:720:60] an56=rain[56:720:60] an57=rain[57:720:60] an58=rain[58:720:60] an59=rain[59:720:60] an60=rain[60:720:60] import statistics # Use: statistics.mean(liste) from statistics import mean np.nanmean(an60)