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

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

4 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #5139 Reply
      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 Reply
      Sangwoo
      회원

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

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

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

    • #5141 Reply
      levanter0401
      회원

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

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

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

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

    • #5144 Reply
      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 Reply
      levanter0401
      회원

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

      감사합니다!!! ^^

4 답변 글타래를 보이고 있습니다
'NG 체계에서 바람 벡터 표출 관련 문의'에 답변달기
글쓴이 정보: