Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 07 August 2023 11:31

jeremy SERIEYE
Participant occasionnel
Date d'inscription: 19 Mar 2021
Messages: 27

Import d'un WFS dans BDD postgres

Bonjour à tous,

Je cherche à importer un flux WFS en BDD postgres.

J'arrive à ce que je souhaite la BD Topo cependant impossible avec le WFS du GPU (https://wxs-gpu.mongeoportail.ign.fr/ex … al2lz3/wfs).



Code:

DROP SERVER  IF EXISTS fdw_ogr_ign_gpu CASCADE;


CREATE SERVER fdw_ogr_ign_gpu FOREIGN DATA WRAPPER ogr_fdw
OPTIONS (
    datasource 'WFS:https://wxs-gpu.mongeoportail.ign.fr/externe/39wtxmgtn23okfbbs1al2lz3/wfs?service=WFS&request=GetCapabilities',
    format 'WFS',
    config_options 'GDAL_HTTP_UNSAFESSL=YES'
);


CREATE SCHEMA IF NOT EXISTS ign_gpu;

IMPORT FOREIGN SCHEMA ogr_all
FROM SERVER fdw_ogr_ign_gpu
INTO ign_gpu
OPTIONS (
    -- mettre le nom des tables en minuscule et sans caractères bizares
    launder_table_names 'true',
    -- mettre le nom des champs en minuscule
    launder_column_names 'true'
)
;


SELECT foreign_table_schema, foreign_table_name
FROM information_schema.foreign_tables
WHERE foreign_table_schema = 'ign_gpu'
ORDER BY foreign_table_schema, foreign_table_name;


SELECT *
FROM ign_gpu.wfs_du_doc_urba
LIMIT 1;

Lors du dernier SELECT ci-dessus j'ai le code erreur suivant :

ERROR:  GDAL AppDefined [1] HTTP error code : 403

ERREUR:  GDAL AppDefined [1] HTTP error code : 403
État SQL : XX000

Si certains connaissent la solution, je suis preneur !

Merci par avance.

Jérémy

Hors ligne

 

#2 Fri 25 August 2023 11:11

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Import d'un WFS dans BDD postgres

Bonjour,

Effectivement, j'ai aussi des erreurs 403 (FORBIDDEN) sur la couche act_sup par ex, alors qu'elle marchait il y a quelques temps avec OGR.
Peut etre que les droits ont changé ou que le token n'est plus à jour ?

Nicolas

Hors ligne

 

#3 Mon 25 September 2023 09:38

jeremy SERIEYE
Participant occasionnel
Date d'inscription: 19 Mar 2021
Messages: 27

Re: Import d'un WFS dans BDD postgres

Bonjour Nicolas et merci pour ta réponse.

J'ai réussi à aller plus loin avec le lien WFS suivant :
https://wxs-gpu.mongeoportail.ign.fr/ex … pabilities


L'import fonctionne mais avec ce flux j'ai une erreur au bout d'environ 1h de traitement :

Code:

CREATE MATERIALIZED VIEW gpu_import.vm_zone_urba AS
SELECT   a.the_geom, a.gml_id, a.partition, a.libelle, a.libelong, a.typezone, a.destdomi, a.nomfic, a.urlfic, a.insee, a.datappro, a.datvalid , a.idurba, a.idzone, a.lib_idzone
FROM gpu_import.wfs_du_zone_urba a,  public.emprise b
WHERE ST_Intersects(a.the_geom, b.the_geom)

ERREUR:  GDAL AppDefined [1] XML parsing of GML file failed : reference to invalid character number at line 1, column 8467758


Ma vue ne se crée donc pas, j'ai essayé de jouer sur l'option "config_options" lors de la création du serveur mais je n'ai pas la solution.....

Pour info, voici le code complet:

Code:

DROP SERVER IF EXISTS fdw_ogr_gpu CASCADE;
CREATE SERVER fdw_ogr_gpu FOREIGN DATA WRAPPER ogr_fdw
OPTIONS (
    datasource 'WFS:https://wxs-gpu.mongeoportail.ign.fr/externe/39wtxmgtn23okfbbs1al2lz3/wfs?service=WFS&request=GetCapabilities',
    format 'WFS',
    character_encoding 'UTF-8',
    config_options 'CPL_DEBUG=ON GDAL_HTTP_MAX_RETRY=0 GDAL_HTTP_RETRY_DELAY=3 '
    
    );

SET client_min_messages = debug2;



CREATE SCHEMA IF NOT EXISTS gpu_import;

IMPORT FOREIGN SCHEMA ogr_all
FROM SERVER fdw_ogr_gpu
INTO gpu_import
OPTIONS (
    -- mettre le nom des tables en minuscule et sans caractères bizares
    launder_table_names 'true',
    -- mettre le nom des champs en minuscule
    launder_column_names 'true');


SELECT foreign_table_schema, foreign_table_name
FROM information_schema.foreign_tables
WHERE foreign_table_schema = 'gpu_import'
ORDER BY foreign_table_schema, foreign_table_name;


DROP MATERIALIZED VIEW IF EXISTS gpu_import.vm_zone_urba;

CREATE MATERIALIZED VIEW gpu_import.vm_zone_urba AS
SELECT   a.the_geom, a.gml_id, a.partition, a.libelle, a.libelong, a.typezone, a.destdomi, a.nomfic, a.urlfic, a.insee, a.datappro, a.datvalid , a.idurba, a.idzone, a.lib_idzone
FROM gpu_import.wfs_du_zone_urba a,  public.emprise b
WHERE ST_Intersects(a.the_geom, b.the_geom);

Hors ligne

 

#4 Mon 25 September 2023 16:59

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: Import d'un WFS dans BDD postgres

Bonjour,

Merci à tous les deux de m'avoir fait découvrir que l'on peut importer un flux WFS dans postgres !!!

MERCI beaucoup ! (ça m'est jamais venu à l'idée ...)


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#5 Tue 26 September 2023 08:35

n314
Participant assidu
Date d'inscription: 6 Sep 2005
Messages: 694

Re: Import d'un WFS dans BDD postgres

Hors ligne

 

#6 Tue 26 September 2023 08:43

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: Import d'un WFS dans BDD postgres

Merci n314


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#7 Tue 26 September 2023 15:50

jeremy SERIEYE
Participant occasionnel
Date d'inscription: 19 Mar 2021
Messages: 27

Re: Import d'un WFS dans BDD postgres

Merci pour vos retours.

Je suis toujours bloqué avec l'erreur :

GDAL AppDefined [1] XML parsing of GML file failed : reference to invalid character number at line 1, column 8467758


Voici la totalité de mon code:

Code:

DROP SERVER IF EXISTS fdw_ogr_gpu CASCADE;
CREATE SERVER fdw_ogr_gpu FOREIGN DATA WRAPPER ogr_fdw
OPTIONS (
    datasource 'WFS:https://wxs-gpu.mongeoportail.ign.fr/externe/39wtxmgtn23okfbbs1al2lz3/wfs?service=WFS&request=GetCapabilities',
    format 'WFS',    
    config_options 'CPL_DEBUG=ON GDAL_HTTP_MAX_RETRY=5 GDAL_HTTP_RETRY_DELAY=5'    );
    
SET client_min_messages = debug2;

CREATE SCHEMA IF NOT EXISTS gpu_import;


-- Récupérer l'ensemble des couches WFS comme des tables dans le schéma ref_dreal
IMPORT FOREIGN SCHEMA ogr_all
FROM SERVER fdw_ogr_gpu
INTO gpu_import
OPTIONS (
    -- mettre le nom des tables en minuscule et sans caractères bizares
    launder_table_names 'true',
    -- mettre le nom des champs en minuscule
    launder_column_names 'true');


SELECT foreign_table_schema, foreign_table_name
FROM information_schema.foreign_tables
WHERE foreign_table_schema = 'gpu_import'
ORDER BY foreign_table_schema, foreign_table_name;

DROP MATERIALIZED VIEW IF EXISTS gpu_import.vm_zone_urba;
CREATE MATERIALIZED VIEW gpu_import.vm_zone_urba AS
SELECT  *
FROM gpu_import.wfs_du_zone_urba a
WHERE LEFT(a.insee,2) ='12';

J'ai bien regardé les liens de n314 mais je n'arrive pas à corriger cette erreur.

J'ai aussi trouvé des options de configuration mais je ne sais pas quelle utiliser dans mon cas de figure.
https://gdal.org/user/configoptions.html

Dernière modification par jeremy SERIEYE (Tue 26 September 2023 15:52)

Hors ligne

 

Pied de page des forums

Powered by FluxBB