Skip to content

Commit

Permalink
Merge pull request #14 from Loop3D/segNum_change
Browse files Browse the repository at this point in the history
fix: Add segNum to obs tables, removed rank and type.
  • Loading branch information
RoyThomsonMonash authored Apr 11, 2024
2 parents 541a6d5 + 9fbd104 commit 84043fa
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 119 deletions.
242 changes: 125 additions & 117 deletions LoopProjectFile/LoopProjectFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def CreateBasic(filename):


# Open project file with error checking for file existing and of netCDF format
def OpenProjectFile(filename, readOnly=True, verbose=True):
def OpenProjectFile(filename, readOnly=True, verbose=False):
"""
**OpenProjectFile** - Open a Loop Project File and checks it exists and is a
netCDF formatted file
Expand Down Expand Up @@ -133,9 +133,11 @@ def OpenProjectFile(filename, readOnly=True, verbose=True):
print(errStr, file=sys.stderr)
return {"errorFlag": True, "errorString": errStr}

# Quick check to see if openable
try:
with open(filename, 'rb') as f:
print(f"File {filename} opened successfully.", file=sys.stderr)
if (verbose):
print(f"File {filename} opened successfully.", file=sys.stderr)
except Exception as e:
return {"errorFlag": True, "errorString": str(e)}

Expand Down Expand Up @@ -217,106 +219,117 @@ def Set(filename, element, **kwargs):
True
"""
fileResp = OpenProjectFile(filename, readOnly=False, verbose=False)
if "verbose" in kwargs.keys():
verbose = kwargs["verbose"]
else:
verbose = False

