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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()