Grille Référence des utilitaires

Détails et téléchargement

introduction

Dans de nombreux pays, il existe des systèmes de référence du réseau local utilisés par la cartographie locale, ce qui permet des références du réseau facile à utiliser à la place de latitude / longitude. Ces bibliothèques de scripts fournissent des moyens de les convertir en leurs équivalents latitude / longitude. De plus, ils offrent des fonctionnalités supplémentaires pour les systèmes de référence de la grille utilisés dans les îles britanniques, offrant des moyens de les convertir en différents formats. Ils peuvent également effectuer des transformations entre différents modèles de la Terre de latitude / longitude, y compris ceux utilisés en dehors des îles britanniques.

Les mathématiques utilisées pour convertir entre les références de grille et latitude / longitude (coordonnées géodésiques), et entre les différents modèles de la Terre est extrêmement compliquée. erreurs mineures peuvent facilement devenir une source d'erreurs majeures. Il faut prendre un grand soin de suivre précisément les algorithmes de conversion, et qui est ce que ces scripts font pour vous. L'utilisation de ces scripts vous permet de simplifier vos propres scripts, afin qu'ils puissent se concentrer sur l'utilisation des valeurs résultantes.

Pour télécharger le script (s) et voir la licence de script, utilisez les liens sur le panneau de navigation en haut de cette page.

conversions échantillons

Une note sur la précision de conversion

Lors de la conversion entre les références de réseau au Royaume-Uni / Irlande et les coordonnées GPS, ou entre les différents modèles de la Terre, les erreurs seront introduites par les algorithmes de conversion. La conversion est faite en utilisant des transformations Helmert (un des types de conversion proposés par Ordnance Survey), et ceux-ci sont connus pour être imparfaite, en raison de la nature imparfaite de la forme propre de la Terre. Les transformations Helmert entre les modèles Ordnance Survey ou Ordnance Survey Irlande et le GPS de la Terre ont une erreur de ± 5 mètres horizontalement et verticalement. Ces erreurs sont cumulatives, de sorte la conversion du système d'exploitation au modèle OSI via le modèle GPS peut produire une erreur de ± 10 mètres. Les conversions entre autres modèles dépendra de la précision de leurs ellipsoïdes, et propre forme à ce moment de la Terre.

Si vous avez besoin d'une meilleure précision que ces scripts peuvent fournir, alors vous aurez besoin d'utiliser un autre type de conversion qui peut faire face aux erreurs des différents modèles. Enquête Ordnance utiliser ce qu'ils appellent un « caoutchouc feuille » transformation, qui tient compte des différences mineures entre les modèles et la réalité à plusieurs points (une correction par kilomètre), et interpole les corrections d'autres points que vous tentez de convertir en conséquence. On sait que cette conversion très précise en OSTN02 (avec la conversion de OSGM02 connexes utilisés pour les altitudes) et est disponible dans le cadre des outils de l'Ordnance Survey.

formats de grille pris en charge

Les scripts sont conçus pour fonctionner avec des formats de grille de carte utilisée par des cartes normales et logiciel de cartographie dans les îles britanniques, tout en ayant une API pour permettre aux conversions de grilles cartographiques compatibles. De plus, ils soutiennent référence globaux les plus populaires de la grille des formats. Cela signifie que, par défaut, ils prennent en charge le réseau national au Royaume-Uni, le réseau national irlandais, Transverse Mercator irlandaise, Universal Transverse Mercator, stéréographique polaire universel, les coordonnées GPS et les coordonnées pour les modèles Terre utilisés par les réseaux nationaux britanniques et irlandais.

exemples d'utilisation

La conversion entre les références de grille et latitude / longitude coordonnées GPS

Ceci est rendu extrêmement facile par les scripts, en utilisant seulement deux appels de méthode. La première convertit la grille de référence en coordonnées numériques, et le second convertit les coordonnées en longitude / latitude:

Avec UTM ou UPS, c'est juste un seul appel de méthode. Vous pouvez éventuellement utiliser également dd_to_dms / ddToDms pour le convertir dans le format souhaité.

La conversion entre les références du réseau au Royaume-Uni et en Irlande

Le système de référence du réseau national britannique et le système de référence de la grille nationale irlandaise ne sont pas alignées commodément du tout, et bien qu'il existe d'importants chevauchements entre eux dans divers endroits, il n'y a normalement pas de moyen facile de traduire les références de la grille de l'un à l'autre. En Irlande du Nord, par exemple, les références de grille sont généralement exprimées à l'aide du système de référence de la grille nationale irlandaise. L'utilisation de cette bibliothèque, il est facilement possible d'obtenir la grille de référence dans l'autre système:

Une approche similaire est utilisée en sens inverse, ou pour convertir entre Irish Transverse Mercator et coordonne la grille nationale irlandaise. Les coordonnées Transverse Mercator irlandais peuvent être soit directement sous forme de coordonnées spécifiées numériques (donc ils ne ont pas besoin de l'étape de conversion supplémentaire), ou peuvent être convertis en un autre format en utilisant add_grid_units / addGridUnits. La conversion entre la plupart des différents réseaux se fait de cette manière, y compris UTM et l'onduleur (pour les petites pièces où ils se chevauchent), en convertissant la première référence de coordonnées GPS, puis la conversion de coordonnées GPS à l'autre système de référence de la grille.

La conversion entre les modèles de la Terre

Les conversions entre les différents modèles de la Terre ne sont un peu plus difficile, comme vous devez sélectionner la source appropriée et ellipsoïdes de destination, et un ensemble de transformation. Vous ne devez utiliser si vous convertissez d'un autre système de cartographie qui ne (appliquent les scripts automatiquement pour vous lors de la conversion entre les réseaux du Royaume-Uni / Irlande et les coordonnées GPS) ne pas utiliser le modèle Terre WGS84 / GRS80. Il est possible de créer vos propres ensembles de transformation, mais pour rendre la vie plus facile, les scripts sont livrés avec des ensembles de transformation pour les transformations suivantes:

ensembles de transformation disponibles par défaut

Notez que le logiciel GPS utilise généralement le modèle WGS84 Terre, qui est une version raffinée du modèle Terre GRS80. Les scripts utilisent les valeurs de WGS84, mais vous pouvez utiliser ellipsoïdes personnalisés pour les forcer à utiliser le modèle de la Terre GRS80. En pratique, cela ne fait aucune différence significative aux valeurs obtenues, compte tenu de la précision des transformations (la différence pratique entre les deux ellipsoïdes est généralement cité comme étant seulement environ 0,1 mm).

Par exemple, pour convertir entre Airy 1830 modèle Terre utilisé par Ordnance Survey au modèle de la Terre Airy 1830 modifié utilisé par Ordnance Survey Ireland, vous pouvez utiliser le code suivant:

Conversion d'autres systèmes de carte

Un grand nombre de systèmes de cartographie locaux ont été développés pour servir certains pays ou régions. Dans de nombreux cas, ils utilisent la même approche que les systèmes de cartographie de ces scripts traitent déjà. Ils commencent par un modèle de la Terre qui tente de refléter sa forme ellipsoïdale à l'emplacement cible. Ils utilisent alors une projection de Mercator transverse (ou projection stéréographique polaire) de l'ellipsoïde de manière à produire la carte. La carte est alignée sur une partie spécifique du modèle de la Terre (l'origine réelle), puis généralement décalée vers une autre fausse origine de la grille, et mis à l'échelle légèrement en utilisant un facteur d'échelle. Ceci est la donnée de la projection de cette carte.

Vous auriez besoin de travailler (si nécessaire) la distance de toute référence de la grille sur ce système de grille à son origine fausse. Donc, si les cartes utilisent quelque chose comme une myriade de lettres, vous devez convertir ce format à des distances simples de la fausse origine - coordonnées est et nord. Vous devez ensuite obtenir les paramètres ellipsoïde utilisés par le modèle de la Terre. Nourrir les paramètres ellipsoïde dans la create_ellipsoid / méthode createEllipsoid pour obtenir un ensemble de paramètres ellipsoïde (si vous êtes assez chanceux pour trouver que la carte utilise un des modèles de la Terre déjà fournies par les scripts, vous pouvez simplement utiliser la méthode get_ellipsoid / getEllipsoid pour récupérer le ensemble de paramètres de l'ellipsoïde approprié). Vous devez ensuite obtenir les paramètres de référence utilisé par la projection cartographique (mentionné ci-dessus). Nourrir tous ceux qui, en même temps que le jeu de paramètres ellipsoïde, dans la méthode create_datum / createDatum pour obtenir un ensemble de paramètres de référence.

Puis nourrir vos numéros soit dans grid_to_lat_long / gridToLatLong ou polar_to_lat_long / polarToLatLong (selon le type de projection du système de carte utilise), ainsi que votre jeu de paramètres de référence personnalisé, et il retourne les coordonnées géodésiques du point sur ce modèle de la Terre. Si le système de cartographie utilise le même modèle de la Terre comme GPS (WGS84 ou GRS80), alors il n'y a plus rien à faire. Si elle utilise un ellipsoïde différent, vous devez également obtenir les paramètres de transformation Helmert pour convertir entre ce modèle de la Terre et le modèle Terre WGS84 / GRS80. Nourrissez ceux dans create_transformation / createTransformation pour obtenir un paramètre de transformation Helmert personnalisé ensemble. Nourrissez vos coordonnées géodésiques, modèle de la Terre sur mesure, paramètre de transformation Helmert ensemble et le modèle existant de la Terre du script WGS84 comme le modèle de la Terre de destination, en Helmert_transform / HelmertTransform. et il retourne les coordonnées GPS pour le point.

Et un exemple en utilisant une projection stéréographique polaire en PHP:

Bien sûr, il est possible que vous devez convertir à partir d'un système de cartographie qui n'utilise pas une projection Mercator Transverse ou une projection stéréographique polaire de base. Dans ce cas, vous devrez soit trouver un autre script qui prend en charge ce système de cartographie ou écrire vous-même. Je peux recommander les guides EPSG. dans le guide particulier 7 de « conversions de coordonnées et transformations y compris les formules », car il a une liste très complète des différents systèmes de cartographie, et les algorithmes nécessaires pour les convertir à d'autres systèmes de coordonnées.

Accepter les suggestions des utilisateurs

Si vous prévoyez des références de grille UPS en entrée, vous pouvez également utiliser ups_to_lat_long / upsToLatLong pour détecter ceux-ci. Cependant, le format normal UPS est identique au format de grille irlandaise, à la seule exception étant que dans la plage normale, les chiffres sont généralement de deux paires d'au moins 6 chiffres, tandis que les références de grille irlandaise, ils ne sont normalement jusqu'à 5 chiffres . Pour détecter cette différence, la ups_to_lat_long / méthode upsToLatLong accepte un paramètre de min_length supplémentaire, ce qui provoque le procédé d'accepter seulement une chaîne de référence de la grille de l'onduleur si l'abscisse et l'ordonnée y a au moins 800 000 (un nombre légèrement en dessous des valeurs minimales attendues au sein de la grilles UPS). Ce contrôle doit être effectué avant la vérification des références de grille irlandais.

Essayez ici; entrée quelconque des formats mentionnés ci-dessus:

La méthode parse_grid_nums est une exception ici, car il a un paramètre strict_nums qui vous permet de le forcer à accepter qu'un nombre limité de formats. Cela existe uniquement dans le but de déterminer si un ensemble de coordonnées sont données avec les unités qui les rendent plus susceptibles d'être coordonnées de la grille ITM, ou si les coordonnées sont les coordonnées simplement génériques qui pourraient s'appliquer à l'un des formats de référence de la grille numérique. Vous pouvez choisir d'utiliser cette fonctionnalité à votre propre discrétion.

changelogs

Changements dans la version 2.1

  • Ajouté dd_format / ddFormat.

Changements dans la version 2.0 pour PHP

Changements dans la version 1.1 et 1.2 pour PHP

  • Ajout only_dm paramètre à dd_to_dms.
  • Ajout paramètre deny_bad_reference pour obtenir _ * _ grid_ref.

documentation de l'API

Articles Liés