目录
Visible Infrared Imaging Radiometer Suite(VIIRS)
来自 Suomi NPP 的可见光红外成像辐射计套件 (VIIRS) 数据记录 - 该数据集系列包含来自 Suomi 国家极地轨道伙伴关系 (S-NPP) 卫星上的可见光红外成像辐射计套件 (VIIRS) 的传感器和环境数据记录。VIIRS 是一种扫描辐射计,可收集陆地、大气、冰冻圈和海洋的可见光和红外图像以及辐射测量。VIIRS 数据用于测量云和气溶胶特性、海洋颜色、海洋和陆地表面温度、冰运动和温度、火灾和地球反照率。VIIRS 扩展并改进了 NOAA 高级甚高分辨率辐射计 (AVHRR) 和 NASA 中分辨率成像光谱仪 (MODIS) 发起的一系列测量。
数据下载网址1:
NOAA
数据下载网址2:
NASA
NOAA 数据下载
用户注册
这边注册可以随注册随用,对邮箱没有要求,也不需要翻墙,提交订单后会注册的邮箱会收到订单信息
数据查找
1.选择产品类型
2. 数据索引
点击查找。并将数据添加到购物车:
3. 提交订单
可能需要魔法
下载前可以参考一下这篇文章
基于IDL的地理编码与正射校正
function get_hdf5_data, file,file_name
; 获取数据id
file_id = H5F_OPEN(file)
; 读取亮温数据04id
dataset_id04 = H5D_OPEN(file_id, file_name)
; 获取影像数据id
dsp_id04 = H5D_GET_SPACE(dataset_id04)
; 读取影像数据.
data = H5D_READ(dataset_id04, FILE_SPACE=dsp_id04)
; dim
;dimensions = H5S_GET_SIMPLE_EXTENT_DIMS(dataspace_id)
H5S_CLOSE, dsp_id04
H5D_CLOSE, dataset_id04
H5F_CLOSE, file_id
return,data
end
pro modis11_L2_glt
; 主程序,用于处理MODIS数据
compile_opt idl2
; 设置编译选项
envi,/restore_base_save_files
; 恢复ENVI环境设置
envi_batch_init
; 初始化ENVI批处理
Modis_directory='F:\dataset\VIIRS_HD5\'
; 定义MODIS数据目录
output_directory='F:\dataset\VIIRS_Conversion\'
; 定义输出目录
type='MOD'
; 定义数据类型
modis_list=file_search(Modis_directory,'*.h5',count=file_n)
; 在MODIS目录中搜索所有HDF文件,并获取文件数量
for i=0,file_n-1 do begin
; 循环处理每个文件,输入文件路径与子文件名称
;;;; 数据读取 ;;;;
modis_lon_data=get_hdf5_data(modis_list[i],'/All_Data/VIIRS-IMG-GEO_All/Latitude')
; 获取经度数据
modis_lat_data=get_hdf5_data(modis_list[i],'/All_Data/VIIRS-IMG-GEO_All/Latitude')
; 获取纬度数据
data=get_hdf5_data(modis_list[i],'/All_Data/VIIRS-I4-SDR_All/BrightnessTemperature')
;获取亮温数据
scale=get_hdf5_data(modis_list[i],'/All_Data/VIIRS-I4-SDR_All/BrightnessTemperatureFactors')
; 获取LST数据的缩放因子
n_value = 65533*scale[0]+scale[1]
modis_target_data=data*scale[0]+scale[1]
; 应用缩放因子
modis_target_data[where(modis_target_data eq n_value)] = !values.f_nan
modis_target_data[where(modis_target_data le -999)] = !values.f_nan
target_data_size=size(modis_target_data)
; 获取目标数据大小
;modis_lon_data=congrid(modis_lon_data,target_data_size[1],target_data_size[2],/interp)
; 重新采样经度数据以匹配目标数据大小
;modis_lat_data=congrid(modis_lat_data,target_data_size[1],target_data_size[2],/interp)
; 重新采样纬度数据以匹配目标数据大小
out_lon=output_directory+'lon_out.tif'
; 定义输出经度文件名
out_lat=output_directory+'lat_out.tif'
; 定义输出纬度文件名
out_target=output_directory+'target.tif'
; 定义输出目标数据文件名
write_tiff,out_lon,modis_lon_data,/float
; 将经度数据写入TIFF文件
write_tiff,out_lat,modis_lat_data,/float
; 将纬度数据写入TIFF文件
write_tiff,out_target,modis_target_data,/float
; 将目标数据写入TIFF文件
envi_open_file,out_lon,r_fid=x_fid
IF (x_fid EQ -1) THEN RETURN
ENVI_FILE_QUERY, x_fid, DIMS=dims, NB=nb
; 打开经度TIFF文件,获取文件ID
envi_open_file,out_lat,r_fid=y_fid
; 打开纬度TIFF文件,获取文件ID
envi_open_file,out_target,r_fid=target_fid
; 打开目标数据TIFF文件,获取文件ID
out_name_glt=output_directory+file_basename(modis_list[i],'.h5')+'_glt.img'
; 定义输出GLT文件名
out_name_glt_hdr=output_directory+file_basename(modis_list[i],'.h5')+'_glt.hdr'
; 定义输出GLT头文件名
i_proj=envi_proj_create(/geographic)
; 创建地理坐标投影
o_proj=envi_proj_create(/geographic)
; 创建输出地理坐标投影
;envi_glt_doit,$
;i_proj=i_proj,x_fid=x_fid,y_fid=y_fid,x_pos=0,y_pos=0,$
; 指定创建GLT所需输入数据信息
;o_proj=o_proj,pixel_size=pixel_size,rotation=0.0,out_name=out_name_glt,r_fid=glt_fid
; 指定输出GLT文件信息
envi_glt_doit,$
i_proj=i_proj,x_fid=x_fid,y_fid=y_fid,x_pos=0,y_pos=0,$
; 指定创建GLT所需输入数据信息
o_proj=o_proj,out_name=out_name_glt,r_fid=glt_fid
; 指定输出GLT文件信息
out_name_geo=output_directory+file_basename(modis_list[i],'.h5')+'_georef.img'
; 定义输出地理参考文件名
out_name_geo_hdr=output_directory+file_basename(modis_list[i],'.h5')+'_georef.hdr'
; 定义输出地理参考头文件名
envi_georef_from_glt_doit,$
glt_fid=glt_fid, $
; 指定重投影所需GLT文件信息
fid=target_fid,pos=0,$
; 指定待投影数据ID
out_name=out_name_geo,r_fid=geo_fid
; 指定输出重投影文件信息
envi_file_query,geo_fid,dims=data_dims
; 查询地理参考文件的维度
target_data=envi_get_data(fid=geo_fid,pos=0,dims=data_dims)
; 获取地理参考数据
map_info=envi_get_map_info(fid=geo_fid)
; 获取地理参考信息
geo_loc=map_info.(1)
; 获取地理参考位置
px_size=map_info.(2)
print, px_size
; 获取像素大小
geo_info={$
MODELPIXELSCALETAG:[px_size[0],px_size[1],0.0],$
MODELTIEPOINTTAG:[0.0,0.0,0.0,geo_loc[2],geo_loc[3],0.0],$
GTMODELTYPEGEOKEY:2,$
GTRASTERTYPEGEOKEY:1,$
GEOGRAPHICTYPEGEOKEY:4326,$
GEOGCITATIONGEOKEY:'GCS_WGS_1984',$
GEOGANGULARUNITSGEOKEY:9102,$
GEOGSEMIMAJORAXISGEOKEY:6378137.0,$
GEOGINVFLATTENINGGEOKEY:298.25722}
;file_name=file_basename(modis_list[i],'.h5')
;year=strmid(file_name,10,4)
;date=long(strmid(file_name,14,3))
;caldat,julday(1,1,year)-1+date,month,day,year
;if month lt 10 then begin
; month='0'+strcompress(string(month),/remove_all)
;endif else begin
; month=strcompress(string(month),/remove_all)
;endelse
;if dat lt 10 then begin
; day='0'+strcompress(string(day),/remove_all)
;endif else begin
; day=strcompress(string(day),/remove_all)
;endelse
;year=strcompress(string(year),/remove_all)
;time=strmid(file_name,18,4)
; out_tiff=output_directory+type+'_'+year+'_'+month+'_'+day+'_'+time+'.tiff';获取输出文件的名称
out_tiff=output_directory+file_basename(modis_list[i],'.h5')+'.tif';获取输出文件的名称
print,out_tiff
write_tiff,out_tiff,target_data,/float,geotiff=geo_info
envi_file_mng,id=x_fid,/remove
envi_file_mng,id=y_fid,/remove
envi_file_mng,id=target_fid,/remove
envi_file_mng,id=glt_fid,/remove
envi_file_mng,id=geo_fid,/remove
file_delete,[out_lon,out_lat,out_target,out_name_glt,out_name_glt_hdr,out_name_geo,out_name_geo_hdr]
print,i
endfor
envi_batch_exit,/no_confirm
end