Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#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

 

Pied de page des forums

Powered by FluxBB