정보
-
업무명 : 그라즈 아스키 (ASCII) 형식인 복사전달모델 (RTM) 결과를 이용한 가시화
-
작성자 : 이상호
-
작성일 : 2019-09-03
-
설 명 :
-
수정이력 :
내용
[특징]
-
복사전달모델 결과를 이해하기 위해 가시화 도구가 필요하며 이 프로그램은 이러한 목적을 달성하기 위해 고안된 소프트웨어
[기능]
-
아스키 형식인 입력 자료를 이용하여 매핑
-
컬러바 생성
[활용 자료]
-
자료 : 복사전달모델 결과
-
기간 : 2015년 04월 01일 - 2015년 04월 01일
-
해상도 : 매 6시간
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
GrADS 가시화에 필요한 라이브러리를 동일 디렉터리 위치
-
소스 코드를 실행 (csh Visualization_Using_ASCII_Format_of_Radiation_Transfer_Model_Result.csh)
-
가시화 결과를 확인
[사용 OS]
-
Linux
[사용 언어]
-
GrADS
-
ShellScript (csh)
소스 코드
[명세]
-
매핑을 위한 라이브러리
function main(args)
fname1=subwrd(args,1)
latco=subwrd(args,2)
lonco=subwrd(args,3)
valco=subwrd(args,4)
colco=subwrd(args,5)
* xi=subwrd(args,5)
* xd=subwrd(args,6)
color='14 4 13 3 10 7 12 8 2 6'
palgrey()
'q dims'
rec2=sublin(result,2)
rec3 =sublin(result,3)
xlon0=subwrd(rec2,6)
xlon1=subwrd(rec2,8)
ylat0=subwrd(rec3,6)
ylat1=subwrd(rec3,8)
ret=read(fname1)
'q ll2xy 'xlon0' 'ylat0
x0=subwrd(result,1)
y0=subwrd(result,2)
'q ll2xy 'xlon1' 'ylat1
x1=subwrd(result,1)
y1=subwrd(result,2)
xs=x1-x0
ys=y1-y0
dx2=xs*0.05/(xlon1-xlon0)
dy2=ys*0.05/(ylat1-ylat0)
while (1)
ret = read(fname1)
rc = sublin(ret,1)
if (rc>0)
if (rc!=2)
say 'File I/O Error'
return
endif
break
endif
rec = sublin(ret,2)
time= subwrd(rec,valco)
ylat= subwrd(rec,latco)
xlon= subwrd(rec,lonco)
xco=subwrd(rec,colco)
if (xlon < 0);xlon=xlon+360;endif;
if (xlon >= xlon0 & xlon <= xlon1 & ylat >= ylat0 & ylat <= ylat1)
x=x0+xs*(xlon-xlon0)/(xlon1-xlon0)
y=y0+ys*(ylat-ylat0)/(ylat1-ylat0)
if (time < 0.000 ); xcol= 16 ;endif;
if (time >= 0.000 & time < 10.000 ); xcol= 17 ;endif;
if (time >= 10.000 & time < 20.000 ); xcol= 18 ;endif;
if (time >= 20.000 & time < 30.000 ); xcol= 19 ;endif;
if (time >= 30.000 & time < 40.000 ); xcol= 20 ;endif;
if (time >= 40.000 & time < 50.000 ); xcol= 21 ;endif;
if (time >= 50.000 & time < 60.000 ); xcol= 22 ;endif;
if (time >= 60.000 & time < 70.000 ); xcol= 23 ;endif;
if (time >= 70.000 & time < 80.000 ); xcol= 24 ;endif;
if (time >= 80.000 & time < 90.000 ); xcol= 25 ;endif;
if (time >= 90.000 & time < 100.000 ); xcol= 26 ;endif;
if (time >= 100.000 & time < 110.000 ); xcol= 27 ;endif;
if (time >= 110.000 & time < 120.000 ); xcol= 28 ;endif;
if (time >= 120.000 & time < 130.000 ); xcol= 29 ;endif;
if (time >= 130.000 & time < 140.000 ); xcol= 30 ;endif;
if (time >= 140.000 & time < 150.000 ); xcol= 31 ;endif;
if (time >= 150.000 & time < 160.000 ); xcol= 32 ;endif;
if (time >= 160.000 & time < 170.000 ); xcol= 33 ;endif;
if (time >= 170.000 & time < 180.000 ); xcol= 34 ;endif;
if (time >= 180.000 & time < 190.000 ); xcol= 35 ;endif;
if (time >= 190.000 & time < 200.000 ); xcol= 36 ;endif;
if (time >= 200.000 & time < 210.000 ); xcol= 37 ;endif;
if (time >= 210.000 & time < 220.000 ); xcol= 38 ;endif;
if (time >= 220.000 & time < 230.000 ); xcol= 39 ;endif;
if (time >= 230.000 & time < 240.000 ); xcol= 40 ;endif;
if (time >= 240.000 & time < 250.000 ); xcol= 41 ;endif;
if (time >= 250.000 & time < 260.000 ); xcol= 42 ;endif;
if (time >= 260.000 & time < 270.000 ); xcol= 43 ;endif;
if (time >= 270.000 & time < 280.000 ); xcol= 44 ;endif;
if (time >= 280.000 & time < 290.000 ); xcol= 45 ;endif;
if (time >= 290.000 & time < 300.000 ); xcol= 46 ;endif;
if (time >= 300.000 & time < 310.000 ); xcol= 47 ;endif;
if (time >= 310.000 & time < 320.000 ); xcol= 48 ;endif;
if (time >= 320.000 & time < 330.000 ); xcol= 49 ;endif;
if (time >= 330.000 & time < 340.000 ); xcol= 50 ;endif;
if (time >= 340.000 & time < 350.000 ); xcol= 51 ;endif;
if (time >= 350.000 & time < 360.000 ); xcol= 52 ;endif;
if (time >= 360.000 & time < 370.000 ); xcol= 53 ;endif;
if (time >= 370.000 & time < 380.000 ); xcol= 54 ;endif;
if (time >= 380.000 & time < 390.000 ); xcol= 55 ;endif;
if (time >= 390.000 & time < 400.000 ); xcol= 56 ;endif;
if (time >= 400.000 & time < 410.000 ); xcol= 57 ;endif;
if (time >= 410.000 & time < 420.000 ); xcol= 58 ;endif;
if (time >= 420.000 & time < 430.000 ); xcol= 59 ;endif;
if (time >= 430.000 & time < 440.000 ); xcol= 60 ;endif;
if (time >= 440.000 & time < 450.000 ); xcol= 61 ;endif;
if (time >= 450.000 & time < 460.000 ); xcol= 62 ;endif;
if (time >= 460.000 & time < 470.000 ); xcol= 63 ;endif;
if (time >= 470.000 & time < 480.000 ); xcol= 64 ;endif;
if (time >= 480.000 & time < 490.000 ); xcol= 65 ;endif;
if (time >= 490.000 & time < 500.000 ); xcol= 66 ;endif;
if (time >= 500.000 & time < 510.000 ); xcol= 67 ;endif;
if (time >= 510.000 & time < 520.000 ); xcol= 68 ;endif;
if (time >= 520.000 & time < 530.000 ); xcol= 69 ;endif;
if (time >= 530.000 & time < 540.000 ); xcol= 70 ;endif;
if (time >= 540.000 & time < 550.000 ); xcol= 71 ;endif;
if (time >= 550.000 & time < 560.000 ); xcol= 72 ;endif;
if (time >= 560.000 & time < 570.000 ); xcol= 73 ;endif;
if (time >= 570.000 & time < 580.000 ); xcol= 74 ;endif;
if (time >= 580.000 & time < 590.000 ); xcol= 75 ;endif;
if (time >= 590.000 & time < 600.000 ); xcol= 76 ;endif;
if (time >= 600.000 & time < 610.000 ); xcol= 77 ;endif;
if (time >= 610.000 & time < 620.000 ); xcol= 78 ;endif;
if (time >= 620.000 & time < 630.000 ); xcol= 79 ;endif;
if (time >= 630.000 & time < 640.000 ); xcol= 80 ;endif;
if (time >= 640.000 & time < 650.000 ); xcol= 81 ;endif;
if (time >= 650.000 & time < 660.000 ); xcol= 82 ;endif;
if (time >= 660.000 & time < 670.000 ); xcol= 83 ;endif;
if (time >= 670.000 & time < 680.000 ); xcol= 84 ;endif;
if (time >= 680.000 & time < 690.000 ); xcol= 85 ;endif;
if (time >= 690.000 & time < 700.000 ); xcol= 86 ;endif;
if (time >= 700.000 & time < 710.000 ); xcol= 87 ;endif;
if (time >= 710.000 & time < 720.000 ); xcol= 88 ;endif;
if (time >= 720.000 & time < 730.000 ); xcol= 89 ;endif;
if (time >= 730.000 & time < 740.000 ); xcol= 90 ;endif;
if (time >= 740.000 & time < 750.000 ); xcol= 91 ;endif;
if (time >= 750.000 & time < 760.000 ); xcol= 92 ;endif;
if (time >= 760.000 & time < 770.000 ); xcol= 93 ;endif;
if (time >= 770.000 & time < 780.000 ); xcol= 94 ;endif;
if (time >= 780.000 & time < 790.000 ); xcol= 95 ;endif;
if (time >= 790.000 & time < 800.000 ); xcol= 96 ;endif;
if (time >= 800.000 & time < 810.000 ); xcol= 97 ;endif;
if (time >= 810.000 & time < 820.000 ); xcol= 98 ;endif;
if (time >= 820.000 & time < 830.000 ); xcol= 99 ;endif;
if (time >= 830.000 & time < 840.000 ); xcol=100 ;endif;
if (time >= 840.000 & time < 850.000 ); xcol=101 ;endif;
if (time >= 850.000 & time < 860.000 ); xcol=102 ;endif;
if (time >= 860.000 & time < 870.000 ); xcol=103 ;endif;
if (time >= 870.000 & time < 880.000 ); xcol=104 ;endif;
if (time >= 880.000 & time < 890.000 ); xcol=105 ;endif;
if (time >= 890.000 & time < 900.000 ); xcol=106 ;endif;
if (time >= 900.0 ); xcol= 199 ;endif;
** xcl=color2(time,xi,xd)
** say xcl
** xcl=subwrd(color,xcol)
*
*
'set line 'xcol
* 'set line 'xco
'draw recf 'x-dx2' 'y-dy2' 'x+dx2' 'y+dy2
* 'draw recf 'x'-'dx2' 'y'-'dy2' 'x'+'dx2' 'y'+'dy2
* 'draw mark 3 'x' 'y' 0.1'
endif
endwhile
return
function palgrey()
***************** Rainbow ********************
* 13 color
*
*'set rgb 16 64 64 64'
*
*'set rgb 17 240 0 130'
*'set rgb 18 250 60 60'
*'set rgb 19 240 130 40'
*'set rgb 20 230 175 45'
*'set rgb 21 230 220 50'
*'set rgb 22 160 230 50'
*'set rgb 23 0 220 0'
*'set rgb 24 0 210 140'
*'set rgb 25 0 200 200'
*'set rgb 26 0 160 255'
*'set rgb 27 30 60 255'
*'set rgb 28 130 0 220'
*'set rgb 29 160 0 200'
*
*'set rgb 99 255 255 255'
***************** KMA Radar ********************
* color 30
*
*'set rgb 16 64 64 64'
*
*'set rgb 17 135 217 255'
*'set rgb 18 62 193 255'
*'set rgb 19 7 171 255'
*'set rgb 20 0 141 255'
*'set rgb 21 0 119 255'
*'set rgb 22 105 252 105'
*'set rgb 23 30 242 105'
*'set rgb 24 0 213 0'
*'set rgb 25 0 164 0'
*'set rgb 26 0 128 0'
*'set rgb 27 255 241 111'
*'set rgb 28 255 226 86'
*'set rgb 29 255 208 57'
*'set rgb 30 255 188 30'
*'set rgb 31 255 170 9'
*'set rgb 32 255 156 0'
*'set rgb 33 255 139 27'
*'set rgb 34 255 128 81'
*'set rgb 35 255 110 110'
*'set rgb 36 246 94 103'
*'set rgb 37 232 74 86'
*'set rgb 38 217 52 62'
*'set rgb 39 201 31 37'
*'set rgb 40 188 13 15'
*'set rgb 41 179 0 0'
*'set rgb 42 197 125 255'
*'set rgb 43 194 62 255'
*'set rgb 44 173 7 255'
*'set rgb 45 146 0 255'
*'set rgb 46 127 0 191'
*
*'set rgb 99 255 255 255'
************* Rainbow *************************
* 39 color
*'set rgb 16 64 64 64'
*
*'set rgb 17 153 102 255'
*'set rgb 18 131 87 255'
*'set rgb 19 109 73 255'
*'set rgb 20 87 58 255'
*'set rgb 21 66 44 255'
*'set rgb 22 44 29 255'
*'set rgb 23 0 0 255'
*'set rgb 24 0 72 255'
*'set rgb 25 0 117 255'
*'set rgb 26 0 156 255'
*'set rgb 27 0 192 255'
*'set rgb 28 0 213 255'
*'set rgb 29 0 232 255'
*'set rgb 30 0 246 255'
*'set rgb 31 0 255 249'
*'set rgb 32 0 255 213'
*'set rgb 33 0 255 193'
*'set rgb 34 0 255 159'
*'set rgb 35 0 255 126'
*'set rgb 36 0 255 77'
*'set rgb 37 0 255 15'
*'set rgb 38 50 255 0'
*'set rgb 39 114 255 0'
*'set rgb 40 152 255 0'
*'set rgb 41 181 255 0'
*'set rgb 42 227 255 0'
*'set rgb 43 243 255 0'
*'set rgb 44 255 253 0'
*'set rgb 45 255 232 0'
*'set rgb 46 255 211 0'
*'set rgb 47 255 189 0'
*'set rgb 48 255 168 0'
*'set rgb 49 255 146 0'
*'set rgb 50 255 124 0'
*'set rgb 51 255 102 0'
*'set rgb 52 255 87 0'
*'set rgb 53 255 73 0'
*'set rgb 54 255 58 0'
*'set rgb 55 255 29 0'
*'set rgb 56 255 0 0'
*
*'set rgb 99 255 255 255'
*
************* Diff ****************************
* 37 color
*
*'set rgb 16 0 0 0'
*
*'set rgb 17 0 0 255'
*'set rgb 18 38 38 255'
*'set rgb 19 51 51 255'
*'set rgb 20 63 63 255'
*'set rgb 21 76 76 255'
*'set rgb 22 89 89 255'
*'set rgb 23 102 102 255'
*'set rgb 24 114 114 255'
*'set rgb 25 127 127 255'
*'set rgb 26 140 140 255'
*'set rgb 27 153 153 255'
*'set rgb 28 165 165 255'
*'set rgb 29 178 178 255'
*'set rgb 30 191 191 255'
*'set rgb 31 204 204 255'
*'set rgb 32 216 216 255'
*'set rgb 33 229 229 255'
*'set rgb 34 242 242 255'
*'set rgb 35 255 255 255'
*'set rgb 36 255 243 243'
*'set rgb 37 255 230 230'
*'set rgb 38 255 217 217'
*'set rgb 39 255 205 205'
*'set rgb 40 255 192 192'
*'set rgb 41 255 179 179'
*'set rgb 42 255 166 166'
*'set rgb 43 255 154 154'
*'set rgb 44 255 141 141'
*'set rgb 45 255 128 128'
*'set rgb 46 255 115 115'
*'set rgb 47 255 102 102'
*'set rgb 48 255 90 90'
*'set rgb 49 255 77 77'
*'set rgb 50 255 64 64'
*'set rgb 51 255 51 51'
*'set rgb 52 255 38 38'
*'set rgb 53 255 0 0'
*
*'set rgb 99 255 255 255'
************** Forest ****************
* 65 color
*
*'set rgb 16 64 64 64'
*
*'set rgb 17 0 0 30'
*'set rgb 18 5 26 2'
*'set rgb 19 10 32 4'
*'set rgb 20 15 38 6'
*'set rgb 21 20 44 8'
*'set rgb 22 25 50 10'
*'set rgb 23 30 56 12'
*'set rgb 24 35 62 14'
*'set rgb 25 40 68 16'
*'set rgb 26 45 74 18'
*'set rgb 27 50 80 20'
*'set rgb 28 55 86 22'
*'set rgb 29 60 92 24'
*'set rgb 30 65 98 26'
*'set rgb 31 70 104 28'
*'set rgb 32 75 110 30'
*'set rgb 33 80 116 32'
*'set rgb 34 85 122 34'
*'set rgb 35 90 128 36'
*'set rgb 36 95 134 38'
*'set rgb 37 100 140 40'
*'set rgb 38 105 146 42'
*'set rgb 39 110 152 44'
*'set rgb 40 115 158 46'
*'set rgb 41 120 164 48'
*'set rgb 42 125 170 50'
*'set rgb 43 130 176 52'
*'set rgb 44 135 182 54'
*'set rgb 45 140 188 56'
*'set rgb 46 145 194 58'
*'set rgb 47 150 200 60'
*'set rgb 48 155 206 62'
*'set rgb 49 255 250 110'
*'set rgb 50 249 238 98'
*'set rgb 51 243 226 86'
*'set rgb 52 237 214 74'
*'set rgb 53 231 202 62'
*'set rgb 54 225 190 50'
*'set rgb 55 219 178 38'
*'set rgb 56 213 166 26'
*'set rgb 57 207 154 14'
*'set rgb 58 201 142 2'
*'set rgb 59 195 130 0'
*'set rgb 60 189 118 0'
*'set rgb 61 183 106 0'
*'set rgb 62 177 94 0'
*'set rgb 63 171 82 0'
*'set rgb 64 165 70 0'
*'set rgb 65 159 58 0'
*'set rgb 66 153 46 0'
*'set rgb 67 147 34 0'
*'set rgb 68 141 22 0'
*'set rgb 69 135 10 0'
*'set rgb 70 129 0 0'
*'set rgb 71 123 0 0'
*'set rgb 72 117 0 0'
*'set rgb 73 111 0 0'
*'set rgb 74 105 0 0'
*'set rgb 75 99 0 0'
*'set rgb 76 93 0 0'
*'set rgb 77 87 0 0'
*'set rgb 78 81 0 0'
*'set rgb 79 75 0 0'
*'set rgb 80 69 0 0'
*'set rgb 81 20 0 0'
*
*'set rgb 99 255 255 255'
*
************** Rainbow [Red ~ Blue] ****************
* color 100
'set rgb 16 64 64 64'
'set rgb 17 0 0 130'
'set rgb 18 0 0 134'
'set rgb 19 0 0 146'
'set rgb 20 0 0 154'
'set rgb 21 0 0 166'
'set rgb 22 0 0 174'
'set rgb 23 0 0 186'
'set rgb 24 0 0 198'
'set rgb 25 0 0 206'
'set rgb 26 0 0 218'
'set rgb 27 0 0 226'
'set rgb 28 0 0 238'
'set rgb 29 0 0 250'
'set rgb 30 0 0 254'
'set rgb 31 0 11 254'
'set rgb 32 0 19 254'
'set rgb 33 0 31 254'
'set rgb 34 0 39 254'
'set rgb 35 0 51 254'
'set rgb 36 0 63 254'
'set rgb 37 0 71 254'
'set rgb 38 0 83 254'
'set rgb 39 0 91 254'
'set rgb 40 0 103 254'
'set rgb 41 0 115 254'
'set rgb 42 0 123 254'
'set rgb 43 0 134 254'
'set rgb 44 0 142 254'
'set rgb 45 0 154 254'
'set rgb 46 0 162 254'
'set rgb 47 0 174 254'
'set rgb 48 0 186 254'
'set rgb 49 0 194 254'
'set rgb 50 0 206 254'
'set rgb 51 0 214 254'
'set rgb 52 0 226 254'
'set rgb 53 0 238 254'
'set rgb 54 0 246 254'
'set rgb 55 0 254 254'
'set rgb 56 7 254 246'
'set rgb 57 19 254 234'
'set rgb 58 31 254 222'
'set rgb 59 39 254 214'
'set rgb 60 51 254 202'
'set rgb 61 59 254 194'
'set rgb 62 71 254 181'
'set rgb 63 79 254 174'
'set rgb 64 91 254 162'
'set rgb 65 103 254 150'
'set rgb 66 111 254 142'
'set rgb 67 123 254 130'
'set rgb 68 130 254 123'
'set rgb 69 142 254 111'
'set rgb 70 154 254 99'
'set rgb 71 162 254 91'
'set rgb 72 174 254 79'
'set rgb 73 182 254 71'
'set rgb 74 194 254 59'
'set rgb 75 202 254 51'
'set rgb 76 214 254 39'
'set rgb 77 226 254 27'
'set rgb 78 234 254 19'
'set rgb 79 246 254 7'
'set rgb 80 254 254 0'
'set rgb 81 254 242 0'
'set rgb 82 254 230 0'
'set rgb 83 254 222 0'
'set rgb 84 254 210 0'
'set rgb 85 254 202 0'
'set rgb 86 254 190 0'
'set rgb 87 254 178 0'
'set rgb 88 254 170 0'
'set rgb 89 254 158 0'
'set rgb 90 254 150 0'
'set rgb 91 254 138 0'
'set rgb 92 254 130 0'
'set rgb 93 254 119 0'
'set rgb 94 254 107 0'
'set rgb 95 254 99 0'
'set rgb 96 254 87 0'
'set rgb 97 254 79 0'
'set rgb 98 254 67 0'
'set rgb 99 254 55 0'
'set rgb 100 254 47 0'
'set rgb 101 254 35 0'
'set rgb 102 254 27 0'
'set rgb 103 254 15 0'
'set rgb 104 254 7 0'
'set rgb 105 249 0 0'
'set rgb 106 236 0 0'
'set rgb 107 227 0 0'
'set rgb 108 214 0 0'
'set rgb 109 205 0 0'
'set rgb 110 192 0 0'
'set rgb 111 179 0 0'
'set rgb 112 170 0 0'
'set rgb 113 157 0 0'
'set rgb 114 148 0 0'
'set rgb 115 135 0 0'
'set rgb 116 130 0 0'
'set rgb 199 0 0 0'
return
-
컬러바 생성을 위한 라이브러리
function colorbar (args)
vert=subwrd(args,1)
xmid=subwrd(args,2)
ymid=subwrd(args,3)
barw=subwrd(args,4)
sfc=subwrd(args,5)
xsiz=subwrd(args,6)
ysiz=subwrd(args,7)
col1=subwrd(args,8)
col2=subwrd(args,9)
val1=subwrd(args,10)
val2=subwrd(args,11)
cl1=subwrd(args,12)
cl2=subwrd(args,13)
cli=subwrd(args,14)
dum2=cli
if (cli<0) ;dum2=cli*-1;endif
dum1=cl2-cl1
if (cl1>cl2);dum1=cl1-cl2;endif
blnum=dum1/dum2+1
* col1 & col2 : should be determined when dot-alb.f
* (min and max # of color scale)
* val1 & val2 : actual maginitude corresponding colors, col1 & col2
* if you set alb=0 to col#=40, and set alb=1.0 to col#=85, then
* val1=0, val2=1, col1=40, col2=85
* cl1=val1, cl2=val2, I will change later,
* cli=interval of # under colorbar
cnum=col2-col1+1
stroff=0.05*sfc
strxsiz=0.12*sfc
strysiz=0.13*sfc
*
* logic for setting the bar orientation with user overides
*
if(vert = 0) ; vchk = 0 ; endif
if(vert = 1) ; vchk = 1 ; endif
*
* vertical bar
*
if (vchk = 1 )
ywid = ysiz / cnum
xl = xmid - barw/2
xr = xmid + barw/2
yb = ymid-ysiz/2
y1 = yb
vert = 1
else
*
* horizontal bar
*
xwid = xsiz / cnum
yt = ymid + barw/2
yb = ymid - barw/2
xl = xmid-xsiz/2
x1 = xl
'set string 1 tc 5'
vert = 0
endif
*
* Plot colorbar
*
num = 1
while (num<=cnum)
col = col1-1+num
if (vert)
yt = yb + ywid
else
xr = xl + xwid
endif
'set line 'col
'draw recf 'xl' 'yb' 'xr' 'yt
num = num + 1
if (vert); yb = yt;
else; xl = xr; endif;
endwhile
bli = 1
'set strsiz 'strxsiz' 'strysiz
if (vert)
'set string 1 l 5'
cl = cl1
yp=y1 + ywid
xp=xr+stroff
yd = (ysiz - 2*ywid)/dum1*dum2
while (bli <= blnum)
'draw string 'xp' 'yp' 'cl
cl = cl + cli
yp = yp + yd
bli=bli+1
endwhile
else
'set string 1 tc 5'
xp=x1 + xwid
cl = cl1
yp=yb-stroff
xd = (xsiz - 2*xwid)/dum1*dum2
while (bli <= blnum)
'draw string 'xp' 'yp' 'cl
cl = cl + cli
xp = xp + xd
bli=bli+1
endwhile
endif
return
-
가시화
#!/bin/csh
#rm -rf FIG/*
set a = `ls DATA/2013??????`
foreach fn ($a)
set fn2 = `echo $fn | cut -c 6-15`
set yy = `echo $fn | cut -c 6-9`
set mm = `echo $fn | cut -c 10-11`
set dd = `echo $fn | cut -c 12-13`
set tt = `echo $fn | cut -c 14-15`
set fn3 = `echo ${yy}.${mm}.${dd} ${tt}UTC`
paste DATA/Geo.dat DATA/$fn2 > fort.1
cat >! 2.exec << EOF
reinit
open GrADS/Map.ctl
enable print 2.gx
set font 5
set vpage 0 8.5 0 11
set parea 0 8.5 2.0 10.0
set mpdraw off
set xlopts 1 5.5 0.15
set ylopts 1 5.5 0.15
set lat 31. 45.
set lon 121. 135.5
set cmin 9999
set cint 2
set xlint 2.0
set ylint 2.0
set grid on
set grads off
draw title $fn3 [Clear]
set strsiz 0.15 0.15
draw string 3.5 1.4 Surface Solar Radiation [Wm\`a-2\`n]
d t
run GrADS/Library_For_Mapping_ASCII_Format_File.gs fort.1 1 2 3 3
run GrADS/Library_For_Creating_Colorbar_From_ASCII_Format_File.gs 0 4.25 1.0 0.28 1.1 8.0 1.0 17 116 0 900 0 900 100
*run GrADS/Library_For_Creating_Colorbar_From_ASCII_Format_File.gs 1 8.0 6.0 0.25 1.0 1.0 8.0 16 116 0 900 0 900 50
set rgb 116 0 0 0
draw shp GrADS/Map/GSHHG/GSHHS_shp/f/GSHHS_f_L1.shp
*draw shp GrADS/Map/KOR_adm/KOR_adm0.shp
*draw shp GrADS/Map/CHN_adm/CHN_adm0.shp
*draw shp GrADS/Map/PRK_adm/PRK_adm0.shp
*draw shp GrADS/Map/JPN_adm/JPN_adm0.shp
print
disable print
!gxps -c -i 2.gx -o 2.ps
quit
EOF
grads -bpc 'exec 2.exec'
convert 2.ps 2.gif
#display 2.gif
mv -f 2.gif FIG/${fn2}_SFC.gif
end
rm -f 2.ps 2.gx
[GitHub Gist]
-
매핑을 위한 라이브러리
-
컬러바 생성을 위한 라이브러리
-
가시화
결과
-
복사전달모델 결과를 이용한 가시화
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'프로그래밍 언어 > GrADS' 카테고리의 다른 글
[GrADS] 그라즈 컬러 테이블 및 팔레트 소개 (0) | 2020.04.07 |
---|---|
[GrADS, ShellScript] 그라즈 HDF 형식인 Terra/MODIS 및 Aqua/MODIS 자료를 이용한 에어로졸 광학두께 가시화 (0) | 2019.09.22 |
[GrADS, ShellScript] 그라즈 NetCDF 형식인 NOAA 월평균 해수면 온도 자료를 이용한 가시화 (0) | 2019.09.07 |
[GrADS, ShellScript] 그라즈 Grib 형식인 ECMWF 모델 결과를 이용한 가시화 (0) | 2019.09.07 |
[GrADS, ShellScript] 그라즈 중규모 기상모델 (WRF ARW)을 이용한 가시화 (0) | 2019.09.02 |
최근댓글