You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.4 KiB
Python

import os, sys, shutil, json
from osgeo import gdal
import matplotlib.pyplot as plt
# 判断路径是否是目录
def isDir(dirPath: str):
return os.path.exists(dirPath) and os.path.isdir(dirPath)
# 对参数进行去重
def are_equal(*args):
# 使用集合去除重复值如果长度为1则说明所有元素相等
return len(set(args)) == 1
if are_equal(17136, 17136, 17136, 17136, 17136, 17136):
print("ok")
# 删除一个目录或者文件
def rmPath(fileOrDirPath: str):
if os.path.exists(fileOrDirPath):
if os.path.isdir(fileOrDirPath):
shutil.rmtree(fileOrDirPath)
elif os.path.isfile(fileOrDirPath):
os.remove(fileOrDirPath)
# 删除目录
def rmDir(dirPath: str) -> bool:
if not os.path.isdir(dirPath):
return True
# 删除本地的input目录
try:
# 尝试递归删除目录及其内容
shutil.rmtree(dirPath)
# print(f"Directory {dirPath} successfully removed.")
except OSError as e:
# 如果目录无法删除,则捕获异常
print(f"Failed to remove directory {dirPath} :", e)
return False
return True
# 创建目录
def mkDir(dirPath: str) -> bool:
try:
# 尝试递归创建目录及其父目录
os.makedirs(dirPath)
# print(f"Directory {dirPath} created successfully.")
except OSError as e:
# 如果创建目录失败,则捕获异常
print(f"Failed to create directory {dirPath} :", e)
return False
return True
# 拷贝文件
def copyFile(sourceFile: str, targetFile: str) -> bool:
try:
# 尝试复制文件
shutil.copy(sourceFile, targetFile)
# print(f"File {sourceFile} copied successfully.")
except IOError as e:
# 如果复制文件失败,则捕获异常
print(f"Failed to copy file {sourceFile}:", e)
return False
return True
# 将内容保持为json文件
def saveDataToJSON(content: list, fileName):
with open(fileName, "w") as f:
json.dump(content, f, indent=4)
pass
# 判断文件是否被其他程序访问
def isFileOpen(filePath):
try:
thefile = open(filePath, "r+")
thefile.close()
except IOError as e:
# 如果是Permission denied错误通常意味着文件正在被其他程序访问
if "Permission denied" in str(e):
return True
return False
def saveENVIImgToPng(imgFilePath: str, pngFilePath: str):
# 打开 ENVI 格式的图像文件
# image_path = "postProcessing/Case1/reflectance/08.REF.img"
# 如果文件不存在进行报错并退出
if not os.path.isfile(imgFilePath):
print("img file not exist!")
return None
dataset = gdal.Open(imgFilePath, gdal.GA_ReadOnly)
if dataset is None:
print("Failed to open image")
return None
# 读取图像数据
band = dataset.GetRasterBand(1) # 仅读取第一个波段
image_array = band.ReadAsArray()
# 显示图像
plt.imshow(image_array) # 使用灰度色彩映射
# plt.imshow(image_array, cmap="gray") # 使用灰度色彩映射
# plt.colorbar()
# plt.show()
plt.savefig(pngFilePath)
# 关闭数据集
dataset = None
# 发货文件名
return pngFilePath
def printWithFlush(*args, sep=' ', end='\n', file=None, flush=True):
print(*args, sep=sep, end=end, file=file, flush=flush)
# sys.stdout.flush()