Đây là lệnh g.parsergrass có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
g.parser - Cung cấp hỗ trợ phân tích cú pháp đầy đủ cho các tập lệnh GRASS.
TỪ KHÓA
chung, hỗ trợ, tập lệnh
SYNOPSIS
g.parser --Cứu giúp
g.parser [-s] [-t] [-n] tên tập tin [đối số, ...]
Cờ:
-t
In chuỗi để dịch
-s
Ghi các giá trị tùy chọn vào đầu ra tiêu chuẩn thay vì gọi lại tập lệnh
-n
Ghi các giá trị tùy chọn vào đầu ra tiêu chuẩn được phân tách bằng ký tự null
MÔ TẢ
Sản phẩm g.parser mô-đun cung cấp hỗ trợ phân tích cú pháp đầy đủ cho các tập lệnh GRASS, bao gồm một
giao diện GUI được tạo tự động, mẫu trang trợ giúp và kiểm tra tùy chọn dòng lệnh. Trong
theo cách này, một tập lệnh đơn giản có thể nhanh chóng được tạo thành một mô-đun GRASS chính thức.
LỰA CHỌN
Trừ khi -s or -n switch được sử dụng, các đối số được lưu trữ trong các biến môi trường cho
sử dụng trong các tập lệnh của bạn. Các biến này được đặt tên là "GIS_FLAG_ "cho cờ và
"GIS_OPT_ "cho các tùy chọn. Tên của các biến được chuyển đổi thành chữ hoa. Đối với
ví dụ nếu một tùy chọn có khóa đầu vào đã được xác định trong tiêu đề tập lệnh, giá trị sẽ là
có sẵn trong biến GIS_OPT_INPUT và giá trị của cờ có khóa f sẽ có sẵn trong
biến GIS_FLAG_F.
Đối với cờ, giá trị sẽ là "1" nếu cờ được đưa ra và "0" nếu không.
Nếu -s or -n công tắc được sử dụng, các tùy chọn và cờ được ghi vào đầu ra tiêu chuẩn trong
hình thức opt_ = và lá cờ_ =, đứng trước chuỗi @ ARGS_PARSED @.
Nếu chuỗi này không xuất hiện dưới dạng dòng đầu tiên của đầu ra tiêu chuẩn, nó chỉ ra rằng
script đã được gọi bằng một công tắc, chẳng hạn như --html-mô tả. Trong trường hợp này, dữ liệu
được viết bởi g.parser sang đầu ra tiêu chuẩn nên được sao chép sang đầu ra tiêu chuẩn của tập lệnh
nguyên văn. Nếu -s công tắc được sử dụng, các tùy chọn và cờ được phân tách bằng các dòng mới. Nếu như
các -n công tắc được sử dụng, các tùy chọn và cờ được phân tách bằng ký tự rỗng.
Định nghĩa tiêu đề điển hình như sau:
#% mô-đun
#% description: tập lệnh kiểm tra g.parser
#%kết thúc
#%lá cờ
Phím #%: f
#% mô tả: Một lá cờ
#%kết thúc
#%Lựa chọn
#% chính: raster
#% loại: chuỗi
#% gisprompt: old, cell, raster
#% mô tả: Bản đồ đầu vào Raster
#% bắt buộc: có
#%kết thúc
Với {NULL}, có thể loại bỏ mô tả hoặc nhãn được xác định trước.
Bộ phân tích cú pháp cho phép sử dụng tiêu chuẩn hóa lựa chọn và cờ, xem danh sách
các tùy chọn và cờ trong sổ tay lập trình viên. Ví dụ. sự lựa chọn
#%Lựa chọn
#% chính: raster
#% loại: chuỗi
#% gisprompt: old, cell, raster
#% mô tả: Bản đồ đầu vào Raster
#% bắt buộc: có
#%kết thúc
có thể dễ dàng được định nghĩa là
#% tùy chọn G_OPT_R_MAP
#% chính: raster
#%kết thúc
Trình phân tích cú pháp cho phép xác định quy tắc cho các tùy chọn đã sử dụng. Cú pháp của các quy tắc
phần sau:
#%quy tắc
#% độc quyền: capfile_output, capfile
#%kết thúc
Trình phân tích cú pháp cũng cho phép xác định các điều kiện "HOẶC", ví dụ: yêu cầu vectơ raster OR (đối với
chi tiết, xem bên dưới), ví dụ: đối với các tùy chọn:
#%quy tắc
#% bắt buộc: raster, vector
#%kết thúc
và ví dụ, đối với cờ:
#%quy tắc
#% bắt buộc: -i, -d, -c
#%kết thúc
GHI CHÚ
Một tùy chọn có thể được hướng dẫn để cho phép nhiều đầu vào bằng cách thêm dòng sau:
#% nhiều: có
Mặc dù điều này sẽ chỉ trực tiếp thay đổi Sử dụng của màn hình trợ giúp, tùy chọn của
chuỗi môi trường có thể được phân tích cú pháp dễ dàng từ bên trong một tập lệnh. Ví dụ, cá nhân
Các danh tính được phân tách bằng dấu phẩy cho một tùy chọn có tên "đầu vào" có thể được phân tích cú pháp như sau
Mã shell Bash:
IFS =,
để chọn tham gia $ GIS_OPT_INPUT; làm
... "$ opt"
thực hiện
Trường "bảo vệ" có thể được thêm vào mỗi tùy chọn và gắn cờ để chỉ định rằng các tùy chọn
sẽ xuất hiện trong nhiều tab trong GUI được tạo tự động. Bất kỳ tùy chọn nào không có
trường kiểm tra đi vào tab "Bắt buộc" hoặc "Tùy chọn". Ví dụ:
#% hướng dẫn: tên tab
sẽ đặt tùy chọn đó trong một tab có tên tên tab.
Trường "key_desc" có thể được thêm vào mỗi tùy chọn để chỉ định văn bản xuất hiện trong
phần trợ giúp sử dụng của mô-đun. Ví dụ:
#% key_desc: tên tệp
được thêm vào một đầu vào tùy chọn sẽ tạo tóm tắt sử dụng [input = filename].
Nếu một tập lệnh được chạy với --o, trình phân tích cú pháp sẽ đặt GRASS_OVERWRITE = 1, có cùng
hiệu ứng như đi qua --o cho mọi mô-đun được chạy từ tập lệnh. Tương tự, vượt qua --NS
or --v sẽ đặt GRASS_VERBOSE tương ứng thành 0 hoặc 3, có tác dụng tương tự như chuyển
--NS or --v cho mọi mô-đun được chạy từ tập lệnh. Thay vì kiểm tra xem
--o, --NS or --v đã được sử dụng, bạn nên kiểm tra GRASS_OVERWRITE và / hoặc GRASS_VERBOSE
thay thế. Nếu các biến đó được đặt, tập lệnh sẽ hoạt động theo cùng một cách bất kể
cho dù chúng được đặt bởi --o, --NS or --v được chuyển sang tập lệnh hoặc thiết lập bằng các phương tiện khác.
có điều kiện thông số
Đánh dấu một tùy chọn là "bắt buộc" sẽ dẫn đến việc trình phân tích cú pháp xảy ra lỗi nghiêm trọng nếu
tùy chọn không được đưa ra, ngoại trừ một ngoại lệ: nếu cờ có tùy chọn supp_required và
cờ đó được đưa ra, tất cả các yêu cầu đều bị bỏ qua. Tính năng này dành cho các cờ
từ bỏ "hoạt động bình thường" cho mô-đun; ví dụ r.in.gdal'S -f cờ (danh sách được hỗ trợ
định dạng) sử dụng nó.
Nhưng nói chung, một tùy chọn không thể được đánh dấu là bắt buộc nếu nó là tùy chọn ngoại trừ
trường hợp đặc biệt của cờ suppose_required. Trình phân tích cú pháp có khả năng chỉ định tùy chọn
các mối quan hệ.
Đối với C, các chức năng liên quan là các chức năng trong lib / gis / parser_dependencies.c.
Đối với tập lệnh, các mối quan hệ được chỉ định bằng cách sử dụng phần "quy tắc", ví dụ:
#%quy tắc
#% bắt buộc: độ cao, độ cao
#%kết thúc
chỉ định rằng ít nhất một trong những tùy chọn đó phải được đưa ra. Cả hai tùy chọn và cờ đều có thể
được chỉ định (một "hàng đầu"-"biểu thị một lá cờ). Các loại quy tắc có sẵn là:
· Độc quyền: nhiều nhất một trong các tùy chọn có thể được đưa ra
· Bắt buộc: phải đưa ra ít nhất một trong các tùy chọn
· Yêu cầu: nếu tùy chọn đầu tiên được đưa ra, ít nhất một trong các tùy chọn tiếp theo
cũng phải được đưa ra
· Requi_all: nếu tùy chọn đầu tiên được đưa ra, tất cả các tùy chọn tiếp theo phải
cũng được đưa ra
· Loại trừ: nếu tùy chọn đầu tiên được đưa ra, không có tùy chọn nào tiếp theo có thể được
được
· Tập thể: tất cả hoặc không có gì; nếu bất kỳ lựa chọn nào được đưa ra, tất cả phải được đưa ra
TỰ ĐỘNG SCRIPT SỰ SÁNG TẠO
Lá cờ --kịch bản được thêm vào một lệnh GRASS, tạo đầu ra trình bao. Để viết ra một
g.parser boilerplate để dễ dàng tạo mẫu các tập lệnh shell, cờ --kịch bản có thể được thêm
cho bất kỳ lệnh GRASS nào. Thí dụ:
v.in.db --script
Trợ giúp trang mẫu (HTML)
Lá cờ --html-mô tả được thêm vào lệnh GRASS sẽ tạo ra một trang trợ giúp có liên quan
mẫu trong HTML. Thí dụ:
v.in.db --html-mô tả
GUI cửa sổ phân tích cú pháp (XML)
Lá cờ --giao diện-mô tả được thêm vào lệnh GRASS sẽ tạo ra một trang trợ giúp có liên quan
mẫu trong XML. Thí dụ:
v.in.db --giao diện-mô tả
web Đang xử lý Dịch vụ (WPS)
Lá cờ --wps-tiến trình-mô tả được thêm vào lệnh GRASS tạo ra một Xử lý web
Mô tả quy trình dịch vụ. Thí dụ:
v.in.db --wps-tiến trình-mô tả
reStructuredText
Lá cờ - mô tả đầu tiên được thêm vào lệnh GRASS tạo mô tả giao diện mô-đun
trong reStructuredText, một ngôn ngữ đánh dấu nhẹ. Thí dụ:
v.in.db - mô tả đầu tiên
reStructuredText đôi khi được viết tắt là reST, ReST hoặc RST. Tệp thường được sử dụng
phần mở rộng là. đầu tiên. Đừng nhầm lẫn với Chuyển trạng thái đại diện (REST)
Công nghệ.
DỊCH THUẬT
g.parser cung cấp một số hỗ trợ để dịch các tùy chọn của tập lệnh. Nếu được gọi với
-t chuyển đổi trước tên tệp script như thế này
g.parser -t somescriptfile
g.parser sẽ in văn bản của các tùy chọn có thể dịch ra thành đầu ra tiêu chuẩn, một trên mỗi dòng,
và thoát ra. Điều này là để sử dụng nội bộ trong hệ thống xây dựng để chuẩn bị các tập lệnh GRASS cho
dịch.
VÍ DỤ
Tất cả các ví dụ bên dưới tự động tạo giao diện người dùng đồ họa khi được gọi mà không có
thông số của cờ:
Để chạy đúng cách, tập lệnh cần được sao chép vào một thư mục được liệt kê trong
Biến môi trường $ GRASS_ADDON_PATH với cờ thực thi được đặt.
Tập lệnh sẽ cung cấp GUI (như ở trên) và văn bản trợ giúp sử dụng sau:
test.py | sh | pl --help
Sự miêu tả:
tập lệnh kiểm tra g.parser (python)
Cách sử dụng:
test.sh [-f] raster = string vector = string [option1 = string]
[--verbose] [--im lặng]
Cờ:
-f một lá cờ
--v Đầu ra mô-đun dài dòng
--q Đầu ra mô-đun yên tĩnh
Tham số:
bản đồ đầu vào raster Raster
Vector đầu vào bản đồ các vector
option1 Một lựa chọn
Ví dụ mã cho Python
#!/ usr / bin / env mãng xà
# g.parser tập lệnh demo để lập trình python
#% mô-đun
#% mô tả: tập lệnh kiểm tra g.parser (trăn)
#% từ khóa: từ khóa1
#% từ khóa: từ khóa2
#%kết thúc
#%lá cờ
Phím #%: f
#% mô tả: Một lá cờ
#%kết thúc
#% tùy chọn G_OPT_R_MAP
#% chính: raster
#% bắt buộc: có
#%kết thúc
#% tùy chọn G_OPT_V_MAP
#% khóa: véc tơ
#%kết thúc
#%Lựa chọn
Phím #%: tùy chọn1
#% loại: chuỗi
#% mô tả: Một tùy chọn
#% bắt buộc: không
#%kết thúc
nhập khẩu os
nhập khẩu hệ thống
nhập cỏ.script làm cỏ
def main ():
flag_f = flags ['f']
option1 = options ['option1']
raster = options ['raster']
vector = options ['vector']
#### thêm mã của bạn tại đây ####
nếu flag_f:
in "Flag -f set"
khác:
in "Flag -f not set"
# kiểm tra nếu có tham số:
nếu tùy chọn 1:
print "Giá trị của option1 option: '% s'"% option1
print "Giá trị của tuỳ chọn raster: '% s'"% raster
print "Giá trị của tùy chọn vectơ: '% s'"% vector
#### cuối mã của bạn ####
trả lại 0
nếu __name__ == "__main__":
tùy chọn, flags = grass.parser ()
sys.exit (main ())
Ví dụ mã cho SHELL
#!/ Bin / sh
# g.parser tập lệnh demo để lập trình shell
#% mô-đun
#% mô tả: tập lệnh kiểm tra g.parser (shell)
#%kết thúc
#%lá cờ
Phím #%: f
#% mô tả: Một lá cờ
#%kết thúc
#% tùy chọn G_OPT_R_MAP
#% chính: raster
#% bắt buộc: có
#%kết thúc
#% tùy chọn G_OPT_V_MAP
#% khóa: véc tơ
#%kết thúc
#%Lựa chọn
Phím #%: tùy chọn1
#% loại: chuỗi
#% mô tả: Một tùy chọn
#% bắt buộc: không
#%kết thúc
if [-z "$ GISBASE"]; sau đó
echo "Bạn phải ở trong GRASS GIS để chạy chương trình này." 1> & 2
thoát 1
fi
if ["$ 1"! = "@ ARGS_PARSED @"]; sau đó
thực thi g.parser "$ 0" "$ @"
fi
#### thêm mã của bạn bên dưới ####
quăng đi ""
nếu [$ GIS_FLAG_F -eq 1]; sau đó
g.message message = "Flag -f set"
khác
g.message message = "Flag -f not set"
fi
# kiểm tra nếu có tham số:
if [-n "$ GIS_OPT_OPTION1"]; sau đó
echo "Giá trị của GIS_OPT_OPTION1: '$ GIS_OPT_OPTION1'"
fi
g.message message = "Giá trị của GIS_OPT_option1: '$ GIS_OPT_option1'"
g.message message = "Giá trị của GIS_OPT_raster: '$ GIS_OPT_raster'"
g.message message = "Giá trị của GIS_OPT_vect: '$ GIS_OPT_vector'"
#### cuối mã của bạn ####
Ví dụ mã cho Perl
#!/ usr / bin / perl -w
Sử dụng nghiêm ngặt;
# g.parser tập lệnh demo
#% mô-đun
#% mô tả: tập lệnh kiểm tra g.parser (perl)
#% từ khóa: từ khóa1
#% từ khóa: từ khóa2
#%kết thúc
#%lá cờ
Phím #%: f
#% mô tả: Một lá cờ
#%kết thúc
#% tùy chọn G_OPT_R_MAP
#% chính: raster
#% bắt buộc: có
#%kết thúc
#% tùy chọn G_OPT_V_MAP
#% khóa: véc tơ
#%kết thúc
#%Lựa chọn
Phím #%: tùy chọn1
#% loại: chuỗi
#% mô tả: Một tùy chọn
#% bắt buộc: không
#%kết thúc
if (! $ ENV {'GISBASE'}) {
printf (STDERR "Bạn phải ở trong GRASS GIS để chạy chương trình này. \ n");
lối ra 1;
}
nếu ($ ARGV [0] ne '@ ARGS_PARSED @') {
$ arg = "" của tôi;
cho ($ i = 0 của tôi; $ i <@ARGV; $ i ++) {
$ arg. = "$ ARGV [$ i]";
}
system ("$ ENV {GISBASE} /bin/g.parser $ 0 $ arg");
lối thoát;
}
#### thêm mã của bạn tại đây ####
in "\ n";
if ($ ENV {'GIS_FLAG_F'} eq "1") {
in "Flag -f set \ n"
}
khác {
in "Flag -f not set \ n"
}
printf ("Giá trị của GIS_OPT_option1: '% s' \ n", $ ENV {'GIS_OPT_OPTION1'});
printf ("Giá trị của GIS_OPT_raster: '% s' \ n", $ ENV {'GIS_OPT_RASTER'});
printf ("Giá trị của GIS_OPT_vect: '% s' \ n", $ ENV {'GIS_OPT_VECTOR'});
#### cuối mã của bạn ####
Sử dụng g.parsergrass trực tuyến bằng các dịch vụ onworks.net