지도표출질문드립니다.

게시판 IDL Q&A 지도표출질문드립니다.

3 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #5531 Reply
      qrjtl5383
      회원

      세가지의 질문이 있습니다.
      1. 그림에서 그려진 데이터값(매우작게분포되어보이진않음..서울위치에있음..)의 컬러범위와 우측에 나타는 컬러바(range?)의 색이 맞지 않습니다. 어떻게 수정하면 동일하게 고칠 수 있을까요?
      2. 컬러바에서 0.00, *****의 값이 뒤에 겹쳐서 나오는데 이걸 지울 수 있을까요?
      3. grid의 숫자가 조밀하게 기재되어 이를 수정하고싶습니다.

      결과에 관한 그림은 url로 첨부하였습니다.
      https://blog.naver.com/qrjtl5383/221512266223″

      많은 조언 부탁드립니다.

      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      ;;;;;;;;;;;;;;;;; plot graph ;;;;;;;;;;;;;;;;;;;;;;;;;

      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      set_plot,’ps’ ;–>graph file type

      device,filename=’test_201711’+string(day,format='(i2.2)’)+’_’+string(tim,format='(i2.2)’)+’0000.ps’,$

      xsize=17, ysize=15, bits_per_pixel=1024,/color

      erase, 251

      !P.background=255

      !P.color=0

      !P.font=1

      ;;map_set,37.,122.0, limit=[25, 100, 50, 150], /lambert,/isotropic,color=0,$
      map_set,39.,123.0, /lambert,/isotropic,color=0,scale=200e5,$

      /noerase, charsize= 2, position=[0.05,0.06,0.8,0.89]

      loadct,23

      lv=[0.01,0.1,1,10,100,1000,10000,100000,100000000000] ;–>color intervals

      c=16+32*indgen(9)

      contour,conc[*,*,1,1],lon[*],lat[*], /overplot, c_color=c, level=lv,/cell_fill,position=[0.1,0.1,0.8,0.7]

      ;print,min(conc[*,*,1,1]), max(conc[*,*,1,1])

      ;print,total(conc[*,*,*,1])

      ;
      colorbar, position=[0.97,0.10+0.02,0.99,0.10+0.75], range=[ min(conc[*,*,1,1]), max(conc[*,*,1,1]) ], DIVISIONS=8,$

      ncolor=8, bottom=231, format='(f5.2)’, /vertical, color=0, charsize=1.5, charthick=1.

      erase, colorbar

      lv=[0.01,0.1,1,10,100,1000,10000,100000,1000000 ]

      for i=7,9-1 do begin&$

      xyouts,0.9,0.10+0.742-i*0.090,string(lv[8-i],format='(f4.2)’),/normal,color=0,charsize=1.6,charthick=1.&$

      endfor

      for i=0,7-1 do begin&$

      xyouts,0.88,0.10+0.742-i*0.090,string(lv[8-i],format='(f10.0)’),/normal,color=0,charsize=1.6,charthick=1.&$

      endfor

      ;

      loadct,0

      ;xyouts,0.03,0.955,”Cs-137 ( 2nd layer )”,/normal,color=0,charsize=2.5,charthick=1.

      xyouts,0.88,0.10+0.78,”(Microgram/m3)”,/normal,color=0,charsize=1.5,charthick=1.

      map_grid, box_axes=1, color=1, LONDEL=1, LATDEL=1, lable=10,charsize=1.5

      map_continents, /hires, /countries, /coasts, mlinethick=4.0,color=0

      device,/close

      end

    • #5532 Reply
      Jonghyuk
      회원

      colorbar 라는 라이브러리가 coyote 라이브러리라고 생각합니다. coyote 라이브러리는 한번은 업데이트 하셔야 할 것 같은데, 가장 최근 버전에서 colorbar는 cgcolorbar로 이름이 바뀌었습니다.

      David Fanning의 coyote library에서 colobar(cgcolorbar)는 DIVISION과 NCOLORS를 지정할 수 있는데, 이 때, NCOLORS=NC라고 하면, 컬러바에서 사용하는 색은 0부터 NC-1 까지의 색상을 가져옵니다. BOTTOM을 지정하면, 컬러바에서 사용하는 색은 BOTTOM값에서 BOTTOM값+NC-1 까지의 색상을 가져오게 됩니다.
      위 코드에서 사용한 것처럼, BOTTOM=231, NCOLORS=8 이면, 231, 232, 233, 234, 235, 236, 237, 238 번의 8개 색상을 가져다 씁니다. 위 코드처럼 23번 컬러테이블을 쓴다면, 231번은 좀 어두운 주황색이고, 232~238번은 모두 비슷한(조금씩 더 붉은색이 짙어지는) 주황색이 될 것입니다. 올려주신 그림의 컬러바가 그렇게 보일 것입니다.

      이에 반에 Contour에서는 C_COLOR 키워드에 c 변수에 해당하는 값을 넣어 줌으로써, 23번 컬러테이블의 전 범위를 넓게 사용하고 있습니다. 이 차이를 맞춰야 하는데, COLORBAR를 위와 같이 쓰실 계획이면, 사용하고자 하는 색상 9개를 컬러테이블에 올려 놓는 것이 좋습니다.

      LOADCT, 23, NCOLORS=10

      위와 같이 하였을 때, 23번 컬러테이블을 10개로 균등분할하여, 샘플링하고, 이를 컬러테이블 번호 0번부터 9번까지 채워 넣습니다. 0번은 검은색으로 컬러바에서 안쓸 색이기 때문에, 10개를 불러왔습니다.

      c=indgen(9)+1

      이렇게 하여 Contour에서 1번부터 9번까지의 색을 사용하도록 합니다.

      cgcolorbar, position=[0.97,0.10+0.02,0.99,0.10+0.75], DIVISIONS=8,$
      NCOLORS=8, bottom=1, format='(A1)’, /vertical, color=0, charsize=1.5, charthick=1.

      저는 과거의 colorbar 프로시저를 확인하지는 못했지만,cgcolorbar가 비슷할 것으로 생각합니다. 위와 같이 NCOLORS=8로 하고 Bottom을 1로 하여 1번부터 8번 컬러까지 사용하도록 지정합니다.

      그리고 FOMRAT='(A1)’으로 처리하면 눈금값이 출력되지 않습니다. 뒤에서 xyouts로 눈금값을 직접 출력하기 때문에, colorbar의 눈금값 출력을 막아 버리는 것이 좋겠습니다. 혹시, 유용할지 모르니, cgcolorbar 명령에, /YLOG 키워드가 있다는 것도 검토해 보십시오. 눈금값을 지수스케일로 지정합니다.

      MAP_GRID 명령을 쓸 때, LATDEL=5, LONDEL=5 로 5도 간격으로 눈금값을 표출하게 설정하면 경위도 눈금값이 겹쳐 보이지 않습니다.

    • #5536 Reply
      Jonghyuk
      회원

      xloadct, 23
      IDL> xloadct, 23
      IDL> xpalette

      xloadct, 23, ncolors=10
      IDL> xloadct, 23, ncolors=10
      IDL> xpalette

      xloadct, 23, ncolors=10, bottom=128
      IDL> xloadct, 23, ncolors=10, bottom=128
      IDL> xpalette

    • #5538 Reply
      qrjtl5383
      회원

      덕분에 IDL 프로그램 업무가 수월하게 진행되었습니다. 감사합니다.

3 답변 글타래를 보이고 있습니다
'지도표출질문드립니다.'에 답변달기
글쓴이 정보: