from osgeo import gdal
import os
def print_corners_coordinates(tif_file):
if (tif_file.endswith('.TIF') or tif_file.endswith('.tif')):
print('this is a tif file')
# 打开TIF文件
dataset = gdal.Open(tif_file)
if dataset is None:
print("无法打开文件。")
return
# 获取TIF文件的宽度和高度
width = dataset.RasterXSize
height = dataset.RasterYSize
# 获取仿射变换参数
geotransform = dataset.GetGeoTransform()
print("当前geotransform的Y单位为:",geotransform[5])
if not geotransform:
print("无法获取仿射变换参数。")
return
# 计算四个角的坐标
corners = {
"左上角": (0, 0),
"右上角": (width - 1, 0),
"左下角": (0, height - 1),
"右下角": (width - 1, height - 1)
}
# 打印四个角的坐标
for corner, (col, row) in corners.items():
x = geotransform[0] + col * geotransform[1] + row * geotransform[2]
y = geotransform[3] + col * geotransform[4] + row * geotransform[5]
print(f"{corner}: X={x}, Y={y}")
else:
# 打开HDF中的band1文件
print('this is a hdf file')
hdf_ds = gdal.Open(tif_file, gdal.GA_ReadOnly)
subdatasets = hdf_ds.GetSubDatasets()
subdataset = subdatasets[11][0] #MODIS_Grid_500m_2D:sur_refl_b01_1'
dataset = gdal.Open(subdataset, gdal.GA_ReadOnly)
if dataset is None:
print("无法打开文件。")
return
# 获取TIF文件的宽度和高度
width = dataset.RasterXSize
height = dataset.RasterYSize
# 获取仿射变换参数
geotransform = dataset.GetGeoTransform()
#geotransform[0] 10007554.677
#geotransform[1] 463.31271652791725
#geotransform[2] 0.0
#geotransform[3] 4447802.078667
#geotransform[4] 0.0
#geotransform[5] -463.3127165279167
if not geotransform:
print("无法获取仿射变换参数。")
return
# 计算四个角的坐标
corners = {
"左上角": (0, 0),
"右上角": (width, 0),
"左下角": (0, height),
"右下角": (width, height)
}
# 打印四个角的坐标
for corner, (col, row) in corners.items():
x = geotransform[0] + col * geotransform[1] + row * geotransform[2]
y = geotransform[3] + col * geotransform[4] + row * geotransform[5]
print(f"{corner}: X={x}, Y={y}")
# 使用示例
print('my experiment data :')
hdf_subdataset_file_path = 'experiment_process/1experiment_data/MOD09GA.A2016013.h27v05.061.2021342065746.hdf'
print('------------------coordinate range of original_landsat_file------------------')
print_corners_coordinates(hdf_subdataset_file_path)
使用gdal库,python