본문 바로가기

기상기후기술

NCL(NCAR Command Language) 이번 버젼에서 새로운 것

NCAR Command Language(이하 NCL)은 NCAR(미국 기후 응용 연구소)에서 내 놓은 기상/기후를 위한 과학 가시화 도구 입니다.


기상/기후 쪽에서는 많이 사용하고 있습니다.


아래는 NCL의 버젼 이력 입니다.


현재 버전의 새로운 기능

버전 6.3.0 - 2015년 3월 18일 [download]


  •  새로운 기능

  •  업데이트 기능

  • 이전 버전과의 차이점

  • 향상

  • 새로운 색상표

  • 버그 수정

  • 알려진 버그


New functions

새로운 기능

  • advect_var -수가 수평으로 변화: U*(dQ/dlon) + V*(dQ/dlat). 이러한 함수는 수평 이류로  advect_variable로 알려졌습니다. 6.3.1은 별칭으로 advect_variable 라는 이름을 지원합니다.

  • bw_bandpass_filter - 시계열에 좁은 대역폭에 최적화된 버터워스의 밴드패스 필터를 적용합니다.

  • determinant - 사각 실수 행렬의 결정요인을 계산합니다.

  • ezfftf_n - 주어진 차원에 따른 실제 주기적인 순서에서의 푸우리에 분석을 수행합니다.

  • 이것은 분석규모 지정을 허용하는 것을 제외하면 ezfftf와 동일합니다.

  • ezfftb_n - 주어진 차원에 실수 및 허수 계수로부터 푸리에 합성을 수행합니다.

  • 이것은 분석규모 지정을 허용하는 것을 제외하면  ezfftb와 동일합니다.

  • draw_color_palette - 채워진 상자의 일련의 주어진 색상 또는 색상 맵을 그립니다.

  • eofunc_north - 고유 분리를 평가하기 위해 North(MWR, 1982) 등 24개 식을 사용합니다.

  • fftshift - Matlab의 fftshift 기능과 유사한 방식으로 배열을 재배열합니다.

  • ListIndexFromName - 이름이 주어진 목록에서 변수의 인덱스를 돌려줍니다.

  • pot_temp - 잠재적인 온도를 계산합니다.

  • pot_vort_hybrid - 혼합층 및 전세계 위도에 잠재적인 소용돌이를 계산합니다.

  • pot_vort_isobaric - 등압선 및 전체 격자점에서의 잠재적인 소용돌이를 계산합니다.

  • str_match_ic_regex - 선의 리스트에 대하여 주어진 리스트를 매치하는 것은 정규 표현식 구문을 사용하는 것이다.

  • str_match_ind_regex - 선의 리스트에 대하여 주어진 리스트를 매치하는 것은 정규 표현식 구문과 인덱스 값을 변환하여 사용하는 것이다.

  • str_match_ind_ic_regex - 선의 리스트에 대하여 주어진 리스트를 매치하는 것은 정규 표현식 구문과 인덱스 값을 변환하여 사용하는 것이다.

  • str_match_regex - 선의 리스트에 대하여 주어진 리스트를 매치하는 것은 정규 표현식 구문을 사용하는 것이다.

  • thornthwaite - Thornthwaite 방법을 통해 잠재 증발산량을 계산한다.

  • trend_manken - 변함없는 추세에 대한 Mann-Kendall 비파라메트릭 테스트에 선형 추세의 Theil-Sen의 양호한 평가를 추가한다.

  • weibull - 최대 가능성 평가를 통해 Weibull 분포를 위한 형상 및 크기 파라미터를 도출한다.

  • wrf_user_vert_interp - 수직으로 인터콜레이팅한 ARW WRF 변수는 정해진 표현의 유형 및 새로운 수준의 세트이다.



업데이트된 기능

  • dim_spi_n - 유형 III 피어슨 분포를 적용하여, SPI를 계산하기 위한 두번째 방법을 추가했다.

  • gsn_panel - 효율적으로 인식하기 위해 업데이트를 하는 것이 당신은 흔한 막대 및 표를 능률화할 수 있습니다.

  • wrf_user_getvar - 새로운 “구름 꼭대기 온도” diagonistic은 “ctt”를 첨가하였다.


잠재적인 이전 버전과 호환되지 않는 변경

  • gsnAddCyclic 동작으로 변경 - 위도/경도 자료를 플로팅할 때, 만약 어떤 범위가 360보다 더 큰 경도 좌표 배열을 가지고 있으면 경도 순환 포인트를 추가되지 않습니다.

  • gsn_add_cyclic: 경고: 당신의 경도 배열 좌표의 범위는 적어도 360입니다.

  • 스플라인 함수로부터 경고 메시지를 방지하기 위해 거짓으로 gsnAddCyclic을 설정할 수 있습니다.

  • 폴리라인과 폴리곤 형식으로 그려진 지도는 순환 경도값에 관한 모호함을 피하기 위해 약간 수정했다.


