diff --git a/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py b/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py index ee34e58..10debc6 100644 --- a/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py +++ b/generatorRasterSlicesTools/SpacetyTIFFDataStretch2PNG_AC.py @@ -70,6 +70,38 @@ def write_envi(im_data, im_geotrans, im_proj, output_path): dataset = None # 关闭文件 +def write_allExtend(im_data, im_geotrans, im_proj, output_path): + """ + 将数组数据写入ENVI格式文件 + :param im_data: 输入的numpy数组(2D或3D) + :param im_geotrans: 仿射变换参数(6元组) + :param im_proj: 投影信息(WKT字符串) + :param output_path: 输出文件路径(无需扩展名,会自动生成.dat和.hdr) + """ + im_bands = 1 + im_height, im_width = im_data.shape + + create_options=[ + "COMPRESS=DEFLATE", + "PREDICTOR=2", + "ZLEVEL=6", + "TILED=YES", + ] + + # 创建ENVI格式驱动 + driver = gdal.GetDriverByName("GTiff") + dataset = driver.Create(output_path, im_width, im_height, 1, gdal.GDT_Byte,options=create_options) + + if dataset is not None: + dataset.SetGeoTransform(im_geotrans) # 设置地理变换参数 + dataset.SetProjection(im_proj) # 设置投影 + + dataset.GetRasterBand(1).WriteArray(im_data) + + dataset.FlushCache() # 确保数据写入磁盘 + dataset = None # 关闭文件 + + def write_tiff(im_data, im_geotrans, im_proj, output_path): """ 将数组数据写入ENVI格式文件 @@ -476,7 +508,8 @@ def stretchSliceProcess(infilepath, outfolder,portfilestr, strechmethod): im_data = im_data.astype(np.uint8) rootname=Path(infilepath).stem allImagePath=os.path.join(allpngfolder, rootname+"_all.png") - Image.fromarray(im_data).save(allImagePath,compress_level=0) + Image.fromarray(im_data).save(allImagePath,compress_level=9) + # write_allExtend(im_data, im_Geotrans, im_proj, allImagePath) slice_ID=0 slice_ID=sliceShipDataset(rootname,im_data, src_im_data,im_Geotrans, im_proj, outfolder) # 舰船切片 slice_ID=slice_ID+1