?? atm_corr.pro
字號:
;Made by IDL>*<IDL ---ShanDong University of Science and Technology||||張海峰|||
;Do not use it illegally .
;If something make you trouble,contacting me--->QQ 187204799
;基于LANDSTAR_TM衛星數據參數
;使用單通道或單波段數據
PRO direct_rectify_event, event
COMMON TextEditBlock, Message
COMMON airEditBlock, air;;;
COMMON air_valueEditBlock,air_value;;;;main
COMMON COS_VALUE_Block,COS_value_i
COMMON Cmax_valueEditBlock,Cmax_value
COMMON Lmax_valueEditBlock,Lmax_value
COMMON Lmin_valueEditBlock,Lmin_value
WIDGET_CONTROL, event.ID, GET_UVALUE = EventValue
CASE EventValue OF
"Angle_value" : BEGIN
WIDGET_CONTROL, event.ID, GET_VALUE = NewName
WIDGET_CONTROL, event.ID, GET_VALUE = NewName
NewName_i=float(NewName)
COS_value_i=cos(2*!Pi*NewName_i/360)
COS_value_s=string(COS_value_i)
WIDGET_CONTROL, Message, SET_VALUE = COS_value_s
END
"air": begin
WIDGET_CONTROL, event.ID, GET_VALUE = air_value_s
air_value=float(air_value_s)
END
"Cmax":begin
WIDGET_CONTROL, event.ID, GET_VALUE = Cmax_value_s
Cmax_value=float(Cmax_value_s)
END
"Lmax":begin
WIDGET_CONTROL, event.ID, GET_VALUE =Lmax_value_s
Lmax_value=float(Lmax_value_s)
END
"Lmin":begin
WIDGET_CONTROL, event.ID, GET_VALUE =Lmin_value_s
Lmin_value=float(Lmin_value_s)
END
ENDCASE
END
PRO direct_rectify,event
COMMON TextEditBlock, Message
COMMON airEditBlock, air
COMMON COS_VALUE_Block,COS_value_i;;;;;;;;;;;;;;;;;;;;;
wxy = get_screen_size()
drawx = wxy[0]
drawy = wxy[1]
MyBase = WIDGET_BASE(TITLE = '請輸入初始化參數', /COLUMN)
MyRow1 = WIDGET_BASE(MyBase, /ROW, /FRAME)
MyLabel = WIDGET_LABEL(MyRow1, VALUE = '太陽天頂角(度):')
Angle_value = WIDGET_TEXT(MyRow1, /EDITABLE, XSIZE = 31, YSIZE = 1, $
UVALUE = 'Angle_value')
MyRow2 = WIDGET_BASE(MyBase, /ROW, /FRAME)
MessageLabel = WIDGET_LABEL(MyRow2, VALUE = 'COS[a]: ')
Message = WIDGET_TEXT(MyRow2, $
VALUE = 'Enter a name and press ENTER.', $
XSIZE = 39, YSIZE = 1, UVALUE = 'MESSAGE')
MyRow3 = WIDGET_BASE(MyBase, /ROW, /FRAME)
airLabel = WIDGET_LABEL(MyRow3, VALUE = '標準大氣光學厚度:')
air = WIDGET_TEXT(MyRow3,/EDITABLE ,$
VALUE = '0.15', $
XSIZE = 29, YSIZE = 1, UVALUE = 'air')
MyRow4 = WIDGET_BASE(MyBase, /ROW, /FRAME)
CmaxLabel = WIDGET_LABEL(MyRow4, VALUE = '像元最大亮度:')
Cmax= WIDGET_TEXT(MyRow4,/EDITABLE ,$
VALUE = '', $
XSIZE = 35, YSIZE = 1, UVALUE = 'Cmax')
MyRow5 = WIDGET_BASE(MyBase, /ROW, /FRAME)
LmaxLabel = WIDGET_LABEL(MyRow5, VALUE = '探測器飽和輻射:')
Lmax= WIDGET_TEXT(MyRow5,/EDITABLE ,$
VALUE = '', $
XSIZE = 28, YSIZE = 1, UVALUE = 'Lmax')
MyRow6 = WIDGET_BASE(MyBase, /ROW, /FRAME)
LminLabel = WIDGET_LABEL(MyRow6, VALUE = '探測器最小輻射:')
Lmin= WIDGET_TEXT(MyRow6,/EDITABLE ,$
VALUE = '', $
XSIZE = 28, YSIZE = 1, UVALUE = 'Lmin')
Make_Sure=widget_button(MyBase, VALUE='開始矯正',Uvalue='Make_Sure',$
xsize=8,ysize=30,event_pro='start_rectify')
xy = widget_info(MyBase,/geo)
offsetxy = (wxy-[xy.SCR_XSIZE,xy.SCR_YSIZE])/2
widget_control,MyBase,xoffset=offsetxy[0],yoffset=offsetxy[1];;居中放置
WIDGET_CONTROL, MyBase, /REALIZE
XMANAGER, 'direct_rectify', MyBase, /NO_BLOCK;;提示循環_EVENT
END
pro start_rectify,event
COMMON TT_BLOCK,Simage
COMMON air_valueEditBlock,air_value;;;;main
COMMON COS_VALUE_Block,COS_value_i
COMMON Cmax_valueEditBlock,Cmax_value
COMMON Lmax_valueEditBlock,Lmax_value
COMMON Lmin_valueEditBlock,Lmin_value
file=dialog_pickfile(filter='*.jpg')
read_jpeg,file,image
sizeinfo=QUERY_JPEG(file, imageInfo)
imagesize=imageInfo.dimensions
re_image=reform(image);,[1,imagesize[0]*imagesize[1]])
re_imagesize=imagesize[0]*imagesize[1]
p=lonarr(re_imagesize)
T0=exp((-1)*air_value/COS_value_i)
T1=exp((-1)*air_value)
E0=256;太陽光譜輻射度;Slater提供
Eg=186.6;地球總輻射度;美國DC.Forster提供
Lp=0.62;總程輻射,DC.Forster 提供
K=(Lmax_value-Lmin_value)/Cmax_value
for i=0L,re_imagesize-1 do begin
Ls=image[i]*K+Lmin_value
P[i]=!PI*(Ls-Lp)/(T1*Eg)
ENDFOR
for j=0L,re_imagesize-1 do begin
re_image[j]=T0*p[j]
Sigmae=reform(re_image,[imagesize[1],imagesize[0]])
ENDFOR
window,1,xsize=imagesize[0],ysize=imagesize[1],title='Result Image'
TV,sigma
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pro qq
direct_rectify
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -