Skip to content

Commit

Permalink
Más trabajo.
Browse files Browse the repository at this point in the history
  • Loading branch information
julienmalard committed Feb 7, 2017
1 parent 6310692 commit 345b5b5
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 29 deletions.
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

# If your documentation needs a minimal Sphinx version, state it here.
#
needs_sphinx = '1.5.1'
needs_sphinx = '>=1.5.1'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
Expand Down
1 change: 0 additions & 1 deletion docs/source/requirements.txt

This file was deleted.

10 changes: 0 additions & 10 deletions environment.yml

This file was deleted.

7 changes: 4 additions & 3 deletions tikon/Proyectos/Opisina_arenosella/O. arenosella_Sri Lanka.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@

Parasitoide_larvas.parasita(O_arenosella, etps_infec=['juvenil_1', 'juvenil_2', 'juvenil_3'], etp_sale='juvenil_5')

Parasitoides_pupa.parasita(O_arenosella, etps_infec=['pupa'], etp_sale='pupa')

Red_coco = Red(nombre='Coco completa', organismos=[O_arenosella, Parasitoide_larvas, Parasitoides_pupa])

Red_coco.añadir_exp(Experimento_A,
Expand All @@ -126,8 +128,8 @@
'juvenil_4': ['Estado 4'],
'juvenil_5': ['Estado 5'],
'pupa': ['Pupa']},
'Parasitoide larvas': {'juvenil': ['Para_larv_abs']},
'Parasitoide pupas': {'juvenil': ['Para_pupa_abs']}}
'Parasitoide larvas': {'juvenil_1': ['Para_larva_abs']},
'Parasitoide pupas': {'juvenil_1': ['Para_pupa_abs']}}
)

