from os import listdir from os.path import isfile, join from pathlib import Path import xarray as xr numHRU = 25 time = 'time' scalarSWE = 'scalarSWE' scalarCanopyWat = 'scalarCanopyWat' scalarAquiferStorage = 'scalarAquiferStorage' scalarTotalSoilWat = 'scalarTotalSoilWat' scalarSenHeatTotal = 'scalarSenHeatTotal' scalarLatHeatTotal = 'scalarLatHeatTotal' scalarRainPlusMelt = 'scalarRainPlusMelt' scalarInfiltration = 'scalarInfiltration' scalarSurfaceRunoff = 'scalarSurfaceRunoff' scalarSoilBaseflow = 'scalarSoilBaseflow' scalarSoilDrainage = 'scalarSoilDrainage' scalarAquiferBaseflow = 'scalarAquiferBaseflow' scalarTotalET = 'scalarTotalET' scalarTotalRunoff = 'scalarTotalRunoff' scalarNetRadiation = 'scalarNetRadiation' varList = [time, scalarSWE, scalarCanopyWat, scalarAquiferStorage, scalarTotalSoilWat, \ scalarSenHeatTotal, scalarLatHeatTotal, scalarRainPlusMelt, scalarInfiltration, \ scalarSurfaceRunoff, scalarSoilBaseflow, scalarSoilDrainage, scalarAquiferBaseflow, \ scalarTotalET, scalarTotalRunoff, scalarNetRadiation] filename = "out.txt" originalPath = Path('/home/kklenk/projects/rpp-kshook/kklenk/SummaOriginalOuput/May-13-2022/netcdf/SummaBE_G000001-000125_day.nc') actorsPath = Path('/home/kklenk/projects/rpp-kshook/kklenk/SummaActorsOutput/May-26-2022/netcdf/SummaActorsGRU1-500_day.nc') originalDataset = xr.open_dataset(originalPath) actorsDataset = xr.open_dataset(actorsPath) allHRUsOriginal = [] allHRUsActors = [] for ihru in range(0, numHRU): allHRUsOriginal.append(originalDataset.isel(hru=ihru).copy()) for ihru in range(0, numHRU): allHRUsActors.append(actorsDataset.isel(hru=ihru).copy()) file = open(filename, "w") for i in range(0, numHRU): file.write("________HRU {}________\n".format(i+1)) for var in varList: file.write("&&&& VAR = {} &&&&\n".format(var)) dataOrig = [] dataAct = [] for data in allHRUsOriginal[i][var].values: dataOrig.append(data) for data in allHRUsActors[i][var].values: dataAct.append(data) print("Original", len(dataOrig)) print("Actors", len(dataAct)) marginOfError = 0 if var == time: for a in range(0, len(dataAct)): if dataOrig[a] != dataAct[a]: file.write("{} = Actor and {} = original is different\n".format(dataAct[a], dataOrig[a])) # else: # file.write("{} = Actor and {} = original is the same\n".format(dataAct[a], dataOrig[a])) else: for a in range(0, len(dataAct)): diff = dataOrig[a] - dataAct[a] if diff < -marginOfError or diff > marginOfError: file.write("{}: {} = Actor and {} = original is different: {}\n".format(a, dataAct[a], dataOrig[a], abs(dataAct[a] - dataOrig[a]))) # else: # file.write("{}: {} = Actor and {} = original is the same\n".format(a, dataAct[a], dataOrig[a])) file.close()