Convertisseur de coordonnées géographiques CH1903 WGS84

Conversion de coordonnées CH 1903 vers WGS84

Sur les cartes suisses on utilise le système de coordonnées CH 1903. De plus en plus en cartographie, on utilise des outils avec le système WGS84. Le système global utilisé par le GPS. Comment changer de système de coordonnées.

------ edit en 2019 ---

Je vois que le monde a bien changé. En 2009, j'avais eu de la peine à trouver un code de conversion en php. J'ai fini par l'écrire moi même et le publier. En 2019 on en trouve plusieurs et je vois que les liens sont souvent cassé. Ainsi je les mets à jours.
Je profite également d'ajouter un calculateur de longueur du degré de méridien, c'est pas très courant. Le seul que je connais est sur un vieux site en voie de disparition. Ainsi j'ai refait une petite app.
(J'utilise ça pour montrer que le périmètre de la grande pyramide de Gizeh est bien lié à plein d'unité de mesures de la Terre.... )

--------------

Programmes online

Swisstopo fourni sur son site plein de services intéressants:

Autres sources

La théorie de la conversion d'unité selon swisstopo

Conversion de coordonnées WGS84 de notation décimale à sexagésimale

Les coordonnées WGS84 peuvent être données dans plusieurs notation différente. Parfois en notation sexagésimale avec des latitude et longitude en degré, minutes et secondes. Parfois la notation est en degré décimale: tout est en degré et virgules de degré. La notation en degré décimale est celle utilisée par google maps. Ex: lat: 46.94952985143932 long: 6.834204196929932

cartographie topographie swisstopo convertisseur wgs84 ch1903

Code PHP de conversion WGS84 - CH1903

Parfois, il est utile de faire la conversion dans un bout de programme. Ainsi voici les fonctions php qui convertissent des coordonnées wgs84 en CH1903 et inversement.

Ces fonctions on été écrites selon les formules fournies par swisstopo. (dans la théorie ci-dessus)

/**
* converti les coordonnées lat long en wgs84 pour avoir des coordonnées ch1903 
* Ex: lat: 46.94952985143932 long: 6.834204196929932 => 553 986/200 005
*
* @return array()  y et x  les coordonnées au format CH1903
* @param latitude en degré décimal
* @param longitude en degré décimal
*/
function getCoordonneeCH1903($lat,$long){
// Les latitudes φ et les longitudes λ sont à convertir en secondes sexagesimales ["]

// Les grandeurs auxiliaires suivantes sont à calculer (les écarts en latitude et en longitude par rapport à
// Berne sont exprimés dans l'unité [10000"]) : 
// φ' = (φ – 169028.66 ")/10000 
//  λ' = (λ – 26782.5 ")/10000 
//
// 3. y [m] = 600072.37 
//  + 211455.93 * λ'   
//  - 10938.51 * λ' * φ' 
//  - 0.36 * λ' * φ'2 
//  - 44.54 * λ'3 
//
// x [m] = 200147.07 
//  + 308807.95 * φ' 
//  + 3745.25 * λ' 2 
//  + 76.63 * φ' 2 
//  - 194.56 * λ' 2 * φ' 
//  + 119.79 * φ' 3

// conversion degré décimal en seconde sexagétimale
// deg = 60 * minutes
// minutes = 60 * seconde
// =>deg = 3600 * seconde
$lat = $lat * 3600;
$long = $long * 3600;

// latitude:  φ =>lat  ( φ' =>lat2)
$lat2 = ($lat - 169028.66)/10000;

// longitude:  λ =>long  ( λ' =>long2)
$long2 = ($long - 26782.5)/10000;

$y = 600072.37 + (211455.93 * $long2) - (10938.51 * $long2 * $lat2) - (0.36 * $long2 * ($lat2*$lat2)) - (44.54 * ($long2*$long2*$long2));
$y = round($y);

$x = 200147.07 + (308807.95 * $lat2) + (3745.25 * $long2*$long2) + (76.63 * $lat2*$lat2) - (194.56 * $long2*$long2 * $lat2) + (119.79 * $lat2*$lat2*$lat2);
$x = round($x);

return array('y'=>$y,'x'=>$x);  // 600000,200000
}

