📄 envisat_read_lonlat.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 + -