import gdal
# 读文件
YG_dataset = gdal.Open(r'F:\YG\data\SVDNB_npp_20181201-20181213caijian.tif') # 打开文件
print(YG_dataset)
YG_width = YG_dataset.RasterXSize # 栅格矩阵的列数
print(YG_width)
YG_height = YG_dataset.RasterYSize # 栅格矩阵的行数
print(YG_height)
YG_geotrans = YG_dataset.GetGeoTransform() # 仿射矩阵
print(YG_geotrans)
YG_proj = YG_dataset.GetProjection() # 地图投影信息
print(YG_proj)
YG_data = YG_dataset.ReadAsArray(0, 0, YG_width, YG_height) # 将数据写成数组,对应栅格矩阵
print(YG_data)
print(YG_data.shape)
# 创建tif文件
driver = gdal.GetDriverByName("GTiff")
New_YG_dataset = driver.Create(r'F:\YG\result\综合夜间灯光强度.tif', YG_width, YG_height, 1, gdal.GDT_Float32)
New_YG_dataset.SetGeoTransform(YG_geotrans)
New_YG_dataset.SetProjection(YG_proj)
band = New_YG_dataset.GetRasterBand(1)
band.WriteArray(YG_data + 10)
print(New_YG_dataset)
New_YG_data = New_YG_dataset.ReadAsArray(0, 0, 10, 10) # 将数据写成数组,对应栅格矩阵
print(New_YG_data)
# 这里注意,创建完成之后,需要删除,不然,后面再次打开的时候,会被占用
del New_YG_dataset