Message posté par : Lison94
----------------------------------------
Bonjour,
Je souhaite importer une couche dans un schema postgis seulement j'utilise dbmanager et ce message d'erreur s'affiche :
Erreur 2
La création de la source de données "environnement et nature"."cours_deau_france" a échoué :
ERROR: AddGeometryColumn() - SRID must be <= 998999
CONTEXT: PL/pgSQL function addgeometrycolumn(character varying,character varying,character varying,character varying,integer,character varying,integer,boolean) line 45 at RAISE
SQL statement "SELECT public.AddGeometryColumn('',$1,$2,$3,$4,$5,$6,$7)"
PL/pgSQL function addgeometrycolumn(character varying,character varying,character varying,integer,character varying,integer,boolean) line 5 at SQL statement
Avez vous une idée du pb ?
Merci par avance,
Lison
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339318#p339318
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 : sur_le_tas (maxime.carette(a)atmo-grandest.eu)
----------------------------------------
Un grand merci!!! Ça fait des heures que je patauge pour comprendre ce qui se passe.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358620#p358620
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.
----------------------------------------
Salut à tous,
J'ai des données dans une colonne, qui sont une concaténation de valeurs séparées par des virgules.
Je souhaite créer autant de lignes que de valeur dans cette colonne.
J'y arrive bien avec PostGreSQL avec une requête de ce type :
-----------------
Code :
trim(unnest(string_to_array(monchamp, ',')))
-----------------
Mais j'aimerais bien le faire directement avec les couches virtuelles de QGis, donc avec SQLite, sans passer par PostGreSQL.
J'ai testé* avec split(monchamp), mais ça n'a pas marché.
Merci pour vos conseils :)
* ça m'avait été proposé par ChatGPT, à "qui" j'avais posé la question et qui m'avait répondu "Notez que la fonction "split" est disponible uniquement pour les versions de SQLite 3.31.0"
Pourtant, un select sqlite_version(); depuis les couches virtuelles m'indique que je suis en "3.39.4", donc théoriquement OK pour "split()".
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358486#p358486
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 : Romary Munier
----------------------------------------
Bonjour,
Je souhaite réaliser cette requete sur une base MSSQL (pour transférer sur une base pgsql ensuite). Voici la commande :
-----------------
Code :
\ogr2ogr -f "PostgreSQL" PG:$NMchc -nln "a_pcf" -f MSSQLSpatial "MSSQL:server=MonServeur;database=mabase;UID=LectID;PWD=LectID_mdp" -sql "select top 100 * from mabase.dbo.tb_pfor"
-----------------
Cela fonctionnait encore jusqu'en septembre 2022 (vu dans les log). Mais maintenant j'ai :
-----------------
Citation :
Unable to open datasource `MSSQL:server=MonServeur;database=mabase;UID=LectID;PWD=LectID_mdp' with the following drivers.
-----------------
Merci de votre aide.
Romary
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=357965#p357965
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 : GEOFFROY DETRY
----------------------------------------
Bonjour,
Je dispose d’une table de polygone [z_pop] dans une BD PostGIS. Les géométries des polygones peuvent contenir des artefacts sous forme de microlignes dues à des erreurs de numérisation ou de groupement.
Je cherche à identifier les polygones présentant ces erreurs, en récupérant l’identifiant [agr_id] du polygone et, si possible, la géométrie de la microligne concernée ou des vertex constitutifs. L'identification suffit. Je ne cherche pas à solutionner les problèmes topologiques qui feront l’objet d’une révision manuelle.
Vous trouverez un jeu de données test [z_pop] postgis en attaché, avec 3 polygones présentant des artefacts. Cette table peut être restaurée dans le schéma Public
Voici les traitements que j'ai réalisé pour l'instant.
1. Générer une sortie qui présente les vertex via [ST_DumpPoints] se trouvant complétement inclus dans leur polygone d’appartenance
-----------------
Code :
WITH cte_1 as ( SELECT agr_id, (ST_DumpPoints(geom)).geom AS pt FROM z_pop),
geom_envelop AS ( SELECT agr_id as id_pol, geom AS geom_ext FROM z_pop)
SELECT row_number() over w as gid, pt FROM geom_envelop JOIN cte_1
ON ST_WITHIN (geom_ext, pt)
WINDOW w AS (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-----------------
Cette méthode ne marche pas car il faudrait récupérer les polygones sans les microlignes. Or, un simple dump sur les polygones ne renvoie qu'une seule géométrie [Polygone] et ne permet pas d'identifier les vertex totalement compris dans l’aire d’intérêt.
2. J'ai réalisé la méthodologie suivante
-----------------
Code :
--1. Explosion des polygones en tronçons
WITH geom_transf AS (
SELECT agr_id, ST_MakeLine(lag((pt).geom, 1, NULL) OVER (PARTITION BY agr_id ORDER BY agr_id, (pt).path), (pt).geom) AS geom_line
FROM (SELECT agr_id, ST_DumpPoints(geom) AS pt FROM z_pop) as dumps
),
--2. Génération de l’enveloppe externe des polygones
geom_envelop AS (
SELECT agr_id as id_pol, ST_EXTERIORRING((st_dump(z_pop.geom)).geom) AS geom_ext FROM z_pop
)
-- 3. Croisement du résultat de 1) et du résultat de 2) afin d’individualiser les lignes qui ne s’intersectent pas avec l’enveloppe extérieure.
SELECT row_number() over w as gid, geom_line as geom_line_erreur
FROM geom_envelop JOIN geom_transf ON NOT st_intersects(geom_ext, geom_line) AND agr_id=id_pol
WINDOW w AS (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-----------------
Certaines lignes, mais pas toutes, sont identifiées. Le résultat est donc assez moyen.
En suivant cette voie, il faudrait réaliser un [ST_EXTERIORRING] puis une opération de reconstitution des polygones [ST_Polygonize] mais je crains un traitement trop lourd (environ 65.000 polygones dans le jeu de données)
Quelqu’un aurait-il une méthode plus efficace et moins couteuse ou aurait déjà réalisé un traitement similaire ?
Merci d'avance
----------------------------------------
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=357915#p357915
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 : Léandre Béron
----------------------------------------
Bonjour,
Dans le cadre du développement d'une stratégie d'administration de données pour une collectivité, je suis tombé sur la méthode d'identification LDAP à partir de postgreSQL.
Aujourd'hui non connecté à notre LDAP, nous utilisons actuellement le raisonnement suivant :
- comptes pour le service : sig_admin (droit propriétaire sur tout (non superuser)). 3 à 4 utilisateurs peuvent utiliser ce compte pour travailler sur la BDD. D'autres comptes du service devraient suivre, comme un sig_edit et un sig_read avec des privilèges différents.
- 1 compte par utilisateur métier
Au niveau des droits, nous raisonnons par groupe de service de la collectivité, avec 2 types de groupe :
- [SERVICE]_R --> Uniquement de la lecture
- [SERVICE_RW] --> Lecture & Ecriture
Chaque utilisateur est donc présent dans le ou les groupes concernés.
Plusieurs questions se posent donc si nous passions à une authentification LDAP :
Premièrement, cela signifie visiblement que le user doit être DANS PostgreSQL ET dans l'AD : Peut-on conserver un compte sig_admin qui n'est pas dans notre AD uniquement pour notre accès en tant qu'administrateur (4 personnes différentes) ? les rôles pg_ de base ne sont visiblement pas impacté eux, mais les autres ?
Egalement, selon notre gestion actuelle (les groupes ont des accès/droits, dans lesquels des utilisateurs en font partie), comment cela se passerait-il avec une authentification LDAP ? Nous allons devoir ajouter les utilisateurs concernés en ayant EXACTEMENT le même nom dans l'AD et dans PostGreSQL, mais qu'indiquons-nous dans l'item "password" lors de la création côté PostGreSQL ? (Nous n'avons pas vocation à mettre toute l'AD dans PostgreSQL, donc nous n'utiliserons pas l'outil ldap2pg)
Ensuite, comment cela va se passer pour les groupes ? On les conserve dans PostGreSQL et lors de l'authentification de l'utilisateur, on va checker le password via l'AD et, une fois connecté, les groupes [SERVICE]_R et [SERVICE]_RW vont fonctionner de la même manière (bien que ces groupes n'existent pas dans notre AD mais uniquement les utilisateurs qui seraient rattachés à ce/ces groupe(s) côté postgres ?
Je n'ai malheureusement pas trouvé d'exemples qui évoquaient cela pour répondre à mes questions.
En vous remerciant,
Léandre BERON
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358149#p358149
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_Passy
----------------------------------------
Bonjour,
Je souhaite lancer sur une table pour la même colonne une requête REPLACE pour modifier plusieurs valeurs dans cette colonne.
Je m'explique : J'ai MA.TABLE qui contient une COLONNE qui contient des valeurs "non intelligibles" type 00,01,02,03
J'ai en parallèle un petit tableau qui m'indique que 00 = Valeur_1 (Valeur_1 étant une données intelligibles) et cela pour toutes mes valeurs.
Je voudrais via une seule requête faire la bascule de 00 vers Valeur_1,de 01 vers Valeurs_2, etc.
J'ai écris cette requête :
-----------------
Code :
UPDATE MA.TABLE
SET
COLONNE = REPLACE(COLONNE, '00', 'Valeur_1'),
COLONNE = REPLACE(COLONNE, '01', 'Valeur_2'),
COLONNE = REPLACE(COLONNE, '02', 'Valeur_3'),
COLONNE = REPLACE(COLONNE, '03', 'Valeur_4')
-----------------
Mais ça ne marche pas. Et je n'arrive pas à trouver de solution.
Est ce que l'un d'entre vous pourrait m'aider ?
Merci par avance. ;-)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358018#p358018
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