Skip to content

stevebudi/lg-geology-data-model

 
 

Repository files navigation

Modèle de donnée géologie

Le but de ces outils est de créer de manière plus au moins automatique le modèle de donnée géologie GeoCover, en particulier la liste des valeurs attributaires possibles, et le modèle physique issu de ESRI ArcSDE.

Les fichiers d'intérêts sont dans le répertoire output

  • Le modèle de donnée géologique : datamodel_de.pdf et datamodel_fr.pdf (des fichiers .docx, .html et .odt sont également disponibles)
  • le dump des informations de ESRI ArcSDE
  • Le schéma ER de la base ER-GCOVER.svg, généré à partir d'un fichier PlantUML.

Installation

Les scripts ne fonctionnent qu'avec Python3 (on est en 2024). Sur BURAUT, on peut utiliser l'installation conda par defaut de ESRI ArcGis Pro (argispro-py3) qui contient les modules nécessaires. Sur Linux, il faut au moins :

conda install jinja2 pyyaml pandas click loguru --yes

ou simplement (l'environement créé est DATAMODEL):

conda env create -f environment.yml

En cas d'ajout de dépendances, recréer la liste des paquets avec :

conda env export environment.yml

Les scripts, coded_domain.py et subtype.py doivent être excécuté dans un projet ESRI ArcGis Pro avec une connection sur la base SDE GCOVER.

Le script datamodel.py qui génère le fichier MarkDown n'a besoin que des libraries de base sus-mentionnées. et va combiner

Windows

Comme pandoc est un fichier unique, il peut être facilement téléchargé et installé dans C:\LegacySW . Téléecahrger la dernière version Windows disponible sur Pandoc et dézipper dans C:>LegacySW

Pour tester l'installation (le numéro de version peut être différent):

C:\LegacySW\pandoc-3.1.13\pandoc.exe --version

Utilisation

Extraction des données

  1. Creation des fichiers JSON/YAML contenant les coded domains et la liste des subtypes directement depuis la base de donnée ArcSDE

Dans un prompt Python, en utilisant l'environnement conda par défaut arcgis-py3 :

 ./geocover.py  export  -w D:\connections\[email protected] -l DEBUG -o ../exports
  1. Export de la structure Oracle :

Dans ArcGis Pro, charger et exécuter le script : export_oracle_tables.py

  1. Export des champs obligatoires :

    python export_mandatory.py

Traductions

  1. Extraction des chaînes de caractères pour traduction :

    pybabel extract -F babel.cfg -o locale/app.pot .

  2. Edition des fichiers .po dans PoEdit par exemple

  3. Fusion des catalogues (app et datamodel):

    pybabel update -i locale/app.pot -d app

  4. Compiler les catalogues (app et datamodel) :

    pybabel compile --domain=app --directory=locale --use-fuzzy

Création du fichier Markdown source

Le script datamodel.py combine les informations de la configuration datamodel.yaml avec coded_domains.json , subtypes.json et le fichier de traduction. Le résultat est le fichier Marcdown datamodel_fr.md ou datamodel_de.md

python3 datamodel.py --lang de  # ou fr

Génération des différents formats

Creation d'un fichier PDF (possible uniquement avec une installation complète de LaTeX)

pandoc -s --pdf-engine=xelatex  \
     -V papersize:a4  \
     --number-sections \
     --shift-heading-level-by=-1  \
     --metadata-file=metadata.yaml \
     --variable mainfont="DejaVu Sans" \
     -V colorlinks=true \
     -V linkcolor=teal \
     -V urlcolor=teal \
     -V toccolor=gray \
     -o datamodel.pdf datamodel.md

Idem, mais pour un fichier Microsoft Word (.docx)

Sur Linux...

pandoc -s   -V papersize:a4  \
              --number-sections   \
              --shift-heading-level-by=-1 \
              --metadata-file=metadata.yaml  \
              --variable mainfont="DejaVu Sans" \
              -o datamodel.docx datamodel.md

..ou sur Windows:

C:\LegacySW\pandoc-3.1.13\pandoc.exe -s -V papersize:a4 --number-sections --shift-heading-level-by=-1
 --metadata-file=metadata.yaml  --variable mainfont="DejaVu Sans"  -o datamodel.docx datamodel.md

Pour HTML

Sur Linux...

    pandoc -s  --toc \
              --number-sections   \
              --shift-heading-level-by=-1 \
              --css datamodel.css \
              --metadata-file=metadata.yaml  \
              --variable mainfont="Sans" \
              -o datamodel.html datamodel.md

.. ou Windows

C:\LegacySW\pandoc-3.1.13\pandoc.exe  --toc --number-sections  --shift-heading-level-by=-1 --css datamodel.css 
              --metadata-file=metadata.yaml   --variable mainfont="Sans"  -o datamodel.html datamodel.md

Génération du schema ER de la base de donnée SDE

Générer le fichier PlantUML avec :

python create_gv.py 

Convertir en fichier SVG avec p.ex. https://www.planttext.com/

Convertir en image :

convert  ER-GCOVER.svg ER-GCOVER.png

Convertir en PDF (A3)

cairosvg  -o ER-GCOVER.pdf    --background '#EEEEFF' --output-width   4191   --output-height 2972 ER-GCOVER.svg

Autres fonctions

Extraire les règles des layerfiles

python geocover.py rules -l INFO

Compter les features dans un périmètre

With an arbitrary polyon (GeoJSON or ESRI Shapefile)

python geocover.py filter --geometry san_bernardino.geojson  --gdb-path  I:\backup\GCOVER\daily\20240425_0300_2030-12-31.gdb  -s san_bernardino.json

Or with a bounding box:

python geocover.py filter --bbox 2760000,1146000,2777500,1158000  --gdb-path  I:\backup\GCOVER\daily\20240425_0300_2030-12-31.gdb  -s san_bernardino.xlsx

Packages

No packages published

Languages

  • HTML 92.7%
  • Python 6.6%
  • Other 0.7%