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 Fri 09 March 2007 13:38

Nicolab
Membre
Lieu: Osaka
Date d'inscription: 9 Dec 2005
Messages: 95

conversion txt 2 shp

Bonjour,
Je développe avec les dernieres releases de MS4W et Chameleon
Je dispose d'un .exe sur mon serveur, qui génére des resultats en ascii. Le fichier texte en sortie est une suite de x,y (+ description) en Lambert2 etendu.
Mon objectif est de créer dynamiquement un fichier .shp à partir de ce fichier et de l'afficher directement sur la carte en tant que Layer
je cherche a réaliser la conversion avec OGR, mais ne trouve pas d'exemple tres explicite sur le net. ( le fichier source doit rester en .txt ou eventuellement en .csv ). je n'utilise pas de connection odbc, est-ce obligatoire ?
Est-ce qqun aurait déja réalisé cette de manip ? Pouvez vous m'aiguiller ?
D'avance merci pour vos réponses !!
PiKO

Hors ligne

 

#2 Tue 13 March 2007 20:20

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

Re: conversion txt 2 shp

Bonjour,

Je l'ai déjà fait mais en utilisant GRASS et sa fonction r.in.ascii (r pourraster, in pour import), notez qu'il existe son équivalent en v.in.ascii (v pou vecteur, in pour import).

D'autre part, sur le site, dans la liste des formats supportés tu as : GML - Geography Markup Language et surtout Comma Separated Value (.csv). Tu dois donc pouvoir importer ce fichier dans une base postgis et faire la conversion des champs x et y dans le champ the_geom. Éventuellement faire un export avec pgsql2shp. Voilà les deux cas que j'utilise pour cela.

Finalement, regarde la bibliothèque shapelib.

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 Wed 14 March 2007 15:05

Nicolab
Membre
Lieu: Osaka
Date d'inscription: 9 Dec 2005
Messages: 95

Re: conversion txt 2 shp

Merci Yves pour ta réponse !

J'ai en effet réussi à effectuer la conversion avec ShapeLib, avec le source C csv2shp
Je dispose donc à présent d'un executable qui me produit des shp/dbf/shx en sortie. Par contre je ne vois pas comment appeler dynamiquement le résultat dans mon mapfile. La seule solution que j'ai trouvé pour l'instant c'est une simple layer point, ce qui m'oblige à tjs nommer  de la meme maniere le .shp en sortie de mon .exe ( et donc à écraser les .shp crées auparavant! )

je continue qd même à m'acharner sur OGR afin de pouvoir réaliser la conversion à la volée, via une couche OGR dans le mapfile. J'ai placé mon VRT directement dans la layer et crée un lien odbc indiquant le chemin de mon fichier csv à mon systeme windows.
Mapserver n'affiche aucun résultat, et m'indique une erreur sur mon odbc de type "[MapServer Error]: msOGRFileOpen()"

Voici ma layer et la structure du csv:

Code:

LAYER
    NAME "testogr"
    TYPE POINT
    CONNECTIONTYPE OGR
    CONNECTION    "
    <OGRVRTDataSource>
     <OGRVRTLayer name='test'>
           <SrcDataSource>ODBC:test</SrcDataSource>
           <GeometryType>wkbPoint</GeometryType>
           <LayerSRS>WGS84</LayerSRS>
           <GeometryField encoding='PointFromColumns' x='Longitude' y='Latitude'/>
         </OGRVRTLayer>
   </OGRVRTDataSource>"
    STATUS ON
    DATA test 
    STATUS OFF
END

et mon csv:

Code:

longitude;latitude;concentration;normevent;directionventx;directionventy;z
724400.0000000;1843550.;0.0868653;7.0000000;-6.5778484;-2.3941412;19.0000000
724400.0000000;1843600.;0.4396290;6.9999995;-6.5778480;-2.3941410;19.0000000
724400.0000000;1843650.;0.5581486;7.0000000;-6.5778484;-2.3941412;19.0000000
724400.0000000;1843700.;0.4942698;7.0000000;-6.5778484;-2.3941412;19.0000000
724400.0000000;1843750.;0.4058759;7.0000000;-6.5778484;-2.3941412;20.0000000
724400.0000000;1843800.;0.3879518;7.0000000;-6.5778484;-2.3941412;21.0000000
724400.0000000;1843850.;0.3524447;7.0000000;-6.5778484;-2.3941412;21.0000000

Si qqn voit mon erreur ou a une idée je suis preneur !!!

@+

PikO

Hors ligne

 

#4 Wed 14 March 2007 15:14

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

Re: conversion txt 2 shp

Bonjour,

Le problème est que le csv n'est pas censé être un fichier spatial donc mapserver doit s'en servir comme source de données (SI pas SIG). Pourquoi ne pas utiliser une base de données postgis ce qui permettrait de rajouter une colonne date à ton fichier csv, de le convertir en shp puis de le rajouter dans la table spatial dans la base (l'option -a permet de rajouter les données dans shp2pgsql) sinon faire un cron qui récupère les données csv pour l'importer dans la base.

Il suffirait je pense d'avoir quelque chose comme GeomFromText('POINT (((X Y)))',27572) dans la colonne the_geom et d'importer le tout dans la table postgis psql -d base -U postgres -c "COPY tabel FROM 'fichier.csv' DELIMITER ',' "

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

 

#5 Fri 26 October 2007 12:22

Y.info
Participant occasionnel
Lieu: Tunis
Date d'inscription: 19 Oct 2007
Messages: 34

Re: conversion txt 2 shp

Bonjour Yves
Je veux construire une table qui contient une colonne x, une colonne y et la colonne "the_geom" mais je ne sais pas comment construire la colonne "the_geom" a partir des x et y,
(the_geom sera comme etant une conversion des x et y)
j'ai lu le message précedent mais je l'ai pas compris.
j'utise:
mapguide 1.2
autodesk mapguide studio2007
postgis

pouvez-vous m'aidez
Cordialement
Y.info

Dernière modification par Y.info (Fri 26 October 2007 12:26)

Hors ligne

 

#6 Fri 26 October 2007 13:50

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

Re: conversion txt 2 shp

Bonjour,

Pour ajouter une colonne géométrique :

Code:

SELECT addGeometryColumn('nomTable','the_geom',27582,'POLYGON',2);

Change nomTable par le nom de ta table, 27582 par le code EPSG de ta géométrie, POLYGON par POINT, POLYGON, MULTILINE, MULTIPOLYGON, etc,

Pour mettre à jour, je chercherai si j'ai un peu de temps wink

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

 

#7 Fri 26 October 2007 14:44

Y.info
Participant occasionnel
Lieu: Tunis
Date d'inscription: 19 Oct 2007
Messages: 34

Re: conversion txt 2 shp

merci pour votre aide

Dernière modification par Y.info (Fri 26 October 2007 14:56)

Hors ligne

 

#8 Thu 08 November 2007 14:13

Y.info
Participant occasionnel
Lieu: Tunis
Date d'inscription: 19 Oct 2007
Messages: 34

Re: conversion txt 2 shp

Bonsoir
J'ai construit  une table avec postgis qui contient une colonne "id" et une colonne "the_geom" a partir des coordonnées x et y, (the_geom est une conversion des x et y en colonne geométrique).
je veux maintenant créer une nouvelle couche vide en autodesk mapguide studio qui permet d'afficher des points (ou des symboles) a  partir de cette table, sachant que cette affichage sera point par point (càd on affiche le premier point puis la deuxième..., et que l'apparition d'un point elimine automatiquement celle qui la précede.

Pouvez-vous m'aidez?
Y.info

Dernière modification par Y.info (Thu 08 November 2007 15:19)

Hors ligne

 

Pied de page des forums

Powered by FluxBB