반응형

     정보

    • 업무명     : NetCDF 파일을 이용한 시각화 도구 소개
    • 작성자     : 이상호
    • 작성일     : 2020-02-03
    • 설   명      :
    • 수정이력 :

     

     내용

    [개요]

    • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.
    • NetCDF 파일 (*.nc)은 대표적인 대용량 기상 자료의 포맷으로서 많은 연구에서 사용합니다.
    • 따라서 다양한 가시화 및 분석 도구을 소개해 드리고자 합니다.

     

     

    [가시화 도구]

    • Ferret 
      • Ferret는 시애틀에 있는 Thermal Modeling and Analysis Project (TMAP)에 의해 수치 해상 모델의 출력을 분석하고 관측 자료와 비교하기 위해 개발되었습니다.
      • 최근에 과학적 가시화를 위해 우수한 패키지들이 개발되었습니다. 특히 지구물리 계산 및 데이터베이스 연결 그리고 빅데이터 계산을 위한 메모리 관리가 있습니다.

     

    yes? use "uwnd.mean.nc"
    yes? !Use only the first time step for this plot
    yes? set region/l=1
    yes? contour uwnd

     

     

    Data Visualization and Analysis | Science Data Integration Group - Ferret Support

     

    ferret.pmel.noaa.gov

     

     

    • Grid Analysis and Display System (GrADS)
      • GrADS는 그리드 데이터를 분석하고 가시화할 수 있습니다.
      • 즉 NetCDF 또는 HDF 파일을 SDF (Self Describing File) 인터페이스를 통해 간단하게 읽기 및 표출 기능을 제공합니다.

     

    ga-> sdfopen uwnd.mean.nc
    Scanning self-describing file: uwnd.mean.nc
    Found displayable variable uwnd with 0 levels in SDF file.
    Data file uwnd.mean.nc is open as file 1
    LON set to 0 360
    LAT set to -89 89
    LEV set to 0 0
    Time values set: 1980:1:1:0 1980:1:1:0
    ga-> d uwnd

     

     

    COLA Home Page

    COLA is a scientific research center established to improve understanding and prediction of Earth's climate variations on seasonal, interannual, and decadal scales, with a special emphasis on the interactions between Earth's atmosphere, oceans, and land su

    cola.gmu.edu

     

     

    • Interactive Data Language (IDL)
      • IDL은 ITT Visual Information Solutions의 상용 소프트웨어 패키지로서 NetCDF 파일을 읽을 수 있습니다.
      • IDL v4.0 이상에서는 다음과 명령어를 통해 확인할 수 있습니다.

     

    IDL. Version 4.0.1b (sunos sparc).
    Copyright 1989-1996, Research Systems, Inc.
    All rights reserved. Unauthorized reproduction prohibited.
    Installation number: 1627-1.
    Licensed for use by: Climate Diagnostics Center
    % Compiled module: $MAIN$.
    IDL> id = ncdf_open("/Datasets/coads1a.enh/sst.mean.nc")
    IDL> sstid = ncdf_varid(id,"sst")
    IDL> ncdf_varget, id, sstid, sst
    IDL> contour, sst(*, *, 1)

     

     

    IDL Software - Interactive Data Visualization Solution

    Programmatically or interactively output to a variety of standard image formats, like GIF, JPEG, PNG, TIFF, EPS etc. or import graphics into PowerPoint, Keynote, or HTML presentations. Additionally, graphics can be output to PostScript or PDF for inclusion

    www.harrisgeospatial.com

     

     

    • NetCDF File Browser (ncBrowse)
      • ncBrowse는 그래픽 디스플레이를 생성하고 netCDF 파일의 속성을 볼 수 있는 Java 어플리케이션입니다.

     

     

    ncBrowse - netCDF file browser

    ncBrowse is a Java application that provides flexible, interactive graphical displays of data and attributes from a wide range of netCDF data file conventions. Features Version 1.6.7 released. Minor bug fix. Version 1.6.6 released. Stopped using deprecated

    www.pmel.noaa.gov

     

     

    • Panoply
      • Panoply는 NASA/GISS의 GUI NetCDF 뷰어입니다. 지도와 지역 평균을 표시할 수 있으며 원도우 (Window)와 리눅스 (Linux) 및 맥 (Mac)에서 사용할 수 있습니다.

     

     

    NASA GISS: Panoply 4 netCDF, HDF and GRIB Data Viewer

    Panoply netCDF, HDF and GRIB Data Viewer panoply \PAN-uh-plee\, noun: 1. A splendid or impressive array. ... Panoply plots geo-referenced and other arrays from netCDF, HDF, GRIB, and other datasets. Panoply is a cross-platform application that runs on Maci

    www.giss.nasa.gov

     

     

     

     

     

    PanoplyWin v4.10.11 - Google Drive

    이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요.

    drive.google.com

     

     

     

    PanoplyWin v4.12.9 - Google Drive

    이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요.

    drive.google.com

     

     

    • NCAR Command Language (NCL)
      • NCL은 NCAR 명령 언어로서 NetCDF 파일도 읽을 수 있는 무료 소프트웨어입니다.
      • 아래와 같이 명령어를 통해 파일 읽기 및 가시화할 수 있습니다.

     

    f = addfile("slp.2002.nc", "r")
    
    ; convert to float [contributed.ncl]
    slp =short2flt(f->slp)
    
    ; open a "x11", "ps" or "ncgm" file
    wks =gsn_open_wks("ps", "slp_ce")
    
    ; create a default ce plot
    plot=gsn_csm_contour_map_ce(wks, slp(0, :, :), False)

     

     

    NCAR Command Language (NCL)

     

    www.ncl.ucar.edu

     

     

    • NetCDF Operator (NCO)
      • NCO는 NetCDF 파일에서 사용하는 무료 소프트웨어입니다. 각 연산자는 ls 또는 mkdir과 같은 Unix (또는 Linux) 셸에서 실행되는 독립 실행형 명령 소프트웨어입니다. 또한 주로 그리드 과학 데이터의 조작 및 분석을 지원하도록 설계되었습니다. 
      • 즉 NetCDF 또는 HDF4 파일을 이용하여 여러 자료 처리 (예 : 평균화 또는 메타 데이터 조작 등)을 수행할 뿐만 아니라 NetCDF 형태로 출력도 가능합니다.

     

    ncrcat 85.nc 86.nc 87.nc 88.nc 89.nc 8589.nc

     

     

    NCO Homepage

    Bienvenue sur le netCDF Operator (NCO) site Current stable NCO version is 4.9.1 released The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, and HDF5. It exploits the geophysical expressivity of many CF (

    nco.sourceforge.net

     

     

    • CoastWatch Data Analysis Tool (CDAT)
      • CDAT는 그리드 (Grid) 기후 데이터에 액세스하고 관리 할 수 있도록 설계된 소프트웨어입니다.
      • 즉 객체 지향 언어를 사용하여 별도의 소프트웨어 하위 시스템과 패키지를 연결한 통합 환경이 있습니다. 이는 Python과 소프트웨어를 완벽하게 상호 연결하는 역할을 수행합니다.
      • Python은 독립형 스크립트 (응용 프로그램) 및 그래픽 사용자 인터페이스 (GUI)를 비롯한 다양한 사용자 인터페이스를 지닐뿐만 아니라 범용 기능을 가진 스크립트 언어를 제공합니다. 그 결과 모듈 수치 계산을 위한 배열 연산 및 시각화에 대해 제공합니다.

     

     

    • MATrix LABoratory (MATLAB)
      • MATLAB은 광범위한 가시화 및 수치 계산이 가능한 고급 언어입니다. NetCDF 지원은 MATLAB 7.7 이상 버전에 내장되어 있습니다.
      • 이전 버전의 경우 NetCDF 파일에 대한 MEXNC 인터페이스 (http://mexcdf.sourceforge.net)에서 사용할 수 있습니다.
      • 그리고 NetCDF v4.0 지원은 R2010b에서 시작합니다.

     

     

    MathWorks - MATLAB 및 Simulink 개발 회사

    MathWorks Korea의 공식 홈페이지로서, MATLAB(매트랩) 및 Simulink(시뮬링크) 제품 및 서비스, 다운로드, 교육 및 강좌, 커뮤니티 등 다양한 정보를 제공합니다.

    kr.mathworks.com

     

     

    • Higher Level NetCDF Code
    %  MATLAB script  to inquire about variable names and read in all variables
    %  from a netcdf file.  Uses native netcdf support in MATLAB 
    %
    %  Usage:  
    %  oid='myfile.nc';
    %  nc_readall
    %
    %  Warning: this reads in variables and assigns them to the same variable name in MATLAB as in the netcdf file
    %           does not handle udunits, so time coordinate typically needs to be modified for use in MATLAB. 
    %
    % oid  file name or URL to a netcdf file
    
    f = ncinfo(oid);
    nvars = length(f.Variables);
    for k = 1:nvars
       varname=f.Variables(k).Name;
       disp(['Reading:  ' varname]);
       eval([varname ' = ncread(''' oid ''',''' varname ''');']);
    end

     

    • Native NetCDF code
    oid='https://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/noaa.ersst/sst.mnmean.nc'
    sst=double(ncread(oid,'sst'));
    nlat=double(ncread(oid,'lat'));
    nlon=double(ncread(oid,'lon'));
    
    mv=ncreadatt(oid,'/sst','missing_value');
    sst(find(sst==mv))=NaN;
    
    [Nlt,Nlg]=meshgrid(nlat,nlon);
    
    %Plot the SST data without using the MATLAB Mapping Toolbox
    
    figure
    pcolor(Nlg,Nlt,sst(:,:,1));shading interp;
    load coast;hold on;plot(long,lat);plot(long+360,lat);hold off
    colorbar
    
    %Plot the SST data using the MATLAB Mapping Toolbox
    
    figure
    axesm('eqdcylin','maplatlimit',[-80 80],'maplonlimit',[0 360]);  % Create a cylindrical equidistant map
    pcolorm(Nlt,Nlg,sst(:,:,1))           % pseudocolor plot "stretched" to the grid
    load coast                                 % add continental outlines
    plotm(lat,long)
    colorbar
    
    oid = 'https://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/NARR/Monthlies/monolevel/prate.mon.mean.nc'
    prate=ncread(oid,'prate');
    nlat=double(ncread(oid,'lat'));
    nlon=double(ncread(oid,'lon'));
    
    scale = ncreadatt(oid,'/prate','scale_factor');
    offset = ncreadatt(oid,'/prate','add_offset');
    
    mv=double(ncreadatt(oid,'/prate','missing_value'));
    mv = double(mv*scale+offset);
    prate(find(prate>=mv))=NaN;
    
    %Plot the NARR precipitation data using the MATLAB Mapping Toolbox
    figure
    axesm('robinson','Frame','on','Grid','on','maplatlimit',[0 88],'maplonlimit',[150 0],'MeridianLabel','on','ParallelLabel','on');
    pcolorm(nlat,nlon,log(prate(:,:,1)))           % pseudocolor plot "stretched" to the grid
    load coast                                 % add continental outlines
    plotm(lat,long)
    colorbar
    
    figure
    axesm('ortho','Grid','on','Frame','on','Origin',[40,250,14],'maplatlimit',[0 88],'maplonlimit',[150 0]); % Create a cylindrical equidistant map
    pcolorm(nlat,nlon,log(prate(:,:,1)))           % pseudocolor plot "stretched" to the grid
    load coast                                 % add continental outlines
    plotm(lat,long)
    colorbar

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기