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

📄 hdffile_322.pro

📁 利用IDL读取MODIS影像L1B和MOD03数据(HDF格式),计算遥感植被指数NDVI
💻 PRO
字号:
;
;
;
;非自动生成功能部分,后添加功能
;
;
;
;
;----------------------------------
;判断HDF文件的相关函数
PRO FileIsMOD021KM_322, inFileName, ot1KMFlag
	OpenHDF_452, inFileName, otHdfID, /READ
	StartSD_452, inFileName, otSDInterfaceID
	ArrSDName = ['EV_250_Aggr1km_RefSB', 'EV_500_Aggr1km_RefSB', 'EV_1KM_RefSB', 'EV_1KM_Emissive']
	ot1KMFlag = 1
	for i=0, 3 do begin
		SDIndex = HDF_SD_NAMETOINDEX(otSDInterfaceID, ArrSDName[i])
		if SDIndex eq -1 then begin
			ot1KMFlag = 0
			break
		endif
	endfor
	EndSD_452, otSDInterfaceID
	CloseHDF_452, otHdfID
END
;----------------------------------
PRO FileIsMOD02HKM_322, inFileName, otHKMFlag
	OpenHDF_452, inFileName, otHdfID, /READ
	StartSD_452, inFileName, otSDInterfaceID
	ArrSDName = ['EV_250_Aggr500_RefSB', 'EV_500_RefSB']
	otHKMFlag = 1
	for i=0, 1 do begin
		SDIndex = HDF_SD_NAMETOINDEX(otSDInterfaceID, ArrSDName[i])
		if SDIndex eq -1 then begin
			otHKMFlag = 0
			break
		endif
	endfor
	EndSD_452, otSDInterfaceID
	CloseHDF_452, otHdfID
END
;----------------------------------
PRO FileIsMOD02QKM_322, inFileName, otQKMFlag
	OpenHDF_452, inFileName, otHdfID, /READ
	StartSD_452, inFileName, otSDInterfaceID
	otQKMFlag = 1
	SDIndex = HDF_SD_NAMETOINDEX(otSDInterfaceID, 'EV_250_RefSB')
	if SDIndex eq -1 then otQKMFlag = 0
	EndSD_452, otSDInterfaceID
	CloseHDF_452, otHdfID
END
;----------------------------------
PRO CreateDSAndAddData_324, inSDInterfaceID, inDSName, inLabel, inData, $
					BYTE=BYTE, DFNT_CHAR8=DFNT_CHAR8, DFNT_FLOAT32=DFNT_FLOAT32, DFNT_FLOAT64=DFNT_FLOAT64,$
					DFNT_INT8=DFNT_INT8, DFNT_INT16=DFNT_INT16, DFNT_INT32=DFNT_INT32, DFNT_UINT8=DFNT_UINT8,$
					DFNT_UINT16=DFNT_UINT16, DFNT_UINT32=DFNT_UINT32, DOUBLE=DOUBLE, FLOAT=FLOAT, $
					HDF_TYPE=type,INT=INT, LONG=LONG, SHORT=SHORT, STRING=STRING
	Dims = Size(inData, /DIMENSIONS)
	sds_id = HDF_SD_CREATE(inSDInterfaceID, inDSName, Dims,$
					BYTE=BYTE, DFNT_FLOAT32=DFNT_FLOAT32, DFNT_FLOAT64=DFNT_FLOAT64,$
					DFNT_INT8=DFNT_INT8, DFNT_INT16=DFNT_INT16, DFNT_INT32=DFNT_INT32, DFNT_UINT8=DFNT_UINT8,$
					DFNT_UINT16=DFNT_UINT16, DFNT_UINT32=DFNT_UINT32, DOUBLE=DOUBLE, FLOAT=FLOAT, $
					HDF_TYPE=type,INT=INT, LONG=LONG, SHORT=SHORT, STRING=STRING)

	if inLabel ne '' then HDF_SD_SETINFO, sds_id, LABEL = inLabel

	HDF_SD_ADDDATA, sds_id, inData

	HDF_SD_ENDACCESS, sds_id
END

⌨️ 快捷键说明

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