XYOUTS 사용 시 noclip 문제

게시판 IDL Q&A XYOUTS 사용 시 noclip 문제

태그: ,

4 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2245 Reply
      asteroid84
      회원

      우리나라 주변의 운량을 각 관측소 위치에 숫자로 표출하고 싶어서 아래와 같이 코드를 짰습니다.

      ;;——————————————————————————
      ;; Groud Cloud Amount
      MAP_SET, (map_limit[0]+map_limit[2])/2,(map_limit[1]+map_limit[3])/2 $
      ,scale=scale,charsize=2.5 $
      ,xmargin=xmargin,ymargin=ymargin,/noborder,/lambert,/iso

      MAP_CONTINENTS,/hires,/coast,color=250,thick=2
      FOR istn=0,nline-1 DO BEGIN
      stn_pos=WHERE(gts_id[istn] EQ stn_id, npos)

      IF(npos GT 0 AND npos LT 2)THEN BEGIN
      PLOTS, stn_lon[stn_pos],stn_lat[stn_pos], psym=SYMCAT(9),color=255,symsize=2,noclip=0
      IF(gts_ca[istn] LT 10 AND gts_ca[istn] GT -1)THEN BEGIN
      XYOUTS,stn_lon[stn_pos],stn_lat[stn_pos]-0.4,STRING(gts_ca[istn],F='(i1)’) $
      ,align=0.5,color=255,charsize=1.1,charthick=5,font=0,noclip=0

      ENDIF
      ENDIF
      ENDFOR ;; istn
      MAP_GRID,box=1
      ;;——————————————————————————

      PLOTS는 noclip=0을 잘 받아들여 지도영역 내에만 사용이되는데,
      XYOUTS는 noclip=0을 사용하였는데도 지도영역을 넘어선 영역에도 마구 운량값을 찍어대는군요.

      MAP_SET에서 설정된 영역 안에 대해서만 XYOUTS를 사용하려면 어떻게 해야할까요??

      추가. Q&A 게시판에 코드나 그림을 파일로 첨부할 수는 없는건가요?

      • 이 게시글은 asteroid84에 의해 9 years, 3 months 전에 수정됐습니다. 이유: 태그 추가
    • #2247 Reply
      asteroid84
      회원

      아래와 같은 코드는 XYOUTS가 지도영역 밖으로 나가지 않네요.
      궁금증이 더욱 커져갑니다. ㅠㅠ

      PRO exam_xyouts_clip

      map_limit=[30,110,50,130]
      scale=23e6
      !y.margin=[3,7]
      !x.margin=[3,3]
      ;;—————————————————————————–
      ;; noclip=default
      window,0,xs=500,ys=500

      map_set,(map_limit[0]+map_limit[2])/2,(map_limit[1]+map_limit[3])/2 $
      ,title=’NOCLIP= default’,/lambert,scale=scale

      XYOUTS,120,40,’HELLO’,charthick=2,charsize=3
      XYOUTS,120,52,’Nice to meet you’,charthick=2,charsize=3
      XYOUTS,120,29,’Bye’,charthick=2,charsize=3

      map_continents
      map_grid,box=-1

      ;;—————————————————————————–
      ;; noclip=0
      window,1,xs=500,ys=500

      map_set,(map_limit[0]+map_limit[2])/2,(map_limit[1]+map_limit[3])/2 $
      ,title=’NOCLIP: 0′,/lambert,scale=scale

      XYOUTS,120,40,’HELLO’,charthick=2,charsize=3,noclip=0
      XYOUTS,120,52,’Nice to meet you’,charthick=2,charsize=3,noclip=0
      XYOUTS,120,29,’Bye’,charthick=2,charsize=3,noclip=0

      map_continents
      map_grid,box=-1
      ;;—————————————————————————–
      END

    • #2249 Reply
      asteroid84
      회원

      질문 드렸던 위 코드는 한 창에 두 개의 그림을 그리는 것으로,
      !p.mulit=[0,2,1,0,0] 으로 설정되어 있습니다.

      결과물을 살펴보니,
      첫 번째 그림에는 지도 영역 내에서만 xyouts이 적용되었으나,
      오른편의 두 번째 그림에서는 지도 영역 밖으로 튀어나가는 것을 확인할 수 있었습니다.

      plots는 문제 없이 영역 내에서 그림이 그려지는데,
      xyouts만 저러는 이유가 뭘까요..

      • 이 답변은 asteroid84에 의해 9 years, 3 months 전에 수정됐습니다.
      • 이 답변은 asteroid84에 의해 9 years, 3 months 전에 수정됐습니다.
      • 이 답변은 asteroid84에 의해 9 years, 3 months 전에 수정됐습니다.
    • #2254 Reply
      Sangwoo
      회원

      올려주신 exam_xyouts_clip 라는 프로그램을 기준으로 말씀드리면, 현 상태에서는 MAP_SET으로 그려지는 지도의 경위도 범위가 좁아서 ‘Hello’, ‘Bye’ 모두 그래픽창 바깥에 위치하게 됩니다. 따라서 NOCLIP 설정과는 상관없이 어느 경우에든 보이지가 않습니다. 어차피 경위도 범위를 map_limit라는 이름으로 정해놓은 상태이므로 이걸 활용하는게 좋은데, 이를 위해서는 MAP_SET 명령에 LIMIT=map_limit라는 키워드를 추가하되 SCALE 키워드는 없애야 합니다. 이렇게 해서 지도의 경위도 범위를 정상적으로 설정하면, ‘Hello’, ‘Bye’ 문자들이 지도 외곽의 여백에서 NOCLIP 키워드 설정에 따라 첫번째 지도에서는 어디서든 다 나타나고 두번째 지도에서는 경위도 범위내에서만 나타난다는 것을 확인할 수 있습니다.

    • #2255 Reply
      asteroid84
      회원

      MAP_SET 명령에 limit 없이, scale만 주고, lambert 도법으로 그릴때가 가장 지도가 예뻐서 이렇게 사용하고 있었는데, 저 경우에는 limit을 사용하는 것이 좋겠군요.

      항상, 감사합니다!

4 답변 글타래를 보이고 있습니다
'XYOUTS 사용 시 noclip 문제'에 답변달기
글쓴이 정보: