Message posté par : preliator
----------------------------------------
Bonjour à tous,
Je travaille actuellement sur des polygones représentant les maisons dans un département. Cette donnée provient d'Open Street Map.
Dans cette couche de polygones, je voudrais créer un champ qui indique la distance minimale au plus proche voisin, pour faire une étude sur l'isolement des maisons. Pour cet exercice, je pensais me baser sur les centroides des polygones.
Malheureusement (ou heureusement !), cette couche de bâtiment est très précise et de nombreux bâtiments sont découpés en plusieurs polygones. De ce fait, je me retrouve avec plusieurs centroides pour un seul même bâtiment, ce qui biaise mes calculs.
Comme par exemple, sur cette image : https://zupimages.net/viewer.php?id=20/13/tg4m.png
Je me demandais donc s'il existait un moyen, sur PostGis, de créer UN seul centroide pour ces bâtiments qui se touchent, ou alors s'il existait un outil sur QGis pour regrouper ces polygones qui se touchent en une seule entité.
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331578#p331578
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Martin Bocquet
----------------------------------------
Bonjour à tous,
Je suis un fervent utilisateur de PgAdmin 3, qui n'est malheureusement pas maintenu, et je recherche son remplaçant, pgadmin4 ne me convenant clairement pas. J'utilise le client principalement pour interroger et traiter des données : je n'ai donc pas besoin des outils d'administration du serveur.
Je suis donc à la recherche d'un client Postgresql avec les caractéristiques suivantes :
- il doit s'agit d'une application avec possibilité de faire des requêtes dans des fenetres séparées (pas de d'application dans un navigateur, et j'aime bien avoir plusieurs fenètres de résultats à comparer);
- Je suis parfois obligé de travailler sur un ordinateur portable. La feuille de requête, ainsi que de résultats, doivent être les plus grandes possibles : c'est un des principaux problèmes, selon moi, de pgadmin 4.
- il doit y avoir possibilité de créer une requête SELECT qui se génère à partir des tables (genre bouton droit -> SELECT champ1, champ2 FROM matable), ce ce sans mettre des guillemets partout;
- Il doit être mis à jour, notamment pour les autres versions de postgresql
- Il est préférable qu'il y ait la complétion automatique et la coloration syntaxique
- Lorsque l'on clique sur la table, il doit y avoir le code SQL qu'il a généré.
- L'export en .csv doit être facile.
Je suis bien conscient qu'il s'agit de critères très stricts, mais certains d'entre vous travailleraient-ils avec un outil qui ressemble à cela ?
Merci d'avance
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331589#p331589
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : MathieuGodard
----------------------------------------
Bonjour,
Je travaille sur QGIS 3.4.
J'ai deux polygones : le polygone ZONE1 est incluse dans le polygone ZONE2.
Je cherche à montrer les endroits où la ZONE1 sort de la ZONE2.
J'utilise donc la fonction ST_Difference qui fonctionne bien, mais qui ne retourne qu'une seule entité alors que la ZONE1 dépasse à deux endroits.
Comment éviter le multipartie ?
Merci !
-----------------
Code :
select
a.NOM AS ZONE1,
b.NOM AS ZONE2,
ST_Difference(a.geometry, b.geometry) as GEOM,
ST_GeometryType((st_difference(a.geometry, b.geometry)))
FROM ZONE2 b
LEFT JOIN ZONE1 a ON ST_Intersects(a.geometry, b.geometry)
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331455#p331455
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : preliator
----------------------------------------
Bonjour,
Je cherche désespérément une base de données m'indiquant pour chaque commune le nombre de travailleurs qui viennent d'autres communes pour y travailler, ceci étant de calculer un taux : Taux de travailleurs extérieurs à la commune / taux d'actifs total de la commune.
J'ai parcourus une bonne partie des données relatives à la mobilité professionnelle sur l'Insee, mais je n'ai trouvé que des données type "Émissivité" des communes (taux de sortie des travailleurs) sans savoir où ils vont...
Merci à vous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331431#p331431
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : preliator
----------------------------------------
Bonjour,
Travaillant avec la mobilité professionnelle de l'Insee, je cherche à faire la somme d'un champ nommé Ipondi seulement sur les trajets commune de résidence à travail, et non pas travail à commune de résidence.
Admettons la colonne de commune de résidence nommée "Départ", et commune de travail nommée "Arrivée", et le champ que je souhaite faire la somme nommée "Ipondi", et admettons le cas suivant :
-----------------
Code :
départ; arrivée; ipondi
La Ciotat; Marseille; 84
Aubagne; Ceyreste; 12
Marseille; La Ciotat; 73
-----------------
Je souhaite donc faire la somme des 2 premières lignes (donc 84 + 12 = 96), et non pas la dernière car elle représente le trajet retour de la première ligne.
Comment faire cela sur PostgreSQL ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331351#p331351
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : preliator
----------------------------------------
Bonjour à tous,
Je dispose d'une base de donnée représentant un id de tronçon de route, un trajet, et des balises qui représentent un nombre de personnes (systématiquement le même nombre de personnes pour un trajet) situés sur un tronçon de route. Je voudrais donc extraire une seule valeur de "nombre_personne" pour chaque "id_trajet", et faire la somme dans "id_troncon".
En gros, je voudrais passer de ça ...
-----------------
Code :
id_troncon; id_trajet; nombre_personnes
troncon1; trajet_1; 1
troncon1; trajet_1; 1
troncon1; trajet_2; 2
troncon1; trajet_2; 2
troncon1; trajet_3; 3
troncon1; trajet_3; 3
-----------------
on a donc 1 + 2 + 3 = 6
à ça :
-----------------
Code :
id_troncon; sum_nombre_personnes
troncon1; 6
-----------------
Malheureusement, je bloque ...
Merci à vous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331224#p331224
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : preliator
----------------------------------------
Bonjour à tous,
Je dispose d'une couche répertoriant 3200 trajets, d'un centroide de commune A à un centroide de commune B en passant par des routes. En plus des champs déterminant la commune de départ et la commune d'arrivée, je dispose d'un champ qui détermine combien de personnes effectuent ce trajet.
Voici comment se présente cette couche :
-----------------
Code :
commune_depart; commune_arrivee; nombre_personne
La Ciotat; Marseille; 5166
Aubagne; Ceyreste; 2100
Message posté par : BenB
----------------------------------------
Bonjour,
Dans une base de données POSTGIS j'ai une table habitat de type polygone, j'ai besoin de connaitre pour chaque type d'habitat la somme des surfaces :
-----------------
Code :
SELECT
h.code_cb,
c.lb_hab_fr,
SUM(round(st_area(h.geom))) AS surface,
LEFT JOIN ref_inpn.habref_cb c ON c.lb_code = h.code_cb
GROUP BY
h.code_cb,
c.lb_hab_fr,
-----------------
C'est ok, mais j'ai aussi besoin du pourcentage que représente cette surface par rapport à l'ensemble des habitats. Je me suis orienté vers les sous-requêtes :
-----------------
Code :
SELECT
h.code_cb,
c.lb_hab_fr,
SUM(round(st_area(h.geom))) AS surface,
(Select
(100*surface) / (SUM(round(st_area(h.geom))))
FROM "CMB_observatoire".t_habitat h) AS test
LEFT JOIN ref_inpn.habref_cb c ON c.lb_code = h.code_cb
GROUP BY
h.code_cb,
c.lb_hab_fr,
-----------------
Le soucis est que la colonne surface n'existe pas pour la requête ... logique. Dois-je faire la sous requête dans la formule (100*surface) / (SUM(round(st_area(h.geom))))? ou existe-t-il un autre moyen ?
en vous remerciant.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331137#p331137
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Johanne NGOUEGNE
----------------------------------------
Je veux créer un trigger qui permet de modifier les colonnes long et lat si je modifie le champ geom d'un ponctuel. De même si je modifie les colonnes long et lat, mon champ geom suit la modif.
Tout fonctionne sauf lorsque je donne une valeur null à la longitude ou latitude, le champ geom ne prend pas la valeur null.
Voici mon script ci-dessous.
BEGIN
if ((old.long<>new.long) or (old.lat<>new.lat)) then
if ( (new.long is null) or (new.lat is null) ) then
new.geom := null;
else
new.geom = st_geomfromtext('POINT('||new.long||' '||new.lat||')', 3857);
end if;
elsif (st_astext(old.geom)<>st_astext(new.geom)) then
new.lon = st_x(geom);
new.lat =st_y(geom);
end if;
RETURN NEW;
END
Est ce que quelqu'un aura un meilleur script pour afficher la valeur NULL lorsqu'une de mes coordonnées est NULL?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331092#p331092
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : preliator
----------------------------------------
Bonjour à tous,
Je dispose d'une couche traces en multiligne, et j'aimerais pouvoir récupérer le nom du polygone de commune d'ou commence la ligne avec St_StartPoint.
Bien entendu, St_StartPoint me renverra NULL vu que je suis en multiligne. Je me demandais s'il était possible de convertir temporairement ma couche en LigneString juste le temps de faire fonctionner cette formule avec PostGis ?
Voici ma formule de base :
-----------------
Code :
update traces set commune_debut = nom_commune from commune where st_within(st_startpoint(traces.geom), commune.geom)
-----------------
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=331043#p331043
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net