برنامه نویسی پایتون :: بیسین - سایت تخصصی مهندسی آب

ابزار وبمستر

Bootstrap Example

عضويت در خبرنامه ايـميـل پايگاه بيسيــن - عضويت پس از کليک بر روي لينک فعال سازي که براي شما ارسال خواهد شد تکميل مي شود

پشتيباني شده با بيسين

HydroConnect چیست؟ ابزار داده هیدرلوژیک


HydroConnect یک ابزار عمومی و پیشرفته برای حفظ طیف گسترده ای از پردازش هیدرولوژیکی است. برای مثال می توان از داده های مدل از اندازه گیری ها استفاده کرد و یا پس از پردازش نتایج شبیه سازی را حفظ کرد. HydroConnect به طور کامل بر اساس بسته Vistrails نرم افزار منبع باز (www.vistrails.org) است و از دو ماژول سفارشی برای هماهنگ سازی داده ها استفاده می کند (که FileSync و FileSyncManager نامیده می شود). این ماژول ها برای مدل ملی و مرکز داده هلندی (NMDC)، همکاری چندین وزارتخانه هلندی جهت به اشتراک گذاشتن دانش، توسعه داده شدند. HydroConnect به همین نحو به منظور مدیریت گردش کار است، جایی که کابر محاسباتی می تواند


OpenEarth چیست؟


OpenEarth ابتکار منبع آزاد برای تبادل داده ها، مدل ها و ابزارها در پروژه های علمی و مهندسی محیطی است. پروژه های موجود در حال حاضر عمدتا دریایی و ساحلی است. در حال حاضر، پروژه های تحقیقاتی، مشاوره ای و ساختمانی معمولا بخش قابل توجهی از بودجه خود را صرف نصب برخی زیرساخت های اولیه برای مدیریت داده ها و دانش می کنند. پس از پایان پروژه، بیشتر این تلاش ها دوباره ناپدید می شوند. OpenEarth به عنوان یک جایگزین برای این روش های ad-hoc، یک رویکرد مداوم برای مدیریت داده ها و دانش است. این پلتفرم برای ذخیره سازی، میزبانی و انتشار داده های با کیفیت بالا، سیستم های پیشرفته ترین مدل و ابزارهای آزمایش شده برای تجزیه و تحلیل عملی فراهم می کند. 


استفاده از مدل های WFLOW


ساختار دایرکتوری: موارد و اجرا

یک پرونده حاوی تمام اطلاعات مورد نیاز برای اجرای مدل است. موارد متعدد ممکن است در کنار یکدیگر در دایرکتوری های جداگانه وجود داشته باشد. این مدل تنها با یک مورد در یک زمان کار خواهد کرد. اگر هنگام شروع مدل هیچ موردی مشخص نشده باشد، پیش فرض (default_sbm یا default_hbv) در نظر گرفته می شود. در یک مورد خروجی مدل (نتایج) در یک پوشه جداگانه ذخیره می شود. این پوشه run نامیده می شود، که نشان داده شده با runId است. این ساختار در شکل بالا مشخص شده است. اگر میخواهید نتایج را ذخیره کنید و نتایج را از یک اجرا قبلی بازنویسی نکنید، runId جدید باید مشخص شود.


آشنایی با پلاتفرم آنلاین مدل سازی هیدرولوژیکی WFLOW


معرفی

این سند جریان پلاتفرم مدل سازی هیدرولوژیکی توزیع شده را توصیف می کند. wflow بخشی از پروژه OpenStreams Deltares است. Wflow شامل مجموعه ای از برنامه های پایتون می شود که می توانند در خط فرمان اجرا شوند و شبیه سازی های هیدرولوژیکی انجام دهند. این مدل ها بر اساس چارچوب PCRaster پایتون (www.pcraster.eu) است. در wflow این چارچوب گسترش یافته است (کلاس wf_DynamicFramework) به طوری که مدل های ساخته شده با استفاده از این چارچوب را می توان با استفاده از API کنترل کرد. لینک به BMI و OpenDA ایجاد شده است. تمام کد در github در دسترس است و تحت نسخه 3.0 GPL توزیع شده است.


زبان برنامه نویسی پایتون برای مهندسی آب و هیدرولوژی


1.1 چرا پایتون؟