향상된점

입출력 파일 향상

  • HDF5 reader - 더 나은 핸들을 위해 NCL’s의 HDF5 독자로 인해 개선 숫자가 늘어났다.handle:

    • 배열 이름

    • 변수 조정

    • FillValue 속성

  • 순차적으로 레코드를 판독하는 효율을 향상시키기 위해 fbinrecread 에 대한 “KeepOpen”이라고 불리우는 새로운 setfileoption옵션을 추가했습니다. 이 옵션은 오직 논리적인 값과 “bin”포맷으로만 사용할 수 있습니다.

  • 기존 유럽 중기예보센터의 GRIB1 테이블을 업데이트했고, 6개를 새로 추가했다: 213, 214, 215, 217, 218, 219, 220, 221. NCEP GRIB1/GRIB2 코드 테이블도 업데이트 되었습니다.

  • 유효한 GRIB 기록을 착기 위해 필요한 경우 파일을 통한 모든 방법으로 현재의 NCL을 찾습니다.

  • GRIB1 및 GRIB2 모두 고정된 여러 메모리 관리 문제 해결

  • addfiles 로부터의 파일 목록 변수 할당은 지금 1개 이상 입력파일의 지정된 변수를 포함한 경우가 포함하지 않는 경우보다 관대하다.

  • 변수 HGT_P0_L100_GLL0의 유효한  사례는 1개 이상의 파일리스트를 찾지 않았다는 것이다.

  • 어떤 파일이 변수의 사례를 포함하지 않을 경우, 치명적인 오류가 반환됩니다. 그렇지 않으면 경고입니다.

  • readAsciiTable 은 Kyle S. Griffin에 의한 코드의 부가 제안에 의해 ‘thread-safe’가 만들어졌다. Daniel Leuenberger는 토론에 기여했다.

Computational function improvements

계산 기능 개선

  • MJO CLIVAR: mjoclivar_14.ncl 진단

    • Lim Eun-Pa(호주 중앙 기상기후연구소)에 의해 제안된 방식을 사용한 EOF 모드의 적절한 부호를 결정한다. 이것은 2014년 10월 20일에 추가되었다.

    • 각 요소의 다변량 EOF의 변동률을 계산한다. 이 코드 부분은 Marcus N. Morgan(플로리다 공과대학교)에 의해 제공되었다. 이것은 2015년 3월 4일에 추가되었다.

그래픽 개선

  • 이제 폴리라인 또는 폴리건의 직선 가장자리를 그리기 위해 지도의 trLineInterpolation False을 설정할 수 있습니다. 이것은 3가지 옵션이 있습니다.:

    1. res@trLineInterpolation = True (the default)

    2. 선은 위도/경도 좌표 공간에서 해석됩니다.

    3. res@mpGreatCircleLinesOn = True 과 res@trLineInterpolation = True

    4. 선은 큰 원 경로를 따를 것이다.

    5. res@trLineInterpolation = False

    6. 점 사이의 선은 투영된 공간의 직선에서 나타납니다.


  • 큰 삼각형 그물(4000만 이상의 삼각형)은 더 이상 Shewchuck 트라이앵글 코드에 내재된 한계에 실패하지 않습니다. 이 그물이 제한 수를 초과할 때 삼각형이 분리되어 2개 이상의 타일들로 나뉘어진다. 이와 함께 몇 가지 성능 향상이 있다.


  • OepnMP 래스터 그래픽에 대한 지원이 향상되었고, 이러한 기능은 베타 수준의 신뢰성보다 좋다. OpenMP의 지원은 큰 매쉬를 처리하기 위해 사용되는 같은 타일링 메커니즘에 의존한다. OpenMP는 모든 지도투영에 사용되어지며 타일 사이에 보이는 선을 포함한 인공물은 제거되었다. OpenMP 기능을 사용하는 방법에 대해 노트 6.2.0 릴리즈 노프의 항목을 참조하시기 바랍니다.

기타 개선

모든 숫자 유형은 이제 첨자 좌표를 사용할 수 있습니다. 첨자는 더이상 좌표변수와 동일한 유형일 수  없습니다.


새로운 색상표

새로운 색상표는 중강의 두 흰색이 추가되었다. : BlAqGrWh2YeOrReVi22.


버그 수정

  • MJO CLIVAR: 진단 mjoclivar_16.ncl 복합형태는 반주기적으로 해체했다. 이것은 수정되어졌고, 2014년 10월에 다운로드를 통해 즉시 사용이 가능해졌다.

  • bin_avg / bin_sum - 만약 관측 위치가 제공된 그리드에 의해 스팬 지역 밖에 있다면 비닝이 잘못된 버그를 수정한다. 이러한 함수들은 명확히 상황에 대한 체크를 하지 않았다.

  • delete - 목록형 인수의 좌표배열 삭제와 함께 문제가 수정되었습니다.

  • dewtemp_trh - 만약 rh가 0보다 작으면 버그를 수정하고, 숫자가 없으면 되돌아 간다. 그 함수는 누락된 값을 반환한다.

  • dim_avg_wgt_n / dim_sum_wgt_n - 만약 “x”가 1차원 배열일 경우 리턴값이 차원이 없었다고 버그를 수정한다.

  • dim_sum_wgt / dim_sum_wgt_n - 만약 “opt”가 0이고 누락된 값이 반환되었다고 버그를 수정하고, 이때 누락된 값이 없는 경우 반환된다. 문서에 따르면, 누락된 값 대신 반환된 값이 있어야 한다.

  • ESMF_regrid - 만약 “neareststod” 또는 “nearestdtos” 보간 방법이 사용된 경우 버그를 수정하고, “remap” 속성은 재격자화 변수가 여전히 “bilinear” 이라고 첨부한다.

  • “remap” 속성은 파일의 크기에 따라 부착하는 특성이 있으며 이제는 “ESMF_regrid_method” 를 사용하고, 따라서 이전보다 더 자세화될 것이다.

  •  이전:

remap: ESMF_regrid_with_weights를 통해 매핑: 패치

remap: ESMF_regrid_with_weights를 통해 매핑: 보존

  • 개선:

remap: ESMF_regrid_with_weights를 통해 매핑: 더 높은 질의 패치

remap: ESMF_regrid_with_weights를 통해 매핑: 1등급 질의 보존

  • gsn_merge_colormaps - 2개의 색상을 병합하려고 하면 기능은 당신에게 경고를 준다.

경고: 2개의 색상이름: ‘gsdtol’은 올바른 색상이름이 아니다.

이 색상의 누락값을 반환한다.

  • 이러한 경고에도 불구하고, 기능은 여전히 작동합니다. 이 경고는 V6.3.0에서 제거되었습니다.

  • stat_dispersion - 두번째 반환 요소는 설명된 바와 같이 표본 분산이 아닌 표본 표준 편차를 반환하였다. 6.3.0 버전에서는 표본 표준 편차는 반환된다.

  • svd_lapack - 메모리 부족을 해결했다. 결과는 영향을 받지 않았다.

  • ListPop - 목록에서 익명 변수의 팝업 버그가 수정되었다.

  • mpFreeAspect 매개변수를 사용할 때 CellFill 문제가 해결되었다. 줄거리의 가장자리에 채우기 위해 특별히 그려진 세포는 올바른 위치에 표시되지 않았다. 지금은 예상대로 작동하고 특수 처리된 대부분을 제거할 수 있었다.

  • 그들이 모두 문자열 유형으로 처리되고 있었을 때, DHFEOS5 속성의 문제가 해결되었다.

  • 비지리적 2차원 플롯이 제대로 그려지지 않은 문제가 해결되었다. “구형”변환은 2차원 좌표의 모든 유형에 사용되고, 보다 일반적인 “곡선”변환이 사용되어 있어야 한다.

  • 숫자가 0이어야 점 서식에 문제가 해결되었고, 유효 숫자의 수를 지정하는 대신, 0의 많은 작은 소수값으로 설정 하였다.


알려진 버그

  • 만약 당신이 사용자 홈 디렉토리가 없는 시스템에 NCL을 실행할려고 하면 “~/.hluresfile”파일이 나타나면서 문제에 맞닥뜨릴 수 있습니다.

  • 해결책은 “hluresfile” 이라는 빈 파일을 만들 수 있고, 그 또는 그녀가 원하는 곳에 넣어서 그리고 모든 사용자는 더미 파일을 가리키도록 NCARG_USRRESFILEenvironment 변수를 설정할 수 있다.

  • export NCARG_USRRESFILE=$NCARG_ROOT/lib/ncarg/hluresfile

  • cd_calendar - 당신이 “이후의 초” 혹은 “이후의 분”의 단위가 있는 경우 루틴에서 잠재적인 반올림 버그가 있습니다. 그것은 때로는 “1분/0초” 일때 보다 “0분/60초”일 때 발생합니다. 우리는 이 코드의 개발자의 이메일을 가지고 있으나, 만약 당신이 “표준”달력을 사용할 경우 우리가 수정할 때까지 당신은 ut_calendar 을 사용할 수 있습니다.

  • kolsm2_n - 여러 크기의 사용을 수정하는 것의 결과는 잘못될 수 있다. 자세한 내용과 해결방법은 이 기능에 대한 설명서를 참조하십시오. 이것은 NCL 버전 6.3.1에서 수정되었습니다.

  • “그룹”내 변수 HDF5 파일의 경우, ListSetType addfiles 를 함께 사용할 때 작동하지 않습니다. 이것은 ListSetType 작업을 수행하는 기본 모드입니다.