From 53217400eca868d26f0678bb6ca24ef607c433e6 Mon Sep 17 00:00:00 2001 From: simonyan <315082291@qq.com> Date: Fri, 7 Jun 2024 16:00:27 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=94=AF=E6=8C=81=E6=97=A0=E7=BC=93?= =?UTF-8?q?=E5=86=B2=E5=8C=BA=E8=BE=93=E5=87=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeometricSightTracking/main.py | 18 +++++++--- SurfaceCharacteristicSimulation/main.py | 44 ++++++++++++------------- TOASimu/main.py | 36 ++++++++++---------- Utils/utils.py | 4 +++ 4 files changed, 57 insertions(+), 45 deletions(-) diff --git a/GeometricSightTracking/main.py b/GeometricSightTracking/main.py index ee91652..a974171 100644 --- a/GeometricSightTracking/main.py +++ b/GeometricSightTracking/main.py @@ -5,6 +5,15 @@ import json import mainMapEcharts import shutil +# 获取当前文件的父目录的绝对路径 +current_dir = os.path.dirname(os.path.abspath(__file__)) +# 获取父目录的绝对路径 +parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir)) +# 将父目录添加到 Python 模块搜索路径中 +sys.path.append(parent_dir) + +from Utils import utils as globalUtils + # python.exe .\main.py E:\01-Projects\01-CAE-FullLink\output\workingDir\test1\PlatformPerformance\a_sat.txt E:\01-Projects\01-CAE-FullLink\output\workingDir\test2\GeometricSightTracking\output outputDir = "output" @@ -31,7 +40,6 @@ def readInputGeo(): def genParamList(filePath: str): paramList = [] with open(filePath, "r", encoding="utf-8") as file: - content = "" for line in file: paramList.append(line.split()[1:]) return paramList @@ -40,8 +48,8 @@ def genParamList(filePath: str): # 生成一个求解参数文件 def genParamFile(paramVector: list, geoParamNameList: list, geoParamValueList: list): paramValueList = [geoParamValueList[0]] + paramVector + geoParamValueList[1:] - print(paramValueList) - print(geoParamNameList) + globalUtils.printWithFlush(paramValueList) + globalUtils.printWithFlush(geoParamNameList) with open("input.txt", "w") as file: file.write(geoParamNameList) @@ -128,7 +136,7 @@ if __name__ == "__main__": main() except Exception as e: # 捕获除了ZeroDivisionError外的所有异常 - print("发生异常:", str(e)) + globalUtils.printWithFlush("发生异常:", str(e)) finally: # 无论是否发生异常,最终都会执行该代码块 - print("求解执行完毕!") + globalUtils.printWithFlush("求解执行完毕!") diff --git a/SurfaceCharacteristicSimulation/main.py b/SurfaceCharacteristicSimulation/main.py index 38e377c..8046c89 100644 --- a/SurfaceCharacteristicSimulation/main.py +++ b/SurfaceCharacteristicSimulation/main.py @@ -35,8 +35,8 @@ def readInput() -> list: lines = file.readlines() paramNameList = lines[0] publicParamValueList = [int(x) for x in lines[1].split(",")] - print(paramNameList) - print(publicParamValueList) + globalUtils.printWithFlush(paramNameList) + globalUtils.printWithFlush(publicParamValueList) # 依次读取 Lat、Lon、SA、SZ、VA、VZ latFilePath = inputDir + "Lat.txt" @@ -57,12 +57,12 @@ def readInput() -> list: vzFilePath = inputDir + "VZ.txt" vzValueList = readParamValueList(vzFilePath) - print("经度参数个数 " + str(len(latValueList))) - print("纬度参数个数 " + str(len(lonValueList))) - print("太阳天顶角参数个数 " + str(len(saValueList))) - print("观察天顶角参数个数 " + str(len(szValueList))) - print("太阳方位角参数个数 " + str(len(vaValueList))) - print("观测方位角参数个数 " + str(len(vzValueList))) + globalUtils.printWithFlush("经度参数个数 " + str(len(latValueList))) + globalUtils.printWithFlush("纬度参数个数 " + str(len(lonValueList))) + globalUtils.printWithFlush("太阳天顶角参数个数 " + str(len(saValueList))) + globalUtils.printWithFlush("观察天顶角参数个数 " + str(len(szValueList))) + globalUtils.printWithFlush("太阳方位角参数个数 " + str(len(vaValueList))) + globalUtils.printWithFlush("观测方位角参数个数 " + str(len(vzValueList))) if not globalUtils.are_equal( len(latValueList), @@ -72,7 +72,7 @@ def readInput() -> list: len(vaValueList), len(vzValueList), ): - print( + globalUtils.printWithFlush( "经度、纬度、太阳天顶角、观察天顶角、太阳方位角、观测方位角的参数个数不一致,请查看参数文件。" ) return [] @@ -98,7 +98,7 @@ def readInput() -> list: publicParamValueList[2], ] ) - # print(latValueList) + # globalUtils.printWithFlush(latValueList) # return [paramNameList, paramValueList.split(",")] return [paramNameList, paramContentList] @@ -122,7 +122,7 @@ def copyInputFiles(projectDir: str) -> bool: for inputFile in inputFileList: inputFileProjectPath = os.path.join(projectDir, inputFile) if not os.path.isfile(inputFileProjectPath): - print(f"{inputFileProjectPath} is not file or exist") + globalUtils.printWithFlush(f"{inputFileProjectPath} is not file or exist") return False inputFileSolverPath = os.path.join(inputDir, inputFile) shutil.copy(inputFileProjectPath, inputFileSolverPath) @@ -181,7 +181,7 @@ def toaRunModel(surFileDir: str): def test(testDir: str): currentExeDir = os.getcwd() - print("execute dir: ", currentExeDir) + globalUtils.printWithFlush("execute dir: ", currentExeDir) # 获取当前文件的绝对路径 currentFile = os.path.realpath(__file__) @@ -191,14 +191,14 @@ def test(testDir: str): # 切换到'/home' 目录 os.chdir(currentDir) - print("surface dir: ", currentDir) + globalUtils.printWithFlush("surface dir: ", currentDir) inputFilePath = os.path.join(inputDistDir, "input.txt") - print("surface input.txt: ", inputFilePath) - print(os.getcwd()) + globalUtils.printWithFlush("surface input.txt: ", inputFilePath) + globalUtils.printWithFlush(os.getcwd()) # 执行一次求解 result = toaRunModel(testDir) - print("surface run ok:", result) + globalUtils.printWithFlush("surface run ok:", result) # 切换回之前的目录 os.chdir(currentExeDir) @@ -223,11 +223,11 @@ def generateImgPng(): def main(): # 项目目录的output,求解结束后传回到项目目录下 projectDir = sys.argv[1] - print(projectDir) - + globalUtils.printWithFlush(projectDir) + # 从项目目录下拷贝参数文件过来 if not copyInputFiles(projectDir): - print("参数文件不完整") + globalUtils.printWithFlush("参数文件不完整") return # 读取参数文件 @@ -269,7 +269,7 @@ def main(): ) runTimestamp = time.time() - print(result, index, runTimestamp - timestamp) + globalUtils.printWithFlush(result, index, runTimestamp - timestamp) timestamp = runTimestamp # 生成后处理图片 @@ -292,7 +292,7 @@ if __name__ == "__main__": main() except Exception as e: # 捕获除了ZeroDivisionError外的所有异常 - print("发生异常:", str(e)) + globalUtils.printWithFlush("发生异常:", str(e)) finally: # 无论是否发生异常,最终都会执行该代码块 - print("求解执行完毕!") + globalUtils.printWithFlush("求解执行完毕!") diff --git a/TOASimu/main.py b/TOASimu/main.py index b56ae3b..e4c67c2 100644 --- a/TOASimu/main.py +++ b/TOASimu/main.py @@ -328,9 +328,9 @@ def main(): # 读取 大气参数文件(input_toa.txt),获取公共的参数:aodmodel、atmodel toaAodmodel, toaAtmmodel = utils.readInputTOA(toaInputFilePath) - print(toaAodmodel, toaAtmmodel) + globalUtils.printWithFlush(toaAodmodel, toaAtmmodel) if None in [surMonth, surWavestart, surWaveend, toaAodmodel, toaAtmmodel]: - print("surface: month wavestart waveend and toa: aodmodel atmodel has None!") + globalUtils.printWithFlush("surface: month wavestart waveend and toa: aodmodel atmodel has None!") return # 读取地表文件的经纬度 @@ -365,8 +365,8 @@ def main(): ncPointSelectedList, surPointSelectedList = surToNC( ncLatList, ncLonList, surLatList, surLonList, distanceProximityDistance ) - # print('nc points: ', len(ncPointSelectedList)) - # print('sur points: ', len(surPointSelectedList)) + # globalUtils.printWithFlush('nc points: ', len(ncPointSelectedList)) + # globalUtils.printWithFlush('sur points: ', len(surPointSelectedList)) # globalUtils.saveDataToJSON([(float(x[0]), float(x[1])) for x in ncPointSelectedList],'json-nc-point.json') # globalUtils.saveDataToJSON([(float(x[0]), float(x[1])) for x in surPointSelectedList], 'json-sur-point.json') @@ -391,9 +391,9 @@ def main(): distanceProximityDistance, ) ) - # print('nc final points: ', len(ncPointFinalSelectedList)) - # print('sur final points: ', len(surPointFinalSelectedList)) - # print('tif final points: ', len(tifPointFinalSelectedList)) + # globalUtils.printWithFlush('nc final points: ', len(ncPointFinalSelectedList)) + # globalUtils.printWithFlush('sur final points: ', len(surPointFinalSelectedList)) + # globalUtils.printWithFlush('tif final points: ', len(tifPointFinalSelectedList)) # globalUtils.saveDataToJSON(surPointFinalSelectedList,'json-point-sur.json') # globalUtils.saveDataToJSON(ncPointFinalSelectedList, 'json-point-nc.json') # globalUtils.saveDataToJSON(tifPointFinalSelectedList, 'json-point-tif.json') @@ -428,11 +428,11 @@ def main(): latIndex = tifLatList.index(lat) tifParamValueList.append(aodMatrix[latIndex][lonIndex]) - print(f"surParamValueList: {len(surParamValueList)}") - print(f"ncParamValueList: {len(ncParamValueList)}") - print(f"tifParamValueList: {len(tifParamValueList)}") + globalUtils.printWithFlush(f"surParamValueList: {len(surParamValueList)}") + globalUtils.printWithFlush(f"ncParamValueList: {len(ncParamValueList)}") + globalUtils.printWithFlush(f"tifParamValueList: {len(tifParamValueList)}") - print("pre process over!") + globalUtils.printWithFlush("pre process over!") # 第一步,组成大气辐射需要的参数: # sz vz sa va 来自 surParamValueList @@ -469,13 +469,13 @@ def main(): surWavestart, surWaveend, ) - print("+++++++++++++++gen sur input.txt") + globalUtils.printWithFlush("+++++++++++++++gen sur input.txt") # 第一步,先执行地表,得到结果文件 surMain.test(surfaceModuleDir) - print("+++++++++++++++surface run over") + globalUtils.printWithFlush("+++++++++++++++surface run over") # 第二步,拷贝地表的结果文件到input下 surOutputFile = os.path.join(surfaceModuleDir, "output.txt") - print(surOutputFile) + globalUtils.printWithFlush(surOutputFile) if not os.path.isfile(surOutputFile): continue # 第三步,构造大气辐射传输参数文件 @@ -494,9 +494,9 @@ def main(): ozone, surOutputFile, ) - print("+++++++++++++++gen toa input.txt") + globalUtils.printWithFlush("+++++++++++++++gen toa input.txt") utils.executeCompute() - print("+++++++++++++++toa run over") + globalUtils.printWithFlush("+++++++++++++++toa run over") # 处理结果文件,将input_para.txt和TOASimu.txt进行编号命名后拷贝到output中 rgb445, rgb565, rgb670 = handleOutput(lon, lat, index) heatMapValueList.append((lon, lat, rgb445, rgb565, rgb670)) @@ -522,7 +522,7 @@ if __name__ == "__main__": main() except Exception as e: # 捕获除了ZeroDivisionError外的所有异常 - print("发生异常:", str(e)) + globalUtils.printWithFlush("发生异常:", str(e)) finally: # 无论是否发生异常,最终都会执行该代码块 - print("求解执行完毕!") + globalUtils.printWithFlush("求解执行完毕!") diff --git a/Utils/utils.py b/Utils/utils.py index 4457ce5..ce3716e 100644 --- a/Utils/utils.py +++ b/Utils/utils.py @@ -117,3 +117,7 @@ def saveENVIImgToPng(imgFilePath: str, pngFilePath: str): 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() \ No newline at end of file