利用python中的gdal写一份大学生的大作业要求具有基础的功能
以下是一个用Python中的GDAL库编写的大学生大作业的示例:
from osgeo import gdal
def read_raster(file_path):
dataset = gdal.Open(file_path)
if dataset is None:
print("无法打开栅格数据文件")
return None
else:
return dataset
def get_raster_info(dataset):
if dataset is None:
print("无法获取栅格数据信息")
return None
else:
info = {}
info["宽度"] = dataset.RasterXSize
info["高度"] = dataset.RasterYSize
info["波段数"] = dataset.RasterCount
info["投影"] = dataset.GetProjection()
info["地理变换"] = dataset.GetGeoTransform()
return info
def write_raster(file_path, data, info):
driver = gdal.GetDriverByName("GTiff")
dataset = driver.Create(file_path, info["宽度"], info["高度"], info["波段数"], gdal.GDT_Float32)
dataset.SetProjection(info["投影"])
dataset.SetGeoTransform(info["地理变换"])
for i in range(info["波段数"]):
band = dataset.GetRasterBand(i + 1)
band.WriteArray(data[i])
band.FlushCache()
dataset = None
def main():
# 读取栅格数据
dataset = read_raster("input.tif")
# 获取栅格数据信息
info = get_raster_info(dataset)
print("栅格数据信息:")
for key, value in info.items():
print(key + ": " + str(value))
# 进行基础功能操作,例如裁剪、重投影、计算等
# 写入结果
write_raster("output.tif", data, info)
if __name__ == "__main__":
main()
在这个示例中,我们首先通过read_raster函数读取栅格数据文件,并使用get_raster_info函数获取栅格数据的基本信息。然后,我们可以在main函数中对栅格数据进行各种基础功能操作,例如裁剪、重投影、计算等。最后,我们使用write_raster函数将结果写入到输出文件中。
请注意,这只是一个示例,具体的功能和操作需要根据实际需求进行编写。同时,还需要安装GDAL库才能运行以上代码
原文地址: https://www.cveoy.top/t/topic/h9oy 著作权归作者所有。请勿转载和采集!