تکمیل و اجرای کد شبیه MODFLOW با پایتون
Packet Transient Well
حالا ما می توانیم شیء بسته چاه را ایجاد کنیم که از نوع flopy.modflow.ModflowWel است.
Packet Transient Well
حالا ما می توانیم شیء بسته چاه را ایجاد کنیم که از نوع flopy.modflow.ModflowWel است.
تعریف دوره های تنش
برای ایجاد مدل با دوره های تنش های مختلف، ما نیاز به تعریف nper، perlen، nstp و steady داریم. این کار در بلوک زیر انجام می شود به طوری که به ما اجازه می دهد این متغیر را مستقیما به شیء تقسیم بندی منتقل کنیم:
در این مثال، ما مدل آموزش های قبلی را به یک مدل جریان غیرقابل کنترل و مداوم با مرزهای زمانی متفاوت تبدیل خواهیم کرد. به جای استفاده از سطح آب های ثابت برای مرزهای چپ و راست (با تنظیم ibound to -1)، ما از مرزهای سطح آب کلی استفاده خواهیم کرد. ما در این مدل باید شرایط زیر را در نظر داشته باشید:
شرایط اولیه - سطح آب 10.0 در همه جا یکسان است.
دوره 1 (1 روز) - حالت پایدار با مرحله چپ و راست GHB = 10.
دوره 2 (100 روز) - GHB سمت چپ با مرحله = 10، راست GHB با مرحله تعیین شده به 0.
اجرای مدل سازی
Flopy همچنین می تواند برای اجرای مدل مورد استفاده قرار گیرد. شی مدل (mf در این مثال) یک روش متصل دارد که مدل را اجرا می کند. برای این کار، برنامه MODFLOW باید در جایی در مسیر سیستم یا در داخل دایرکتوری کار قرار بگیرد. در این مثال، ما مشخص کرده ایم که نام برنامه اجرایی 'mf2005' است. برای اجرای این مدل زیر را امتحان کنید:
بسته پایه
در گام بعد ما می توانیم جسم FloPy را ایجاد کنیم که MODFLOW Basic Pack را نشان می دهد. جزئیات در کلاس BAS فلاپی در: flopy.modflow.mfbas موجود است. برای این مدل ساده، مقادیر سطح پایه 10 و 0 به ترتیب به ستون اول و آخر مدل (در همه لایه ها) اختصاص داده می شود. کد پایتون برای انجام این کار:
ایجاد مدل MODFLOW
یکی از موارد مفید در مورد ایجاد مدل در پایتون این است که فرآیندی بسیار آسان داشته که با تغییر یک یا دو جزء، به طور کلی شبکه برای مدل شما را تغییر می دهد. بنابراین در این مثال، ما اسکریپت پایتون را طراحی می کنیم تا تعداد لایه ها، ستون ها و ردیف ها به راحتی تغییر کند.
ما می توانیم مدل MODFLOW بسیار ساده ای را تهیه کنیم که یک بسته پایه (BAS)، دیسک ورودی دیسکاوری (DIS)، بسته LPF یا package property، کنترل خروجی (OC) و حل کننده موتور گرادیان (PCG) را ایجاد کند. هر یک از این موارد فایل ورودی خود را دارد، که به صورت خودکار بوسیله FloPy ایجاد می شود.
این مجموعه آموزشی در سایت بیسین نشان خواهد داد که استفاده از FloPy برای توسعه مدل MODFLOW ساده است. توجه داشته باشید که می توانید این اسکریپت آموزش داده شده در پایتون را از اینجا دریافت کنید.
شروع آموزش: مقدمه و نحوه فعال سازی
اگر FloPy به درستی نصب شده باشد، می توان آن را به صورت زیر وارد کرد:
FloPy چیست؟
بسته FloPy شامل مجموعه ای از اسکریپت های پایتون برای اجرای MODFLOW، MT3D، SEAWAT و دیگر برنامه های آب زیرزمینی مرتبط با MODFLOW است. FloPy شما را قادر می سازد تمام این برنامه ها را با اسکریپت های پایتون اجرا کنید. پروژه FloPy در سال 2009 آغاز شده و به یک مجموعه کامل از اسکریپت ها با پایگاه کاربری رو به رشد افزوده است. FloPy3 در دسامبر 2014 با چند پیشرفت عالی که FloPy3 را به مدل سازی پسرو سازگار می کند، منتشر شد. اولین تغییر قابل توجه این است که FloPy3 از همه جا در فهرست صفر استفاده می کند، بدین معنا که تمام لایه ها، ردیف ها، ستون ها و دوره های استرس شروع به صفر شدن می کنند. این تغییر برای سازگاری صورت گرفته بود، چون همه شاخصه های آرایه قبلا صفر بود (همانطور که همه آرایه ها در پایتون) بود. این ممکن است نسبتا به مقدار کمی به کار گرفته شده و استفاده شود، اما امیدوارم از آشفتگی در آتی جلوگیری شود. دومین تقویت قابل توجه در مورد توانایی های این کد، مشخص کردن شرایط مرزی متفاوت و متغیر است
در معرفی IGWMC و CSM باید گفت که اگر چه به قدرت ابزار هیدروژئولوژیکی نیستند، با این حال زبان برنامه نویسی Python به علت قابلیت های محاسباتی و گرافیکی آن در جامعه هیدرولوژیکی مورد علاقه است. بهتر از همه، اینکه آنها رایگانند. مکان خوبی برای یادگیری در مورد پایتون سایت توسعه دهنده آن به نشانی www.python.org است. دانلود برای چندین سیستم عامل در دسترس است. نسخه ای که در این بررسی در نظر گرفته شده در آدرس اینترنتی www.enthought.com قابل دسترس است که تحت ویندوز اجرا می شود.
در آموزش های پیشین یادگیری ماشین با Python، ما پیش بینی را با استفاده از رگرسیون انجام دادیم و سپس با ماژول Matplotlib این پیش بینی را صورت دادیم. اکنون در اینجا درباره بعضی مراحل بعدی صحبت خواهیم کرد.
به یاد می آورم، اولین بار که من در تلاش بودم تا در مورد یادگیری ماشین بیاموزم، بسیاری از نمونه های تشریحی تنها تا آموزش و آزمون را پوشش می دادند، و سپس کاملا و بیکباره به قسمت پیش بینی پرش می کردند. از منابعی که آموزش، آزمون و پیش بینی بخشی را انجام می دادند، من حتی یک مورد را پیدا نکردم که الگوریتم را به وضوح شرح دهد. با مثال ها، و داده های کلی که اساسا بسیار کوچک هستند، بنابراین روند آموزش، آزمون و پیش بینی نسبتا سریع است. با این حال، در دنیای واقعی، داده ها احتمالا بزرگتر هستند و پردازش بسیار طولانی تر است. از آنجا که هیچ کس واقعا درباره این مرحله مهم صحبت نکرده بود، در اینجا قصد من این است که مطالب اطلاعاتی در مورد پردازش زمان و صرفه جویی در الگوریتم شما را شامل شود.
خوش آمدید به بخش پنجم مبحث یادگیری ماشین از مجموعه آموزش Python. تا به اینجا، محتوای آموزشی رگرسیون را پوشش می دهد. پیش از این، ما داده ها را جمع آوری کرده ایم، آن ها کمی اصلاح شده، طبقه بندی شده آموزش داده و حتی طبقه بندی ها آزمون شده اند. در این قسمت، ما قصد داریم از طبقه بندی ها استفاده کنیم تا در واقع برخی از پیش بینی ها برای ما انجام شود. کد تا این لحظه که ما استفاده می کنیم به صورت زیر است:
خوش آمدید به بخش چهارم از آموزش ماشین با سری آموزش Python. در آموزش های قبلی، داده های اولیه را به دست آوردیم، ما آن را به صورت دلخواهی تغییر دادیم و دستکاری و اصلاح کردیم، و سپس شروع به تعریف ویژگی هایمان کردیم. Scikit-Learn اساسا نیازی به کار با Pandas و فریم های داده ندارد، من فقط ترجیح می دهم اطلاعات مربوط به آن را مدیریت کنم، زیرا سریع و کارآمد است. در عوض، Scikit-learn اساسا نیاز به آرایه های numpy دارد. داده های فرعی پانداها به راحتی می توانند به آرایه های NumPy تبدیل شوند، بنابراین فقط برای انجام کار برای ما صورت می پذیرد.
بر اساس آموزش قبلی ریاضی یادگیری ماشین، بر پایه اطلاعات قیمت سهام ما رگرسیون را انجام خواهیم داد. کد تا این نقطه به صورت زیر بود:
شکل 1: یک لایه پنهان MLP.
مدل Perceptron چند لایه
یک الگوریتم یادگیری تحت نظارت است که یک تابع را با تمرین در یک مجموعه دادهیاد میگیرد، آنجا که تعداد ابعاد ورودی است و o تعداد از ابعاد خروجی با توجه به مجموعه ای از ویژگی های و یک هدف y، می توان یک تقریبنده تابع غیر خطی را برای هر دو طبقه بندی یا رگرسیون یاد گرفت. این تفاوت از رگرسیون لجستیک است، در حالی که بین ورودی و لایه خروجی، می تواند یک یا چند لایه غیر خطی وجود داشته باشد که لایه های مخفی هستند. شکل 1 یک MLP مخفی با خروجی اسکالر را نشان می دهد.
به یک دوره آموزشی فراگیر و عمیق خوش آمدید.
به مقدمه ای بر بخش رگرسیون یادگیری ماشین با مجموعه آموزشی Python خوش آمدید. با این حال، شما Scikit-Learn را از قبل نصب کرده اید. اگر نه، آن را دریافت کنید، همراه با پانداها و matplotlib!
اگر توزیع علمی پیمایشی قبل از کامپایل پایتون مانند ActivePython را داشته باشید، باید قبلا numpy، scipy، scikit-learn، matplotlib و pandas را نصب کرده باشید. اگر نه، دستورهای زیر را انجام دهید:
به یک دوره آموزشی فراگیر و عمیق خوش آمدید.
هدف این درس این است که به شما یک درک کامل از یادگیری ماشین، نظریه پوشش، کاربرد و عملکرد درونی الگوریتم های یادگیری نظارت شده، بدون نظارت و یادگیری عمیق بدهد.
در این سری، رگرسیون خطی، نزدیک ترین K همسایگان، ماشین های بردار پشتیبانی (SVM)، خوشه تخت، خوشه بندی سلسله مراتبی و شبکه های عصبی را پوشش می دهیم.
منابع USGS MODFLOW و Visual Studio Solutions
فایل هایی که در زیر قابل دریافت می باشد برای کمک به کاربرانی است که قصد کامپایل و ویرایش سریع MODFLOW را دارند (در مقایسه با دانلود از USGS و پیکربندی فرایند تدوین). کاربر نهایتا باید مایکروسافت ویژوال 2010 و اینتل ویژوال فرترن 2011 را به شکل نصب شده برای باز کردن راه حل و کامپایل MODFLOW داشته باشد. هر یک از فایل های فشرده زیر، هر دو منبع USGS برای نسخه خاص از MODFLOW و نیز به عنوان یک راه حل ویژوال استودیو 2010 است. به سادگی از حالت زیپ خارج (و یا استخراج) کرده، راه حل را در ویژوال استودیو باز کرده، و کد را کامپایل کنید.
ام اف لاب یا MFLAB
ام.اف.لب. که مخفف آزمایشگاه MODFLOW میباشد، فضایی کارآمد و به آسانی قابل تغییر برای مدل سازی کار آمد آبهای زیرزمینی میباشد. این برنامه برای استفاده از تعدادی از بسته های برنامه نویسی مدفلو مانند MT3DMS، SEAWAT و غیره طراحی شده است. ام اف لب قابلیت اجرایی در نسخه آتی وجدید این برنامها را هم دارد. این بسته های برنامه نویسی متعدد هستند و هر کدام برای مدل سازی نوع خاص از روند آبهای زیرزمینی یا شرایط مرزی آنها طراحی شده اند (مراجعه کنید به سایت). ارجعیت برنامه هایی مانند برنامه هایی نام برده شده در اینست که بصورت رایگان در دسترس عموم قرار داده شده اند. این برنامه ها روزانه به طور گسترده ای توسط گروه زیادی از مدل سازان آبهای زیرزمینی در سرتاسر جهان مورد استفاده قرار میگیرند. در ام اف لب جریان کار مدل سازی بصورت نوشتن متن میباشد و به همین دلیل قابل ویرایش و باز تولیدی است. برخلاف ام اف لب، دراستفاده از رابطهای گرافیکی کاربرموجود اگر ویرایش و باز تولیدی امری غیر ممکن نباشد بسیار دشوار خواهد بود. ام اف لب ازمحیط تعاملی (قابل کار برای دو طرف( متلب (یا محیط های اکتاو یا اسکی لب که بطور مجانی قابل دسترس هستند.) بهره برداری میکند تا : ١. مدل سازی کند ٢. تا داده های ورودی آنها را بنویسید ٣. تا برون داد های آنها را پردازش کرده به تصویر بکشاند ٤. این در صورتی است که ام اف لب یک فایل اکسل را به عنوان متن چند صفحه ای برای شبیه سازی پارامترها و به عنوان قسمتی از یک دستورالعمل استفاده میکند.
آب های زیرزمینی - مبانی و مفاهیم و پروژه های تخصصی
آبخوان ها و سفره های آب زیرزمینی علی رقم آنکه بخش مهم ذخایر طبیعی آب شیرین جهان را تشکیل می دهند، به دلیل ماهیت پنهان از چشم خود، همواره بیشترین فشار ها را در استفاده های بی رویه بر خود تحمل کرده و تنش اساسی بیلان داشته های آبی یک محدوده در این بخش رخ داده است. مدل ها و شبیه سازهای کامپیوتری شناخته شده ای در این زمینه وجود دارد که از گستردگی کاملی به منظور مطالعات و مدیریت برخوردار است.
آب های سطحی - مبانی و مفاهیم و پروژه های تخصصی
آب های سطحی، اگرچه در دسترس ترین منابع برای بشر محسوب می شوند، اما از نظر پایدار بسیار آسیب پذیر و در عین حال بیشترین آلودگی را دریافت و حمل می کنند. همچنین حوادث شدید آب و هوایی مشخصا و حدقل به صورت بصری، بیشتر بر روی این دسته از منابع قابل شناسایی است. شناخت درست آب های سطحی با روش های هیدرولوژیکی یکی از اهداف ماست.
آب های زیر سطحی - مبانی و مفاهیم و پروژه های تخصصی
آب های زیر سطحی،اهمیت بسیار زیادی در ارتباط یابی بین منابع آب و گیاهان دارند. خشسالی ها و ترسالی ها در این مفهوم خود را بیشتر برای انسان نشان می دهند. در عین حال مهم است که بدانیم اندرکنش آب های زیرزمینی و آب های سطحی بر اساس وضعیت لایه ای که آب های زیرسطحی در آن واقع شده است روی می دهد. شناخت درست آب های سطحی با روش های هیدرولوژیکی یکی از اهداف ماست.
برنامه نویسی منعطف به زبان پایتون
عنوان مهندسی برازنده فردی است که با معادلات یک علم آشنایی مشخصی داشته باشد. آشنایی با معادلات و مفهومات علم هیدرولوژی امکان کار با زبان های اسکریپت منعطفی چون پایتون را فراهم می کند که در نتیجه بسیاری از مسائل و مشکلات تخصصی و استثنا در مهندسی آب، امکان حل دقیق و کامپیوتری را پیدا کنند.
دریافت داده های مکانی پرکاربرد در مهندسی آب
بخش مهمی از خطا در محاسبات مهندسی، منتشر شده از داده های پایه ضعیف است. در این بخش می توانید به مجموعه گسترده ای از داده های مکانی چه در فرمت رستری و چه وکتوری، به منظور استفاده در نرم افزارهای مهندسی دسترسی داشته باشید. به مجموعه به مرور زمان افزوده می شود. همچنین محتوای پیشین در صورت امکان بروزرسانی می شود.
دریافت داده ها و اطلاعات پرکاربرد در مهندسی آب
دامنه وسیع داده ها و اطلاعات محیطی، الزام به دسترسی مطمئن و بروز از این آمار و اطلاعات را نشان می دهد. با توجه به گستردگی منابع دستیابی به داده در سطح اینترنت، ما در اینجا مجموعه بزرگی از داده ها را جمع آوری کرده ایم. شما می تواند به همراه توصیحات به این محتوا دسترسی داشته باشید.
درباره بهترين هاي بيسيـــن بدانيد...
يکي از مهمترين اهداف اين سايت تهيه آموزش هاي روان از ابزارهاي کاربردي علوم آب است.
اهميت مطالعات محيطي با ابزارهاي نوين در چيست؟
امروز با فارغ التحصيلي جمع کثير دانشجويان سالهاي گذشته و حال، با گذر از کمي گرايي ديگر صرف وجود مدارک دانشگاهي حرف اول را در بازار کار نمي زند؛ بلکه سنجش ديگري ملاک؛ و شايسته سالاري به ناچار! باب خواهد شد. يکي از مهم ترين لوازم توسعه علمي در هر کشور و ارائه موضوعات ابتکاري، بهره گيري از ابزار نوين است، بيسين با همکاري مخاطبان مي تواند در حيطه علوم آب به معرفي اين مهم بپردازد.
جستجو در بيسين