प्रतिरूपों की जोड़ाई

सरल नमूना

हम एक काफी सरल नमूना मे शुरू करेंगे। फिर भी तीनामित के सुविधाऔं अच्छी तरफ़ से समझाता है। इसके उपर उसको चलाने के लिये आपको अपना संगणक पर किसी बाहरी वतावरण का प्रतिरूप की स्थापना करने की अवश्यकता होगी नहीं।

हम इस प्रणाली गतिशील का प्रतिरूप का प्रयोग करेंगे।

Modelo Vensim.

प्रणाली गतिशील का प्रतिरूप बारिश के अनुसार मछली पकड़ना के मौके और जंगल संसाधनों का प्रयोग करने की अवश्यकता पर इसका प्रभाव बताता है।

हम्हारा वतावरण का प्रतिरूप वन आवरण के अनुसर बारिश बताता है।

import matplotlib.pyplot as plt

from tinamit.conect import Conectado as जु़ड़ा_हुआ
from tinamit.ejemplos import obt_ejemplo as नमूना_पाना

प्रण = नमूना_पाना('sencillo/mds_bosques.mdl')
वता = नमूना_पाना('sencillo/bf_bosques.py')

प्रतिरूप = जु़ड़ा_हुआ(bf=वता, mds=प्रण)

# परिवर्तनशील को जोड़ा देंगे
प्रतिरूप.conectar(var_mds='Lluvia', var_bf='Lluvia', mds_fuente=False)
प्रतिरूप.conectar(var_mds='Bosques', var_bf='Bosques', mds_fuente=True)

# प्रतिरूप चलाना
परिणाम_जुड़ी = प्रतिरूप.simular(200)

# चित्र
चि, (अक्ष१ , अक्ष२) = plt.subplots(1, 2)
अक्ष१.plot(परिणाम_जुड़ी['mds']['Bosques'].vals)
अक्ष१.set_title('वन आवरण')
अक्ष१.set_xlabel('महिने')

अक्ष२.plot(res_conex['mds']['Lluvia'].vals)
अक्ष२.set_title('बारिश')
अक्ष२.set_xlabel('महिने')

अक्ष१.ticklabel_format(axis='y', style='sci', scilimits=(0,0))

(स्रोत, png, hires.png, पी डी एफ)

../_images/conex-1.png

इसके बाद हम संबध के सिवा प्रतिरूप चला सकते हैं इसे देखने के लिये कि वतावरण और इनसान के संबध को शामिल करना का क्या। प्रभाव।

Note

वतावरण (ModeloBF) और प्रणाली गतिशील (ModeloDS) के प्रतिरूप दोनों प्रतिरूप (Modelo) के उपवर्ग होने से ये स्वतंत्र तरह से भी चल सकते हैं।

from tinamit.envolt.mds import gen_mds as प्रण_उत्पन्न
from tinamit.envolt.bf import gen_bf as वता_उत्पन्न

परिणाम_प्रण = प्रण_उत्पन्न(प्रण).simular(200, nombre='प्रणाली')
परिणाम_वता = वता_उत्पन्न(वता).simular(200, nombre='वतावरण')

# चित्र
चि, (अक्ष१, अक्ष२) = plt.subplots(1, 2)
eje1.plot(परिणाम_जुड़ी['mds']['Bosques'].vals, label='जुड़ी हुई')
eje1.plot(परिणाम_प्रण['Bosques'].vals, label='स्वतंत्र')
eje1.set_title('वन आवरण')
eje1.set_xlabel('महिने')

eje1.ticklabel_format(axis='y', style='sci', scilimits=(0,0))

अक्ष२.plot(परिणाम_जुड़ी['mds']['Lluvia'].vals)
अक्ष२.plot(परिणाम_वता['Lluvia'].vals)
अक्ष२.set_title('बारिश')
अक्ष२.set_xlabel('महिने')

चि.legend()

(स्रोत, png, hires.png, पी डी एफ़)

../_images/conex-2.png

समय विकल्प

Si quieres más control sobre los detalles del eje de tiempo, puedes pasar un objeto EspecTiempo a la función simular(). Allí puedes especificar no solo el número de paso sino también una fecha inicial (útil para corridas con datos o clima externo), el tamaño de cada paso, y la frequencia con cual se guardan los resultados.

