راهنمای مرجع فنی HEC-HMS - اجرای HEC-HMS با Jython
اجرای HEC-HMS با Jython - از Jython می توان برای اجرای HMS، یک برنامه جاوا، به روشی "بدون سر" استفاده کرد. حداقل به HEC-HMS نیاز خواهید داشت. همچنین ممکن است اسکریپت خود را از طریق یک فایل دسته ای یا IDE اجرا کنید، در این صورت شما به یک نمونه از Jython نیاز خواهید داشت.
مثال Jython
نمونه اسکریپت پایتون، compute_current.py، در زیر نشان داده شده است:
from hms.model import Project
from hms import Hms
myProject = Project.open('C:/Projects/castro/castro.hms')
myProject.computeRun('Current')
myProject.close()
Hms.shutdownEngine()
اجرای اسکریپت از طریق HEC-HMS
این ساده ترین راه برای اجرای اسکریپت jython است. HEC-HMS از یک مفسر پایتون تعبیه شده استفاده می کند و تنظیم محیط را بر عهده دارد. به سادگی اسکریپت خود را با آرگومان -script یا -s و سپس مسیر اسکریپت به HEC-HMS.cmd یا HEC-HMS.exe منتقل کنید. مثلا:
cd /d C:/Programs/HEC-HMS-4.4
hec-hms.cmd -script C:/Projects/castro/scripts/compute_current.py
اجرای اسکریپت از طریق دسته
اسکریپت ها را می توان از طریق پرونده دسته ای نیز اجرا کرد. در این حالت شما باید یک محیط معادل با HEC-HMS تنظیم کنید. فایل دسته ای، compute_current.bat، در زیر نشان داده شده است:
set "PATH=C:/Programs/HEC-HMS-4.4-beta.2/bin/gdal;%PATH%"
set "GDAL_DRIVER_PATH=C:/Programs/HEC-HMS-4.4-beta.2/bin/gdal/gdalplugins"
set "GDAL_DATA=C:/Programs/HEC-HMS-4.4-beta.2/gdal/bin/gdal-data"
set "PROJ_LIB=C:/Programs/HEC-HMS-4.4-beta.2/gdal/bin/projlib"
set-"CLASSPATH=C:/Projects/hms/HEC-HMS/build/distributions/HEC-HMS-4.4-beta.2/hms.jar;C:/Projects/hms/HEC-HMS/build/distributions/HEC-HMS-4.4-beta.2/lib/*"
C:/jython2.7.1/bin/jython--Djava.library.path="C:/Programs/HEC-HMS-4.4-beta.2/bin;C:/Programs/HEC-HMS-4.4-beta.2/bin/gdal" compute_current.py
خط 1: مسیر باینری GDAL متغیر محیط PATH را منبسط می کند. این احتمالاً لازم نیست مگر اینکه در مدل met با طوفان HMR52 کار کنید. مسیرهای TauDEM و MPI شامل نمی شوند زیرا از طریق برنامه نویسی به آنها دسترسی نخواهیم داشت.
خطوط 2-4: سایر متغیرهای محیط GDAL پیکربندی شده اند. این موارد احتمالاً برای اکثر برنامه های اسکریپت نویسی ضروری نیست.
خط 5: java classpath را طوری تنظیم کنید که مسیر دسترسی به کتابخانه های وابسته و hms.jar را در آن داشته باشد. همه کتابخانه های وابسته در فهرست توزیع lib قرار دارند. در این حالت یک wildcard * نشان می دهد که همه کتابخانه های موجود در فهرست lib باید به classpath اضافه شوند.
خط 6: برای اجرای اسکریپت از برنامه اجرایی jython استفاده کنید. -Djava.library.path مسیر کتابخانه های بومی را تعیین می کند. مسیرها باید شامل دایرکتوری bin توزیع، جایی که javaHeclib.dll و WindowsEn Environment.dll در آن قرار دارند، و همچنین فهرست bin / gdal که gdal201.dll در آن قرار دارد.
اجرای اسکریپت در IDE
اسکریپت ها همچنین می توانند در یک محیط توسعه یکپارچه (IDE) اجرا شوند. IDE ها ویژگی های مفیدی مانند تکمیل کد، بازسازی مجدد خودکار و اشکال زدایی را ارائه می دهند. این مثال نشانگر استفاده از IntelliJ با افزونه Python است. از پیکربندی های دیگر IDE مانند گرفتگی با پلاگین PyDev می توان استفاده کرد.
پروژه جدیدی به نام jython-hms-scripts ایجاد شده است. فایل compute_current.py در پروژه قرار داده شده است:
اسکریپت از قطعه کد بالا compute_current.py است.
در Project Structure، Project SDK را روی نمونه ای از Jython تنظیم کنید.
در Project Structure، hms.jar را به عنوان کتابخانه اضافه کنید. می توانید بقیه شیشه های کتابخانه وابسته را به صورت اختیاری در اینجا اضافه کنید.
یک پیکربندی اجرای جدید ایجاد کنید، مانند compute_current.
در پیکربندی اجرا، متغیرهای محیط را تنظیم کنید. یادداشت ها را در بخش اجرای یک اسکریپت از طریق دسته مشاهده کنید. در این حالت متغیر محیط CLASSPATH بر روی دایرکتوری توزیع lib تنظیم می شود. همچنین می توانید هر شیشه را به روشنی در Project Structure | اضافه کنید.
در پیکربندی اجرا، گزینه های مفسر را برای قرار دادن -Djava.library.path تنظیم کنید. یادداشت ها را در بخش اجرای یک اسکریپت از طریق دسته مشاهده کنید.
برای مرجع HI-HMS API، به اسکریپت نویسی در کتابچه راهنمای کاربر HEC-HMS مراجعه کنید.
شناسه تلگرام مدیر سایت: SubBasin@
نشانی ایمیل: behzadsarhadi@gmail.com
(سوالات تخصصی را در گروه تلگرام ارسال کنید)
_______________________________________________________
نظرات (۰)