Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/swisstopo/lg-geology-data-model
Geology 2D Data Model (Switzerland)
https://github.com/swisstopo/lg-geology-data-model
2d data-model geocover geology swisstopo
Last synced: 9 days ago
JSON representation
Geology 2D Data Model (Switzerland)
- Host: GitHub
- URL: https://github.com/swisstopo/lg-geology-data-model
- Owner: swisstopo
- License: other
- Created: 2024-05-17T08:27:51.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-01-04T12:09:39.000Z (about 1 month ago)
- Last Synced: 2025-01-04T13:24:44.943Z (about 1 month ago)
- Topics: 2d, data-model, geocover, geology, swisstopo
- Language: Python
- Homepage:
- Size: 108 MB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Modèle de données géologiques
=============================Le but de ces outils est de créer de manière plus au moins automatique le [modèle de données géologiques](https://www.geologieportal.ch/fr/connaissance/consulter/modeles-de-donnees/modele-de-donnees-geologiques.html), 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 fichier `PlantUML`.# Installation
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.## Windows
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](https://github.com/jgm/pandoc/releases) ).Pour tester l'installation (le numéro de version peut être différent):
C:\LegacySW\pandoc-3.1.13\pandoc.exe --version
## LinuxYou 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.# 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 ArcSDEDans 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\[email protected] -l DEBUG -o ../exports
2. Export de la structure Oracle :
Dans ArcGis Pro, charger et exécuter le script : `export_oracle_tables.py`
3. Export des champs obligatoires :
python export_mandatory.py
## Traductions
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 datamodelEdition des fichiers .po dans `PoEdit` par exemple
Compiler les catalogues (`app` et `datamodel`) :
pybabel compile --domain=app --directory=locale --use-fuzzy## Création du fichier Markdown source
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
## Génération des différents formats
simply use the latest https://github.com/swisstopo/lg-geology-data-model/releases
### Linux
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.mdIdem, 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.mdFor 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é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 utiisées dans layerfiles d'un projet ESRI ArcGis Pro
geocover rules -l INFO
## Compter les features dans un périmètre donné
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` )
## Migration de schema
### Dumping schema
Exécuter la commande suivante avant et après la migration de schéma
geocover schema --workspace D:/connections/[email protected] --ouput dumps/PRODUCTION
### DifférencesLa 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