以下是一个使用GDAL批量读取TIF文件,获取每个TIF文件的中心点坐标,并将TIF文件的名称和中心点坐标存储在一个列表中的Python代码示例:
import os
from osgeo import gdal
def get_tif_center_coordinates(tif_path):
# 打开TIF文件
dataset = gdal.Open(tif_path)
if not dataset:
return None
# 获取影像的几何变换信息
geotransform = dataset.GetGeoTransform()
# 计算中心点的坐标
x_origin = geotransform[0]
y_origin = geotransform[3]
pixel_width = geotransform[1]
pixel_height = geotransform[5]
cols = dataset.RasterXSize
rows = dataset.RasterYSize
center_x = x_origin + (cols / 2) * pixel_width
center_y = y_origin + (rows / 2) * pixel_height
return (center_x, center_y)
def batch_process_tifs(input_directory):
tif_info_list = []
for filename in os.listdir(input_directory):
if filename.endswith(".tif") or filename.endswith(".tiff"):
tif_path = os.path.join(input_directory, filename)
center_coordinates = get_tif_center_coordinates(tif_path)
if center_coordinates:
tif_info_list.append((filename, center_coordinates))
return tif_info_list
# 示例用法
input_directory = "path_to_your_tif_files_directory"
tif_info_list = batch_process_tifs(input_directory)
for tif_name, center_coords in tif_info_list:
print(f"TIF名称: {tif_name}, 中心点坐标: {center_coords}")
代码说明:
- get_tif_center_coordinates(tif_path): 这个函数用来读取单个TIF文件并计算其中心点的地理坐标。
- batch_process_tifs(input_directory): 这个函数会遍历指定目录中的所有TIF文件,调用
get_tif_center_coordinates
函数获取每个TIF文件的中心点坐标,并将结果存储在一个列表中。 - 示例用法: 你需要将
input_directory
变量设置为包含TIF文件的目录路径,然后运行代码即可获取所有TIF文件的名称及其中心点坐标。
这个列表最终会以(TIF文件名, 中心点坐标)
的形式输出。