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 07 June 2007 18:05

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Je recherche un module en perl qui pourrait faire la conversion de coordonnées géographiques (lat,long) en coordonnées x,y.
J'ai une base de données qui me fournit la latitude et la longitude des villes.
Je souhaiterais récupérer des coordonnées en x et en y.
J'ai déjà visité un peu les forums à ce sujet, mais aucun ne propose de module en PERL et surtout de méthode digeste.
Si quelqu'un peut me venir en aide!
Bien sur s'il n'y a pas de module en PERL pouvant correspondent, je suis prenante pour tout autre solution.

Merci d'avance!!

Gabrielle

Hors ligne

 

#2 Fri 08 June 2007 09:28

Lionel B
Participant actif
Lieu: Macon
Date d'inscription: 5 Sep 2005
Messages: 83

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

bonjour,
En perl vous pouvez utiliser des exécutables systèmes.
je pense que vous pouvez utililser sans problème les programmes binaires livrés avec la librairie proj4 (commande proj ou cs2cs) pour réaliser des changements de projections.
cordialement
Lionel

Hors ligne

 

#3 Mon 11 June 2007 14:12

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Merci pour ta réponse Lionel!!
Pour les coordonnées géographiques suivantes :
latitude = 48.816667 et longitude = 2.266667
J'obtiens des coordonnées en x et y mais en lambert 93 je crois.
x = 5715525.74450435 et y = 168079.951955856
et avec la variable init :
x = 2434149.98545833 et y = 938103.167756713

Alors que je les souhaiterais en Lambert 2 étendu.
Donc je rappelle à l'aide.


GH

Hors ligne

 

#4 Mon 11 June 2007 14:31

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Si vous utilisez proj4, vous pouvez utiliser le code EPSG 27572 qui correspond au lambert 2 et.

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 Mon 11 June 2007 14:49

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Re

Je l'ai déja utilisé, voici mon code :

# To Convert from Lat/Long to LAMBERT:
  #!/usr/bin/perl

  use strict;
  use Geo::Proj4;

  my $proj = Geo::Proj4->new( proj => "lcc", ellps => "clrk80", init => "epsg:27572");
# , datum => NTF (Paris));
 
  my $lat = 48.816667;
  my $long = 2.266667;
 
  my ($x, $y) = $proj->forward($lat, $long);
  print "conversion to LAMBERT II : y is  $y\n";
  print "conversion to LAMBERT II : x is  $x\n";

  my ($lat, $long) = $proj->inverse($x, $y);
  print "inverse conversion: lat is $lat \n" ;
  print "inverse conversion: long is $long \n" ;

J'obtiens ce résultat avec :
x = 2434149.98545833 et y = 938103.167756713

C'est sur que je me rapproche du résultat voulu mais le "y" est un peu énorme.
A moins que je l'écris mal.
Des propositions??

GH

Hors ligne

 

#6 Mon 11 June 2007 15:09

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

À priori vous n'avez pas besoin de définir une proj, ellps et un datum quand vous utilisez le paramètre init :

my $proj = Geo::Proj4->new(init => "epsg:27572");


C'est juste une proposition 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 Mon 11 June 2007 15:14

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Merci pour le raccourci, c'est vrai quand on regarde bien le fichier epsg ça donne toutes les infos.
Et concernant, le résultat obtenu, qu'en pensez vous?
Y a i il une erreur quelque part???

Hors ligne

 

#8 Mon 11 June 2007 15:35

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Où se situe ce point (sans indiscretion) ? Quelle version de proj4 utilisez vous ?

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

 

#9 Mon 11 June 2007 16:25

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Re,

Le point correspond à la ville "issy les moulineaux".
Je pense que c'est  la derniere : proj4  version 4.4.9.
hmm
Entre temps j'ai mis la derniere version 4.5.0.     tongue
Les résultats que j'obtiens sont differents:
y is  2426646.42005569
x is  766532.73567244

G.H.

Dernière modification par gheloise (Mon 11 June 2007 16:27)

Hors ligne

 

#10 Mon 11 June 2007 16:28

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

La dernière version de proj4 corrige un problème avec la projection lambert2 et. Votre longitude semble correcte, mais clairement, la latitude est fausse.

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

 

#11 Mon 11 June 2007 16:34

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Re,

Ca c'est sur!!
Vous pensez que l'erreur vient de mon code ou d'ailleurs?
C'est frustrant d'être si pres du but.
tongue

G.H.

Hors ligne

 

#12 Mon 11 June 2007 16:56

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Toujours une proposition, vous ne définissez pas de système de départ, comment proj "sait" que vous lui donnez des coordonnées en lat long (EPSG:4326) ?
[Edit] je viens de jeter un oeil sur la doc, votre syntaxe semble correcte et je reproduit le même problème en passant par la ligne de commande.

Y.

Dernière modification par Yves (Mon 11 June 2007 17:01)


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

 

#13 Mon 11 June 2007 17:30

gheloise
Juste Inscrit !
Date d'inscription: 7 Jun 2007
Messages: 7

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Re,

j'ai trouvé ça mais je n'arrive pas à l'intégrer à mon code

my $from  = Geo::Proj4->new("+proj=latlong +datum=NAD83");
my $to    = Geo::Proj4->new("+proj=utm +zone=10 +datum=WGS84");

my $point = [ 1.12, 3.25 ];  # See Geo::Point
my $pr_point = $from->transform($to, $point);

G.H.

my $pr    = $from->transform($to, [ $point1, $point2 ]);
my $pr_point1 = $pr->[0];
my $pr_point2 = $pr->[1];

Hors ligne

 

#14 Thu 14 June 2007 10:58

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

J'ai posé la question sur le site de proj, à priori la définition de la projection dans le code EPSG n'est pas correcte :-/ Voici la commande qui résoud le problème :

proj +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722917 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +pm=paris +units=m +no_defs -S -r


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

 

#15 Thu 14 June 2007 14:09

ph_de_fr
Participant occasionnel
Lieu: Paris
Date d'inscription: 20 Feb 2006
Messages: 15
Site web

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

2.266667°E et 48.816667°N (WGS84)
Pour contrôle, les coordonnées Lambert II étendu retournées par Circé 2000 (IGN) pour ces coordonnées géographiques :
N(m) = 2424254 et E(m) = 594868
le long de la D130 à Issy-les-Moulineaux.

Ceci dit, dans "Proj4text" de "spatial_ref_sys" (srid=27572, voir ci-dessous), au passage, lon_0 = 0 et pm=paris???

Les coordonnées géographiques sont tjrs exprimées en référence au méridien de Greenwich, non?

proj4txt pour srid =27572 dans spatial_ref_sys :
+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs


Cordialement

Dernière modification par ph_de_fr (Thu 14 June 2007 14:45)

Hors ligne

 

#16 Thu 14 June 2007 14:21

fabrice_martin
Juste Inscrit !
Date d'inscription: 23 Feb 2007
Messages: 1

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

Je ne partage pas l'avis selon lequel la projection dans l'EPSG est fausse. Celle avec lon_0=0 et pm=paris est juste, mais elle est destinée à être utilisé avec un outil prenant en compte le prime meridian (pm). Or, c'est une "feature" que proj et invproj ne le prennent pas en compte, alors que cs2cs le fait. Ainsi, vous obtenez le bon résultat avec cs2cs.

La "correction" que vous avez apportée à la projection EPSG revient à prendre en compte deux fois le prime meridian, une fois à travers le lon_0 et une deuxième avec le pm. Cela ne fonctionne pas avec cs2cs.

Ce qui marcherait dans tous les cas, c'est de mettre lon_0=2.33... et pas pm, mais ce n'est semble-t-il pas l'esprit des programmeurs de proj. Dans tous les cas, il vaut mieux utiliser cs2cs (cad pj_transform() ).

Cordialement,
Fabrice.

Hors ligne

 

#17 Thu 14 June 2007 19:30

christian
Participant assidu
Lieu: Isère
Date d'inscription: 20 Sep 2005
Messages: 207
Site web

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

concernant proj4, vous n'obtiendrez  pas les mêmes coordonnées que CIRCE étant donné que CIRCE utilise une grille "made in france" différente des grilles utilisées par proj4 (l'une est basée sur un décalage des coordonnées cartésiennes, l'autre sur un décalage des coordonnées géographiques) en conséquence vous ne pourrez et ceci en récupérant les bons facteurs (ellipsoide et projection) qu'avoir la précision d'environ 2 mètres.

Pour information, vous devriez pouvoir trouver les bons paramètres sur le WEB : il faut redefinir l'elipsoide car en principe la lat et long sont en rapport à l'ellipsoide WGS84 et le lambert2 est en rapport avec l'eelipsoide Clarke80 (qui est un Clarke80 modifié par l'IGN donc vous ne trouverez les bons paramètres que chez eux -l'IGN). Donc vous ne pouvez utiliser proj mais devez utiliser cs2cs

Je sais également qu'un simili de grille existe et qu'il est possible de constituer une grille type NAD à partir de la grille IGN mais le système des grilles sur proj pose un gros problème en cela qu'il existe une multitude de version et que la grille n'est jamais adapté à la version que l'on a. (Bref, il est nécessaire de retoucher le code si on veut vraiment travailler avec des grilles)

Si vous ne trouvez pas les bons paramètres, "email me" !

(proj4 est tres bien et tres puissant mais comme beaucoup de libre, il n'est pas mis en valeur par une bonne documentation francaise)

Hors ligne

 

#18 Fri 15 June 2007 12:06

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Merci Fabrice et Christian pour vos commentaires (suis pas un pro des projections ni de proj d'ailleurs). Pour la documentation de proj, cela finira bien par arriver. Déjà celle de GDAL arrive 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

 

#19 Mon 18 June 2007 21:23

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

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

PROJ4 est une librairie C faisant de la transfo de SRS, il se peut qu'on module perl existe (http://devpit.org/wiki/Perl/Geo-Proj4)

Sinon, GDAL/OGR; la lib SIG de reference, utilise proj4 et peut se piloter en python, c, java (sur) et peut etre en perl:
http://fedora.kiewel-online.de/extras/6 … perl.html.

Nicolas

Hors ligne

 

#20 Fri 29 June 2007 14:27

lionel_
Participant actif
Lieu: meaux
Date d'inscription: 20 Apr 2006
Messages: 88

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

il est possible en perl d'attaquer circe en ligne de dommande et en entrant lat/long en parametre sur la ligne d'options de la commande. Cette commande retourne les valeurs que vous avez besoin et qu il doit être possible de  récuperer dans une varaible de perl  ( pense qu'il faut jeter un coup d oeil du coté stdout stdin )

circebatch.exe [  -v  ]  -init  fichier  -mode  mode  -type  type  -sys1  code  -sys2  code [  -alt  type [ code ]]   -typcoor1  type [ unité méridien | code ]   -typcoor2  type [ unité méridien | code ] {  -x  x  -y  y  -z  z |  -lon  longitude   -lat  latitude [  -he  hauteur ] |  -E  easting  -N  northing [  -H  altitude ] |  -f1  format fichier  -f2  format fichier }

circe
-----------------------------------------------
pouvez vous me donner les valeur de retour dans lambert IIe  par utilisation
1) de gdal
2) des  coordonnées  gps suivantes en entré wgs84 (x long3.506703, y lat50.385147)
pour information circe retourne x long 683381.47 y lat 2599518.375

Merci

Dernière modification par lionel_ (Fri 29 June 2007 14:30)

Hors ligne

 

#21 Sat 21 July 2007 20:03

epierre
Juste Inscrit !
Date d'inscription: 21 Jul 2007
Messages: 1

Re: Conversion de coordonnées géographiques (lat,long) en coordonnées x,y

Bonjour,

  je suis intéressé moi aussi par scripter cette transformation, avez vous pu avancer sur cela ?

Emmanuel

Hors ligne

 

Pied de page des forums

Powered by FluxBB