# -*- coding: UTF-8 -*-
import os
from osgeo import gdal, osr
# 输入文件夹路径
input_folder = 'G:\\review\par_cor\PAR\HDF'
# 输出文件夹路径
output_folder = 'G:\\review\par_cor\PAR\TIFF\\2009\\'
# 遍历输入文件夹中的HDF文件
for hdf_file in os.listdir(input_folder):
# 检查文件扩展名是否为HDF
if hdf_file.endswith('.hdf'):
# 构建HDF文件的完整路径
hdf_path = os.path.join(input_folder, hdf_file)
file_name = hdf_file.split('.')[2]
# 构建输出TIFF文件的完整路径
tiff_file = os.path.join(output_folder, file_name + '.tif')
# 打开HDF文件
hdf_dataset = gdal.Open(hdf_path, gdal.GA_ReadOnly)
# 获取HDF文件中的数据层数量
num_datasets = hdf_dataset.RasterCount
# 选择要转换的数据层(根据您的需求进行选择)
dataset_index = 0
# 获取选择的数据层
dataset = hdf_dataset.GetRasterBand(dataset_index + 1)
# 获取数据层的投影和地理转换信息
projection = hdf_dataset.GetProjection()
geotransform = hdf_dataset.GetGeoTransform()
# 创建输出TIFF文件
driver = gdal.GetDriverByName('GTiff')
output_dataset = driver.Create(tiff_file, dataset.XSize, dataset.YSize, 1, dataset.DataType)
# 设置输出TIFF文件的投影为WGS 1984
wgs84_srs = osr.SpatialReference()
wgs84_srs.ImportFromEPSG(4326) # EPSG code for WGS 1984
output_dataset.SetProjection(wgs84_srs.ExportToWkt())
# 设置输出TIFF文件的地理转换信息
output_dataset.SetGeoTransform(geotransform)
# 将数据层写入输出TIFF文件
output_dataset.GetRasterBand(1).WriteArray(dataset.ReadAsArray())
# 关闭数据集
output_dataset = None
hdf_dataset = None
print("TIFF文件转换完成!")
GLASS_PAR产品数据HDF转栅格TIFF
最新推荐文章于 2024-06-01 23:35:30 发布