NG 체계에서 바람 벡터 표출 관련 문의

게시판 IDL Q&A NG 체계에서 바람 벡터 표출 관련 문의

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

  • 글쓴이
  • #5139

    levanter0401
    회원

    안녕하세요.
    IDL 8.5.1에서 NG 체계로 아시아 지역의 기압 패턴과 바람 벡터 이미지를 그리고자 하는데요,
    기압 패턴의 공간 분포는 잘 그려지지만 벡터를 그리는데 문제가 생겨 문의를 드립니다.

    이미지 표출을 위해 사용되는 변수는 위도(LAT), 경도(LON), 동서방향의 바람(UGRD), 남북방향의 바람(VGRD),
    기압관련변수(HGT)로, 2차원의 배열로 구성되어있으며 각 변수의 구조는 아래와 같습니다.

    LAT : FLOAT = Array[360,181]
    LON : FLOAT = Array[360,181]
    UGRD : DOUBLE = Array[360,181]
    VGRD : DOUBLE = Array[360,181]
    HGT : FLOAT = Array[360,181]

    그림을 그리기 위해 작성했던 설정은 다음과 같습니다.

    limit = [23, 105, 50, 147]

    m = MAP(‘Mercator’, LIMIT=limit, POSITION=[0.1,0.1,0.8,0.9]

    grid = m.MAPGRID
    grid.GRID_LATITUDE = 2
    grid.LABEL_POSITION = 0
    grid.LINESTYLE = 1
    grid.FONT_SIZE = 11

    ct = COLORTABLE(72)

    C_VALUE = [1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470]
    C_COLOR = [5 , 15, 20, 25, 30, 35, 40, 45, 50, 70, 90, 110, 120, 130, 165, 190]
    LABEL_COLOR = [0, 2, 4, 6, 8, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]

    c = CONTOUR(hgt, LON, LAT, C_VALUE=c_value, C_COLOR=c_color, LABEL_COLOR=label_color, /FILL, OVERPLOT=m, GRID_UNITS=’degrees’, RGB_TABLE=ct, TITLE=’gph_850hPa’)

    shp_file = ‘./GSHHS_i_L1.shp’
    mapc = MAPCONTINENTS(shp_file)

    vec = vector(ugrd, vgrd, lat, lon, /OVERPLOT) ; —– 문제 발생 부분

    2차원의 성분 자료(ugrd, vgrd)를 이용하여 원하는 위경도 위치에 바람을 그리려면 어떻게 적용해야 할까요?
    (* 참고, ugrd의 경우 +일때 동풍, vgrd의 경우 +일때 북풍입니다)

  • #5140

    Sangwoo
    회원

    VECTOR 함수를 사용할 때 다음과 같이 4개의 인자들이 사용될 경우가 일반적인데요.

    graphic = VECTOR(U, V, X, Y, ~~~)

    IDL 도움말에 설명된 내용을 토대로 한다면, 언급하신 예제에서 U, V 각각 2차원 배열이므로 X, Y 각각은 1차원 배열이 되어야 합니다. 즉 이 예제에서 X는 360개의 경도값들로만 구성된 1차원 배열이어야 하고, Y는 181개의 위도값들로만 구성된 1차원 배열이어야 합니다. 이렇게 주어져야 VECTOR 함수가 정상적으로 작동하게 됩니다.

  • #5141

    levanter0401
    회원

    빠른 답변과 도움에 진심으로 감사드립니다~^^

    알려주신 정보를 바탕으로 벡터 이미지를 그렸는데요, 그 과정에 궁금한 내용이 생겨서 추가 문의를 드립니다.

    1. 벡터를 그릴때 원 자료를 삭제(0 변경)하지 않고, 몇 칸 간격으로 벡터를 그리도록 interval을
    줄 수 있을지요?

    2. 기상 또는 대기질 모델의 전처리 프로그램에서 산출된 LAT, LON 정보는
    지도 투영법(ex. lambert conformal)에 따라 2차원의 정보를 가지고 있는데요,
    이러한 2차원의 LAT, LON 정보를 이용하여 벡터를 그려줄 수 있을까요?

  • #5144

    Sangwoo
    회원

    1. VECTOR 함수에서 지원되는 키워드들 중 X_SAMPLE, Y_SAMPLE을 활용하면 될 것 같습니다. 물론 이게 엄밀히 말하면 생략이라기보단 샘플링 기법에 해당되기 때문에, 원하시는 방향과 정확히 일치하지 않을 수도 있겠지만 한번 시도해보시길 권장합니다.

    2. 그런 경우에는 VECTOR 함수에 투입될 u, v, x, y 각각을 모두 1차원 배열화하면 됩니다. 올려주신 예제의 내용을 기반으로 한다면 lat1 = REFORM(lat)과 같이 처리하면 원래의 lat은 360×181인 2차원 배열이지만 lat1은 360×181=65160개인 1차원 배열의 형태가 됩니다. 나머지 lon, ugrd, vgrd 역시 같은 방식으로 변환하여 투입하면 됩니다.

  • #5146

    levanter0401
    회원

    덕분에 궁금한 점이 해결되었습니다.

    감사합니다!!! ^^

답변은 로그인 후 가능합니다.