@bedrock-engineer/bro-xml-parser 0.3.0 → 0.5.0
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.
- package/README.md +21 -12
- package/dist/browser.d.ts +15 -5
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +7 -5
- package/dist/browser.js.map +1 -1
- package/dist/core/columns.d.ts +80 -0
- package/dist/core/columns.d.ts.map +1 -0
- package/dist/core/columns.js +100 -0
- package/dist/core/columns.js.map +1 -0
- package/dist/core/producer.d.ts +216 -0
- package/dist/core/producer.d.ts.map +1 -0
- package/dist/core/producer.js +85 -0
- package/dist/core/producer.js.map +1 -0
- package/dist/core/schema-parser.d.ts +41 -17
- package/dist/core/schema-parser.d.ts.map +1 -1
- package/dist/core/schema-parser.js +178 -73
- package/dist/core/schema-parser.js.map +1 -1
- package/dist/core/version-detector.d.ts +3 -1
- package/dist/core/version-detector.d.ts.map +1 -1
- package/dist/core/version-detector.js +37 -0
- package/dist/core/version-detector.js.map +1 -1
- package/dist/decoders/constants.d.ts +2 -0
- package/dist/decoders/constants.d.ts.map +1 -0
- package/dist/decoders/constants.js +2 -0
- package/dist/decoders/constants.js.map +1 -0
- package/dist/decoders/type-decoders.d.ts +38 -0
- package/dist/decoders/type-decoders.d.ts.map +1 -0
- package/dist/decoders/type-decoders.js +134 -0
- package/dist/decoders/type-decoders.js.map +1 -0
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +16 -0
- package/dist/namespaces.js.map +1 -1
- package/dist/node.d.ts +15 -5
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +7 -5
- package/dist/node.js.map +1 -1
- package/dist/parser.d.ts +69 -19
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +103 -29
- package/dist/parser.js.map +1 -1
- package/dist/producers.d.ts +36 -0
- package/dist/producers.d.ts.map +1 -0
- package/dist/producers.js +35 -0
- package/dist/producers.js.map +1 -0
- package/dist/resolvers/gld-resolvers.d.ts +30 -0
- package/dist/resolvers/gld-resolvers.d.ts.map +1 -0
- package/dist/resolvers/gld-resolvers.js +76 -0
- package/dist/resolvers/gld-resolvers.js.map +1 -0
- package/dist/resolvers/gmw-resolvers.d.ts +37 -0
- package/dist/resolvers/gmw-resolvers.d.ts.map +1 -0
- package/dist/resolvers/gmw-resolvers.js +101 -0
- package/dist/resolvers/gmw-resolvers.js.map +1 -0
- package/dist/resolvers.d.ts +2 -0
- package/dist/resolvers.d.ts.map +1 -1
- package/dist/resolvers.js +4 -0
- package/dist/resolvers.js.map +1 -1
- package/dist/schema-presets.d.ts +67 -16
- package/dist/schema-presets.d.ts.map +1 -1
- package/dist/schema-presets.js +51 -114
- package/dist/schema-presets.js.map +1 -1
- package/dist/schemas/bhrg-schema.d.ts +528 -9
- package/dist/schemas/bhrg-schema.d.ts.map +1 -1
- package/dist/schemas/bhrg-schema.js +330 -189
- package/dist/schemas/bhrg-schema.js.map +1 -1
- package/dist/schemas/bhrgt-analysis.d.ts +1057 -0
- package/dist/schemas/bhrgt-analysis.d.ts.map +1 -0
- package/dist/schemas/bhrgt-analysis.js +454 -0
- package/dist/schemas/bhrgt-analysis.js.map +1 -0
- package/dist/schemas/bore-schema.d.ts +773 -9
- package/dist/schemas/bore-schema.d.ts.map +1 -1
- package/dist/schemas/bore-schema.js +344 -292
- package/dist/schemas/bore-schema.js.map +1 -1
- package/dist/schemas/common-fields.d.ts +50 -5
- package/dist/schemas/common-fields.d.ts.map +1 -1
- package/dist/schemas/common-fields.js +70 -19
- package/dist/schemas/common-fields.js.map +1 -1
- package/dist/schemas/cpt-schema.d.ts +126 -9
- package/dist/schemas/cpt-schema.d.ts.map +1 -1
- package/dist/schemas/cpt-schema.js +182 -285
- package/dist/schemas/cpt-schema.js.map +1 -1
- package/dist/schemas/generated/gld.generated.d.ts +9 -0
- package/dist/schemas/generated/gld.generated.d.ts.map +1 -0
- package/dist/schemas/generated/gld.generated.js +19 -0
- package/dist/schemas/generated/gld.generated.js.map +1 -0
- package/dist/schemas/gld-schema.d.ts +92 -0
- package/dist/schemas/gld-schema.d.ts.map +1 -0
- package/dist/schemas/gld-schema.js +88 -0
- package/dist/schemas/gld-schema.js.map +1 -0
- package/dist/schemas/gmw-schema.d.ts +180 -0
- package/dist/schemas/gmw-schema.d.ts.map +1 -0
- package/dist/schemas/gmw-schema.js +131 -0
- package/dist/schemas/gmw-schema.js.map +1 -0
- package/dist/types/index.d.ts +51 -1421
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for BRO/XML parser
|
|
3
3
|
*/
|
|
4
|
+
import type { Produced } from "../core/producer.js";
|
|
5
|
+
import type { CPT_PRODUCER } from "../schemas/cpt-schema.js";
|
|
6
|
+
import type { BORE_PRODUCER } from "../schemas/bore-schema.js";
|
|
7
|
+
import type { BHRG_PRODUCER } from "../schemas/bhrg-schema.js";
|
|
8
|
+
import type { GMW_PRODUCER } from "../schemas/gmw-schema.js";
|
|
9
|
+
import type { GLD_PRODUCER } from "../schemas/gld-schema.js";
|
|
4
10
|
/**
|
|
5
11
|
* Namespace mapping (prefix -> URI)
|
|
6
12
|
*/
|
|
@@ -21,9 +27,9 @@ export interface ParseMeta {
|
|
|
21
27
|
*/
|
|
22
28
|
schemaNamespace: string;
|
|
23
29
|
/**
|
|
24
|
-
* Data type detected (CPT, BHR-GT, BHR-G)
|
|
30
|
+
* Data type detected (CPT, BHR-GT, BHR-G, GMW, GLD)
|
|
25
31
|
*/
|
|
26
|
-
dataType: "CPT" | "BHR-GT" | "BHR-G";
|
|
32
|
+
dataType: "CPT" | "BHR-GT" | "BHR-G" | "GMW" | "GLD";
|
|
27
33
|
/**
|
|
28
34
|
* Warnings encountered during parsing
|
|
29
35
|
*
|
|
@@ -41,32 +47,6 @@ export interface XMLAdapter {
|
|
|
41
47
|
evaluateXPath(doc: Document | Node, query: string, namespaceResolver: (prefix: string | null) => string | null): Node | null;
|
|
42
48
|
evaluateXPathAll(doc: Document | Node, query: string, namespaceResolver: (prefix: string | null) => string | null): Array<Node>;
|
|
43
49
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Context passed to resolver functions
|
|
46
|
-
*/
|
|
47
|
-
export interface ResolverContext {
|
|
48
|
-
node: Node;
|
|
49
|
-
element: Node;
|
|
50
|
-
namespaces: Namespaces;
|
|
51
|
-
adapter: XMLAdapter;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Resolver function type
|
|
55
|
-
*/
|
|
56
|
-
export type ResolverFunction = (value: string | null, context: ResolverContext) => unknown;
|
|
57
|
-
/**
|
|
58
|
-
* Schema field definition
|
|
59
|
-
*/
|
|
60
|
-
export interface SchemaField {
|
|
61
|
-
xpath: string;
|
|
62
|
-
resolver?: ResolverFunction;
|
|
63
|
-
attribute?: string;
|
|
64
|
-
required?: boolean;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Schema definition (field name -> field config)
|
|
68
|
-
*/
|
|
69
|
-
export type Schema = Record<string, SchemaField>;
|
|
70
50
|
/**
|
|
71
51
|
* BRO quality regime
|
|
72
52
|
*
|
|
@@ -82,19 +62,9 @@ export interface Location {
|
|
|
82
62
|
y: number;
|
|
83
63
|
epsg: string;
|
|
84
64
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Layer of material removed before CPT was performed (e.g. asphalt, gravel fill)
|
|
87
|
-
*
|
|
88
|
-
* Found in additionalInvestigation. Directly affects depth interpretation.
|
|
89
|
-
*/
|
|
90
|
-
export interface RemovedLayer {
|
|
91
|
-
sequenceNumber: number;
|
|
92
|
-
upperBoundary: number;
|
|
93
|
-
lowerBoundary: number;
|
|
94
|
-
description: string | null;
|
|
95
|
-
}
|
|
96
65
|
/**
|
|
97
66
|
* CPT measurement row (dynamic fields based on parameters)
|
|
67
|
+
* @internal
|
|
98
68
|
*/
|
|
99
69
|
export interface CPTMeasurement {
|
|
100
70
|
penetrationLength: number;
|
|
@@ -125,6 +95,7 @@ export interface CPTMeasurement {
|
|
|
125
95
|
}
|
|
126
96
|
/**
|
|
127
97
|
* Single measurement row in a dissipation test (pore pressure decay over time)
|
|
98
|
+
* @internal
|
|
128
99
|
*/
|
|
129
100
|
export interface DissipationMeasurement {
|
|
130
101
|
elapsedTime: number;
|
|
@@ -134,1401 +105,38 @@ export interface DissipationMeasurement {
|
|
|
134
105
|
porePressureU3: number | null;
|
|
135
106
|
}
|
|
136
107
|
/**
|
|
137
|
-
*
|
|
108
|
+
* Complete CPT data (metadata + measurements).
|
|
138
109
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
110
|
+
* Inferred from `CPT_PRODUCER`; `meta` (parse metadata) and the optional
|
|
111
|
+
* user-set `alias` are the only fields not produced from the XML.
|
|
141
112
|
*/
|
|
142
|
-
export
|
|
143
|
-
penetrationLength: number;
|
|
144
|
-
phenomenonTime: string | null;
|
|
145
|
-
measurements: Array<DissipationMeasurement>;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Common `brocom:RegistrationObject` fields shared by every BRO registration
|
|
149
|
-
* type (CPT, BHR-GT, BHR-G, ...).
|
|
150
|
-
*
|
|
151
|
-
* Mirrors how the XSDs model these: each registration object extends
|
|
152
|
-
* `brocom:RegistrationObject` via complexContent. Domain data interfaces extend
|
|
153
|
-
* this so the shared surface is declared once and stays consistent. The runtime
|
|
154
|
-
* counterpart is `COMMON_REGISTRATION_FIELDS` in schemas/common-fields.ts.
|
|
155
|
-
*/
|
|
156
|
-
export interface BRORegistrationObject {
|
|
157
|
-
broId: string | null;
|
|
158
|
-
/**
|
|
159
|
-
* BRO quality regime
|
|
160
|
-
*
|
|
161
|
-
* - IMBRO: Strict regime (all mandatory fields required)
|
|
162
|
-
* - IMBRO/A: Relaxed regime for historical data (allows missing fields)
|
|
163
|
-
*/
|
|
164
|
-
qualityRegime: QualityRegime | null;
|
|
165
|
-
/** Party responsible for delivering the data to the BRO (bronhouder, KvK number or name) */
|
|
166
|
-
deliveryAccountableParty: string | null;
|
|
167
|
-
/** Object identifier assigned by the accountable party (their own reference) */
|
|
168
|
-
objectIdAccountableParty: string | null;
|
|
169
|
-
/** KvK number of the party responsible for the delivery */
|
|
170
|
-
deliveryResponsibleParty: string | null;
|
|
171
|
-
/** BRO registration history */
|
|
172
|
-
registrationHistory: RegistrationHistory | null;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Complete CPT data (metadata + measurements)
|
|
176
|
-
*/
|
|
177
|
-
export interface CPTData extends BRORegistrationObject {
|
|
178
|
-
/**
|
|
179
|
-
* Metadata about the parsed document (schema version, warnings)
|
|
180
|
-
*/
|
|
113
|
+
export type CPTData = {
|
|
181
114
|
meta: ParseMeta;
|
|
182
|
-
/**
|
|
183
|
-
* User-defined identifier (not parsed from XML)
|
|
184
|
-
*
|
|
185
|
-
* Useful for tracking data that doesn't have a broId yet,
|
|
186
|
-
* such as during data collection or before BRO registration.
|
|
187
|
-
*
|
|
188
|
-
* @example
|
|
189
|
-
* ```typescript
|
|
190
|
-
* const cpt = parser.parseCPT(xmlString);
|
|
191
|
-
* cpt.alias = "Site A - Test 1";
|
|
192
|
-
* ```
|
|
193
|
-
*/
|
|
194
115
|
alias?: string;
|
|
195
|
-
|
|
196
|
-
researchOperator: string | null;
|
|
197
|
-
researchReportDate: string | null;
|
|
198
|
-
/** When the cone penetration test was physically performed in the field (om:phenomenonTime) */
|
|
199
|
-
conePenetrationTestPhenomenonTime: string | null;
|
|
200
|
-
/** When the cone penetration test result was produced (om:resultTime) */
|
|
201
|
-
conePenetrationTestResultTime: string | null;
|
|
202
|
-
deliveredLocation: Location | null;
|
|
203
|
-
standardizedLocation: Location | null;
|
|
204
|
-
/** Coordinate transformation applied to the standardized location (e.g. "RDNAPTRANS2018") */
|
|
205
|
-
coordinateTransformation: string | null;
|
|
206
|
-
/** Date horizontal position was determined */
|
|
207
|
-
horizontalPositioningDate: string | null;
|
|
208
|
-
/** Method used to determine horizontal position (e.g., "onbekend", "GNSS") */
|
|
209
|
-
horizontalPositioningMethod: string | null;
|
|
210
|
-
/** KvK number of the operator that determined the horizontal position */
|
|
211
|
-
horizontalPositioningOperator: string | null;
|
|
212
|
-
deliveredVerticalPositionOffset: number | null;
|
|
213
|
-
deliveredVerticalPositionDatum: string | null;
|
|
214
|
-
deliveredVerticalPositionReferencePoint: string | null;
|
|
215
|
-
/** Water depth at the CPT location (m), when the survey was performed over water */
|
|
216
|
-
waterDepth: number | null;
|
|
217
|
-
/** Date vertical position was determined */
|
|
218
|
-
verticalPositioningDate: string | null;
|
|
219
|
-
/** Method used to determine vertical position (e.g., "onbekend", "waterpassingKlasse2") */
|
|
220
|
-
verticalPositioningMethod: string | null;
|
|
221
|
-
/** KvK number of the operator that determined the vertical position */
|
|
222
|
-
verticalPositioningOperator: string | null;
|
|
223
|
-
/** Delivery context (e.g., "publiekeTaak", "archiefoverdracht") */
|
|
224
|
-
deliveryContext: string | null;
|
|
225
|
-
/** Survey purpose (e.g., "waterkering", "onbekend") */
|
|
226
|
-
surveyPurpose: string | null;
|
|
227
|
-
/** Whether additional investigation was performed alongside the CPT */
|
|
228
|
-
additionalInvestigationPerformed: boolean | null;
|
|
229
|
-
cptStandard: string | null;
|
|
230
|
-
/** CPT method used (e.g., "elektrisch", "mechanisch") */
|
|
231
|
-
cptMethod: string | null;
|
|
232
|
-
/** Stop criterion for the test */
|
|
233
|
-
stopCriterion: string | null;
|
|
234
|
-
/** Azimuth orientation of the sensor (degrees from north) */
|
|
235
|
-
sensorAzimuth: number | null;
|
|
236
|
-
dissipationtestPerformed: boolean | null;
|
|
237
|
-
qualityClass: number | null;
|
|
238
|
-
predrilledDepth: number | null;
|
|
239
|
-
finalDepth: number | null;
|
|
240
|
-
groundwaterLevel: number | null;
|
|
241
|
-
/** Date of additional investigation (e.g. groundwater level measurement) */
|
|
242
|
-
investigationDate: string | null;
|
|
243
|
-
/** Site conditions at time of investigation */
|
|
244
|
-
conditions: string | null;
|
|
245
|
-
/** Description of surface at CPT location */
|
|
246
|
-
surfaceDescription: string | null;
|
|
247
|
-
/** Layers removed before CPT (e.g. asphalt, gravel fill) - affects depth interpretation */
|
|
248
|
-
removedLayers: Array<RemovedLayer>;
|
|
249
|
-
/** Date of final processing */
|
|
250
|
-
finalProcessingDate: string | null;
|
|
251
|
-
/** Whether signal processing was performed */
|
|
252
|
-
signalProcessingPerformed: boolean | null;
|
|
253
|
-
/** Whether interruption processing was performed */
|
|
254
|
-
interruptionProcessingPerformed: boolean | null;
|
|
255
|
-
/** Whether expert correction was performed */
|
|
256
|
-
expertCorrectionPerformed: boolean | null;
|
|
257
|
-
cptDescription: string | null;
|
|
258
|
-
cptType: string | null;
|
|
259
|
-
coneSurfaceArea: number | null;
|
|
260
|
-
coneDiameter: number | null;
|
|
261
|
-
coneSurfaceQuotient: number | null;
|
|
262
|
-
coneToFrictionSleeveDistance: number | null;
|
|
263
|
-
coneToFrictionSleeveSurfaceArea: number | null;
|
|
264
|
-
coneToFrictionSleeveSurfaceQuotient: number | null;
|
|
265
|
-
zlmConeResistanceBefore: number | null;
|
|
266
|
-
zlmConeResistanceAfter: number | null;
|
|
267
|
-
zlmInclinationEwBefore: number | null;
|
|
268
|
-
zlmInclinationEwAfter: number | null;
|
|
269
|
-
zlmInclinationNsBefore: number | null;
|
|
270
|
-
zlmInclinationNsAfter: number | null;
|
|
271
|
-
zlmInclinationResultantBefore: number | null;
|
|
272
|
-
zlmInclinationResultantAfter: number | null;
|
|
273
|
-
zlmLocalFrictionBefore: number | null;
|
|
274
|
-
zlmLocalFrictionAfter: number | null;
|
|
275
|
-
zlmPorePressureU1Before: number | null;
|
|
276
|
-
zlmPorePressureU2Before: number | null;
|
|
277
|
-
zlmPorePressureU3Before: number | null;
|
|
278
|
-
zlmPorePressureU1After: number | null;
|
|
279
|
-
zlmPorePressureU2After: number | null;
|
|
280
|
-
zlmPorePressureU3After: number | null;
|
|
281
|
-
/** Electrical conductivity before test (mS/m) - zero-load calibration */
|
|
282
|
-
zlmElectricalConductivityBefore: number | null;
|
|
283
|
-
/** Electrical conductivity after test (mS/m) - zero-load calibration */
|
|
284
|
-
zlmElectricalConductivityAfter: number | null;
|
|
285
|
-
data: Array<CPTMeasurement>;
|
|
286
|
-
dissipationTests: Array<DissipationTest>;
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Grain shape properties for sand/gravel fractions
|
|
290
|
-
*/
|
|
291
|
-
export interface Grainshape {
|
|
292
|
-
/** Size fraction this shape applies to (e.g., "zand", "grind") */
|
|
293
|
-
sizeFraction: string | null;
|
|
294
|
-
/** Angularity of grains (e.g., "hoekig", "subhoekig", "afgerond") */
|
|
295
|
-
angularity: string | null;
|
|
296
|
-
/** Sphericity of grains (e.g., "bol", "plat", "langwerpig") */
|
|
297
|
-
sphericity: string | null;
|
|
298
|
-
/** Roughness of grains (e.g., "ruw", "glad") */
|
|
299
|
-
roughness: string | null;
|
|
300
|
-
}
|
|
116
|
+
} & Produced<typeof CPT_PRODUCER>;
|
|
301
117
|
/**
|
|
302
|
-
*
|
|
303
|
-
*/
|
|
304
|
-
export interface RockWeatheringDegree {
|
|
305
|
-
/** Degree of discolouration */
|
|
306
|
-
discolouration: string | null;
|
|
307
|
-
/** Degree of disintegration */
|
|
308
|
-
disintegration: string | null;
|
|
309
|
-
/** Degree of decomposition */
|
|
310
|
-
decomposition: string | null;
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Rock description for a layer (BHR-GT `rock` element).
|
|
118
|
+
* Complete Bore data (metadata + layers).
|
|
314
119
|
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
* "nietWaargenomen") to preserve archive nuance.
|
|
318
|
-
*/
|
|
319
|
-
export interface RockDescription {
|
|
320
|
-
rockType: string | null;
|
|
321
|
-
cementType: string | null;
|
|
322
|
-
colour: string | null;
|
|
323
|
-
/** Tertiary rock constituents (1 or more) */
|
|
324
|
-
tertiaryRockConstituent: Array<string>;
|
|
325
|
-
interbedding: string | null;
|
|
326
|
-
/** Dispersed inhomogeneities (0-2) */
|
|
327
|
-
dispersedInhomogeneity: Array<string>;
|
|
328
|
-
carbonateContentClass: string | null;
|
|
329
|
-
crossBedding: string | null;
|
|
330
|
-
gradedBedding: string | null;
|
|
331
|
-
voidsPresent: string | null;
|
|
332
|
-
voidDistribution: string | null;
|
|
333
|
-
stability: string | null;
|
|
334
|
-
strengthClass: string | null;
|
|
335
|
-
weathered: string | null;
|
|
336
|
-
weatheringDegree?: RockWeatheringDegree;
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Post-sedimentary discontinuity in the descriptive borehole log
|
|
340
|
-
* (e.g. a fracture or fault plane crossing the described interval)
|
|
341
|
-
*/
|
|
342
|
-
export interface PostSedimentaryDiscontinuity {
|
|
343
|
-
beginDepth: number;
|
|
344
|
-
endDepth: number;
|
|
345
|
-
/** Whether the discontinuity is in rock (raw code, e.g. "ja"/"nee") */
|
|
346
|
-
inRock: string | null;
|
|
347
|
-
discontinuityType: string | null;
|
|
348
|
-
compositeDiscontinuity: string | null;
|
|
349
|
-
/** Spacing between discontinuities (m) */
|
|
350
|
-
spacing: number | null;
|
|
351
|
-
smooth: string | null;
|
|
352
|
-
apertureClass: string | null;
|
|
353
|
-
infillMaterial: string | null;
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* BHR-GT (Borehole Research Geotechnical) layer data
|
|
120
|
+
* Represents BHR-GT-BMB (Boormonsterbeschrijving — visual/textural description);
|
|
121
|
+
* laboratory analysis (BHR-GT-BMA) is the optional `analysis` field.
|
|
357
122
|
*
|
|
358
|
-
*
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* Fields shared by every BHR-GT described layer, regardless of whether it
|
|
362
|
-
* describes soil or rock (they live directly on the XSD `layer` element).
|
|
123
|
+
* Inferred from `BORE_PRODUCER`; `meta` (parse metadata) and the optional
|
|
124
|
+
* user-set `alias` are the only fields not produced from the XML.
|
|
363
125
|
*/
|
|
364
|
-
export
|
|
365
|
-
upperBoundary: number;
|
|
366
|
-
lowerBoundary: number;
|
|
367
|
-
upperBoundaryDetermination?: string | null;
|
|
368
|
-
lowerBoundaryDetermination?: string | null;
|
|
369
|
-
/** Whether the layer is anthropogenic (man-made) */
|
|
370
|
-
anthropogenic?: boolean | null;
|
|
371
|
-
/** Whether the layer boundary is slanted */
|
|
372
|
-
slant?: boolean | null;
|
|
373
|
-
/** Whether the layer is bedded/stratified */
|
|
374
|
-
bedded?: boolean | null;
|
|
375
|
-
/** Bedding type of the layer (e.g., "dikGelamineerd") */
|
|
376
|
-
bedding?: string | null;
|
|
377
|
-
/** Whether the layer is a composite layer */
|
|
378
|
-
compositeLayer?: boolean | null;
|
|
379
|
-
/** Human activity type observed in the layer (e.g., "nietBepaald") */
|
|
380
|
-
activityType?: string | null;
|
|
381
|
-
/** Whether the internal structure is intact (undisturbed) */
|
|
382
|
-
internalStructureIntact?: boolean | null;
|
|
383
|
-
/** Special material in the layer (e.g. anthropogenic debris) */
|
|
384
|
-
specialMaterial?: string | null;
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* A BHR-GT layer that describes soil (the common case).
|
|
388
|
-
* Discriminate on `material === "soil"`.
|
|
389
|
-
*/
|
|
390
|
-
export interface BHRGTSoilLayer extends BHRGTLayerBase {
|
|
391
|
-
material: "soil";
|
|
392
|
-
/** Geotechnical soil name (may be "" for IMBRO/A archive data using NEN 5104) */
|
|
393
|
-
geotechnicalSoilName: string;
|
|
394
|
-
/** Soil name per NEN 5104 (IMBRO/A archive data; geotechnicalSoilName is often nil there) */
|
|
395
|
-
soilNameNEN5104?: string | null;
|
|
396
|
-
/** Gravel content classification per NEN 5104 (IMBRO/A) */
|
|
397
|
-
gravelContentClassNEN5104?: string | null;
|
|
398
|
-
/** Organic matter content classification per NEN 5104 (IMBRO/A) */
|
|
399
|
-
organicMatterContentClassNEN5104?: string | null;
|
|
400
|
-
/** Tertiary soil constituent (e.g., "schelpMateriaal", "plantenresten") */
|
|
401
|
-
tertiaryConstituent?: string | null;
|
|
402
|
-
/** Soil color code */
|
|
403
|
-
color?: string;
|
|
404
|
-
/** Dispersed inhomogeneity presence */
|
|
405
|
-
dispersedInhomogeneity?: boolean | null;
|
|
406
|
-
/** Organic matter content classification */
|
|
407
|
-
organicMatterContentClass?: string | null;
|
|
408
|
-
/** Carbonate content classification */
|
|
409
|
-
carbonateContentClass?: string | null;
|
|
410
|
-
/** Sand median grain size classification */
|
|
411
|
-
sandMedianClass?: string | null;
|
|
412
|
-
/** Gravel median grain size classification (e.g., "fijn", "middelgrof") */
|
|
413
|
-
gravelMedianClass?: string | null;
|
|
414
|
-
/** Depositional characteristic of the soil (e.g., "nietBepaald") */
|
|
415
|
-
geotechnicalDepositionalCharacteristic?: string | null;
|
|
416
|
-
/** Interbedding of other material in the soil (e.g., "kleiWeinigDikkeLaminae") */
|
|
417
|
-
interbedding?: string | null;
|
|
418
|
-
/** Grain shape properties (for sand/gravel) */
|
|
419
|
-
grainshape?: Grainshape;
|
|
420
|
-
/** Whether the soil is mixed */
|
|
421
|
-
mixed?: boolean | null;
|
|
422
|
-
/** Whether the soil has mottled appearance */
|
|
423
|
-
mottled?: boolean | null;
|
|
424
|
-
/** Consistency of fine-grained soils (e.g., "slap", "stevig", "vast") */
|
|
425
|
-
fineSoilConsistency?: string | null;
|
|
426
|
-
/** Consistency of organic soils */
|
|
427
|
-
organicSoilConsistency?: string | null;
|
|
428
|
-
/** Texture of organic soils (e.g., "vezeligGrof", "vezeligFijn") */
|
|
429
|
-
organicSoilTexture?: string | null;
|
|
430
|
-
/** Tensile strength of peat */
|
|
431
|
-
peatTensileStrength?: string | null;
|
|
432
|
-
/** Cross bedding present (raw code) */
|
|
433
|
-
crossBedding?: string | null;
|
|
434
|
-
/** Graded bedding present (raw code) */
|
|
435
|
-
gradedBedding?: string | null;
|
|
436
|
-
/** Mixing type of the soil */
|
|
437
|
-
mixingType?: string | null;
|
|
438
|
-
/** Fine gravel content classification */
|
|
439
|
-
fineGravelContentClass?: string | null;
|
|
440
|
-
/** Medium-coarse gravel content classification */
|
|
441
|
-
mediumCoarseGravelContentClass?: string | null;
|
|
442
|
-
/** Very coarse gravel content classification */
|
|
443
|
-
veryCoarseGravelContentClass?: string | null;
|
|
444
|
-
/** Sand sorting classification per NEN 5104 */
|
|
445
|
-
sandSortingNEN5104?: string | null;
|
|
446
|
-
/** Peat type classification */
|
|
447
|
-
peatType?: string | null;
|
|
448
|
-
/** Depositional age of the layer */
|
|
449
|
-
depositionalAge?: string | null;
|
|
450
|
-
}
|
|
451
|
-
/**
|
|
452
|
-
* A BHR-GT layer that describes rock.
|
|
453
|
-
* Discriminate on `material === "rock"`.
|
|
454
|
-
*/
|
|
455
|
-
export interface BHRGTRockLayer extends BHRGTLayerBase {
|
|
456
|
-
material: "rock";
|
|
457
|
-
/** Rock description */
|
|
458
|
-
rock: RockDescription;
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* A BHR-GT described layer: either soil or rock.
|
|
462
|
-
*
|
|
463
|
-
* Narrow on the `material` discriminant:
|
|
464
|
-
* ```ts
|
|
465
|
-
* if (layer.material === "rock") layer.rock.rockType;
|
|
466
|
-
* else layer.geotechnicalSoilName;
|
|
467
|
-
* ```
|
|
468
|
-
*/
|
|
469
|
-
export type BHRGTLayer = BHRGTSoilLayer | BHRGTRockLayer;
|
|
470
|
-
/**
|
|
471
|
-
* Complete Bore data (metadata + layers)
|
|
472
|
-
*
|
|
473
|
-
* Note: BHRGTData represents BHR-GT-BMB (Boormonsterbeschrijving - visual/textural description)
|
|
474
|
-
* For laboratory analysis data, see the optional `analysis` field (BHR-GT-BMA)
|
|
475
|
-
*/
|
|
476
|
-
export interface BHRGTData extends BRORegistrationObject {
|
|
477
|
-
/**
|
|
478
|
-
* Metadata about the parsed document (schema version, warnings)
|
|
479
|
-
*/
|
|
126
|
+
export type BHRGTData = {
|
|
480
127
|
meta: ParseMeta;
|
|
481
|
-
/**
|
|
482
|
-
* User-defined identifier (not parsed from XML)
|
|
483
|
-
*
|
|
484
|
-
* Useful for tracking data that doesn't have a broId yet,
|
|
485
|
-
* such as during data collection or before BRO registration.
|
|
486
|
-
*
|
|
487
|
-
* @example
|
|
488
|
-
* ```typescript
|
|
489
|
-
* const bore = parser.parseBHRGT(xmlString);
|
|
490
|
-
* bore.alias = "Borehole 7 - North Field";
|
|
491
|
-
* ```
|
|
492
|
-
*/
|
|
493
128
|
alias?: string;
|
|
494
|
-
|
|
495
|
-
deliveredLocation: Location | null;
|
|
496
|
-
standardizedLocation: Location | null;
|
|
497
|
-
deliveredVerticalPositionOffset: number | null;
|
|
498
|
-
deliveredVerticalPositionDatum: string | null;
|
|
499
|
-
deliveredVerticalPositionReferencePoint: string | null;
|
|
500
|
-
/** Soil use at the site (e.g., "akker", "grasland", "geenBodemgebruik") */
|
|
501
|
-
soilUse: string | null;
|
|
502
|
-
/** Position of the borehole on the ground body (e.g. "kruin", "talud") */
|
|
503
|
-
positionOnGroundBody: string | null;
|
|
504
|
-
/** Temporary change at the site at time of drilling (e.g. "geen") */
|
|
505
|
-
temporaryChange: string | null;
|
|
506
|
-
descriptionProcedure: string | null;
|
|
507
|
-
groundwaterLevel: number | null;
|
|
508
|
-
/** Mean highest groundwater level in m relative to local reference (GHG) */
|
|
509
|
-
meanHighestGroundwaterLevel: number | null;
|
|
510
|
-
/** Mean lowest groundwater level in m relative to local reference (GLG) */
|
|
511
|
-
meanLowestGroundwaterLevel: number | null;
|
|
512
|
-
boreRockReached: boolean | null;
|
|
513
|
-
finalBoreDepth: number | null;
|
|
514
|
-
finalSampleDepth: number | null;
|
|
515
|
-
/** Final depth reached during site preparation (m) */
|
|
516
|
-
finalDepthPreparation: number | null;
|
|
517
|
-
/** Final depth reached by excavation (m) */
|
|
518
|
-
finalDepthExcavation: number | null;
|
|
519
|
-
/** Final depth reached with a temporary casing (m) */
|
|
520
|
-
finalDepthTemporaryCasing: number | null;
|
|
521
|
-
boreHoleCompleted: boolean | null;
|
|
522
|
-
/** Start date of the boring operation */
|
|
523
|
-
boringStartDate: string | null;
|
|
524
|
-
/** End date of the boring operation */
|
|
525
|
-
boringEndDate: string | null;
|
|
526
|
-
/** Boring procedure standard used (e.g., "EN1997d2v2007") */
|
|
527
|
-
boringProcedure: string | null;
|
|
528
|
-
/** Boring technique used (e.g., "gestoken", "mechanischGestoken") */
|
|
529
|
-
boringTechnique: string | null;
|
|
530
|
-
/** Whether the trajectory was excavated */
|
|
531
|
-
trajectoryExcavated: boolean | null;
|
|
532
|
-
/** Whether the subsurface is contaminated */
|
|
533
|
-
subsurfaceContaminated: boolean | null;
|
|
534
|
-
/** Stop criterion for boring */
|
|
535
|
-
stopCriterion: string | null;
|
|
536
|
-
/** Whether a flushing medium was used during boring */
|
|
537
|
-
flushingMediumUsed: boolean | null;
|
|
538
|
-
/** Flushing additive used during boring (e.g. "geen"), when a flushing medium was used */
|
|
539
|
-
flushingAdditive: string | null;
|
|
540
|
-
/** Whether a temporary casing was used during boring */
|
|
541
|
-
temporaryCasingUsed: boolean | null;
|
|
542
|
-
/** Site preparation before boring (e.g., "geen") */
|
|
543
|
-
preparation: string | null;
|
|
544
|
-
/** KvK number of the operator that carried out the research */
|
|
545
|
-
researchOperator: string | null;
|
|
546
|
-
/** Type of sampler used */
|
|
547
|
-
samplerType: string | null;
|
|
548
|
-
/** Sampling procedure standard */
|
|
549
|
-
samplingProcedure: string | null;
|
|
550
|
-
/** Sampling method used */
|
|
551
|
-
samplingMethod: string | null;
|
|
552
|
-
/** Sampling quality assessment */
|
|
553
|
-
samplingQuality: string | null;
|
|
554
|
-
/** Whether the sample was orientated */
|
|
555
|
-
orientatedSampled: boolean | null;
|
|
556
|
-
/** Sample container diameter in mm */
|
|
557
|
-
sampleContainerDiameter: number | null;
|
|
558
|
-
/** Sample container length in mm */
|
|
559
|
-
sampleContainerLength: number | null;
|
|
560
|
-
/** Piston presence in sampler */
|
|
561
|
-
pistonPresent: boolean | null;
|
|
562
|
-
/** Core catcher presence */
|
|
563
|
-
coreCatcherPresent: boolean | null;
|
|
564
|
-
/** Stocking used in sampling */
|
|
565
|
-
stockingUsed: boolean | null;
|
|
566
|
-
/** Lubrication fluid used */
|
|
567
|
-
lubricationFluidUsed: boolean | null;
|
|
568
|
-
/** Right-angled cutting shoe */
|
|
569
|
-
rightAngledCuttingShoe: boolean | null;
|
|
570
|
-
/** Cutting shoe inside diameter in mm */
|
|
571
|
-
cuttingShoeInsideDiameter: number | null;
|
|
572
|
-
/** Cutting shoe outside diameter in mm */
|
|
573
|
-
cuttingShoeOutsideDiameter: number | null;
|
|
574
|
-
/** Taper angle of cutting shoe */
|
|
575
|
-
taperAngle: number | null;
|
|
576
|
-
/** Whether the borehole log was checked */
|
|
577
|
-
boreholeLogChecked: boolean | null;
|
|
578
|
-
/** Description quality assessment */
|
|
579
|
-
descriptionQuality: string | null;
|
|
580
|
-
/** Description location (field/lab) */
|
|
581
|
-
descriptionLocation: string | null;
|
|
582
|
-
/** Date of description report */
|
|
583
|
-
descriptionReportDate: string | null;
|
|
584
|
-
/** Described material type */
|
|
585
|
-
describedMaterial: string | null;
|
|
586
|
-
/** Whether sampling was continuous */
|
|
587
|
-
continuouslySampled: boolean | null;
|
|
588
|
-
/** Sample moistness during description */
|
|
589
|
-
sampleMoistness: string | null;
|
|
590
|
-
data: Array<BHRGTLayer>;
|
|
591
|
-
analysis?: BoreholeSampleAnalysis;
|
|
592
|
-
/** Array of bored intervals with technique and diameter */
|
|
593
|
-
boredIntervals: Array<BoredInterval>;
|
|
594
|
-
/** Array of sampled intervals with method and quality */
|
|
595
|
-
sampledIntervals: Array<SampledInterval>;
|
|
596
|
-
/** Array of completed/backfilled intervals */
|
|
597
|
-
completedIntervals: Array<CompletedInterval>;
|
|
598
|
-
/** Array of intervals not described (with reason) */
|
|
599
|
-
notDescribedIntervals: Array<NotDescribedInterval>;
|
|
600
|
-
/** Array of post-sedimentary discontinuities in the descriptive log */
|
|
601
|
-
postSedimentaryDiscontinuities: Array<PostSedimentaryDiscontinuity>;
|
|
602
|
-
/** Array of excavated layers (removed by excavation) */
|
|
603
|
-
excavatedLayers: Array<ExcavatedLayer>;
|
|
604
|
-
/** Boring velocity profile (elapsed time vs depth) */
|
|
605
|
-
boringVelocity: Array<BoringVelocityMeasurement>;
|
|
606
|
-
/** Fluid mud (slib) layer at the borehole, when present */
|
|
607
|
-
fluidMudLayer?: FluidMudLayer;
|
|
608
|
-
/** Report history with events */
|
|
609
|
-
reportHistory: ReportHistory | null;
|
|
610
|
-
/** Delivery context (e.g., "publiekeTaak") */
|
|
611
|
-
deliveryContext: string | null;
|
|
612
|
-
/** Survey purpose (e.g., "bouwwerk") */
|
|
613
|
-
surveyPurpose: string | null;
|
|
614
|
-
/** Discipline (e.g., "geotechniek") */
|
|
615
|
-
discipline: string | null;
|
|
616
|
-
/** Survey procedure standard (e.g., "EN1997d2v2007") */
|
|
617
|
-
surveyProcedure: string | null;
|
|
618
|
-
/** Whether site characteristics were determined */
|
|
619
|
-
siteCharacteristicDetermined: boolean | null;
|
|
620
|
-
}
|
|
621
|
-
/** Munsell colour notation (BHR-G soil colour) */
|
|
622
|
-
export interface MunsellColour {
|
|
623
|
-
munsellHue: string | null;
|
|
624
|
-
munsellValue: string | null;
|
|
625
|
-
munsellChroma: string | null;
|
|
626
|
-
}
|
|
627
|
-
/** A constituent of the sand fraction */
|
|
628
|
-
export interface SandConstituent {
|
|
629
|
-
grainColour: string | null;
|
|
630
|
-
percentageClass: string | null;
|
|
631
|
-
archiveClass: string | null;
|
|
632
|
-
}
|
|
633
|
-
/** Sand fraction description (BHR-G soil) */
|
|
634
|
-
export interface SandFraction {
|
|
635
|
-
darkGrainContentClass: string | null;
|
|
636
|
-
darkGrainContentClassArchive: string | null;
|
|
637
|
-
angularity: string | null;
|
|
638
|
-
sandMedianClass: string | null;
|
|
639
|
-
sandSorting: string | null;
|
|
640
|
-
variegation: string | null;
|
|
641
|
-
anomalouslyCoarseContentClass: string | null;
|
|
642
|
-
anomalouslyCoarseContentClassArchive: string | null;
|
|
643
|
-
granuleContentClass: string | null;
|
|
644
|
-
granuleContentClassArchive: string | null;
|
|
645
|
-
estimatedMedian: number | null;
|
|
646
|
-
sandConstituents: Array<SandConstituent>;
|
|
647
|
-
}
|
|
648
|
-
/** A constituent of the shell fraction */
|
|
649
|
-
export interface ShellConstituent {
|
|
650
|
-
shellTaxon: string | null;
|
|
651
|
-
relativeAbundance: string | null;
|
|
652
|
-
relativeAbundanceClass: string | null;
|
|
653
|
-
relativeAbundanceClassArchive: string | null;
|
|
654
|
-
}
|
|
655
|
-
/** Shell fraction description (BHR-G soil) */
|
|
656
|
-
export interface ShellFraction {
|
|
657
|
-
gritContentClass: string | null;
|
|
658
|
-
fragmentContentClass: string | null;
|
|
659
|
-
remainsContentClass: string | null;
|
|
660
|
-
wholeContentClass: string | null;
|
|
661
|
-
doublets: string | null;
|
|
662
|
-
thickWalledContentClass: string | null;
|
|
663
|
-
thinWalledContentClass: string | null;
|
|
664
|
-
inSitu: string | null;
|
|
665
|
-
weatheringDegree: string | null;
|
|
666
|
-
shellConstituents: Array<ShellConstituent>;
|
|
667
|
-
}
|
|
668
|
-
/** A constituent of the gravel fraction */
|
|
669
|
-
export interface GravelConstituent {
|
|
670
|
-
gravelType: string | null;
|
|
671
|
-
fractionProportion: number | null;
|
|
672
|
-
archiveClass: string | null;
|
|
673
|
-
}
|
|
674
|
-
/** Gravel fraction description (BHR-G soil) */
|
|
675
|
-
export interface GravelFraction {
|
|
676
|
-
gravelMedianClass: string | null;
|
|
677
|
-
angularity: string | null;
|
|
678
|
-
fineGravelContentClass: string | null;
|
|
679
|
-
mediumCoarseGravelContentClass: string | null;
|
|
680
|
-
veryCoarseGravelContentClass: string | null;
|
|
681
|
-
ventifactPresent: string | null;
|
|
682
|
-
sphericity: string | null;
|
|
683
|
-
variegation: string | null;
|
|
684
|
-
gravelProvenance: string | null;
|
|
685
|
-
estimatedMedian: number | null;
|
|
686
|
-
gravelConstituents: Array<GravelConstituent>;
|
|
687
|
-
}
|
|
688
|
-
/** A constituent of the peat fraction */
|
|
689
|
-
export interface PeatConstituent {
|
|
690
|
-
plantRemainType: string | null;
|
|
691
|
-
percentageClass: string | null;
|
|
692
|
-
archiveClass: string | null;
|
|
693
|
-
}
|
|
694
|
-
/** Peat fraction description (BHR-G soil) */
|
|
695
|
-
export interface PeatFraction {
|
|
696
|
-
peatType: string | null;
|
|
697
|
-
peatConstituents: Array<PeatConstituent>;
|
|
698
|
-
}
|
|
699
|
-
/** A chunk (brok) of differing material within a layer */
|
|
700
|
-
export interface Chunk {
|
|
701
|
-
soilType: string | null;
|
|
702
|
-
sizeClass: string | null;
|
|
703
|
-
percentageClass: string | null;
|
|
704
|
-
archiveClass: string | null;
|
|
705
|
-
colour: string | null;
|
|
706
|
-
geologicalOrigin: string | null;
|
|
707
|
-
cemented: string | null;
|
|
708
|
-
}
|
|
709
|
-
/** Fine fraction distribution for organic soils (mass proportions, %) */
|
|
710
|
-
export interface FineFractionDistributionOrganicSoil {
|
|
711
|
-
estimatedMassProportionSand: number | null;
|
|
712
|
-
estimatedMassProportionSilt: number | null;
|
|
713
|
-
estimatedMassProportionLutum: number | null;
|
|
714
|
-
}
|
|
715
|
-
/** Fine fraction distribution for shelly soils (volume proportions, %) */
|
|
716
|
-
export interface FineFractionDistributionShellySoil {
|
|
717
|
-
estimatedVolumeProportionSand: number | null;
|
|
718
|
-
estimatedVolumeProportionSilt: number | null;
|
|
719
|
-
estimatedVolumeProportionLutum: number | null;
|
|
720
|
-
}
|
|
721
|
-
/** Estimated fraction distribution of a layer's soil */
|
|
722
|
-
export interface FractionDistribution {
|
|
723
|
-
fractionDistributionComplete: string | null;
|
|
724
|
-
estimatedMassProportionOrganicMatter: number | null;
|
|
725
|
-
estimatedMassProportionShellMatter: number | null;
|
|
726
|
-
estimatedVolumeProportionShellMatter: number | null;
|
|
727
|
-
estimatedMassProportionShell: number | null;
|
|
728
|
-
estimatedMassProportionGravel: number | null;
|
|
729
|
-
estimatedVolumeProportionGravel: number | null;
|
|
730
|
-
fineFractionDistributionOrganicSoil?: FineFractionDistributionOrganicSoil;
|
|
731
|
-
fineFractionDistributionShellySoil?: FineFractionDistributionShellySoil;
|
|
732
|
-
}
|
|
733
|
-
/** A mottle (vlek) in a layer */
|
|
734
|
-
export interface Mottle {
|
|
735
|
-
colour: string | null;
|
|
736
|
-
density: string | null;
|
|
737
|
-
inBands: string | null;
|
|
738
|
-
}
|
|
739
|
-
/** A thin stratum (laagje) interbedded in a layer */
|
|
740
|
-
export interface ThinStratum {
|
|
741
|
-
layerProportion: number | null;
|
|
742
|
-
layerProportionClass: string | null;
|
|
743
|
-
layerProportionClassArchive: string | null;
|
|
744
|
-
stratumThicknessClass: string | null;
|
|
745
|
-
geologicalOrigin: string | null;
|
|
746
|
-
}
|
|
129
|
+
} & Produced<typeof BORE_PRODUCER>;
|
|
747
130
|
/**
|
|
748
|
-
* BHR-G (Geological Borehole)
|
|
131
|
+
* Complete BHR-G (Geological Borehole) data (metadata + layers).
|
|
749
132
|
*
|
|
750
|
-
*
|
|
751
|
-
*
|
|
752
|
-
* existing style); genuinely nested sub-structures (fractions, mottles, chunks,
|
|
753
|
-
* thin strata) are modelled as nested objects/arrays.
|
|
133
|
+
* Inferred from `BHRG_PRODUCER`; `meta` (parse metadata) and the optional
|
|
134
|
+
* user-set `alias` are the only fields not produced from the XML.
|
|
754
135
|
*/
|
|
755
|
-
export
|
|
756
|
-
upperBoundary: number;
|
|
757
|
-
lowerBoundary: number;
|
|
758
|
-
upperBoundaryDetermination?: string | null;
|
|
759
|
-
lowerBoundaryDetermination?: string | null;
|
|
760
|
-
soilNameNEN5104: string;
|
|
761
|
-
color?: string;
|
|
762
|
-
/** Whether the layer is anthropogenic (man-made) - uses string codes in BHR-G (ja/nee/onbekend) */
|
|
763
|
-
anthropogenic?: string | null;
|
|
764
|
-
/** Whether the layer is rooted - uses string codes in BHR-G (ja/nee/onbekend) */
|
|
765
|
-
rooted?: string | null;
|
|
766
|
-
organicMatterContentClassNEN5104?: string | null;
|
|
767
|
-
gravelContentClass?: string | null;
|
|
768
|
-
carbonateContentClass?: string | null;
|
|
769
|
-
sandMedianClass?: string | null;
|
|
770
|
-
/** Whether a post-sedimentary change is present (raw code) */
|
|
771
|
-
postSedimentary?: string | null;
|
|
772
|
-
horizonCode?: string | null;
|
|
773
|
-
humanTrace?: string | null;
|
|
774
|
-
geologicalOrigin?: string | null;
|
|
775
|
-
bioturbated?: string | null;
|
|
776
|
-
/** Sedimentary structures (0-3) */
|
|
777
|
-
structure?: Array<string>;
|
|
778
|
-
/** Vertical trends (0-3) */
|
|
779
|
-
verticalTrend?: Array<string>;
|
|
780
|
-
/** Archeological constituent types (0-5) */
|
|
781
|
-
archeologicalConstituents?: Array<string>;
|
|
782
|
-
/** Geological soil name (lithostratigraphic) */
|
|
783
|
-
geologicalSoilName?: string | null;
|
|
784
|
-
/** Shell matter content classification */
|
|
785
|
-
shellMatterContentClass?: string | null;
|
|
786
|
-
micaContentClass?: string | null;
|
|
787
|
-
micaContentClassArchive?: string | null;
|
|
788
|
-
shellMatterContentClassArchive?: string | null;
|
|
789
|
-
/** Very coarse fraction content classes (0-2) */
|
|
790
|
-
veryCoarseFractionContentClass?: Array<string>;
|
|
791
|
-
/** Very coarse fraction content classes, archive coding (0-2) */
|
|
792
|
-
veryCoarseFractionContentClassArchive?: Array<string>;
|
|
793
|
-
glauconiteContentClass?: string | null;
|
|
794
|
-
glauconiteContentClassArchive?: string | null;
|
|
795
|
-
sedimentaryPhenomenon?: string | null;
|
|
796
|
-
/** Animal fossil types found in the soil (0+) */
|
|
797
|
-
animalFossils?: Array<string>;
|
|
798
|
-
munsellColour?: MunsellColour;
|
|
799
|
-
sandFraction?: SandFraction;
|
|
800
|
-
shellFraction?: ShellFraction;
|
|
801
|
-
gravelFraction?: GravelFraction;
|
|
802
|
-
peatFraction?: PeatFraction;
|
|
803
|
-
fractionDistribution?: FractionDistribution;
|
|
804
|
-
/** Chunks of differing material (0-3) */
|
|
805
|
-
chunks?: Array<Chunk>;
|
|
806
|
-
/** Mottles (0-3) */
|
|
807
|
-
mottles?: Array<Mottle>;
|
|
808
|
-
/** Thin interbedded strata (0-4) */
|
|
809
|
-
thinStrata?: Array<ThinStratum>;
|
|
810
|
-
}
|
|
811
|
-
/**
|
|
812
|
-
* Complete BHR-G (Geological Borehole) data (metadata + layers)
|
|
813
|
-
*/
|
|
814
|
-
export interface BHRGData extends BRORegistrationObject {
|
|
815
|
-
/**
|
|
816
|
-
* Metadata about the parsed document (schema version, warnings)
|
|
817
|
-
*/
|
|
136
|
+
export type BHRGData = {
|
|
818
137
|
meta: ParseMeta;
|
|
819
|
-
/**
|
|
820
|
-
* User-defined identifier (not parsed from XML)
|
|
821
|
-
*/
|
|
822
138
|
alias?: string;
|
|
823
|
-
|
|
824
|
-
deliveredLocation: Location | null;
|
|
825
|
-
standardizedLocation: Location | null;
|
|
826
|
-
deliveredVerticalPositionOffset: number | null;
|
|
827
|
-
deliveredVerticalPositionDatum: string | null;
|
|
828
|
-
deliveredVerticalPositionReferencePoint: string | null;
|
|
829
|
-
/** Water depth at the borehole location (m), when the survey was over water */
|
|
830
|
-
waterDepth: number | null;
|
|
831
|
-
/** Date vertical position was determined */
|
|
832
|
-
verticalPositioningDate: string | null;
|
|
833
|
-
/** Method used to determine vertical position */
|
|
834
|
-
verticalPositioningMethod: string | null;
|
|
835
|
-
/** KvK number of the operator that determined the vertical position */
|
|
836
|
-
verticalPositioningOperator: string | null;
|
|
837
|
-
/** Landscape element at the site */
|
|
838
|
-
landscapeElement: string | null;
|
|
839
|
-
/** Hydrological setting at the site */
|
|
840
|
-
hydrologicalSetting: string | null;
|
|
841
|
-
/** Current geomorphological process at the site */
|
|
842
|
-
currentProcess: string | null;
|
|
843
|
-
descriptionProcedure: string | null;
|
|
844
|
-
/** Tool used for the sample description */
|
|
845
|
-
utensil: string | null;
|
|
846
|
-
boreRockReached: boolean | null;
|
|
847
|
-
finalBoreDepth: number | null;
|
|
848
|
-
finalSampleDepth: number | null;
|
|
849
|
-
boreHoleCompleted: string | null;
|
|
850
|
-
/** Start date of the boring operation */
|
|
851
|
-
boringStartDate: string | null;
|
|
852
|
-
/** End date of the boring operation */
|
|
853
|
-
boringEndDate: string | null;
|
|
854
|
-
/** Boring procedure standard used */
|
|
855
|
-
boringProcedure: string | null;
|
|
856
|
-
/** Boring technique used */
|
|
857
|
-
boringTechnique: string | null;
|
|
858
|
-
/** Whether the trajectory was excavated */
|
|
859
|
-
trajectoryExcavated: boolean | null;
|
|
860
|
-
/** Whether the subsurface is contaminated */
|
|
861
|
-
subsurfaceContaminated: boolean | null;
|
|
862
|
-
/** Stop criterion for boring */
|
|
863
|
-
stopCriterion: string | null;
|
|
864
|
-
/** Whether a flushing additive was used (raw code) */
|
|
865
|
-
flushingAdditiveUsed: string | null;
|
|
866
|
-
/** Sampling procedure standard */
|
|
867
|
-
samplingProcedure: string | null;
|
|
868
|
-
/** Sampling method used */
|
|
869
|
-
samplingMethod: string | null;
|
|
870
|
-
/** Sampling quality assessment */
|
|
871
|
-
samplingQuality: string | null;
|
|
872
|
-
/** Description quality assessment */
|
|
873
|
-
descriptionQuality: string | null;
|
|
874
|
-
/** Described samples quality */
|
|
875
|
-
describedSamplesQuality: string | null;
|
|
876
|
-
/** Description location (field/lab) */
|
|
877
|
-
descriptionLocation: string | null;
|
|
878
|
-
/** Date of description report */
|
|
879
|
-
descriptionReportDate: string | null;
|
|
880
|
-
/** Described material type */
|
|
881
|
-
describedMaterial: string | null;
|
|
882
|
-
/** Whether sampling was continuous */
|
|
883
|
-
continuouslySampled: boolean | null;
|
|
884
|
-
/** Sample moistness during description */
|
|
885
|
-
sampleMoistness: string | null;
|
|
886
|
-
data: Array<BHRGLayer>;
|
|
887
|
-
/** Array of bored intervals with technique and diameter */
|
|
888
|
-
boredIntervals: Array<BoredInterval>;
|
|
889
|
-
/** Array of sampled intervals with method and quality */
|
|
890
|
-
sampledIntervals: Array<SampledInterval>;
|
|
891
|
-
/** Report history with events */
|
|
892
|
-
reportHistory: ReportHistory | null;
|
|
893
|
-
/** Delivery context (e.g., "archiefoverdracht") */
|
|
894
|
-
deliveryContext: string | null;
|
|
895
|
-
/** Survey purpose */
|
|
896
|
-
surveyPurpose: string | null;
|
|
897
|
-
/** Discipline (e.g., "geologie") */
|
|
898
|
-
discipline: string | null;
|
|
899
|
-
/** Survey procedure standard */
|
|
900
|
-
surveyProcedure: string | null;
|
|
901
|
-
/** NITG code (legacy identifier) */
|
|
902
|
-
nitgCode: string | null;
|
|
903
|
-
}
|
|
904
|
-
/**
|
|
905
|
-
* Bored interval - records boring technique and diameter at specific depth ranges
|
|
906
|
-
*/
|
|
907
|
-
export interface BoredInterval {
|
|
908
|
-
beginDepth: number;
|
|
909
|
-
endDepth: number;
|
|
910
|
-
boringTechnique: string | null;
|
|
911
|
-
boredDiameter: number | null;
|
|
912
|
-
}
|
|
913
|
-
/**
|
|
914
|
-
* Sampler equipment details within a sampled interval
|
|
915
|
-
*/
|
|
916
|
-
export interface SamplerDetails {
|
|
917
|
-
samplerType: string | null;
|
|
918
|
-
sampleContainerDiameter: number | null;
|
|
919
|
-
sampleContainerLength: number | null;
|
|
920
|
-
cuttingShoeInsideDiameter: number | null;
|
|
921
|
-
cuttingShoeOutsideDiameter: number | null;
|
|
922
|
-
stockingUsed: boolean | null;
|
|
923
|
-
rightAngledCuttingShoe: boolean | null;
|
|
924
|
-
taperAngle: number | null;
|
|
925
|
-
lubricationFluidUsed: boolean | null;
|
|
926
|
-
coreCatcherPresent: boolean | null;
|
|
927
|
-
pistonPresent: boolean | null;
|
|
928
|
-
}
|
|
929
|
-
/**
|
|
930
|
-
* Core recovery measurements for a sampled interval (rock coring)
|
|
931
|
-
*/
|
|
932
|
-
export interface CoreRecovery {
|
|
933
|
-
/** Total core recovery (%) */
|
|
934
|
-
totalCoreRecovery: number | null;
|
|
935
|
-
/** Solid core recovery (%) */
|
|
936
|
-
solidCoreRecovery: number | null;
|
|
937
|
-
/** Rock Quality Designation (%) */
|
|
938
|
-
rockQualityDesignation: number | null;
|
|
939
|
-
/** Whether the core recovery was determined in the field */
|
|
940
|
-
fieldDetermined: boolean | null;
|
|
941
|
-
}
|
|
942
|
-
/**
|
|
943
|
-
* Sampled interval - records sampling method and quality at specific depth ranges
|
|
944
|
-
*/
|
|
945
|
-
export interface SampledInterval {
|
|
946
|
-
beginDepth: number;
|
|
947
|
-
endDepth: number;
|
|
948
|
-
preTreatment: string | null;
|
|
949
|
-
samplingMethod: string | null;
|
|
950
|
-
samplingQuality: string | null;
|
|
951
|
-
orientatedSampled: boolean | null;
|
|
952
|
-
sampler?: SamplerDetails;
|
|
953
|
-
/** Core recovery measurements (rock coring), when determined */
|
|
954
|
-
coreRecovery?: CoreRecovery;
|
|
955
|
-
}
|
|
956
|
-
/**
|
|
957
|
-
* Completed interval - records how the borehole was completed/backfilled
|
|
958
|
-
*/
|
|
959
|
-
export interface CompletedInterval {
|
|
960
|
-
beginDepth: number;
|
|
961
|
-
endDepth: number;
|
|
962
|
-
permanentCasingPresent: boolean | null;
|
|
963
|
-
/** Diameter of the permanent casing (mm) */
|
|
964
|
-
diameterPermanentCasing: number | null;
|
|
965
|
-
/** Material of the permanent casing */
|
|
966
|
-
materialPermanentCasing: string | null;
|
|
967
|
-
backfillMaterial: string | null;
|
|
968
|
-
backfillMaterialWashed: boolean | null;
|
|
969
|
-
backfillMaterialCertified: boolean | null;
|
|
970
|
-
}
|
|
971
|
-
/**
|
|
972
|
-
* Excavated layer - a layer removed by excavation before/during boring
|
|
973
|
-
*/
|
|
974
|
-
export interface ExcavatedLayer {
|
|
975
|
-
upperBoundary: number;
|
|
976
|
-
lowerBoundary: number;
|
|
977
|
-
/** Material that was excavated */
|
|
978
|
-
excavatedMaterial: string | null;
|
|
979
|
-
}
|
|
980
|
-
/**
|
|
981
|
-
* Boring velocity measurement - drilling depth reached after a given elapsed time
|
|
982
|
-
*/
|
|
983
|
-
export interface BoringVelocityMeasurement {
|
|
984
|
-
/** Elapsed time (s) */
|
|
985
|
-
elapsedTime: number | null;
|
|
986
|
-
/** Depth reached (m) */
|
|
987
|
-
depth: number | null;
|
|
988
|
-
}
|
|
989
|
-
/**
|
|
990
|
-
* Fluid mud layer - a layer of fluid mud (slib) recorded at the borehole
|
|
991
|
-
*/
|
|
992
|
-
export interface FluidMudLayer {
|
|
993
|
-
/** Thickness of the fluid mud layer (m) */
|
|
994
|
-
thickness: number | null;
|
|
995
|
-
/** Colour of the fluid mud */
|
|
996
|
-
colour: string | null;
|
|
997
|
-
/** Method used to position the upper boundary */
|
|
998
|
-
upperBoundaryPositioningMethod: string | null;
|
|
999
|
-
/** Method used to position the lower boundary */
|
|
1000
|
-
lowerBoundaryPositioningMethod: string | null;
|
|
1001
|
-
}
|
|
1002
|
-
/**
|
|
1003
|
-
* Not described interval - records depth ranges that were not described and why
|
|
1004
|
-
*/
|
|
1005
|
-
export interface NotDescribedInterval {
|
|
1006
|
-
beginDepth: number;
|
|
1007
|
-
endDepth: number;
|
|
1008
|
-
noDescriptionReason: string | null;
|
|
1009
|
-
}
|
|
1010
|
-
/**
|
|
1011
|
-
* Intermediate event in report history
|
|
1012
|
-
*/
|
|
1013
|
-
export interface IntermediateEvent {
|
|
1014
|
-
eventName: string | null;
|
|
1015
|
-
eventDate: string | null;
|
|
1016
|
-
}
|
|
1017
|
-
/**
|
|
1018
|
-
* Registration history - BRO administrative registration information
|
|
1019
|
-
*/
|
|
1020
|
-
export interface RegistrationHistory {
|
|
1021
|
-
objectRegistrationTime: string | null;
|
|
1022
|
-
registrationStatus: string | null;
|
|
1023
|
-
registrationCompletionTime: string | null;
|
|
1024
|
-
/** Time of the latest correction to the registered object */
|
|
1025
|
-
latestCorrectionTime: string | null;
|
|
1026
|
-
/** Time of the latest addition to the registered object */
|
|
1027
|
-
latestAdditionTime: string | null;
|
|
1028
|
-
/** Time the object was placed under review */
|
|
1029
|
-
underReviewTime: string | null;
|
|
1030
|
-
/** Time the object was deregistered */
|
|
1031
|
-
deregistrationTime: string | null;
|
|
1032
|
-
/** Time the object was reregistered after deregistration */
|
|
1033
|
-
reregistrationTime: string | null;
|
|
1034
|
-
corrected: boolean | null;
|
|
1035
|
-
underReview: boolean | null;
|
|
1036
|
-
deregistered: boolean | null;
|
|
1037
|
-
reregistered: boolean | null;
|
|
1038
|
-
}
|
|
1039
|
-
/**
|
|
1040
|
-
* Report history - records when and how data was reported
|
|
1041
|
-
*/
|
|
1042
|
-
export interface ReportHistory {
|
|
1043
|
-
reportStartDate: string | null;
|
|
1044
|
-
reportEndDate: string | null;
|
|
1045
|
-
intermediateEvents: Array<IntermediateEvent>;
|
|
1046
|
-
}
|
|
1047
|
-
/**
|
|
1048
|
-
* BHR-GT-BMA (Borehole Sample Analysis) - Laboratory Determinations
|
|
1049
|
-
*/
|
|
1050
|
-
/**
|
|
1051
|
-
* Water content determination result
|
|
1052
|
-
*/
|
|
1053
|
-
export interface WaterContentDetermination {
|
|
1054
|
-
determinationProcedure: string | null;
|
|
1055
|
-
determinationMethod: string | null;
|
|
1056
|
-
sampleMoistness: string | null;
|
|
1057
|
-
removedMaterial: string | null;
|
|
1058
|
-
waterContent: number | null;
|
|
1059
|
-
dryingTemperature: string | null;
|
|
1060
|
-
dryingPeriod: string | null;
|
|
1061
|
-
saltCorrectionMethod: string | null;
|
|
1062
|
-
}
|
|
1063
|
-
/**
|
|
1064
|
-
* Volumetric mass density (bulk density) determination result
|
|
1065
|
-
*/
|
|
1066
|
-
export interface VolumetricMassDensityDetermination {
|
|
1067
|
-
determinationProcedure: string | null;
|
|
1068
|
-
determinationMethod: string | null;
|
|
1069
|
-
sampleMoistness: string | null;
|
|
1070
|
-
volumetricMassDensity: number | null;
|
|
1071
|
-
}
|
|
1072
|
-
/**
|
|
1073
|
-
* Organic matter content determination result
|
|
1074
|
-
*/
|
|
1075
|
-
export interface OrganicMatterContentDetermination {
|
|
1076
|
-
determinationProcedure: string | null;
|
|
1077
|
-
determinationMethod: string | null;
|
|
1078
|
-
removedMaterial: string | null;
|
|
1079
|
-
/** Whether a lutum (clay fraction) correction was applied to the result */
|
|
1080
|
-
lutumCorrectionApplied: boolean | null;
|
|
1081
|
-
organicMatterContent: number | null;
|
|
1082
|
-
}
|
|
1083
|
-
/**
|
|
1084
|
-
* Carbonate content determination result
|
|
1085
|
-
*/
|
|
1086
|
-
export interface CarbonateContentDetermination {
|
|
1087
|
-
determinationProcedure: string | null;
|
|
1088
|
-
determinationMethod: string | null;
|
|
1089
|
-
removedMaterial: string | null;
|
|
1090
|
-
carbonateContent: number | null;
|
|
1091
|
-
}
|
|
1092
|
-
/**
|
|
1093
|
-
* Volumetric mass density of solids determination result
|
|
1094
|
-
*/
|
|
1095
|
-
export interface VolumetricMassDensityOfSolidsDetermination {
|
|
1096
|
-
determinationProcedure: string | null;
|
|
1097
|
-
determinationMethod: string | null;
|
|
1098
|
-
liquidUsed: string | null;
|
|
1099
|
-
/** Volume of the sample container used (e.g., "100ml") */
|
|
1100
|
-
sampleContainerVolume: string | null;
|
|
1101
|
-
volumetricMassDensityOfSolids: number | null;
|
|
1102
|
-
}
|
|
1103
|
-
/**
|
|
1104
|
-
* Particle size distribution determination result
|
|
1105
|
-
* Contains detailed grain size fractions
|
|
1106
|
-
*/
|
|
1107
|
-
export interface ParticleSizeDistributionDetermination {
|
|
1108
|
-
determinationProcedure: string | null;
|
|
1109
|
-
determinationMethod: string | null;
|
|
1110
|
-
fractionDistribution: string | null;
|
|
1111
|
-
dispersionMethod: string | null;
|
|
1112
|
-
removedMaterial: string | null;
|
|
1113
|
-
equivalentMassDeterminationMethod: string | null;
|
|
1114
|
-
equivalentMass: number | null;
|
|
1115
|
-
/** Optical model used (for laser-diffraction methods) */
|
|
1116
|
-
usedOpticalModel?: string | null;
|
|
1117
|
-
fractionSmaller63um: number | null;
|
|
1118
|
-
fractionLarger63um: number | null;
|
|
1119
|
-
fraction0to2um?: number | null;
|
|
1120
|
-
/** 2–32 µm fraction — only present in the coarser standardDistributionFractionSmaller63um group */
|
|
1121
|
-
fraction2to32um?: number | null;
|
|
1122
|
-
fraction2to4um?: number | null;
|
|
1123
|
-
fraction4to8um?: number | null;
|
|
1124
|
-
fraction8to16um?: number | null;
|
|
1125
|
-
fraction16to32um?: number | null;
|
|
1126
|
-
fraction32to50um?: number | null;
|
|
1127
|
-
fraction50to63um?: number | null;
|
|
1128
|
-
fraction63to90um?: number | null;
|
|
1129
|
-
fraction90to125um?: number | null;
|
|
1130
|
-
fraction125to180um?: number | null;
|
|
1131
|
-
fraction180to250um?: number | null;
|
|
1132
|
-
fraction250to355um?: number | null;
|
|
1133
|
-
fraction355to500um?: number | null;
|
|
1134
|
-
fraction500to710um?: number | null;
|
|
1135
|
-
fraction710to1000um?: number | null;
|
|
1136
|
-
fraction1000to1400um?: number | null;
|
|
1137
|
-
fraction1400umto2mm?: number | null;
|
|
1138
|
-
fraction2to4mm?: number | null;
|
|
1139
|
-
fraction4to8mm?: number | null;
|
|
1140
|
-
fraction8to16mm?: number | null;
|
|
1141
|
-
fraction16to31_5mm?: number | null;
|
|
1142
|
-
fraction31_5to63mm?: number | null;
|
|
1143
|
-
fractionLarger63mm?: number | null;
|
|
1144
|
-
fraction63to75um?: number | null;
|
|
1145
|
-
fraction75to90um?: number | null;
|
|
1146
|
-
fraction90to106um?: number | null;
|
|
1147
|
-
fraction106to125um?: number | null;
|
|
1148
|
-
fraction125to150um?: number | null;
|
|
1149
|
-
fraction150to180um?: number | null;
|
|
1150
|
-
fraction180to212um?: number | null;
|
|
1151
|
-
fraction212to250um?: number | null;
|
|
1152
|
-
fraction4to5_6mm?: number | null;
|
|
1153
|
-
fraction5_6to8mm?: number | null;
|
|
1154
|
-
fraction8to11_2mm?: number | null;
|
|
1155
|
-
fraction11_2to16mm?: number | null;
|
|
1156
|
-
fraction16to20mm?: number | null;
|
|
1157
|
-
fraction20to31_5mm?: number | null;
|
|
1158
|
-
}
|
|
1159
|
-
/**
|
|
1160
|
-
* Plasticity data point for Atterberg limits test
|
|
1161
|
-
* Used to construct the plasticity curve (Casagrande)
|
|
1162
|
-
*/
|
|
1163
|
-
export interface PlasticityAtSpecificWaterContent {
|
|
1164
|
-
waterContent: number;
|
|
1165
|
-
numberOfFalls: number;
|
|
1166
|
-
/** Cone penetration depth in mm (fall-cone method) */
|
|
1167
|
-
penetrationDepth?: number | null;
|
|
1168
|
-
}
|
|
1169
|
-
/**
|
|
1170
|
-
* Consistency limits determination (Atterberg limits)
|
|
1171
|
-
* Used to determine soil plasticity characteristics
|
|
1172
|
-
*/
|
|
1173
|
-
export interface ConsistencyLimitsDetermination {
|
|
1174
|
-
determinationProcedure: string | null;
|
|
1175
|
-
determinationMethod: string | null;
|
|
1176
|
-
fractionLarger500um: number | null;
|
|
1177
|
-
usedMedium: string | null;
|
|
1178
|
-
performanceIrregularity: string | null;
|
|
1179
|
-
/** Fall-cone apparatus type used (e.g., "zweedseConus30graden") */
|
|
1180
|
-
conusType: string | null;
|
|
1181
|
-
liquidLimit: number | null;
|
|
1182
|
-
plasticLimit: number | null;
|
|
1183
|
-
plasticityIndex: number | null;
|
|
1184
|
-
plasticityAtSpecificWaterContent: Array<PlasticityAtSpecificWaterContent>;
|
|
1185
|
-
}
|
|
1186
|
-
/**
|
|
1187
|
-
* Height measurement at specific time during settlement test
|
|
1188
|
-
* Used to construct compression/consolidation curves
|
|
1189
|
-
*/
|
|
1190
|
-
export interface HeightAtSpecificTime {
|
|
1191
|
-
time: number;
|
|
1192
|
-
height: number;
|
|
1193
|
-
}
|
|
1194
|
-
/**
|
|
1195
|
-
* Stress/strain measurement at a specific time during a settlement step
|
|
1196
|
-
* Columns of the StressAtSpecificSettlement time-series (oedometer/consolidation).
|
|
1197
|
-
*/
|
|
1198
|
-
export interface StressAtSpecificSettlement {
|
|
1199
|
-
elapsedTime: number;
|
|
1200
|
-
verticalStrain: number;
|
|
1201
|
-
excessPoreWaterPressure: number | null;
|
|
1202
|
-
verticalEffectiveStress: number | null;
|
|
1203
|
-
horizontalEffectiveStress: number | null;
|
|
1204
|
-
}
|
|
1205
|
-
/**
|
|
1206
|
-
* Single loading step in settlement characteristics test
|
|
1207
|
-
* Represents one stress increment in oedometer/consolidation test
|
|
1208
|
-
*/
|
|
1209
|
-
export interface SettlementDeterminationStep {
|
|
1210
|
-
stepNumber: number;
|
|
1211
|
-
wetPerformed: boolean | null;
|
|
1212
|
-
swellObserved: boolean | null;
|
|
1213
|
-
strainPoint24hours: number | null;
|
|
1214
|
-
stepType: string | null;
|
|
1215
|
-
verticalStress: number | null;
|
|
1216
|
-
heightChangeDuringSettlement: Array<HeightAtSpecificTime>;
|
|
1217
|
-
/** Stress/strain time-series for the step (alternative to heightChangeDuringSettlement) */
|
|
1218
|
-
stressChangeDuringSettlement?: Array<StressAtSpecificSettlement>;
|
|
1219
|
-
}
|
|
1220
|
-
/**
|
|
1221
|
-
* Saturation stage preceding compression in the oedometer/settlement test
|
|
1222
|
-
* Documents how the specimen was saturated before loading.
|
|
1223
|
-
*/
|
|
1224
|
-
export interface SaturationStageAtCompression {
|
|
1225
|
-
porousDiscWet: boolean | null;
|
|
1226
|
-
usedMedium: string | null;
|
|
1227
|
-
backPressure: number | null;
|
|
1228
|
-
constantHeight: boolean | null;
|
|
1229
|
-
specimenHeightAfterwards: number | null;
|
|
1230
|
-
disturbanceInduced: boolean | null;
|
|
1231
|
-
/** Maximum stress difference during saturation (kPa) */
|
|
1232
|
-
maximumStressDifference: number | null;
|
|
1233
|
-
/** Maximum strain during saturation (%) */
|
|
1234
|
-
maximumStrain: number | null;
|
|
1235
|
-
}
|
|
1236
|
-
/**
|
|
1237
|
-
* Settlement characteristics determination (oedometer/consolidation test)
|
|
1238
|
-
* Used to determine soil compressibility and consolidation behavior
|
|
1239
|
-
*/
|
|
1240
|
-
export interface SettlementCharacteristicsDetermination {
|
|
1241
|
-
determinationProcedure: string | null;
|
|
1242
|
-
determinationMethod: string | null;
|
|
1243
|
-
ringDiameter: number | null;
|
|
1244
|
-
sampleMoistness: string | null;
|
|
1245
|
-
filterPaperUsed: boolean | null;
|
|
1246
|
-
temperature: number | null;
|
|
1247
|
-
wallFrictionCorrectionMethod: string | null;
|
|
1248
|
-
apparatusDeformationApplied: boolean | null;
|
|
1249
|
-
bearingFrictionCorrectionApplied: boolean | null;
|
|
1250
|
-
irregularResult: boolean | null;
|
|
1251
|
-
/** Saturation stage performed before compression (optional) */
|
|
1252
|
-
saturationStageAtCompression?: SaturationStageAtCompression;
|
|
1253
|
-
determinationSteps: Array<SettlementDeterminationStep>;
|
|
1254
|
-
}
|
|
1255
|
-
/**
|
|
1256
|
-
* Permeability at specific density measurement
|
|
1257
|
-
*/
|
|
1258
|
-
export interface SaturatedPermeabilityAtSpecificDensity {
|
|
1259
|
-
dryVolumetricMassDensity: number | null;
|
|
1260
|
-
saturatedPermeability: number | null;
|
|
1261
|
-
}
|
|
1262
|
-
/**
|
|
1263
|
-
* Permeability at specific load measurement
|
|
1264
|
-
*/
|
|
1265
|
-
export interface SaturatedPermeabilityAtSpecificLoad {
|
|
1266
|
-
load: number | null;
|
|
1267
|
-
saturatedPermeability: number | null;
|
|
1268
|
-
}
|
|
1269
|
-
/**
|
|
1270
|
-
* Saturated permeability determination (hydraulic conductivity)
|
|
1271
|
-
* Used to determine water flow characteristics through soil
|
|
1272
|
-
*/
|
|
1273
|
-
export interface SaturatedPermeabilityDetermination {
|
|
1274
|
-
determinationProcedure: string | null;
|
|
1275
|
-
determinationMethod: string | null;
|
|
1276
|
-
specimenMade: boolean | null;
|
|
1277
|
-
saturatedWithCO2: boolean | null;
|
|
1278
|
-
verticallyDetermined: boolean | null;
|
|
1279
|
-
currentDownwards: boolean | null;
|
|
1280
|
-
usedMedium: string | null;
|
|
1281
|
-
waterDegassed: boolean | null;
|
|
1282
|
-
temperature: number | null;
|
|
1283
|
-
maximumGradient: number | null;
|
|
1284
|
-
/** Whether the confining ring was water-repellent (raw code) */
|
|
1285
|
-
ringWaterRepellent: string | null;
|
|
1286
|
-
/** Water content after the test (%) */
|
|
1287
|
-
waterContentAfterwards: number | null;
|
|
1288
|
-
/** Material irregularities observed (0-2 codes) */
|
|
1289
|
-
materialIrregularity: Array<string>;
|
|
1290
|
-
saturatedPermeabilityAtSpecificDensity: Array<SaturatedPermeabilityAtSpecificDensity>;
|
|
1291
|
-
saturatedPermeabilityAtSpecificLoad: Array<SaturatedPermeabilityAtSpecificLoad>;
|
|
1292
|
-
}
|
|
1293
|
-
/**
|
|
1294
|
-
* Membrane correction data for triaxial test
|
|
1295
|
-
* Corrects for membrane stiffness effects during testing
|
|
1296
|
-
*/
|
|
1297
|
-
export interface MembraneCorrection {
|
|
1298
|
-
correctionMethod: string | null;
|
|
1299
|
-
thickness: number | null;
|
|
1300
|
-
stiffnessClass: string | null;
|
|
1301
|
-
}
|
|
1302
|
-
/**
|
|
1303
|
-
* Drainage strip correction data for triaxial test
|
|
1304
|
-
* Corrects for drainage strip effects during testing
|
|
1305
|
-
*/
|
|
1306
|
-
export interface DrainageStripCorrection {
|
|
1307
|
-
correctionMethod: string | null;
|
|
1308
|
-
orientation: string | null;
|
|
1309
|
-
coverage: string | null;
|
|
1310
|
-
}
|
|
1311
|
-
/**
|
|
1312
|
-
* Saturation stage data for triaxial test
|
|
1313
|
-
* Documents sample saturation process before testing
|
|
1314
|
-
*/
|
|
1315
|
-
export interface SaturationStageAtLoading {
|
|
1316
|
-
porousDiscWet: boolean | null;
|
|
1317
|
-
porousDiscRough: boolean | null;
|
|
1318
|
-
usedMedium: string | null;
|
|
1319
|
-
constantHeight: boolean | null;
|
|
1320
|
-
cellPressureAutomaticallyControlled: boolean | null;
|
|
1321
|
-
backPressure: number | null;
|
|
1322
|
-
effectivePressure: number | null;
|
|
1323
|
-
skemptonBCoefficient: number | null;
|
|
1324
|
-
disturbanceInduced: boolean | null;
|
|
1325
|
-
/** Stress difference during saturation (kPa) */
|
|
1326
|
-
stressDifference: number | null;
|
|
1327
|
-
}
|
|
1328
|
-
/**
|
|
1329
|
-
* Volume change measurement at specific time during consolidation
|
|
1330
|
-
*/
|
|
1331
|
-
export interface VolumeChangeAtSpecificTime {
|
|
1332
|
-
time: number;
|
|
1333
|
-
volumeChange: number;
|
|
1334
|
-
}
|
|
1335
|
-
/**
|
|
1336
|
-
* Consolidation stage data for triaxial test
|
|
1337
|
-
* Documents specimen consolidation under specified stresses
|
|
1338
|
-
*/
|
|
1339
|
-
export interface ConsolidationStageAtLoading {
|
|
1340
|
-
drainageTwoSided: boolean | null;
|
|
1341
|
-
consolidationMethod: string | null;
|
|
1342
|
-
verticalConsolidationStress: number | null;
|
|
1343
|
-
horizontalConsolidationStress: number | null;
|
|
1344
|
-
verticalStrain: number | null;
|
|
1345
|
-
lateralEarthPressureCoefficient: number | null;
|
|
1346
|
-
volumeChangeDuringConsolidation: Array<VolumeChangeAtSpecificTime>;
|
|
1347
|
-
}
|
|
1348
|
-
/**
|
|
1349
|
-
* Shear stress measurement at specific strain during loading
|
|
1350
|
-
* Used to construct stress-strain curves for soil strength analysis
|
|
1351
|
-
*/
|
|
1352
|
-
export interface ShearStressAtSpecificStrain {
|
|
1353
|
-
time: number;
|
|
1354
|
-
axialStrain: number;
|
|
1355
|
-
deviatorStress: number;
|
|
1356
|
-
cellPressure: number;
|
|
1357
|
-
porePressure?: number | null;
|
|
1358
|
-
volumeChange?: number | null;
|
|
1359
|
-
}
|
|
1360
|
-
/**
|
|
1361
|
-
* Reconstituted/remoulded specimen preparation for a triaxial loading test
|
|
1362
|
-
* Present when the specimen was made in the lab rather than taken intact.
|
|
1363
|
-
*/
|
|
1364
|
-
export interface SpecimenMadeForLoading {
|
|
1365
|
-
makingMethod: string | null;
|
|
1366
|
-
dryVolumetricMassDensity: number | null;
|
|
1367
|
-
}
|
|
1368
|
-
/**
|
|
1369
|
-
* Load stage data for triaxial test
|
|
1370
|
-
* Documents the shearing/loading phase of the test
|
|
1371
|
-
*/
|
|
1372
|
-
export interface LoadStage {
|
|
1373
|
-
deformationRate: number | null;
|
|
1374
|
-
specimenShape: string | null;
|
|
1375
|
-
shearStressChangeDuringLoading: Array<ShearStressAtSpecificStrain>;
|
|
1376
|
-
}
|
|
1377
|
-
/**
|
|
1378
|
-
* Shear stress change during loading determination (triaxial/direct shear test)
|
|
1379
|
-
* ISO 17892-9 (triaxial) or ISO 17892-10 (direct shear)
|
|
1380
|
-
*
|
|
1381
|
-
* Measures soil shear strength and stress-strain behavior under controlled loading.
|
|
1382
|
-
* Common test types:
|
|
1383
|
-
* - CU: Consolidated Undrained (belastenGeconsolideerdOngedraineerd)
|
|
1384
|
-
* - CD: Consolidated Drained (belastenGeconsolideerdGedraineerd)
|
|
1385
|
-
* - UU: Unconsolidated Undrained (belastenOngeconsolideerdOngedraineerd)
|
|
1386
|
-
*/
|
|
1387
|
-
export interface ShearStressChangeDuringLoadingDetermination {
|
|
1388
|
-
determinationProcedure: string | null;
|
|
1389
|
-
determinationMethod: string | null;
|
|
1390
|
-
specimenDisturbed: boolean | null;
|
|
1391
|
-
specimenTrimmed: boolean | null;
|
|
1392
|
-
sampleMoistness: string | null;
|
|
1393
|
-
beginDiameter: number | null;
|
|
1394
|
-
beginHeight: number | null;
|
|
1395
|
-
topCapTiltable: boolean | null;
|
|
1396
|
-
filterPaperUsed: boolean | null;
|
|
1397
|
-
drainageStripsUsed: boolean | null;
|
|
1398
|
-
membraneSaturatedBefore: boolean | null;
|
|
1399
|
-
apparatusDeformationApplied: boolean | null;
|
|
1400
|
-
cellDeformationApplied: boolean | null;
|
|
1401
|
-
stopCriterion: string | null;
|
|
1402
|
-
membraneCorrection?: MembraneCorrection;
|
|
1403
|
-
drainageStripCorrection?: DrainageStripCorrection;
|
|
1404
|
-
madeSpecimenForLoading?: SpecimenMadeForLoading;
|
|
1405
|
-
saturationStageAtLoading?: SaturationStageAtLoading;
|
|
1406
|
-
consolidationStageAtLoading?: ConsolidationStageAtLoading;
|
|
1407
|
-
loadStage?: LoadStage;
|
|
1408
|
-
}
|
|
1409
|
-
/**
|
|
1410
|
-
* Maximum undrained shear strength determination (vane shear test)
|
|
1411
|
-
* ISO 14688-2 - Measures peak undrained shear strength using hand vane
|
|
1412
|
-
*/
|
|
1413
|
-
export interface MaximumUndrainedShearStrengthDetermination {
|
|
1414
|
-
determinationProcedure: string | null;
|
|
1415
|
-
determinationMethod: string | null;
|
|
1416
|
-
determinationDiameter: string | null;
|
|
1417
|
-
verticallyDetermined: boolean | null;
|
|
1418
|
-
sampleMoistness: string | null;
|
|
1419
|
-
maximumUndrainedShearStrength: number | null;
|
|
1420
|
-
/** Lowest measured maximum undrained shear strength (kPa) */
|
|
1421
|
-
lowestMaximumUndrainedShearStrength: number | null;
|
|
1422
|
-
/** Highest measured maximum undrained shear strength (kPa) */
|
|
1423
|
-
highestMaximumUndrainedShearStrength: number | null;
|
|
1424
|
-
}
|
|
1425
|
-
/**
|
|
1426
|
-
* Height measurement at specific time during consolidation in horizontal deformation test
|
|
1427
|
-
*/
|
|
1428
|
-
export interface HeightAtSpecificConsolidationTime {
|
|
1429
|
-
time: number;
|
|
1430
|
-
height: number;
|
|
1431
|
-
}
|
|
1432
|
-
/**
|
|
1433
|
-
* Single consolidation step in horizontal deformation test
|
|
1434
|
-
*/
|
|
1435
|
-
export interface ConsolidationStepAtHorizontalDeformation {
|
|
1436
|
-
stepNumber: number | null;
|
|
1437
|
-
verticalStress: number | null;
|
|
1438
|
-
heightChangeDuringConsolidation: Array<HeightAtSpecificConsolidationTime>;
|
|
1439
|
-
}
|
|
1440
|
-
/**
|
|
1441
|
-
* Consolidation stage for horizontal deformation (direct shear) test
|
|
1442
|
-
*/
|
|
1443
|
-
export interface ConsolidationStageAtHorizontalDeformation {
|
|
1444
|
-
pedestalFixed: boolean | null;
|
|
1445
|
-
consolidationSteps: Array<ConsolidationStepAtHorizontalDeformation>;
|
|
1446
|
-
}
|
|
1447
|
-
/**
|
|
1448
|
-
* Shear stress measurement at specific deformation during horizontal shearing
|
|
1449
|
-
*/
|
|
1450
|
-
export interface HorizontalDeformationDataPoint {
|
|
1451
|
-
time: number;
|
|
1452
|
-
horizontalDisplacement: number;
|
|
1453
|
-
shearStress: number;
|
|
1454
|
-
verticalStress: number;
|
|
1455
|
-
heightChange?: number | null;
|
|
1456
|
-
}
|
|
1457
|
-
/**
|
|
1458
|
-
* Shear stage for horizontal deformation (direct shear) test
|
|
1459
|
-
*/
|
|
1460
|
-
export interface ShearStageAtHorizontalDeformation {
|
|
1461
|
-
deformationRate: number | null;
|
|
1462
|
-
activeHeightControl: boolean | null;
|
|
1463
|
-
shearStressChangeDuringHorizontalDeformation: Array<HorizontalDeformationDataPoint>;
|
|
1464
|
-
}
|
|
1465
|
-
/**
|
|
1466
|
-
* Shear stress change during horizontal deformation determination (direct shear test)
|
|
1467
|
-
* ASTM D6528 - Measures soil shear strength under horizontal deformation
|
|
1468
|
-
*/
|
|
1469
|
-
export interface ShearStressChangeDuringHorizontalDeformationDetermination {
|
|
1470
|
-
determinationProcedure: string | null;
|
|
1471
|
-
determinationMethod: string | null;
|
|
1472
|
-
specimenDisturbed: boolean | null;
|
|
1473
|
-
sampleMoistness: string | null;
|
|
1474
|
-
specimenWaterSaturated: boolean | null;
|
|
1475
|
-
porousDiscWet: boolean | null;
|
|
1476
|
-
drained: boolean | null;
|
|
1477
|
-
lateralSupport: string | null;
|
|
1478
|
-
beginDiameter: number | null;
|
|
1479
|
-
beginHeight: number | null;
|
|
1480
|
-
stopCriterion: string | null;
|
|
1481
|
-
membraneCorrectionApplied: boolean | null;
|
|
1482
|
-
apparatusDeformationApplied: boolean | null;
|
|
1483
|
-
bearingFrictionCorrectionApplied: boolean | null;
|
|
1484
|
-
consolidationStageAtHorizontalDeformation?: ConsolidationStageAtHorizontalDeformation;
|
|
1485
|
-
shearStage?: ShearStageAtHorizontalDeformation;
|
|
1486
|
-
}
|
|
1487
|
-
/**
|
|
1488
|
-
* Investigated interval with laboratory determinations
|
|
1489
|
-
* Each interval represents a depth range with analysis results
|
|
1490
|
-
*/
|
|
1491
|
-
export interface InvestigatedInterval {
|
|
1492
|
-
beginDepth: number;
|
|
1493
|
-
endDepth: number;
|
|
1494
|
-
sampleQuality: string | null;
|
|
1495
|
-
analysisType: string | null;
|
|
1496
|
-
waterContentDetermined: boolean | null;
|
|
1497
|
-
organicMatterContentDetermined: boolean | null;
|
|
1498
|
-
carbonateContentDetermined: boolean | null;
|
|
1499
|
-
volumetricMassDensityDetermined: boolean | null;
|
|
1500
|
-
volumetricMassDensitySolidsDetermined: boolean | null;
|
|
1501
|
-
described: boolean | null;
|
|
1502
|
-
waterContentDetermination?: WaterContentDetermination;
|
|
1503
|
-
organicMatterContentDetermination?: OrganicMatterContentDetermination;
|
|
1504
|
-
carbonateContentDetermination?: CarbonateContentDetermination;
|
|
1505
|
-
volumetricMassDensityDetermination?: VolumetricMassDensityDetermination;
|
|
1506
|
-
volumetricMassDensityOfSolidsDetermination?: VolumetricMassDensityOfSolidsDetermination;
|
|
1507
|
-
particleSizeDistributionDetermination?: ParticleSizeDistributionDetermination;
|
|
1508
|
-
consistencyLimitsDetermination?: ConsistencyLimitsDetermination;
|
|
1509
|
-
settlementCharacteristicsDetermination?: SettlementCharacteristicsDetermination;
|
|
1510
|
-
saturatedPermeabilityDetermination?: SaturatedPermeabilityDetermination;
|
|
1511
|
-
shearStressChangeDuringLoadingDetermination?: Array<ShearStressChangeDuringLoadingDetermination>;
|
|
1512
|
-
maximumUndrainedShearStrengthDetermination?: MaximumUndrainedShearStrengthDetermination;
|
|
1513
|
-
shearStressChangeDuringHorizontalDeformationDetermination?: Array<ShearStressChangeDuringHorizontalDeformationDetermination>;
|
|
1514
|
-
}
|
|
1515
|
-
/**
|
|
1516
|
-
* Borehole sample analysis data (BHR-GT-BMA)
|
|
1517
|
-
* Contains laboratory test results for soil samples
|
|
1518
|
-
*/
|
|
1519
|
-
export interface BoreholeSampleAnalysis {
|
|
1520
|
-
analysisReportDate: string | null;
|
|
1521
|
-
analysisProcedure: string | null;
|
|
1522
|
-
investigatedIntervals: Array<InvestigatedInterval>;
|
|
1523
|
-
}
|
|
1524
|
-
/**
|
|
1525
|
-
* Configuration for determination type parsing in registry pattern
|
|
1526
|
-
*/
|
|
1527
|
-
export interface DeterminationConfig<T> {
|
|
1528
|
-
xpath: string;
|
|
1529
|
-
propertyName: keyof InvestigatedInterval;
|
|
1530
|
-
parser: (node: Node, adapter: XMLAdapter, namespaces: Namespaces) => T;
|
|
1531
|
-
}
|
|
139
|
+
} & Produced<typeof BHRG_PRODUCER>;
|
|
1532
140
|
/**
|
|
1533
141
|
* Union type for all BRO data types
|
|
1534
142
|
*
|
|
@@ -1540,11 +148,33 @@ export interface DeterminationConfig<T> {
|
|
|
1540
148
|
* }
|
|
1541
149
|
* ```
|
|
1542
150
|
*/
|
|
1543
|
-
export type BROData = CPTData | BHRGTData | BHRGData;
|
|
151
|
+
export type BROData = CPTData | BHRGTData | BHRGData | GMWData | GLDData;
|
|
1544
152
|
/**
|
|
1545
153
|
* BRO file type identifier
|
|
1546
154
|
*/
|
|
1547
|
-
export type BROFileType = "CPT" | "BHR-GT" | "BHR-G";
|
|
155
|
+
export type BROFileType = "CPT" | "BHR-GT" | "BHR-G" | "GMW" | "GLD";
|
|
156
|
+
/**
|
|
157
|
+
* Complete GLD (groundwater level research) data.
|
|
158
|
+
*
|
|
159
|
+
* Inferred from `GLD_PRODUCER`; `meta` (parse metadata) and the optional
|
|
160
|
+
* user-set `alias` are the only fields not produced from the XML.
|
|
161
|
+
*/
|
|
162
|
+
export type GLDData = {
|
|
163
|
+
meta: ParseMeta;
|
|
164
|
+
alias?: string;
|
|
165
|
+
} & Produced<typeof GLD_PRODUCER>;
|
|
166
|
+
/**
|
|
167
|
+
* Complete GMW (groundwater monitoring well) data.
|
|
168
|
+
*
|
|
169
|
+
* The registration object carries well-level metadata plus one or more
|
|
170
|
+
* monitoring tubes. Inferred from `GMW_PRODUCER`; `meta` (parse
|
|
171
|
+
* metadata) and the optional user-set `alias` are the only fields not produced
|
|
172
|
+
* from the XML.
|
|
173
|
+
*/
|
|
174
|
+
export type GMWData = {
|
|
175
|
+
meta: ParseMeta;
|
|
176
|
+
alias?: string;
|
|
177
|
+
} & Produced<typeof GMW_PRODUCER>;
|
|
1548
178
|
/**
|
|
1549
179
|
* Parse error with context
|
|
1550
180
|
*/
|