@bedrock-engineer/bro-xml-parser 0.2.0 → 0.3.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/dist/browser.d.ts +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js.map +1 -1
- package/dist/resolvers/bhrg-resolvers.d.ts +3 -18
- package/dist/resolvers/bhrg-resolvers.d.ts.map +1 -1
- package/dist/resolvers/bhrg-resolvers.js +294 -41
- package/dist/resolvers/bhrg-resolvers.js.map +1 -1
- package/dist/resolvers/bore-resolver-utils.d.ts +21 -2
- package/dist/resolvers/bore-resolver-utils.d.ts.map +1 -1
- package/dist/resolvers/bore-resolver-utils.js +69 -22
- package/dist/resolvers/bore-resolver-utils.js.map +1 -1
- package/dist/resolvers/bore-resolvers.d.ts +34 -17
- package/dist/resolvers/bore-resolvers.d.ts.map +1 -1
- package/dist/resolvers/bore-resolvers.js +342 -175
- package/dist/resolvers/bore-resolvers.js.map +1 -1
- package/dist/resolvers/cpt-resolvers.d.ts +1 -8
- package/dist/resolvers/cpt-resolvers.d.ts.map +1 -1
- package/dist/resolvers/cpt-resolvers.js +2 -29
- package/dist/resolvers/cpt-resolvers.js.map +1 -1
- package/dist/resolvers/type-resolvers.d.ts +12 -4
- package/dist/resolvers/type-resolvers.d.ts.map +1 -1
- package/dist/resolvers/type-resolvers.js +12 -4
- package/dist/resolvers/type-resolvers.js.map +1 -1
- package/dist/resolvers.d.ts +3 -2
- package/dist/resolvers.d.ts.map +1 -1
- package/dist/resolvers.js +4 -2
- package/dist/resolvers.js.map +1 -1
- package/dist/schemas/bhrg-schema.d.ts.map +1 -1
- package/dist/schemas/bhrg-schema.js +35 -8
- package/dist/schemas/bhrg-schema.js.map +1 -1
- package/dist/schemas/bore-schema.d.ts.map +1 -1
- package/dist/schemas/bore-schema.js +46 -11
- package/dist/schemas/bore-schema.js.map +1 -1
- package/dist/schemas/common-fields.d.ts +16 -0
- package/dist/schemas/common-fields.d.ts.map +1 -0
- package/dist/schemas/common-fields.js +31 -0
- package/dist/schemas/common-fields.js.map +1 -0
- package/dist/schemas/cpt-schema.d.ts.map +1 -1
- package/dist/schemas/cpt-schema.js +20 -10
- package/dist/schemas/cpt-schema.js.map +1 -1
- package/dist/types/index.d.ts +465 -49
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +3 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -144,15 +144,41 @@ export interface DissipationTest {
|
|
|
144
144
|
phenomenonTime: string | null;
|
|
145
145
|
measurements: Array<DissipationMeasurement>;
|
|
146
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
|
+
}
|
|
147
174
|
/**
|
|
148
175
|
* Complete CPT data (metadata + measurements)
|
|
149
176
|
*/
|
|
150
|
-
export interface CPTData {
|
|
177
|
+
export interface CPTData extends BRORegistrationObject {
|
|
151
178
|
/**
|
|
152
179
|
* Metadata about the parsed document (schema version, warnings)
|
|
153
180
|
*/
|
|
154
181
|
meta: ParseMeta;
|
|
155
|
-
broId: string | null;
|
|
156
182
|
/**
|
|
157
183
|
* User-defined identifier (not parsed from XML)
|
|
158
184
|
*
|
|
@@ -166,15 +192,8 @@ export interface CPTData {
|
|
|
166
192
|
* ```
|
|
167
193
|
*/
|
|
168
194
|
alias?: string;
|
|
169
|
-
/**
|
|
170
|
-
|
|
171
|
-
*
|
|
172
|
-
* - IMBRO: Strict regime (all mandatory fields required)
|
|
173
|
-
* - IMBRO/A: Relaxed regime for historical data (allows missing fields)
|
|
174
|
-
*/
|
|
175
|
-
qualityRegime: QualityRegime | null;
|
|
176
|
-
/** Party responsible for delivering the data to the BRO (bronhouder, KvK number or name) */
|
|
177
|
-
deliveryAccountableParty: string | null;
|
|
195
|
+
/** KvK number of the operator that carried out the research */
|
|
196
|
+
researchOperator: string | null;
|
|
178
197
|
researchReportDate: string | null;
|
|
179
198
|
/** When the cone penetration test was physically performed in the field (om:phenomenonTime) */
|
|
180
199
|
conePenetrationTestPhenomenonTime: string | null;
|
|
@@ -182,17 +201,25 @@ export interface CPTData {
|
|
|
182
201
|
conePenetrationTestResultTime: string | null;
|
|
183
202
|
deliveredLocation: Location | null;
|
|
184
203
|
standardizedLocation: Location | null;
|
|
204
|
+
/** Coordinate transformation applied to the standardized location (e.g. "RDNAPTRANS2018") */
|
|
205
|
+
coordinateTransformation: string | null;
|
|
185
206
|
/** Date horizontal position was determined */
|
|
186
207
|
horizontalPositioningDate: string | null;
|
|
187
208
|
/** Method used to determine horizontal position (e.g., "onbekend", "GNSS") */
|
|
188
209
|
horizontalPositioningMethod: string | null;
|
|
210
|
+
/** KvK number of the operator that determined the horizontal position */
|
|
211
|
+
horizontalPositioningOperator: string | null;
|
|
189
212
|
deliveredVerticalPositionOffset: number | null;
|
|
190
213
|
deliveredVerticalPositionDatum: string | null;
|
|
191
214
|
deliveredVerticalPositionReferencePoint: string | null;
|
|
215
|
+
/** Water depth at the CPT location (m), when the survey was performed over water */
|
|
216
|
+
waterDepth: number | null;
|
|
192
217
|
/** Date vertical position was determined */
|
|
193
218
|
verticalPositioningDate: string | null;
|
|
194
219
|
/** Method used to determine vertical position (e.g., "onbekend", "waterpassingKlasse2") */
|
|
195
220
|
verticalPositioningMethod: string | null;
|
|
221
|
+
/** KvK number of the operator that determined the vertical position */
|
|
222
|
+
verticalPositioningOperator: string | null;
|
|
196
223
|
/** Delivery context (e.g., "publiekeTaak", "archiefoverdracht") */
|
|
197
224
|
deliveryContext: string | null;
|
|
198
225
|
/** Survey purpose (e.g., "waterkering", "onbekend") */
|
|
@@ -257,7 +284,6 @@ export interface CPTData {
|
|
|
257
284
|
zlmElectricalConductivityAfter: number | null;
|
|
258
285
|
data: Array<CPTMeasurement>;
|
|
259
286
|
dissipationTests: Array<DissipationTest>;
|
|
260
|
-
registrationHistory: RegistrationHistory | null;
|
|
261
287
|
}
|
|
262
288
|
/**
|
|
263
289
|
* Grain shape properties for sand/gravel fractions
|
|
@@ -272,18 +298,98 @@ export interface Grainshape {
|
|
|
272
298
|
/** Roughness of grains (e.g., "ruw", "glad") */
|
|
273
299
|
roughness: string | null;
|
|
274
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Weathering degree of a rock layer (three-axis classification)
|
|
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).
|
|
314
|
+
*
|
|
315
|
+
* A layer describes either soil (flattened onto BHRGTLayer) or rock (this
|
|
316
|
+
* nested object). Yes/no fields keep their raw code (e.g. "ja", "nee",
|
|
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
|
+
}
|
|
275
355
|
/**
|
|
276
356
|
* BHR-GT (Borehole Research Geotechnical) layer data
|
|
277
357
|
*
|
|
278
358
|
* Contains all fields from the BRO BHR-GT schema for a single soil layer.
|
|
279
359
|
*/
|
|
280
|
-
|
|
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).
|
|
363
|
+
*/
|
|
364
|
+
export interface BHRGTLayerBase {
|
|
281
365
|
upperBoundary: number;
|
|
282
366
|
lowerBoundary: number;
|
|
283
367
|
upperBoundaryDetermination?: string | null;
|
|
284
368
|
lowerBoundaryDetermination?: string | null;
|
|
285
369
|
/** Whether the layer is anthropogenic (man-made) */
|
|
286
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) */
|
|
287
393
|
geotechnicalSoilName: string;
|
|
288
394
|
/** Soil name per NEN 5104 (IMBRO/A archive data; geotechnicalSoilName is often nil there) */
|
|
289
395
|
soilNameNEN5104?: string | null;
|
|
@@ -311,18 +417,6 @@ export interface BHRGTLayer {
|
|
|
311
417
|
interbedding?: string | null;
|
|
312
418
|
/** Grain shape properties (for sand/gravel) */
|
|
313
419
|
grainshape?: Grainshape;
|
|
314
|
-
/** Whether the layer boundary is slanted */
|
|
315
|
-
slant?: boolean | null;
|
|
316
|
-
/** Whether the layer is bedded/stratified */
|
|
317
|
-
bedded?: boolean | null;
|
|
318
|
-
/** Bedding type of the layer (e.g., "dikGelamineerd") */
|
|
319
|
-
bedding?: string | null;
|
|
320
|
-
/** Whether the layer is a composite layer */
|
|
321
|
-
compositeLayer?: boolean | null;
|
|
322
|
-
/** Human activity type observed in the layer (e.g., "nietBepaald") */
|
|
323
|
-
activityType?: string | null;
|
|
324
|
-
/** Whether the internal structure is intact (undisturbed) */
|
|
325
|
-
internalStructureIntact?: boolean | null;
|
|
326
420
|
/** Whether the soil is mixed */
|
|
327
421
|
mixed?: boolean | null;
|
|
328
422
|
/** Whether the soil has mottled appearance */
|
|
@@ -335,19 +429,55 @@ export interface BHRGTLayer {
|
|
|
335
429
|
organicSoilTexture?: string | null;
|
|
336
430
|
/** Tensile strength of peat */
|
|
337
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;
|
|
338
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;
|
|
339
470
|
/**
|
|
340
471
|
* Complete Bore data (metadata + layers)
|
|
341
472
|
*
|
|
342
473
|
* Note: BHRGTData represents BHR-GT-BMB (Boormonsterbeschrijving - visual/textural description)
|
|
343
474
|
* For laboratory analysis data, see the optional `analysis` field (BHR-GT-BMA)
|
|
344
475
|
*/
|
|
345
|
-
export interface BHRGTData {
|
|
476
|
+
export interface BHRGTData extends BRORegistrationObject {
|
|
346
477
|
/**
|
|
347
478
|
* Metadata about the parsed document (schema version, warnings)
|
|
348
479
|
*/
|
|
349
480
|
meta: ParseMeta;
|
|
350
|
-
broId: string | null;
|
|
351
481
|
/**
|
|
352
482
|
* User-defined identifier (not parsed from XML)
|
|
353
483
|
*
|
|
@@ -361,15 +491,6 @@ export interface BHRGTData {
|
|
|
361
491
|
* ```
|
|
362
492
|
*/
|
|
363
493
|
alias?: string;
|
|
364
|
-
/**
|
|
365
|
-
* BRO quality regime
|
|
366
|
-
*
|
|
367
|
-
* - IMBRO: Strict regime (all mandatory fields required)
|
|
368
|
-
* - IMBRO/A: Relaxed regime for historical data (allows missing fields)
|
|
369
|
-
*/
|
|
370
|
-
qualityRegime: QualityRegime | null;
|
|
371
|
-
/** Party responsible for delivering the data to the BRO (bronhouder, KvK number or name) */
|
|
372
|
-
deliveryAccountableParty: string | null;
|
|
373
494
|
researchReportDate: string | null;
|
|
374
495
|
deliveredLocation: Location | null;
|
|
375
496
|
standardizedLocation: Location | null;
|
|
@@ -378,6 +499,10 @@ export interface BHRGTData {
|
|
|
378
499
|
deliveredVerticalPositionReferencePoint: string | null;
|
|
379
500
|
/** Soil use at the site (e.g., "akker", "grasland", "geenBodemgebruik") */
|
|
380
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;
|
|
381
506
|
descriptionProcedure: string | null;
|
|
382
507
|
groundwaterLevel: number | null;
|
|
383
508
|
/** Mean highest groundwater level in m relative to local reference (GHG) */
|
|
@@ -387,6 +512,12 @@ export interface BHRGTData {
|
|
|
387
512
|
boreRockReached: boolean | null;
|
|
388
513
|
finalBoreDepth: number | null;
|
|
389
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;
|
|
390
521
|
boreHoleCompleted: boolean | null;
|
|
391
522
|
/** Start date of the boring operation */
|
|
392
523
|
boringStartDate: string | null;
|
|
@@ -404,10 +535,14 @@ export interface BHRGTData {
|
|
|
404
535
|
stopCriterion: string | null;
|
|
405
536
|
/** Whether a flushing medium was used during boring */
|
|
406
537
|
flushingMediumUsed: boolean | null;
|
|
538
|
+
/** Flushing additive used during boring (e.g. "geen"), when a flushing medium was used */
|
|
539
|
+
flushingAdditive: string | null;
|
|
407
540
|
/** Whether a temporary casing was used during boring */
|
|
408
541
|
temporaryCasingUsed: boolean | null;
|
|
409
542
|
/** Site preparation before boring (e.g., "geen") */
|
|
410
543
|
preparation: string | null;
|
|
544
|
+
/** KvK number of the operator that carried out the research */
|
|
545
|
+
researchOperator: string | null;
|
|
411
546
|
/** Type of sampler used */
|
|
412
547
|
samplerType: string | null;
|
|
413
548
|
/** Sampling procedure standard */
|
|
@@ -462,8 +597,14 @@ export interface BHRGTData {
|
|
|
462
597
|
completedIntervals: Array<CompletedInterval>;
|
|
463
598
|
/** Array of intervals not described (with reason) */
|
|
464
599
|
notDescribedIntervals: Array<NotDescribedInterval>;
|
|
465
|
-
/**
|
|
466
|
-
|
|
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;
|
|
467
608
|
/** Report history with events */
|
|
468
609
|
reportHistory: ReportHistory | null;
|
|
469
610
|
/** Delivery context (e.g., "publiekeTaak") */
|
|
@@ -477,10 +618,139 @@ export interface BHRGTData {
|
|
|
477
618
|
/** Whether site characteristics were determined */
|
|
478
619
|
siteCharacteristicDetermined: boolean | null;
|
|
479
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
|
+
}
|
|
480
747
|
/**
|
|
481
748
|
* BHR-G (Geological Borehole) layer data
|
|
482
749
|
*
|
|
483
750
|
* Contains all fields from the BRO BHR-G schema for a single soil layer.
|
|
751
|
+
* Soil-level fields are flattened directly onto the layer (matching the parser's
|
|
752
|
+
* existing style); genuinely nested sub-structures (fractions, mottles, chunks,
|
|
753
|
+
* thin strata) are modelled as nested objects/arrays.
|
|
484
754
|
*/
|
|
485
755
|
export interface BHRGLayer {
|
|
486
756
|
upperBoundary: number;
|
|
@@ -497,34 +767,82 @@ export interface BHRGLayer {
|
|
|
497
767
|
gravelContentClass?: string | null;
|
|
498
768
|
carbonateContentClass?: string | null;
|
|
499
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>;
|
|
500
810
|
}
|
|
501
811
|
/**
|
|
502
812
|
* Complete BHR-G (Geological Borehole) data (metadata + layers)
|
|
503
813
|
*/
|
|
504
|
-
export interface BHRGData {
|
|
814
|
+
export interface BHRGData extends BRORegistrationObject {
|
|
505
815
|
/**
|
|
506
816
|
* Metadata about the parsed document (schema version, warnings)
|
|
507
817
|
*/
|
|
508
818
|
meta: ParseMeta;
|
|
509
|
-
broId: string | null;
|
|
510
819
|
/**
|
|
511
820
|
* User-defined identifier (not parsed from XML)
|
|
512
821
|
*/
|
|
513
822
|
alias?: string;
|
|
514
|
-
/**
|
|
515
|
-
* BRO quality regime
|
|
516
|
-
*
|
|
517
|
-
* - IMBRO: Strict regime (all mandatory fields required)
|
|
518
|
-
* - IMBRO/A: Relaxed regime for historical data (allows missing fields)
|
|
519
|
-
*/
|
|
520
|
-
qualityRegime: QualityRegime | null;
|
|
521
823
|
researchReportDate: string | null;
|
|
522
824
|
deliveredLocation: Location | null;
|
|
523
825
|
standardizedLocation: Location | null;
|
|
524
826
|
deliveredVerticalPositionOffset: number | null;
|
|
525
827
|
deliveredVerticalPositionDatum: string | null;
|
|
526
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;
|
|
527
843
|
descriptionProcedure: string | null;
|
|
844
|
+
/** Tool used for the sample description */
|
|
845
|
+
utensil: string | null;
|
|
528
846
|
boreRockReached: boolean | null;
|
|
529
847
|
finalBoreDepth: number | null;
|
|
530
848
|
finalSampleDepth: number | null;
|
|
@@ -543,6 +861,8 @@ export interface BHRGData {
|
|
|
543
861
|
subsurfaceContaminated: boolean | null;
|
|
544
862
|
/** Stop criterion for boring */
|
|
545
863
|
stopCriterion: string | null;
|
|
864
|
+
/** Whether a flushing additive was used (raw code) */
|
|
865
|
+
flushingAdditiveUsed: string | null;
|
|
546
866
|
/** Sampling procedure standard */
|
|
547
867
|
samplingProcedure: string | null;
|
|
548
868
|
/** Sampling method used */
|
|
@@ -568,8 +888,6 @@ export interface BHRGData {
|
|
|
568
888
|
boredIntervals: Array<BoredInterval>;
|
|
569
889
|
/** Array of sampled intervals with method and quality */
|
|
570
890
|
sampledIntervals: Array<SampledInterval>;
|
|
571
|
-
/** BRO registration history */
|
|
572
|
-
registrationHistory: RegistrationHistory | null;
|
|
573
891
|
/** Report history with events */
|
|
574
892
|
reportHistory: ReportHistory | null;
|
|
575
893
|
/** Delivery context (e.g., "archiefoverdracht") */
|
|
@@ -608,6 +926,19 @@ export interface SamplerDetails {
|
|
|
608
926
|
coreCatcherPresent: boolean | null;
|
|
609
927
|
pistonPresent: boolean | null;
|
|
610
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
|
+
}
|
|
611
942
|
/**
|
|
612
943
|
* Sampled interval - records sampling method and quality at specific depth ranges
|
|
613
944
|
*/
|
|
@@ -619,6 +950,8 @@ export interface SampledInterval {
|
|
|
619
950
|
samplingQuality: string | null;
|
|
620
951
|
orientatedSampled: boolean | null;
|
|
621
952
|
sampler?: SamplerDetails;
|
|
953
|
+
/** Core recovery measurements (rock coring), when determined */
|
|
954
|
+
coreRecovery?: CoreRecovery;
|
|
622
955
|
}
|
|
623
956
|
/**
|
|
624
957
|
* Completed interval - records how the borehole was completed/backfilled
|
|
@@ -627,10 +960,45 @@ export interface CompletedInterval {
|
|
|
627
960
|
beginDepth: number;
|
|
628
961
|
endDepth: number;
|
|
629
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;
|
|
630
967
|
backfillMaterial: string | null;
|
|
631
968
|
backfillMaterialWashed: boolean | null;
|
|
632
969
|
backfillMaterialCertified: boolean | null;
|
|
633
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
|
+
}
|
|
634
1002
|
/**
|
|
635
1003
|
* Not described interval - records depth ranges that were not described and why
|
|
636
1004
|
*/
|
|
@@ -655,6 +1023,14 @@ export interface RegistrationHistory {
|
|
|
655
1023
|
registrationCompletionTime: string | null;
|
|
656
1024
|
/** Time of the latest correction to the registered object */
|
|
657
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;
|
|
658
1034
|
corrected: boolean | null;
|
|
659
1035
|
underReview: boolean | null;
|
|
660
1036
|
deregistered: boolean | null;
|
|
@@ -736,6 +1112,8 @@ export interface ParticleSizeDistributionDetermination {
|
|
|
736
1112
|
removedMaterial: string | null;
|
|
737
1113
|
equivalentMassDeterminationMethod: string | null;
|
|
738
1114
|
equivalentMass: number | null;
|
|
1115
|
+
/** Optical model used (for laser-diffraction methods) */
|
|
1116
|
+
usedOpticalModel?: string | null;
|
|
739
1117
|
fractionSmaller63um: number | null;
|
|
740
1118
|
fractionLarger63um: number | null;
|
|
741
1119
|
fraction0to2um?: number | null;
|
|
@@ -763,6 +1141,20 @@ export interface ParticleSizeDistributionDetermination {
|
|
|
763
1141
|
fraction16to31_5mm?: number | null;
|
|
764
1142
|
fraction31_5to63mm?: number | null;
|
|
765
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;
|
|
766
1158
|
}
|
|
767
1159
|
/**
|
|
768
1160
|
* Plasticity data point for Atterberg limits test
|
|
@@ -836,6 +1228,10 @@ export interface SaturationStageAtCompression {
|
|
|
836
1228
|
constantHeight: boolean | null;
|
|
837
1229
|
specimenHeightAfterwards: number | null;
|
|
838
1230
|
disturbanceInduced: boolean | null;
|
|
1231
|
+
/** Maximum stress difference during saturation (kPa) */
|
|
1232
|
+
maximumStressDifference: number | null;
|
|
1233
|
+
/** Maximum strain during saturation (%) */
|
|
1234
|
+
maximumStrain: number | null;
|
|
839
1235
|
}
|
|
840
1236
|
/**
|
|
841
1237
|
* Settlement characteristics determination (oedometer/consolidation test)
|
|
@@ -863,6 +1259,13 @@ export interface SaturatedPermeabilityAtSpecificDensity {
|
|
|
863
1259
|
dryVolumetricMassDensity: number | null;
|
|
864
1260
|
saturatedPermeability: number | null;
|
|
865
1261
|
}
|
|
1262
|
+
/**
|
|
1263
|
+
* Permeability at specific load measurement
|
|
1264
|
+
*/
|
|
1265
|
+
export interface SaturatedPermeabilityAtSpecificLoad {
|
|
1266
|
+
load: number | null;
|
|
1267
|
+
saturatedPermeability: number | null;
|
|
1268
|
+
}
|
|
866
1269
|
/**
|
|
867
1270
|
* Saturated permeability determination (hydraulic conductivity)
|
|
868
1271
|
* Used to determine water flow characteristics through soil
|
|
@@ -878,7 +1281,14 @@ export interface SaturatedPermeabilityDetermination {
|
|
|
878
1281
|
waterDegassed: boolean | null;
|
|
879
1282
|
temperature: number | null;
|
|
880
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>;
|
|
881
1290
|
saturatedPermeabilityAtSpecificDensity: Array<SaturatedPermeabilityAtSpecificDensity>;
|
|
1291
|
+
saturatedPermeabilityAtSpecificLoad: Array<SaturatedPermeabilityAtSpecificLoad>;
|
|
882
1292
|
}
|
|
883
1293
|
/**
|
|
884
1294
|
* Membrane correction data for triaxial test
|
|
@@ -912,6 +1322,8 @@ export interface SaturationStageAtLoading {
|
|
|
912
1322
|
effectivePressure: number | null;
|
|
913
1323
|
skemptonBCoefficient: number | null;
|
|
914
1324
|
disturbanceInduced: boolean | null;
|
|
1325
|
+
/** Stress difference during saturation (kPa) */
|
|
1326
|
+
stressDifference: number | null;
|
|
915
1327
|
}
|
|
916
1328
|
/**
|
|
917
1329
|
* Volume change measurement at specific time during consolidation
|
|
@@ -1005,6 +1417,10 @@ export interface MaximumUndrainedShearStrengthDetermination {
|
|
|
1005
1417
|
verticallyDetermined: boolean | null;
|
|
1006
1418
|
sampleMoistness: string | null;
|
|
1007
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;
|
|
1008
1424
|
}
|
|
1009
1425
|
/**
|
|
1010
1426
|
* Height measurement at specific time during consolidation in horizontal deformation test
|