Español
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

Cómo: Convertir un archivo con coordenadas en grados, minutos y segundos en un shapefile en ArcMap 9.x

Resumen

Nota: El procedimiento que se describe a continuación es para ArcGIS 9.3.1 o versiones anteriores. Desde la versión 10.0 de ArcGIS, las expresiones de la Calculadora se crean solo con VBScript o un formato de Python estándar. Para conocer el proceso equivalente en ArcGIS Desktop 10, consulte Cómo: Convertir un archivo con coordenadas en grados, minutos y segundos en una clase de entidad o un shapefile utilizando ArcMap 10.x

Procedimiento

Siga los pasos a continuación.

  1. Formatee los valores de coordenadas para que ArcGIS interprete los datos correctamente.
    1. Las coordenadas en DMS de un archivo se deben formatear con espacios que separen los valores de grados, minutos y segundos, como se muestra en el siguiente ejemplo:
      80 37 40,35 00 48
    2. En el caso de los datos de Norteamérica, los valores de longitud deben ser números negativos. Observe el siguiente ejemplo:
      -80 37 40,35 00 48
    3. Cada columna de la tabla debe tener un encabezado que describa los datos introducidos en dicha columna de la tabla:
      Longitud,Latitud
      -80 37 40,35 00 48
    4. La tabla debe tener un campo que contenga un número de identificación único para cada registro de la tabla (clave principal).
      Id.,Longitud,Latitud
      1,-80 37 59,35 00 38
  1. Inicie ArcMap con un nuevo mapa vacío una vez que la tabla esté formateada correctamente.
  2. Guarde el siguiente script como "conv_DMS2DD.cal" en ArcMap siguiendo estos pasos:
Código: Dim sField Dim sDMS As String, sS As String, sSuf As String, sPre as string Dim sList Dim i As Integer, j As Integer Dim iDec As Integer, iNum As Integer Dim dD As Double, dM As Double, dS As Double, dDD As Double Dim bReplace As Boolean '============================= 'Change the source field name bellow sField = [dms] '============================= sDMS = sField If Len(Trim(sDMS)) = 0 Then dDD = 0 Else iDec = 0 iNum = 0 For i = 1 To Len(sDMS) sS = Mid(sDMS, i, 1) If Not IsNumeric(sS) Then If sS = "." Then If Not iDec = 0 Then bReplace = True Else bReplace = False End If iDec = iDec + 1 ElseIf sS = "-" Then sPre = "-" bReplace = True Else bReplace = True End If If bReplace Then If iNum > 0 Then Mid(sDMS, i, 1) = "," Else Mid(sDMS, i, 1) = " " End If End If Else iNum = iNum + 1 End If Next i sList = Split(sDMS, ",") Dim iLen As Integer If UBound(sList) = 0 Then sDMS = sList(0) iLen = Len(sDMS) If iLen >= 4 Then dS = CDbl(Mid(sDMS, iLen - 1, 2)) dM = CDbl(Mid(sDMS, iLen - 3, 2)) sDMS = Left(sDMS, (iLen - 4)) If (Len(sDMS) > 2) Then dD = CDbl(Right(sDMS, 3)) ElseIf (Len(sDMS) = 0) Then dD = 0# Else dD = CDbl(sDMS) End If Else dDD = 0 End If dDD = dD + dM / 60# + dS / 3600# Else j = 0 dD = 0# dM = 0# dS = 0# For i = 0 To UBound(sList) If IsNumeric(sList(i)) Then If j = 0 Then dD = CDbl(sList(i)) j = j + 1 ElseIf j = 1 Then dM = CDbl(sList(i)) j = j + 1 ElseIf j = 2 Then dS = CDbl(sList(i)) j = j + 1 End If End If Next i dDD = dD + dM / 60# + dS / 3600# End If If dDD < -180# Or dDD > 180# Then dDD = 0# End If If sPre = "-" Then dDD = dDD * -1# End If End If
  1. Abra una tabla en ArcMap.
  2. Haga clic con el botón derecho en un campo y seleccione Calcular valores.
  3. Active la casilla de verificación Opciones avanzadas.
  4. Copie el código de arriba en la sección Código de script Pre-Logic de VBA de la Calculadora de campo.
  5. Escriba dDD en la sección inferior de la Calculadora de campo.
  6. Haga clic en Guardar para guardar el script en un archivo .cal y llame al archivo conv_DMS2DD.cal.
  1. Siga estos pasos para ejecutar el código de arriba en la Calculadora de campo:
    1. Agregue la tabla que contiene las coordenadas DMS a ArcMap con el botón Agregar datos.
    2. Haga clic con el botón derecho en el nombre de la tabla, haga clic en Datos > Exportar y exporte la tabla a un archivo DBF.
    3. Abra la tabla DBF, agregue a la tabla dos elementos con los nombres "longDD" y "latDD", y defínalos como Doble, Precisión 18 y Escala 13.
    4. Calcule los valores de campo de "longDD" y "latDD" iniciando una carga del script conv_DMS2DD.cal en la Calculadora de campo.
Nota: Cambie el nombre del campo del script al de los campos DMS originales. Cambie el nombre del campo de origen a: sField = [Long]
  1. Haga clic con el botón derecho en la tabla DBF y seleccione Mostrar datos XY una vez convertidas las coordenadas de DMS a DD.

    Defina la proyección de la capa de eventos haciendo clic en el botón Editar de la sección Referencia espacial de coordenadas de entrada del cuadro de diálogo.
Nota: Definir la proyección permite que los datos se muestren como una capa de eventos en la ubicación correcta en ArcMap.
  1. Convierta la capa de eventos en un shapefile.
    1. Haga clic con el botón derecho en la capa de eventos y seleccione Datos > Exportar.
    2. Seleccione la ubicación de salida para el shapefile y escriba el nombre.
    3. Haga clic en Guardar y Aceptar en el cuadro de diálogo Exportar datos para crear el shapefile.

Información relacionada

Última modificación: 5/10/2021

Id. de artículo: 000012735

Software: ArcGIS-ArcEditor 9.3.1, 9.3, 9.2 ArcGIS-ArcInfo 9.3.1, 9.3, 9.2 ArcGIS-ArcView 9.3.1, 9.3, 9.2