/**
* converti les coordonnées ch1903 en latitude et longitude du système wgs84.
* Calcul selon: http://geomatics.ladetto.ch/swiss_projection_fr.pdf
* Pour des altitudes positives, les 2 systèmes sont équivalents au mètre près. Donc on n'en tient pas compte dans cette fonction.
* Ex: 553 986/200 005 => lat: 46.949532367683 long: 6.8342057996687
*
* @return array()  lat et long  les coordonnées au format wgs84 en notation degré décimale: 46.951081111111,7.4386372222222
* @param x (nord) à indiquer en m au format: 200000
* @param y (est) à indiquer en m au format: 600000
*/
function getCoordonneeWGS84($x,$y){

// 1. Les coordonnées en projection y (coordonnée est) et x (coordonnée nord) sont à convertir dans le 
// système civil (Berne = 0 / 0) et à exprimer dans l'unité [1000 km] : 
//  y' = (y – 600000 m)/1000000 
//  x' = (x – 200000 m)/1000000

// 2. La longitude et la latitude sont à calculer dans l'unité [10000"] : 
// λ'  = 2.6779094 
//  + 4.728982 * y' 
//  + 0.791484 * y' * x' 
//  + 0.1306 * y' * x'2 
//  - 0.0436 * y'3

// φ'  = 16.9023892 
//  + 3.238272 * x' 
//  - 0.270978 * y' 2 
//  - 0.002528 * x' 2 
//  - 0.0447 * y' 2 * x' 
//  - 0.0140 * x' 3

// h [m] = h' + 49.55 
// - 12.60 * y' 
// - 22.64 * x'

// 
// 3. La longitude et la latitude sont à convertir dans l'unité [°] : 
// λ = λ' * 100 / 36 
// φ = φ' *100 / 36

$y2 = ($y-600000)/1000000;
$x2 = ($x-200000)/1000000;

// longitude:  λ =>long  ( λ' =>long2)
$long2 = 2.6779094 + (4.728982 * $y2) + (0.791484 * $y2 * $x2) + (0.1306 * $y2 * $x2*$x2) - (0.0436 * $y2*$y2*$y2);

// latitude:  φ =>lat  ( φ' =>lat2)
$lat2 = 16.9023892 + (3.238272 * $x2) - (0.270978 * $y2*$y2) - (0.002528 * $x2*$x2) - (0.0447 * $y2*$y2 * $x2) - (0.0140 * $x2*$x2*$x2);   

// conversion en °
$long = $long2 *100/36;
$lat = $lat2 *100/36;

return array('lat'=>$lat,'long'=>$long);  //pour y=600000, x=200000 => 46.951081111111,7.4386372222222
}

Je vois qu'il y a également tout ce qu'il faut sur github pour avoir un code de conversion WGS84 to CH1903... ou plutôt LV3 maintenant !
Et ceci dans plein de langages comme C#, Java, php, python, R, SQL... 

Calculateur de degré de longueur de degré de méridien

Comme je l'ai annoncé plus haut. J'ai ajouté un nouvel outil.

Un calculateur de la longueur de l'arc d'un degré d'un méridien. Ce calculateur permet de calculer la longueur d'un arc de l'éllipsoïde de la terre pour 1° de longitude et/ou 1° de latitude et ceci en fonction de la latitude à laquelle on se trouve.

 

Pour ceux que la cartographie intéresse, je recommande de lire aussi tout ce que j'ai écrit à propos de l'outil de cartographie libre OpenStreetMap.
(j'y ai beaucoup contribué à ses débuts.. maintenant je suis plutôt en mode utilisation, notamment les cartes personnalisées sur openStreetMap :p.. donc mes outils d'il y a 10 ans ne sont peut être plus très pertinent.)

Résumé du livre conscience numérique de Pierre Fraser

Résumé: Conscience numérique de Pierre Fraser

Il est possible d'acheter directement ce livre sur le site web de l'auteur au format pdf, et de le recevoir par e-mail.

Voilà quelques idées développées dans ce livre:

  • Media de masse et nouveau médias sociaux ne sont pas en opposition mais complémentaire
  • paradoxe de notre société => liberté et individualité issue du siècle des lumière qui est en opposition à la théorie des masse, le désir d'équité de l'idéal démocratique.
  • Média de masse c'est simple et accessible à tous
  • Média social, internet, il faut savoir se servir de l'outils et bien le comprendre. Donc pas accessible à tous.
  • Media de masse est normatif. Il soude une communauté selon un région géographique.
  • Media internet est individuel il renforce sa propre communauté.
  • Media de masse est un média d'offre: on consomme ce qu'on nous donne.
  • Media internet est un média de demande: on va chercher l'information.
  • Ne pas confondre information et connaissance
  • La connaissance est une information qui a été intégrée et liée par des processus de cognition à notre connaissance déjà existante.
  • Le Prof. Clifford Nass et ses collègues (Yyal Ophir et Anthony Wagner) du département de psychologie de l’Université de Stanford ont fait des études pour déterminer le fonctionnement cognitifs des gens multitâches. Ils arrivent à la conclusion que ces gens ont un déficit d'attention chronique et que dans tous les tests faits ils ont été moins bons que les gens qui ont pour habitude de faire une chose après l'autre. Les multitâches switchent facilement d'une source d'information à l'autre, mais ils n'intègrent pas cette information en connaissance.
  • Les médias sociaux accélèrent la transmission d'information mais pas leur compréhension.
  • Une infos comme la mort de Mickaël Jackson peut être comprise par tout le monde. Mickael Jakson fait partie de la culture mondiale. Une culture des médias de masse.
  • Vers la fin des années 1960 il n'y avait que 3 chaines de TV aux USA. C'était l'âge d'or des médias de masse. Tout le monde regardait la même émission en même temps. C'est le synchronisme social. Depuis les années 1970, avec le câble, il y a une prolifération des chaines de TV. Puis en même temps, une prolifération des journaux et surtout des magazines avec la baisse du coût des rotatives d'imprimerie. Depuis, régulièrement les médias de masses perdent de l'influence. Ils sont morcelé. L'arrivée du web est une continuité de ce phénomène de segmentation de la société en de multiples cultures.
  • Le Flux désigne l'échange de conversation qui circule sur internet sans forcément être rattaché à une plateforme.
  • Le web de base est une énorme base de donnée faite de liens. Mais cette BD est statique.
  • Le Flux est dynamique. Il est là en continu.
  • Les flux atom, les mises à jour et les commentaires des blogs, toutes les données disponibles hors plateformes se mettent à voyager hors de leur environnement imposé de base. C'est ainsi que le Flux se crée.
  • Il y a une telle quantité de données qui constituent le Flux qu'humainement il ne devient plus possible de suivre tout ce qui passe. Il faut donc pratiquer la compression algorithmique.
  • Notre cerveau interprète de manière logarithmique toutes les infos que l'on reçoit. De plus il compresse les données. Il ne manipule que des symbole et pas les données détaillées véritables.
  • Le language est la solution que les humains utilisent pour comuniquer de manière symbolique sans avoir à gérer les détail. (en programmation on fait pareil. On utilise des symboles dans les languages de haut niveau pour coder de l'assembleur sur microprocesseur)
  • La compression de données se fait en contextualisant les données du Flux. Sur twitter, les hashtags permettent de contextualiser un twitt pour qu'il émerge du lot.

Cartographier le canton de Neuchâtel sur OpenStreetMap

Cartographier le canton de neuchâtel

J'avais déjà parlé il y a quelques temps de la carte collaborative libre: OpenStreetMap.

Les avantages d'une carte libre

L'idée est d'utiliser la collaboration d'un grand nombre de personnes pour créer une carte du monde libre de droits. L'avantage d'une telle approche, c'est que la carte est libre. Chacun est en droit de l'utiliser et de la modifier comme il en a envie. (contrairement aux cartes officielles swisstopo ou aux cartes google, etc...)

Le fait que la carte d'OpenStreetMap est souvent faite par les habitants même du lieu cartographié, il en résulte que la carte OpenStreetMap contient souvent des données plus précises et surtout plus à jour que les autres cartes.

A titre d'exemple, je reprend toujours mon quartier où, sur les cartes de swisstopo ou de googlemaps on veut me faire traverser un pont qui n'existe plus ! En effet, ce pont a été remplacé il y a 2 ans par deux giratoires. Les cartes de google et de swisstopo ne sont pas à jour.

On en arrive à des incohérences très rigolotes. Cette semaine, google street view est sorti pour la suisse et à cet endroit, il est possible de voler en image au dessus d'un giratoire en empruntant un pont fantome !


Agrandir le plan
Agrandir le plan


A propos de google street view, il est également possible de me voir sur ma trottinette dans les rues de Neuchâtel. (faut se retourner, je suis derrière la voiture)

Tout ça pour montrer que les cartes swisstopo et google ne sont pas à jour, alors que celle d'OpenStreetMap est à jour vu que je m'en occupe. (avec d'autres) Il suffit de le vérifier en regardant le carrefour devant chez moi sur la carte d'OpenStreetMap. (Par contre le projet libre OpenStreetView n'est de loin pas capable de rivaliser avec google street view )

La mise à jour de données par les utilisateurs intéresse swisstopo

Ce principe de mise en commun des forces, de participation pour la construction de données communes a maintenant fait ses preuves, (avec des exemples comme wikipedia). La collaboration c'est la base même de toutes les applications dite web2.0.

Donc dans le domaine de la cartographie, les acteurs principaux en place se posent des questions: Comment utiliser toute cette main d'oeuvre à disposition pour mettre à jour nos propres données ?

Du côté de la suisse et de son organe officiel responsable de la mensuration et cartographie du territoire, c'est à dire: swisstopo. On se pose réellement la question. Cette semaine swisstopo organise dans ses locaux même un atelier sur le thème Crowd Sourcing for Updating National Databases. (Programme en pdf)

Dans le programme de cet atelier, on trouve une conférence à propos de OpenAddresses.ch. Ce projet a pour but de créer une base de donnée de la géolocalisation de toutes les adresses postales suisse. Il compte sur la bonne volonté des gens pour peupler la base de donnée. Cependant, il y aussi des cantons qui ont fourni leurs propre bases de données.

Un tel projet permet de pouvoir faire ce que l'on appelle du geocoding. Entrer une adresse postale et l'afficher sur une carte. Chose qui parait simple, mais qui sans données accessibles ne l'est pas !

Dans le programme de cet atelier je ne vois nul part mention d'OpenStreetMap ? Le projet ferait il trop peur ? Swisstopo doit sentir la concurrence! C'est le moment de ne plus voir OpenStreetMap comme un concurrent, mais comme une aide. Il faut mettre en commun les données. Swisstopo est tout de même un appareil d'Etat, donc swisstopo n'a pas grand chose à perdre à libérer ses données. Tout ce que swisstopo risque, c'est de pouvoir récupérer des données mises à jour plus rapidement !

Des bases de données s'ouvrent à OpenStreetMap

Début juin 2009 a eu lieu, à l'EPFL, la conférence Geoperspectives 09. Lors ce cette conférence, OpenStreetMap a été largement évoqué.

Cerise sur le gâteau, l'Etat de Neuchâtel a profité de la conférence pour annoncer l'ouverture pour OpenStreetMap d'un serveur Web Map Service donnant accès aux photos aériennes du canton réalisées il y a 3 ans.

Les détails techniques de l'accès à ce service WMS neuchâtelois sont décrits sur le wiki d'OpenStreetMap.

C'est une révolution pour les gens qui comme moi cartographie le canton de Neuchâtel sur OpenStreetMap. Tout est plus simple et la précision est plus grande.

Avant ce jour, le seul moyen libre et efficace à disposition pour prendre des mesures était de prendre des traces GPS. Ceci fonctionne très bien pour cartographier des routes mais c'est beaucoup plus aléatoire pour cartographier des objets comme des maisons !

En effet, la précision garantie d'un GPS est de l'ordre de 30m, et il existe pas mal de maisons plus petites! De plus, faire le tour de la maison d'un inconnu dans son jardin, n'est pas forcément toujours très apprécié !

Avec la mise à disposition d'images aériennes (orthophotos) le cartographe amateur dispose de données semblables à celles qui sont utilisées par les cartographes de swisstopo.

Le boulot devient le même: dessiner la vue aérienne! Non seulement les routes qui était facile à faire avec un GPS, mais également les maisons, les lits de rivières exacts, les zones de forêt et de champs etc..

Depuis le début de l'année, l'Etat de Neuchâtel, n'est pas le seul à fournir des données cartographiques, l'Etat de genève, l'EPFL, le cadastre français ou l'association CampToCamp (itinéraires et refuges de montagne), ont ouvert tout ou une partie de leurs bases de donnée d'informations géographiques.

Ainsi OpenStreetMap se retrouve avec de plus en plus d'information libre qui est utilisable directement. Le travail est de plus en plus facile et donc de plus en plus accessible à tous le monde. Donc pour toi aussi cher lecteur !

Cartographier le canton de Neuchâtel à partir des photos aériennes

Vu qu'il est facile de cartographier le canton de Neuchâtel à partir des photos aériennes et bien voici la marche à suivre pour bien débuter.

Voici les quelques étapes nécessaires à la création d'une carte à partir des orthophotos neuchâteloises:

  1. télécharger JOSM, le programme de cartographie OpenStreetMap. (Guide du débutant)
  2. installer le plugin WMS pour que josm puisse afficher des images provenant d'un serveur WMS comme fond de carte.
  3. configurer le plugin WMS avec l'adresse du WMS de l'Etat de Neuchâtel: http://sitn.ne.ch/ogc-sitn-open/wms?version=1.1.1&request=GetMap&styles=&format=image/jpeg&layers=ortho&
  4. créer un compte utilisateur sur OpenStreetMap
  5. ouvrir josm sur le lieu à cartographier (Ouvrir une trace gpx est le plus simple. Voici un fichier trace gpx d'un tour dans Boudry)
  6. mettre à jour en local les données déjà présentes sur OpenStreetMap pour éviter d'ajouter des objets déjà existants
  7. cartographier tout ce qui manque en suivant les conventions et les tags. Voir la liste des tags compris par OSM.
  8. envoyer dans la base de donnée global d'OpenStreetMap les nouvelles données créées.
  9. Voilà c'est fait! la carte OSM est plus complète .. il ne reste plus qu'à aller en terra incognita et recommencer depuis le point 6

Ensuite, pour voir sur la carte disponible sur le site web d'OpenStreetMap, le dur labeur accompli, il faut encore attendre un moment. Le temps d'attente peut être de quelques minutes à une semaine !

édition carte openstreetmap josm wms neuch.jpgEn effet, ce que l'on regarde est une image. Il faut donc que cette image soit créée quelque part à partir des données vectorielles de la base de donnée.

Cette opération prend pas mal de temps. Donc elle n'est pas faite tout le temps. Elle est faite une fois par semaine complètement ou toute les heures pour les petites différences si la page est visitée !

Pour cartographier avec comme source de donnée des traces GPS c'est quasi la même chose, hormis que l'on a pas besoin du plugin wms, mais que l'on a besoin de faire des traces avec un GPS.

Ce qui peut être un parcours du combatant pour arriver à faire cohabiter le GPS, l'ordinateur et josm!   A ce propos voici le récit d'une journaliste qui a tenté (et réussi) l'expérience.

Maintenant le plus simple c'est de se lancer, de tester et de jouer.....  (oui c'est amusant !)

Pour toute question, problème, soucis, angoisse, le wiki d'OpenStreetMap est là avec certainement une foule de réponses.

C'est parti pour ce jeu passionnant !

Navigation au sein des articles

1 2 3 19 20 21 22 23 24
Remonter