استفاده از مدل های WFLOW
ساختار دایرکتوری: موارد و اجرا
یک پرونده حاوی تمام اطلاعات مورد نیاز برای اجرای مدل است. موارد متعدد ممکن است در کنار یکدیگر در دایرکتوری های جداگانه وجود داشته باشد. این مدل تنها با یک مورد در یک زمان کار خواهد کرد. اگر هنگام شروع مدل هیچ موردی مشخص نشده باشد، پیش فرض (default_sbm یا default_hbv) در نظر گرفته می شود. در یک مورد خروجی مدل (نتایج) در یک پوشه جداگانه ذخیره می شود. این پوشه run نامیده می شود، که نشان داده شده با runId است. این ساختار در شکل بالا مشخص شده است. اگر میخواهید نتایج را ذخیره کنید و نتایج را از یک اجرا قبلی بازنویسی نکنید، runId جدید باید مشخص شود.
inmaps
دایرکتوری که اطلاعات ورودی پویا دارد. نقشه های بارش، تبخیر و تعرق بالقوه و (به صورت اختیاری) در فرمت mapstack pcraster.
instate
دایرکتوری که شرایط اولیه ورودی را نگه می دارد. که می توان در مدل hotstart از آن استفاده کرد. بعلاوه، مدل می تواند با شرایط اولیه پیش فرض شروع شود، اما در این حالت ممکن است نیاز به یک روش طولانی اسپیناپ باشد. این کار با استفاده از گزینه خط فرمان I- انجام می شود.
intbl
دایرکتوری برگزاری جداول جستجو این پارامترهای مدل مشخص شده در هر کلاس کاربری اراضی / نوع خاک را مشخص می کند. توجه داشته باشید که میتوانید از گزینه i- برای نامگذاری جایگزین (به عنوان مثال برای حمایت از یک کالیبراسیون مدل جایگزین) استفاده کنید. به صورت اختیاری می توان یک فایل .tbl.mult را برای هر پارامتر ارائه داد. این پرونده پس از بارگذاری فایل tbl. یا فایل نقشه به منظور ضرب کردن نتایج با استفاده از آن استفاده می شود. از این مورد می توان برای کالیبراسیون و غیره استفاده کرد.
intss
دایرکتوری که زمان ورودی اسکالر را نگه می دارد. برای داده ورودی اسکالر منفرد فرض می شود که ورودی ScalarInput در فایل ini به 1 (True) تنظیم شده است.
outstate
دایرکتوری که متغیر stat را در انتهای اجرا نگه می دارد. اینها را می توان به دایرکتوری instate کپی کرد تا مدل از این شرایط شروع شود. این موارد نیز در دایرکتوری runId / outstate ذخیره می شوند.
run_default
نام پیش فرض برای اجرا. اگر هیچ مقداری از runId داده نشده است تمام داده خروجی در این پوشه ذخیره می شود.
staticmaps
نقشه های استاتیک (DEM، و غیره) که توسط اسکریپت wflow_prep تهیه شده است.
wflow_sbm | hbv.ini
تنظیمات پیش فرض برای wflow_sbm از wflow_hbv.
اجرای مدل
بررسی اجمالی
به طور کلی این مدل از خط فرمان dos / windows / linux اجرا می شود. بر اساس تنظیمات سیستم شما می توانید مستقیما فایل wFlow_ [sbm | hbv] .py فراخوانید؛ یا باید به عنوان اولین استدلال پایتون با استفاده از اسکریپت زیر فراخوانی را صورت دهید:
python wflow_sbm.py -C myCase -R calib_run -T 365 -f
در مثال فوق، مدل wflow_sbm با استفاده از اطلاعات مورد استفاده در مورد myCase و ذخیره سازی نتایج در runId calib_run اجرا می شود. مجموعی تا 365 مرتبه اجرا می شود و این مدل خروجی فعلی را در دایرکتوری calib_run بازنویسی خواهد کرد. فایل ini. فایل پیش فرض wflow_sbm.ini واقع در دایرکتوری myCase در هنگام راه اندازی فراخوانده می شود.
گزینه های خط فرمان
گزینه های خط فرمان برای wflow_sbm در زیر خلاصه شده اند، از wflow_sbm -h استفاده کنید تا آنها را در خط فرمان مشاهده کنید (گزینه ای که در سایر مدل ها ممکن است متفاوت باشند، برای دیدن گزینه های آنها به اسناد مربوطه مراجعه کنید):
wflow_sbm [-h][-v level][-F runinfofile][-L logfile][-C casename][-R runId] [-c configfile][-T last_step][-S first_step][-s seconds][-W][-E][-N] [-U discharge][-P parameter multiplication][-X][-f][-I][-i tbl_dir] [-x subcatchId][-u updatecols][-p inputparameter multiplication]
-F: if set wflow is expected to be run by FEWS. It will determine the timesteps from the runinfo.xml file and save the output initial conditions to an alternate location. The runinfo.xml file should be located in the inmaps directory of the case. -X: save state at the end of the run over the initial conditions at the start -f: Force overwrite of existing results -T: Set last timestep -S: Set the start timestep (default = 1) -N: No lateral flow, use runoff response function to generate fast runoff -s: Set the model timesteps in seconds -I: re-initialize the initial model conditions with default -i: Set input table directory (default is intbl) -x: run for subcatchment only (e.g. -x 1) -C: set the name of the case (directory) to run -R: set the name runId within the current case -L: set the logfile -E: Switch on reinfiltration of overland flow -c: name of wflow the configuration file (default: Cassename/wflow_sbm.ini). -h: print usage information -W: If set, this flag indicates that an ldd is created for the water level for each timestep. If not the water is assumed to flow according to the DEM. Wflow will run a lot slower with this option. Most of the time (shallow soil, steep topography) you do not need this option. Also, if you need it you might actually need another model. -U: The argument to this option should be a .tss file with measured discharge in [m^3/s] which the program will use to update the internal state to match the measured flow. The number of columns in this file should match the number of gauges. -u: list of gauges/columns to use in update. Format: -u [1 , 4 ,13] The above example uses column 1, 4 and 13 Note that this also sets the order in which the updating takes place! In general specify downstream gauges first. -P: set parameter change string (e.g: -P 'self.FC = self.FC * 1.6') for non-dynamic variables -p: set parameter change string (e.g: -P 'self.Precipitation = self.Precipitation * 1.11') for dynamic variables -v: set verbosity level
wflow_sbm | فایل hbv.ini
فایل wflow_sbm | hbv.ini دارای تعدادی تنظیمات است که نحوه عملکرد مدل را تعیین می کند. فایل ها شامل بخش هایی هستند که محتوا را نگه می دارند. یک بخش با استفاده از یک کلمه کلیدی در قالب مربع تعریف می شود (به عنوان مثال [مدل]). متغیرها را می توان در هر قسمت با استفاده از یک ترکیب کلیدی keyword = value (به عنوان مثال ScalarInput = 1) تنظیم کرد. تنظیمات پیش فرض برای فایل INI در بخش های زیر ذکر شده است.
گزینه [model] برای همه مدل ها:
ModelSnow = 0
برای مدل برف با استفاده از یک مدل روز درجه ساده (به این ترتیب داده های دما مورد نیاز است)
WIMaxScale = 0.8
مقیاس برای روش رطوبت توپوگرافی در مقایسه با روش عمق خاک
Tslice = 1
تعداد برش زمانی در هر مورد استفاده در فرمول موج سینماتیکی
UpdMaxDist = 10000.0
حداکثر فاصله از سنجه برای اعمال به روز رسانی. تنها زمانی استفاده می شود اگر مدل با تخلیه اندازه گیری شده محدود شده باشد.
گزینه های خاص برای wflow_sbm:
RunoffGenSigmaFunction = 0
با استفاده از تابع سیگموئید به درصد تقریبی Dems، از رواناب زیرزمینی استفاده می کند. (فقط wflow_sbm)
updating = 0
تنظیم به 1 برای تغییر Q در روز رسانی.
updateFile
اگر به روز رسانی به 1 تنظیم شود، مشخص می شود
sCatch = 0
اگر مقدار دیگری از 0 تنظیم شود، مدل فقط از زیرسیستم مشخص شده استفاده می کند
intbl = intbl
دایرکتوری که از آن برای خواندن جداول جستجو (نسبت به دایرکتوری مورد) استفاده می شود
timestepsecs = 86400
مرتبه ای از مدل در ثانیه است
Alpha = 60
مدت آلفا در عملکرد تخمین شیب رودخانه
AnnualDischarge = 300
متوسط تخلیه سالانه در خروجی حوضه آبخیز رودخانه.
UpdMaxDist = 100
حداکثر فاصله از مقیاس مورد استفاده در به روز رسانی که برای به روز رسانی مخزن موج سینماتیک (در واحد متر و یا درجه سانتیگراد) استفاده می شود
waterdem = 0
اگر بر روی 1 تنظیم شود، ldd هر بار بر اساس DEM + سطح آب دوباره محاسبه می شود
reInfilt = 0
اگر به 1 تنظیم شود، آب از مخزن موج kinematic می تواند نفوذ به خاک را مجدد تعیین کند
گزینه های زیر ضروری نیست. در اینجا می توانید محل برخی از نقشه های ورودی را تغییر دهید.
wflow_subcatch = staticmaps / wflow_subcatch.map
نقشه با subcatchments
wflow_dem = staticmaps / wflow_dem.map
نقشه ارتفاع دیجیتال
wflow_ldd = staticmaps / wflow_ldd.map
شبکه محلی زهکشی
wflow_river = staticmaps / wflow_river.map
تمام سلول ها به عنوان رودخانه مشخص شده اند
wflow_riverlength = staticmaps / wflow_riverlength.map
طول رودخانه در هر سلول
wflow_riverlength_fact = staticmaps / wflow_riverlength_fact.map
عامل افزایش طول رودخانه با
wflow_landuse = staticmaps / wflow_landuse.map
نقشه کاربری اراضی
wflow_soil = staticmaps / wflow_soil.map
نقشه خاک
wflow_gauges = staticmaps / wflow_gauges.map
نقشه با مکان های اندازه گیری
wflow_inflow = staticmaps / wflow_inflow.map
نقشه با نقاط ورودی مجاز (اختیاری)
wflow_mgauges = staticmaps / wflow_mgauges.map
نقشه با مکان های سنجنده هواشناسی (فقط مورد نیاز است اگر شما به عنوان ورودی استفاده کنید timeshere scalar)
wflow_riverwidth = staticmaps / wflow_riverwidth.map
نقشه با عرض رودخانه
[defaultfortbl]
RunoffGeneratingGWPerc = 0.1
مقدار پیش فرض برای کسر بالای مخزن آب زیرزمینی که جریان رواناب را تولید می کند (فقط wflow_sbm)
[layout]
sizeinmetres = 0
اگر مقدار به صفر برسد، در lat/long (به طور پیش فرض) داده می شود، در غیر این صورت اندازه در متر در نظر گرفته می شود.
[outputmaps]
تصاویر خروجی برای صرفه جویی در هر زمان. گزینه های معتبر برای کلید در مدل wFlow_sbm همه متغیرهای بخش پویا مدل را می بینند (کد را ببینید). چند متغیر مفید در زیر فهرست شده است.
[outputmaps] self.Runoff=run self.SnowMelt=sno self.FirstZoneFlux=fzf self.FirstZoneDepth=fir
نکته
NB: کد wflow.py را برای تمام متغیرهای موجود را مشاهده کنید زیرا این لیست ناقص است. همچنین مستندات مربوط به محیط کار برای بخش [run] را بررسی کنید
مقادیر سمت راست علامت مساوی می توانند آزادانه انتخاب شوند.
محتوای نمونه:
Self.Runoff=run self.FirstZoneFlux=fzf self.FirstZoneDepth=fir
[outputcsv_0-n] [outputtss_0-n]
تعداد بخش ها برای تعریف timeseries خروجی در فرمت csv. هر بخش باید دارای یک آیتم samplemap و یک یا چند متغیر برای ذخیره باشد. نقشه نمونه نقشه ای است که چگونگی میانگین بارگذاری / نمونه برداری را تعیین می کند. همه موارد دیگر جفت نام های فایل متغیر است. نام پرونده مربوط به دایرکتوری موردی است.
مثال:
[outputcsv_0] samplemap=staticmaps/wflow_subcatch.map self.SurfaceRunoffMM=Qsubcatch_avg.csv [outputcsv_1] samplemap=staticmaps/wflow_gauges.map self.SurfaceRunoffMM=Qgauge.csv self.WaterLevel=Hgauge.csv [outputtss_0] samplemap=staticmaps/wflow_landuse.map self.SurfaceRunoffMM=Qlu.tss
در مثال بالا، تخلیه این مدل (self.SurfaceRunoffMM) به عنوان یک میانگین در هر subcatchment، نمونه در مکان های اندازه گیری و به عنوان یک میانگین برای هر landuse ذخیره می شود.
[inputmapstacks]
این بخش را می توان برای بازنویسی نام پیش فرض نقشه های ورودی استفاده کرد
Precipitation = / inmaps / P
باران برای بارندگی
EvapoTranspiration = / inmaps / PET
تبخیر و تعرق بالقوه
دما = / inmaps / TEMP
سری زمانی دما
Inflow = / inmaps / IF
نقاط ورود / خروج (انتزاعی)
به روز رسانی با استفاده از داده های اندازه گیری شده
توجه داشته باشید
به روز رسانی فقط در wflow_sbm و wflow_hbv پشتیبانی می شود.
اگر یک فایل (در فرمت tss.) با تخلیه اندازه گیری شده با استفاده از گزینه ی U- دستورالعمل مشخص شود، مدل سعی می کند جریان را در خروجی به اندازه تخلیه اندازه گیری کند. در این حالت باید گزینه u- نیز مشخص شود که کدام ستون باید مورد استفاده قرار گیرد. هنگامی که به روز رسانی فعال می شود، مراحل زیر صورت می پذیرد:
- تفاوت در خروجی بین رقم اندازه گیری شده و شبیه سازی Q (در میلی متر) تعیین می شود
- این تفاوت به منابع ذخیره غیر اشباع برای تمام سلول ها اضافه می شود
- نسبت Q اندازه گیری شده که توسط Q شبیه سازی شده در خروجی تقسیم شده است، برای ضرب کردن ذخیره موج سینماتیک با استفاده می شود. این نسبت با توجه به حداکثر فاصله از اندازه گیری مقیاس می شود.
هنگام استفاده از به روز رسانی، نکات زیر توجه داشته باشید:
فایل TSS باید ستون های بسیاری داشته باشد، زیرا اندازه گیری ها در مدل تعریف شده وجود دارد
فایل TSS باید داده های کافی برای پوشش دادن زمان شبیه سازی را داشته باشد
گزینه های U- باید مشخص شود کدام ستون ها در واقع استفاده می شوند و کدام یک از آنها برای استفاده است. به عنوان مثال:
-u ‘[1,3,2]’
استفاده از ستون های 1،2 و 3 را نشان می دهد.
تمام گزینه های ممکن در فایل wflow_sbm.ini
[defaultfortbl] RunoffGeneratingGWPerc = 0.1 [layout] sizeinmetres = 1 [fit] areamap = staticmaps/wflow_subcatch.map areacode = 1 Q = testing.tss WarmUpSteps = 1 ColMeas = 0 parameter_1 = RootingDepth parameter_0 = M ColSim = 0 [misc] [outputmaps] self.SurfaceRunoff = run [framework] debug = 0 outputformat = 1 [inputmapstacks] Inflow = /inmaps/IF Precipitation = /inmaps/P Temperature = /inmaps/TEMP EvapoTranspiration = /inmaps/PET [model] wflow_river = staticmaps/wflow_river.map InterpolationMethod = inv reinit = 1 WIMaxScale = 0.6 wflow_riverlength_fact = staticmaps/wflow_riverlength_fact.map OverWriteInit = 0 intbl = intbl wflow_riverwidth = staticmaps/wflow_riverwidth.map wflow_soil = staticmaps/wflow_soil.map ExternalQbase = 0 updateFile = no_set sCatch = 0 Alpha = 120 UpdMaxDist = 300000.0 wflow_subcatch = staticmaps/wflow_subcatch.map wflow_mgauges = staticmaps/wflow_mgauges.map timestepsecs = 86400 RunoffGeneratingGWPerc = 1.0 RunoffGenSigmaFunction = 1 ScalarInput = 0 reInfilt = 0 fewsrun = 0 wflow_dem = staticmaps/wflow_dem.map ModelSnow = 0 AnnualDischarge = 2290 wflow_landuse = staticmaps/wflow_landuse.map updating = 0 TemperatureCorrectionMap = staticmaps/wflow_tempcor.map wflow_inflow = staticmaps/wflow_inflow.map wflow_riverlength = staticmaps/wflow_riverlength.map wflow_ldd = staticmaps/wflow_ldd.map wflow_gauges = staticmaps/wflow_gauges.map Tslice = 1 waterdem = 0
ادامه دارد...
بخش بعدی را اینجا بیابید.
شناسه تلگرام مدیر سایت: SubBasin@
نشانی ایمیل: behzadsarhadi@gmail.com
(سوالات تخصصی را در گروه تلگرام ارسال کنید)
_______________________________________________________
پروژه تخصصی در لینکدین
نظرات (۰)