- This topic has 9개 답변, 3명 참여, and was last updated 10 years, 2 months 전에 by chooas.
-
글쓴이글
-
-
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]) -
Jonghyuk회원
데이터의 촘촘한 정도에 따라 외곽은 원치 않는 결과가 나올 수 있습니다. 인터폴레이션 범위(bounds)를 좀 줄여 보는 방법이 어떨까요? 그런데 bounds=limit 설정에서 limit 변수가 보이지 않습니다.
irlat과 irlon은 굳이 계산하실 필요는 없을 것 같습니다. -
chooas회원
limit=[lonmin2,latmin2,lonmax2,latmax2]
이런식으로 되어있습니다. 이정도 인데도 더 좁혀야 하나요??ㅜㅜ
테두리에 원치 않는 결과 때문에 sph_scat함수를 못쓰는거 아닌가 합니다..ㅠㅠ또한 제가 map_image로 표현을 하는데,
irlat와 irlon을 구하지않으면 어떻게 위경도 값을 입력하죠?? -
Sangwoo회원
불규칙 격자 분포를 하는 자료들을 맵상에 중첩 표출할 경우에는 MAP_PATCH라는 함수를 사용하는 것이 효과적입니다. 제가 예전에 제 블로그에 이와 관련된 내용을 올린 적이 있습니다. 아래 링크의 내용을 한번 참조해보시면 어떨까 합니다.
-
chooas회원
답변 감사합니다 !!
제가 sph_scat함수를 사용한이유는
두개의 자료가 있는데요 !
두 자료다 제가 원하는 위경도가 있는 데이터 이나 약간의 차이가 있습니다.
즉, 두개 자료의 배열이 2차원으로 서로다릅니다.
예) 1200,1000 과 1100,1000 이런식으로 되어있다는 겁니다.
이런 데이터의 비슷한 위경도에 있는 값들을 “/”어서 비를 보고자 하는 문제인데,이러한 문제를 map_patch로 가능하단 말씀이신가요??
-
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 -
chooas회원
위경도는 2차원으로 만들어야 하는데
irlat = findgen(401)*0.005+36.5
로 하면 1차원이 되는 문제가 있습니다.또한 0.005로 하여도 , 가장자리가 다르게 표현됩니다.
-
Sangwoo회원
어차피 없던 격자점들에 대한 값들을 계산하기 때문에 다르게 나오는 경우들이 생길 수 밖에 없습니다. 원본 데이터의 값의 분포 또는 지점의 분포 등이 얼마나 고른가 등등 결과에 영향을 줄 수 있는 요소들은 많습니다. 격자의 간격 및 갯수 등을 다르게 조정해보면서 여러가지 경우들을 테스트해보시는게 좋을 것 같고, TRIGID나 KRIG2D 등과 같은 비슷한 성격의 함수들을 사용해보는 것도 고려해보시면 어떨까 하네요.
-
chooas회원
감사합니다^^
많은 도움이 된것 같습니다 !!!!!
-
-
글쓴이글