(Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息

国家青藏高原科学数据中心下载中国1千米分辨率逐日全天候地表土壤水分数据集(2003-2022)
问题:数据在arcgis打开特别大,无法和矢量数据重合,没有设置地理坐标系
数据在网站上提供了投影信息,提示可以进行python编程

环境:pycharm2020
      python3.8(编译器用的是arcgis pro自带的python3.8

一、打开HDF5数据投影信息(文档)如下

1.地理转换六参数:
(1)	(左上角X坐标)7087254.893403063,
(2)(X向分辨率)926.6258333333334,
(3)(X向仿射变换角度)0.0,
(4)(左上角Y坐标)5896446.849020582,
(5)(Y向仿射变换角度)0.0,
(6)(Y向分辨率)-926.6254166666668	
2.该投影信息对应于GDAL开源包中GDALDataset接口的GetProjection()方法返回参数如下:
PROJCS["AMSRE_Coordinate_System",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]

二、Python编程将HDF5文件转换为TIFF格式并应用地理转换和投影信息

修改这两个就行
1.input_folder 输入文件夹
2.output_folder 输出文件夹
from osgeo import gdal, osr
import os

# 定义输入文件夹和输出文件夹路径
input_folder = r'C:\Users\53446\Desktop\1\1'
output_folder = r'C:\Users\53446\Desktop\1\2'

# 遍历输入文件夹中的所有HDF5文件
for file_name in os.listdir(input_folder):
    if file_name.endswith('.h5'):
        # 构建输入文件路径
        input_file = os.path.join(input_folder, file_name)

        # 打开现有的HDF5文件
        dataset = gdal.Open(input_file)

        if dataset is not None:
            # 设置地理转换六参数
            transform = (7087254.893403063, 926.6258333333334, 0.0, 5896446.849020582, 0.0, -926.6254166666668)
            dataset.SetGeoTransform(transform)

            # 设置投影信息
            projection = 'PROJCS["AMSRE_Coordinate_System",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'
            srs = osr.SpatialReference()
            srs.ImportFromWkt(projection)
            dataset.SetProjection(srs.ExportToWkt())

            # 构建输出文件路径
            output_file = os.path.join(output_folder, file_name.replace('.h5', '.tif'))

            # 使用Translate函数将HDF5文件转换为TIFF格式并应用地理转换和投影信息
            gdal.Translate(output_file, dataset, format='GTiff')

            # 关闭文件
            dataset = None
        else:
            print(f"无法打开文件: {input_file}")

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
python2.7栅格数据批量转换投影:ProjectRaster_management (in_raster, out_raster, out_coor_system, {resampling_type}, {cell_size}, {geographic_transform}, {Registration_Point}, {in_coor_system}) in_raster 输入栅格数据集。Mosaic Layer; Raster Layer out_raster 要创建的输出栅格数据集。以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:.bil - Esri BIL, .bip - Esri BIP, .bmp - BMP, .bsq - Esri BSQ, .dat - ENVI DAT,.gif - GIF,.img - ERDAS IMAGINE,.jpg - JPEG,.jp2 - JPEG 2000,.png - PNG,.tif - TIFF,无扩展名 - Esri Grid,以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。 将栅格数据集存储到 JPEG 文件、JPEG 2000 文件TIFF 文件地理数据库时,可以指定压缩类型和压缩质量。 Raster Dataset out_coor_system 输入栅格待投影到的目标坐标系。默认值将基于“输出坐标系”环境设置进行设定。该参数的有效值是扩展名为 .prj 的文件。现有要素类、要素数据集、栅格目录(基本上包含了与坐标系相关的所有内容)。坐标系的字符串表示。要生成此类较长的字符串,可向模型构建器添加一个坐标系变量,并根据需要设置该变量的值,然后将模型导出到 Python 脚本。 Coordinate System resampling_type (可选) 要使用的重采样算法。默认设置为 NEAREST。 NEAREST —最邻近分配法 BILINEAR —双线性插值法 CUBIC —三次卷积插值法 MAJORITY —众数重采样法 NEAREST 和 MAJORITY 选项用于分类数据,如土地利用分类。NEAREST 选项是默认设置,因为它是最快的插值法,同时也因为它不会更改像元值。请勿对连续数据(如高程表面)使用 NEAREST 或 MAJORITY。BILINEAR 选项和 CUBIC 选项最适用于连续数据。不推荐对分类数据使用 BILINEAR 或者 CUBIC,因为像元值可能被更改。 cell_size (可选) 新栅格数据集的像元大小。默认像元大小为所选栅格数据集的像元大小。 Cell Size XY geographic_transform (可选) 在两个地理坐标系或基准面之间实现变换的方法。当输入和输出坐标系的基准面相同时,地理(坐标)变换为可选参数。如果输入和输出基准面不同,则必须指定地理(坐标)变换。 有关各个受支持的地理(基准面)变换的详细信息,请参阅位于 ArcGIS 安装目录的 \Documentation 文件夹下的 geographic_transformations.pdf 文件。 Registration_Point(可选)用于对齐像素的 x 和 y 坐标(位于输出空间中)。配准点的工作原理与捕捉栅格的概念类似。通过配准点可指定用于定位输出像元的原点,而不是仅将输出捕捉到现有栅格像元。所有输出像元与该点之间必须间隔一个像元。该点的坐标不必位于一角,也不必落入栅格数据集中。捕捉栅格环境设置参数将优先于 Registration_Point 参数。因此,如果您要设置配准点,请确保尚未设置捕捉栅格。 in_coor_system (可选) 输入栅格数据集的坐标系。Coordinate System

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是筱倩阿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值