پایتون یک زبان برنامه نویسی ساده و قدرتمند است. از بکارگیری واژه ساده، منظورم این است که آن را بسیار منعطف تر از زبان هایی مانند C می یابید اگر چه کند است. و از واژه قدرتمند، منظورم این است که می توان بسیاری از کدهای موجود را که در C، C++، Fortran و غیره نوشته شده است، به آن چسباند. جامعه کاربر این زبان رو به رشد است که بسیاری از ابزار را به راحتی در دسترس می کند. شاخص  پایتون، که یک میزبان بزرگ از کد پایتون است، در حال حاضر دارای بیش از چند ده هزار بسته است، که در مورد محبوبیت آن صحبت می کنند. استفاده از پایتون در جامعه هیدرولوژی نسبت به سایر زمینه ها خیلی سریع نیست، اما امروزه بسیاری از بسته های هیدرولوژیکی جدید در حال توسعه هستند. پایتون دسترسی به ترکیب خوبی از ابزارهای GIS، ریاضیات، و آمار و غیره را فراهم می کند، که باعث می شود یک زبان مفید برای هیدرولوژیست باشد. در زیر مزایای عمده پایتون برای هیدرولوژیست آمده است:


ضرورت برنامه نویسی پایتون برای یک هیدرولوژیست - معرفی ماژول ها


چرا برای پردازش داده ها یک زبان برنامه نویسی استفاده می شود؟

اکثر دانش پژوهان محاسبات خود را در اکسل انجام می دهند و یا اگر مجوز نداشته باشند، توسط برنامه برنامه نویسی متن باز برنامه Calc از OpenOffice. با این حال، فرض کنید که مجموعه داده های هواشناسی طولانی داشته باشید. در اکسل، حداکثر طول ردیف بسیار سریع اشباع می شود بنابراین شما باید اطلاعات خود را بر روی ورق های مختلف تقسیم کنید. این بسیار ناکارآمد خواهد بود. همچنین برای ساخت یک مدل کامپیوتری در یک برنامه صفحه گسترده، شبیه سازی فرآیندهای مانند جریان آب زیرزمینی، فرسایش و یا انتشار گازهای گلخانه ای پیچیده است.

در این مورد، متخصصان اغلب به نوشتن یک برنامه اختصاصی که می توانند پردازش داده ها را انجام دهند و محاسبات مدل را به صورت خودکار انجام دهند مجددا بازگشت می کنند. رایج ترین زبان ها برای برنامه نویسی عبارتند از زبان برنامه نویسی C و مشتقات آن و Java و Fortran. این زبان ها بسیار قدرتمند هستند، اما دارای ویژگی هایی هستند که از جمله شما باید برنامه را بنویسید و سپس آن را برای کار با آن کامپایل کنید.


پس پردازش نتایج مدل مادفلو در Python

پس پردازش نتایج

یک بار دیگر، می توانیم از فایل خروجی باینری MODFLOW، با استفاده از ماژول flopy.utils.binaryfile، سطوح آب را بخوانیم. همراه با Object HeadFile چندین روش وجود دارد که ما در اینجا استفاده خواهیم کرد: get_times لیستی از بارهای موجود در فایل head file را بازگرداند. get_data آرایه سطح سه بعدی را برای زمان مشخص بازگرداند. get_ts آرایه سری زمانی [ntimes، headval] برای سلول مشخص شده را برمیگرداند.

با استفاده از این روش، می توانیم نتایج حاصل از مدل ها، نمونه های سطح آب و هیدروگراف را ایجاد کنیم:


توسعه شرایط مرزی مدل MODFLOW با کد برنامه نویسی پایتون


تعریف دوره های تنش

برای ایجاد مدل با دوره های تنش های مختلف، ما نیاز به تعریف nper، perlen، nstp و steady داریم. این کار در بلوک زیر انجام می شود به طوری که به ما اجازه می دهد این متغیر را مستقیما به شیء تقسیم بندی منتقل کنیم:


کد پایتون مدل سازی مدل جریان گذرا آبخوان آزاد


در این مثال، ما مدل آموزش های قبلی را به یک مدل جریان غیرقابل کنترل و مداوم با مرزهای زمانی متفاوت تبدیل خواهیم کرد. به جای استفاده از سطح آب های ثابت برای مرزهای چپ و راست (با تنظیم ibound to -1)، ما از مرزهای سطح آب کلی استفاده خواهیم کرد. ما در این مدل باید شرایط زیر را در نظر داشته باشید:


شرایط اولیه - سطح آب 10.0 در همه جا یکسان است.

دوره 1 (1 روز) - حالت پایدار با مرحله چپ و راست GHB = 10.

دوره 2 (100 روز) - GHB سمت چپ با مرحله = 10، راست GHB با مرحله تعیین شده به 0.


اجرای مدل سازی MODFLOW با برنامه نویسی متن باز


اجرای مدل سازی

Flopy همچنین می تواند برای اجرای مدل مورد استفاده قرار گیرد. شی مدل (mf در این مثال) یک روش متصل دارد که مدل را اجرا می کند. برای این کار، برنامه MODFLOW باید در جایی در مسیر سیستم یا در داخل دایرکتوری کار قرار بگیرد. در این مثال، ما مشخص کرده ایم که نام برنامه اجرایی 'mf2005' است. برای اجرای این مدل زیر را امتحان کنید:


مدل سازی آبخوان با کد اسکریپت پایتون


بسته پایه

در گام بعد ما می توانیم جسم FloPy را ایجاد کنیم که MODFLOW Basic Pack را نشان می دهد. جزئیات در کلاس BAS فلاپی در: flopy.modflow.mfbas موجود است. برای این مدل ساده، مقادیر سطح پایه 10 و 0 به ترتیب به ستون اول و آخر مدل (در همه لایه ها) اختصاص داده می شود. کد پایتون برای انجام این کار:


ایجاد مدل MODFLOW با کد پایتون

ایجاد مدل MODFLOW

یکی از موارد مفید در مورد ایجاد مدل در پایتون این است که فرآیندی بسیار آسان داشته که با تغییر یک یا دو جزء، به طور کلی شبکه برای مدل شما را تغییر می دهد. بنابراین در این مثال، ما اسکریپت پایتون را طراحی می کنیم تا تعداد لایه ها، ستون ها و ردیف ها به راحتی تغییر کند.

ما می توانیم مدل MODFLOW بسیار ساده ای را تهیه کنیم که یک بسته پایه (BAS)، دیسک ورودی دیسکاوری (DIS)، بسته LPF یا package property، کنترل خروجی (OC) و حل کننده موتور گرادیان (PCG) را ایجاد کند. هر یک از این موارد فایل ورودی خود را دارد، که به صورت خودکار بوسیله FloPy ایجاد می شود.


راهنمای MODFLOW - مدل جریان ثابت حالت ماندگار


این مجموعه آموزشی در سایت بیسین نشان خواهد داد که استفاده از FloPy برای توسعه مدل MODFLOW ساده است. توجه داشته باشید که می توانید این اسکریپت آموزش داده شده در پایتون را از اینجا دریافت کنید.


شروع آموزش: مقدمه و نحوه فعال سازی

اگر FloPy به درستی نصب شده باشد، می توان آن را به صورت زیر وارد کرد:


کدنویسی مدل آب زیرزمینی MODFLOW با پایتون


FloPy چیست؟

بسته FloPy شامل مجموعه ای از اسکریپت های پایتون برای اجرای MODFLOW، MT3D، SEAWAT و دیگر برنامه های آب زیرزمینی مرتبط با MODFLOW است. FloPy شما را قادر می سازد تمام این برنامه ها را با اسکریپت های پایتون اجرا کنید. پروژه FloPy در سال 2009 آغاز شده و به یک مجموعه کامل از اسکریپت ها با پایگاه کاربری رو به رشد افزوده است. FloPy3 در دسامبر 2014 با چند پیشرفت عالی که FloPy3 را به مدل سازی پسرو سازگار می کند، منتشر شد. اولین تغییر قابل توجه این است که FloPy3 از همه جا در فهرست صفر استفاده می کند، بدین معنا که تمام لایه ها، ردیف ها، ستون ها و دوره های استرس شروع به صفر شدن می کنند. این تغییر برای سازگاری صورت گرفته بود، چون همه شاخصه های آرایه قبلا صفر بود (همانطور که همه آرایه ها در پایتون) بود. این ممکن است نسبتا به مقدار کمی به کار گرفته شده و استفاده شود، اما امیدوارم از آشفتگی در آتی جلوگیری شود. دومین تقویت قابل توجه در مورد توانایی های این کد، مشخص کردن شرایط مرزی متفاوت و متغیر است


لزوم آشنایی هیدرولوژیست با زبان برنامه نویسی Python


در معرفی IGWMC و CSM باید گفت که اگر چه به قدرت ابزار هیدروژئولوژیکی نیستند، با این حال زبان برنامه نویسی Python به علت قابلیت های محاسباتی و گرافیکی آن در جامعه هیدرولوژیکی مورد علاقه است. بهتر از همه، اینکه آنها رایگانند. مکان خوبی برای یادگیری در مورد پایتون سایت توسعه دهنده آن به نشانی www.python.org است. دانلود برای چندین سیستم عامل در دسترس است. نسخه ای که در این بررسی در نظر گرفته شده در آدرس اینترنتی www.enthought.com قابل دسترس است که تحت ویندوز اجرا می شود.


