c_correlate 관련 질문입니다.

게시판 IDL Q&A c_correlate 관련 질문입니다.

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

      안녕하세요

      c_correlate에 대해서 궁금해서 질문을 올립니다.

      idl 도움말에서 보니 문법은 c_correlate(data1, data2, lag) 이런식으로 되던데..

      lag란 것이 time 뿐만 아니라 space에 대해서도 lag가 되는지 싶어서 질문올립니다.

      그리고 제가 x축이 경도인데 그럼 경도에 관해 lag를 지정하려면 어떻게 해야할까요..?

      단위는 알아서 x축과 lag가 맞춰지는건가요??

      • 이 게시글은 jsh4887에 의해 8 years 전에 수정됐습니다.
    • #2809 Reply
      Sangwoo
      회원

      C_CORRELATE, A_CORRELATE 함수에서 등장하는 lag라는 인자는 굳이 시간이어야 한다는 법은 없습니다. 데이터의 격자 단위가 시간이냐 공간이냐는 아무런 상관이 없습니다. C_CORRELATE를 기준으로 설명한다면 기본 문법은 다음과 같은데요.

      result = C_CORRELATE(data1, data2, lag)

      여기서 lag의 단위는 그냥 배열 인덱스입니다. 예를 들어 data1, data2가 둘 다 100개의 값을 갖는 배열이라면, lag 값이 5인 경우는 인덱스 단위로 5만큼 어긋난 상황에서의 서로간의 상관계수가 되는 셈입니다. 배열의 인덱스는 데이터 값의 실제 단위와는 사실상 무관합니다. 언급하시는 경도(Longitude) 단위로 데이터가 존재한다고 하더라도 그 간격이 만약 균일하지 않다면 그 상태에서 바로 연산을 수행하는 것은 의미가 없을 수도 있습니다. 약간 극단적인 예로, 두 데이터 모두 5개의 값을 갖는데 각각의 값이 다음과 같은 경도 값에 대응된다고 가정해 봅시다.

      120, 128, 131, 133, 134

      이 경우 첫번째 포인트와 두번째 포인트는 인덱스 상으로는 1만큼의 거리이지만 실제 경도값 단위로는 8도나 떨어진 상태입니다. 하지만 C_CORRELATE와 같은 함수에서는 어차피 인덱스 단위로만 lag를 인식할 수 밖에 없습니다. 만약 이러한 분포를 하는 두 데이터에 대하여 C_CORRELATE 함수를 적용한 결과 가장 상관계수가 높게 나온 lag가 1이었다고 해도 그 1은 인덱스 단위일 뿐이므로, 실질적인 lag가 정말로 8도인지 아니면 다른 값인지를 판단하기는 어렵습니다. 따라서 위와 같은 분포를 한 데이터를 갖고 작업을 하려면, 내삽(Interpolation) 등의 과정을 거쳐서 균일한 간격을 갖는 데이터로 처리를 한 후에 C_CORRELATE와 같은 함수를 사용해야 의미있는 결과를 얻을 수 있게 됩니다.

1 답변 글타래를 보이고 있습니다
'c_correlate 관련 질문입니다.'에 답변달기
글쓴이 정보: