Skip to content
This repository was archived by the owner on Jun 16, 2020. It is now read-only.

Commit 0169680

Browse files
authored
Merge pull request #110 from Oslandia/wip_2.2
Wip 2.2
2 parents aa2f310 + b1b17e5 commit 0169680

38 files changed

+7211
-5624
lines changed

_albion.sql

Lines changed: 53 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -32,198 +32,54 @@ create table _albion.metadata(
3232
snap_distance real not null default 1,
3333
precision real default .01,
3434
interpolation interpolation_method default 'balanced_tangential',
35-
end_distance real default 25,
36-
end_angle real default 5.0,
3735
correlation_distance real default 200,
3836
correlation_angle real default 5.0,
39-
parent_correlation_angle real default 1.0)
37+
parent_correlation_angle real default 1.0,
38+
end_node_relative_distance real default .3,
39+
end_node_relative_thickness real default .3,
40+
version varchar)
4041
;
4142

42-
insert into _albion.metadata(srid) select $SRID
43+
insert into _albion.metadata(srid, version) select $SRID, '2.0'
4344
;
4445

45-
create table _albion.collar(
46-
id varchar primary key default _albion.unique_id()::varchar,
47-
x double precision,
48-
y double precision,
49-
z real,
50-
date_ varchar,
51-
geom geometry('POINTZ', $SRID),
52-
comments varchar)
53-
;
54-
55-
create index collar_geom_idx on _albion.collar using gist(geom)
46+
create table _albion.layer(
47+
name varchar primary key,
48+
fields_definition text not null)
5649
;
5750

5851
create table _albion.hole(
59-
id varchar primary key,
60-
collar_id varchar unique not null references _albion.collar(id) on delete cascade on update cascade,
61-
depth_ real,
52+
id varchar primary key default _albion.unique_id()::varchar,
53+
date_ varchar,
54+
depth_ real not null,
55+
check(depth_ > 0),
56+
x double precision not null,
57+
y double precision not null,
58+
z double precision not null,
59+
comments varchar,
6260
geom geometry('LINESTRINGZ', $SRID))
6361
;
6462

65-
create index hole_geom_idx on _albion.hole using gist(geom)
63+
alter table _albion.hole add constraint hole_geom_length_chk check (geom is null or abs(st_3dlength(geom) - depth_) <= 1e-3)
6664
;
6765

68-
create index hole_collar_id_idx on _albion.hole(collar_id)
69-
;
70-
71-
72-
alter table _albion.hole alter column id set default _albion.unique_id()::varchar
66+
create index hole_geom_idx on _albion.hole using gist(geom)
7367
;
7468

75-
-------------------------------------------------------------------------------
76-
-- MEASURES
77-
-------------------------------------------------------------------------------
78-
7969
create table _albion.deviation(
8070
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
8171
from_ real,
8272
dip real,
8373
azimuth real)
8474
;
8575

86-
create index deviation_hole_id_idx on _albion.deviation(hole_id)
87-
;
88-
89-
create table _albion.radiometry(
90-
id varchar primary key,
91-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
92-
from_ real,
93-
to_ real,
94-
gamma real,
95-
geom geometry('LINESTRINGZ', $SRID))
96-
;
97-
98-
create index radiometry_geom_idx on _albion.radiometry using gist(geom)
99-
;
100-
101-
create index radiometry_hole_id_idx on _albion.radiometry(hole_id)
102-
;
103-
104-
alter table _albion.radiometry alter column id set default _albion.unique_id()::varchar
105-
;
106-
107-
create table _albion.resistivity(
108-
id varchar primary key,
109-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
110-
from_ real,
111-
to_ real,
112-
rho real,
113-
geom geometry('LINESTRINGZ', $SRID))
114-
;
115-
116-
create index resistivity_geom_idx on _albion.resistivity using gist(geom)
117-
;
118-
119-
create index resistivity_hole_id_idx on _albion.resistivity(hole_id)
120-
;
121-
122-
alter table _albion.resistivity alter column id set default _albion.unique_id()::varchar
123-
;
124-
125-
126-
create table _albion.formation(
127-
id varchar primary key,
128-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
129-
from_ real,
130-
to_ real,
131-
code integer,
132-
comments varchar,
133-
geom geometry('LINESTRINGZ', $SRID))
134-
;
135-
136-
create index formation_geom_idx on _albion.formation using gist(geom)
137-
;
138-
139-
create index formation_hole_id_idx on _albion.formation(hole_id)
140-
;
141-
142-
alter table _albion.formation alter column id set default _albion.unique_id()::varchar
143-
;
144-
145-
create table _albion.lithology(
146-
id varchar primary key,
147-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
148-
from_ real,
149-
to_ real,
150-
code integer,
151-
comments varchar,
152-
geom geometry('LINESTRINGZ', $SRID))
153-
;
154-
155-
create index lithology_geom_idx on _albion.lithology using gist(geom)
156-
;
157-
158-
create index lithology_hole_id_idx on _albion.lithology(hole_id)
159-
;
160-
161-
alter table _albion.lithology alter column id set default _albion.unique_id()::varchar
162-
;
163-
164-
create table _albion.facies(
165-
id varchar primary key,
166-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
167-
from_ real,
168-
to_ real,
169-
code integer,
170-
comments varchar,
171-
geom geometry('LINESTRINGZ', $SRID))
172-
;
173-
174-
create index facies_geom_idx on _albion.facies using gist(geom)
175-
;
176-
177-
create index facies_hole_id_idx on _albion.facies(hole_id)
178-
;
179-
180-
alter table _albion.facies alter column id set default _albion.unique_id()::varchar
181-
;
182-
183-
create table _albion.chemical(
184-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
185-
from_ real,
186-
to_ real,
187-
num_sample varchar,
188-
element varchar,
189-
thickness real,
190-
gt real, -- thickness * grade
191-
grade real,
192-
equi real,
193-
comments varchar)
194-
;
195-
196-
create index chemical_hole_id_idx on _albion.chemical(hole_id)
197-
;
198-
199-
create table _albion.mineralization(
200-
id varchar primary key,
201-
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
202-
level_ real,
203-
from_ real,
204-
to_ real,
205-
oc real,
206-
accu real,
207-
grade real,
208-
comments varchar,
209-
geom geometry('LINESTRINGZ', $SRID))
210-
;
211-
212-
create index mineralization_geom_idx on _albion.mineralization using gist(geom)
213-
;
214-
215-
create index mineralization_hole_id_idx on _albion.mineralization(hole_id)
216-
;
217-
218-
alter table _albion.mineralization alter column id set default _albion.unique_id()::varchar
219-
;
22076

22177
-------------------------------------------------------------------------------
22278
-- GRAPH
22379
-------------------------------------------------------------------------------
22480

22581
create table _albion.node(
226-
id varchar primary key,
82+
id varchar primary key default _albion.unique_id()::varchar,
22783
graph_id varchar not null references _albion.graph(id) on delete cascade on update cascade,
22884
unique(id, graph_id),
22985
hole_id varchar references _albion.hole(id) on delete cascade,
@@ -243,11 +99,8 @@ create index node_graph_id_idx on _albion.node(graph_id)
24399
create index node_hole_id_idx on _albion.node(hole_id)
244100
;
245101

246-
alter table _albion.node alter column id set default _albion.unique_id()::varchar
247-
;
248-
249102
create table _albion.edge(
250-
id varchar primary key,
103+
id varchar primary key default _albion.unique_id()::varchar,
251104
start_ varchar not null ,
252105
foreign key (graph_id, start_) references _albion.node(graph_id, id) on delete cascade on update cascade,
253106
end_ varchar not null,
@@ -271,14 +124,11 @@ create index edge_start__idx on _albion.edge(start_)
271124
create index edge_end__idx on _albion.edge(end_)
272125
;
273126

274-
alter table _albion.edge alter column id set default _albion.unique_id()::varchar
275-
;
276-
277127
create table _albion.cell(
278-
id varchar primary key,
279-
a varchar not null references _albion.collar(id) on delete cascade on update cascade,
280-
b varchar not null references _albion.collar(id) on delete cascade on update cascade,
281-
c varchar not null references _albion.collar(id) on delete cascade on update cascade,
128+
id varchar primary key default _albion.unique_id()::varchar,
129+
a varchar not null references _albion.hole(id) on delete cascade on update cascade,
130+
b varchar not null references _albion.hole(id) on delete cascade on update cascade,
131+
c varchar not null references _albion.hole(id) on delete cascade on update cascade,
282132
geom geometry('POLYGON', $SRID) not null check(st_isvalid(geom) and st_numpoints(geom)=4)
283133
)
284134
;
@@ -295,42 +145,36 @@ create index volume_cell_b_idx on _albion.cell(b)
295145
create index volume_cell_c_idx on _albion.cell(c)
296146
;
297147

298-
alter table _albion.cell alter column id set default _albion.unique_id()::varchar
299-
;
300-
301148
create table _albion.group(
302149
id integer primary key
303150
)
304151
;
305152

306153
create table _albion.section(
307-
id varchar primary key,
154+
id varchar primary key default _albion.unique_id()::varchar,
308155
anchor geometry('LINESTRING', $SRID) not null check(st_numpoints(anchor)=2),
309-
geom geometry('LINESTRING', $SRID) not null,
310-
scale real not null default 1,
311-
group_id integer references _albion.group(id) on delete set null on update cascade
156+
geom geometry('MULTILINESTRING', $SRID),
157+
scale real not null default 1
312158
)
313159
;
314160

315-
alter table _albion.section alter column id set default _albion.unique_id()::varchar
316-
;
317-
318161
create table _albion.volume(
319-
id varchar primary key,
162+
id varchar primary key default _albion.unique_id()::varchar,
320163
graph_id varchar not null references _albion.graph(id) on delete cascade on update cascade,
321164
cell_id varchar not null references _albion.cell(id) on delete cascade on update cascade,
322-
triangulation geometry('MULTIPOLYGONZ', $SRID) not null
323-
);
165+
triangulation geometry('MULTIPOLYGONZ', $SRID) not null,
166+
face1 geometry('MULTIPOLYGONZ', $SRID),
167+
face2 geometry('MULTIPOLYGONZ', $SRID),
168+
face3 geometry('MULTIPOLYGONZ', $SRID)
169+
)
170+
;
324171

325172
create index volume_graph_id_idx on _albion.volume(graph_id)
326173
;
327174

328175
create index volume_cell_id_idx on _albion.volume(cell_id)
329176
;
330177

331-
alter table _albion.volume alter column id set default _albion.unique_id()::varchar
332-
;
333-
334178
create table _albion.group_cell(
335179
group_id integer not null references _albion.group(id) on delete cascade on update cascade,
336180
cell_id varchar not null references _albion.cell(id) on delete cascade on update cascade,
@@ -347,46 +191,33 @@ create index group_cell_groupe_id_idx on _albion.group_cell(group_id)
347191

348192

349193
create table _albion.end_node(
350-
id varchar primary key,
194+
id varchar primary key default _albion.unique_id()::varchar,
351195
geom geometry('LINESTRINGZ', $SRID) not null check (st_numpoints(geom)=2),
352196
node_id varchar not null references _albion.node(id) on delete cascade on update cascade,
353-
collar_id varchar not null references _albion.collar(id) on delete cascade on update cascade,
197+
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
354198
graph_id varchar references _albion.graph(id) on delete cascade
355199
)
356200
;
357201

358202
create index end_node_geom_idx on _albion.end_node using gist(geom)
359203
;
360204

361-
alter table _albion.end_node alter column id set default _albion.unique_id()::varchar
362-
;
363-
364-
--create table _albion.end_edge(
365-
-- id varchar primary key,
366-
-- start_ varchar not null ,
367-
-- foreign key (graph_id, start_) references _albion.end_node(graph_id, id) on delete cascade on update cascade,
368-
-- end_ varchar not null,
369-
-- foreign key (graph_id, end_) references _albion.end_node(graph_id, id) on delete cascade on update cascade,
370-
-- unique (start_, end_),
371-
-- check (start_ < end_),
372-
-- graph_id varchar references _albion.graph(id) on delete cascade,
373-
-- geom geometry('LINESTRINGZ', $SRID) not null check (st_isvalid(geom))
374-
--)
375-
--;
376-
--
377-
--create index end_edge_geom_idx on _albion.end_edge using gist(geom)
378-
--;
379-
--
380-
--create index end_edge_graph_id_idx on _albion.end_edge(graph_id)
381-
--;
382-
--
383-
--create index end_edge_start__idx on _albion.end_edge(start_)
384-
--;
385-
--
386-
--create index end_edge_end__idx on _albion.end_edge(end_)
387-
--;
388-
--
389-
--alter table _albion.end_edge alter column id set default _albion.unique_id()::varchar
390-
--;
205+
create table _albion.named_section(
206+
id varchar primary key default _albion.unique_id()::varchar,
207+
geom geometry('LINESTRING', $SRID) not null,
208+
cut geometry('MULTILINESTRING', $SRID) not null,
209+
section varchar not null references _albion.section(id) on delete cascade on update cascade
210+
)
211+
;
212+
213+
create table _albion.vertical_face(
214+
id varchar primary key default _albion.unique_id()::varchar,
215+
graph_id varchar not null references _albion.graph(id) on delete cascade on update cascade,
216+
left_hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
217+
right_hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
218+
triangulation geometry('MULTIPOLYGONZ', $SRID) not null
219+
);
220+
221+
391222

392223

_albion_table.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
create table _albion.$NAME(
2+
id varchar primary key default _albion.unique_id()::varchar,
3+
hole_id varchar not null references _albion.hole(id) on delete cascade on update cascade,
4+
from_ real check (from_>=0),
5+
to_ real check (to_>=0),
6+
${FIELDS_DEFINITION})
7+
;
8+
9+
insert into _albion.layer(name, fields_definition) values ('$NAME', '$FIELDS_DEFINITION')
10+
;

0 commit comments

Comments
 (0)