Skip to content

Commit a6596f9

Browse files
committed
fix: update the getter
1 parent 865703c commit a6596f9

1 file changed

Lines changed: 47 additions & 37 deletions

File tree

LoopProjectFile/ExtractedInformation.py

Lines changed: 47 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -388,66 +388,76 @@ def GetStratigraphicLog(
388388
):
389389
response = {"errorFlag": False}
390390
resp = GetStratigraphicInformationGroup(root)
391+
391392
if resp["errorFlag"]:
392-
response = resp
393-
else:
394-
siGroup = resp["value"]
395-
data = []
393+
return resp
394+
siGroup = resp["value"]
395+
data = []
396+
397+
try:
398+
# Get max valid index
396399
maxValidIndex = min(
397400
siGroup.dimensions["index"].size, siGroup.getncattr("index_MaxValid")
398401
)
399-
thickness_calculator_data = []
400-
thickness_calculator_active_flags = []
401-
402-
# Select all option
402+
403+
# Check if variables exist in the group
404+
if "thicknessCalculator" not in siGroup.variables or "thicknessCalculatorActiveFlags" not in siGroup.variables:
405+
errStr = "Missing 'thicknessCalculator' or 'thicknessCalculatorActiveFlags' in the NetCDF file."
406+
if verbose:
407+
print(errStr)
408+
return {"errorFlag": True, "errorString": errStr}
409+
410+
# Fetch thickness calculator and active flags
411+
thickness_calculator_data = siGroup.variables["thicknessCalculator"][:]
412+
thickness_calculator_active_flags = siGroup.variables["thicknessCalculatorActiveFlags"][:]
413+
414+
# Select all layers
403415
if (
404-
indexList == []
416+
not indexList
405417
and len(indexRange) == 2
406-
and indexRange[0] == 0
407-
and indexRange[1] == 0
418+
and indexRange == (0, 0)
408419
):
409-
# Select all
410-
for i in range(0, maxValidIndex):
411-
data.append((siGroup.variables.get("stratigraphicLayers")[i]))
412-
thickness_calculator_data.append(siGroup.variables.get("thicknessCalculator")[:])
413-
thickness_calculator_active_flags.append(siGroup.variables.get("thicknessCalculatorActiveFlags")[:])
414-
415-
# Select based on list of indices option
416-
elif indexList != []:
420+
for i in range(maxValidIndex):
421+
data.append(siGroup.variables["stratigraphicLayers"][i])
422+
423+
# Select based on list of indices
424+
elif indexList:
417425
for i in indexList:
418-
if int(i) >= 0 and int(i) < maxValidIndex:
419-
data.append((siGroup.variables.get("stratigraphicLayers")[i]))
420-
thickness_calculator_data.append(siGroup.variables.get("thicknessCalculator")[:])
421-
thickness_calculator_active_flags.append(siGroup.variables.get("thicknessCalculatorActiveFlags")[:])
422-
423-
# Select based on indices range option
426+
if 0 <= int(i) < maxValidIndex:
427+
data.append(siGroup.variables["stratigraphicLayers"][i])
428+
429+
# Select based on index range
424430
elif (
425431
len(indexRange) == 2
426-
and indexRange[0] >= 0
427-
and indexRange[1] >= indexRange[0]
432+
and 0 <= indexRange[0] < indexRange[1] <= maxValidIndex
428433
):
429434
for i in range(indexRange[0], indexRange[1]):
430-
if int(i) >= 0 and int(i) < maxValidIndex:
431-
data.append((siGroup.variables.get("stratigraphicLayers")[i]))
432-
thickness_calculator_data.append(siGroup.variables.get("thicknessCalculator")[:])
433-
thickness_calculator_active_flags.append(siGroup.variables.get("thicknessCalculatorActiveFlags")[:])
434-
435+
data.append(siGroup.variables["stratigraphicLayers"][i])
436+
435437
else:
436-
errStr = "Non-implemented filter option"
438+
errStr = "Invalid filter option for stratigraphic log retrieval."
437439
if verbose:
438440
print(errStr)
439-
response = {"errorFlag": True, "errorString": errStr}
440-
return response
441+
return {"errorFlag": True, "errorString": errStr}
441442

443+
# Construct response
442444
response["value"] = {
443445
"stratigraphicLayers": data,
444-
"thicknessCalculatorData": thickness_calculator_data,
445-
"thicknessCalculatorActiveFlags": thickness_calculator_active_flags,
446+
"thicknessCalculatorData": thickness_calculator_data.tolist(),
447+
"thicknessCalculatorActiveFlags": thickness_calculator_active_flags.tolist(),
446448
}
449+
450+
except Exception as e:
451+
errStr = f"(ERROR) Exception during stratigraphic log retrieval: {str(e)}"
452+
if verbose:
453+
print(errStr)
454+
return {"errorFlag": True, "errorString": errStr}
455+
447456
return response
448457

449458

450459

460+
451461
# Set drillhole log
452462
def SetDrillholeLog(root, data, append=False, verbose=False):
453463
"""

0 commit comments

Comments
 (0)