Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
plt.plot(fechas,qestn)
plt.grid()
plt.ylabel("Caudal medio normalizado (m3/s)")
plt.subplot(212)
plt.plot(fechas,q)
plt.grid()
plt.ylabel("Caudal medio mensual (m3/s)")
===============================================================================
# Pasar serie diaria a mensual con Pandas
===============================================================================
qmedio=qpandas.resample('M').mean()
===============================================================================
#
===============================================================================
#==============================================================================
#Normalizar pxeles, para quitar el ciclo anual de cada pxel
#==============================================================================
meses=12 # Perodos en un ao
sstestn=np.ones(sst.shape) # Matriz serie temperatura mensual Normalizada
M=np.ones((12,len(lat),len(lon))) #Crear matriz M de Medias
D=np.ones((12,len(lat),len(lon))) #Crear matriz D de Desviaciones estndar
for i in range(len(lat)): # Leer filas de -90, 90
for j in range(len(lon)): # Leer columnas de -180, 180
for m in range(meses): # 12 meses
M[m,i,j]=np.mean(sst[m::12,i,j]) # Media de cada mes, segn el t ----- [m::12,i,j para ir desde el mes m de 12 en 12 hasta el final, es decir, utiliz
ar enero mes 1, enero del mes 2, etc.
D[m,i,j]=np.std(sst[m::12,i,j]) # Desviacin estndar de cada mes, segn e
l t
for k in range(len(time)): #Recorrer toda la serie temporal en cada pxel
sstestn[k,i,j]=(sst[k,i,j]-M[np.mod(k,meses),i,j])/D[np.mod(k,meses)
,i,j] # Pxel normalizado
plt.subplots_adjust(hspace=0.4)
#Graficar todos los meses
for g in range(len(time)):
plt.imshow(sstestn[g,:,:],extent=[lon[0]-180,lon[-1]-180,lat[-1],lat[0]])
plt.colorbar()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\SSTNORM MES %d .png" %(g))
plt.close()
# Figure 1
plt.subplot(221)
plt.plot(fechas,sstestn[:,30,30])
plt.title('Serie Estandarizada')
plt.grid(True)
# Figure 2
plt.subplot(222)
plt.plot(fechas,sst[:,30,30])
plt.title('Serie Original')
plt.grid(True)
plt.subplots_adjust(hspace=3)
plt.figure(figsize=[8,8])
plt.subplot(211)
plt.plot(fechas,sst[:,30,30])
plt.grid()
plt.ylabel('Temperatura Serie Original')
plt.subplot(212)
plt.plot(fechas,sstestn[:,30,30])
plt.grid()
plt.ylabel('Temperatura Serie Estandarizada')
mes = 2 # Corresponde al primer mapa a generar conforme la numeracin inicial (0 e
l primer mapa).
fig = plt.figure(figsize=(18,10)) #Establezco el tamao de la figura
ax = fig.add_subplot(121)
ax.set_title(u'Temperatura (C) '+fechas_str[mapa][0:7], size=12) #Determino el ttu
lo
m = Basemap(llcrnrlat=-88.75,urcrnrlat=88.75, llcrnrlon=1.25,urcrnrlon=358.75,
rsphere=6371200.,resolution='l',area_thresh=10000)
ny = lat.shape[0]; nx = lon.shape[0]
lons, lats = m.makegrid(nx, ny)
x,y = m(lons, lats)
cs = m.contourf(x,y,np.flipud(M[mes]))
m.colorbar(location='bottom',pad="10%")
m.drawparallels(np.arange(-90.,90,30.),labels=[1,0,0,0], size=11,linewidth=0.1)
m.drawmeridians(np.arange(0, 360, 30.),labels=[0,0,0,1], size=11, linewidth=0.1)
m.drawcoastlines()
m.drawmapboundary()
#==============================================================================
#Estandarizar pxeles, para quitar el ciclo anual de cada pxel
#==============================================================================
meses=12 # Perodos en un ao
sstest=np.ones(sst.shape)
M1=np.ones((12,len(lat),len(lon))) #Crear matriz M
for i in range(len(lat)): # Leer filas de -90, 90
for j in range(len(lon)): # Leer columnas de -180, 180
for m in range(meses): # 12 meses
M1[m,i,j]=np.mean(sst[m::12,i,j]) # Media de cada mes, segn el t ----- [m::12,i,j para ir desde el mes m de 12 en 12 hasta el final, es decir, utili
zar enero mes 1, enero del mes 2, etc.
for k in range(len(time)): #Recorrer toda la serie temporal en cada pxel
sstest[k,i,j]=sst[k,i,j]/M[np.mod(k,meses),i,j] # Pxel estandarizado
plt.subplots_adjust(hspace=0.4)
plt.figure(figsize=[15,10])
plt.imshow(sstest[5,:,:]) #Mostrar en algn mes todo el mapa estandarizado
plt.colorbar()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\Mapa estandarizado 10.png")
plt.subplots_adjust(hspace=0.4)
plt.figure(figsize=[15,10])
plt.imshow(M[0,:,:]) #Mostrar la media del Mes m (0-12)
plt.colorbar()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\Mapa estandarizado Enero.png")
mes = 0 # Corresponde al primer mapa a generar conforme la numeracin inicial (0 e
l primer mapa).
fig = plt.figure(figsize=(18,10)) #Establezco el tamao de la figura
ax = fig.add_subplot(121)
ax.set_title(u'Temperatura (C) '+fechas_str[mapa][0:7], size=12) #Determino el ttu
lo
m = Basemap(llcrnrlat=-88.75,urcrnrlat=88.75, llcrnrlon=1.25,urcrnrlon=358.75,
rsphere=6371200.,resolution='l',area_thresh=10000)
ny = lat.shape[0]; nx = lon.shape[0]
lons, lats = m.makegrid(nx, ny)
x,y = m(lons, lats)
cs = m.contourf(x,y,np.flipud(M1[mes]))
m.colorbar(location='bottom',pad="10%")
m.drawparallels(np.arange(-90.,90,30.),labels=[1,0,0,0], size=11,linewidth=0.1)
m.drawmeridians(np.arange(0, 360, 30.),labels=[0,0,0,1], size=11, linewidth=0.1)
m.drawcoastlines()
m.drawmapboundary()
for g in range(len(time)):
#for g in ((range(len(time[0]))),len(range(time[100]))):
plt.imshow(sstest[g,:,:],extent=[lon[0]-180,lon[-1]-180,lat[-1],lat[0]])
plt.colorbar()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\SSTESTAND MES %d .png" %(g)
)
plt.close()
#Prueba para un pxel
# Figure 1
plt.subplot(221)
plt.plot(sstest[:,30,30])
plt.title('Serie Estandarizada')
plt.grid(True)
# Figure 2
plt.subplot(222)
plt.plot(sst[:,30,30])
plt.title('Serie Original')
plt.grid(True)
===============================================================================
#Graficar mapas del SST
===============================================================================
mapa = 0 # Corresponde al primer mapa a generar conforme la numeracin inicial (0
el primer mapa).
fig = plt.figure(figsize=(18,10)) #Establezco el tamao de la figura
ax = fig.add_subplot(121)
ax.set_title(u'Temperatura (C) '+fechas_str[mapa][0:7], size=12) #Determino el ttu
lo
m = Basemap(llcrnrlat=-88.75,urcrnrlat=88.75, llcrnrlon=1.25,urcrnrlon=358.75,
rsphere=6371200.,resolution='l',area_thresh=10000)
ny = lat.shape[0]; nx = lon.shape[0]
m.drawcoastlines()
m.drawmapboundary()
plt.savefig('Correlacin_rezago.pdf', bbox_inches='tight') #Determino el nombre de
l archivo y la extensin
#==============================================================================
# -------Mapa de correlaciones entre Qestn y SSTest .NORMALIZADOS V2
#==============================================================================
caudal1=qestn
spearman5 = np.ones((len(lat),len(lon)))
pearson5=np.ones((len(lat),len(lon)))
i=0
for la in range(len(lat)):
j=0
for lo in range(len(lon)):
sp = spearmanr(caudal1,sstestn[:,la,lo])[0]
pe = pearsonr(caudal1,sstestn[:,la,lo])[0]
spearman5[i][j]=sp
pearson5[i][j]=pe
j=j+1
i=i+1
===============================================================================
plt.imshow(spearman5)
plt.colorbar()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\Mapa de Correlacion entre Q y S
ST.png")
===============================================================================
#Grfica Spearman
Graficar=spearman5 #Variable para graficar
fig = plt.figure(figsize=(30,10)) #Establezco el tamao de la figura
ax = fig.add_subplot(121)
ax.set_title(u'CORRELACION SPEARMAN SST/CAUDAL ESTACIN CALAMAR \n 1/1981-12/2014'
, size=14, ) #Determino el ttulo
m = Basemap(llcrnrlat=-88.75,urcrnrlat=88.75, llcrnrlon=1.25,urcrnrlon=358.75,
rsphere=6371200.,resolution='l',area_thresh=10000)
ny = lat.shape[0]; nx = lon.shape[0]
lons, lats = m.makegrid(nx, ny)
x,y = m(lons, lats)
cs = m.contourf(x,y,np.flipud(Graficar))
m.colorbar(location='bottom',pad="10%")
m.drawparallels(np.arange(-90.,90,30.),labels=[1,0,0,0], size=11,linewidth=0.1)
m.drawmeridians(np.arange(0, 360, 30.),labels=[0,0,0,1], size=11, linewidth=0.1)
m.drawcoastlines()
m.drawmapboundary()
plt.savefig("C:\Users\INGPRO2CPPH\Desktop\Python\Correlacion Spearman sin rezago
v2.png",bbox_inches='tight')
#Grfica Pearson
Graficar=pearson5 #Variable para graficar
fig = plt.figure(figsize=(30,10)) #Establezco el tamao de la figura
ax = fig.add_subplot(121)
ax.set_title(u'CORRELACION PEARSON SST/CAUDAL ESTACIN CALAMAR \n 1/1981-12/2014',
===============================================================================
# Correlacin con rezago entre Q y SST
===============================================================================
caudal2=qestn
meses=1
spearcor3 = np.ones((len(lat),len(lon)))
for r in range(meses):
i=0
for la in range(len(lat)):
j=0
for lo in range(len(lon)):
spcor3 = spearmanr(caudal2[r+1:],sstestn[0:-(r+1),la,lo])[0]
pe = pearsonr(caudal,sstestn[:,la,lo])[0]
spearcor3[i][j]=spcor3
#pearson[i][j]=pearcor
j=j+1
i=i+1
#-------caudal2=qestn
meses=2
spearcor4 = np.ones((meses,len(lat),len(lon)))
for r in range(meses):
i=0
for la in range(len(lat)):
j=0
for lo in range(len(lon)):
spcor3 = spearmanr(caudal2[r+1:],sstestn[0:-(r+1),la,lo])[0]
#pe = pearsonr(caudal,sstestn[:,la,lo])[0]
spearcor4[r][i][j]=spcor3
#pearson[r][i][j]=pearcor
j=j+1
i=i+1
#-------# Figure 1
plt.subplot(221)
plt.imshow(sstestn[:,30,30])
plt.title('Serie Estandarizada')
plt.grid(True)
Graficar=spearcor4[1,:,:] #Variable para graficar
rezago=2
spcor3 = spearmanr(caudal2[r+1:],sstestn[0:-(r+1),la,lo])[0]
pe = pearsonr(caudal,sstestn[:,la,lo])[0]
spearcor3[i][j]=spcor3
#pearson[i][j]=pearcor
j=j+1
i=i+1
#Vectores que me almacenan los percentiles
S95[t]=np.percentile(S1,95)
S5[t]=np.percentile(S1,5)