sph_scat에 대한 질문

게시판 IDL Q&A sph_scat에 대한 질문

8 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1466 Reply
      chooas
      회원

      안녕하세요 !
      sph_scat을 사용하다가 질문이 있어서 글을 씁니다.
      위경도 범위안에 있는 원래 데이터를 읽어들여서 sph_scat을 썻는데요 (코드는 아래와같음)
      막상 그림을 그려보니 위경도 가장자리에서 이상한 값들이 생기더라고요

      원래 데이터 최고,최저 위경도는 각각
      127.50003 129.49997
      36.500019 38.499996
      인 데이터 입니다.

      xgrid = 268 & ygrid =268
      latmin2=36.5 & lonmin2=127.5 & latmax2=38.50000 & lonmax2=129.50000 ;;
      irlat = sph_scat(irlon_re2,irlat_re2,irlat_re2,bounds=limit,nlon=xgrid,nlat=ygrid, gs=[0.0075,0.0075])
      irlon = sph_scat(irlon_re2,irlat_re2,irlon_re2,bounds=limit,nlon=xgrid,nlat=ygrid, gs=[0.0075,0.0075])
      irresult = sph_scat(irlon_re2,irlat_re2,bt_re2,bounds=limit,nlon=xgrid,nlat=ygrid, gs=[0.0075,0.0075])

    • #1503 Reply
      Jonghyuk
      회원

      데이터의 촘촘한 정도에 따라 외곽은 원치 않는 결과가 나올 수 있습니다. 인터폴레이션 범위(bounds)를 좀 줄여 보는 방법이 어떨까요? 그런데 bounds=limit 설정에서 limit 변수가 보이지 않습니다.
      irlat과 irlon은 굳이 계산하실 필요는 없을 것 같습니다.

    • #1504 Reply
      chooas
      회원

      limit=[lonmin2,latmin2,lonmax2,latmax2]
      이런식으로 되어있습니다. 이정도 인데도 더 좁혀야 하나요??ㅜㅜ
      테두리에 원치 않는 결과 때문에 sph_scat함수를 못쓰는거 아닌가 합니다..ㅠㅠ

      또한 제가 map_image로 표현을 하는데,
      irlat와 irlon을 구하지않으면 어떻게 위경도 값을 입력하죠??

    • #1513 Reply
      Sangwoo
      회원

      불규칙 격자 분포를 하는 자료들을 맵상에 중첩 표출할 경우에는 MAP_PATCH라는 함수를 사용하는 것이 효과적입니다. 제가 예전에 제 블로그에 이와 관련된 내용을 올린 적이 있습니다. 아래 링크의 내용을 한번 참조해보시면 어떨까 합니다.

      http://blog.daum.net/swrush/129

    • #1514 Reply
      chooas
      회원

      답변 감사합니다 !!
      제가 sph_scat함수를 사용한이유는
      두개의 자료가 있는데요 !
      두 자료다 제가 원하는 위경도가 있는 데이터 이나 약간의 차이가 있습니다.
      즉, 두개 자료의 배열이 2차원으로 서로다릅니다.
      예) 1200,1000 과 1100,1000 이런식으로 되어있다는 겁니다.
      이런 데이터의 비슷한 위경도에 있는 값들을 “/”어서 비를 보고자 하는 문제인데,

      이러한 문제를 map_patch로 가능하단 말씀이신가요??

    • #1533 Reply
      Sangwoo
      회원

      그런데 처음에 올리신 코드에서 보면, 위도의 경우 36.5에서 38.5까지를 범위로 잡고 격자 간격은 0.0075로 하셨는데요. 이 경우 격자 갯수가 정수로 떨어지질 않습니다. 제 생각엔 예를 들면 격자 간격을 0.005로 해서 401개의 격자점들이 존재하도록 위도 및 경도 방향 격자들을 가정한 후, 코드의 내용을 아래와 같이 수정해보면 어떨까 합니다. 물론 격자 간격은 정하시면 되겠지만, 격자들이 분포할 경위도 범위를 간격으로 나누었을 때 정수로 떨어지도록 격자 구성을 하는 것이 중요합니다.

      xgrid = 401 & ygrid =401
      latmin2=36.5 & lonmin2=127.5 & latmax2=38.50000 & lonmax2=129.50000 ;;
      irresult = sph_scat(irlon_re2,irlat_re2,bt_re2,bounds=limit,nlon=xgrid,nlat=ygrid, gs=[0.005,0.005])

      그리고 3, 4번째 줄은 불필요한 내용이라 생각됩니다. 차라리 새로운 격자들을 다음과 같이 배열로 정의해주는게 더 낫습니다.

      irlat = findgen(401)*0.005+36.5
      irlon = findgen(401)*0.005+127.5

    • #1534 Reply
      chooas
      회원

      위경도는 2차원으로 만들어야 하는데
      irlat = findgen(401)*0.005+36.5
      로 하면 1차원이 되는 문제가 있습니다.

      또한 0.005로 하여도 , 가장자리가 다르게 표현됩니다.

    • #1535 Reply
      Sangwoo
      회원

      어차피 없던 격자점들에 대한 값들을 계산하기 때문에 다르게 나오는 경우들이 생길 수 밖에 없습니다. 원본 데이터의 값의 분포 또는 지점의 분포 등이 얼마나 고른가 등등 결과에 영향을 줄 수 있는 요소들은 많습니다. 격자의 간격 및 갯수 등을 다르게 조정해보면서 여러가지 경우들을 테스트해보시는게 좋을 것 같고, TRIGID나 KRIG2D 등과 같은 비슷한 성격의 함수들을 사용해보는 것도 고려해보시면 어떨까 하네요.

    • #1536 Reply
      chooas
      회원

      감사합니다^^
      많은 도움이 된것 같습니다 !!!!!

    • #1531 Reply
      Sangwoo
      회원

      만약에 맵상에서의 중첩 표출에 주안점을 둔다면 MAP_PATCH가 적당할 것 같습니다. 하지만 격자분포가 서로 다른 두 자료를 동등한 격자분포를 하도록 재조정한 후 비교하는 것이 더 중요한 경우에는 SPH_SCAT을 쓰는 것이 더 맞을 것 같네요.

      • 이 답변은 Sangwoo에 의해 10 years, 2 months 전에 수정됐습니다.
8 답변 글타래를 보이고 있습니다
'sph_scat에 대한 질문'에 답변달기
글쓴이 정보: