From 345b5b5f92158d0bed1ad7216051b67345bb76ae Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 7 Feb 2017 16:16:25 -0500 Subject: [PATCH] =?UTF-8?q?M=C3=A1s=20trabajo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/source/conf.py | 2 +- docs/source/requirements.txt | 1 - environment.yml | 10 ------ .../O. arenosella_Sri Lanka.py | 7 +++-- tikon/RAE/RedAE.py | 31 ++++++++++--------- 5 files changed, 22 insertions(+), 29 deletions(-) delete mode 100644 docs/source/requirements.txt delete mode 100644 environment.yml diff --git a/docs/source/conf.py b/docs/source/conf.py index 60142883..b85d3eaf 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -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 diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt deleted file mode 100644 index f51a5bc6..00000000 --- a/docs/source/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -sphinx >= 1.5.1 \ No newline at end of file diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 67bb1bdc..00000000 --- a/environment.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: py35 -dependencies: -- python>=3.5.1,<3.6 -- docutils>=0.13.1 -- pygments>=2.1.3 -- sphinx >= 1.5.1 -- matplotlib -- numpy -- scipy -- pymc diff --git a/tikon/Proyectos/Opisina_arenosella/O. arenosella_Sri Lanka.py b/tikon/Proyectos/Opisina_arenosella/O. arenosella_Sri Lanka.py index 2d7244e5..25aa3947 100644 --- a/tikon/Proyectos/Opisina_arenosella/O. arenosella_Sri Lanka.py +++ b/tikon/Proyectos/Opisina_arenosella/O. arenosella_Sri Lanka.py @@ -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, @@ -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, @@ -177,4 +179,3 @@ # Podríamos hacer modelos más complejos con especies distintas de avispas, etc. - diff --git a/tikon/RAE/RedAE.py b/tikon/RAE/RedAE.py index 42a8892d..4db4f6e7 100644 --- a/tikon/RAE/RedAE.py +++ b/tikon/RAE/RedAE.py @@ -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): @@ -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í @@ -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) @@ -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'] @@ -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]) @@ -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): @@ -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])) @@ -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: @@ -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 @@ -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)