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

📄 envisat_read_lonlat.pro

📁 用idl开发的实现显示卫星图片在地球上位置的程序
💻 PRO
字号:
;$
; NAME    :
;   ENVISAt_read_lonlat
;
; PURPOSE :
;   获得ENVISAt文件四个角点的经纬度范围
;
; CATEGORY:
;   read data
; AUTHOR  :
;   QQz(Xinyuan QU)
;   E-mail: qqzwind@gmail.com
;   BLog  : www.qqzwind.cn / hi.baidu.blog/qqzwind
;
; CALLING SEQUENCE:
;    result = ENVISAt_read_lonlat(filename,leftup=leftup,rightup=rightup,leftdown=leftdown,rightdown=rightdown)
;
; MODIFICATION HISTORY:
;   Written by: QQz, 2007-9-13
;$
Function ENVIsat_read_lonlat,file,leftup=leftup,rightup=rightup,leftdown=leftdown,rightdown=rightdown
	;
	compile_opt STRICTARR
	;
	Catch, error
	IF error NE 0 THEN BEGIN
	   Catch, /Cancel
	   ;ok = Dialog_Message(!Error_State.Msg)
	   print,'Read ENVIsat lonlat error!'
	   RETURN,0
	ENDIF
	;
	if ~file_test(file) then return,0
	;
	openr,lun,file,/get_lun
	;
	str=''
	find=0
	mapPts=fltarr(2,6)
	;
	while not eof(lun) and find lt 8 do begin
       readf,lun,str
       ;
       ;左下右下经纬度坐标
       ;
       pos=strpos(strupcase(str),'FIRST_NEAR_LAT=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[0,0]=float(strmid(str,newpos+2,10))
          find=find+1
          ;
          leftdown_lat = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
     	pos=strpos(strupcase(str),'FIRST_NEAR_LONG=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[1,0]=float(strmid(str,newpos+2,10))
           find=find+1
          ;
           leftdown_lon = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
       pos=strpos(strupcase(str),'FIRST_FAR_LAT=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[0,2]=float(strmid(str,newpos+2,10))
          find=find+1
          ;
          rightdown_lat = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
       pos=strpos(strupcase(str),'FIRST_FAR_LONG=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[1,2]=float(strmid(str,newpos+2,10))
          find=find+1
          ;
          rightdown_lon = float(strmid(str,newpos+2,10))
        endif
	   ;
       ;左上右上经纬度坐标
       ;
       pos=strpos(strupcase(str),'LAST_NEAR_LAT=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[0,3]=float(strmid(str,newpos+2,10))
          find=find+1
          ;
          ;
          leftup_lat = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
         pos=strpos(strupcase(str),'LAST_NEAR_LONG=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[1,3]=float(strmid(str,newpos+2,10))
          find=find+1
          ;
          leftup_lon = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
       pos=strpos(strupcase(str),'LAST_FAR_LAT=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[0,5]=float(strmid(str,newpos+2,10))
          find=find+1
          rightup_lat = float(strmid(str,newpos+2,10))
        endif
        ;
        ;
       pos=strpos(strupcase(str),'LAST_FAR_LONG=')
       if pos ge 0 then begin
          newpos=strpos(str,'=')
          mapPts[1,5]=float(strmid(str,newpos+2,10))
          find=find+1
          rightup_lon = float(strmid(str,newpos+2,10))
        endif
    endwhile
    ;/10.0^6
    leftup    = [leftup_lon,leftup_lat]/10.0^6
    rightup   = [rightup_lon,rightup_lat]/10.0^6
    rightdown = [rightdown_lon,rightdown_lat]/10.0^6
    leftdown  = [leftdown_lon,leftdown_lat]/10.0^6
    return,1

End

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -