Le but de ces outils est de créer de manière plus au moins automatique le modèle de données géologiques, en particulier la liste des valeurs attributaires possibles, et le modèle physique issu de ESRI ArcSDE.
Les exports de la base de données ArcSDE sont dans exports
, les fichiers intermédiaires markdown
dans inputs
et les différents formats du modèle final dans outputs
.
- Pour l'instant, le modèle est disponible en allemand et en français.
- Plusieurs formats sont disponbiles :
datamodel.pdf
, ainsi que sous forme de fichier.docx
,.html
et.odt
. - Le dump des informations de ESRI ArcSDE dans
exports
- Le schéma ER de la base
ER-GCOVER.svg
, généré à partir d'un fichierPlantUML
.
L'outil est disponbile comme paquets sur anaconda.org
et pypi.org
. La génération des fichiers finaux à partir des exports
est possible dans n'importe quel environnement, mais l'export des données nécessite arcpy
et un accès à la base ESRI ArcSDE.
base de données ESRI ArcSDE n'est bien entendu pas possible.
Open a Python Command Prompt windows and clone the default ESRI ArcGis conda
environnement
(arcgispro-py3) C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3>conda create --clone arcgispro-py3 --prefix C:\LegacySW\envs\arcgispro-py3_clone
Deactivate the default environment
(arcgispro-py3) C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3> deactivate
Activate the newly created cloned environment
C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3> activate C:\LegacySW\envs\arcgispro-py3_clone
Install the package
(arcgispro-py3) C:\LegacySW\envs\arcgispro-py3_clone> conda install swisstopo::geocover
To generate de final documents from the markdown
sources, you need pandoc
. As pandoc.exe is a standalone binary on
Windows, simply download it and unzip it into C:\LegacySW (see the latest available version on Pandoc ).
Pour tester l'installation (le numéro de version peut être différent):
C:\LegacySW\pandoc-3.1.13\pandoc.exe --version
You need pandoc
and a fully-fledge XeLaTeX
installation. Install it with apt-get
, yum
, etc.
Create a conda
environement as normal and install the package:
conda install swisstopo::geocover
The subcommand of geocover
requiring arcpy
are not available on Linux. The
Le script datamodel
qui génère le fichier markdown n'a besoin que des libraries de base sus-mentionnées.
- 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
:
(arcgispro-py3-clone)> cd H:\code\lg-geology-data-model
(arcgispro-py3-clone)lg-geology-data-model>geocover export -w D:\connections\GCOVERP@osa.sde -l DEBUG -o ../exports
- Export de la structure Oracle :
Dans ArcGis Pro, charger et exécuter le script : export_oracle_tables.py
-
Export des champs obligatoires :
python export_mandatory.py
Extraction des chaînes de caractères pour traduction :
pybabel extract -F babel.cfg -o locale/app.pot .
Fusion des catalogues (app
et datamodel
):
pybabel update -i locale/app.pot -d locale -D app
pybabel update -i locale/datamodel.pot -d locale -D datamodel
Edition des fichiers .po dans PoEdit
par exemple
Compiler les catalogues (app
et datamodel
) :
pybabel compile --domain=app --directory=locale --use-fuzzy
Le script datamodel 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 fr/datamodel.md ou de/datamodel.md
datamodel --lang de datamodel.yaml
simply use the latest https://github.com/swisstopo/lg-geology-data-model/releases
Use make
make pdfs # or all
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 de/datamodel.pdf de/datamodel.md
Idem, mais pour un fichier Microsoft Word (.docx)
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
For HTML
Sur Linux...
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é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
geocover rules -l INFO
Le fichier contenant les règles (layer_symbols_rules.json
) a été généré avec la commande geocover rules
.
With an arbitrary polyon (GeoJSON or ESRI Shapefile)
geocover filter --geometry san_bernardino.geojson --gdb-path I:\backup\GCOVER\daily\20240425_0300_2030-12-31.gdb --ouput san_bernardino.json
Or with a bounding box:
geocover filter --bbox 2760000,1146000,2777500,1158000 --gdb-path I:\backup\GCOVER\daily\20240425_0300_2030-12-31.gdb --ouput san_bernardino.xlsx
The ouput format is either JSON
or CSV
depending on the file extension of the ouput file (.csv
, .xlsx
or .json
)
Exécuter la commande suivante avant et après la migration de schéma
geocover schema --workspace D:/connections/GCOVERP@osa.sde --ouput dumps/PRODUCTION
La commande suivante permet d'afficher les différences avant et après la migration :
jsondiff --indent 4 --preserve-unicode dumps/PRODUCTION/geocover-schema-sde-2024-10-24.json dumps/PRODUCTION/geocover-schema-sde-2024-10-26.json > production-diff-october-2024.txt