NASAVIIRS数据下载

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云朵不吃雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值