ncdf 데이터를 읽고 표출하는법 조언부탁드립니다.

게시판 IDL Q&A ncdf 데이터를 읽고 표출하는법 조언부탁드립니다.

이 게시글은 1개 답변과 2명 참여가 있으며 마지막으로  Sangwoo에 의해 3 월, 3 주 전에 업데이트 됐습니다.

  • 글쓴이
  • #5562 답변

    qrjtl5383

    안녕하세요,
    지난번 질문 이후로 제가 직접 만들어보고 싶어 프로그램을 구성하는 중 여러 어려운 문제를 맞이하여..
    이렇게 또 질문을 드리게 되었습니다.

    저는 ‘.nc’ data 파일을 읽어 지도상에 data를 표출하고싶은 최종적인 목적을 가지고 있습니다.
    아래에는 제가 만들어본 프로그램입니다.

    ————————————
    close,/all
    file = (‘changchunflxout_d01_20171104_150000.nc’)
    id = NCDF_OPEN(file)
    ncdf_varget,id,’CONC’,conc
    help, conc

    data=conc[*,*,2,0,0]
    help, data

    win2=window(dimensions=[600, 500])
    m=map(‘geographic’, margin=[0.05, 0.20, 0.03, 0.05], LIMIT=[30, 100, 55, 150], $
    aspect_ratio=0, clip=0, font_size=10, /current)

    im2=image(data, image_location=[100, 30], image_dimension=[1, 0.3], $
    grid_units=2, RGB_TABLE=34, aspect_ratio=0, /overplot)

    m1=MAPCONTINENTS(‘/data1/jinju2/IDL_test/grid/KNU_27_01_adm1.shp’, THICK=1)
    m2=MAPCONTINENTS(‘/data1/jinju2/IDL_test/jinju_grid/gadm36_KOR_1.shp’, THICK=1)

    cb=COLORBAR(TARGET=im2, TITLE=’ppt’, FONT_SIZE=10, $
    POSITION=[0.2, 0.07, 0.8, 0.10], /BORDER)

    ;ncdf_varget,id,’CONC’,conc
    ;nx=conc[*,0,0,0,0,0]
    ;help, nx
    ;ncdf_varget,id,’CONC’,conc
    ;ny=conc[0,*,0,0,0,0]
    ;help, ny

    ;data1=conc[*,*,0,0,0,0]
    ;im3 = IMAGE(SHIFT(data,0,0), data1, RGB_TABLE=34, GRID_UNITS=2, ASPECT_RATIO=0, /OVERPLOT)

    ;im = IMAGE(img_new, IMAGE_LOCATION=[lonmin, latmin], IMAGE_DIMENSION=[lonmax-lonmin, latmax-latmin], $

    END
    ————————————

    ‘changchunflxout_d01_20171104_150000.nc’의 파일 정보는 아래와 같으며,
    파일 및 파일 결과(‘.png’)를 링크(https://blog.naver.com/qrjtl5383/221545638848)에 올려놓았습니다.

    =====================================
    IDL> close, /all
    IDL> file = (‘/data1/jinju2/run_model/flexpart_wrf/src_flexwrf_v3.1/changchun/changchunflxout_d01_20171104_150000.nc’)

    IDL> ncdf_list, file, /variables

    /data1/jinju2/run_model/flexpart_wrf/src_flexwrf_v3.1/changchun/changchunflxout_d01_20171104_150000.nc
    # dimensions: 11
    # Variables: 4
    # Global attributes: 20
    The unlimited dimension is 0

    Variables
    0 Times: CHAR(15,1) = CHAR(DateStrLen,Time)
    1 CONC: FLOAT(174,128,3,2,2,1) = FLOAT(west_east,south_north,bottom_top,species,ageclass,Time)
    2 DRYDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)
    3 WETDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)

    IDL> ncdf_list, file, /variables, /VaTT

    /data1/jinju2/run_model/flexpart_wrf/src_flexwrf_v3.1/changchun/changchunflxout_d01_20171104_150000.nc
    # dimensions: 11
    # Variables: 4
    # Global attributes: 20
    The unlimited dimension is 0

    Variables and attributes
    0 Times: CHAR(15,1) = CHAR(DateStrLen,Time)
    0 description: TIME OF OUTPUT (END OF AVERAGING INTERVAL)
    1 CONC: FLOAT(174,128,3,2,2,1) = FLOAT(west_east,south_north,bottom_top,species,ageclass,Time)
    0 description: CONCENTRATION OF AIRBORNE SPECIES
    1 coordinates: XLONG XLAT
    2 units: ppt by mass
    2 DRYDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)
    0 description: ACCUMULATED TOTAL DRY DEPOSITION
    1 units: pg m-2
    2 coordinates: XLONG XLAT
    3 WETDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)
    0 description: ACCUMULATED TOTAL WET DEPOSITION
    1 units: pg m-2
    2 coordinates: XLONG XLAT

    IDL> ncdf_list, file, /variables, /GATT

    /data1/jinju2/run_model/flexpart_wrf/src_flexwrf_v3.1/changchun/changchunflxout_d01_20171104_150000.nc
    # dimensions: 11
    # Variables: 4
    # Global attributes: 20
    The unlimited dimension is 0

    Global Attributes
    0 SIMULATION_START_DATE: 20171102
    1 SIMULATION_START_TIME: 0
    2 SIMULATION_END_DATE: 20171104
    3 SIMULATION_END_TIME: 230000
    4 OUTPUT_PROJECTION: Regular Latit/Longit
    5 OUTPUT_INTERVAL: 3600
    6 AVERAGING_TIME: 3600
    7 AVERAGE_SAMPLING: 180
    8 NSPEC: 2
    9 NUMRECEPTOR: 0
    10 NAGECLASS: 2
    11 NUMRELEASES: 1
    12 DISPERSION_METHOD: 1
    13 SUBGRID_TOPOGRAPHY: 1
    14 CONVECTION_PARAM: 0
    15 WEST-EAST_GRID_DIMENSION: 174
    16 SOUTH-NORTH_GRID_DIMENSION: 128
    17 BOTTOM-TOP_GRID_DIMENSION: 3
    18 DX: 0
    19 DY: 0

    Variables
    0 Times: CHAR(15,1) = CHAR(DateStrLen,Time)
    1 CONC: FLOAT(174,128,3,2,2,1) = FLOAT(west_east,south_north,bottom_top,species,ageclass,Time)
    2 DRYDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)
    3 WETDEP: FLOAT(174,128,2,2,1) = FLOAT(west_east,south_north,species,ageclass,Time)

    =====================================

    저는 이 ‘.nc’ 파일에서 “CONC”의 파일을 표출하고 싶습니다.
    그러하여,
    4개의 변수 중 CONC라는 6차원 메인 데이터를 불러와 “이상우의 IDL”의 <NCDF 포맷의 데이터를 읽고 표출하기>와 같이 프로그램을 하였습니다.
    그러나 제가 생각하는것과 같이 쉽게.. 표출되지 않았습니다.

    많은 조언 부탁드리겠습니다.

    감사합니다.

  • #5568 답변

    Sangwoo
    회원

    올리신 코드의 내용을 보면 경도 범위가 100~150도이고 위도 범위가 30~55도인 지도를 표출한 상태에서 이미지의 위치는 (100, 30)이고 이미지의 크기는 가로 1도 세로 0.3도의 크기로 표시하도록 되어 있습니다. 따라서 링크해주신 것과 같은 결과가 나오는 것은 당연히 맞습니다. 따라서 전체적으로는 제대로 작업을 하신 것으로 보입니다. 다만, 저도상에서 이미지 전체가 차지하는 영역의 크기가 겨우 1도x0.3도가 되지는 않을 것입니다. 제 짐작이지만 어쩌면 이미지 격자 한 픽셀이 차지하는 영역과 이미지 전체 영역 사이의 혼란이 있었던 것은 아닌가 싶기도 합니다. 어쨌든 이미지의 지도상의 위치 및 커버리지의 경위도 범위에 대한 정확한 정보를 .nc 파일로부터 추출하여 그 정보를 이미지 표출 과정에 적용해야 할 것으로 보입니다.

    • 이 답변은  Sangwoo에 의해 3 월, 3 주 전에 수정됐습니다.
    • 이 답변은  Sangwoo에 의해 3 월, 3 주 전에 수정됐습니다.
'ncdf 데이터를 읽고 표출하는법 조언부탁드립니다.'에 답변달기
글쓴이 정보: