@@ -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
5851create 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-
7969create 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
22581create 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)
24399create 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-
249102create 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_)
271124create 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-
277127create 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)
295145create 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-
301148create table _albion .group(
302149 id integer primary key
303150)
304151;
305152
306153create 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-
318161create 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
325172create index volume_graph_id_idx on _albion .volume (graph_id)
326173;
327174
328175create 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-
334178create 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
349193create 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
358202create 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
0 commit comments