يمكن استخدام «المعلمة» هذه لنمذجة حدث قرار منفصل
يحدث ذلك في تاريخ معين. قبل هذا التاريخ «قبل»
يتم إرجاع القيمة، وبعد هذا التاريخ يتم إرجاع القيمة «بعد».
البارامترات
----------
decision_date: سلسلة أو باندا. timestamp
تاريخ بدء القرار.
قبل المعلمة: المعلمة
القيمة التي يجب استخدامها قبل تاريخ القرار.
المعلمة اللاحقة: المعلمة
القيمة التي سيتم استخدامها بعد تاريخ القرار.
earliest_date: سلسلة أو باندا. طابع زمني أو لا شيء
أقرب تاريخ يمكن تعيين المتغير إليه. الإعدادات الافتراضية هي «model.timestepper.start»
latest_date: سلسلة أو باندا. timestamp أو لا شيء
آخر تاريخ يمكن ضبط المتغير عليه. الإعدادات الافتراضية هي «model.timestepper.end»
decision_freq: سلسلة تردد الباندا (الافتراضي «AS»)
تحديد التواريخ الممكنة. على سبيل المثال، ستقوم كلمة «AS» بإنشاء تواريخ مجدية كل
السنة بين «الأقدم»_التاريخ» و «الأحدث»_تاريخ`. يتم استخدام وظائف «الباندا»
داخليًا لحسابات تاريخ دلتا.
«"»
ديف __بدأ__(الذات، النموذج، القرار_التاريخ، قبل_المعلمة، بعد_المعلمة، الأقدم_التاريخ = لا شيء، الأحدث_التاريخ = لا شيء، القرار_التردد = 'as'، **kargs):
فائق (معامل القرار العابر، الذات).__بدأ__(الموديل، **kwargs)
الذات._قرار_التاريخ = لا شيء
القرار الذاتي_التاريخ = القرار_تاريخ
إن لم يكن هو المثال (before_parameter، المعلمة):
رفع ValueError («يجب أن تكون القيمة «قبل» مثيل المعلمة. ')
قبل_الباراميتر.parents.add (الذات)
قبل الذات_المعلمة = قبل_معيار
إن لم يكن هو المثال (after_parameter، المعلمة):
رفع ValueError («يجب أن تكون قيمة `after` عبارة عن مثيل معلمة.»)
after_parameter.parents.add (الذات)
بعد الذات_المعلمة = بعد_معيار
# يتم استخدام هذه المعلمات في الغالب إذا تم استخدام هذه الفئة كمتغير.
الذات._أقرب_التاريخ = لا شيء
الذات. في أقرب وقت_التاريخ = الأقدم_تاريخ
الذات._آخر_التاريخ = لا شيء
الأحدث الذاتي_التاريخ = الأحدث_تاريخ
القرار الذاتي_التكرار = القرار_تكرار
الذات._مجدية_التواريخ = لا شيء
حجم العدد الصحيح الذاتي = 1 # تحتوي هذه المعلمة على متغير صحيح واحد
تاريخ قرار def ():
ديف جيت (الذات):
عودة الذات._قرار_تاريخ
اختبار def (الذات، القيمة):
إذا كان المثال (القيمة، طابع PD.timestamp):
الذات._قرار_التاريخ = القيمة
وإلا:
الذات._قرار_التاريخ = pd.to_datetime (القيمة)
عودة السكان المحليين ()
قرار_التاريخ = الخاصية (**تاريخ_القرار ()
تاريخ def الأقدم ():
ديف جيت (الذات):
إذا كانت الذات._أقرب_التاريخ ليس بلا شيء:
عودة الذات._أقرب_تاريخ
وإلا:
إرجاع self.model.timestepper.start
اختبار def (الذات، القيمة):
إذا كان المثال (القيمة، طابع PD.timestamp):
الذات._أقرب_التاريخ = القيمة
وإلا:
الذات._أقرب_التاريخ = pd.to_datetime (القيمة)
عودة السكان المحليين ()
أقرب_التاريخ = الخاصية (**أقرب تاريخ ())
أحدث تاريخ_ديف ():
ديف جيت (الذات):
إذا كانت الذات._آخر_التاريخ ليس بلا شيء:
عودة الذات._آخر_تاريخ
وإلا:
إرجاع self.model.timestepper.end
اختبار def (الذات، القيمة):
إذا كان المثال (القيمة، طابع PD.timestamp):
الذات._آخر_التاريخ = القيمة
وإلا:
الذات._آخر_التاريخ = pd.to_datetime (القيمة)
عودة السكان المحليين ()
آخر_التاريخ = الخاصية (**أحدث تاريخ_()
إعداد def (self):
super (معامل القرار العابر، الذاتي) .setup ()
# الآن قم بإعداد التواريخ الممكنة عند استخدام هذا الكائن كمتغير.
الذات._مجدية_التواريخ = تاريخ pdf_النطاق (الذاتي. الأقدم)_التاريخ، آخر تاريخ_ذاتي،
freq=القرار الذاتي_التكرار)
القيمة الافتراضية (self، ts، scenario_index):
إذا كانت الإجابة لا شيء:
v = قبل الذات_المعلمة. get_القيمة (فهرس_السيناريو)
إليف. تاريخ_الوقت>= تاريخ_القرار الذاتي:
v = بعد الذات_المعلمة. get_القيمة (فهرس_السيناريو)
وإلا:
v = قبل الذات_المعلمة. get_القيمة (فهرس_السيناريو)
إرجاع v
ديف جيت_عدد صحيح_الحدود الدنيا (الذات):
إرجاع np.array ([0،]، dtype=np.int)
ديف جيت_عدد صحيح_الحدود العليا (الذات):
إرجاع np.array ([len) (self)._مجدية_التواريخ) - 1،]، dtype=np.int)
مجموعة ديف_عدد صحيح_المتغيرات (الذات والقيم):
# قم بتحديث تاريخ القرار بالتاريخ الممكن المقابل
القرار الذاتي_التاريخ = الذات._التواريخ الممكنة [القيم [0]
ديف جيت_عدد صحيح_المتغيرات (الذات):
إرجاع np.array ([self._مجدية_مواعيد. احصل على_القفل (القرار الذاتي)_التاريخ)،]، dtype=np.int)
تفريغ def (ذاتي):
البيانات = {
«أقرب وقت ممكن_«التاريخ»: «self.onersy»_صيغة date.iso ()،
«الأحدث_«التاريخ»: «self.latest»_صيغة date.iso ()،
«قرار_التاريخ: «القرار الذاتي»_صيغة date.iso ()،
«قرار_«التردد»: القرار الذاتي_تكرار
}
إرجاع البيانات
@classmethod
تحميل def (cls، النموذج، البيانات):
قبل_المعلمة = التحميل_المعلمة (النموذج، data.pop ('before_parameter'))
بعدما_المعلمة = التحميل_المعلمة (النموذج، data.pop ('after_parameter'))
إرجاع cls (الطراز)، قبل_المعلمة = قبل_المعلمة، بعد_المعلمة = بعد_المعلمة، **البيانات)
الآن عند تشغيل هذه الشبكة في WaterStrategy، سيتم تسجيل المعلمة TranscientDecision. 
تأكد بعد حفظ القاعدة المخصصة الخاصة بك، من عرضها على الجانب الأيسر، في هذه الحالة تحت **المعلمة** الجزء
<figure><img src="../../.gitbook/assets/image (52).png" alt=""><figcaption></figcaption></figure>
## استخدام معامل القرار العابر
في هذه الحالة، سنضاعف الحجم الأقصى لـ **خزان جديد** __1234567890____ بدءًا من `2045-1__-01-__-01`
انتقل إلى **خزان جديد** storage node و «تحرير» **الحد الأقصى للحجم**
<figure><img src="../../.gitbook/assets/image (53).png" alt="" width="446"><figcaption></figcaption></figure>
حدد في **خيارات** التبويب **بيور\_المعلمة**
<figure><img src="../../.gitbook/assets/image (54).png" alt="" width="271"><figcaption></figcaption></figure>
قم بلصق التعليمة البرمجية التالية وانقر **وفر**
تتضمن المعلمة TranscientDecision السمات `قبل ذلك_المعلمة» و «بعد_المعلمة `التي سيتعين علينا إنشاؤها على النحو التالي:
<figure><img src="../../.gitbook/assets/image (55).png" alt=""><figcaption></figcaption></figure>
سيتم فتح مربع نص صغير، عندما نتمكن من كتابة اسم الجديد **PWR\_المعلمة**، في هذه الحالة\
\_\_**خزان جديد\_\_:الحد الأقصى\_الحجم من قبل.** انقر **أدخل**. \
<figure><img src="../../.gitbook/assets/image (57).png" alt="" width="375"><figcaption></figcaption></figure>
WaterStrategy سيفتح نافذة المعلمة ويلصق الكود التالي و **وفر**
**\_\_خزان جديد\_\_:الحد الأقصى\_المجلد قبل: **
<figure><img src="../../.gitbook/assets/image (58).png" alt=""><figcaption></figcaption></figure>
كرر لإنشاء الحد الأقصى للحجم بعد المعلمة
**\_\_خزان جديد\_\_:الحد الأقصى\_مستوى الصوت بعد: **
كخطوة أخيرة، تحتاج «معلمة القرار العابر» إلى **نسبة الحجم الأولية** بالنسبة إلى storage node حيث ترث المعلمة القيم الأولية من العقدة، في هذه الحالة سنقوم بالإعداد لـ **0.99**
<figure><img src="../../.gitbook/assets/image (59).png" alt="" width="423"><figcaption></figcaption></figure>
## النتائج
كما نرى في الصورة التالية، فإننا نجمع بين سيناريوهات pywr باستخدام تغير المناخ وزيادة حجم الخزان المختار من 120.000 مل إلى 240.000 مل في الأول من يناير 2045.
<figure><img src="../../.gitbook/assets/image (60).png" alt=""><figcaption><p>حجم المحاكاة (خزان جديد)</p></figcaption></figure>