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 Wed 28 January 2015 14:00

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

QGIS : jointure de table et calculatrice de champ

Bonjour,

J'utilise des données historiques de la SGF concernant la population communale en France métropolitaine.
Ces données sont jointes à une géolfa par le biais du COG (N° INSEE)

Mon problème vient de mon impossibilité de créer un champ à l'aide de la calculatrice qui permette d’établir un taux d'évolution de la population (valeur finale-valeur initiale)/valeur initiale

Les résultats obtenus sont aberrants.

Aussi, voici ma question: est-ce lié à la jointure? et comment y remédier?

Cordialement

Wilcar

Dernière modification par Wilcar (Wed 28 January 2015 20:44)

Hors ligne

 

#2 Wed 28 January 2015 16:21

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3940

Re: QGIS : jointure de table et calculatrice de champ

Bonjour,
peut-on avoir une idée du degré d'aberration des résultats?
Qu'est-ce qui est attendu? Qu'est-ce qui est obtenu?
Quel est le type du champ réceptacle? : Python a une façon assez particulière de faire les divisions
Et as-tu essayé dans un premier temps de juste créer le champ puis de le renseigner après?

Hors ligne

 

#3 Wed 28 January 2015 20:43

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

bonjour, je viens de placer une capture d'écran de la calculatrice de champ + table
Ce qui est attendu: un décimal (qui permet de me mesurer une évolution entre deux dates)
Ce qu est obtenu: 0,00
Avec la capture, cela devrait être plus clair...

Dernière modification par Wilcar (Wed 28 January 2015 20:49)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Thu 29 January 2015 00:29

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3940

Re: QGIS : jointure de table et calculatrice de champ

Euh...
popu2006 - popu2006 renverra toujours 0.... Pas aberrant du tout. big_smile

Hors ligne

 

#5 Thu 29 January 2015 07:58

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

Désolé pour ma capture...
Voici une nouvelle capture

J'ai modifié la table pour que cela soit plus clair.. champs POPU_1951  et POPU_2006 désormais contigus.
Je précise à nouveau que ma table est le résultats d'une jointure via le COG et que les champs de populatino sont de type Integer.


Voici la capture ("POPU_2006"-"POPU_1951")/"POPU_1951')

Les valeurs pour mes premières lignes  (Ruffigné et Quilly)  sont de 0,00 alors que l'évolution est de
-0,31 pour Ruffigny
+ 0,45  pour Quilly

Dernière modification par Wilcar (Thu 29 January 2015 08:03)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#6 Thu 29 January 2015 09:34

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: QGIS : jointure de table et calculatrice de champ

Bonjour,
C'est un problème de type de champs.  En fait il faut que tous les champs soient en float, si un seul est un integer, je résultat le sera aussi. Donc 0.45 deviendra 0

Hors ligne

 

#7 Thu 29 January 2015 09:51

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3940

Re: QGIS : jointure de table et calculatrice de champ

Bonjour,

En fait il faut que tous les champs soient en float, si un seul est un integer, le résultat le sera aussi.


Il me semble que c'est plutôt si tous les champs sont entiers que le résultat le reste (la méthode de calcul assez particulière de Python à laquelle je faisais référence dans mon premier message). Ce qui est le cas ici. Il faut donc changer le type d'au moins une variable soit quelque chose comme

Code:

toreal ("POPU_2006"-"POPU_1951")/"POPU_1951"

Dernière modification par SANTANNA (Thu 29 January 2015 09:51)

Hors ligne

 

#8 Thu 29 January 2015 14:14

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

Bonjour,

Merci, cela fonctionne! Que signifie la fonctionTOREAL?

Enfin, quelques remarques à confirmer car je peux meme tromper): Avant de réaliser cet ajout de champ, il m’apparait  nécessaire de créer un nouveau SHAPE à partir des couches liées (GEOFLA + données historiques). Dans le cas contraire, Qgis ne peut que créer un champ virtuel et il n'est pas possible d’utiliser la symbologie catégorisée.

cordialement

Wilcar

Dernière modification par Wilcar (Thu 29 January 2015 19:05)

Hors ligne

 

#9 Thu 29 January 2015 14:31

Benoit91
Participant assidu
Date d'inscription: 2 Oct 2008
Messages: 263

Re: QGIS : jointure de table et calculatrice de champ

Bonjour

TOREAL (lire to real) permet de "convertir" les données integer en données "réel" (nombre décimal)

Cordialement

Hors ligne

 

#10 Thu 29 January 2015 14:56

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3940

Re: QGIS : jointure de table et calculatrice de champ

Toreal est une fonction disponible dans la catégorie "Conversion" de la fenêtre de saisie de l'expression. Elle a pour but de convertir en décimal la valeur qui lui est passée. Pas que les entiers d'ailleurs, on peut aussi lui passer du texte pour autant que ce puisse être pris pour un nombre : ex des code_insee qui sont en réalité du texte dans nos BD.
Par contre, je ne suis pas d'accord avec ta remarque sur la création d'un nouveau champ ni pour la symbologie. Après avoir fait une jointure, Je viens à l'instant de créer un nouveau champ en dur dans ma couche (résultat d'opérations utilisant des champs joints) et ai appliqué une symbologie catégorisé sur un des champs joints. Sans souci...
J'avais remarqué que dans les images jointes que t'as envoyées, c'est le champ virtuel qui était coché mais tu dois pouvoir prendre un champ en dur sans souci.

Dernière modification par SANTANNA (Thu 29 January 2015 15:00)

Hors ligne

 

#11 Thu 29 January 2015 19:11

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

Merci pour toutes ces précisions!

Je pense avoir trouvé l'explication à ce problème de champ virtuel - champ en dur: j'avais réalisé  une requête sur la geofla avant d’entreprendre la jointure...

Cordialement

Wilcar

Hors ligne

 

#12 Fri 30 January 2015 17:51

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

Désolé mais...
Le problème des valeurs aberrantes se produit avec un nouveau jeu de données et ce, malgré l’utilisation de la fonction TOREAL...
Le problème de transtypage (INTEGER=>REAL) demeure et la fonction toreal ne semble pas fonctionner...


Je souhaite calculer la part de commune sans ecoles (cf ma capture)=> 0,000

Je travaille sur 2 tables jointes. Champs INTEGER

Dernière modification par Wilcar (Sat 31 January 2015 11:22)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#13 Sat 31 January 2015 11:59

Wilcar
Participant actif
Lieu: Nantes
Date d'inscription: 25 Apr 2014
Messages: 82

Re: QGIS : jointure de table et calculatrice de champ

Au final, j'ai trouvé une réponse à mon problème

1) Réaliser le trans-typage dans le tableur (Calc)
=> Formater les cellules nombre=>ajout de deux décimales

2) dans Qgis
2.1 Les champs importés prennent le format de type double(0,0)

2.2 calculatrice de champ: calcul de pourcentage à l'aide de la fonction toreal

Dernière modification par Wilcar (Sun 01 February 2015 13:41)

Hors ligne

 

Pied de page des forums

Powered by FluxBB