Instrução

Converter um arquivo com coordenadas em graus, minutos e segundos em um shapefile no ArcMap 9.x

Last Published: May 11, 2021

Resumo

Nota: O procedimento abaixo é para ArcGIS 9.3.1 ou versões anteriores. A partir do ArcGIS 10.0, as expressões na Calculadora são criadas usando apenas um formato VBScript ou Python padrão. Para o processo equivalente no ArcGIS Desktop 10, consulte Instrução: Converter um arquivo com coordenadas em graus, minutos e segundos para uma classe de feição ou shapefile usando ArcMap 10.x

Procedimento

Siga as etapas abaixo.

  1. Formate os valores das coordenadas do ArcGIS para interpretar corretamente os dados.
    1. As coordenadas em GMS de um arquivo devem ser formatadas com espaços separando os valores de grau, minuto e segundo, conforme mostrado no exemplo a seguir:
      80 37 40,35 00 48
    2. Para dados na América do Norte, os valores de longitude devem ser negativos. Note os seguintes exemplos:
      -80 37 40,35 00 48
    3. Cada coluna da tabela deve ter um título que descreve os dados inseridos nessa coluna da tabela:
      Longitude,Latitude
      -80 37 40,35 00 48
    4. A tabela deve ter um campo que contenha um número de identificação único para cada registro da tabela (chave primária).
      ID,Longitude,Latitude
      1,-80 37 59,35 00 38
  1. Inicie o ArcMap com um novo mapa vazio após a tabela ser formatada corretamente.
  2. Salve o script abaixo como 'conv_DMS2DD.cal' no ArcMap com as seguintes etapas:
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 uma tabela no ArcMap.
  2. Clique com o botão direito em um campo e selecione Calcular Valores.
  3. Marque a caixa de seleção Avançado.
  4. Copie o código acima na seção Código de Script VBA Pré-Lógico da Calculadora de Campo.
  5. Digite dDD na seção inferior da Calculadora de Campo.
  6. Clique em Salvar para salvar o script em um arquivo .cal e nomeie o arquivo conv_DMS2DD.cal.
  1. Siga estas etapas para executar o código acima na Calculadora de Campo:
    1. Adicione a tabela contendo as coordenadas GMS no ArcMap através do botão Adicionar Dados.
    2. Clique com o botão direito no nome da tabela, clique em Dados > Exportar e exporte a tabela para um arquivo DBF.
    3. Abra a tabela DBF e adicione itens denominados 'longDD' e 'latDD' à tabela, definindo-os como Duplo, Precisão 18 e Escala 13.
    4. Calcule os valores de campo para 'longDD' e 'latDD' iniciando um carregamento do script conv_DMS2DD.cal na Calculadora de Campo.
Nota: Altere o nome do campo no script para aquele dos campos GMS originais. Altere o nome do campo de origem para: sField = [Long]
  1. Clique com o botão direito na tabela DBF e selecione Exibir Dados XY após as coordenadas sere convertidas de GMS para GD.

    Defina a projeção para a camada de evento clicando no botão Editar na seção Referência Espacial das Coordenadas de Entrada da caixa de diálogo.
Nota: Definir a projeção permite que os dados sejam exibidos como uma camada Evento no local correto no ArcMap.
  1. Converta a camada Evento em um shapefile.
    1. Clique com o botão direito na camada Evento e selecione Dados > Exportar.
    2. Selecione o local de saída para o shapefile e digite o nome.
    3. Clique em Salvar e OK na caixa de diálogo Exportar Dados para criar o shapefile.

ID do Artigo:000012735

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download

Informações Relacionadas

Descubra mais sobre este tema