Red_coco.añadir_exp(Experimento_B,
Expand Down Expand Up @@ -177,4 +179,3 @@


# Podríamos hacer modelos más complejos con especies distintas de avispas, etc.

31 changes: 17 additions & 14 deletions tikon/RAE/RedAE.py
Original file line number Diff line number Diff line change
Expand Up @@ -785,8 +785,8 @@ def _calc_reprod(símismo, pobs, extrn, paso):
ec_edad = símismo.ecs['Reproducción']['Edad']
probs = símismo.ecs['Reproducción']['Prob']

coefs_ed = símismo.coefs_act['Reproducción']['Edad']
coefs_pr = símismo.coefs_act['Reproducción']['Prob']
coefs_ed = numerizar(símismo.coefs_act['Reproducción']['Edad'])
coefs_pr = numerizar(símismo.coefs_act['Reproducción']['Prob'])

for n, ec_ed in enumerate(ec_edad):

Expand All @@ -796,7 +796,7 @@ def _calc_reprod(símismo, pobs, extrn, paso):
continue

# Una referencia a la parte apriopiada de la matriz de reproducciones
n_recip = símismo.orden['Trans'][n]
n_recip = símismo.orden['trans'][n]
repr_etp_recip = reprs[..., n_recip]

# Si hay que guardar cuenta de cohortes, hacerlo aquí
Expand Down Expand Up @@ -853,13 +853,15 @@ def _calc_reprod(símismo, pobs, extrn, paso):

# Y ya pasamos a calcular el número de individuos de esta etapa que se reproducen en este paso de tiempo
cf = coefs_pr[n]
pob_etp = pobs[:, :, :, n]

if probs[n] == 'Constante':
# Reproducciones en proporción al tamaño de la población.

# Tomamos el paso en cuenta según las regals de probabilidad:
# p(x sucede n veces) = (1 - (1- p(x))^n)

np.multiply(cf['n'] * pobs, (1 - (1 - cf['q']) ** paso), out=repr_etp_recip)
np.multiply(cf['n'] * pob_etp, (1 - (1 - cf['q']) ** paso), out=repr_etp_recip)

elif probs[n] == 'Depredación':
# Reproducciones en función de la depredación (útil para avispas esfécidas)
Expand Down Expand Up @@ -989,9 +991,9 @@ def _calc_trans(símismo, pobs, extrn, paso):
ec_probs = símismo.ecs['Transiciones']['Prob']
ec_mult = símismo.ecs['Transiciones']['Mult']

coefs_ed = símismo.coefs_act['Transiciones']['Edad']
coefs_pr = símismo.coefs_act['Transiciones']['Prob']
coefs_mt = símismo.coefs_act['Transiciones']['Mult']
coefs_ed = numerizar(símismo.coefs_act['Transiciones']['Edad'])
coefs_pr = numerizar(símismo.coefs_act['Transiciones']['Prob'])
coefs_mt = numerizar(símismo.coefs_act['Transiciones']['Mult'])

cohortes = símismo.predics['Cohortes']

Expand Down Expand Up @@ -1102,7 +1104,7 @@ def _calc_trans(símismo, pobs, extrn, paso):
trans[..., n] *= coefs_mt[n]['a']

# Si no eran adultos muríendose por viejez, añadirlos a la próxima etapa también
for n_don, n_recip in enumerate(símismo.orden['Trans']):
for n_don, n_recip in enumerate(símismo.orden['trans']):
if n_recip >= 0:
np.add(pobs[..., n_recip], trans[..., n_don], out=pobs[..., n_recip])

Expand Down Expand Up @@ -1147,10 +1149,10 @@ def _calc_mov(símismo, pobs, paso, extrn):
pobs += mov

def _limpiar_cohortes(símismo):
for n, etp in enumerate(símismo.predics['Cohortes']):
for etp in símismo.predics['Cohortes'].values():
vacíos = (etp['Pobs'] == 0)
for ed in etp['Edades'].values():
ed[vacíos] = np.nan
ed[vacíos] = 0

def incrementar(símismo, paso, i, mov=False, extrn=None):

Expand Down Expand Up @@ -1318,8 +1320,8 @@ def _sacar_vecs_preds_obs(símismo, exp):
nombre_serie = '% combinada' % etp

# La matriz de predicciones
matr_preds_etp = matr_preds_etp + np.sum([matr_predics[..., x, :]
for x in combin_etps[n_etp]], axis=3)
matr_preds_etp += np.sum([matr_predics[..., x, :]
for x in combin_etps[n_etp]], axis=3)

# El vector para guardar las observaciones, llenado de valores np.nan. Eje 0: parcela, 1: día
vector_obs = np.empty((matr_preds_etp.shape[0], matr_preds_etp.shape[3]))
Expand Down Expand Up @@ -1795,7 +1797,7 @@ def _gen_dic_matr_predic(n_parc, n_rep_estoc, n_rep_parám, n_etps, n_pasos, i_c
dic_cohorte = cohortes[n] = {}
dic_cohorte['Edades'] = {}
dic_cohorte['Pobs'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám), dtype=int)
dic_cohorte['Edades']['Repr'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám), dtype=int)
dic_cohorte['Edades']['Repr'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám))

for n in i_coh_trans:
try:
Expand All @@ -1805,7 +1807,7 @@ def _gen_dic_matr_predic(n_parc, n_rep_estoc, n_rep_parám, n_etps, n_pasos, i_c
dic_cohorte['Edades'] = {}
dic_cohorte['Pobs'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám), dtype=int)

dic_cohorte['Edades']['Trans'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám), dtype=int)
dic_cohorte['Edades']['Trans'] = np.zeros(shape=(10, n_parc, n_rep_estoc, n_rep_parám))

return dic

Expand All @@ -1824,6 +1826,7 @@ def _agregar_ruido(pobs, ruido):
:type ruido: float
"""

# Para hacer: cohortes
np.add(np.round(np.random.normal(0, np.maximum(1, pobs * ruido))), pobs, out=pobs)

np.maximum(0, pobs, out=pobs)
Expand Down

0 comments on commit 345b5b5

Please sign in to comment.