@welldot/core 0.1.0 → 0.2.2

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.
@@ -65,22 +65,22 @@ A `.well` file is a JSON object with the following top-level structure:
65
65
 
66
66
  ## Top-level Fields
67
67
 
68
- | Field | Type | Required | Description |
69
- |---------------------|---------|----------|--------------------------------------------------|
70
- | `version` | integer | yes | Format version. Must be `1` for this spec. |
71
- | `well_type` | string | yes | Classification of the well. See vocabulary below.|
72
- | `name` | string | no | Well name or local identifier. |
73
- | `well_driller` | string | no | Name of the drilling company or individual. |
74
- | `construction_date` | string | no | ISO 8601 date of well completion (YYYY-MM-DD). |
75
- | `lat` | number | no | Latitude in decimal degrees (WGS84). |
76
- | `lng` | number | no | Longitude in decimal degrees (WGS84). |
77
- | `elevation` | number | no | Ground elevation above sea level in meters. |
78
- | `obs` | string | no | Free-text observations about the well. |
68
+ | Field | Type | Required | Description |
69
+ | ------------------- | ------- | -------- | ------------------------------------------------- |
70
+ | `version` | integer | yes | Format version. Must be `1` for this spec. |
71
+ | `well_type` | string | yes | Classification of the well. See vocabulary below. |
72
+ | `name` | string | no | Well name or local identifier. |
73
+ | `well_driller` | string | no | Name of the drilling company or individual. |
74
+ | `construction_date` | string | no | ISO 8601 date of well completion (YYYY-MM-DD). |
75
+ | `lat` | number | no | Latitude in decimal degrees (WGS84). |
76
+ | `lng` | number | no | Longitude in decimal degrees (WGS84). |
77
+ | `elevation` | number | no | Ground elevation above sea level in meters. |
78
+ | `obs` | string | no | Free-text observations about the well. |
79
79
 
80
80
  ### `well_type` — Recommended values
81
81
 
82
82
  | Value | Description |
83
- |------------------------|------------------------------------------------|
83
+ | ---------------------- | ---------------------------------------------- |
84
84
  | `tubular` | Conventional rotary or percussion drilled well |
85
85
  | `artesian` | Free-flowing artesian well |
86
86
  | `hand_dug` | Manually excavated well or cistern |
@@ -97,11 +97,11 @@ The `well_type` field accepts any string. The values above are the recommended v
97
97
 
98
98
  Represents a drilled interval of the borehole. Multiple entries describe a telescoping borehole with different diameters at different depth ranges.
99
99
 
100
- | Field | Type | Required | Description |
101
- |-------------------|--------|----------|------------------------------------|
102
- | `from` | number | yes | Start depth in meters. |
103
- | `to` | number | yes | End depth in meters. |
104
- | `diameter` | number | yes | Borehole diameter in millimeters. |
100
+ | Field | Type | Required | Description |
101
+ | ----------------- | ------ | -------- | -------------------------------------------------------- |
102
+ | `from` | number | yes | Start depth in meters. |
103
+ | `to` | number | yes | End depth in meters. |
104
+ | `diameter` | number | yes | Borehole diameter in millimeters. |
105
105
  | `drilling_method` | string | no | Method used (e.g. `rotary`, `percussion`, `cable_tool`). |
106
106
 
107
107
  ```json
@@ -114,12 +114,12 @@ Represents a drilled interval of the borehole. Multiple entries describe a teles
114
114
 
115
115
  Steel or plastic casing installed inside the borehole.
116
116
 
117
- | Field | Type | Required | Description |
118
- |------------|--------|----------|-------------------------------------|
119
- | `from` | number | yes | Start depth in meters. |
120
- | `to` | number | yes | End depth in meters. |
117
+ | Field | Type | Required | Description |
118
+ | ---------- | ------ | -------- | ------------------------------------------------------------------- |
119
+ | `from` | number | yes | Start depth in meters. |
120
+ | `to` | number | yes | End depth in meters. |
121
121
  | `type` | string | yes | Casing material. Recommended: `steel`, `pvc`, `hdpe`, `fiberglass`. |
122
- | `diameter` | number | yes | Casing outer diameter in millimeters.|
122
+ | `diameter` | number | yes | Casing outer diameter in millimeters. |
123
123
 
124
124
  ```json
125
125
  { "from": 0, "to": 60, "type": "steel", "diameter": 200 }
@@ -131,13 +131,13 @@ Steel or plastic casing installed inside the borehole.
131
131
 
132
132
  A transition piece connecting two casing or screen sections of different diameters.
133
133
 
134
- | Field | Type | Required | Description |
135
- |-------------|--------|----------|------------------------------------------|
136
- | `from` | number | yes | Start depth in meters. |
137
- | `to` | number | yes | End depth in meters. |
138
- | `diam_from` | number | yes | Diameter at the top of the reducer in mm.|
139
- | `diam_to` | number | yes | Diameter at the bottom of the reducer in mm.|
140
- | `type` | string | yes | Reducer type (e.g. `conical`, `stepped`).|
134
+ | Field | Type | Required | Description |
135
+ | ----------- | ------ | -------- | -------------------------------------------- |
136
+ | `from` | number | yes | Start depth in meters. |
137
+ | `to` | number | yes | End depth in meters. |
138
+ | `diam_from` | number | yes | Diameter at the top of the reducer in mm. |
139
+ | `diam_to` | number | yes | Diameter at the bottom of the reducer in mm. |
140
+ | `type` | string | yes | Reducer type (e.g. `conical`, `stepped`). |
141
141
 
142
142
  ```json
143
143
  { "from": 58, "to": 60, "diam_from": 200, "diam_to": 150, "type": "conical" }
@@ -149,16 +149,22 @@ A transition piece connecting two casing or screen sections of different diamete
149
149
 
150
150
  Slotted or wire-wound screen section that allows water to enter the well.
151
151
 
152
- | Field | Type | Required | Description |
153
- |------------------|--------|----------|------------------------------------------|
154
- | `from` | number | yes | Start depth in meters. |
155
- | `to` | number | yes | End depth in meters. |
152
+ | Field | Type | Required | Description |
153
+ | ---------------- | ------ | -------- | --------------------------------------------------------------------------------- |
154
+ | `from` | number | yes | Start depth in meters. |
155
+ | `to` | number | yes | End depth in meters. |
156
156
  | `type` | string | yes | Screen type. Recommended: `wire_wound`, `bridge_slot`, `louvered`, `pvc_slotted`. |
157
- | `diameter` | number | yes | Screen outer diameter in millimeters. |
158
- | `screen_slot_mm` | number | yes | Slot opening size in millimeters. |
157
+ | `diameter` | number | yes | Screen outer diameter in millimeters. |
158
+ | `screen_slot_mm` | number | yes | Slot opening size in millimeters. |
159
159
 
160
160
  ```json
161
- { "from": 60, "to": 80, "type": "wire_wound", "diameter": 150, "screen_slot_mm": 0.5 }
161
+ {
162
+ "from": 60,
163
+ "to": 80,
164
+ "type": "wire_wound",
165
+ "diameter": 150,
166
+ "screen_slot_mm": 0.5
167
+ }
162
168
  ```
163
169
 
164
170
  ---
@@ -167,11 +173,11 @@ Slotted or wire-wound screen section that allows water to enter the well.
167
173
 
168
174
  Outer protective casing installed near the surface, typically to prevent surface contamination.
169
175
 
170
- | Field | Type | Required | Description |
171
- |------------|--------|----------|-------------------------------------------|
172
- | `from` | number | yes | Start depth in meters. |
173
- | `to` | number | yes | End depth in meters. |
174
- | `diameter` | number | yes | Casing outer diameter in millimeters. |
176
+ | Field | Type | Required | Description |
177
+ | ---------- | ------ | -------- | ------------------------------------- |
178
+ | `from` | number | yes | Start depth in meters. |
179
+ | `to` | number | yes | End depth in meters. |
180
+ | `diameter` | number | yes | Casing outer diameter in millimeters. |
175
181
 
176
182
  ```json
177
183
  { "from": 0, "to": 3, "diameter": 300 }
@@ -183,16 +189,22 @@ Outer protective casing installed near the surface, typically to prevent surface
183
189
 
184
190
  Material placed in the annular space between the casing and the borehole wall.
185
191
 
186
- | Field | Type | Required | Description |
187
- |---------------|--------|----------|--------------------------------------------------|
188
- | `from` | number | yes | Start depth in meters. |
189
- | `to` | number | yes | End depth in meters. |
190
- | `type` | string | yes | Either `gravel_pack` or `seal`. |
191
- | `diameter` | number | yes | Outer diameter of the filled annulus in mm. |
192
- | `description` | string | yes | Material description (e.g. grain size, material).|
192
+ | Field | Type | Required | Description |
193
+ | ------------- | ------ | -------- | ------------------------------------------------- |
194
+ | `from` | number | yes | Start depth in meters. |
195
+ | `to` | number | yes | End depth in meters. |
196
+ | `type` | string | yes | Either `gravel_pack` or `seal`. |
197
+ | `diameter` | number | yes | Outer diameter of the filled annulus in mm. |
198
+ | `description` | string | yes | Material description (e.g. grain size, material). |
193
199
 
194
200
  ```json
195
- { "from": 60, "to": 80, "type": "gravel_pack", "diameter": 250, "description": "Seixo 2-4mm" }
201
+ {
202
+ "from": 60,
203
+ "to": 80,
204
+ "type": "gravel_pack",
205
+ "diameter": 250,
206
+ "description": "Seixo 2-4mm"
207
+ }
196
208
  ```
197
209
 
198
210
  ---
@@ -201,12 +213,12 @@ Material placed in the annular space between the casing and the borehole wall.
201
213
 
202
214
  The concrete pad installed at ground level (depth 0) around the wellhead. Dimensions are in meters.
203
215
 
204
- | Field | Type | Required | Description |
205
- |-------------|--------|----------|------------------------------------------|
216
+ | Field | Type | Required | Description |
217
+ | ----------- | ------ | -------- | ----------------------------------------------------- |
206
218
  | `type` | string | yes | Pad shape (e.g. `square`, `rectangular`, `circular`). |
207
- | `width` | number | yes | Width in meters. |
208
- | `thickness` | number | yes | Thickness in meters. |
209
- | `length` | number | yes | Length in meters. |
219
+ | `width` | number | yes | Width in meters. |
220
+ | `thickness` | number | yes | Thickness in meters. |
221
+ | `length` | number | yes | Length in meters. |
210
222
 
211
223
  ```json
212
224
  { "type": "square", "width": 1.0, "thickness": 0.15, "length": 1.0 }
@@ -218,15 +230,15 @@ The concrete pad installed at ground level (depth 0) around the wellhead. Dimens
218
230
 
219
231
  Geological description of a depth interval.
220
232
 
221
- | Field | Type | Required | Description |
222
- |-----------------|--------|----------|---------------------------------------------------|
223
- | `from` | number | yes | Start depth in meters. |
224
- | `to` | number | yes | End depth in meters. |
225
- | `description` | string | yes | Free-text geological description. |
226
- | `color` | string | yes | Representative color as a CSS hex value. |
233
+ | Field | Type | Required | Description |
234
+ | --------------- | ------ | -------- | --------------------------------------------------------------------------------------- |
235
+ | `from` | number | yes | Start depth in meters. |
236
+ | `to` | number | yes | End depth in meters. |
237
+ | `description` | string | yes | Free-text geological description. |
238
+ | `color` | string | yes | Representative color as a CSS hex value. |
227
239
  | `fgdc_texture` | string | yes | Texture code per the FGDC Digital Cartographic Standard for Geologic Map Symbolization. |
228
- | `geologic_unit` | string | yes | Name of the stratigraphic or geologic unit. |
229
- | `aquifer_unit` | string | yes | Aquifer classification (e.g. `freático`, `confinado`, `fraturado`). |
240
+ | `geologic_unit` | string | yes | Name of the stratigraphic or geologic unit. |
241
+ | `aquifer_unit` | string | yes | Aquifer classification (e.g. `freático`, `confinado`, `fraturado`). |
230
242
 
231
243
  ```json
