게시판 답변이 생성됐습니다
-
글쓴이글
-
Sangwoo회원
만약 draw widget으로 구현한 그래픽창이 direct graphics 기반인 경우에는 DEVICE 명령의 CURSOR_STANDARD 또는 CURSOR_IMAGE와 같은 키워드를 활용하는 방법이 있습니다. 자세한 내용은 IDL 도움말에서 DEVICE 명령에 관한 내용을 찾아보시면 잘 나와있습니다.
Sangwoo회원그렇죠. 어차피 방법은 여러가지입니다. 0을 나눈 결과값에 대해서 FINITE 함수를 적용해서 그게 0이냐 1이냐를 판단함으로써 작업을 하는 방식도 되고, 아예 0으로 나눠지는 상황을 사전에 방지하는 방법도 가능합니다. 이 부분에 대한 처리방식은 프로그래머의 선택의 문제가 되겠지요.
Sangwoo회원제 생각에는 그냥 마지막의 print문 앞에서 avg_nd가 NaN인가 아닌가를 판단하고, 만약 NaN인 경우에는 avg_nd의 값을 0으로 대입해버리는 방법이 어떨까 합니다. 물론 이 과정에서 NaN이냐 아니냐를 판단할 때에는 FINITE 함수를 사용하여 그 값이 0인 경우가 NaN에 해당된다는 점만 참조하면 됩니다. FINITE 함수의 사용법에 대해서는 IDL 도움말에서 검색해보시면 자세한 내용이 나옵니다.
Sangwoo회원위의 방법으로 경위도 규칙 격자 기반의 2차원 자료를 얻은 후 지도상에 중첩하여 가시화하는 방법에 대해서는 다음 링크의 내용을 참조하시기 바랍니다.
Sangwoo회원마침 유사한 그래픽 예제를 구현하는 방법에 대하여 제 블로그에 올린 글이 있으니 이 내용을 참조하시면 좋을 것 같습니다. 링크는 아래와 같습니다.
Sangwoo회원IDL에서 구현 가능한 그래픽 샘플들은 가장 최근 버전인 8.2.2를 기준으로 한다면, IDL 도움말의 첫 화면에서 Visualize Data라는 링크 버튼을 누르면 잘 나와있습니다. 물론 이 때 나오는 페이지에서 각각의 그래픽 샘플을 클릭하면 예제코드까지 자세히 나오므로 이 내용을 참조하시기 바랍니다. 다만 예로 들어주신 PDF상의 그림은 조금 특수한 경우에 해당되기 때문에, 이와 똑같은 방식의 그림을 구현하는 예제코드는 없습니다. 물론 기본적인 형태는 PLOT, COLORBAR 등의 그래픽 함수로 구현은 됩니다. 다만 X 및 Y축의 불규칙한 간격의 선들은 POLYLINE같은 함수로 직접 그려줘야 할 것 같고, 일부 사각형 셀들의 색을 채우는 것은 POLYGON 함수를 사용해야 할 것으로 보입니다.
Sangwoo회원딱히 예제코드가 있는 것은 아니지만, 디렉토리의 설정을 위해서는 DIALOG_PICKFILE이라는 함수를 사용하면 됩니다. 버튼을 눌렀을 때 그 이벤트를 처리하는 루틴내에서 이 함수를 사용하여 사용자가 마우스 클릭으로 폴더를 설정하도록 하고, 이 폴더 경로를 돌려받으면 그 정보가 담긴 문자값을 Text Widget에 대하여 SET_VALUE 키워드를 사용해서 표시해주는 방식이면 될 것 같습니다.
Sangwoo회원제가 정확히 이해한 것인지는 모르겠지만, 이미지를 구성하는 모든 픽셀들에 대하여 반복문의 형태로 INSIDE 함수를 적용해서 그게 1이냐 0이냐를 판단하고 1인 경우의 좌표들만 따로 모으는 방식으로 작업을 하면 되지 않을까 생각은 듭니다.
Sangwoo회원IDL의 기본 라이브러리에는 이런 역할을 하는 함수는 없지만, 대신 Coyote 라이브러리에 있는 INSIDE라는 함수를 사용하시면 될 것 같습니다. 이 라이브러리는 아래 링크에서 다운로드받아서 설치하면 됩니다.
Sangwoo회원원래 작성하셨던 코드에서 이 부분의 이벤트 처리를 어떻게 하셨는지 알려주시면 좀 더 구체적인 도움을 드릴 수 있을 것 같습니다.
Sangwoo회원이미 여러번 보고가 되어서 해결책이 제시되어 있는 문제더군요. 아래 링크를 보시면 해결책을 찾으실 수 있을겁니다. 저도 이렇게 해보니 잘 되네요.
http://www.exelisvis.com/Support/HelpArticleDetail/ArticleId/3947.aspx
Sangwoo회원아마도 CURSOR 명령이 최근 Mac OS에서 사용되는 X11 2.7.4와 뭔가 문제가 있는 것 아닌가 생각이 듭니다. 저도 Mac에서 테스트해보니까 CURSOR 명령 자체가 제대로 기능을 못하는 것 같네요. 비슷한 이슈가 예전에도 있었다가 해결되었다가를 반복한 적이 있었던 것으로 기억이 나긴 합니다. 어쨌든 이 문제에 관해서는 본사에 한번 문의를 넣어보고 알려드리겠습니다.
Sangwoo회원에어로넷 자료라고 하는 것이 어떤 형식의 자료인지 모르겠는데, 일종의 텍스트 자료인가요? 기본적으로는 전체 데이터를 읽은 다음에 필요한 열에 해당되는 배열만 갖고 작업을 하는 것이 좋을겁니다. 다만 자료의 형태를 알아야 더 구체적인 답을 드릴 수 있겠지요. 만약 텍스트 형식의 파일이라면, 예전 IDL User 웹사이트의 IDL Tips 게시판에 있는 관련 게시물들을 참조하시면 도움이 될 것 같습니다.
-
글쓴이글