Message posté par : Vincent-SIABS
----------------------------------------
Bonjour,
Petite question sur une sélection via st_startpoint et st_endpoint.
J'ai une couche de ligne type linestring dans ma base.
Je souhaite remplir automatiquement un attribut de la nouvelle ligne crée en me basant sur un attribut de la ligne déjà existante à laquelle se "rattache" la nouvelle.
En gros je trace ma ligne B avec son champs DATA "vide". Cette ligne B se rattache à la ligne A déjà existante avec son chmps DATA remplit par la valeur A_text.
J'ai dans ma tête la requête suivante :
Si point de départ de ligne_B = point de fin de ligne_A alors met à jour le champ DATA de ligne_B avec la valeur de DATA ligne_A
J'arrive à faire sortir les valeurs de st_startpoint et st_endpoint dans ma table mais après je "but" sur le "=" je pense à un ST_within mais je n'arrive pas à imbriquer le tout comme il faut.
S jamais quelqu'un à une piste ou une idée je suis preneur !
Merci à vous et bonne journée.
Vincent
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=337911#p337911
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 : Vincent-SIABS
----------------------------------------
Bonjour,
Je travail à la mise en place d'un trigger permettant de "remonter" un info dans une table en se basant sur un foonction spatial et une "clause" attributaire.
Je m'explique : j'ai 2 tables :
- Table poste_source qui contient le nom du poste source
- Table Rsx_hta qui contient les réseaux partant du poste source.
Je souhaite faire remonter de façon automatique dans la table Rsx_hta le nom du poste_source d'où part le réseau. Avec comme critère les règles suivantes :
1 - il faut que le point et la ligne aient leurs deux géométries se touchent en leur contours extérieurs. Utilsation de la fonction ST_touches
2 - il faut que le champs nom_poste dans la table Rsx_hta soit vide ou null . Utilisation du SELECT WHERE / AND / OR
J'ai donc écrit le code suivant :
-----------------
Code :
CREATE OR REPLACE FUNCTION remonte_poste_source ()
RETURNS "trigger" AS $$
BEGIN
NEW.nom_poste= (SELECT nom
FROM public.rsx_hta, public.postes_source
WHERE
(st_touches( public.rsx_hta.geom,public.postes_source.geom) AND nom_poste = '' )
OR
(st_touches( public.rsx_hta.geom,public.postes_source.geom) AND nom_poste IS NULL )) ;
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql'VOLATILE;
CREATE TRIGGER remonte_poste_source
BEFORE INSERT OR UPDATE ON public.rsx_hta
FOR EACH ROW EXECUTE PROCEDURE remonte_poste_source ();
-----------------
Le soucis est que si je commence à tracer du Rsx qui part du poste_1 et que je passe ensuite à du réseau qui part du poste_2 le trigger me remonte toujours la valeur "poste_1" même si le réseau par du poste_2. cf photo en pièce jointe. J'ai tracé dans l'ordre chronologique en commençant par la 6. 6 et 7 sont "justes" par contre 8 remonte poste_1 alors qu'il n'a aucune geométrie commune avec... La bonen valeur serait poste_2.
Je n'arrive pas à isoler mon erreur
Merci de votre aide.
Bonne journée.
Vincent
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=337820#p337820
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 : Alex-GIS-51 (alexandre.ecuvillon(a)civc.fr)
----------------------------------------
Bonjour chers amis usagers de PostGIS,
J'ai un soucis que j'ai du mal à résoudre. Toute aide serait très appréciée :-)
Voilà, je cherche à migrer une ancienne base de données postgreSQL 9.3.5 / postGIS v2 vers un nouvel environnement postgreSQL 13.0 / postGIS v3.
A l'issue de l'export-import de données, je retrouve bien mes tables avec des polygones, par contre je n'arrive pas à faire quoi que ce soit des anciennes tables raster.
J'ai peut-être zappé un truc, ou je me plante complètement dans la façon de m'y prendre.
Voilà en détail comment je procède :
1) export de l'ancienne BDD via PgAdmin 4 (Backup. Format : personnalisé, Codage = UTF-8) => j'obtiens un fichier sql
2) création sur le postgreSQL cible d'une nouvelle base de données, avec le même nom, extensions + legacy
cd C:Program FilesPostgreSQL13bin
createdb -U postgres myDB
psql -U postgres -d myDB -c "CREATE EXTENSION postgis;"
psql -U postgres -d myDB -f "C:Program FilesPostgreSQL13sharecontribpostgis-3.0legacy.sql"
psql -U postgres -d myDB -c "CREATE EXTENSION postgis_topology;"
psql -U postgres -d myDB -c "CREATE EXTENSION postgis_raster;"
psql -U postgres -d myDB -c "CREATE EXTENSION postgis_sfcgal;"
psql -U postgres -d myDB -c "CREATE EXTENSION address_standardizer;"
psql -U postgres -d myDB -c "CREATE EXTENSION postgis_tiger_geocoder CASCADE;"
3) trasnformation du backup via restore.pl
cd C:Program FilesPostgreSQL13bin
"C:Program FilesPostgreSQL13utilspostgis_restore.pl" -v "C:BACKUP.sql" > "C:restore.sql"
psql -U postgres -d myDB -f "C:restore.sql"
4) exécution de restore.sql (quelques erreurs à la fin)
Toute aide serait très gentille :-) Merci par avance !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336827#p336827
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,
Cette question fait suite à un sujet que j'ai déjà posé sur le forum QGis, que j'aimerais pouvoir refaire sur PostGis : https://georezo.net/forum/viewtopic.php?id=121680
Je dispose d'une couche multipolygone d'UrbanAtlas, et une grille vecteur de 50*50m, toute les 2 coupées sur l'emprise d'une commune. Dans mes cellules de grille, je voudrais "couper" l'information de la couche d'occupation du sol dans la stricte emprise de chacune de mes cellules.
Sur QGis, cela reviendrait à prendre une cellule, utiliser l'outil "Couper", prendre la couche de LandUse comme référence et la cellule comme couche de superposition, et faire cela pour mes 19 000 cellules :)
Est-il possible de faire ceci sur Postgis ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=337054#p337054
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 : BadWolf
----------------------------------------
Bonjour à tous
Je voudrais savoir si c'est possible de creer un auto increment dans une requête SQL (Postgres SQL)?
C'est a dire quand j'execute une requete qui me retourne 10 ligne par exemple, je voudrais ajouter un champ qui y attribut le numéro 1 pour la première ligne, le numéro 2 pour la deuxième ligne, le numéro 3 pour la troisième ligne, etc... ?
Je n'ai pas réussi a trouver dans mes recherche.
En vous remerciant
Cdlt
Bad
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336848#p336848
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 : Bruno IRATCHET (bruno(a)georezo.net)
----------------------------------------
Sujet déplacé dans le bon forum.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336644#p336644
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 dispose d'une bdd Postgis (nommée "STAGE") dans laquelle j'ai importé la base de données Sirene v3. (https://public.opendatasoft.com/explore/dataset/sirene_v3/information/?sort…) de 33 millions d'entrées. Etant au format CSV, je me suis servie des colonnes de Lat et Long pour créer une colonne "geom" de type geometry pour chaque ligne.
Je souhaite manipuler cette bdd sur QGis, uniquement sur une commune. Après avoir crée une table "sirene_marseille" sur Postgre, filtrée sur la ville, je rencontre une très grande lenteur de QGis pour se connecter à ma BDD. Voici ce que j'obtiens durant 5 bonnes minutes :
https://zupimages.net/viewer.php?id=20/42/ofd5.png
Je rencontre ce problème, directement après avoir crée la géométrie de ma base Sirene.
Existe t-il une alternative pour stocker une grosse bdd geometrique dans Postgis, tout en étant traitable sur QGis ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336245#p336245
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 : Brindavoine
----------------------------------------
Aloha
Je souhaite calculer une propagation depuis des sources en utilisant mon graphe. In extenso, où se situent les limites d'un isochrone pour chacune des sources. Les sources ne sont pas sur le graphe, mais en dehors.
Je crée mon graphe sans problème.
Je crée une table contenant les données de rattachement de mes sources au graphe
-----------------
Code :
create table exo.psource as
(with poi as (
select p.gid as gid_pt,
p."q (m3/h)" as debit,
p.volume as volume,
p.geom
from exo.epi p
)
SELECT
poi.gid_pt::int4,
poi.volume::int8,
poi.debit::int4,
closest_tr.gid::int4,
closest_tr.dist::double precision,
st_linelocatepoint(closest_tr.geom, poi.geom)::double precision as fraction
FROM poi
LEFT JOIN LATERAL
(SELECT
t.gid,
ST_Distance(t.geom, poi.geom) as dist,
t.geom
FROM exo.troncon t
ORDER BY poi.geom <-> t.geom
LIMIT 1
) AS closest_tr
ON TRUE
)
-----------------
Après j'exécute la requête suivante pour récupérer les sommets situés à moins de 200m de mes sources :
(Je me suis inspiré de ces articles :
présentation foss4g (https://osgeo-fr.github.io/presentations_foss4gfr/2016/J1/20160511_FOSS4G_F…)
une question sur gis stackeexchange (https://gis.stackexchange.com/questions/136403/postgis-nearest-points-with-…)
un post de bostongis (https://www.bostongis.com/blog/index.php?/categories/7-nearest-neighbor)
article sur geoafrica (https://geoafrica.fr/laccessibilite-multimodale-en-isochrones/)
)
-----------------
Code :
select
pgr.*,
t vp.the_geom
from
pgr_withPointsDD(
'select gid AS id, nsource::int4 AS source, ncible::int4 AS target, st_length(geom)::float8 AS cost, st_length(geom)::float8 as reverse_cost
from exo.troncon'::text, 'select gid_pt as pid, gid as edge_id, fraction from exo.source'::text,
(
select
array_agg(exo.source.gid_pt order by gid_pt asc) from exo.source
) , -- un array de tous les id de mes sources
200
,
details := true
) pgr
left join exo.troncon_vertices_pgr tvp on tvp.id = pgr.node
-----------------
Le résultat semble correct lorsque je l'affiche dans mon sig (préféré) (cf capture).
Sauf que pour quelques sources, je vois bien que le tronçon le plus proche n'a pas été parcouru dans les deux sens et que des sommets qui devraient ressortir en résultat n'y sont pas.
Qu'ai-je loupé ?
Aucun sommet n'étant situé pile à la distance demandée, comment ajouter les parties de tronçons supplémentaires pour arriver à la distance exacte ?
Mes sources sont elles même à une certaine distance des tronçons, comment exploiter l'information dist de la table pour réduire d'autant la distance parcourue sur les tronçons ?
Je suis sûr que la solution à ce problème pourrait bénéficier à plein de personnes qui ont à résoudre ce type de problème.
D'avance, merci pour vos conseils
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336756#p336756
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 : BadWolf
----------------------------------------
Je vous remercie je ne savais pas que c'était sur ce forum.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336647#p336647
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 : Fabien Guerreiro
----------------------------------------
Bonjour,
Vous trouverez sur Sigea - https://sigea.educagri.fr/tutos-sig/tutos-postgis :
une formation à PostGIS (Pgsql 12 / PostGIS 3 / pgAdmin 4) en initiation et perfectionnement avec trois niveaux d’apprentissage :
- consommateurs de données
- producteurs de données
- administrateurs de bases de données
Sont disponibles :
- les supports Web,
- les supports de présentation en PDF,
- les données d'exercice,
- les corrections (sur simple demande)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=336597#p336597
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