Skip to content

Commit 525b558

Browse files
feat: added generic base config dict
1 parent a59dfb3 commit 525b558

File tree

3 files changed

+217
-0
lines changed

3 files changed

+217
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .base_converter import BaseConverter
2+
from .generic_converter import GenericConverter
23
from .ntgs_converter import NTGSConverter
34
from .loop_converter import LoopConverter
45
from ..datatypes import SurveyName

LoopDataConverter/datatypes/enums.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class SurveyName(IntEnum):
2020
GSV = 5
2121
MRT = 6
2222
GSNSW = 7
23+
GENERIC = 8
2324

2425

2526
class Filetype(IntEnum):
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
_UNSET = object()
2+
3+
4+
class BaseConfig:
5+
def __init__(self):
6+
self.fold_config = {
7+
"structtype_column": "FoldType",
8+
"fold_text": "'Anticline','Syncline','Antiform','Synform','Monocline','Monoform','Neutral','Fold axis','Overturned syncline'",
9+
"description_column": "Desc",
10+
"synform_text": "FoldType",
11+
"foldname_column": "FoldName",
12+
"objectid_column": "OBJECTID",
13+
"tightness_column": "IntlimbAng",
14+
"axial_plane_dipdir_column": "AxPlDipDir",
15+
"axial_plane_dip_column": "AxPlDip",
16+
}
17+
18+
self.fault_config = {
19+
"orientation_type": "dip direction",
20+
"structtype_column": "FaultType",
21+
"fault_text": "'Thrust','Reverse','Normal','Shear zone','Strike-slip','Thrust','Unknown'",
22+
"dip_null_value": "-999",
23+
"dipdir_flag": "num",
24+
"dipdir_column": "DipDir",
25+
"dip_column": "Dip",
26+
"dipestimate_column": "DipEstimate",
27+
"dipestimate_text": "'NORTH_EAST','NORTH',<rest of cardinals>,'NOT ACCESSED'",
28+
"displacement_column": "Displace",
29+
"displacement_text": "'1m-100m', '100m-1km', '1km-5km', '>5km'",
30+
"fault_length_column": "FaultLen",
31+
"fault_length_text": "Small (0-5km),Medium (5-30km),Large (30-100km),Regional (>100km),Unclassified",
32+
"name_column": "FaultName",
33+
"objectid_column": "OBJECTID",
34+
}
35+
36+
self.geology_config = {
37+
"unitname_column": "Formation",
38+
"alt_unitname_column": "Formation",
39+
"group_column": "Group",
40+
"supergroup_column": "Supergroup",
41+
"description_column": "LithDescn1",
42+
"minage_column": "AgeMin",
43+
"maxage_column": "AgeMax",
44+
"rocktype_column": "LithClass",
45+
"alt_rocktype_column": "RockCat",
46+
"sill_text": "RockCat",
47+
"intrusive_text": "RockCat",
48+
"volcanic_text": "RockCat",
49+
"objectid_column": "OBJECTID",
50+
"ignore_lithology_codes": ["cover", "Unknown"],
51+
}
52+
53+
self.structure_config = {
54+
"orientation_type": "dip direction",
55+
"dipdir_column": "DipDir",
56+
"dip_column": "Dip",
57+
"description_column": "FeatDesc",
58+
"bedding_text": "ObsType",
59+
"overturned_column": "Desc",
60+
"overturned_text": "overturned",
61+
"objectid_column": "OBJECTID",
62+
}
63+
64+
self.config_map = {
65+
"geology": self.geology_config,
66+
"structure": self.structure_config,
67+
"fault": self.fault_config,
68+
"fold": self.fold_config,
69+
}
70+
71+
def _apply_updates(self, target, updates, extra):
72+
for key, value in updates.items():
73+
if value is not _UNSET:
74+
target[key] = value
75+
if extra:
76+
target.update(extra)
77+
78+
def update_fold_config(
79+
self,
80+
*,
81+
structtype_column=_UNSET,
82+
fold_text=_UNSET,
83+
description_column=_UNSET,
84+
synform_text=_UNSET,
85+
foldname_column=_UNSET,
86+
objectid_column=_UNSET,
87+
tightness_column=_UNSET,
88+
axial_plane_dipdir_column=_UNSET,
89+
axial_plane_dip_column=_UNSET,
90+
**extra,
91+
):
92+
updates = {
93+
"structtype_column": structtype_column,
94+
"fold_text": fold_text,
95+
"description_column": description_column,
96+
"synform_text": synform_text,
97+
"foldname_column": foldname_column,
98+
"objectid_column": objectid_column,
99+
"tightness_column": tightness_column,
100+
"axial_plane_dipdir_column": axial_plane_dipdir_column,
101+
"axial_plane_dip_column": axial_plane_dip_column,
102+
}
103+
self._apply_updates(self.fold_config, updates, extra)
104+
105+
def update_fault_config(
106+
self,
107+
*,
108+
orientation_type=_UNSET,
109+
structtype_column=_UNSET,
110+
fault_text=_UNSET,
111+
dip_null_value=_UNSET,
112+
dipdir_flag=_UNSET,
113+
dipdir_column=_UNSET,
114+
dip_column=_UNSET,
115+
dipestimate_column=_UNSET,
116+
dipestimate_text=_UNSET,
117+
displacement_column=_UNSET,
118+
displacement_text=_UNSET,
119+
fault_length_column=_UNSET,
120+
fault_length_text=_UNSET,
121+
name_column=_UNSET,
122+
objectid_column=_UNSET,
123+
**extra,
124+
):
125+
updates = {
126+
"orientation_type": orientation_type,
127+
"structtype_column": structtype_column,
128+
"fault_text": fault_text,
129+
"dip_null_value": dip_null_value,
130+
"dipdir_flag": dipdir_flag,
131+
"dipdir_column": dipdir_column,
132+
"dip_column": dip_column,
133+
"dipestimate_column": dipestimate_column,
134+
"dipestimate_text": dipestimate_text,
135+
"displacement_column": displacement_column,
136+
"displacement_text": displacement_text,
137+
"fault_length_column": fault_length_column,
138+
"fault_length_text": fault_length_text,
139+
"name_column": name_column,
140+
"objectid_column": objectid_column,
141+
}
142+
self._apply_updates(self.fault_config, updates, extra)
143+
144+
def update_geology_config(
145+
self,
146+
*,
147+
unitname_column=_UNSET,
148+
alt_unitname_column=_UNSET,
149+
group_column=_UNSET,
150+
supergroup_column=_UNSET,
151+
description_column=_UNSET,
152+
minage_column=_UNSET,
153+
maxage_column=_UNSET,
154+
rocktype_column=_UNSET,
155+
alt_rocktype_column=_UNSET,
156+
sill_text=_UNSET,
157+
intrusive_text=_UNSET,
158+
volcanic_text=_UNSET,
159+
objectid_column=_UNSET,
160+
ignore_lithology_codes=_UNSET,
161+
**extra,
162+
):
163+
updates = {
164+
"unitname_column": unitname_column,
165+
"alt_unitname_column": alt_unitname_column,
166+
"group_column": group_column,
167+
"supergroup_column": supergroup_column,
168+
"description_column": description_column,
169+
"minage_column": minage_column,
170+
"maxage_column": maxage_column,
171+
"rocktype_column": rocktype_column,
172+
"alt_rocktype_column": alt_rocktype_column,
173+
"sill_text": sill_text,
174+
"intrusive_text": intrusive_text,
175+
"volcanic_text": volcanic_text,
176+
"objectid_column": objectid_column,
177+
"ignore_lithology_codes": ignore_lithology_codes,
178+
}
179+
self._apply_updates(self.geology_config, updates, extra)
180+
181+
def update_structure_config(
182+
self,
183+
*,
184+
orientation_type=_UNSET,
185+
dipdir_column=_UNSET,
186+
dip_column=_UNSET,
187+
description_column=_UNSET,
188+
bedding_text=_UNSET,
189+
overturned_column=_UNSET,
190+
overturned_text=_UNSET,
191+
objectid_column=_UNSET,
192+
**extra,
193+
):
194+
updates = {
195+
"orientation_type": orientation_type,
196+
"dipdir_column": dipdir_column,
197+
"dip_column": dip_column,
198+
"description_column": description_column,
199+
"bedding_text": bedding_text,
200+
"overturned_column": overturned_column,
201+
"overturned_text": overturned_text,
202+
"objectid_column": objectid_column,
203+
}
204+
self._apply_updates(self.structure_config, updates, extra)
205+
206+
def __getitem__(self, datatype):
207+
return self.config_map[datatype]
208+
209+
def update(self, geology_dict, structure_dict, fault_dict, fold_dict):
210+
self.update_geology_config(**geology_dict)
211+
self.update_structure_config(**structure_dict)
212+
self.update_fault_config(**fault_dict)
213+
self.update_fold_config(**fold_dict)
214+
215+

0 commit comments

Comments
 (0)