이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 g.parsergrass 명령입니다.
프로그램:
이름
g.파서 - GRASS 스크립트에 대한 완전한 파서 지원을 제공합니다.
키워드
일반, 지원, 스크립트
개요
g.파서 --도움
g.파서 [-s] [-t] [-n] 파일 이름 [논의,...]
플래그 :
-t
번역용 문자열 인쇄
-s
스크립트를 다시 호출하는 대신 표준 출력에 옵션 값 쓰기
-n
널 문자로 구분된 표준 출력에 옵션 값 쓰기
기술
The g.파서 모듈은 다음을 포함하여 GRASS 스크립트에 대한 완전한 파서 지원을 제공합니다.
자동 생성된 GUI 인터페이스, 도움말 페이지 템플릿 및 명령줄 옵션 검사. 에
이렇게 하면 간단한 스크립트를 완전한 GRASS 모듈로 매우 빠르게 만들 수 있습니다.
옵션
그렇지 않으면 -s or -n 스위치가 사용되면 인수는 환경 변수에 저장됩니다.
스크립트에서 사용하십시오. 이 변수의 이름은 "GIS_FLAG_ " 플래그 및
"GIS_OPT_ " 옵션의 경우 변수 이름은 대문자로 변환됩니다.
예를 들어 키가 있는 옵션인 경우 입력 스크립트 헤더에 정의된 값은
변수에서 사용 가능 GIS_OPT_INPUT 키가 있는 플래그의 값 f 에서 사용할 수 있습니다
변수 GIS_플래그_F.
플래그의 경우 플래그가 제공된 경우 값은 "1"이고 그렇지 않은 경우 "0"입니다.
경우 -s or -n 스위치가 사용되면 옵션과 플래그가 표준 출력에 기록됩니다.
형태 고르다_ = 그리고 깃발_ =, 문자열이 앞에 옴 @ARGS_PARSED@.
이 문자열이 표준 출력의 첫 번째 줄로 나타나지 않으면
스크립트는 다음과 같은 스위치로 호출되었습니다. --html-설명. 이 경우 데이터
작성자 : g.파서 표준 출력으로 스크립트의 표준 출력으로 복사해야 합니다.
그대로. 만약 -s 스위치가 사용되면 옵션과 플래그는 줄 바꿈으로 구분됩니다. 만약에
전에, -n 스위치가 사용되면 옵션과 플래그는 널 문자로 구분됩니다.
일반적인 헤더 정의는 다음과 같습니다.
#%기준 치수
#% 설명: g.parser 테스트 스크립트
#%끝
#%깃발
#% 키: f
#% 설명: 플래그
#%끝
#%옵션
#% 키: 래스터
#% 유형: 문자열
#% gisprompt: 이전, 셀, 래스터
#% 설명: 래스터 입력 맵
#% 필요: 예
#%끝
{NULL}을 사용하면 미리 정의된 설명이나 레이블을 억제할 수 있습니다.
파서는 미리 정의된 표준화 된 옵션 그리고 플래그, 목록 참조
프로그래머 매뉴얼의 옵션과 플래그. 예. 옵션
#%옵션
#% 키: 래스터
#% 유형: 문자열
#% gisprompt: 이전, 셀, 래스터
#% 설명: 래스터 입력 맵
#% 필요: 예
#%끝
다음과 같이 쉽게 정의할 수 있습니다.
#%옵션 G_OPT_R_MAP
#% 키: 래스터
#%끝
파서는 미리 정의된 정의를 허용합니다. 규칙 사용된 옵션의 경우. 규칙의 구문
섹션은 다음과 같습니다.
#%규칙
#% 독점: capfile_output, capfile
#%끝
파서는 또한 예를 들어 래스터 OR 벡터가 필요한 "OR" 조건을 정의할 수 있습니다.
자세한 내용은 아래 참조), 예: 옵션:
#%규칙
#% 필요: 래스터, 벡터
#%끝
예를 들어 플래그의 경우:
#%규칙
#% 필요: -i,-d,-c
#%끝
노트
다음 줄을 추가하여 여러 입력을 허용하도록 옵션을 지정할 수 있습니다.
#% 배수: 예
이것은 직접적으로만 변경되지만 용법 도움말 화면의 섹션, 옵션의
환경 문자열은 스크립트 내에서 쉽게 구문 분석될 수 있습니다. 예를 들어, 개별
"input"이라는 옵션에 대한 쉼표로 구분된 ID는 다음과 같이 구문 분석할 수 있습니다.
배쉬 쉘 코드:
IFS=,
$GIS_OPT_INPUT 선택 ; ~하다
... "$opt"
한
각 옵션에 "guisection" 필드를 추가하고 옵션을 지정하기 위해 플래그를 지정할 수 있습니다.
자동 생성된 GUI의 여러 탭에 나타나야 합니다. 없는 모든 옵션
guisection 필드에서 "필수" 또는 "옵션" 탭으로 이동합니다. 예를 들어:
#% guisection: 탭 이름
해당 옵션을 이라는 탭에 넣습니다. 탭 이름.
"key_desc" 필드는 각 옵션에 추가되어 표시되는 텍스트를 지정할 수 있습니다.
모듈의 사용 도움말 섹션. 예를 들어:
#% key_desc: 파일 이름
에 추가 입력 옵션은 사용 요약 [input=filename]을 생성합니다.
스크립트가 실행되는 경우 --영형, 파서는 GRASS_OVERWRITE=1로 설정합니다.
통과 효과 --영형 스크립트에서 실행되는 모든 모듈에. 마찬가지로 통과 --NS
or --V GRASS_VERBOSE를 각각 0 또는 3으로 설정합니다. 이는 전달하는 것과 동일한 효과를 가집니다.
--NS or --V 스크립트에서 실행되는 모든 모듈에. 여부를 확인하기 보다는
--영형, --NS or --V 사용된 경우 GRASS_OVERWRITE 및/또는 GRASS_VERBOSE를 확인해야 합니다.
대신에. 이러한 변수가 설정되면 스크립트는
그들이 설정했는지 여부 --영형, --NS or --V 스크립트에 전달되거나 다른 방법으로 설정됩니다.
가정 어구 매개 변수
옵션을 "필수"로 표시하면 파서가 다음과 같은 경우 치명적인 오류를 발생시킵니다.
한 가지 예외를 제외하고는 옵션이 제공되지 않습니다. 플래그에 suppress_required 옵션이 있는 경우
해당 플래그가 지정되면 모든 요구 사항이 무시됩니다. 이 기능은 다음과 같은 플래그를 위한 것입니다.
모듈에 대한 "정상 작동"을 포기합니다. 예 r.in.gdal의 -f 플래그(지원되는 목록
형식)을 사용합니다.
그러나 일반적으로 옵션은 다음을 제외하고 선택 사항인 경우 필수로 표시할 수 없습니다.
suppress_required 플래그의 특별한 경우입니다. 파서는 옵션을 지정할 수 있습니다.
관계.
C의 경우 관련 기능은 lib/gis/parser_dependencies.c에 있는 기능입니다.
스크립트의 경우 관계는 "규칙" 섹션을 사용하여 지정됩니다. 예:
#%규칙
#% 필요: 고도, 고도
#%끝
이러한 옵션 중 하나 이상이 제공되어야 함을 지정합니다. 옵션과 플래그는 모두
지정(선행 "-"는 플래그를 나타냄). 사용 가능한 규칙 유형은 다음과 같습니다.
· 독점: 옵션 중 최대 하나가 주어질 수 있음
· 필수: 옵션 중 하나 이상을 제공해야 합니다.
· 요구 사항: 첫 번째 옵션이 제공되면 후속 옵션 중 하나 이상
도 주어져야 한다
· require_all: 첫 번째 옵션이 주어지면 모든 후속 옵션은 반드시
도 주어
· 제외: 첫 번째 옵션이 제공되면 후속 옵션은
주어진
· 집합적: 전부 또는 전무; 옵션이 제공되면 모든 옵션이 제공되어야 합니다.
자동화 SCRIPT 창조
깃발 --스크립트 GRASS 명령에 추가되어 쉘 출력을 생성합니다. 작성하려면
g.파서 쉘 스크립트의 쉬운 프로토타이핑을 위한 상용구, 플래그 --스크립트 추가 가능
모든 GRASS 명령에. 예시:
v.in.db --스크립트
도움말 센터 페이지 이 템플릿 (HTML)
깃발 --html-설명 GRASS 명령에 추가하면 관련 도움말 페이지 생성
HTML의 템플릿. 예시:
v.in.db --html-설명
GUI 창 파서 (XML)
깃발 --인터페이스 설명 GRASS 명령에 추가하면 관련 도움말 페이지 생성
XML의 템플릿. 예시:
v.in.db --인터페이스 설명
Web 처리 예배 (WPS)
깃발 --wps-프로세스 설명 GRASS 명령에 추가하면 웹 처리 생성
서비스 프로세스 설명. 예시:
v.in.db --wps-프로세스 설명
reStructuredText
깃발 --첫 번째 설명 GRASS 명령에 추가하면 모듈 인터페이스 설명 생성
경량 마크업 언어인 reStructuredText에서 예시:
v.in.db --rst-설명
reStructuredText는 때때로 reST, ReST 또는 RST로 축약됩니다. 자주 사용하는 파일
확장자는 .rst입니다. REST(Representational State Transfer)와 혼동하지 마십시오.
기술.
번역
g.파서 스크립트 옵션 번역에 대한 일부 지원을 제공합니다. 와 함께 호출하면
-t 스크립트 파일 이름 앞에 다음과 같이 전환합니다.
g.parser -t 일부 스크립트 파일
g.파서 번역 가능한 옵션의 텍스트를 한 줄에 하나씩 표준 출력으로 인쇄합니다.
그리고 종료합니다. 이것은 GRASS 스크립트를 준비하기 위해 빌드 시스템 내에서 내부적으로 사용하기 위한 것입니다.
번역.
사용 예
아래의 모든 예는 다음 없이 호출될 때 그래픽 사용자 인터페이스를 자동 생성합니다.
플래그 매개변수:
제대로 실행하려면 스크립트를 다음에 나열된 디렉토리에 복사해야 합니다.
실행 가능한 플래그가 설정되는 $GRASS_ADDON_PATH 환경 변수입니다.
스크립트는 GUI(위와 같이)와 다음 사용 도움말 텍스트를 제공합니다.
test.py|sh|pl --help
상품 설명
g.parser 테스트 스크립트(python)
용법:
test.sh [-f] 래스터=문자열 벡터=문자열 [옵션1=문자열]
[--장황한] [--조용한]
플래그 :
-f 플래그
--v 자세한 모듈 출력
--q 조용한 모듈 출력
매개 변수 :
래스터 래스터 입력 맵
벡터 벡터 입력 맵
옵션1 옵션
예시 암호 을 통한 Python
#!/usr/빈/환경 파이썬
# 파이썬 프로그래밍을 위한 g.parser 데모 스크립트
#%기준 치수
#% 설명: g.parser 테스트 스크립트(python)
#% 키워드: 키워드1
#% 키워드: 키워드2
#%끝
#%깃발
#% 키: f
#% 설명: 플래그
#%끝
#%옵션 G_OPT_R_MAP
#% 키: 래스터
#% 필요: 예
#%끝
#%옵션 G_OPT_V_MAP
#% 키: 벡터
#%끝
#%옵션
#% 키: 옵션1
#% 유형: 문자열
#% 설명: 옵션
#% 필요: 아니요
#%끝
운영 체제 가져 오기
import sys
grass.script를 잔디로 가져오기
데프 메인 () :
flag_f = 플래그['f']
옵션1 = 옵션['옵션1']
래스터 = 옵션['래스터']
벡터 = 옵션['벡터']
#### 여기에 코드를 추가하세요. ####
flag_f인 경우:
"플래그 -f 세트" 인쇄
그밖에:
"플래그 -f가 설정되지 않음" 인쇄
# 매개변수가 있는지 테스트:
옵션 1인 경우:
"옵션 1 옵션의 값: '%s'" 인쇄 % 옵션 1
"래스터 옵션 값: '%s'" 인쇄 % 래스터
"벡터 옵션의 값: '%s'" 인쇄 % 벡터
#### 코드 끝 ####
0를 반환
__name__ == "__main__"인 경우:
옵션, 플래그 = grass.parser()
sys.exit(메인())
예시 암호 을 통한 SHELL
#!/ 빈 / SH
# 쉘 프로그래밍을 위한 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
#### 아래에 코드 추가 ####
던졌다 ""
if [ $GIS_FLAG_F -eq 1 ] ; 그 다음에
g.message message="플래그 -f 설정"
그렇지 않으면
g.message message="플래그 -f가 설정되지 않음"
fi
# 매개변수가 있는지 테스트:
if [ -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/빈/펄 -w
엄격한 사용;
# g.parser 데모 스크립트
#%기준 치수
#% 설명: g.parser 테스트 스크립트(perl)
#% 키워드: 키워드1
#% 키워드: 키워드2
#%끝
#%깃발
#% 키: f
#% 설명: 플래그
#%끝
#%옵션 G_OPT_R_MAP
#% 키: 래스터
#% 필요: 예
#%끝
#%옵션 G_OPT_V_MAP
#% 키: 벡터
#%끝
#%옵션
#% 키: 옵션1
#% 유형: 문자열
#% 설명: 옵션
#% 필요: 아니요
#%끝
if ( !$ENV{'GISBASE'} ) {
printf(STDERR "이 프로그램을 실행하려면 GRASS GIS에 있어야 합니다.\n");
출구 1;
}
if( $ARGV[0] 네 '@ARGS_PARSED@' ){
내 $arg = "";
(내 $i=0; $i < @ARGV;$i++) {
$arg .= " $ARGV[$i] ";
}
system("$ENV{GISBASE}/bin/g.parser $0 $arg");
출구;
}
#### 여기에 코드를 추가하세요. ####
인쇄 "\n";
if ( $ENV{'GIS_FLAG_F'} eq "1" ){
"플래그 -f 세트\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'});
#### 코드 끝 ####
onworks.net 서비스를 사용하여 온라인으로 g.parsergrass 사용