⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atm_corr.pro

📁 利用IDL进行遥感图像的大气校正
💻 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 + -