#1 Fri 26 April 2024 13:57
- SIG_MontluCo
- Juste Inscrit !
- Date d'inscription: 2 May 2023
- Messages: 6
QGIS: Utilisation commande 'ST_equals' avec Python
Bonjour à toutes et tous,
Utilisateur depuis plusieurs années de Qgis, je débute depuis quelques mois seulement l'approche de requetages SQL dans Postgresql et en codage Python.
Ma problématique est la suivante :
Je travaille sur les deux fichiers d'adresses :
- celui de notre BAL (Base d'Adresses Locales), issu de la BAN (Base d'Adresses Nationale), pour lequel j'ai créé un script automatique depuis un csv au format BAL pour créer en automatique une table Postgre bal_montlu (14874 adresses)
- celui du fichier RIL de l'INSEE, avec création là aussi d'un script auto et d'une table insee_ril (12042 adresses)
Géométriquement, les deux sont des ensembles de points.
J'ai pu avec le requetage spatial de Qgis savoir combien de points étaient superposés dans les deux tables, il y en a 7092.
J'ai écrit un script python pour essayer de faire la même chose puis dans un deuxième temps de trouver les points des deux tables non identiques :
Code:
... conn.autocommit=True cur = conn.cursor() sql_select_bal_equals_ril='''CREATE TABLE BAL_equals_RIL AS SELECT DISTINCT a.* FROM bal_montlu a, insee_ril b WHERE ST_equals(a.pt, b.pt) AND a.pt && b.pt ''' cur.execute(sql_select_bal_equals_ril) .../
La requête ne plante pas mais le script mouline en boucle...
Si la requete fonctionnait j'aurais ensuite ajouté une négation de condition sur le ST_equals pour trouver les points non identiques des deux tables.
Pourtant les nombres de points des deux tables restent somme toute très restreints...
Certains d'entre vous auraient-ils une aide technique à m'apporter ?
Vous en remerciant par avance,
David, Montluçon
Hors ligne