fileResp = OpenProjectFile(filename, readOnly=False, verbose=verbose)
if fileResp["errorFlag"]:
response = fileResp
else:
root = fileResp["root"]
if element == "version":
response = Version.SetVersion(root, **kwargs)
elif element == "extents":
response = Extents.SetExtents(root, **kwargs)
elif element == "strModel":
response = StructuralModels.SetStructuralModel(root, **kwargs)
elif element == "faultObservations":
response = DataCollection.SetFaultObservations(root, **kwargs)
elif element == "faultObservationsAppend":
response = DataCollection.SetFaultObservations(root, append=True, **kwargs)
elif element == "foldObservations":
response = DataCollection.SetFoldObservations(root, **kwargs)
elif element == "foldObservationsAppend":
response = DataCollection.SetFoldObservations(root, append=True, **kwargs)
elif element == "foliationObservations":
response = DataCollection.SetFoliationObservations(root, **kwargs)
elif element == "foliationObservationsAppend":
response = DataCollection.SetFoliationObservations(
root, append=True, **kwargs
)
elif element == "discontinuityObservations":
response = DataCollection.SetDiscontinuityObservations(root, **kwargs)
elif element == "discontinuityObservationsAppend":
response = DataCollection.SetDiscontinuityObservations(
root, append=True, **kwargs
)
elif element == "stratigraphicObservations":
response = DataCollection.SetStratigraphicObservations(root, **kwargs)
elif element == "stratigraphicObservationsAppend":
response = DataCollection.SetStratigraphicObservations(
root, append=True, **kwargs
)
elif element == "contacts":
response = DataCollection.SetContacts(root, **kwargs)
elif element == "contactsAppend":
response = DataCollection.SetContacts(root, append=True, **kwargs)
elif element == "drillholeObservations":
response = DataCollection.SetDrillholeObservations(root, **kwargs)
elif element == "drillholeObservationsAppend":
response = DataCollection.SetDrillholeObservations(
root, append=True, **kwargs
)
elif element == "drillholeSurveys":
response = DataCollection.SetDrillholeSurveys(root, **kwargs)
elif element == "drillholeSurveysAppend":
response = DataCollection.SetDrillholeSurveys(root, append=True, **kwargs)
elif element == "drillholeProperties":
response = DataCollection.SetDrillholeProperties(root, **kwargs)
elif element == "drillholePropertiesAppend":
response = DataCollection.SetDrillholeProperties(
root, append=True, **kwargs
)
elif element == "stratigraphicLog":
response = ExtractedInformation.SetStratigraphicLog(root, **kwargs)
elif element == "stratigraphicLogAppend":
response = ExtractedInformation.SetStratigraphicLog(
root, append=True, **kwargs
)
elif element == "faultLog":
response = ExtractedInformation.SetFaultLog(root, **kwargs)
elif element == "faultLogAppend":
response = ExtractedInformation.SetFaultLog(root, append=True, **kwargs)
elif element == "foldLog":
response = ExtractedInformation.SetFoldLog(root, **kwargs)
elif element == "foldLogAppend":
response = ExtractedInformation.SetFoldLog(root, append=True, **kwargs)
elif element == "foliationLog":
response = ExtractedInformation.SetFoliationLog(root, **kwargs)
elif element == "foliationLogAppend":
response = ExtractedInformation.SetFoliationLog(root, append=True, **kwargs)
elif element == "discontinuityLog":
response = ExtractedInformation.SetDiscontinuityLog(root, **kwargs)
elif element == "discontinuityLogAppend":
response = ExtractedInformation.SetDiscontinuityLog(
root, append=True, **kwargs
)
elif element == "drillholeLog":
response = ExtractedInformation.SetDrillholeLog(root, **kwargs)
elif element == "drillholeLogAppend":
response = ExtractedInformation.SetDrillholeLog(root, append=True, **kwargs)
elif element == "dataCollectionConfig":
response = DataCollection.SetConfiguration(root, **kwargs)
elif element == "dataCollectionSources":
response = DataCollection.SetSources(root, **kwargs)
elif element == "dataCollectionRawSourceData":
response = DataCollection.SetRawSourceData(root, **kwargs)
elif element == "eventRelationships":
response = ExtractedInformation.SetEventRelationships(root, **kwargs)
elif element == "structuralModelsConfig":
response = StructuralModels.SetConfiguration(root, **kwargs)
else:
errStr = "(ERROR) Unknown element for Set function '" + element + "'"
print(errStr)
response = {"errorFlag": True, "errorString": errStr}
root.close()
try:
if element == "version":
response = Version.SetVersion(root, **kwargs)
elif element == "extents":
response = Extents.SetExtents(root, **kwargs)
elif element == "strModel":
response = StructuralModels.SetStructuralModel(root, **kwargs)
elif element == "faultObservations":
response = DataCollection.SetFaultObservations(root, **kwargs)
elif element == "faultObservationsAppend":
response = DataCollection.SetFaultObservations(root, append=True, **kwargs)
elif element == "foldObservations":
response = DataCollection.SetFoldObservations(root, **kwargs)
elif element == "foldObservationsAppend":
response = DataCollection.SetFoldObservations(root, append=True, **kwargs)
elif element == "foliationObservations":
response = DataCollection.SetFoliationObservations(root, **kwargs)
elif element == "foliationObservationsAppend":
response = DataCollection.SetFoliationObservations(
root, append=True, **kwargs
)
elif element == "discontinuityObservations":
response = DataCollection.SetDiscontinuityObservations(root, **kwargs)
elif element == "discontinuityObservationsAppend":
response = DataCollection.SetDiscontinuityObservations(
root, append=True, **kwargs
)
elif element == "stratigraphicObservations":
response = DataCollection.SetStratigraphicObservations(root, **kwargs)
elif element == "stratigraphicObservationsAppend":
response = DataCollection.SetStratigraphicObservations(
root, append=True, **kwargs
)
elif element == "contacts":
response = DataCollection.SetContacts(root, **kwargs)
elif element == "contactsAppend":
response = DataCollection.SetContacts(root, append=True, **kwargs)
elif element == "drillholeObservations":
response = DataCollection.SetDrillholeObservations(root, **kwargs)
elif element == "drillholeObservationsAppend":
response = DataCollection.SetDrillholeObservations(
root, append=True, **kwargs
)
elif element == "drillholeSurveys":
response = DataCollection.SetDrillholeSurveys(root, **kwargs)
elif element == "drillholeSurveysAppend":
response = DataCollection.SetDrillholeSurveys(root, append=True, **kwargs)
elif element == "drillholeProperties":
response = DataCollection.SetDrillholeProperties(root, **kwargs)
elif element == "drillholePropertiesAppend":
response = DataCollection.SetDrillholeProperties(
root, append=True, **kwargs
)
elif element == "stratigraphicLog":
response = ExtractedInformation.SetStratigraphicLog(root, **kwargs)
elif element == "stratigraphicLogAppend":
response = ExtractedInformation.SetStratigraphicLog(
root, append=True, **kwargs
)
elif element == "faultLog":
response = ExtractedInformation.SetFaultLog(root, **kwargs)
elif element == "faultLogAppend":
response = ExtractedInformation.SetFaultLog(root, append=True, **kwargs)
elif element == "foldLog":
response = ExtractedInformation.SetFoldLog(root, **kwargs)
elif element == "foldLogAppend":
response = ExtractedInformation.SetFoldLog(root, append=True, **kwargs)
elif element == "foliationLog":
response = ExtractedInformation.SetFoliationLog(root, **kwargs)
elif element == "foliationLogAppend":
response = ExtractedInformation.SetFoliationLog(root, append=True, **kwargs)
elif element == "discontinuityLog":
response = ExtractedInformation.SetDiscontinuityLog(root, **kwargs)
elif element == "discontinuityLogAppend":
response = ExtractedInformation.SetDiscontinuityLog(
root, append=True, **kwargs
)
elif element == "drillholeLog":
response = ExtractedInformation.SetDrillholeLog(root, **kwargs)
elif element == "drillholeLogAppend":
response = ExtractedInformation.SetDrillholeLog(root, append=True, **kwargs)
elif element == "dataCollectionConfig":
response = DataCollection.SetConfiguration(root, **kwargs)
elif element == "dataCollectionSources":
response = DataCollection.SetSources(root, **kwargs)
elif element == "dataCollectionRawSourceData":
response = DataCollection.SetRawSourceData(root, **kwargs)
elif element == "eventRelationships":
response = ExtractedInformation.SetEventRelationships(root, **kwargs)
elif element == "structuralModelsConfig":
response = StructuralModels.SetConfiguration(root, **kwargs)
else:
errStr = "(ERROR) Unknown element for Set function '" + element + "'"
print(errStr)
response = {"errorFlag": True, "errorString": errStr}
finally:
if (verbose):
print(f"Closing file: {filename}",file=sys.stderr)
root.close()
if (verbose):
print(f"{filename} closed successfully",file=sys.stderr)
return response