from tinamit.tiempo.tiempo import EspecTiempo

स = EspecTiempo(100, f_inic='२०००-०१-०१', tmñ_paso=1, guardar_cada=1)
प्रतिरूप.simular(स)

समय का एकता

अगर आपके प्रतिरूप के समय के एकता में अंतर है, तीनामित उनके स्वचालित रूपांतर करेगा। फिर भी, अगर आपके प्रतिरूप के समय का एकता अपरंपरागत हो या तीनामित को अज्ञात भाषा में हो, nueva_unidad(), agregar_trad() या agregar_sinónimos() नाम के फलन से आपको रूपांतर का निर्दिष्ट खुद करने पड़ेगा।

from tinamit.unids import nueva_unidad, agregar_trad, agregar_sinónimos

# Una estación tiene 4 meses
nueva_unidad(unid='Estación', ref='Mes', conv=4)

# "día" se dice "நாள்" en Tamil
agregar_trad('día', 'நாள்', leng_trad='த', leng_orig='es', guardar=True)

# "தினம்" también quiere decir "día" en Tamil
agregar_sinónimos('நாள்', "தினம்", leng='த', guardar=True)

तीनामित को निम्नलिखत समय के एकता समझ आते हैं: año, mes, semana, día, hora, minuto, secundo, microsecundo, millisecundo, एवं nanosecundo.

३+ प्रतिरूप

अगर आप२ प्रतिरूप से ज़्यादा ज़ोड़ाने चाहते हैं, यह भी SuperConectado नाम का वर्ग के साथ आसान हो जाता है। क्षैतिज या श्रेणीबद्ध तरह से जुड़े जा सकते हैं।

क्षैतिज

विभिन्न प्रतिरूप क्षैतिज तरह से एक ही SuperConectado का प्रतिरूप में जुड़े जा सकते हैं।

from tinamit.conectado import SuperConectado as महाजुड़ा_हुआ

# ३ प्रतिरूप बनाना
प्रति_१= मेराप्रतिरूप१(nombre='प्रतिरूप १')
प्रति_२ = मेराप्रतिरूप२(nombre='प्रतिरूप २')
प्रति_३ = मेराप्रतिरूप३(nombre='प्रतिरूप ३')

# जुड़ा हूआ प्रतिरूप
प्रतिरूप = महाजुड़ा_हुआ([प्रति_१, प्रति_२, प्रति_३])

# परिवर्तनशील की जोड़ाई
प्रतिरूप.conectar_vars(
    var_fuente='Var 1', modelo_fuente='प्रतिरूप १', var_recip='Var 2', modelo_recip='प्रतिरूप २'
)
प्रतिरूप.conectar_vars(
    var_fuente='Var 2', modelo_fuente='प्रतिरूप २', var_recip='Var 3', modelo_recip='प्रतिरूप ३'
)

# चलाना
परिणाम = प्रतिरूप.simular(10, vars_interés=[प्रति_१.variables['Var 1'], प्रति_३.variables['Var 3']])

अब, प्रतिरूप का Var 1 नाम का परिवर्तनशील और प्रतिरूप का Var 3 के मूल्य पूरी अनुकार में एक जैसे ही हेंगे।

श्रेणीबद्ध

प्रतिरूप एक दूसरे के अंदर भी लगा सकते हैं।

# Los tres modelos
mod_1 = MiModelo1(nombre='modelo 1')
mod_2 = MiModelo2(nombre='modelo 2')
mod_3 = MiModelo3(nombre='modelo 3')

# El primer Conectado
conectado_sub = SuperConectado(nombre='sub', modelos=[mod_1, mod_2])
conectado_sub.conectar_vars(
    var_fuente='Var 1', modelo_fuente='modelo 1', var_recip='Var 2', modelo_recip='modelo 2'
)

# El segundo Conectado
conectado = SuperConectado([conectado_sub, mod_3])
conectado.conectar_vars(
    var_fuente=mod_2.variables['Var2'], var_recip='Var 3', modelo_recip='modelo 3'
)

# Correr la simulación
res = conectado.simular(10, vars_interés=[mod_1.variables['Var 1'], mod_3.variables['Var 3']])

३ प्रतिरूप जोड़ाने के दोनों तरह के परिणाम एक ही होंगे।