#1 Fri 17 December 2021 15:41
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
ESRI GDB vers BDD Spatialite
Salut à tous,
Je découvre FME (première fois que j'ouvre ce logiciel aujourd'hui ).
Je souhaite convertir une GDB fichier Esri vers une BDD Spatialite, pour utilisation sous QGis.
J'ai réussi cette tâche assez facilement : chouette
Par contre, quand je regarde la BDD sous QGis, les champs de type géométries ne sont pas reconnus.
Il y a bien un champ nommé GEOMETRY, de type GEOMETRY, mais QGis indique : "Ce n'est pas une table spatiale".
Je m'en sors ensuite en faisant cette requête SQL pour ajouter une colonne geom correctement reconnue :
Code:
SELECT AddGeometryColumn('matable', 'geom', 2154, 'MULTIPOLYGON', 'XY'); UPDATE matable SET geom = st_multi(makevalid(GEOMETRY));
Est-ce que ça vous semble normal comme opération, ou est-ce que je peux directement faire cette opération dans FME ?
Je pose directement les questions que j'ai déjà pour la suite, en bonus si quelqu'un a déjà la réponse :
- comment faire pour écraser les tables de la BDD Spatialite à chaque exécution ? (la base Spatialite n'est qu'une copie en lecture de la GDB source)
- est-il possible de lancer l’exécution d'un FMW depuis un script (Python, BAT ...) ?
Merci à vous pour votre accueil dans cette section du Forum qui m'était totalement inconnue
Dernière modification par Sylvain M. (Fri 17 December 2021 15:42)
Sylvain M.
Hors ligne
#2 Fri 17 December 2021 15:59
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Je m'auto-répond pour la question bonus :
- est-il possible de lancer l’exécution d'un FMW depuis un script (Python, BAT ...) ?
Je viens de voir que oui, puisque si je tape fme dans CMD, j'ai bien toutes les consignes : j'ai plus qu'à lire tout ça !
Bon pour le reste, je veux bien vos lumières ! (la mienne s'allume à peine)
Sylvain M.
Hors ligne
#3 Fri 17 December 2021 16:26
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Je m'auto-répond pour l'autre question bonus :
- comment faire pour écraser les tables de la BDD Spatialite à chaque exécution ? (la base Spatialite n'est qu'une copie en lecture de la GDB source)
Oui, c'est possible aussi : j'ai trouvé l'option dans les Paramètres de la Donnée de destination (Overwrite Existing Database).
Sylvain M.
Hors ligne
#4 Fri 17 December 2021 16:58
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Bon, et bien en cherchant, je viens de solutionner mon problème principal de géométries.
J'ai trouvé l'option "Create Generic Spatial Columns", que j'ai mis à "NO", en précisant la dimension (XY) de mes géométries, et du coup les géométries de ma BDD Spatialite sont correctement reconnues par QGis !
CHOUETTE !
Merci à tous de m'avoir lu, et ce fil sera peut-être utile à d'autres qui découvriraient FME
Sylvain M.
Hors ligne
#5 Fri 17 December 2021 17:42
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
(je continue le monologue ! )
HORREUR : j'ai crié victoire trop vite !!!
Mes géométries sont bien passées de la GDB à la BDD Spatialite, mais les tables attributaires sont vides : les champs sont là, mais avec des valeurs nulles !!!???
Une idée de la cause du PB ?
Sylvain M.
Hors ligne
#6 Sat 18 December 2021 16:26
- SRapenne
- Participant occasionnel
- Date d'inscription: 2 Feb 2020
- Messages: 28
Re: ESRI GDB vers BDD Spatialite
Bonjour,
je ne peux pas vraiment t'aider sur le fond du sujet n'utilisant pas SpatiaLite, mais si le besoin est juste d'ouvrir des données issus d'une gdb esri dans Qgis pourquoi les migrer , QGis gère le format GDB ESRI. "Couche" -> "ajouter une couche vecteur" -> sélectionner "Base de données" puis dans type "ESRI geodatabase personnel"
mes 2 centimes
Hors ligne
#7 Mon 20 December 2021 11:12
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Merci SRapenne pour la suggestion
A vrai dire, j'ai effectivement déjà chargé une GDB Esri dans QGis, mais mon objectif principal est d'enchainer ensuite des requêtes SQL sur la GDB, via SQLite (Spatialite).
Et même si les données sources sont en lecture, je dois ensuite créer des tables (vues) et, sauf erreur, l'ouverture de GDB dans QGis n'est possible qu'en lecture.
Sylvain M.
Hors ligne
#8 Mon 20 December 2021 17:17
- SRapenne
- Participant occasionnel
- Date d'inscription: 2 Feb 2020
- Messages: 28
Re: ESRI GDB vers BDD Spatialite
Il s’avère que j'ai tout ce qu'il faut pour faire des tests, GDB ESRI fichier, FME et QGIS alors j''ai fait un script FME tout simple avec un reader "gdb esri" et un writer "spatialite" et en sélectionnant "Create Generic Spatial Columns", "NO", dimension (XY) puis en indiquant "wbk_polygon" comme géométrie (j'ai essayé d'exporter des contours administratif).
Le fichier sqlite obtenu s'ouvre sans pb dans QGIS avec une table attributaire complète.
Tu utilises quel version de FME et de QGIS (moi FME 2021.1.1.0 et QGIS 3.16.6)
Serge
Dernière modification par SRapenne (Mon 20 December 2021 18:18)
Hors ligne
#9 Mon 03 January 2022 14:50
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Salut Serge, et très belle année à toi (et tout les membres de GeoRezo, aussi d'ailleurs )
Désolé pour le silence, mais les congés sont passés par là !
j''ai fait un script FME tout simple avec un reader "gdb esri" et un writer "spatialite" et en sélectionnant "Create Generic Spatial Columns", "NO", dimension (XY) puis en indiquant "wbk_polygon" comme géométrie (j'ai essayé d'exporter des contours administratif).
Le fichier sqlite obtenu s'ouvre sans pb dans QGIS avec une table attributaire complète.
Cool, ça confirme donc que le pb est bien lié à mon incompétence actuelle sur FME !
Tu utilises quel version de FME et de QGIS
FME 2020.2 et QGis 3.16.10
Malheureusement, je n'ai pas de licence FME dispo aujourd'hui pour refaire les tests.
Juste pour optimiser mes essais quand j'aurai accès à FME : sais-tu s'il est obligatoire de préciser les options pour chaque classe d'entités/table, ou si on peut faire un script générique qui s'adaptera si de nouvelles classes d'entités/tables sont créées a posteriori ?
Sylvain M.
Hors ligne
#10 Thu 27 January 2022 11:04
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Salut à vous,
J'avais laissé ce besoin de côté, et je viens de me repencher sur la question.
Finalement, j'ai trouvé une méthode encore plus simple (pour moi !) et rapide : OGR2OGR (qui est installé sur mon poste via QGis).
Voici la ligne de commande :
Code:
ogr2ogr -f "SQLite" -dsco SPATIALITE=YES -lco GEOMETRY_NAME=geom "D:\monchemin\mabase.sqlite" "D:\monchemin\mabase.gdb"
L'intérêt étant que l'ensemble des Table / Classes d'entités est alors converti, sans avoir à les lister lister en préalable (et donc, le script n'est pas à modifier en cas de modification de structure de la GDB source).
Mais c'était sans doute aussi possible via FME !
Sylvain M.
Hors ligne
#11 Fri 28 January 2022 10:06
- antoine guillot
- Participant actif
- Date d'inscription: 5 Sep 2008
- Messages: 62
Re: ESRI GDB vers BDD Spatialite
Bonjour Sylvain,
Merci pour la ligne de commande, c'est assez élégant!
Pour info dans FME le script peut aussi être dynamique (aucun besoin de lister les tables ou de le modifier en cas de nouvelle table).
Antoine.
Hors ligne
#12 Fri 28 January 2022 11:19
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Pour info dans FME le script peut aussi être dynamique (aucun besoin de lister les tables ou de le modifier en cas de nouvelle table).
Et bien, pour ma culture FME, je veux bien savoir comment tu fais ça : j'avais cherché, mais pas trouvé
Sylvain M.
Hors ligne
#13 Mon 31 January 2022 08:35
- antoine guillot
- Participant actif
- Date d'inscription: 5 Sep 2008
- Messages: 62
Re: ESRI GDB vers BDD Spatialite
En gros il faut regrouper les feature types en entrée en cochant "single merged feature type" et cocher "dynamic schema" dans le feature type de sortie.
https://community.safe.com/s/article/dy … troduction
Bons tests!
Antoine.
Hors ligne
#14 Mon 31 January 2022 09:26
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: ESRI GDB vers BDD Spatialite
Merci Antoine
Je garde ça sous le coude !
Sylvain M.
Hors ligne