Expand Down Expand Up @@ -373,8 +386,12 @@ def Get(filename, element, **kwargs):
True otherwise the extracted value is in the "value" keyword
"""
if "verbose" in kwargs.keys():
verbose = kwargs["verbose"]
else:
verbose = False

fileResp = OpenProjectFile(filename, readOnly=True, verbose=False)
fileResp = OpenProjectFile(filename, readOnly=True, verbose=verbose)
if fileResp["errorFlag"]:
response = fileResp
else:
Expand Down Expand Up @@ -431,9 +448,11 @@ def Get(filename, element, **kwargs):
print(errStr)
response = {"errorFlag": True, "errorString": errStr}
finally:
print(f"Closing file: {filename}",file=sys.stderr)
if (verbose):
print(f"Closing file: {filename}",file=sys.stderr)
root.close()
print(f"{filename} closed successfully",file=sys.stderr)
if (verbose):
print(f"{filename} closed successfully",file=sys.stderr)
return response


Expand Down Expand Up @@ -557,7 +576,7 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("segNum", "<u4"),
("dipDir", "<f8"),
("dip", "<f8"),
("dipPolarity", "<f8"),
Expand All @@ -573,7 +592,7 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("segNum", "<u4"),
("axisX", "<f8"),
("axisY", "<f8"),
("axisZ", "<f8"),
Expand All @@ -588,7 +607,7 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("segNum", "<u4"),
("dipDir", "<f8"),
("dip", "<f8"),
]
Expand All @@ -600,7 +619,7 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("segNum", "<u4"),
("dipDir", "<f8"),
("dip", "<f8"),
]
Expand All @@ -612,7 +631,7 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("segNum", "<u4"),
]
)

Expand All @@ -622,7 +641,6 @@ def CheckFileValid(filename, verbose=False):
("easting", "<f8"),
("northing", "<f8"),
("altitude", "<f8"),
("type", "<i4"),
("dipDir", "<f8"),
("dip", "<f8"),
("dipPolarity", "<f8"),
Expand All @@ -639,8 +657,6 @@ def CheckFileValid(filename, verbose=False):
("group", "S120"),
("supergroup", "S120"),
("enabled", "u1"),
("rank", "<u4"),
("type", "<i4"),
("avgDisplacement", "<f8"),
("avgDownthrowDir", "<f8"),
("influenceDistance", "<f8"),
Expand Down Expand Up @@ -668,8 +684,6 @@ def CheckFileValid(filename, verbose=False):
("group", "S120"),
("supergroup", "S120"),
("enabled", "u1"),
("rank", "<u4"),
("type", "<i4"),
("periodic", "u1"),
("wavelength", "<f8"),
("amplitude", "<f8"),
Expand All @@ -689,8 +703,6 @@ def CheckFileValid(filename, verbose=False):
("group", "S120"),
("supergroup", "S120"),
("enabled", "u1"),
("rank", "<u4"),
("type", "<i4"),
("lowerScalarValue", "<f8"),
("upperScalarValue", "<f8"),
]
Expand All @@ -705,8 +717,6 @@ def CheckFileValid(filename, verbose=False):
("group", "S120"),
("supergroup", "S120"),
("enabled", "u1"),
("rank", "<u4"),
("type", "<i4"),
("scalarValue", "<f8"),
]
)
Expand All @@ -720,8 +730,6 @@ def CheckFileValid(filename, verbose=False):
("group", "S120"),
("supergroup", "S120"),
("enabled", "u1"),
("rank", "<u4"),
("type", "<i4"),
("thickness", "<f8"),
("colour1Red", "u1"),
("colour1Green", "u1"),
Expand Down
2 changes: 1 addition & 1 deletion LoopProjectFile/Version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.0.26"
__version__ = "0.1.0"


# Current Loop Project File Version
Expand Down
2 changes: 1 addition & 1 deletion LoopProjectFile/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@
ElementToDataframe,
ElementFromDataframe,
) # noqa : F401
# from .Version import LoopVersion # noqa : F401
from .Version import LoopVersion # noqa : F401
from .Version import __version__
from .projectfile import ProjectFile # noqa : F401

0 comments on commit 84043fa

Please sign in to comment.