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

پس پردازش نتایج مدل مادفلو در 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 تبدیل شوند، بنابراین فقط برای انجام کار برای ما صورت می پذیرد.

آموزش پایتون: مدل شبکه عصبی - نظارت شده

شکل 1: یک لایه پنهان MLP.


مدل Perceptron چند لایه

یک الگوریتم یادگیری تحت نظارت است که یک تابع f(\cdot): R^m \rightarrow R^o را  با تمرین در یک مجموعه دادهیاد میگیرد، آنجا که m تعداد ابعاد ورودی است و o تعداد از ابعاد خروجی با توجه به مجموعه ای از ویژگی های X = {x_1, x_2, ..., x_m} و یک هدف y، می توان یک تقریبنده تابع غیر خطی را برای هر دو طبقه بندی یا رگرسیون یاد گرفت. این تفاوت از رگرسیون لجستیک است، در حالی که بین ورودی و لایه خروجی، می تواند یک یا چند لایه غیر خطی وجود داشته باشد که لایه های مخفی هستند. شکل 1 یک MLP مخفی با خروجی اسکالر را نشان می دهد.

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


به یک دوره آموزشی فراگیر و عمیق خوش آمدید.

به مقدمه ای بر بخش رگرسیون یادگیری ماشین با مجموعه آموزشی Python خوش آمدید. با این حال، شما Scikit-Learn را از قبل نصب کرده اید. اگر نه، آن را دریافت کنید، همراه با پانداها و matplotlib!


اگر توزیع علمی پیمایشی قبل از کامپایل پایتون مانند ActivePython را داشته باشید، باید قبلا numpy، scipy، scikit-learn، matplotlib و pandas را نصب کرده باشید. اگر نه، دستورهای زیر را انجام دهید:

آموزش عملی یادگیری ماشین با معرفی پایتون


به یک دوره آموزشی فراگیر و عمیق خوش آمدید.

هدف این درس این است که به شما یک درک کامل از یادگیری ماشین، نظریه پوشش، کاربرد و عملکرد درونی الگوریتم های یادگیری نظارت شده، بدون نظارت و یادگیری عمیق بدهد.


در این سری، رگرسیون خطی، نزدیک ترین K همسایگان، ماشین های بردار پشتیبانی (SVM)، خوشه تخت، خوشه بندی سلسله مراتبی و شبکه های عصبی را پوشش می دهیم.

ویرایش کد مدل MODFLOW - مدل سازی آب زیرزمینی


منابع USGS MODFLOW و Visual Studio Solutions

فایل هایی که در زیر قابل دریافت می باشد برای کمک به کاربرانی است که قصد کامپایل و ویرایش سریع MODFLOW را دارند (در مقایسه با دانلود از USGS و پیکربندی فرایند تدوین). کاربر نهایتا باید مایکروسافت ویژوال 2010 و اینتل ویژوال فرترن 2011 را به شکل نصب شده برای باز کردن راه حل و کامپایل MODFLOW داشته باشد. هر یک از فایل های فشرده زیر، هر دو منبع USGS برای نسخه خاص از MODFLOW و نیز به عنوان یک راه حل ویژوال استودیو 2010 است. به سادگی از حالت زیپ خارج (و یا استخراج) کرده، راه حل را در ویژوال استودیو باز کرده، و کد را کامپایل کنید.

ویرایش آنلاین-اشتراکی مدل MODFLOW در MATLAB با MFLAB


ام اف لاب یا MFLAB

ام.اف.لب. که مخفف آزمایشگاه MODFLOW میباشد، فضایی کارآمد و به آسانی قابل تغییر برای مدل سازی کار آمد آبهای زیرزمینی میباشد. این برنامه برای استفاده از تعدادی از بسته های برنامه نویسی مدفلو مانند MT3DMS، SEAWAT و غیره طراحی شده است. ام اف لب قابلیت اجرایی در نسخه آتی وجدید این برنامها را هم دارد. این بسته های برنامه نویسی متعدد هستند و هر کدام برای مدل سازی نوع خاص از روند آبهای زیرزمینی یا شرایط مرزی آنها طراحی شده اند (مراجعه کنید به سایت). ارجعیت برنامه هایی مانند برنامه هایی نام برده شده در اینست که بصورت رایگان در دسترس عموم قرار داده شده اند. این برنامه ها روزانه به طور گسترده ای توسط گروه زیادی از مدل سازان آبهای زیرزمینی در سرتاسر جهان مورد استفاده قرار میگیرند. در ام اف لب جریان کار مدل سازی بصورت نوشتن متن میباشد و به همین دلیل قابل ویرایش و باز تولیدی است. برخلاف ام اف لب، دراستفاده از رابطهای گرافیکی کاربرموجود اگر ویرایش و باز تولیدی امری غیر ممکن نباشد بسیار دشوار خواهد بود. ام اف لب ازمحیط تعاملی (قابل کار برای دو طرف( متلب (یا محیط های اکتاو یا اسکی لب که بطور مجانی قابل دسترس هستند.) بهره برداری میکند تا : ١. مدل سازی کند ٢. تا داده های ورودی آنها را بنویسید ٣. تا برون داد های آنها را پردازش کرده به تصویر بکشاند ٤. این در صورتی است که ام اف لب یک فایل اکسل را به عنوان متن چند صفحه ای برای شبیه سازی پارامترها و به عنوان قسمتی از یک دستورالعمل استفاده میکند.






آب های زیرزمینی - مبانی و مفاهیم و پروژه های تخصصی

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



آب های سطحی - مبانی و مفاهیم و پروژه های تخصصی

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



آب های زیر سطحی - مبانی و مفاهیم و پروژه های تخصصی

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



برنامه نویسی منعطف به زبان پایتون

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



دریافت داده های مکانی پرکاربرد در مهندسی آب

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



دریافت داده ها و اطلاعات پرکاربرد در مهندسی آب

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




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

Bird

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

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

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

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


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

سایت مهندسی آب بیسین با معرفی مهم ترین و کاربردی ترین نرم افزارها و مدل های شبیه سازی در حیطه مهندسی آب، تلاش به تهیه خدمات یکپارچه و محلی از محاسبات هیدرولوژیکی و هیدرولیکی می کند

W3Schools


اطلاعات سايت

  • behzadsarhadi@gmail.com
  • بهزاد سرهادي
  • شناسه تلگرام: SubBasin
  • شماره واتساپ: 09190622992-098
  • شماره تماس: 09190622992-098

W3Schools