Message posté par : Sylvain M.
----------------------------------------
Salut à tous,
J'aimerais écrire des lignes de commandes pour gérer les données d'une base Spatialite (=SQLite) en local sur mon PC, et sans passer par QGis.
J'ai installé QGis en version autonome sur mon PC Windows 10, et j'arrive bien à faire mes requête SQL via le Gestionnaire de BDD de QGis.
Est-ce que vous savez comment ouvrir la console SQLite / Spatialite depuis l'invite de commande Windows ? (et ainsi executer mes requête SQL via des script batch)
Merci pour votre aide :)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344066#p344066
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 : Tan85 (tancredi.pozzana(a)gmail.com)
----------------------------------------
Bonjour,
j'ai fais un
-----------------
Code :
string_agg(c.nom_com, ' ; ')
-----------------
afin d'avoir la liste des communes sur lesquelles se trouvent mes polygones, mais comme mes entités sont composées de plusieurs polygones je me retrouve avec des répétition, comme dans l'exemple ci-dessous :
-----------------
Code :
communes
ALIXAN ; CHATEAUNEUF-SUR-ISERE ; ALIXAN ; CHATEAUNEUF-SUR-ISERE
PORTES-LES-VALENCE ; VALENCE ; PORTES-LES-VALENCE ; VALENCE
BOURG-DE-PEAGE ; BOURG-DE-PEAGE ; CHATEAUNEUF-SUR-ISERE
...
-----------------
Quelques suggestions pour enlever ces doublons ? Un traitement de texte PostgreSQL?
Merci beaucoup pour votre aide.
Bien cordialement
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343924#p343924
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 : sig_bam (yb.bamba(a)gmail.com)
----------------------------------------
Bonjour
Je dispose d'un fichier shape polygone avec des entités déjà créées et j'aimerais calculer la superficie de ces entités avec une fonction triggers, mon code ci dessous ne fonction pas:
create or replace function calcul_superficie () returns trigger as $calcul_superficie$
begin
new.superficie := (ST_area(new.geom)*0.000001);
return new;
end;
$calcul_superficie$ language plpgsql;
create trigger calcul_superficie before insert or update
on geobase_admci.production.region_ci for each row
execute procedure calcul_superficie();
NB: j'aimerais signaler , que mes entités sont déjà créées, il n'y a pas de nouvelles création, juste mettre à jour le champs superficie que je viens de créer avec la fonction trigger.
Je suis bloqué depuis quelques jours et mes recherches ne donnent presque rien.
En attendant votre retour... Cordialement
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343846#p343846
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 : Demonshine
----------------------------------------
Bonjour,
J'ai tenté de refaire mon trigger sur la base de votre exemple mais un élément a dû m'échapper car cela ne marche toujours pas. Voici mon code :
-----------------
Code :
CREATE OR REPLACE FUNCTION maj_zai()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE'
THEN UPDATE toponymie_activites set graphie = NEW.toponyme, nature = NEW.nature, geom=NEW.st_centroid(geom)
FROM ZAI
WHERE id = NEW.id;
END IF;
return NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER trigger_maj_zai
AFTER INSERT OR UPDATE
ON ZAI
FOR EACH ROW
EXECUTE PROCEDURE maj_zai();
-----------------
Les valeurs NEW.XXX représentant les valeurs de la table modifiée : ZAI.
Merci par avance pour votre aide !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343774#p343774
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 : flo56850
----------------------------------------
Bonjour,
Je souhaite faire une requête de sélection su pg admin avec un critère de recherche ouvert ou non discriminant. Je m'explique:
Je voudrais sélectionner dans un champ A les données qui contiennent un mot clef qu'il soit précédé ou suivi d'un autre mot.
J'ai essayé avec les symbole $ ou % mais je n'ai pas de résultat. Auriez-vous une idée ?
Merci beaucoup par avance,
Florent
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343752#p343752
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 : Demonshine
----------------------------------------
Bonjour,
Je vous remercie pour votre retour très complet. Votre exemple me permet de mieux comprendre mon erreur.
Cordialement,
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343598#p343598
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 : Jkerebel04
----------------------------------------
Bonjour
J'avance petit à petit dans le monde de la cartographie SIG. Et j'aurais besoin d'un petit coup pouce pour sortir de mon ornière.
Je travail avec QGIS-GRASS et POSTGIS
J'ai réseau routier vestoriel "tab_route"
J'ai une table de point « p_stockage » avec un champ pondération « Nb_conteneur »
J'ai une table de polygone "parcelle"
Pour info, les polygones et les points sont au bord, mais pas forcément sur le réseau routier.
Je souhaite attribuer à chacun des polygones un champ indiquant la somme des "nb_conteneur" des points situés à moins de 50 m du polygone. Les 50m sont pris en compte seulement via le réseau routier et non à vol d'oiseau.
J'envisage de procéder ainsi :
1) création d'un tableau croisé de "parcelle" et de "p_stockage"
2) je détermine la distance la plus courte entre le polygone "parcelle" et le "p_stockage"
3) je ne retiens que les enregistrements ou la distance est inférieure à 50 m
4 Je fais la somme, par parcelle, du champs "Nb_conteneur"
Pourriez-vous m'indiquer si la méthode vous semble faisable et quels serait les jalons supplémentaires ?
En cherchant comme procéder, j'ai suis tombé sur pgrouting pour le calcul du chemin le plus court sur QGIS. Mais c'est une procédure one-shot.
Je voudrais itérer sur l'ensemble de ma table.
Aussi je me suis orienté vers PGadmin
Sur "Postgresql" j'ai pu installer pgrouting. Mais après la procédure devient très obscur pour moi. Je ne comprends pas le concept.
Je ne comprends pas la première étape avec la fonction "pgr_createTopology"
j'obtiens un FAIL, sans plus d'explication.
Pourriez-vous m'orienter vers un tuto un peu exhaustif avec un exemple, pour que je puisse avancer ?
Cordialement
Jérôme.
Version Pgadmin 4, postgresql12 et pgrouting 3.1.1
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343711#p343711
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 : Sylvain M.
----------------------------------------
Bonjour à tous,
Je travaille dans QGis avec des données d'une BD Spatialite.
Je dispose d'une table source (multipolygones), sur laquelle je souhaite fusionner les entités (ST_Union) selon un champ attributaire.
J’exécute donc une requête de ce type :
-----------------
Citation :
CREATE TABLE st_union AS
SELECT champs_unions,
st_multi(st_makevalid(st_union(geom))) as geom
FROM source
GROUP BY champs_unions;
-----------------
J'execute ensuite ces requêtes pour définir cette table comme géométrique et calculer l'index spatial :
-----------------
Code :
SELECT RecoverGeometryColumn('st_union', 'geom', 2154, 'MULTIPOLYGON', 'XY');
SELECT CreateSpatialIndex('st_union', 'geom');
-----------------
Malheureusement, les géométries de la couche créée doivent être corrompue car les polygones s'affichent et disparaissent aléatoirement selon le niveau de zoom.
J'ai essayé de placer mon st_makevalid() à différents niveau dans la création du champ geom (par ex. : st_makevalid(st_multi(st_union(geom))) as geom) mais le résultat est corrompu dans tous les cas.
Avez-vous une idée de la cause de cette corruption ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343806#p343806
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,
A partir d'un point de départ, je souhaiterais obtenir une zone de desserte de 4km, avec comme poids le dénivelé de chaque tronçon de route (on passe sur les routes les moins dénivelées). Débutant dans la matière, voici comment je me vois procéder :
- Obtenir la zone de desserte de 4km avec PgRouting (pgr_drivingDistance), avec comme seul poids celui de la distance afin d'observer jusqu'où je peux aller en partant de mon point.
- Extraire les derniers sommets (extrémités) de la couche obtenue, qui seront les points à atteindre en partant du départ.
- Calculer les trajets les plus "courts" (pgr_dijkstra : 1 à N) en utilisant le poids du dénivelé de chaque tronçon de route, de mon poids de départ à chaque sommet obtenue avec la précédente requête.
J'ai réussi à obtenir ma zone de desserte avec cette requête :
-----------------
Code :
select *
from pgr_drivingDistance(
'select id, source, target, st_length(geom) as cost FROM road',
131, 4000, false)
-----------------
Ce qui me donne cette couche (en pièce jointe), du type LineString avec 2402 entités : https://zupimages.net/viewer.php?id=21/22/b12b.png
La prochaine étape serait donc d'obtenir les "st_endpoint" de ma couche, pour obtenir les points à atteindre avec pgr_dijkstra de mon point de départ. Malheureusement, je n'y arrive pas. Evidement, calculer le st_endpoint de ma couche reviendrait à extraire le dernier sommet de chaque tronçon de route, ce qui ne me convient pas.
Est-il possible de réaliser ceci sur PostGis ?
Un grand merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343649#p343649
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 : image95
----------------------------------------
Bonjour,
Sous windows, je souhaite importer un raster dans une base postgis (postgresql 13 et postgis 3.1).
J'ai activé l'extension raster grace à :
-----------------
Code :
CREATE EXTENSION postgis_raster;
-----------------
J'ai réussi à convertir le fichier geotif (jeu de données de 2giga MNT ign RGE_alti à 5m en 1 fichier sql.
grace à :
-----------------
Code :
C:\Program Files\PostgreSQL\13\bin>raster2pgsql -c -C -s 2154 -N 0 -F -I -M -Y P:\DEPT52_MNT_5M.tif alti.IGN_rge_alti_5m > P:\IGN_rge_alti_5m.sql
-----------------
Mais pour l'étape de l'import du fichier sql dans la base, j'obtiens ce message d'erreur :
-----------------
Code :
C:\Program Files\PostgreSQL\13\bin>psql -d siege_data_brutes -f P:\IGN_rge_alti_5m.sql
BEGIN
CREATE TABLE
psql:P:/IGN_rge_alti_5m.sql:5: ERREUR: mémoire épuisée
DÉTAIL : Ne peut pas agrandir le tampon de chaîne, qui contient 1073741808 octets, de 8191 octets.
CONTEXTE : COPY ign_rge_alti_5m, ligne 1
psql:P:/IGN_rge_alti_5m.sql:6: ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc
de la transaction
psql:P:/IGN_rge_alti_5m.sql:7: ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc
de la transaction
psql:P:/IGN_rge_alti_5m.sql:8: ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc
de la transaction
ROLLBACK
psql:P:/IGN_rge_alti_5m.sql:10: ERREUR: la relation « alti.ign_rge_alti_5m » n'existe pas
-----------------
Si je comprends bien, il s'agirait d'un probleme d'allocation mémoire...? Si une personne pourrait me confirmer la signification de l'erreur et/ou une proposition de résolution ? Merci bien.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=343625#p343625
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