این دستور g.parsergrass است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
g.Parser - پشتیبانی کامل تجزیه کننده برای اسکریپت های GRASS را ارائه می دهد.
واژگان کلیدی
عمومی، پشتیبانی، اسکریپت
خلاصه
g.Parser --کمک
g.Parser [-s] [-t] [-n] نام فایل [استدلال،...]
پرچم ها:
-t
چاپ رشته ها برای ترجمه
-s
به جای فراخوانی مجدد اسکریپت، مقادیر گزینه را در خروجی استاندارد بنویسید
-n
مقادیر گزینه را در خروجی استاندارد جدا شده با نویسه تهی بنویسید
شرح
La g.Parser ماژول پشتیبانی کامل تجزیه کننده را برای اسکریپت های GRASS، از جمله یک
رابط کاربری گرافیکی تولید شده خودکار، الگوی صفحه راهنما و بررسی گزینه خط فرمان. که در
به این ترتیب یک اسکریپت ساده می تواند خیلی سریع به یک ماژول GRASS کامل تبدیل شود.
OPTIONS
مگر اینکه -s or -n سوئیچ استفاده می شود، آرگومان ها در متغیرهای محیطی ذخیره می شوند
در اسکریپت های خود استفاده کنید این متغیرها «GIS_FLAG_» نام دارند. "برای پرچم ها و
"GIS_OPT_ " برای گزینه ها. نام متغیرها به حروف بزرگ تبدیل می شود. برای
به عنوان مثال اگر یک گزینه با کلید ورودی در هدر اسکریپت تعریف شده است، مقدار آن خواهد بود
موجود در متغیر GIS_OPT_INPUT و مقدار پرچم با کلید f در دسترس خواهد بود
متغیر GIS_FLAG_F.
برای پرچم ها، اگر پرچم داده شده باشد، مقدار "1" و در غیر این صورت "0" خواهد بود.
اگر -s or -n سوئیچ استفاده می شود، گزینه ها و پرچم ها در خروجی استاندارد نوشته می شوند
فرم انتخاب_ = و پرچم_ =، قبل از رشته @ARGS_PARSED@.
اگر این رشته به عنوان اولین خط خروجی استاندارد ظاهر نشود، نشان می دهد که
اسکریپت با یک سوئیچ مانند --html-description. در این مورد، داده ها
نوشته شده توسط g.Parser به خروجی استاندارد باید در خروجی استاندارد اسکریپت کپی شود
کلمه به کلمه اگر -s سوئیچ استفاده می شود، گزینه ها و پرچم ها با خطوط جدید از هم جدا می شوند. اگر
la -n سوئیچ استفاده می شود، گزینه ها و پرچم ها با کاراکترهای تهی از هم جدا می شوند.
تعاریف هدر معمولی به شرح زیر است:
#٪مدول
#% توضیحات: اسکریپت تست g.parser
#٪پایان
#٪پرچم
کلید #٪: f
#% توضیحات: یک پرچم
#٪پایان
#٪گزینه
کلید #٪: شطرنجی
#% نوع: رشته
#% gisprompt: قدیمی، سلولی، شطرنجی
#% توضیحات: نقشه ورودی رستری
#% مورد نیاز: بله
#٪پایان
با {NULL} می توان یک توضیح یا برچسب از پیش تعریف شده را سرکوب کرد.
تجزیه کننده اجازه استفاده از از پیش تعریف شده را می دهد استاندارد گزینه های و پرچم ها، لیست را ببینید
گزینه ها و پرچم ها در کتابچه راهنمای برنامه نویس. به عنوان مثال. گزینه
#٪گزینه
کلید #٪: شطرنجی
#% نوع: رشته
#% gisprompt: قدیمی، سلولی، شطرنجی
#% توضیحات: نقشه ورودی رستری
#% مورد نیاز: بله
#٪پایان
را می توان به راحتی به عنوان تعریف کرد
#%گزینه G_OPT_R_MAP
کلید #٪: شطرنجی
#٪پایان
تجزیه کننده اجازه می دهد تا تعریف از پیش تعریف شده قوانین برای گزینه های استفاده شده نحو قوانین
بخش زیر است:
#% قوانین
#% انحصاری: capfile_output، capfile
#٪پایان
تجزیه کننده همچنین اجازه می دهد تا شرایط "OR" را تعریف کند، به عنوان مثال نیاز به بردار رستری OR (برای
جزئیات، به زیر مراجعه کنید)، گزینههای egfor:
#% قوانین
#% مورد نیاز: شطرنجی، وکتور
#٪پایان
و به عنوان مثال، برای پرچم:
#% قوانین
#% مورد نیاز: -i,-d,-c
#٪پایان
NOTES
با افزودن خط زیر می توان به گزینه ای دستور داد که چندین ورودی را مجاز کند:
#% مضرب: بله
در حالی که این فقط مستقیماً تغییر خواهد کرد استفاده بخش صفحه راهنما، این گزینه است
رشته محیطی ممکن است به راحتی از داخل یک اسکریپت تجزیه شود. مثلا فردی
هویت های جدا شده با کاما برای گزینه ای به نام "input" را می توان با موارد زیر تجزیه کرد
کد پوسته Bash:
IFS=،
برای انتخاب $GIS_OPT_INPUT ; انجام دادن
... "$opt"
انجام شده
ممکن است یک فیلد "guisection" به هر گزینه اضافه شود و برای مشخص کردن گزینه ها پرچم گذاری شود
باید در چندین برگه در رابط کاربری گرافیکی تولید شده خودکار ظاهر شود. هر گزینه ای بدون الف
قسمت guisection به تب "الزامی" یا "گزینه ها" بروید. مثلا:
#% guisection: نام برگه
آن گزینه را در برگه ای به نام قرار می دهد نام برگه.
ممکن است یک فیلد "key_desc" به هر گزینه اضافه شود تا متنی که در آن ظاهر می شود را مشخص کنید
بخش راهنمای استفاده از ماژول مثلا:
#% key_desc: نام فایل
به یک اضافه شد ورودی گزینه خلاصه استفاده [input=filename] را ایجاد می کند.
اگر یک اسکریپت با - او، تجزیه کننده GRASS_OVERWRITE=1 را تنظیم می کند که همان را دارد
اثر به عنوان عبور - او به هر ماژولی که از اسکریپت اجرا می شود. به همین ترتیب، عبور -- q
or -- v GRASS_VERBOSE را به ترتیب روی 0 یا 3 تنظیم می کند که همان اثر عبور را دارد
-- q or -- v به هر ماژولی که از اسکریپت اجرا می شود. به جای بررسی اینکه آیا
- او, -- q or -- v استفاده شد، باید GRASS_OVERWRITE و/یا GRASS_VERBOSE را بررسی کنید
بجای. اگر آن متغیرها تنظیم شده باشند، اسکریپت بدون توجه به آن باید به همین شکل عمل کند
آیا آنها تنظیم شده اند - او, -- q or -- v به فیلمنامه منتقل می شود یا با وسایل دیگری تنظیم می شود.
مشروط پارامترهای
علامتگذاری یک گزینه بهعنوان «الزامی» باعث میشود تجزیهکننده خطای مهلکی ایجاد کند
گزینه داده نمی شود، با یک استثنا: اگر یک پرچم دارای گزینه suppress_required باشد، و
که پرچم داده شده است، همه الزامات نادیده گرفته می شوند. این ویژگی برای پرچم هایی در نظر گرفته شده است که
رها کردن "عملکرد عادی" برای ماژول؛ به عنوان مثال r.in.gdal" -f پرچم (لیست پشتیبانی می شود
قالب ها) از آن استفاده می کند.
اما به طور کلی، اگر گزینه ای اختیاری باشد، به جز گزینه نمی توان آن را به عنوان مورد نیاز علامت گذاری کرد
مورد خاص یک پرچم suppress_required. تجزیه کننده توانایی تعیین گزینه را دارد
روابط
برای C، توابع مربوطه در lib/gis/parser_dependencies.c هستند.
برای اسکریپت ها، روابط با استفاده از بخش "قوانین" مشخص می شوند، به عنوان مثال
#% قوانین
#% مورد نیاز: ارتفاع، ارتفاع
#٪پایان
مشخص می کند که حداقل یکی از آن گزینه ها باید داده شود. هر دو گزینه و پرچم می توانند باشند
مشخص شده (پیشرو"-" نشان دهنده یک پرچم است). انواع قوانین موجود عبارتند از:
· اختصاصی: حداکثر یکی از گزینه ها ممکن است داده شود
· مورد نیاز: حداقل یکی از گزینه ها باید داده شود
· مستلزم: در صورت داده شدن گزینه اول حداقل یکی از گزینه های بعدی
نیز باید داده شود
· requires_all: اگر گزینه اول داده شود، همه گزینه های بعدی باید
نیز داده شود
· استثنا می کند: اگر گزینه اول داده شود، هیچ یک از گزینه های بعدی ممکن است نباشد
داده
· جمعی: همه یا هیچ. اگر گزینه ای داده شود، همه باید داده شود
خودکار اسکریپت ایجاد
پرچم - متن به دستور GRASS اضافه می شود، خروجی پوسته تولید می کند. برای نوشتن یک
g.Parser دیگ بخار برای نمونه سازی آسان اسکریپت های پوسته، پرچم - متن می تواند اضافه شود
به هر دستور GRASS. مثال:
v.in.db --اسکریپت
کمک با ما قالب (HTML)
پرچم --html-description اضافه شده به یک دستور GRASS یک صفحه راهنمای مرتبط ایجاد می کند
قالب در HTML مثال:
v.in.db --html-description
GUI پنجره تجزیه کننده (XML)
پرچم --رابط-توضیحات اضافه شده به یک دستور GRASS یک صفحه راهنمای مرتبط ایجاد می کند
قالب در XML مثال:
v.in.db --interface-description
وب پردازش محصولات (WPS)
پرچم --wps-process-description اضافه شده به یک دستور GRASS یک پردازش وب ایجاد می کند
شرح فرآیند خدمات مثال:
v.in.db --wps-process-description
restructuredText
پرچم -اولین-توضیحات اضافه شده به دستور GRASS توضیحات رابط ماژول را ایجاد می کند
در reStructuredText، یک زبان نشانه گذاری سبک. مثال:
v.in.db --rst-description
reStructuredText گاهی اوقات به اختصار reST، ReST، یا RST نامیده می شود. فایل رایج
پسوند .rst است. با انتقال دولتی (REST) اشتباه نگیرید
فن آوری است.
ترجمه
g.Parser برای ترجمه گزینه های اسکریپت ها پشتیبانی می کند. اگر با
-t قبل از نام فایل اسکریپت مانند این سوئیچ کنید
g.parser -t somescriptfile
g.Parser متن گزینه های قابل ترجمه را در خروجی استاندارد چاپ می کند، یکی در هر خط،
و خروج این برای استفاده داخلی در سیستم ساخت و آماده سازی اسکریپت های GRASS است
ترجمه
مثال ها
تمام مثالهای زیر در صورت فراخوانی بدون فراخوانی، رابط کاربری گرافیکی را بهطور خودکار تولید میکنند
پارامترهای پرچم:
برای اجرای صحیح، اسکریپت باید در فهرستی کپی شود
متغیر محیطی $GRASS_ADDON_PATH با پرچم اجرایی تنظیم شده است.
اسکریپت یک رابط کاربری گرافیکی (مانند بالا) و متن راهنمای استفاده زیر را ارائه می دهد:
test.py|sh|pl --help
شرح:
اسکریپت تست g.parser (python)
طریقه استفاده:
test.sh [-f] شطرنجی=بردار رشته=رشته [گزینه1=رشته]
[-- پرحرف] [--آرام]
پرچم ها:
-f یک پرچم
--v خروجی ماژول Verbose
--q خروجی ماژول آرام
پارامترهای:
نقشه ورودی شطرنجی شطرنجی
نقشه ورودی برداری برداری
گزینه 1 یک گزینه
مثال رمز برای پــایتــون
#!/usr/bin/env پایتون
# اسکریپت آزمایشی g.parser برای برنامه نویسی پایتون
#٪مدول
#% توضیحات: اسکریپت تست g.parser (python)
#% کلمه کلیدی: keyword1
#% کلمه کلیدی: keyword2
#٪پایان
#٪پرچم
کلید #٪: f
#% توضیحات: یک پرچم
#٪پایان
#%گزینه G_OPT_R_MAP
کلید #٪: شطرنجی
#% مورد نیاز: بله
#٪پایان
#%گزینه G_OPT_V_MAP
کلید #٪: بردار
#٪پایان
#٪گزینه
کلید #٪: گزینه 1
#% نوع: رشته
#% توضیحات: یک گزینه
#% مورد نیاز: خیر
#٪پایان
وارد کردنت
واردات سیستم
وارد کردن grass.script به عنوان چمن
def main():
flag_f = پرچم ['f']
گزینه 1 = گزینهها ['گزینه1']
شطرنجی = گزینهها['raster']
vector = گزینه ها ['vector']
#### کد خود را اینجا اضافه کنید ####
if flag_f:
چاپ "Flag -f set"
دیگری:
چاپ "پرچم -f تنظیم نشده است"
# تست در صورت وجود پارامتر:
اگر گزینه 1:
چاپ "Value of option1 option: '%s'" % option1
چاپ "مقدار گزینه شطرنجی: '%s'" % شطرنجی
چاپ "Value of Vector option: '%s'" % vector
#### انتهای کد شما ####
بازگشت 0
اگر __name__ == "__اصلی__":
گزینه ها، flags = grass.parser()
sys.exit(main())
مثال رمز برای پوسته
#!/ بن / شل
# g.parser اسکریپت نمایشی برای برنامه نویسی پوسته
#٪مدول
#% توضیحات: اسکریپت تست g.parser (پوسته)
#٪پایان
#٪پرچم
کلید #٪: f
#% توضیحات: یک پرچم
#٪پایان
#%گزینه G_OPT_R_MAP
کلید #٪: شطرنجی
#% مورد نیاز: بله
#٪پایان
#%گزینه G_OPT_V_MAP
کلید #٪: بردار
#٪پایان
#٪گزینه
کلید #٪: گزینه 1
#% نوع: رشته
#% توضیحات: یک گزینه
#% مورد نیاز: خیر
#٪پایان
if [ -z "$GISBASE" ] ; سپس
echo "برای اجرای این برنامه باید در GRASS GIS باشید." 1>&2
خروج 1
fi
if [ "$1" != "@ARGS_PARSED@" ] ; سپس
exec g.parser "$0" "$@"
fi
#### کد خود را در زیر اضافه کنید ####
دور انداخت ""
اگر [ $GIS_FLAG_F -eq 1 ] ; سپس
g.message message="Flag -f set"
دیگر
g.message message="Flag -f set not set"
fi
# تست در صورت وجود پارامتر:
اگر [ -n "$GIS_OPT_OPTION1" ] ; سپس
echo "مقدار GIS_OPT_OPTION1: "$GIS_OPT_OPTION1""
fi
g.message message="مقدار GIS_OPT_option1: '$GIS_OPT_option1'"
g.message message="مقدار GIS_OPT_raster: '$GIS_OPT_raster'"
g.message message="مقدار GIS_OPT_vect: '$GIS_OPT_vector'"
#### انتهای کد شما ####
مثال رمز برای پرل
#!/usr/bin/perl -w
سخت استفاده کنید
اسکریپت آزمایشی # g.parser
#٪مدول
#% توضیحات: اسکریپت تست g.parser (perl)
#% کلمه کلیدی: keyword1
#% کلمه کلیدی: keyword2
#٪پایان
#٪پرچم
کلید #٪: f
#% توضیحات: یک پرچم
#٪پایان
#%گزینه G_OPT_R_MAP
کلید #٪: شطرنجی
#% مورد نیاز: بله
#٪پایان
#%گزینه G_OPT_V_MAP
کلید #٪: بردار
#٪پایان
#٪گزینه
کلید #٪: گزینه 1
#% نوع: رشته
#% توضیحات: یک گزینه
#% مورد نیاز: خیر
#٪پایان
اگر ( !$ENV{'GISBASE'} ) {
printf(STDERR "برای اجرای این برنامه باید در GRASS GIS باشید.\n");
خروجی 1;
}
if($ARGV[0] ne '@ARGS_PARSED@' ){
my $arg = "";
برای ($i=0 من؛ $i < @ARGV;$i++) {
$arg .= " $ARGV[$i] ";
}
system("$ENV{GISBASE}/bin/g.parser $0 $arg");
خروج.
}
#### کد خود را اینجا اضافه کنید ####
چاپ "\n"؛
اگر ($ENV{'GIS_FLAG_F'} معادله "1" ){
چاپ "Flag -f set\n"
}
دیگر {
چاپ "پرچم -f تنظیم نشده\n"
}
printf ("مقدار GIS_OPT_option1: '%s'\n"، $ENV{'GIS_OPT_OPTION1'});
printf ("مقدار GIS_OPT_raster: '%s'\n"، $ENV{'GIS_OPT_RASTER'});
printf ("مقدار GIS_OPT_vect: '%s'\n"، $ENV{'GIS_OPT_VECTOR'});
#### انتهای کد شما ####
از g.parsergrass به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید