banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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 big_smile ).
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 big_smile

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 smile

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 ! big_smile

Merci à tous de m'avoir lu, et ce fil sera peut-être utile à d'autres qui découvriraient FME wink


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 ! wink )


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 smile
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 smile (et tout les membres de GeoRezo, aussi d'ailleurs wink )
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 ! wink

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é wink


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 big_smile
Je garde ça sous le coude !


Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB