[GeolLLibre] Re: BD => plan général

  • From: Pierre Chevalier Géologue <pierrechevaliergeol@xxxxxxx>
  • To: geolllibre@xxxxxxxxxx
  • Date: Thu, 14 Jan 2010 15:23:45 +0100

Alain Marot claviota:

...
Hm, là non, parce que ça redonde dangereusement avec les tables de descriptions. Et on risque de se retrouver vite avec un mardier redondant indécrottable du genre que j'essaye régulièrement de démêler... Il vaut mieux, en pareil cas, faire des requêtes (les performances d'aujourd'hui autorisent de faire des requêtes archtement compliquées qui prenaient des plombes, dans les temps jadis), qui iront chercher les codes, les descriptions, aussi les teneurs, les passes minéralisées, dans les tables ad hoc, pour les mettre en regard des densités, et obtenir, au final, un tableau tel que tu le souhaites.
Si une requête fait çà, je préfère moi aussi de loin à une redondance
Oui, toutafé.
Attends, je la fais, la requête:

SELECT dh_density.id, dh_density.depfrom, dh_density.depto, dh_density.density, dh_litho.code1, dh_litho.description FROM dh_density, dh_litho WHERE (
dh_density.id = dh_litho.id AND dh_density.depto <= dh_litho.depto AND dh_density.depfrom >= dh_litho.depfrom) ORDER BY dh_density.id, dh_density.depto;


Voilà. Ça donne ça, sur des données qui viennent de chez un de tes bons amis:

id | depfrom | depto | density | code1 | description ONU_P809 | 36.00 | 37.50 | 1.94 | BRCH | Breccia with polygenic elements in sandy silicified matrix
ONU_P809 | 37.50 | 39.00 | 1.99 | BRCH | Breccia with polygenic elements in sandy silicified matrix
ONU_P809 | 39.00 | 40.50 | 1.93 | BRCH | Breccia with polygenic elements in sandy silicified matrix
ONU_P810 | 12.00 | 12.75 | 2.00 | GOSH | Iron stained foliated rock
ONU_P810 | 12.75 | 13.50 | 2.03 | GOSH | Iron stained foliated rock
ONU_P810 | 14.25 | 15.00 | 2.37 | GOTR | Gossanized acidic volcanite. crumbly and brecciated
ONU_P810 | 15.00 | 15.75 | 2.87 | GOTR | Gossanized acidic volcanite. crumbly and brecciated
ONU_P810 | 15.75 | 16.50 | 2.09 | GOTR | Gossanized acidic volcanite. crumbly and brecciated
ONU_P810 | 16.50 | 17.25 | 2.01 | GOTR | Gossanized acidic volcanite. crumbly and brecciated


(pour pas enfreindre de confidentialité, j'ai un peu maquillé les données...)

On peut bien entendu requêter de même pour toutes les tables, passes minéralisées, échantillons, etc.

En effet. C'est pas gênant de le mettre dans cette table, car on aura autant d'enregistrements que de calculs, donc de valeurs. Mais vu qu'il y a plusieurs méthodes de calcul, je sais pastrop comment il vaudrait mieux mettre ça: un champ texte contenant la formule et le calcul sous forme de texte? Des champs pour les valeurs et un code pour le type de calcul?
Oui qqch comme çà; mais il va falloir se lancer dans un inventaire des méthodes; même s'il n'y en pas 1000, cela fait du taf! Et la dernière que j'ai utilisée nécessite 8 champs de mesures!
Arg. Hm, voui.
Et, comme on vient d'en discuter, les tableurs se débrouillent très bien pour ce genre de choses, ils sont fait pour; alors que la base de données, ma foi, telle n'est pas vraiment sa vocation.
Donc je crois que la décision sage est de stocker le résultat du calcul (la valeur de densité), comme on l'a fait, peut-être la méthode dans un champ codé? Et un champ contenant le nom et l'adresse du fichier contenant la feuille de calcul des densités, avec toutes les formules.


4 - Structurale: en carotté, les observations structurales se font en continu, donc avec début et fin de passe; je plaçais les mesures ponctuelles, avec la profondeur, dans un champ texte; à ce stade d'élaboration d'une BD, je préfère une 2ème table structurale pour stocker les mesures ponctuelles.
Ou sinon, on reprend la même convention.
Tu veux dire que, dans la même table, tu ajoutes un 2ème champ prof, en plus des champ prof début / prof fin, qui sera utilisé en ponctuel? çà marche, çà?
Non: quand on a la profondeur de fin définie et pas celle de début, on dit que c'est une donnée ponctuelle. Quand les deux profondeurs sont définies, début et fin, on dit que c'est une donnée de passe.

Voici un exemple inventé:

  id   | depfrom |   depto |      structures
--------+---------+---------+-------------------------------------------
ZB_D070 | 10.00 | 23.50 | Foliation regularly dipping at 40°TCA => voilà une passe ZB_D070 | | 13.50 | Isolated C plane dipping at 30°TCA => et voilà un point


Un autre exemple:

  id   | depfrom |   depto | density
--------+---------+---------+----------
ZB_D070 | 10.00 | 11.10 | 2.45 => des séries de densités, mesurées
ZB_D070 | 11.10 | 12.25 | 2.64 en continu, sur les échantillons
ZB_D070 |   12.25 |   13.50 | 3.02
ZB_D070 |   13.50 |   15.00 | 2.60
ZB_D070 | | 13.15 | 8.40 => une mesure ponctuelle au milieu,
pour voir par exemple un chouilla de
                                             sulfures massifs

Il va de soi qu'au moment où on veut exploiter tout ceci avec, par exemple, un GDM, les requêtes qui vont nourrir le logiciel en question doivent bien séparer les points des passes continues.


Disons que ce genre de solution allie la souplesse avec une certaine simplicité: moins ya de tables et mieux on se porte!


J'avoue être _très_ réticent à multiplier les tables, les champs, etc. quand on sait le boulot que c'est ensuite à maintenir, et les coûts non négligeables que ça entraîne...

5 - Structurale en surface: j'ai une table large, large et donc lourdingue avec un champ code "Type de structure", un champ dir S0, un champ pendage S0, un champ dir S1, un champ pendage S1... un champ texte... Pierre doit avoir bcp mieux maintenant?
Oh, je vais te décevoir. Je me contente d'avoir un seul champ texte, dans la table des descriptions, où mes mesures structurales sont codées en suivant des règles simples, du genre:

677 Gabbro outcrop. Soum: fine-grained gabbro, VERY magnetic. Cleavage Nm80/80/N
   678    Foliation appears, Nm170/80/E, more penetrative. Diorite.
   679    Some alteration, bleaching, carbonate, ankerite.
680 Some calcite, crystals, ?breccia, orientation ~~Nm20/70/E. Encaissant = diorite.
681 C corridor, S Nm160/80/W, C Nm10/85/W, and calcite veins. Further, calcite VC cm Nm60/70/S

Ça, c'est pour des affleurements, mais je fais pareil pour les sondages.
Ensuite, je passe ça par une moulinette plus ou moins automatique qui me fait mes fichiers .tec pour TecTri, et je fais mes traitements structuraux à partir de TecTri ou par d'autres (calculs de tenseurs, etc.). Tout ça, c'est que des fichiers ascii, donc c'est des grands coups de grep, de vi, de sed, de rmcol, tous ces merveilleux petits outils que tout unix propose.

On est bien d'accord, c'est pas optimal, comme structure de données, et par trop personnalisé, ça marche que pour moi. Avec JF, on avait commencé un embryon de table correcte, dans les soubresauts d'une bagnole nous ramenant d'Aberkatieb à Khartoum, et il avait mis ça en œuvre, de ce qu'il m'a dit. JF, tu reviens parmi nous?
Oui complètement déçu :'( ;
Tu me vois nâvré te tant te décevoir... ;-(

on benne tout dans un champ texte et tu nous fais des supermoulinettes (plus ou moins automatiques comme tu dis :-( )
Oui: lire entre les lignes: magouilles à grands coups de vi, avec des %s///gc en tous sens, des . et toutes ces sortes de choses!

non paramétrables sauf à être bac+12 en SQL ou autre language?
Non, non, simplement un poil flemmard et suffisamment à l'aise avec l'éditeur de texte de son choix pour pouvoir clavioter et traficougner de l'ascii en tous sens! Le Choix de l'éditeur de texte se fait en fonction de critères passionnels qui partagent beaucoup avec les croyances religieuses. Je n'ai pas de conseil à donner en la matière, hormis que vi est incomparable. Et que emacs est lourd, troll détecté. Et que notepad est nâse, retroll.

Les 6 lignes que tu donnes en exemple me font peur;
Oups, nâvré! J'en ai des milliers, des comme ça.

je me suis tellement battu pour décrire SÉPARÉMENT les objets;
Ach. Moi, je décris tout ensemble, une description naturaliste aussi Libre que possible, aucun frein à la créativité, à la Libre observation, priorité à l'homme de terrain. Une fois numérisé, là, oui, on code, on quantifie, tout ça, et on sépare les choses, si le besoin s'en fait sentir.
Pour que ça marche, il faut être suffisamment mature dans sa tête pour rien oublier de noter sur le terrain, mais ce genre de discipline s'acquiert vite.

exemple: quelle est la litho de ta ligne 679?
Pareil qu'au point 678 (chaque point m'est donné généreusement par mon GPS: je suis tellement c0n que je me suis avéré, à plus d'une reprise, capable de me gourrer dans de la numérotation séquentielle la plus bête. Du coup, j'ai délégué à ce petit appareil le bon soin de numéroter ma vie). En fait, je note, exactement comme je regarde, comme j'arpente. Donc si c'est pareil, je répète pas (ou pas toujours), et je note les changements. Par contre, quand je mets des codes, là, je suis systématique et je sépare les choses!

Sur le terrain, ma très large table me permet de tracer immédiatement sur mon PDA mes structures, avec la bonne symbologie, sans aucun post-traitement.
Ah là, c'est sûr, ça en impose. J'ai jamais pu passer au PDA sur le terrain: je l'ai fait lors d'une campagne, mais les conditions météorologiques (un peu extrêmes, il est vrai) ont eu raison de l'engin, et je suis revenu au bon vieux carnet de terrain et la minute, les crayons de couleurs qui cassent, le rotring qui se bouche, toutes ces petites joies.

Rêvons un peu; c'est cela qu'il nous faut quand on log un carotté: le log en direct à l'écran avec les structures orientées.
Effectivement, il faudrait tendre vers de telles choses! T'as raison de rêver! Té, d'ailleurs: non, pas ici. Je poste dans un autre fil.

A+
Pierre

--
____________________________________________________________________________
Pierre Chevalier Géologue EI
   Mesté Duran
   32100 Condom
 Tél+fax  :    09 75 27 45 62
               05 62 28 06 83
                06 37 80 33 64
 Émail  :   pierrechevaliergeolCHEZfree.fr
 icq#   :   10432285
skype : pierre.chevalier1967 http://pierremariechevalier.free.fr/pierre_chevalier_geologue ____________________________________________________________________________



Liste de diffusion geolllibre
Pour s'inscrire : mailto:geolllibre-request@xxxxxxxxxx?subject=subscribe
Pour se desinscrire : mailto:geolllibre-request@xxxxxxxxxx?subject=unsubscribe

        

Other related posts: