[NCL] 쉘 스크립트 (Shell Script)에서 명령 줄 입력 파라메타 설정 및 NCL 실행

 정보

  • 업무명    : 쉘 스크립트 (Shell Script)에서 명령 줄 입력 파라메타 설정 및 NCL 실행

  • 작성자    : 이상호

  • 작성일    : 2020-12-04

  • 설   명    :

  • 수정이력 :

 

 내용

[개요]

  • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

  • NCL (NCAR Command Language)은 미국의 NCAR (National Center for Atmospheric Research)에서 개발된 언어로서 지구과학/대기과학 분야에서 특화되었습니다. 이는 다양한 분야에서 널리 사용되는 Matlab과 비교할 때 라이브러리를 통해 쉽게 계산할 수 있습니다.

  • 특히 예전에 자주 사용되는 소프트웨어인 GrADS는 간단한 인터페이스로 초보자도 빨리 익힐 수 있으나 소프트웨어의 유연성이 떨어집니다.

  • NCL 명령 줄 입력 파라메타를 사용하면 NCL 변수를 설정하고 UNIX 명령 줄 또는 쉘 스크립트에서 간단한 NCL 코드를 실행할 수 있습니다.

  • 오늘 포스팅에서는 쉘 스크립트 (Shell Script)에서 명령 줄 입력 파라메타 설정 및 NCL 실행 방법을 소개합니다.

  • 추가로 온라인/오프라인 리눅스 환경에 따른 NCL 설치 방법을 소개한 링크를 보내드립니다.

 

[NCL] 온라인/오프라인 리눅스 (Linux) 환경에 따른 NCL 설치 방법

 정보 업무명  : 온라인/오프라인 리눅스 (Linux) 환경에 따른 NCL 설치 방법 작성자  : 이상호 작성일  : 2020-01-15 설  명 : 수정이력 :  내용 [개요] 안녕하세요? 웹 개발 및 연구 개발을 담당하고

shlee1990.tistory.com

 

iss064e005537.jpg

 

[특징]

  • NCL을 통해 시각화하기 위해서 자료 처리 기술이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

 

[기능]

  • Shell Script (bash) 수행

  • Shell Script (csh) 수행

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 입력 자료를 동일 디렉터리에 위치

  • 소스 코드를 실행

  • 결과 확인

 

[사용 OS]

  • Linux (CentOS v7.3)

  • VMware Workstation Pro v15.5

 

[사용 언어]

  • NCL v6.6.2

 

 소스 코드

  • 작업 환경의 경우 주 프로그램은 inParam.csh 및 inParam.sh로 구성되어 있습니다.

etc-image-1

 

  • 소스 코드는 단계별로 수행하며 상세 설명은 다음과 같습니다.

    • 1 단계의 경우 입력 파라메타 출력을 위한 임시 NCL 소스 코드 생성합니다.

    • 2 단계는 명령줄에서 NCL를 실행 및 임시 소스 코드를 삭제합니다.

    • 3 단계의 경우 메인 쉘 스크립트 (Shell Script)를 수행합니다.

 

[명세]

Shell Script (bash)
  • [1 단계] NCL 소스 코드 생성

    • 입력 파라메타로서 연도 (year), 월 (month), 제목 (title)를 출력

#!/bin/bash

cat > inParam.ncl << EOF
   print("year : " + year)
   print("month : " + month)
   print("title : " + title)
EOF

 

  • [2 단계] NCL 실행 및 임시 소스 코드 삭제

    • ncl inParam.ncl 명령어에서 앞서 설정한 파라메타를 입력 및 실행합니다.

    • rm 명령어를 통해 임시 소스 코드는 삭제합니다.

ncl year=2020 month=12 'title="Run Shell bash"' inParam.ncl

rm -f inParam.ncl

 

  • [3 단계] 메인 쉘 스크립트  (Shell Script) 수행

    • bash inParam.sh 명령어를 통해 수행합니다. 

etc-image-2

 

Shell Script (csh)
  • [1 단계] NCL 소스 코드 생성

    • 입력 파라메타로서 연도 (year), 월 (month), 제목 (title)를 출력

#!/bin/csh

cat > inParam.ncl << EOF
   print("year : " + year)
   print("month : " + month)
   print("title : " + title)
EOF

 

 

  • [2 단계] NCL 실행 및 임시 소스 코드 삭제

    • ncl inParam.ncl 명령어에서 앞서 설정한 파라메타를 입력 및 실행합니다.

    • rm 명령어를 통해 임시 소스 코드는 삭제합니다.

ncl year=2020 month=12 'title="Run Shell csh"' inParam.ncl

rm -f inParam.ncl

 

  • [3 단계] 메인 쉘 스크립트  (Shell Script) 수행

    • csh inParam.csh 명령어를 통해 수행합니다. 

etc-image-3

 

[전체]

  • inParam.sh

#!/bin/bash

cat > inParam.ncl << EOF
   print("year : " + year)
   print("month : " + month)
   print("title : " + title)
EOF

ncl year=2020 month=12 'title="Run Shell bash"' inParam.ncl

rm -f inParam.ncl

 

  • inParam.csh

#!/bin/csh

cat > inParam.ncl << EOF
   print("year : " + year)
   print("month : " + month)
   print("title : " + title)
EOF

ncl year=2020 month=12 'title="Run Shell csh"' inParam.ncl

rm -f inParam.ncl

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com