Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 6 sur 6

Discussion: Carte de densité

  1. #1
    Shérif adjoint Bob0x Supporter(rice)
    Date d'inscription
    juillet 2007
    Localisation
    Bretagne
    Emploi
    Chargé de mission environnement
    Âge
    35
    Messages
    863

    Par défaut Carte de densité

    Bonjour à tous, Je me sens un peu bête puisque je bloque sur une manipulation qui me semble pourtant assez simple. Je suis sur QGIS 2.18 et j'ai une couche de commune et une couche de milieu humide. Je souhaiterai calculer la densité de milieu humide par commune. Donc j'ai découpé mes milieux humides pour qu'ils correspondent parfaitement à mes limites de communes. Ensuite je voudrai pouvoir injecter directement la somme des surfaces des milieux humides à l'intérieur d'une commune. Je suppose qu'on doit pouvoir le faire simplement sans devoir passer par une table intermédiaire... Pour l'instant j'ai réussi à le faire avec le gestionnaire de base de données et le constructeur de requête SQL avec la formule suivante:
    Code:
    SELECT sum(st_area(st_intersection("Zone_humide".'geometry',"commune".'geometry')))/10000 as surface_ha, "commune".'NAME', "commune".'geometry' FROM "Zone_humide", "commune" WHERE st_intersects("Zone_humide".'geometry', "commune".'geometry') GROUP BY "commune".'NAME'
    Et je crée une table temporaire avec le résultat puis je peux faire une jointure entre cette table temporaire et ma table commune. Mais je me dis qu'il doit exister plus simple... Et par rapport à la formule que je vous ai indiqué, je vous avoue que je l'ai piqué sur un site Internet et que je l'ai adaptée à mon problème. Donc tout n'est pas très clair, particulièrement la différence entre st_intersection et st_intersects... Je constate aussi qu'il y a une légère différence entre les résultats de superficie que me sort st_area et la fonction $area que j'utilise pour calculer mes surface dans ma table attributaire. Donc si quelqu'un a une solution plus simple. Merci d'avance!
    Prince de la Bobox / Shérif adjoint Bob0x
    RIP Phoenix

  2. #2

    Date d'inscription
    avril 2016
    Messages
    276

    Par défaut Re : Carte de densité

    Moi j'aurais fait fait un alter table puis j'aurais mis la requête de la densité dans un update, comme ça le résultat est stocké directement dans une colonne de la table des communes

    - - MISE A JOUR - -

    Moi j'aurais fait fait un alter table puis j'aurais mis la requête de la densité dans un update, comme ça le résultat est stocké directement dans une colonne de la table des communes

  3. #3
    Shérif adjoint Bob0x Supporter(rice)
    Date d'inscription
    juillet 2007
    Localisation
    Bretagne
    Emploi
    Chargé de mission environnement
    Âge
    35
    Messages
    863

    Par défaut Re : Carte de densité

    Hum...
    alors c'est sans doute ce que je cherche mais là tu me parles un peu chinois...
    Est ce que tu pourrais me décrire plus précisément ce que tu aurais fait.
    Prince de la Bobox / Shérif adjoint Bob0x
    RIP Phoenix

  4. #4

    Date d'inscription
    avril 2016
    Messages
    276

    Par défaut Re : Carte de densité

    Code:
    ALTER TABLE commune
    ADD COLUMN densite_mh TYPE numeric
    J'ajoute une colonne densite_mh à ma table commune, de type numeric (mais tu mets ce que tu veux)

    Ensuite je vais remplir cette colonne grâce à un update
    Code:
    UPDATE commune
    SET densite_mh = ici tu mets ta requête qui te donne ta densité
    Je suis désolé de pas pouvoir repondre à 100% mais je n'ai pas le temps de me pencher la dessus pour l'instant et je ne voudrais pas te dire de bêtise.
    Juste dans ta requete, il faut que ta sortie (ce qu'il y a dans ton select) corresponde à ce que tu veux dans ta colonne densité_mh

  5. #5
    Admin' Portail Supporter(rice)

    Date d'inscription
    mars 2005
    Localisation
    Messanges
    Emploi
    Géomaticien
    Organisme
    CNRS
    Âge
    39
    Messages
    5 048

    Mes réseaux sociaux

    Follow Lud On Twitter

    Par défaut Re : Carte de densité

    La différence entre st_instersect et st_intersection réside dans ce qu'elle renvoie, la première renvoie le fait que l'intersection existe oui ou non, alors que la deuxième renvoie la géométrie résultante de l'intersection
    st_intersect est donc ta condition pour aller calculer l'intersection. Pour être plus stricte, il faudrait que ton st_intersect soit dans un join et pas dans une clause where ...
    Dans ton exemple tu calcules donc la somme de l'aire intersecté en ha par commune
    Si tu récupères la géométrie, alors tu pourrais demander au gestionnaire de base de données de t'afficher directement la couche avec les champs que tu souhaites utiliser
    "comme j' dis toujours C'est pas parce que c'est sérieux que ça doit être lugubre..." Phyto
    --------------
    Vous avez le droit de poster sur différents forums mais prévenez nous qu'on ne perde pas de temps à faire les mêmes réponses !
    --------------
    Merci de respecter les règles du forum
    Un avis, une remarque sur la nouvelle version du PortailSIG, cliquez ici
    Vous souhaitez devenir rédacteur du PortailSIG, contactez moi

  6. #6
    Shérif adjoint Bob0x Supporter(rice)
    Date d'inscription
    juillet 2007
    Localisation
    Bretagne
    Emploi
    Chargé de mission environnement
    Âge
    35
    Messages
    863

    Par défaut Re : Carte de densité

    Bonjour et merci pour vos réponses,

    Malheureusement comme bien souvent, je n'ai pas eu le temps de me pencher plus que ça sur le sujet puisque ça devait être fait en urgence. Donc j'ai fait selon ma méthode, même si elle ne me semble pas très simple...

    Pour répondre à tevrard, je n'ai pas réussi à faire fonctionner une seule ligne de code... Tu dois taper tes infos dans une requête SQL du Gestionnaire de BD? Je pensais que c'était un problème de guillemet, apostrophe... mais je pense avoir essayé toutes les combinaisons et ça ne fonctionne pas. Même pour une simple mise à jour, j'ai simplement essayé de saisir la valeur 1 et je n'ai pas réussi...

    Pour Lud, je comprends plus ou moins la différence entre les 2 fonctions, mais je n'arrive pas encore à voir les applications... Il faudrait que je fasse quelques tests pour bien comprendre, mais malheureusement, le travail s'accumule sur mon bureau et je n'arrive pas à prendre de temps pour essayer d'éclaircir tout ça...

    En tout cas, si quelqu'un a une réponse concrète à apporter à ma question initiale, je suis toujours preneur!!
    Prince de la Bobox / Shérif adjoint Bob0x
    RIP Phoenix

 

 

Discussions similaires

  1. [ArcGIS 10.x] pb carte de densité pixelisée
    Par slewdem dans le forum Assistance Technique
    Réponses: 6
    Dernier message: 07/06/2015, 22h39
  2. [QGIS 2.x] La carte de densité
    Par GoodGirl dans le forum Assistance et Programmation
    Réponses: 3
    Dernier message: 06/01/2014, 22h06
  3. [MapInfo 10.x] Bug dans carte de densité
    Par blop dans le forum Assistance Technique
    Réponses: 0
    Dernier message: 16/09/2013, 11h11
  4. [QGIS 0.11] Carte de densité
    Par Emeu dans le forum Assistance et Programmation
    Réponses: 5
    Dernier message: 19/01/2009, 03h52
  5. [ArcGIS 8.x] Carte de densité
    Par bub dans le forum Assistance Technique
    Réponses: 13
    Dernier message: 23/09/2005, 14h40

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •