volume 함수에서 색상

게시판 IDL Q&A volume 함수에서 색상

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #5689 Reply
      Yyong
      회원

      volume 함수를 써서 3차원 자료를 구현하고 있습니다.
      3차원의 전리권에서의 Global electron density map을 그리고 있는데, volume 함수에서는 image 함수에서 max_value, min_value를 사용하는 것처럼 colorbar와 함께 컬러를 조정할 수는 없는건가요? volume 함수안에 max_value, min_value를 사용했더니 엉뚱한 그림이 생성됩니다.

      코드안에서 volume 함수를 사용한 부분입니다.
      tTEC = fltarr(73,71,193)
      table_num=39
      data=ttec[*,*,*]
      vol=volume(data,rgb_table0=table_num,ASPECT_RATIO=1,/current)

    • #5690 Reply
      Sangwoo
      회원

      말씀하신 증상이 VOLUME 함수로 표출된 볼륨 가시화 그림이 이상하다는 것인지 아니면 함께 생성된 컬러바가 이상하다는 것인지 궁금합니다. 그리고 예제코드에서 VOLUME 함수에 사용된 3차원 배열 data의 경우는 최소값 및 최대값이 모두 0이기 때문에, 볼륨으로 가시화할 경우에는 XYZ축 외에는 아무것도 나타나지 않습니다. 최소값과 최대값이 서로 차이가 나는 배열일 경우에는 정상적으로 표출됩니다.

      볼륨 가시화에서 한가지 염두에 둬야 할 것은, 색상외에 Opacity(불투명도)라는 개념이 있어서 IDL의 VOLUME 함수에서는 최소값부터 최대값까지 범위에 대하여 Opacity가 0~255의 범위로 대응된다는 것입니다. 따라서 어떤 3차원 볼륨 데이터에 대하여 최소값이 0이고 최대값이 100이라고 한다면, 값 0은 Opacity 0에 대응되어 완전 투명 처리가 되고 값 100은 Opacity 255에 대응되어 완전 불투명 처리가 됩니다. 그리고 그 사이 값들은 어중간한 불투명도를 갖게 됩니다. 볼륨 가시화에 있어서는 이러한 방식을 고려하는 것이 필요합니다.

      • #5693 Reply
        Yyong
        회원

        답변 감사드립니다.
        제가 원하는 것은 VOLUME 함수로 표출된 가시화 그림에서의 color scale을 지정하고 싶은것입니다.
        예를들면 max_value=10, min_value=0, rgb_table0=39로 하였을때 data값이 max_value값에 가까울수로 가시화된 그림에서 빨간색 계통으로 표시되는 것입니다.
        그런데 vol=volume(data,rgb_table0=table_num,max_value=10, min_value=0,ASPECT_RATIO=1,/current)로 지정하였을때 모두 빨간색으로 그림이 나타났습니다(투명도에는 차이가 있었습니다). max_value,min_value값을 지정하지 않았을때는 정상적으로 데이터에 맞게 그림이 나타났습니다.

        그리고 코드에서 사용한 데이터는 data(전자밀도)=fltarr(73,71,193,24) ; 경도(-180~180),위도(90~-90),고도(80~2000),시간(0~23h)입니다. 그래서 데이터안에서 최대값, 최소값 차이는 0이 아닙니다.

        • 이 답변은 Yyong에 의해 4 months, 3 weeks 전에 수정됐습니다.
      • #5695 Reply
        Sangwoo
        회원

        저는 원본 데이터를 갖고 있지 않기 때문에 코드에 적어주신 내용대로만 볼 수 밖에 없는데요. FLTARR 함수로 생성된 배열은 모든 값들이 0.0으로 통일됩니다. 그래서 코드에 명시된 data 배열의 값들이 모두 0.0이 될 수 밖에 없어서 그렇게 말씀을 드렸던 것입니다. 어쨌든 우선은 다음과 같이 배열 data의 최소 및 최대값이 얼마인지 VOLUME 함수에 투입되기 직전에서 확인을 해보시기 바랍니다.

        data=ttec[*,*,*]
        print, min(data), max(data)
        vol=volume(data,rgb_table0=table_num,max_value=10, min_value=0,ASPECT_RATIO=1,/current)

        볼륨의 색상이 전반적으로 붉게 나타나는 것은 39번 컬러테이블에서 뒷부분의 색상들만 활용되고 있다는 뜻입니다. 어쩌면 data 배열의 값들이 10 근처에서만 왔다갔다하는 상태여서 그럴 수도 있습니다. 예를 들어 실제로는 값들의 범위가 9~10인 상황이라면 그런 현상이 나타날 수 있습니다. 따라서 이미 말씀드렸듯이 VOLUME 함수에 투입되기 직전의 data 배열의 상태를 다시 한번 확인해보는 것이 필요할 것 같습니다.

1 답변 글타래를 보이고 있습니다
'volume 함수에서 색상'에 답변달기
글쓴이 정보: