#1 Thu 03 May 2012 10:54
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
non superposition de couche
Bonjour,
Je suis en stage et je travail sur un SIG. Mon encadrante est partie pour un nouveau job et avant de partir m'a filé une base de donnée en wgs84.
Afin d'avoir cette base dans le même référentiel que les autres et aussi de façon à pouvoir effectuer des calculs, il me faudrait la passer en Lambert 93.
Pour cela j'ai utilisé la fonction St_transform, mais lorsque je tente de projeter, ces couches ne se superpositionnent pas avec les autres.
J'ai l'impression que les couches sont restées en WGS84.
Pouvez-vous m'aider ?
Me donner une technique pour changer de projection ? Un script ?
merci d'avance
Hors ligne
#2 Thu 03 May 2012 11:04
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Bonjour,
Etes-vous sur que les données à transformer sont bien en WGS 84 ?
Quelle requete utilisez-vous pour reprojeter les données ?
Le srid utilisé pour L93 est bien le 2154 ?
Avez-vous un extrait des données disponible ? Style un seul polygone sorti au format WKT (select st_astext(geom) from table limit 1) ?
(bon, j'arrete avec mes questions )
Nicolas
Hors ligne
#3 Thu 03 May 2012 11:37
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
Bonjour,
Pour ce qui est des données, c'est ce que m'a dit mon encadrante avant de partir....donc je n'ai que sa parole.
la seule requête que j'ai faite c'est utiliser la fonction St_transform dont voici le script:
alter table copie_base_dce_pomet.dce_ligne drop constraint enforce_srid_the_geom;
update copie_base_dce_pomet.dce_ligne set the_geom = st_transform(the_geom, 2154);
alter table copie_base_dce_pomet.dce_ligne add constraint enforce_srid_the_geom check
(srid(the_geom) = 2154);
donc comme vous pouvez le voir j'ai bien utilisé 2154 pour le SRID.
pour ce qui est de l'extrait de mes données, vous avez le lien au-dessous (je ne connaissais pas du tout alors j'espère que j'ai bien fait!!^^)
[img]http://img198.imageshack.us/img198/3963/testhfe.jpg[/img]
En effet ça fait pas mal de questions :-) en espérant que ça résolve mon pb!!!
Merci
Flavien
Hors ligne
#4 Thu 03 May 2012 11:48
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Clairement les données ne sont pas en WGS84: leurs coordonnées seraient alors comprises entre -90 et +90° en latitude, et -180, +180 en longitude.
La, les coordonnées font plutot pensera une projection metrique.
Au fait, quelle etait la contrainte sur le SRID que vous avez droppé ? elle indique le SRID des données.
Pouvez vous aussi verifier ce que donne:
Code:
select st_srid(the_geom) from copie_base_dce_pomet.dce;
Nicolas
Hors ligne
#5 Thu 03 May 2012 12:02
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 2154)
c'est la contrainte qui est sur le SRID, je l'ai droppé sinon je ne pouvais pas réaliser la requête.
pour ce qui est du code voici la résultat que j'obtiens.
[img]http://img135.imageshack.us/img135/4463/testid.gif[/img]
Flavien
Hors ligne
#6 Thu 03 May 2012 13:40
Re: non superposition de couche
2154, c'est du Lambert 93
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#7 Thu 03 May 2012 13:44
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
et pourtant ces données ne se superposent pas aux autres........:-(
Hors ligne
#8 Thu 03 May 2012 14:09
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Avez vous une copie des données d'origine ?
Ce que vous nous envoyez correspond aux données transformées en 2154. Il faudrait pouvoir regarder les données source. Le SRID source ne devait pas etre 4326 pour que le decalage soit si grand.
Nicolas
P.S. Pouvez-vous poster du texte plutot que des images pour les resultats ou les requetes.
C'est plus pratique s'il faut manipuler une peu Merci
Hors ligne
#9 Thu 03 May 2012 14:22
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
si j'ai une copie d'origine de mes données.
avec le même code cela donne comme résultat 4326
vous allez certainement me trouver chiant mais pour vous montrer les résultats je ne sais pas comment faire à part mettre des images?
Flavien
Hors ligne
#10 Thu 03 May 2012 16:37
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Ce sont des données au format shapefile ? Y a-t-il un fichier .prj avec les données, qui decrirait la projection ?
Pour copier du texte, selectionnez la ou les lignes de resultats avec pgAdmin, puis faites ctrl+c sur votre clavier avant de coller le tout dans le message.
Nicolas
Hors ligne
#11 Thu 03 May 2012 16:52
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
oui ce sont des données au format shp, et j'ai des fichier .prj pour chaque.
je vous met les fichiers .prj pour les données d'origine (dce_4326) et celui des données transformées (dce_2154)
Dernière modification par newsigiste (Thu 03 May 2012 16:52)
Hors ligne
#12 Thu 03 May 2012 17:08
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Oki merci.
Les deux fichiers contiennent la meme projection.
Donc soit vos données sont deja en 2154 et ce n'est pas necessaire de les reprojeter, soit il y a un probleme avec les données et le fichier dce_2154 ne correspond pas a des données en 2154.
Vous pouvez les shapefile source quelque part, qu'on regarde ?
Nicolas
Hors ligne
#13 Fri 04 May 2012 10:59
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
Bonjour,
donc j'ai déposé les fichiers shape sur un serveur SFTP, j'espère que vous pourrez l'ouvrir.
sftp://
Hors ligne
#14 Fri 04 May 2012 19:51
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Bonsoir:
De ce que je vois, le fichier dce_4326.shp contient des données qui semblent en coordonnées lat/lon et se situent en Algerie (si on superpose les pays en WGS84).
Ce ne sont pas des coordonnées Lambert 93 malgré ce qu'indique le fichier dce_4326.prj.
D'apres les attributs, ca devrait se trouver plutot en Gironde, non ?
A mon avis, ces données sont corrompues ou abimées apres un traitement:
Dans l'extrait suivant,
le champ longueur est issu des attributs de la couche,
le champ st_length represente la longueur de la ligne si on considere que ses coordonnées sont dans une unité métrique
et l2 représente la longueur en metres sur le sphéroid de la terre si on considere que les coordonnées sont sphériques.
C'est tres tres loin de la longueur indiquée dans "longueur"
Code:
__gid | ordre_trai | masse_deau | longueur | st_length | l2 -------+------------+------------------+----------+----------------------+---------------------- 612 | 5.000 | dordogne | 3877.630 | 3.4365990749648e-07 | 0.0363102852986467 149 | 8.000 | Charente | 2029.670 | 2.41743297675454e-07 | 0.0241688791149036 433 | 3.000 | adour aval | 2098.250 | 2.36750594832977e-07 | 0.0237383631931203 218 | 8.000 | adour aval | 1904.720 | 2.14607310952736e-07 | 0.0215275779611556 743 | 8.000 | gironde centrale | 2262.340 | 2.02094263258832e-07 | 0.0212893753376607 64 | 3.000 | dordogne | 1798.660 | 2.03684501213608e-07 | 0.0204755133509519 755 | 6.000 | gironde externe | 1827.680 | 1.87499852591966e-07 | 0.0191137825940724 759 | 8.000 | gironde externe | 1613.230 | 1.86927354266275e-07 | 0.018647072426081 753 | 5.000 | gironde externe | 1541.480 | 1.87582013234328e-07 | 0.0186019582746346 754 | 6.000 | gironde centrale | 1789.230 | 1.78705214692724e-07 | 0.0183282482553299 729 | 4.000 | gironde externe | 1516.140 | 1.81697882234626e-07 | 0.0181196391929681 736 | 7.000 | gironde externe | 1549.690 | 1.80021336443619e-07 | 0.0179977171601091
Nicolas
Hors ligne
#15 Wed 09 May 2012 09:19
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
Bonjour Nicolas,
désolé de ce retard de réponse, mais je suis parti en campagne sur le terrain, je n'avais pas accès à mes mails.
En effet lorsque je projette cette couche, elle se retrouve bien au sud de l'estuaire de la Gironde. Et c'est bien des traits de chalut qui ont été réalisé dans l'estuaire de la Gironde que cette couche représente.
Est-il possible de récupérer les données?
Ou sont-elles abimées de façon irrémédiable?
En tout cas merci beaucoup pour votre aide et tout le temps que vous y avez passé.
Flavien
Hors ligne
#16 Wed 09 May 2012 10:04
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Celles que je vois sont "abimées" de façon irrémédiable.
Vous dites que vous pouvez faire correspondre ces données avec l'estuaire de la Gironde ? Avez-vous tjs ces données qui correspondent, ou juste celles que vous avez mises sur le FTP ?
Nicolas
Hors ligne
#17 Wed 09 May 2012 10:11
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
Normalement, je ne suis pas sûr encore a 100%, mais il semblerait qu'une seconde sauvegarde (autre que celle que vous avez eu sur le FTP) existe sur notre serveur interne.
Favien
Hors ligne
#18 Wed 09 May 2012 10:50
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Oki.
Si vous récupérez les données initiales, on pourra regarder la projection qui leur est associées.
Hors ligne
#19 Thu 10 May 2012 14:27
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
l'informaticien du centre est entrain de me faire une copie de la base d'origine.
Ce sont des fichier .dump qu'il me sort et qui sont stocké sur mon E:\
Comment est-ce que je fais pour mettre ces fichiers dans postgres et ainsi recréer ma base?
si vous avez une autre solution, je suis preneur!!!!
merci
Flavien
Hors ligne
#20 Thu 10 May 2012 14:39
Re: non superposition de couche
Bonjour,
En ligne de commande : pg_restore
Avec pgAdmin : via le sous-menu "restauration" qui se trouve je ne sais plus où
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
#21 Thu 10 May 2012 15:20
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
l'informaticien du centre est entrain de me faire une copie de la base d'origine.
Ce sont des fichier .dump qu'il me sort et qui sont stocké sur mon E:\
Comment est-ce que je fais pour mettre ces fichiers dans postgres et ainsi recréer ma base?
si vous avez une autre solution, je suis preneur!!!!
merci
Flavien
Bonjour,
Pour completer la reponse d'Yves: si le contenu de ces .dump est lisible et contient du SQL, vous pourrez directement les charger dans une nouvelle base (qui devra exister) en faisant:
psql -f mon.dump mabase
(je me suis dèjà trouvé confronté a des fichiers .dump qui n'etaient pas au format attendu par pg_restore)
Nicolas
Hors ligne
#22 Thu 10 May 2012 16:59
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
merci de votre aide,
alors la restauration avec les fichiers .dump ne fonctionne pas. Il y a plusieurs tentatives soit on a un message d'erreur disant que l'archive n'est pas valide, soit il n'y a pas de message d'erreur et pourtant la restauration n'a pas été faite puisque j'ai toujours les mêmes données dans la tables alors que je sais qu'il y a des différences.
Mon encadrante qui est partie pour un autre job était surperutilisateur et m'a donné des droits sur une copie de la base d'origine.
Aujourd'hui puisque c'est copie est corrompue, on souhaiterais refaire une copie de la base mère.
Quelqu'un est-il capable de me dire comment est-ce que l'on procède? car je débute sur postgres et il n'y a plus de gestionnaire de base de donnée dans le centre où je travail.
merci
Flavien
Hors ligne
#23 Fri 11 May 2012 11:54
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
Bonjour,
après pas mal de galères je viens de récupérer une nouvelle version de la base mère.
je vous ai mis tout les fichiers de mes trois tables.
Je n'ai rien touché pour le moment.
Mon but est que les tables:
-dce_ligne
-dce_point
-traces_de_chalut
soient en Lambert 93 afin qu'elles se superposent à l'estuaire de la gironde dont je vous ai mis sa table de salinité
-a1999_salinite_surface_moy
j'espère que ce coup-ci tout fonctionnera bien.
Les différents fichiers sont à nouveau stocké sur le site sftp
sftp://
Hors ligne
#24 Fri 11 May 2012 13:00
Re: non superposition de couche
Bonjour,
Quelque chose comme ceci devrait fonctionner ::
Code:
-- on fait une sauvegarde CREATE DATABASE copieMaBase TEMPLATE maBaseActuelle; -- on ajoute une colonne (adapte le schéma, le nom de la table, le type de géométrie) SELECT AddGeometryColumn ('my_schema','my_spatial_table', 'the_geom_l93',2154,MULTIPOLYGON',2, false); -- on met à jour la colonne pour la reprojection UPDATE my_spatial_table SET the_geom_l93=st_transform(the_geom,2154);
À adapter éventuellement;
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
#25 Fri 11 May 2012 13:49
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
-- on ajoute une colonne (adapte le schéma, le nom de la table, le type de géométrie)
SELECT AddGeometryColumn ('my_schema','my_spatial_table', 'the_geom_l93',2154,MULTIPOLYGON',2, false);
j'ai toujours un message d'erreur qui me dit que la fonction AddGeometryColumn n'existe pas.
J'ai essayé de modifier les différents arguments sans plus de chances.
j'ai aussi tester le SRID
Code:
select st_srid(the_geom) from copie_dce.dce_ligne;
et là grosse surprise, je n'obtiens pas 4326 comme je pensais (WGS84)
Code:
-1 -1 -1 -1 -1 -1 -1 -1 -1
enfin j'ai sorti un polygone au format WKT
Code:
select st_astext(the_geom) from copie_dce.dce_ligne limit 1
j'obtient
Code:
"LINESTRING(-1.14171666666667 45.7995666666667,-1.13513333333333 45.7931)"
je commence à être réellement perdu avec tout ces trucs......:-(
Flavien
Hors ligne
#26 Fri 11 May 2012 13:51
Re: non superposition de couche
La base possède bien le template postgis ?
Dernière modification par heretik25 (Fri 11 May 2012 13:52)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#27 Fri 11 May 2012 13:53
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
ce n'est pas moi qui est créé la base.
On m'a fait une copie d'une base mère.
Hors ligne
#28 Fri 11 May 2012 14:04
Re: non superposition de couche
Bonjour,
Pour les srid à -1 c'est embétant mais ca se rattrape
si tu utilises pgAdmin regarde la section function de ton schéma public et vérifie que tu as des fonctions postgis.
Code:
SELECT full_version_postgis(); SELECT * FROM geometry_columns;
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
#29 Fri 11 May 2012 14:10
- newsigiste
- Participant occasionnel
- Date d'inscription: 2 May 2012
- Messages: 27
Re: non superposition de couche
oui j'ai des fonctions dans le schéma public (au nombre de 781)
Pour ce qui est des srid il n'y a que mes 3 colonnes qui présentent ce -1
Code:
"";"copie_base_dce_pomet";"dce_points";"the_geom";2;2154;"POINT" "";"copie_base_dce_pomet";"dce_ligne";"the_geom";2;2154;"MULTILINESTRING" "";"copie_base_dce_pomet";"traces_de_chalut_adour_garonne_2009_2010_2011_wgs84";"the_geom";2;2154;"MULTILINESTRING" "";"public";"a1999_facies_sedimentaire_lesourd_et_shom_l93";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a2000_bathymetrie_shom_l93";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"grille_test4";"the_geom";2;2154;"POLYGON" "";"public";"traces_chalut_1986_1991_et_1994_2001_l2e";"the_geom";2;2154;"LINESTRING" "";"terrain";"a1999_facies_sedimentaire_lesourd_shom";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_surface_max";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_surface_min";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_fond_max";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_fond_moy";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_fond_min";"the_geom";2;2154;"MULTIPOLYGON" "";"terrain";"a1999_salinite_surface_moy";"the_geom";2;2154;"MULTIPOLYGON" "";"copie_base_dce_pomet";"dce_ligne2";"the_geom";2;2154;"MULTILINESTRING" "";"public";"dce_ligne_MAJ_mars_2011";"the_geom";2;-1;"LINESTRING" "";"copie_dce";"dce_points_MAJ_mars_2011";"the_geom";2;-1;"POINT" "";"copie_dce";"dce_ligne_MAJ_mars_2011";"the_geom";2;-1;"LINESTRING" "";"copie_dce";"traces_de_chalut_adour_garonne_2009_2010_2011_wgs84_(2)";"the_geom";2;-1;"LINESTRING"
Dernière modification par newsigiste (Fri 11 May 2012 14:17)
Hors ligne
#30 Fri 11 May 2012 15:15
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: non superposition de couche
Bonjour,
Voila de jolies données
Voici ce qui a ete fait pour tester:
Chargement des données dans Postgis:
• données en 4326:
Code:
shp2pgsql -IiD -g geom -s 4326 traces_de_chalut.shp traces_chalut | psql shp2pgsql -IiD -g geom -s 4326 dce_points.shp dce_point| psql shp2pgsql -IiD -g geom -s 4326 dce_ligne.shp dce_ligne| psql
• données en 2154:
Code:
shp2pgsql -IiD -g geom -s 2154 a1999_salinite_surface_moy.shp salinite_99| psql
Reprojection des données pour toutes les mettre en 2154, une fois connecté sur la base de travail:
Code:
alter table dce_point add column geom_proj geometry (Point, 2154); update dce_point set geom_proj = st_transform(geom, 2154); alter table dce_ligne add column geom_proj geometry (MultiLineString, 2154); update dce_ligne set geom_proj = st_transform(geom, 2154); alter table traces_chalut add column geom_proj geometry(MultiLineString, 2154); update traces_chalut set geom_proj = st_transform(geom, 2154);
Je joins une image du resultat: avec ces données, tout se cale
Nicolas
Hors ligne