Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 3.88 KB

mapas.rst

File metadata and controls

98 lines (74 loc) · 3.88 KB

Mapas

Tinamït viene con algunas funcionalidades para dibujar mapas de resultados de simulación. Todos los mapas están compuestos de objetos ~tinamit.geog.mapa.Forma. Cada ~tinamit.geog.mapa.Forma está vinculada con un archivo .shp.

Formas dinámicas

Formas dinámicas (~tinamit.geog.mapa.FormaDinámica) son las formas cuyos colores varían según los resultados de una simulación. Incluyen ~tinamit.geog.mapa.FormaDinámicaNumérica, la cual toma sus valores en formato de np.ndarray o de lista, y ~tinamit.geog.mapa.FormaDinámicaNombrada, la cual quiere sus datos en formato de diccionario.

Los mapas se pueden dibujar desde una matriz de un variable multidimensional en un modelo, o sino de una simulación de grupo donde cada simulación individual representa otra región en el mapa. Ambas situaciones se manejan por ~tinamit.geog.mapa.dibujar_mapa_de_res.

Simulaciones por grupo

En este ejemplo, correremos un modelo de epidemiología con distintas tazas de contacto para cada departamento de Guatemala.

import numpy as np

from tinamit.ejemplos import obt_ejemplo from tinamit.envolt.mds import gen_mds from tinamit.geog.mapa import FormaDinámicaNombrada, dibujar_mapa_de_res from tinamit.mod import OpsSimulGrupo

mds = gen_mds(obt_ejemplo('enfermedad/mod_enferm.mdl')) forma_deptos = obt_ejemplo('geog_guate/deptos.shp')

ops = OpsSimulGrupo(

t=50, extern=[{'taza de contacto': np.random.random() * 500} for i in range(1, 23)], nombre=[str(i) for i in range(1, 23)]

) res = mds.simular_grupo(ops, nombre='Epidemiología')

frm = FormaDinámicaNombrada(forma_deptos, col_id='COD_DEP', escala_colores=-1) dibujar_mapa_de_res(forma_dinámica=frm, res=res, var='Individuos Infectados', t=16)

Note

El nombre de cada simulación en el grupo debe corresponder con el nombre de una forma en el archivo .shp tal como especificado en la columna col_id.

Alternativamente, puedes utilizar una ~tinamit.geog.mapa.FormaDinámicaNumérica; en ese caso se asiñarán los resultados a las formas según su orden en OpsSimulGrupo, nada más.

Variables multidimensionales

Aplicaremos un modelo sencillo de bosques y lluvia a un mapa de la región del Rechna Doab (رچنا دوآب) en Pakistán. Este mapa divide la región en 215 polígonos, cada cual corresponde a un punto en el variable Bosque multidimensional.

from tinamit.ejemplos.sencillo.bf_bosques import PruebaBF from tinamit.geog.mapa import FormaDinámicaNumérica

mod = PruebaBF(215) polígonos = obt_ejemplo('rechna_doab/polígonos.shp')

extern = {'Bosques': np.random.random(215)*1e6} res = mod.simular(t=10, extern=extern, nombre='Cobertura forestal')

frm = FormaDinámicaNumérica(polígonos, col_id='Id') dibujar_mapa_de_res(forma_dinámica=frm, res=res, var='Bosques', t=10)

Formas estáticas

También puedes agregar formas estáticas (~tinamit.geog.mapa.FormaEstática), que no depienden de los resultados de una simulación y que se agregan solamente por razones estéticas.

Por el momento, tienes:

  • Cuerpos de agua: ~tinamit.geog.mapa.Agua
  • Bosques: ~tinamit.geog.mapa.Bosque
  • Calles: ~tinamit.geog.mapa.Calle
  • Zonas urbanas: ~tinamit.geog.mapa.Ciudad

from tinamit.geog.mapa import Agua, Calle

calles = Calle(obt_ejemplo('rechna_doab/calle.shp')) río = Agua(obt_ejemplo('rechna_doab/río.shp')) canales = Agua(obt_ejemplo('rechna_doab/canal.shp'), llenar=False) dibujar_mapa_de_res(forma_dinámica=frm, otras_formas=[calles, canales, río], res=res, var='Bosques', t=10)