232
244
  {
@@ -246,17 +258,24 @@ Geological description of a depth interval.
246
258
 
247
259
  A discrete fracture or fracture zone intersected by the borehole.
248
260
 
249
- | Field | Type | Required | Description |
250
- |----------------|---------|----------|---------------------------------------------------------------|
251
- | `depth` | number | yes | Depth of the fracture in meters. |
252
- | `water_intake` | boolean | yes | Whether the fracture produces water. |
253
- | `description` | string | yes | Free-text description. |
254
- | `swarm` | boolean | yes | Whether this fracture belongs to a swarm (closely spaced set).|
255
- | `azimuth` | number | yes | Azimuth in degrees from geographic north (0–360). |
256
- | `dip` | number | yes | Dip angle in degrees from horizontal (0–90). |
261
+ | Field | Type | Required | Description |
262
+ | -------------- | ------- | -------- | -------------------------------------------------------------- |
263
+ | `depth` | number | yes | Depth of the fracture in meters. |
264
+ | `water_intake` | boolean | yes | Whether the fracture produces water. |
265
+ | `description` | string | yes | Free-text description. |
266
+ | `swarm` | boolean | yes | Whether this fracture belongs to a swarm (closely spaced set). |
267
+ | `azimuth` | number | yes | Azimuth in degrees from geographic north (0–360). |
268
+ | `dip` | number | yes | Dip angle in degrees from horizontal (0–90). |
257
269
 
258
270
  ```json
259
- { "depth": 45.2, "water_intake": true, "description": "Fratura aberta", "swarm": false, "azimuth": 120, "dip": 35 }
271
+ {
272
+ "depth": 45.2,
273
+ "water_intake": true,
274
+ "description": "Fratura aberta",
275
+ "swarm": false,
276
+ "azimuth": 120,
277
+ "dip": 35
278
+ }
260
279
  ```
261
280
 
262
281
  ---
@@ -265,12 +284,12 @@ A discrete fracture or fracture zone intersected by the borehole.
265
284
 
266
285
  A cavity or void zone intersected by the borehole.
267
286
 
268
- | Field | Type | Required | Description |
269
- |----------------|---------|----------|--------------------------------------|
270
- | `from` | number | yes | Start depth in meters. |
271
- | `to` | number | yes | End depth in meters. |
272
- | `water_intake` | boolean | yes | Whether the cave produces water. |
273
- | `description` | string | yes | Free-text description. |
287
+ | Field | Type | Required | Description |
288
+ | -------------- | ------- | -------- | -------------------------------- |
289
+ | `from` | number | yes | Start depth in meters. |
290
+ | `to` | number | yes | End depth in meters. |
291
+ | `water_intake` | boolean | yes | Whether the cave produces water. |
292
+ | `description` | string | yes | Free-text description. |
274
293
 
275
294
  ```json
276
295
  { "from": 50, "to": 52, "water_intake": false, "description": "Caverna seca" }
@@ -296,32 +315,58 @@ A cavity or void zone intersected by the borehole.
296
315
  { "from": 0, "to": 80, "diameter": 250, "drilling_method": "rotary" }
297
316
  ],
298
317
 
299
- "well_case": [
300
- { "from": 0, "to": 60, "type": "steel", "diameter": 200 }
301
- ],
318
+ "well_case": [{ "from": 0, "to": 60, "type": "steel", "diameter": 200 }],
302
319
 
303
320
  "reduction": [
304
- { "from": 58, "to": 60, "diam_from": 200, "diam_to": 150, "type": "conical" }
321
+ {
322
+ "from": 58,
323
+ "to": 60,
324
+ "diam_from": 200,
325
+ "diam_to": 150,
326
+ "type": "conical"
327
+ }
305
328
  ],
306
329
 
307
330
  "well_screen": [
308
- { "from": 60, "to": 80, "type": "wire_wound", "diameter": 150, "screen_slot_mm": 0.5 }
331
+ {
332
+ "from": 60,
333
+ "to": 80,
334
+ "type": "wire_wound",
335
+ "diameter": 150,
336
+ "screen_slot_mm": 0.5
337
+ }
309
338
  ],
310
339
 
311
- "surface_case": [
312
- { "from": 0, "to": 3, "diameter": 300 }
313
- ],
340
+ "surface_case": [{ "from": 0, "to": 3, "diameter": 300 }],
314
341
 
315
342
  "hole_fill": [
316
- { "from": 60, "to": 80, "type": "gravel_pack", "diameter": 250, "description": "Seixo 2-4mm" },
317
- { "from": 3, "to": 60, "type": "seal", "diameter": 250, "description": "Cimento" }
343
+ {
344
+ "from": 60,
345
+ "to": 80,
346
+ "type": "gravel_pack",
347
+ "diameter": 250,
348
+ "description": "Seixo 2-4mm"
349
+ },
350
+ {
351
+ "from": 3,
352
+ "to": 60,
353
+ "type": "seal",
354
+ "diameter": 250,
355
+ "description": "Cimento"
356
+ }
318
357
  ],
319
358
 
320
- "cement_pad": { "type": "square", "width": 1.0, "thickness": 0.15, "length": 1.0 },
359
+ "cement_pad": {
360
+ "type": "square",
361
+ "width": 1.0,
362
+ "thickness": 0.15,
363
+ "length": 1.0
364
+ },
321
365
 
322
366
  "lithology": [
323
367
  {
324
- "from": 0, "to": 20,
368
+ "from": 0,
369
+ "to": 20,
325
370
  "description": "Areia fina amarelada",
326
371
  "color": "#f5deb3",
327
372
  "fgdc_texture": "sand",
@@ -329,7 +374,8 @@ A cavity or void zone intersected by the borehole.
329
374
  "aquifer_unit": "freático"
330
375
  },
331
376
  {
332
- "from": 20, "to": 80,
377
+ "from": 20,
378
+ "to": 80,
333
379
  "description": "Granito fraturado cinza",
334
380
  "color": "#a9a9a9",
335
381
  "fgdc_texture": "granite",
@@ -339,12 +385,31 @@ A cavity or void zone intersected by the borehole.
339
385
  ],
340
386
 
341
387
  "fractures": [
342
- { "depth": 45.2, "water_intake": true, "description": "Fratura aberta", "swarm": false, "azimuth": 120, "dip": 35 },
343
- { "depth": 62.0, "water_intake": false, "description": "Fratura de cisalhamento", "swarm": true, "azimuth": 90, "dip": 70 }
388
+ {
389
+ "depth": 45.2,
390
+ "water_intake": true,
391
+ "description": "Fratura aberta",
392
+ "swarm": false,
393
+ "azimuth": 120,
394
+ "dip": 35
395
+ },
396
+ {
397
+ "depth": 62.0,
398
+ "water_intake": false,
399
+ "description": "Fratura de cisalhamento",
400
+ "swarm": true,
401
+ "azimuth": 90,
402
+ "dip": 70
403
+ }
344
404
  ],
345
405
 
346
406
  "caves": [
347
- { "from": 50, "to": 52, "water_intake": false, "description": "Caverna seca" }
407
+ {
408
+ "from": 50,
409
+ "to": 52,
410
+ "water_intake": false,
411
+ "description": "Caverna seca"
412
+ }
348
413
  ]
349
414
  }
350
415
  ```
@@ -356,7 +421,7 @@ A cavity or void zone intersected by the borehole.
356
421
  The `version` field must always be present and is an integer starting at `1`. Parsers must reject files with an unrecognized `version` value and should warn when `version` is absent.
357
422
 
358
423
  | Version | Description |
359
- |---------|-------------------------------|
424
+ | ------- | ----------------------------- |
360
425
  | `1` | Initial release of the format |
361
426
 
362
427
  A `hydro` block for dynamic hydrological data (static level, dynamic level, pump tests, water quality) is reserved for v2 and must not appear in v1 files.
@@ -371,4 +436,4 @@ application/vnd.well+json
371
436
 
372
437
  ---
373
438
 
374
- *Specification v1.0 — `.well` format*
439
+ _Specification v1.0 — `.well` format_