CONTOUR 내삽 관련 문의

게시판 IDL Q&A CONTOUR 내삽 관련 문의

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

  • 글쓴이
  • #5167

    ChoiYoun
    회원

    안녕하세요.

    CONTOUR 함수의 내삽과 관련된 문제 때문에 글 남겨봅니다.

    어찌 설명해야될지 몰라서 일단 예제를 작성해보았습니다.

    위와 같은 코드를 실행했을 때, 색상이 10가지가 나옵니다.
    그러나 제가 원하는 그림은 3가지 색상(0~1, 8~9, 10~11)만 나오길 원합니다.

    PLOYGON이란 함수를 이용하여 하나씩 좌표를 지정하여 그리려고 하였으나,
    예제와 달리 자료의 크기가 커서 그림을 그리는 데에 너무 오랜 시간이 걸립니다.

    다른 방법이 있을까요.

  • #5168

    mwkim
    회원

    안녕하세요,

    먼저 질문 드릴 부분이 있는데 원하시는 것이 특정 구간만 색이 나오고

    다른 값에는 표기가 안되길 원하시는 것인가요?
    (예제를 예로 하면 1-8사이는 나오지 않는 것)

    CONTOUR 함수의 경우 내삽하여 표출하기 때문에 연속 구간이 발생할 수 밖에 없을 것 같습니다.

    만약 특정 구간만 표출하시는 거면 해당 구간별로 별도로 CONTOUR 함수로 표출하고 중첩해야 할 것 같습니다.

    아무튼 이것과 별개로 CONTOUR 함수의 등치선의 값은 예제에 있는 C_VALUE를 정의하시면 됩니다.

    data = HANNING(100,100)
    c1 = CONTOUR(data,C_VALUE=INDGEN(10),/FILL)
    c2 = CONTOUR(data,C_VALUE=[0,1,8,9],/FILL)

    위 예를 해보시면 C_VALUE에 따라 표출이 다른것을 확인하실 수 있습니다.
    (FILL 옵션을 안 켜도 마찬가지이나 잘 보이지 않아서 FILL 옵션 사용)

  • #5169

    Sangwoo
    회원

    의도하신 바를 제가 정확히 파악한 것인지는 모르겠으나, 제가 보기에는 0, 1, 8, 9, 10, 11 등 총 6종의 값에 대응되는 등위선을 긋고 각 선마다 색상을 부여해야 하는 상황인 것 같습니다. 그렇다면 C_VALUE 키워드에 이 6개의 값들만 명시하고, 각 값에 대한 컬러를 C_COLOR 키워드로 설정하면 되지 않을까 합니다.

    c = CONTOUR(aa, C_VALUE=[0, 1, 8, 9, 10, 11], $
    C_COLOR=[‘green’, ‘green’, ‘blue’, blue’, ‘red’, ‘red’])

    다만 코드에 명시된 aa의 경우 최대값 10이 한 포인트에만 존재하는 상황이기 때문에 위와 같이 표출하면 실제로는 10, 11에 대한 등위선은 그려지지 않습니다. 최대값을 12정도로 바꿔서 테스트해보면 3종의 색상이 모두 표출됨을 확인할 수 있습니다.

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