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 Thu 21 February 2013 15:34

jerome.guillaume
Juste Inscrit !
Date d'inscription: 3 Nov 2011
Messages: 7

probleme import de shp to pgsql

Bonjour,
nouveau venu dans la communauté des utilisateurs de postgre postgis, je tiens à m'excuser à l'avance si je n'ai pas retrouvé ce que je cherchais dans la masse de questions déjà résolues.

Voilà mon problème:
je souhaite importer une couche occupation du sol (qui possède donc un .shp et .dbf et .prj dans le même répertoire) dans ma base de donnée postgre postgis

j'execute la commande
PGCLIENTENCODING=WIN1252 shp2pgsql -D -s 2154 -g geom -W ISO-8859-1 -I /data/tempdump/bdsigale/evol0509.shp referentiels.evol0509 | psql -U postgres -d fichiersfonciers -q -h 172.16.50.133 -p 5432

et j'obtiens ceci

Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
Password for user postgres:
NOTICE:  CREATE TABLE will create implicit sequence "evol0509_gid_seq" for serial column "evol0509.gid"
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "evol0509_pkey" for table "evol0509"
ERROR:  AddGeometryColumns() - invalid SRID
CONTEXT:  SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement
ERROR:  current transaction is aborted, commands ignored until end of transaction block

sur ce nous essayons de faire en deux etapes:
PGCLIENTENCODING=WIN1252 shp2pgsql -s 2154 -g geom -I /data/tempdump/bdsigale/evol0509.shp referentiels.toto>/data/tempdump/bdsigale/toto.sql

cela fonctionne et nous génère un fichier sql:
SET CLIENT_ENCODING TO UTF8;
SET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;



CREATE TABLE "referentiels"."toto" (gid serial,
"area" numeric,
"perimeter" numeric,
"evol0509_m" int4,
"evol0509_1" int4,
"code05" varchar(2),
"corine05" numeric,
"theme05" varchar(254),
"niv1bis05" varchar(2),
"evol0509" int4,
"code09" varchar(2),
"corine09" numeric,
"theme09" varchar(254),
"niv1bis09" varchar(2));



ALTER TABLE "referentiels"."toto" ADD PRIMARY KEY (gid);


SELECT AddGeometryColumn('referentiels','toto','geom','2154','MULTIPOLYGON',2);




INSERT INTO "referentiels"."toto" ("area","perimeter","evol0509_m","evol0509_1","code05","corine05","theme05","niv1bis05","evol0509","code09","corine09","theme09","niv1bis09",geom) VALUES ('4.92525746548e+003','3.16215618401e+002','2','1','DS','3.31300000000e+003','DUNES BLANCHES','3','1','DG','3.31200000000e+003','DUNES GRISES','3','01060000206A0800000100000001030000000100000016000000C0F1D22DD75E2441DC240675741F5B410086C9B4D95E244190317711751F5B410032E64ED25E244140575B9D781F5B4180ABADB8BD5E24412CB29DD3791F5B414027A0A99F5E244184E2C7BC7B1F5B41C08251A9995E2441DCF97EDE7B1F5B41C03923EAB55E2441AC3E57E77C1F5B4140E17AF4F55E244158EC2F377F1F5B4100CAC3622F5F244104560EF1811F5B41000000205A5F244178BE9F26841F5B41C0CCCCEC5F5F2441AC8BDBE4841F5B41C09F1ACF6B5F2441506B9A33821F5B41C0DFBE2E765F244198900F467C1F5B41000DE00D5C5F2441787AA5E0791F5B418058A8954E5F2441CCAACF31751F5B41C00209EA335F244158EC2FAF711F5B4100A69B84045F2441C4B12E326E1F5B41406519E2ED5E2441085F98B06E1F5B4180BE9FBAD55E244144D8F000721F5B41C07F48FFD15E24419C081B52721F5B4180B74042CF5E24414894F68A721F5B41C0F1D22DD75E2441DC240675741F5B41');
INSERT INTO "referentiels"."toto" .....etc

mais à l'execution dans PGAdmin
nous obtenons le message d'erreur suivant
NOTICE:  CREATE TABLE will create implicit sequence "toto_gid_seq" for serial column "toto.gid"
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "toto_pkey" for table "toto"
ERROR:  AddGeometryColumns() - invalid SRID
CONTEXT:  SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement

********** Erreur **********

ERROR: AddGeometryColumns() - invalid SRID
État SQL :P0001
Contexte : SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement

avec en bas à gauche de la fenetre requete: ERROR: AddGeometryColumns() - invalid SRID Etat SQL: P0001 statement...

Je ne sais pas ce que cela peut signifier.

Merci de votre aide

Hors ligne

 

#2 Thu 21 February 2013 16:45

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: probleme import de shp to pgsql

Bonjour,

Ca me parait effectivement bizarre :

SELECT AddGeometryColumn('referentiels','toto','geom','2154','MULTIPOLYGON',2);


Le srid est un entier, or ici c'est une chaine, es tu certaine que la commande que tu as lancé ne serais pas quelque chose comme :

Code:

shp2pgsql -D -s '2154' -g geom -W ISO-8859-1 -I /data/tempdump

Ce qui est faux.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Thu 21 February 2013 17:13

jerome.guillaume
Juste Inscrit !
Date d'inscription: 3 Nov 2011
Messages: 7

Re: probleme import de shp to pgsql

oui mon chef a fait la même remarque quand on est passé sous PG admin.

Nous avons testé ensuite en repassant le 2154 sans les '.

Code:

SELECT AddGeometryColumn('referentiels','toto','geom',2154,'MULTIPOLYGON',2);

cela ne marche pas plus. cela donne la même erreur mais remarquée plus longtemps après. 25 sec d'execution avant de m'afficher l'erreur

Code:

NOTICE:  CREATE TABLE will create implicit sequence "toto_gid_seq" for serial column "toto.gid"
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "toto_pkey" for table "toto"
ERROR:  AddGeometryColumns() - invalid SRID
CONTEXT:  SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement

********** Erreur **********

ERROR: AddGeometryColumns() - invalid SRID
État SQL :P0001
Contexte : SQL statement "SELECT AddGeometryColumn('',$1,$2,$3,$4,$5,$6)"
PL/pgSQL function "addgeometrycolumn" line 5 at SQL statement

j'ai tenté autre chose pour importer ma table vers ma base postgre/postgis...
Je suis passé par QGIS et le DBmanager
il m'importe bien le shp que je veux mais ne la considère pas comme une table spatiale oOoO (alors que je peux afficher le shp dans QGIS sans problème.

je sais pas si cela vous aide à analyser le problème mais dans tous les cas merci d'essayer de m'aider.

Hors ligne

 

#4 Thu 21 February 2013 17:16

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

Re: probleme import de shp to pgsql

Bonjour,

Ca veut surement dire que le fichier spatial_ref_sys.sql n'a pas ete installé sur la base fichiersfonciers

Que donnent les commandes, sur cette base:

select postgis_full_version();

et

select count(*) from spatial_ref_sys;

Nicolas

Hors ligne

 

#5 Thu 21 February 2013 17:42

jerome.guillaume
Juste Inscrit !
Date d'inscription: 3 Nov 2011
Messages: 7

Re: probleme import de shp to pgsql

bon ca y est nous avons trouvé où le bat blessait....

Il s'agissait tout simplement de la table spatial_ref_sys qui était vide.

Notre service nous a installé postgis 1.5.7 et je ne savais même pas qu'il y avait des requetes à executer pour finir l'installation correctement.

Nous avons retrouver le fichier requete à executer et bizarrement cela a fonctionné.

Merci

EDIT: merci Nicolas de la réponse d'ailleurs que je n'avais pas vu hélas

Dernière modification par jerome.guillaume (Thu 21 February 2013 17:43)

Hors ligne

 

Pied de page des forums

Powered by FluxBB