Vous trouverez ci-dessous l'équation simple qui permet de convertir des degrés, minutes et secondes en degrés décimaux :
DD = (Seconds/3600) + (Minutes/60) + Degrees
La conversion doit faire l'objet d'une gestion différente si la valeur des degrés est négative. Voici une méthode :
DD = - (Seconds/3600) - (Minutes/60) + Degrees
Dans les instructions ci-dessous, vous allez convertir un champ dans une table de valeurs de latitude ou de longitude exprimées en degrés, minutes et secondes en degrés décimaux à l'aide du calculateur de champs. Le code est en VBScript mais se convertit facilement dans d'autres langues de programmation. On suppose que les degrés, minutes et secondes sont stockés sous forme de chaîne (texte), avec des espaces entre les nombres et aucun symbole. Par exemple, les données sont stockées comme suit :
25 35 22.3
où 25 correspond aux degrés, 35 aux minutes et 22.3 aux secondes.
La sortie est stockée dans un champ numérique.
- Ajoutez la table dans ArcMap.
- Cliquez avec le bouton droit sur la table des matières, puis sélectionnez Ouvrir.
- Cliquez sur le bouton Options, puis sur Ajouter un champ.
- Saisissez Lat2 dans le champ Nom.
- Cliquez sur la flèche de la liste déroulante Type et sélectionnez Double dans la liste.
Si le nom de champ Lat2 est déjà utilisé, choisissez un nom qui n'est pas encore utilisé.
- Cliquez sur OK.
- Cliquez avec le bouton droit de la souris sur le champ Lat2, puis choisissez Calculateur de champs.
- Cliquez sur Oui si un message apparaît.
- Cochez la case Show Codeblock (Afficher le bloc de code).
- Collez le code suivant dans la zone Pre-Logic Script Code (Code de script Pre-Logic) :
Dim Degrees Dim Minutes Dim Seconds Dim DMS Dim DD DMS = Split([Latitude]) Degrees = CDbl(DMS(0)) Minutes = CDbl(DMS(1)) Seconds = CDbl(DMS(2)) If Degrees < 0 Then DD = -(Seconds/3600) - (Minutes/60) + Degrees Else DD = (Seconds/3600) + (Minutes/60) + Degrees End If
Sur la sixième ligne, à partir de DMS =, le texte entre les crochets [ ] doit correspondre au nom du champ qui contient les valeurs de latitude. Remplacez le mot Latitude dans le code par le nom du champ (dans votre table) qui stocke les valeurs de latitude DMS.
- Collez le code suivant dans la zone Lat2 = au bas de la boîte de dialogue :
CDbl(DD)
- Cliquez sur OK.
- Répétez les étapes 3 à 12 pour les valeurs de longitude.