Codigo 2
Codigo 2
Codigo 2
1
unlimited dimensions:
current shape = (1650, 2)
filling off
), (u'tempanomaly', <type 'netCDF4._netCDF4.Variable'>
int16 tempanomaly(time, lat, lon)
long_name: Surface temperature anomaly
units: K
scale_factor: 0.01
cell_methods: time: mean
_FillValue: 32767
unlimited dimensions:
current shape = (1650, 90, 180)
filling off
)])
print len(lat)
print len(lon)
print tempanomaly.shape
90
180
(1650, 90, 180)
print len(time)
print time.shape
print time.dtype
1650
(1650,)
float64
In [29]: fechas = []
for i in range(len(time)):
#print i
#print time[i]
fechas.append(datetime.datetime(1800,01,01)+ \
2
datetime.timedelta(days = time[i]))
fechas = np.array(fechas)
print fechas
Mapa = tempanomaly[a[0][0],:,:]
print Mapa.shape
(array([1326]),)
1326
(90, 180)
Serie2=tempanomaly[:,0,50]
1.0
-79.0
3
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,Mapa,cmap='jet')
m.colorbar(location='bottom',pad="10%")
No_NaN = Mapa[np.isfinite(Mapa)]
print np.mean(No_NaN)
print np.median(No_NaN)
4
nan
0.665697
0.43
title
5
title
6
In [35]: import scipy.stats
NoNaN = []
Mean = []
Median= []
desv = []
perc_25 = []
perc_75 = []
kurt = []
for i in range(len(time)):
Mapa = tempanomaly[i,:,:]
Mapa_NoNaN = Mapa[np.isfinite(Mapa)]
NoNaN.append(len(Mapa_NoNaN))
Mean.append(np.mean(Mapa_NoNaN))
Median.append(np.median(Mapa_NoNaN))
desv.append(np.std(Mapa_NoNaN))
perc_25.append(np.percentile(Mapa_NoNaN,25))
perc_75.append(np.percentile(Mapa_NoNaN,75))
kurt.append(scipy.stats.kurtosis(Mapa_NoNaN))
NoNaN = np.array(NoNaN)
Mean = np.array(Mean)
Median = np.array(Median)
desv = np.array(desv)
perc_25 = np.array(perc_25)
7
perc_75 = np.array(perc_75)
kurt = np.array(kurt)
0.1.7 Graficacin
In [38]: plt.figure(figsize=[6,7])
plt.plot(fechas,Mean, 'g', label = 'Media')
plt.plot(fechas,Median, 'b', label = 'Mediana')
#plt.plot(fechas,Mean + desv,'r',label=u'Desviacin Estandar')
#plt.plot(fechas,Mean - desv,'r')
8
0.1.8 Graficacin de la serie de temperatura de un pixel
In [21]: Serie=tempanomaly[:,45,50]
plt.close('all')
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(fechas,Serie,'m',lw=1, label="Anomalias Temperatura")
plt.title('Serie de Anomalias Temperatura (GISTEMP)')
ax.set_xlabel('Tiempo')
9
ax.set_ylabel('Anomalias Temperatura')
plt.show()
1 PROBABILIDAD
Como se mencion brevemente la primea reunin, en anlisis de datos ambientales trataremos de
hacer uso de herramientas estadsticas descriptivas y de inferencia con el objetivo de encontrar o
refutar la existencia determinada evidencia de inters en datos experimentales, comprobar hipte-
sis o, en general, mejorar el entendimiendo de los procesos fsicos que dieron lugar a determinados
registros experimentales. Un buen comienzo para el curso de anlisis es el recordar y hacer de los
conceptos fundamentales de Probabilidad (Breve historia del comienzo de la Teora de la Proba-
biliad: Siglo XVII, Pascal,Fermat, correspondencia sobre Juegos de Azar). Una de las preguntas
ms recurrentes de la sociedad cuando se habla de fenmenos natuarles est relacionada con la
probabilidad de ocurrencia de un determinado fenmeno. Desde el punto de vista de la gestin de
recursos, gestin de riesgos, desarrollo sostenible, desarrollo econmico y social de determinada
regin, es indispensable tener estimaciones sobre la probabilidad de ocurrencia, por ejemplo, de
un sismo de magnitud considerable, o dada su relevancia en Colombia, cual es la probabilidad
de desarrollo de un evento El Nio, cual es la probabilidad de ocurrencia de un evento de precip-
itacin intenso que afecte a una comunidad. La mirada clsica del concepto de probabilidad, y tal
vez la que permite mayor interpretacin en el campo de las aplicaciones incluyendo el anlisis de
datos en geociencias, est relacionado con la frecuencia de ocurrencia de un evento determinado.
10
En principio, y de manera resumida, se puede definir la probabilidad como la frecuencia relativa
de largo plazo y se puede escribir de la siguiente manera
2 n a o
P r P r {E} 0
n
cuando n
(Discusin: La teora de la probabilidad puede ser pensada a la vez como una herramienta de-
scriptiva como una herramientade inferencia.. Teora de Bayes)
title
3 PROBABILIDAD Y CONJUNTOS
Espacio de muestreo: S
Eventos: No precipitacin, precipitacin lquida, precipitacin congelada. . . (Cubren todas las
posibilidades: Evetos mutuamente excluyentes, colectivamente exhaustivos MECE)
Axiomas:
Probabilidad de todos los posibles eventos es 1.
Probabilidad de varios eventos mutuamente exlcuyentes es la suma de las probabilidades de
ocurrencia individual
11
title
title
12
title
4
P r {E2 } < P r {E1 }
5
P r {E1 } < P r {E2 }
6
P r {E2 U E1 }??
7
P r {E2 } + P r {E1 }
8
P r {E2 U E1 }??
9
P r {E2 } + P r {E1 } P r {E2 E1 }
13
title
title
14
title
title
15
title
Mapa = tempanomaly[a[0][0],:,:]
print SerieDeMapa
print SerieDeMapa.shape
# Creacin del Histograma (Se pueden usar dos funciones, una del paquete
#numpy y otra de matplotlib. Se recomienda usar np.histogram)
num_bins=30
n1, bins1, patches1 = plt.hist(SerieDeMapa, num_bins, normed=True, \
facecolor='red', alpha=0.5)
ValueProb= 0.
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(bins1[0:len(bins1)-1],n1/sum(n1),'r',lw=2, markersize=3, \
16
label='Anomalias T') #f1
temp= n1/sum(n1)
plt.title('Pr{Anomalia Temperatura>='+np.str(ValueProb)+'}='+ \
np.str(len(SerieDeMapa[SerieDeMapa>=ValueProb])\
/np.float(len(SerieDeMapa))))
plt.legend(prop={'size':10})
plt.savefig('Histograma02.pdf')
(array([1355]),)
1355
[-1.8499999 -1.8499999 -1.8499999 ..., -0.81 -0.81 -0.81 ]
(16052,)
17
In [46]: num_bins = 20
hist,bins= np.histogram(SerieDeMapa, bins=15)
hist =hist.astype(float)
pdf= hist/np.sum(hist)
print len(bins)
print len(pdf)
print pdf
print bins
16
15
[ 0.00274109 0.00865936 0.02093197 0.08011463 0.09973835 0.1716297
0.30837279 0.18477448 0.05320209 0.02155495 0.01937453 0.01065288
0.00778719 0.00672813 0.00373785]
[-3.66999984 -3.07799985 -2.48599985 -1.89399986 -1.30199987 -0.70999988
-0.11799989 0.4740001 1.0660001 1.65800009 2.25000008 2.84200007
3.43400006 4.02600005 4.61800005 5.21000004]
18
bincenters=(bins[1:]+bins[:-1])/2
plt.plot(bincenters,pdf,'o-',color='b',lw=2, markersize=10)
fdi= interp1d(bincenters,pdf)
plt.plot([np.median(SerieDeMapa),np.median(SerieDeMapa)] \
,[0,fdi(np.median(SerieDeMapa))],color='g',lw=3)
donde=np.where((bincenters>=np.percentile(SerieDeMapa,10)) & \
(bincenters<=np.percentile(SerieDeMapa,50)))
print np.concatenate((np.array([np.percentile(SerieDeMapa,10)]),\
bincenters[donde],\
(np.array([np.percentile(SerieDeMapa,50)]))))
xfill=np.concatenate((np.array([np.percentile(SerieDeMapa,10)]),\
bincenters[donde],\
(np.array([np.percentile(SerieDeMapa,50)]))))
yfill=np.concatenate((np.array([fdi(np.percentile(SerieDeMapa,10))]),\
pdf[donde],\
(np.array([fdi(np.percentile(SerieDeMapa,50))]))))
donde2=np.where((bincenters>=np.percentile(SerieDeMapa,50)) & \
(bincenters<=np.percentile(SerieDeMapa,90)))
xfill=np.concatenate((np.array([np.percentile(SerieDeMapa,50)]),\
bincenters[donde2],\
(np.array([np.percentile(SerieDeMapa,90)]))))
yfill=np.concatenate((np.array([fdi(np.percentile(SerieDeMapa,50))]),\
pdf[donde2],\
(np.array([fdi(np.percentile(SerieDeMapa,90))]))))
plt.fill_between(xfill,yfill, \
0.0001, alpha=0.5,\
facecolor='m', edgecolor='m')
19
plt.title('Histograma Serie Mapa')
plt.savefig('Histograma03.pdf')
Out[36]: -0.4699999988079071
10 PROBABILIDAD CONDICIONAL
Probabilidad de un evento dado que otro ocurri u ocurrir
P r {E2 |E1 } = Probabilidad de E2 dado que E1 ocurri u ocurrir.
20
11
P r {E2 E1 }
P r {E2 |E1 } =
P r {E1 }
12 CUANTILES
13
qp
14
{x1 , x2 , x3 , ...., xn } x(1) , x(2) , x(3) , ...., x(n)
21