ararpy 0.0.1a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ararpy/smp/sample.py ADDED
@@ -0,0 +1,911 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @File : sample.py
4
+ # @Author : Yang Wu
5
+ # @Date : 2021/12/19
6
+ # @Email : wuy@cug.edu.cn
7
+
8
+ """
9
+ # ==========================================
10
+ # Copyright 2023 Yang
11
+ # ararpy - smp - sample
12
+ # ==========================================
13
+ #
14
+ #
15
+ #
16
+
17
+ Create a sample instance.
18
+
19
+ """
20
+
21
+ NEW_SAMPLE_INTERCEPT_HEADERS = [
22
+ 'Sequence', '', '\u00B3\u2076Ar', '1\u03C3', '\u00B3\u2077Ar', '1\u03C3',
23
+ '\u00B3\u2078Ar', '1\u03C3', '\u00B3\u2079Ar', '1\u03C3', '\u2074\u2070Ar', '1\u03C3'
24
+ ]
25
+ NEW_BLANK_INTERCEPT_HEADERS = [
26
+ 'Sequence', '', '\u00B3\u2076Ar', '1\u03C3', '\u00B3\u2077Ar', '1\u03C3',
27
+ '\u00B3\u2078Ar', '1\u03C3', '\u00B3\u2079Ar', '1\u03C3', '\u2074\u2070Ar', '1\u03C3'
28
+ ]
29
+ NEW_PARAMS_HEADERS = []
30
+
31
+ SAMPLE_INTERCEPT_HEADERS = [
32
+ 'Sequence', '', '\u00B3\u2076Ar', '1\u03C3', '\u00B3\u2077Ar', '1\u03C3',
33
+ '\u00B3\u2078Ar', '1\u03C3', '\u00B3\u2079Ar', '1\u03C3', '\u2074\u2070Ar', '1\u03C3'
34
+ ]
35
+ BLANK_INTERCEPT_HEADERS = [
36
+ 'Sequence', '', '\u00B3\u2076Ar', '1\u03C3', '\u00B3\u2077Ar', '1\u03C3',
37
+ '\u00B3\u2078Ar', '1\u03C3', '\u00B3\u2079Ar', '1\u03C3', '\u2074\u2070Ar', '1\u03C3'
38
+ ]
39
+
40
+ CORRECTED_HEADERS = [
41
+ 'Sequence', '', '\u00B3\u2076Ar', '1\u03C3', '\u00B3\u2077Ar', '1\u03C3',
42
+ '\u00B3\u2078Ar', '1\u03C3', '\u00B3\u2079Ar', '1\u03C3', '\u2074\u2070Ar', '1\u03C3'
43
+ ]
44
+
45
+ DEGAS_HEADERS = [
46
+ 'Sequence', '', # 0-1
47
+ '\u00B3\u2076Ar[a]', '1\u03C3', '\u00B3\u2076Ar[c]', '1\u03C3', # 2-5
48
+ '\u00B3\u2076Ar[Ca]', '1\u03C3', '\u00B3\u2076Ar[Cl]', '1\u03C3', # 6-9
49
+ '\u00B3\u2077Ar[Ca]', '1\u03C3', '\u00B3\u2078Ar[Cl]', '1\u03C3', # 10-13
50
+ '\u00B3\u2078Ar[a]', '1\u03C3', '\u00B3\u2078Ar[c]', '1\u03C3', # 14-17
51
+ '\u00B3\u2078Ar[K]', '1\u03C3', '\u00B3\u2078Ar[Ca]', '1\u03C3', # 18-21
52
+ '\u00B3\u2079Ar[K]', '1\u03C3', '\u00B3\u2079Ar[Ca]', '1\u03C3', # 22-25
53
+ '\u2074\u2070Ar[r]', '1\u03C3', '\u2074\u2070Ar[a]', '1\u03C3', # 26-29
54
+ '\u2074\u2070Ar[c]', '1\u03C3', '\u2074\u2070Ar[K]', '1\u03C3' # 29-32
55
+ ]
56
+
57
+ PUBLISH_TABLE_HEADERS = [
58
+ 'Sequence', '', '\u00B3\u2076Ar[a]', '\u00B3\u2077Ar[Ca]', '\u00B3\u2078Ar[Cl]',
59
+ '\u00B3\u2079Ar[K]', '\u2074\u2070Ar[r]', 'Apparent Age', '1\u03C3', '\u2074\u2070Arr%',
60
+ '\u00B3\u2079ArK%', 'Ca/K', '1\u03C3'
61
+ ]
62
+ SPECTRUM_TABLE_HEADERS = [
63
+ 'Sequence', '', '\u2074\u2070Ar/\u00B3\u2079Ar', '1\u03C3', 'Apparent Age',
64
+ '1\u03C3', '1\u03C3', '1\u03C3', '\u2074\u2070Ar[r]%', '\u00B3\u2079Ar[K]%'
65
+ ]
66
+ ISOCHRON_TABLE_HEADERS = [
67
+ 'Sequence', '', 'Mark', # 0-2
68
+ '\u00B3\u2079Ar[K]/\u00B3\u2076Ar[a]', '1\u03C3', # 3-4
69
+ '\u2074\u2070Ar[r+a]/\u00B3\u2076Ar[a]', '1\u03C3', 'ri', '', # 5-8
70
+ '\u00B3\u2079Ar[K]/\u2074\u2070Ar[r+a]', '1\u03C3', # 9-10
71
+ '\u00B3\u2076Ar[a]/\u2074\u2070Ar[r+a]', '1\u03C3', 'ri', '', # 11-14
72
+ '\u00B3\u2079Ar[K]/\u00B3\u2078Ar[Cl]', '1\u03C3', # 15-16
73
+ '\u2074\u2070Ar[r+Cl]/\u00B3\u2078Ar[Cl]', '1\u03C3', 'ri', '', # 17-20
74
+ '\u00B3\u2079Ar[K]/\u2074\u2070Ar[r+Cl]', '1\u03C3', # 21-22
75
+ '\u00B3\u2078Ar[Cl]/\u2074\u2070Ar[r+Cl]', '1\u03C3', 'ri', '', # 23-26
76
+ '\u00B3\u2078Ar[Cl]/\u00B3\u2079Ar[K]', '1\u03C3', # 27-28
77
+ '\u2074\u2070Ar[r+Cl]/\u00B3\u2079Ar[K]', '1\u03C3', 'ri', '', # 29-32
78
+ '\u00B3\u2076Ar[a+Cl]/\u2074\u2070Ar[r+a]', '1\u03C3', # 33-34
79
+ '\u00B3\u2078Ar[a+Cl]/\u2074\u2070Ar[r+a]', '1\u03C3', # 35-36
80
+ '\u00B3\u2079Ar[K]/\u2074\u2070Ar[r+a]', '1\u03C3', # 37-38
81
+ 'r1', 'r2', 'r3', # 39-41
82
+ ]
83
+ TOTAL_PARAMS_HEADERS = [
84
+ 'Sequence', '', # 0-1
85
+ '(\u2074\u2070Ar/\u00B3\u2076Ar)t', '%1\u03C3',
86
+ '(\u2074\u2070Ar/\u00B3\u2076Ar)c', '%1\u03C3', # 2-5
87
+ '(\u00B3\u2078Ar/\u00B3\u2076Ar)t', '%1\u03C3',
88
+ '(\u00B3\u2078Ar/\u00B3\u2076Ar)c', '%1\u03C3', # 6-9
89
+ '(\u00B3\u2079Ar/\u00B3\u2077Ar)Ca', '%1\u03C3',
90
+ '(\u00B3\u2078Ar/\u00B3\u2077Ar)Ca', '%1\u03C3',
91
+ '(\u00B3\u2076Ar/\u00B3\u2077Ar)Ca', '%1\u03C3', # 10-15
92
+ '(\u2074\u2070Ar/\u00B3\u2079Ar)K', '%1\u03C3',
93
+ '(\u00B3\u2078Ar/\u00B3\u2079Ar)K', '%1\u03C3', # 16-19
94
+ '(\u00B3\u2076Ar/\u00B3\u2078Ar)Cl', '%1\u03C3', # 20-21
95
+ 'K/Ca', '%1\u03C3', 'K/Cl', '%1\u03C3', 'Ca/Cl', '%1\u03C3', # 22-27
96
+ 'Cycle Number', 'Irradiation Cycles', # 28-29
97
+ 'Irradiation', 'duration', 'Irradiation Time', 'Experiment Time', # 30-33
98
+ 'Storage Years', '', # 34-35
99
+ 'Decay Constant \u2074\u2070K', '%1\u03C3', # 36-37
100
+ 'Decay Constant \u2074\u2070K(EC)', '%1\u03C3', # 38-39
101
+ 'Decay Constant \u2074\u2070K(\u03B2<sup>-</sup>)', '%1\u03C3', # 40-41
102
+ 'Decay Constant \u2074\u2070K(\u03B2<sup>+</sup>)', '%1\u03C3', # 42-43
103
+ 'Decay Constant \u00B3\u2079Ar', '%1\u03C3', # 44-45
104
+ 'Decay Constant \u00B3\u2077Ar', '%1\u03C3', # 46-47
105
+ 'Decay Constant \u00B3\u2076Cl', '%1\u03C3', # 48-49
106
+ 'Decay Activity \u2074\u2070K', '%1\u03C3', # 50-51
107
+ 'Decay Activity \u2074\u2070K(EC)', '%1\u03C3', # 52-53
108
+ 'Decay Activity \u2074\u2070K(\u03B2<sup>-</sup>)', '%1\u03C3', # 54-55
109
+ 'Decay Activity \u2074\u2070K(\u03B2<sup>+</sup>)', '%1\u03C3', # 56-57
110
+ '\u00B3\u2076Cl/\u00B3\u2078Cl Productivity', '%1\u03C3', # 58-59
111
+ 'Std Name', 'Std Age', '1\u03C3', '\u2074\u2070Ar%', '1\u03C3', 'K%', '1\u03C3',
112
+ '\u2074\u2070Ar<sup>*</sup>/K', '1\u03C3', # 60-68
113
+ 'J', '%1\u03C3', 'MDF', '%1\u03C3', # 69-72
114
+ 'Mass \u00B3\u2076Ar', '%1\u03C3', 'Mass \u00B3\u2077Ar', '%1\u03C3',
115
+ 'Mass \u00B3\u2078Ar', '%1\u03C3', 'Mass \u00B3\u2079Ar', '%1\u03C3',
116
+ 'Mass \u2074\u2070', '%1\u03C3', 'K Mass', '%1\u03C3', # 73-84
117
+ 'No', '%1\u03C3', 'Year', '%1\u03C3', '\u2074\u2070K/K', '%1\u03C3',
118
+ '\u00B3\u2075/\u00B3\u2077Cl', '%1\u03C3', 'HCl/Cl', '%1\u03C3', # 85-94
119
+ '\u2074\u2070Ar/\u00B3\u2076Ar air', '%1\u03C3',
120
+ '\u00B3\u2078Ar/\u00B3\u2076Ar air', '%1\u03C3', # 95-98
121
+ 'Isochron Fitting', 'Convergence', 'Iteration', 'Discrimination', # 99-102
122
+ 'Not Zero', 'Corr Blank', 'Corr Discr', 'Corr \u00B3\u2077Ar Decay',
123
+ 'Corr \u00B3\u2079Ar Decay', # 103-107
124
+ 'Ca Degassing', 'K Degassing', 'Cl Degassing', 'Trap Degassing', # 108-111
125
+ 'Using Min Equation',
126
+ # 'Recalibration', 'Using Std Age', 'Use Std Ratio', # 112-115 to be completed
127
+ '', '', '', # 112-115
128
+ 'Auto Plateau Method', # 116 the index includes sequence name and unit
129
+ 'Initial Ratio Model', # 117
130
+ 'Set1 initial Ratio', # 118
131
+ '1\u03C3', # 119
132
+ 'Set2 initial Ratio', # 120
133
+ '1\u03C3', # 121
134
+ 'Isotopic Errors', # 122
135
+ 'Parameter Errors', # 123
136
+ 'Plot Errors', # 124
137
+ ]
138
+
139
+ DEFAULT_PLOT_STYLES = {
140
+ 'figure_1': {
141
+ 'id': 'figure_1', 'name': 'Age Spectra', 'type': 'spectra', 'attr_name': 'AgeSpectraPlot',
142
+ 'rightside_text': [],
143
+ 'title': {'id': 'title', 'show': True, 'text': 'Age Spectra', 'position': 'center',
144
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text', 'font_weight': 'bolder',
145
+ 'font_family': 'Microsoft Sans Serif',},
146
+ 'xaxis': {
147
+ 'title': {'text': 'Cumulative {sup|39}Ar Released (%)', 'type': 'text',}, 'type': 'axis',
148
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
149
+ },
150
+ 'yaxis': {
151
+ 'title': {'text': 'Apparent Age (Ma)', 'type': 'text',}, 'type': 'axis',
152
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
153
+ },
154
+ 'set1': {'id': 'Points Set 1', 'type': 'set',},
155
+ 'set2': {'id': 'Points Set 2', 'type': 'set',},
156
+ 'set3': {'id': 'Points Set 3', 'type': 'set',},
157
+ 'set4': {'id': 'Points Set 4', 'type': 'set',},
158
+ 'set5': {'id': 'Points Set 5', 'type': 'set',},
159
+ 'line1': {
160
+ 'id': 'Spectra Line 1', 'color': '#333333', 'line_type': 'solid',
161
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
162
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
163
+ },
164
+ 'line2': {
165
+ 'id': 'Spectra Line 2', 'color': '#333333', 'line_type': 'solid',
166
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
167
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
168
+ },
169
+ 'line3': {
170
+ 'id': 'Set1 Line 1', 'color': '#FF0000', 'line_type': 'solid',
171
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
172
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
173
+ },
174
+ 'line4': {
175
+ 'id': 'Set1 Line 2', 'color': '#FF0000', 'line_type': 'solid',
176
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
177
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
178
+ },
179
+ 'line5': {
180
+ 'id': 'Set2 Line 1', 'color': '#00B0F0', 'line_type': 'solid',
181
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
182
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
183
+ },
184
+ 'line6': {
185
+ 'id': 'Set2 Line 2', 'color': '#00B0F0', 'line_type': 'solid',
186
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
187
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
188
+ },
189
+ 'line7': {
190
+ 'id': 'Set4 Line 1', 'color': '#FF0000', 'line_type': 'dashed',
191
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
192
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
193
+ },
194
+ 'line8': {
195
+ 'id': 'Set4 Line 2', 'color': '#FF0000', 'line_type': 'dashed',
196
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
197
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
198
+ },
199
+ 'line9': {
200
+ 'id': 'Set5 Line 1', 'color': '#00B0F0', 'line_type': 'dashed',
201
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
202
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
203
+ },
204
+ 'line10': {
205
+ 'id': 'Set5 Line 2', 'color': '#00B0F0', 'line_type': 'dashed',
206
+ 'line_width': 2, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
207
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
208
+ },
209
+ 'text1': {
210
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
211
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
212
+ },
213
+ 'text2': {
214
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
215
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
216
+ },
217
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
218
+ },
219
+ 'figure_2': {
220
+ 'id': 'figure_2', 'name': 'Normal Isochron', 'type': 'isochron', 'attr_name': 'NorIsochronPlot',
221
+ 'rightside_text': [],
222
+ 'ellipse': {
223
+ 'id': 'ellipse', 'color': 'none', 'border_color': '#333333', 'border_type': 'solid',
224
+ 'show': False, 'fill': False,
225
+ 'border_width': 1, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
226
+ },
227
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
228
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
229
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
230
+ 'xaxis': {
231
+ 'title': {'text': '{sup|39}Ar{sub|K} / {sup|36}Ar{sub|a}', 'type': 'text',}, 'type': 'axis',
232
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
233
+ },
234
+ 'yaxis': {
235
+ 'title': {'text': '{sup|40}Ar{sup|*} / {sup|36}Ar{sub|a}', 'type': 'text',}, 'type': 'axis',
236
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
237
+ },
238
+ 'set1': {
239
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
240
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
241
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
242
+ },
243
+ 'set2': {
244
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
245
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
246
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
247
+ },
248
+ 'set3': {
249
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
250
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
251
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
252
+ },
253
+ 'line1': {
254
+ 'id': 'Line for Set 1', 'type': 'set', 'color': '#FF0000', 'line_type': 'solid', 'line_width': 2,
255
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
256
+ },
257
+ 'line2': {
258
+ 'id': 'Line for Set 2', 'type': 'set', 'color': '#00B0F0', 'line_type': 'solid', 'line_width': 2,
259
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
260
+ },
261
+ 'errline': {
262
+ 'id': 'Error Lines', 'type': 'set', 'color': '#333333', 'line_type': 'solid', 'line_width': 2,
263
+ 'label': {'show': False, 'type': 'label'}, 'show': True
264
+ },
265
+ 'text1': {
266
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
267
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
268
+ },
269
+ 'text2': {
270
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
271
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
272
+ },
273
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
274
+ },
275
+ 'figure_3': {
276
+ 'id': 'figure_3', 'name': 'Inverse Isochron', 'type': 'isochron', 'attr_name': 'InvIsochronPlot',
277
+ 'rightside_text': [],
278
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
279
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
280
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
281
+ 'xaxis': {
282
+ 'title': {'text': '{sup|39}Ar{sub|K} / {sup|40}Ar{sup|*}', 'type': 'text',}, 'type': 'axis',
283
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
284
+ },
285
+ 'yaxis': {
286
+ 'title': {'text': '{sup|36}Ar{sub|a} / {sup|40}Ar{sup|*}', 'type': 'text',}, 'type': 'axis',
287
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
288
+ },
289
+ 'ellipse': {
290
+ 'id': 'ellipse', 'color': 'none', 'border_color': '#333333', 'border_type': 'solid',
291
+ 'show': False, 'fill': False,
292
+ 'border_width': 1, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
293
+ },
294
+ 'set1': {
295
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
296
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
297
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
298
+ },
299
+ 'set2': {
300
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
301
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
302
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
303
+ },
304
+ 'set3': {
305
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
306
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
307
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
308
+ },
309
+ 'line1': {
310
+ 'id': 'Line for Set 1', 'type': 'set', 'color': '#FF0000', 'line_type': 'solid', 'line_width': 2,
311
+ 'label': {'show': False, 'type': 'label',}
312
+ },
313
+ 'line2': {
314
+ 'id': 'Line for Set 2', 'type': 'set', 'color': '#00B0F0', 'line_type': 'solid', 'line_width': 2,
315
+ 'label': {'show': False, 'type': 'label',}
316
+ },
317
+ 'errline': {
318
+ 'id': 'Error Lines', 'type': 'set', 'color': '#333333', 'line_type': 'solid', 'line_width': 2,
319
+ 'label': {'show': False, 'type': 'label'}, 'show': True
320
+ },
321
+ 'text1': {
322
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
323
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
324
+ },
325
+ 'text2': {
326
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
327
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
328
+ },
329
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
330
+ },
331
+ 'figure_4': {
332
+ 'id': 'figure_4', 'name': 'K-Cl-Ar 1', 'type': 'isochron', 'attr_name': 'KClAr1IsochronPlot',
333
+ 'rightside_text': [],
334
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
335
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
336
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
337
+ 'xaxis': {
338
+ 'title': {'text': '{sup|39}Ar{sub|K} / {sup|38}Ar{sub|Cl}', 'type': 'text',}, 'type': 'axis',
339
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
340
+ },
341
+ 'yaxis': {
342
+ 'title': {'text': '{sup|40}Ar{sup|*} / {sup|38}Ar{sub|Cl}', 'type': 'text',}, 'type': 'axis',
343
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
344
+ },
345
+ 'ellipse': {
346
+ 'id': 'ellipse', 'color': 'none', 'border_color': '#333333', 'border_type': 'solid',
347
+ 'show': False, 'fill': False,
348
+ 'border_width': 1, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
349
+ },
350
+ 'set1': {
351
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
352
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
353
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
354
+ },
355
+ 'set2': {
356
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
357
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
358
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
359
+ },
360
+ 'set3': {
361
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
362
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
363
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
364
+ },
365
+ 'line1': {
366
+ 'id': 'Line for Set 1', 'type': 'set', 'color': '#FF0000', 'line_type': 'solid', 'line_width': 2,
367
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
368
+ },
369
+ 'line2': {
370
+ 'id': 'Line for Set 2', 'type': 'set', 'color': '#00B0F0', 'line_type': 'solid', 'line_width': 2,
371
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
372
+ },
373
+ 'errline': {
374
+ 'id': 'Error Lines', 'type': 'set', 'color': '#333333', 'line_type': 'solid', 'line_width': 2,
375
+ 'label': {'show': False, 'type': 'label'}, 'show': True
376
+ },
377
+ 'text1': {
378
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
379
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
380
+ },
381
+ 'text2': {
382
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
383
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
384
+ },
385
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
386
+ },
387
+ 'figure_5': {
388
+ 'id': 'figure_5', 'name': 'K-Cl-Ar 2', 'type': 'isochron', 'attr_name': 'KClAr2IsochronPlot',
389
+ 'rightside_text': [],
390
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
391
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
392
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
393
+ 'xaxis': {
394
+ 'title': {'text': '{sup|39}Ar{sub|K} / {sup|40}Ar{sup|*}', 'type': 'text',}, 'type': 'axis',
395
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
396
+ },
397
+ 'yaxis': {
398
+ 'title': {'text': '{sup|38}Ar{sub|Cl} / {sup|40}Ar{sup|*}', 'type': 'text',}, 'type': 'axis',
399
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
400
+ },
401
+ 'ellipse': {
402
+ 'id': 'ellipse', 'color': 'none', 'border_color': '#333333', 'border_type': 'solid',
403
+ 'show': False, 'fill': False,
404
+ 'border_width': 1, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
405
+ },
406
+ 'set1': {
407
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
408
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
409
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
410
+ },
411
+ 'set2': {
412
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
413
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
414
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
415
+ },
416
+ 'set3': {
417
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
418
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
419
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
420
+ },
421
+ 'line1': {
422
+ 'id': 'Line for Set 1', 'type': 'set', 'color': '#FF0000', 'line_type': 'solid', 'line_width': 2,
423
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
424
+ },
425
+ 'line2': {
426
+ 'id': 'Line for Set 2', 'type': 'set', 'color': '#00B0F0', 'line_type': 'solid', 'line_width': 2,
427
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
428
+ },
429
+ 'errline': {
430
+ 'id': 'Error Lines', 'type': 'set', 'color': '#333333', 'line_type': 'solid', 'line_width': 2,
431
+ 'label': {'show': False, 'type': 'label'}, 'show': True
432
+ },
433
+ 'text1': {
434
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
435
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
436
+ },
437
+ 'text2': {
438
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
439
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
440
+ },
441
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
442
+ },
443
+ 'figure_6': {
444
+ 'id': 'figure_6', 'name': 'K-Cl-Ar 3', 'type': 'isochron', 'attr_name': 'KClAr3IsochronPlot',
445
+ 'rightside_text': [],
446
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
447
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
448
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
449
+ 'xaxis': {
450
+ 'title': {'text': '{sup|38}Ar{sub|Cl} / {sup|39}Ar{sub|K}', 'type': 'text',}, 'type': 'axis',
451
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
452
+ },
453
+ 'yaxis': {
454
+ 'title': {'text': '{sup|40}Ar{sup|*} / {sup|39}Ar{sub|K}', 'type': 'text',}, 'type': 'axis',
455
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
456
+ },
457
+ 'ellipse': {
458
+ 'id': 'ellipse', 'color': 'none', 'border_color': '#333333', 'border_type': 'solid',
459
+ 'show': False, 'fill': False,
460
+ 'border_width': 1, 'opacity': 1, 'symbol_size': 0, 'symbol': 'none', 'type': 'set',
461
+ },
462
+ 'set1': {
463
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
464
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
465
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
466
+ },
467
+ 'set2': {
468
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
469
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
470
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
471
+ },
472
+ 'set3': {
473
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
474
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
475
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
476
+ },
477
+ 'line1': {
478
+ 'id': 'Line for Set 1', 'type': 'set', 'color': '#FF0000', 'line_type': 'solid', 'line_width': 2,
479
+ 'label': {'show': False, 'type': 'label'}
480
+ },
481
+ 'line2': {
482
+ 'id': 'Line for Set 2', 'type': 'set', 'color': '#00B0F0', 'line_type': 'solid', 'line_width': 2,
483
+ 'label': {'show': False, 'type': 'label'}
484
+ },
485
+ 'errline': {
486
+ 'id': 'Error Lines', 'type': 'set', 'color': '#333333', 'line_type': 'solid', 'line_width': 2,
487
+ 'label': {'show': False, 'type': 'label'}, 'show': True
488
+ },
489
+ 'text1': {
490
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
491
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
492
+ },
493
+ 'text2': {
494
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
495
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
496
+ },
497
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
498
+ },
499
+ 'figure_7': {
500
+ 'id': 'figure_7', 'name': '3D Isochron', 'type': 'isochron', 'attr_name': 'ThreeDIsochronPlot',
501
+ 'rightside_text': [],
502
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
503
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
504
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
505
+ 'xaxis': {
506
+ 'title': {'text': '{sup|36}Ar{sub|a+Cl} / {sup|40}Ar{sub|a+r}', 'type': 'text',}, 'type': 'axis',
507
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
508
+ },
509
+ 'zaxis': {
510
+ 'title': {'text': '{sup|39}Ar{sub|K} / {sup|40}Ar{sub|a+r}', 'type': 'text',}, 'type': 'axis',
511
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
512
+ },
513
+ 'yaxis': {
514
+ 'title': {'text': '{sup|38}Ar{sub|a+Cl} / {sup|40}Ar{sub|a+r}', 'type': 'text',}, 'type': 'axis',
515
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
516
+ },
517
+ 'set1': {
518
+ 'id': 'Points Set 1', 'color': '#FF0000', 'border_color': '#FF0000', 'border_width': 2, 'type': 'set',
519
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
520
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
521
+ },
522
+ 'set2': {
523
+ 'id': 'Points Set 2', 'color': '#00B0F0', 'border_color': '#00B0F0', 'border_width': 2, 'type': 'set',
524
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
525
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
526
+ },
527
+ 'set3': {
528
+ 'id': 'Unselected Points', 'color': '#FFFFFF', 'border_color': '#222222', 'border_width': 2, 'type': 'set',
529
+ 'border_type': 'solid', 'opacity': 0.8, 'symbol_size': 10, 'symbol': 'circle',
530
+ 'label': {'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'type': 'label'}
531
+ },
532
+ 'text1': {
533
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
534
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
535
+ },
536
+ 'text2': {
537
+ 'id': 'Text for Set 2', 'show': True, 'font_size': 16, 'color': '#00B0F0', 'opacity': 1, 'type': 'text',
538
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif',
539
+ },
540
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
541
+ },
542
+ 'figure_8': {
543
+ 'id': 'figure_8', 'name': 'Degas Pattern', 'type': 'plot', 'attr_name': 'DegasPatternPlot',
544
+ 'rightside_text': [],
545
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
546
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
547
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
548
+ 'xaxis': {
549
+ 'title': {'text': 'Step', 'type': 'text',}, 'type': 'axis',
550
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
551
+ },
552
+ 'yaxis': {
553
+ 'title': {'text': 'Argon isotopes (%)', 'type': 'text',}, 'type': 'axis',
554
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
555
+ },
556
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top', 'color': '#252525'}
557
+ },
558
+ 'figure_9': {
559
+ 'id': 'figure_9', 'name': 'Age Distribution', 'type': 'plot', 'attr_name': 'AgeDistributionPlot',
560
+ 'rightside_text': [],
561
+ 'title': {'id': 'title', 'show': True, 'text': '', 'position': 'center',
562
+ 'font_size': 18, 'color': '#333333', 'opacity': 1, 'type': 'text',
563
+ 'font_weight': 'bolder', 'font_family': 'Microsoft Sans Serif',},
564
+ 'xaxis': {
565
+ 'title': {'text': '{sup|40}Ar / {sup|39}Ar Age', 'type': 'text',}, 'type': 'axis',
566
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
567
+ },
568
+ 'yaxis': {
569
+ 'title': {'text': 'Count', 'type': 'text',}, 'type': 'axis',
570
+ 'min': 0, 'max': 100, 'show_splitline': False, 'ticks_inside': False, 'split_number': 5, 'interval': 10,
571
+ },
572
+ 'set1': {
573
+ 'id': 'Histogram', 'color': '#FFFFFF', 'border_color': '#333333', 'border_width': 1,
574
+ 'border_type': 'dashed', 'opacity': 0.5, 'symbol_size': 10, 'type': 'set', 'index': 0,
575
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0],
576
+ 'position': 'top', 'color': '#252525'}
577
+ },
578
+ 'set2': {
579
+ 'id': 'KDE', 'color': '#FF0000', 'line_width': 2, 'line_type': 'solid', 'symbol': 'None', 'symbol_size': 0,
580
+ 'opacity': 1, 'type': 'set', 'index': 9, 'band_extend': False, 'band_maximize': False, 'band_points': 200,
581
+ 'auto_width': 'Scott',
582
+ 'label': {'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0],
583
+ 'position': 'top', 'color': '#252525'}
584
+ },
585
+ 'set3': {
586
+ 'id': 'Age Bar', 'color': '#252525', 'border_color': '#252525', 'border_width': 1, 'border_type': 'solid',
587
+ 'opacity': 1, 'symbol_size': 10, 'type': 'set', 'index': 5, 'vertical_align': 'spread', 'bar_height': 5,
588
+ 'bar_interval': 5,
589
+ 'label': {
590
+ 'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top',
591
+ 'color': '#252525',
592
+ }
593
+ },
594
+ 'text1': {
595
+ 'id': 'Text for Set 1', 'show': True, 'font_size': 16, 'color': '#FF0000', 'opacity': 1, 'type': 'text',
596
+ 'font_weight': 'bold', 'font_family': 'Microsoft Sans Serif', 'pos': [1500, 10],
597
+ },
598
+ 'label': {
599
+ 'id': '', 'type': 'label', 'show': False, 'distance': 5, 'offset': [10, 0], 'position': 'top',
600
+ 'color': '#252525',
601
+ }
602
+ },
603
+ }
604
+
605
+ VERSION = '20231208'
606
+
607
+
608
+ class Sample:
609
+
610
+ def __init__(self, **kwargs):
611
+
612
+ self.Doi = ""
613
+ self.help = ""
614
+ self.Info = Info()
615
+
616
+ self.SequenceName = []
617
+ self.SequenceValue = []
618
+ self.SequenceUnit = []
619
+
620
+ self.NewIntercept = []
621
+ self.NewBlank = []
622
+ self.NewParam = []
623
+
624
+ self.SampleIntercept = []
625
+ self.BlankIntercept = []
626
+ self.AnalysisDateTime = []
627
+
628
+ self.BlankCorrected = []
629
+ self.MassDiscrCorrected = []
630
+ self.DecayCorrected = []
631
+ self.InterferenceCorrected = []
632
+ self.CorrectedValues = []
633
+ self.DegasValues = []
634
+
635
+ self.ApparentAgeValues = []
636
+ self.IsochronValues = []
637
+ self.TotalParam = []
638
+
639
+ self.PublishValues = []
640
+
641
+ self.SelectedSequence1 = []
642
+ self.SelectedSequence2 = []
643
+ self.UnselectedSequence = []
644
+ self.IsochronMark = []
645
+
646
+ # Tables and Plots
647
+ self.UnknownTable = Table()
648
+ self.BlankTable = Table()
649
+ self.CorrectedTable = Table()
650
+ self.DegasPatternTable = Table()
651
+ self.PublishTable = Table()
652
+ self.AgeSpectraTable = Table()
653
+ self.IsochronsTable = Table()
654
+ self.TotalParamsTable = Table()
655
+ self.AgeSpectraPlot = Plot()
656
+ self.NorIsochronPlot = Plot()
657
+ self.InvIsochronPlot = Plot()
658
+ self.KClAr1IsochronPlot = Plot()
659
+ self.KClAr2IsochronPlot = Plot()
660
+ self.KClAr3IsochronPlot = Plot()
661
+ self.ThreeDIsochronPlot = Plot()
662
+ self.CorrelationPlot = Plot()
663
+ self.DegasPatternPlot = Plot()
664
+ self.AgeDistributionPlot = Plot()
665
+
666
+ # self.Components = {}
667
+
668
+ # self.__version = '20230521'
669
+ # self.__version = '20230709' # add labels to isochron plots
670
+ # self.__version = '20230724' # change header
671
+ # self.__version = '20230730' # delete calcparams attribute
672
+ # self.__version = '20230827' # using merge smp to update arr version
673
+ self.__version = '20231116' # change smp parameters
674
+
675
+ @property
676
+ def version(self):
677
+ return self.__version
678
+
679
+ def name(self): ...
680
+ def doi(self): ...
681
+ def sample(self): ...
682
+ def researcher(self): ...
683
+ def laboratory(self): ...
684
+ def results(self): ...
685
+ def sequence(self): ...
686
+ def recalculate(self): ...
687
+
688
+ def initial(self): ...
689
+ def set_selection(self): ...
690
+ def update_table(self): ...
691
+
692
+ def unknown(self): ...
693
+ def blank(self): ...
694
+ def parameters(self): ...
695
+ def corrected(self): ...
696
+ def degas(self): ...
697
+ def isochron(self): ...
698
+ def apparent_ages(self): ...
699
+ def publish(self): ...
700
+
701
+ def corr_blank(self): ...
702
+ def corr_massdiscr(self): ...
703
+ def corr_decay(self): ...
704
+ def corr_ca(self): ...
705
+ def corr_k(self): ...
706
+ def corr_cl(self): ...
707
+ def corr_atm(self): ...
708
+ def corr_r(self): ...
709
+ def calc_ratio(self): ...
710
+
711
+ def show_data(self): ...
712
+
713
+
714
+ class Table:
715
+ def __init__(
716
+ self,
717
+ id='',
718
+ name='Table',
719
+ colcount=None,
720
+ rowcount=None,
721
+ header=None,
722
+ data=None,
723
+ coltypes=None,
724
+ textindexs=None,
725
+ numericindexs=None,
726
+ **kwargs
727
+ ):
728
+ if header is None:
729
+ header = ['']
730
+ if data is None:
731
+ data = [['']]
732
+ if colcount is None:
733
+ colcount = len(header)
734
+ if rowcount is None:
735
+ rowcount = len(data[0])
736
+ if coltypes is None:
737
+ coltypes = [{'type': 'numeric'}] * colcount
738
+ self.id = id
739
+ self.name = name
740
+ self.colcount = colcount
741
+ self.rowcount = rowcount
742
+ self.header = header
743
+ self.data = data
744
+ self.coltypes = coltypes
745
+ self.numericindexs = numericindexs
746
+ self.textindexs = textindexs
747
+ if textindexs is not None and numericindexs is not None:
748
+ for i in textindexs:
749
+ if i < self.colcount:
750
+ self.coltypes[i].update({'type': 'text'})
751
+ for i in numericindexs:
752
+ if i < self.colcount:
753
+ self.coltypes[i].update({'type': 'numeric'})
754
+ for k, v in kwargs.items():
755
+ setattr(self, k, v)
756
+
757
+
758
+ class Plot:
759
+ def __init__(
760
+ self,
761
+ id='',
762
+ type='',
763
+ name='',
764
+ data=None,
765
+ info=None,
766
+ **kwargs
767
+ ):
768
+ if data is None:
769
+ data = []
770
+ self.id = id
771
+ self.data = data
772
+ self.info = info
773
+ self.type = type
774
+ self.name = name
775
+ for k, v in kwargs.items():
776
+ setattr(self, k, v)
777
+
778
+ class BasicAttr:
779
+ def __init__(
780
+ self,
781
+ enabled=True,
782
+ id='',
783
+ type='',
784
+ info=None,
785
+ ):
786
+ self.enabled = enabled
787
+ self.id = id
788
+ self.type = type
789
+ self.info = info
790
+
791
+ def show(self):
792
+ self.enabled = True
793
+ return self
794
+
795
+ def hidden(self):
796
+ self.enabled = False
797
+ return self
798
+
799
+ class Axis(BasicAttr):
800
+ def __init__(
801
+ self,
802
+ id='',
803
+ title=None,
804
+ min=0,
805
+ max=100,
806
+ show_splitline=False,
807
+ **kwargs
808
+ ):
809
+ super().__init__(id=id, type='Axis')
810
+ self.title = title
811
+ self.min = min
812
+ self.max = max
813
+ self.show_splitline = show_splitline
814
+ for k, v in kwargs.items():
815
+ setattr(self, k, v)
816
+
817
+ class Text(BasicAttr):
818
+ def __init__(
819
+ self,
820
+ id='',
821
+ text='',
822
+ show=True,
823
+ color=None,
824
+ font_size=8,
825
+ font_family=None,
826
+ font_weight=None, # bold, normal
827
+ pos=None,
828
+ **kwargs
829
+ ):
830
+ super().__init__(id=id, type='Text')
831
+ if pos is None:
832
+ pos = [0, 0]
833
+ self.text = text
834
+ self.show = show
835
+ self.color = color
836
+ self.font_family = font_family
837
+ self.font_size = font_size
838
+ self.font_weight = font_weight
839
+ self.pos = pos
840
+ for k, v in kwargs.items():
841
+ setattr(self, k, v)
842
+
843
+ class Label(BasicAttr):
844
+ def __init__(
845
+ self,
846
+ id='',
847
+ show=False,
848
+ color=None,
849
+ position=None,
850
+ distance=None,
851
+ offset=None,
852
+ **kwargs
853
+ ):
854
+ super().__init__(id=id, type='Label')
855
+ if offset is None:
856
+ offset = [10, 0]
857
+ self.show = show
858
+ self.color = color
859
+ self.position = position
860
+ self.offset = offset
861
+ self.distance = distance
862
+ for k, v in kwargs.items():
863
+ setattr(self, k, v)
864
+
865
+ class Set(BasicAttr):
866
+ def __init__(
867
+ self,
868
+ id='',
869
+ label=None,
870
+ info=None,
871
+ color=None,
872
+ border_color=None,
873
+ border_width=None,
874
+ line_width=None,
875
+ line_type=None,
876
+ opacity=None,
877
+ index=None,
878
+ data=None,
879
+ symbol_size=None,
880
+ **kwargs
881
+ ):
882
+ super().__init__(id=id, type='Set', info=info)
883
+ if data is None:
884
+ data = []
885
+ self.label = label
886
+ self.color = color
887
+ self.border_color = border_color
888
+ self.border_width = border_width
889
+ self.line_width = line_width
890
+ self.line_type = line_type
891
+ self.opacity = opacity
892
+ self.index = index
893
+ self.data = data
894
+ self.symbol_size = symbol_size
895
+ for k, v in kwargs.items():
896
+ setattr(self, k, v)
897
+
898
+
899
+ class Info:
900
+ def __init__(
901
+ self,
902
+ id='',
903
+ name='',
904
+ type='Info',
905
+ **kwargs
906
+ ):
907
+ self.id = id
908
+ self.name = name
909
+ self.type = type
910
+ for k, v in kwargs.items():
911
+ setattr(self, k, v)