Modelo

class tinamit.mod.Modelo(variables, nombre)[source]

Todas las cosas en Tinamit son instancias de Modelo, que sea un modelo de dinámicas de los sistemas, un modelo de cultivos o de suelos o de clima, o un modelo conectado. Cada tipo de modelo se representa por subclases específicas. Por eso, la gran mayoría de los métodos definidos aquí se implementan de manera independiente en cada subclase de Modelo.

La función de inicialización de todos modelos, conectados o no.

Paramètres:
  • variables (VariablesMod) – Los variables del modelo.
  • nombre (str) – El nombre del modelo.
cambiar_vals(valores)[source]

Esta función cambia el valor de uno o más variables del modelo.

Paramètres:valores (dict) – Un diccionario de variables y sus valores para cambiar.
cerrar()[source]

Esta función toma acciones necesarias para terminar la simulación y cerrar el modelo, si aplica.

conectar_var_clima(var, var_clima, conv, combin='prom')[source]

Conecta un variable climático.

Paramètres:
  • var (str) – El nombre interno del variable en el modelo.
  • var_clima (str) – El nombre oficial del variable climático.
  • conv (number) – La conversión entre el variable clima en Tinamït y el variable correspondiente en el modelo.
  • combin (str or function or None) – Si este variable se debe adicionar o tomar el promedio entre varios pasos. Puede ser prom, total, o una función. Si es None, se tomará el último día en el caso de pasos de más de 1 día.
correr()[source]

Efectuar una simulación ya inicializada. En general, no llamarías esta función directamente.

classmethod estab_conf(llave, valor)[source]

Establece un valor de configuración.

Paramètres:
  • llave (str) – El parámetro de configuración.
  • valor (str or int or float or list or bool or dict) – El valor del parámetro.
incrementar(rebanada)[source]

Incrementa el modelo. En general, no llamarías esta función directamente.

No se te olvide una llamada al super cuando reimplementas esta función.

Paramètres:rebanada (Rebanada) – La rebanada del incremento.
iniciar_modelo(corrida)[source]

Inicia la simulación. En general no llamarías esta función directamente.

No se te olvide una llamada al super cuando reimplementas esta función.

Paramètres:corrida (Corrida) – La corrida.
classmethod instalado()[source]

Si tu modelo depiende en una instalación de otro programa externo a Tinamït, puedes reimplementar esta función para devolver True si el modelo está instalado y False sino.

Renvoie:Si el modelo está instalado completamente o no.
Type renvoyé:bool
classmethod obt_conf(llave, auto=None, cond=None, mnsj_err=None)[source]

Obtiene un valor de configuración de la subclase de modelo.

Paramètres:
  • llave (str) – El parámetro de configuración.
  • auto (str or int or float or list or bool or dict) – Un valor automático a aplicar si no se encuentra en el diccionario de configuración.
  • cond – Una condición para validar el valor; si no pasa la condición, se tratará como valor que falta.
  • mnsj_err – Un mensaje de aviso para devolver al usuario si no se encuentra el valor.
Renvoie:

El valor de configuración

Type renvoyé:

str, int, float, list, bool, dict

paralelizable()[source]

Indica si el modelo actual se puede paralelizar de manera segura o no. Si implementas una subclase paralelizable, reimplementar esta función para devolver True.

¿No sabes si es paralelizable tu modelo?

Respuesta larga: Si el modelo se puede paralelizar (con corridas de nombres distintos) sin encontrar dificultades técnicas (sin riesgo que las corridas paralelas terminen escribiendo en los mismos archivos de egreso), entonces sí es paralelizable tu modelo.

Respuesta rápida: 95% seguro que sí.

Renvoie:Si el modelo es paralelizable o no.
Type renvoyé:bool
simular(t, nombre='Tinamït', extern=None, clima=None, vars_interés=None)[source]
Paramètres:
  • t (int or EspecTiempo) – La especificación del eje de tiempo. Si es int, significará el número de pasos.
  • nombre (str) – El nombre de la corrida.
  • extern (Extern or pd.DataFrame or xr.Dataset or dict) – Valores externos para la simulación.
  • clima (Clima) – El clima de la simulación.
  • vars_interés (list) – Los variables para incluir en los resultados
Renvoie:

Type renvoyé:

ResultadosSimul

simular_grupo(ops_grupo, nombre='Tinamït', paralelo=False)[source]

Efectua un grupo de simulaciones. Muy útil para accelerar corridas múltiples.

Paramètres:
  • ops_grupo (PlantillaOpsSimulGrupo) – Las opciones de simulación en grupo.
  • nombre (str) – El nombre de la simulación.
  • paralelo (bool) – Si se simula en paralelo o no. Si el modelo no soporte corridas en paralelo, se ignorará este argumento.
Renvoie:

Type renvoyé:

ResultadosGrupo

unidad_tiempo()[source]

Esta función debe devolver la unidad de tiempo empleada por el modelo.

Renvoie:La unidad de tiempo (p. ej., “meses”, “مہینہ”, etc.)
Type renvoyé:str

Rebanada

class tinamit.mod.corrida.Rebanada(n_pasos, resultados)[source]

Una rebanada del eje de tiempo que corresponde al paso actual.

Paramètres:
  • n_pasos (int) – El número de pasos que debe incrementar el modelo.
  • resultados (ResultadosSimul) – Objeto de resultados deseados. El modelo tiene que leer los egresos únicamente de los variables de interés presentes en este objeto y guardarlos en símismo.variables (otros variables de egreso se pueden ignorar).

Opciones de simulación

class tinamit.tiempo.EspecTiempo(n_pasos, f_inic=None, tmñ_paso=1, guardar_cada=1)[source]

Objeto para especificar opciones de tiempo para la simulación.

Paramètres:
  • n_pasos (int) – El número de pasos en la simulación.
  • f_inic (str or datetime.datetime or datetime.date) – La fecha inicial, si hay.
  • tmñ_paso (int) – El tamaño de cada paso.
  • guardar_cada – La frequencia para guardar resultados.
gen_tiempo(unid_paso)[source]

Genera un objeto Tiempo con las especificaciones.

Paramètres:unid_paso (str) – La unidad de paso de la simulación.
Renvoie:
Type renvoyé:Tiempo
class tinamit.mod.OpsSimulGrupoCombin(t, extern=None, clima=None, vars_interés=None, nombre='Tinamït')[source]

Corridas en grupo que generan todas las combinaciones posibles de las opciones de simulación especificadas.

class tinamit.mod.OpsSimulGrupo(t, extern=None, clima=None, vars_interés=None, nombre='Tinamït')[source]

Corridas en grupo sin combinaciones (las primeras opciones de cada parámetro se corrirán juntas en una simulación, seguidas por las segundas, etc.).