آموزش پایتون: Pickling and Scaling


در آموزش های پیشین یادگیری ماشین با Python، ما پیش بینی را با استفاده از رگرسیون انجام دادیم و سپس با ماژول Matplotlib این پیش بینی را صورت دادیم. اکنون در اینجا درباره بعضی مراحل بعدی صحبت خواهیم کرد.


به یاد می آورم، اولین بار که من در تلاش بودم تا در مورد یادگیری ماشین بیاموزم، بسیاری از نمونه های تشریحی تنها تا آموزش و آزمون را پوشش می دادند، و سپس کاملا و بیکباره به قسمت پیش بینی پرش می کردند. از منابعی که آموزش، آزمون و پیش بینی بخشی را انجام می دادند، من حتی یک مورد را پیدا نکردم که الگوریتم را به وضوح شرح دهد. با مثال ها، و داده های کلی که اساسا بسیار کوچک هستند، بنابراین روند آموزش، آزمون و پیش بینی نسبتا سریع است. با این حال، در دنیای واقعی، داده ها احتمالا بزرگتر هستند و پردازش بسیار طولانی تر است. از آنجا که هیچ کس واقعا درباره این مرحله مهم صحبت نکرده بود، در اینجا قصد من این است که مطالب اطلاعاتی در مورد پردازش زمان و صرفه جویی در الگوریتم شما را شامل شود.


آموزش پایتون: رگرسیون - پیش بینی و پیش گویی

خوش آمدید به بخش پنجم مبحث یادگیری ماشین از مجموعه آموزش Python. تا به اینجا، محتوای آموزشی رگرسیون را پوشش می دهد. پیش از این، ما داده ها را جمع آوری کرده ایم، آن ها کمی اصلاح شده، طبقه بندی شده آموزش داده و حتی طبقه بندی ها آزمون شده اند. در این قسمت، ما قصد داریم از طبقه بندی ها استفاده کنیم تا در واقع برخی از پیش بینی ها برای ما انجام شود. کد تا این لحظه که ما استفاده می کنیم به صورت زیر است:


آموزش پایتون: رگرسیون - یادگیری ماشین و آزمون


خوش آمدید به بخش چهارم از آموزش ماشین با سری آموزش Python. در آموزش های قبلی، داده های اولیه را به دست آوردیم، ما آن را به صورت دلخواهی تغییر دادیم و دستکاری و اصلاح کردیم، و سپس شروع به تعریف ویژگی هایمان کردیم. Scikit-Learn اساسا نیازی به کار با Pandas و فریم های داده ندارد، من فقط ترجیح می دهم اطلاعات مربوط به آن را مدیریت کنم، زیرا سریع و کارآمد است. در عوض، Scikit-learn اساسا نیاز به آرایه های numpy دارد. داده های فرعی پانداها به راحتی می توانند به آرایه های NumPy تبدیل شوند، بنابراین فقط برای انجام کار برای ما صورت می پذیرد.


درباره بهترين هاي بيسيـــن بدانيد...

Bird

يکي از مهمترين اهداف اين سايت تهيه آموزش هاي روان از ابزارهاي کاربردي علوم آب است.

اهميت مطالعات محيطي با ابزارهاي نوين در چيست؟

امروز با فارغ التحصيلي جمع کثير دانشجويان سالهاي گذشته و حال، با گذر از کمي گرايي ديگر صرف وجود مدارک دانشگاهي حرف اول را در بازار کار نمي زند؛ بلکه سنجش ديگري ملاک؛ و شايسته سالاري به ناچار! باب خواهد شد. يکي از مهم ترين لوازم توسعه علمي در هر کشور و ارائه موضوعات ابتکاري، بهره گيري از ابزار نوين است، بيسين با همکاري مخاطبان مي تواند در حيطه علوم آب به معرفي اين مهم بپردازد.

جستجو در بيسين


ابزارهاي نوين

بیسین - سایت تخصصی مهندسی آب

بیسین جهت ارائه مطالب و خدمات تخصصی در حیطه نرم افزارها و مدل های شبیه سازی مهندسی آب با رویکرد پژوهشی-آموزشی ایجاد شده است که توسعه خود را در گرو همکاری مخاطبان می بیند.

اطلاعات سايت

  • www.Basin.ir@gmail.com
  • بهزاد سرهادي
  • تاريخ امروز:
  • شناسه تلگرام: Basin_ir
  • شماره تماس: 09190622992-098

W3Schools