قطعات منبع باز به عنوان بلوک های ساختمان برای مدل های یکپارچه هیدرولوژی
نمودار نشان دهنده دو مدل است که یک سطح پایین API ارائه می دهند.
معرفی
OpenStreams بلوک های ساختمانی را ایجاد می کند که مدل های هیدرولوژیکی یکپارچه را تشکیل می دهند. این بلوک ها می توانند مدل های کامل باشند، که قطعاتی از مدل هایی هستند که می توانند برای ساخت مدل های دیگر استفاده شوند. هدف این است که یک چارچوب کامل برای ساخت و اتصال مدل ها باشد، وظیفه به لایه ها (مانند OpenMI) منتهی می شود که می تواند در بالای جزء یا مجموعه اجزا تشکیل شده باشد.
هدف اصلی OpenStreams استفاده مجدد از مدل ها (اجزاء) در چارچوب ها و تنظیمات مختلف است، بنابراین کاهش تلاش در حفظ کد مدل. برای Deltares این بدان معنی است که اجزاء می توانند در Deltashell، Delft-FEWS، OpenDA، RTC-Tool و مدل های تجربی نوشته شده در پایتون از یک منبع استفاده شوند. این بدان معنی است که برای هر چارچوب (مثلا Deltashell) یک لایه (نازک) برای اتصال مدلها به چارچوب مورد نیاز است. برای اینکه این اتفاق بیافتد، هر جزء باید قابلیت آن را در یک API به نمایش بگذارد که اجازه می دهد چارچوبی که در آن برای تکمیل مدل کاملا کنترل شود، بسته شود.
در مرحله دوم، پروژه OpenStreams تعدادی از موارد (برنامه های کاربردی) را اجرا می کند که استفاده از اجزاء در پروژه ها و قطعات موجود نرم افزار را نشان می دهد. در اینجا ما همچنین به موانع زبان نگاه می کنیم، به عنوان اجزای مورد استفاده ما در زبان برنامه نویسی مختلف نوشته شده است. در حداقل یکی از موارد، ما به بررسی راه حل های عددی (معمولا ساده) انتخاب شده در مدل های هیدرولوژیکی مفهومی و راه حل های قوی تر خواهیم پرداخت.
به طور کلی ما انتظار نداریم که اجزاء به طور مستقل توسط کاربر نهایی (به غیر از محققانی که علاقه مند به توسعه مدل هستند) استفاده شود، اما چندین ترکیب از مولفه ها به عنوان مدل ها یا بسته های مدل در یک چارچوب توزیع می شوند.
برخی از اثرات مورد انتظار پروژه عبارتند از:
بهتر / بیشتر استفاده مجدد از (اجزاء) اجزای هیدرولوژیکی، در حالی که هر جزء تنها در یک محل نگهداری می شود
مشخص شدن عملکرد اجزای ترکیب شده با اجرای مطالعات موردی
امکانات بهتر برای تحقیق در مورد مفاهیم مدل هیدرولوژیکی
راه حل های عددی بهتر در مدل های هیدرولوژیکی (ساده) مفهومی
اهداف خاص، مدل ها و زبان ها
OpenStreams هدف مجموعه ای از (توزیع) مدل های هیدرولوژیکی و اجزای مدل است. در نهایت، ما به مجموعه ای از اجزایی می رویم که می توانند به طور مستقل کار کنند (از طریق یک رابط خط فرمان)، اما می توانند با هم از طریق استانداردهای صنعت (مانند OpenMI) و رابط های نزدیکتر در صورت نیاز مرتبط شوند. این سیستم ترکیبی از نرم افزار هیدرولوژیکی نوشته شده در زبان های مختلف (Python با پسوندهای PCRaster، C ++، Fortran، C #) است و این لایه ها را با یک لایه مجزا (نازک) که یک رابط استاندارد را اجرا می کند، ترکیب می کند. اجزای زیر در حال حاضر در حال توسعه یا تنظیم هستند:
WFLOW
RTC-Tools - کنترل زمان واقعی و مدل های تعادل آب ساده
MODFLOW
چارچوب عمومی برای ساخت مدل های تعادل آب (به عنوان مثال مدل سطل)
(C # wrappers برای cPython یا WFLOW برای اتصال به OpenMI و Deltashell
جاوا / jepp wrapper برای اتصال cPython یا wflow به OpenDA
لیست فوق با مفاهیم دیگر تکمیل خواهد شد. یکی از نخستین مواردی که مورد بررسی قرار می گیرد مدل آبرسانی اولیه (REW) است.
پیوند اجزای موجود در OpenStreams
تعدادی از چارچوب موجود برای اتصال مدل های هیدرولوژیکی وجود دارد. در OpenStreams ما نمی خواهیم یک چارچوب دیگر بسازیم، در عوض ما سعی می کنیم مجموعه ای از اجزایی را که می توان با چارچوب های مختلف مورد استفاده قرار داد، برای به حداکثر رساندن استفاده مجدد از اجزای سازنده استفاده کنیم. برای این که موفق شود، بسیار مهم است که API ارائه شده توسط اجزای سازنده، یک رابط را فراهم کند که سطح بالایی از کنترل بر روی مدل را ایجاد می کند. مقدار جزئیات باید بیش از آنچه باشد که توسط چارچوب های مختلف مورد نیاز باشد. شکل حاضر نشان می دهد که چگونه مدل هایی که یک API سطح پایین را فراهم می کنند می توانند با استفاده از بسته های پیچیده به چارچوب های مختلف مانند OpenMI برای اتصال مدل ها و کالیبراسیون داده ها با استفاده از OpenDA انجام شود. علاوه بر این، ادغام بسیار نزدیک با استفاده از API بومی امکان پذیر است.
یکی از ویژگی های کلیدی OpenStreams این است که اجزا را نیز می توان به راحتی توسط محققان با استفاده از یک رابط خط فرمان ساده و یا به طور مستقیم با API مدل، شبیه سازی کرد. این نیز یکی از دلایلی است که ما آن را انتخاب کرده ایم. همچنین شامل پایتون به عنوان یک زبان پشتیبانی شده است. پایتون آسان است برای یادگیری و همچنین با تعدادی از بسته های که به شدت محاسبات علمی را ساده می کند.
موارد و برنامه های کاربردی
موارد زیر بخشی از پروژه OpenStreams هستند:
- مدل یکپارچه برای حوضه رودخانه rhine
- تست دو مفهوم مدل هیدرولوژیکی در رودخانه rhine
- استفاده از یک مدل هیدرولوژیکی توزیع شده و داده های آزاد در دسترس، احتمال خطر سیل سریع را در بر می گیرد
- محاسبات بار تغذیه برای تنگه Johor با استفاده از یک مدل هیدرولوژیکی توزیع شده در ترکیب با Delwaq
بحث و کار آینده
این صفحه توصیف کار اولیه در ساخت مدل های هیدرولوژیکی یکپارچه بر اساس (باز) اجزا است. کار بر روی گستره حوضه Rhine به منطقه دلتا هلندی آغاز شده است. این کار منجر به مدل هایی می شود که کل حوضۀ Rhine از آلپ تا دریای شمال را پوشش می دهد.
مدل های مبتنی بر PCRaster / Python فعلی شامل نقص هایی است که در بسیاری از مدل های هیدرولوژیکی وجود دارد: معادلات دیفرانسیل که منابع ذخیره را به طور صریح حل می کنند. کار آینده در OpenStreams شامل نسخه هایی از مدل هایی است که از راه حل های عددی مناسب استفاده می کنند. این امر به ویژه هنگامی که ترکیب مدل ها در سطح مقطع زمانی و هنگام استفاده از چارچوب های کالیبراسیون خودکار مانند آنچه در OpenDA یافت می شود، اهمیت دارد.
OpenStreams در حال حاضر شروع به کار کرده است. بنابراین محققان و مؤسسات علاقه مند به مشارکت بسیار خوش آمدید!
شناسه تلگرام مدیر سایت: SubBasin@
نشانی ایمیل: behzadsarhadi@gmail.com
(سوالات تخصصی را در گروه تلگرام ارسال کنید)
_______________________________________________________
نظرات (۰)