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

📄 radarsat_read_lonlat.pro

📁 用idl开发的实现显示卫星图片在地球上位置的程序
💻 PRO
字号:
;$
; NAME    :
;   Radarsat_read_lonlat
;
; PURPOSE :
;   获得Radarsat文件四个角点的经纬度范围
;
; CATEGORY:
;   read data
; AUTHOR  :
;   QQz(Xinyuan QU)
;   E-mail: qqzwind@gmail.com
;   BLog  : www.qqzwind.cn   ||  hi.baidu.blog/qqzwind
;
; CALLING SEQUENCE:
;    result = Radarsat_read_lonlat(filename,leftup=leftup,rightup=rightup,leftdown=leftdown,rightdown=rightdown)
;
; MODIFICATION HISTORY:
;   Written by: QQz, 2007-9-18
;$
Function Radarsat_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 Radarsat lonlat error!'
	   RETURN,0
	ENDIF
	;
	if ~file_test(file) then return,0
	;
	openr,lun,file,/get_lun
	;
	infostring = ''
	WHILE ~EOF(lun) do begin
		readf,lun,infostring
		infoarr = strsplit(infostring,'=',/extract)
		case strcompress(infoarr[0],/REMOVE_ALL) of
			'upperLeft' : begin
				str = strarr(4)
				readf,lun,str
				leftup = str_tolonlat(str)
				if n_elements(leftup) le 1 then  return,0
			end
			'upperRight': begin
				str = strarr(4)
				readf,lun,str
			    rightup= str_tolonlat(str)
			    if n_elements(rightup) le 1 then  return,0
			end
			'lowerRight': begin
				str = strarr(4)
				readf,lun,str
			    rightdown= str_tolonlat(str)
			    if n_elements(rightdown) le 1 then  return,0
			end
			'lowerLeft': begin
				str = strarr(4)
				readf,lun,str
			    leftdown= str_tolonlat(str)
			    if n_elements(leftdown) le 1 then  return,0
			    break
			end
			else:
		endcase

	ENDWHILE
	return,1
End
;
;根据字符串数组解析经纬度
Function str_tolonlat,str
;
	if n_elements(str) eq 0 then return,0
	f_bracket = StrPos(str[2], '=')
	r_bracket = StrPos(str[2], ';')
	lon= StrMid(str[2], f_bracket+1, r_bracket-1)
	f_bracket = StrPos(str[1], '=')
	r_bracket = StrPos(str[1], ';')
    lat= StrMid(str[1], f_bracket+1, r_bracket-1)
    return,[float(lon),float(lat)]
;
End

⌨️ 快捷键说明

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