Graus, Minutos e Segundos para Graus Decimais: O Que Converte, O Que É Recusado e O Que Dá Errado em Silêncio

O coordinate-converter lê graus-minutos-segundos, graus e minutos sem segundos, e minutos decimais — desde que a letra do hemisfério esteja nos dois lados. Abaixo está a matriz medida: cada forma que digitamos, se ela foi interpretada, e o que voltou.

Leia o destino primeiro. O campo Projeção de destino (CRS) vem em SIRGAS 2000 / UTM 23S (EPSG:31983), que é projetado: nesse padrão, 23°33'S 46°38'W volta como 333283.881280 e 7394643.649020 sob os rótulos X (Leste) e Y (Norte) — metros — e o campo de GMS ao lado mostra DMS não disponível para um CRS projetado. Três condições trazem graus de volta: deixe Projeção de origem (CRS) em WGS 84 (EPSG:4326), coloque o destino em SIRGAS 2000 (EPSG:4674), e não faça o destino igual à origem, o que imprime Escolha uma projeção de destino diferente para ver a conversão. em vez de um número. O guia rápido de códigos EPSG tem os outros códigos que vale a pena colocar ali.

Medido em 23 de setembro de 2026 contra static-page-tools@79fc1f6, a árvore publicada, com o GDAL 3.13.3 "Iowa City" para as transcrições de linha de comando.

O que é interpretado, e o que ele devolve

Nove formas digitadas no campo GMS (Graus / Minutos / Segundos), cada uma numa página nova, origem WGS 84 (EPSG:4326) e destino SIRGAS 2000 (EPSG:4674):

  • Graus-minutos-segundos completo — 23°32'56.10"S 46°38'20.30"W é interpretado: -23.54891667 e -46.63897222. É o próprio texto de exemplo do campo, Ex: 23°32'56.10"S 46°38'20.30"W.
  • Graus e minutos, sem segundos — 23°33'S 46°38'W é interpretado: -23.55000000 e -46.63333333. Essa é a novidade — a mesma string era recusada na semana passada.
  • Minutos decimais — 23°33.5'S 46°38.2'W é interpretado: -23.55833333 e -46.63666667. Também é novidade, o que não é o que diz o comentário acima do código.
  • Separado por espaços, sem símbolos — 23 32 56.1 S 46 38 20.3 W é interpretado: -23.54891667 e -46.63897222, o mesmo par do primeiro item.
  • Letras de hemisfério em minúsculas — 23°33's 46°38'w é interpretado: -23.55000000 e -46.63333333.
  • As letras trocadas — 23°32'56.10"N 46°38'20.30"E é interpretado: 23.54891667 e 46.63897222, sem erro e sem aviso.
  • Sem nenhuma letra de hemisfério — 23°32'56.10" 46°38'20.30" é recusado: Formato GMS não reconhecido.
  • Uma latitude fora de faixa — 95°00'00"S 46°38'00"W é recusado: Formato GMS não reconhecido.
  • Graus decimais digitados na caixa de GMS — -23.5489 -46.6388 é recusado: Formato GMS não reconhecido.

Três das nove são recusadas, por três motivos diferentes atrás de uma mensagem só. 23°32'56.10" 46°38'20.30" nunca casa com o padrão: a letra do hemisfério é que carrega o sinal, e não existe valor padrão. -23.5489 -46.6388 também não casa — é um par decimal, e o campo de graus decimais acima é o lugar dele. 95°00'00"S 46°38'00"W é o caso diferente: casa com o padrão perfeitamente e é descartado depois, pela checagem de faixa, porque noventa e cinco não é uma latitude.

Uma forma é interpretada e ainda assim está errada. 23°32'56.10"N 46°38'20.30"E é o primeiro item com as duas letras invertidas, e devolve 23.54891667 e 46.63897222 — um ponto no Mar da Arábia, na costa da Somália, em vez de São Paulo — em silêncio. Aceito e correto são veredictos diferentes, e nada aqui distingue um N deliberado de um digitado por engano.

Uma esquisitice de exibição. A metade do resultado reimprime a coordenada em GMS e arredonda os segundos sem propagar o vai-um, então 23°33'S 46°38'W volta escrito como 23°33'0.00"S 46°37'60.00"W. O ponto está certo — 46°37'60" é 46°38'00" — e os decimais ao lado mostram -23.55000000 e -46.63333333, mas a string está malformada. Leia os decimais, não o eco.

Por que os segundos eram obrigatórios, e o que a correção destravou de fato

Eram obrigatórios mesmo, e nós dissemos isso: nosso guia de CSV contou aos leitores que o conversor queria segundos, e ele queria. 23°33'S 46°38'W não devolvia absolutamente nada. Se você bateu nessa mensagem e agora vê a mesma string ser aceita, você não está ficando louco — a coisa mudou.

O que mudou é maior do que parece. O padrão antigo exigia três grupos numéricos de cada lado — graus, minutos e segundos — então qualquer forma de dois grupos era rejeitada, fosse qual fosse o conteúdo dela. Com o commit antigo em disco, rodando ao lado do build de hoje e com as mesmas entradas: 23°33'S 46°38'W não devolvia nada antes e devolve -23.55000000 agora; 23°33.5'S 46°38.2'W não devolvia nada antes e devolve -23.55833333 agora. O decimal nunca foi o problema. 23°33.5'00"S 46°38.2'00"W — minutos decimais com um grupo de segundos — já era interpretado antes da mudança e continua sendo; quem rejeitava era o terceiro grupo que faltava. Então a correção destravou toda forma de dois grupos, minutos decimais incluídos.

Duas coisas que ela não fez. Não acrescentou as letras de hemisfério em minúsculas: 23°33'00"s 46°38'00"w também era interpretado antes da mudança, e 23°33's 46°38'w só é novidade porque tem dois grupos. E não afrouxou as letras em si, ainda obrigatórias dos dois lados.

Convertendo uma coluna inteira numa planilha

Para uma coluna cheia delas, uma fórmula resolve graus-mais-minutos e nega S e W. Com a célula em A1, num locale do Calc ou do Sheets que separa argumentos com ; (o Excel em inglês quer ,):

=IF(OR(RIGHT(A1;1)="S";RIGHT(A1;1)="W");-1;1)*(VALUE(LEFT(A1;FIND("°";A1)-1))+VALUE(MID(A1;FIND("°";A1)+1;FIND("'";A1)-FIND("°";A1)-1))/60)

A fórmula dá -23.55 para 23°33'S, -15.78333 para 15°47'S, -46.63333 para 46°38'W, 10.25 para 10°15'N e 10.25 para 10°15'E — o ramo do sinal funciona nos dois sentidos. Ela dá -23.55833 para 23°33.5'S, exato, num locale cujo separador decimal é o ponto; num locale de vírgula decimal, o 33.5 dentro da célula é a primeira coisa a conferir.

Conheça o domínio dela, porque o jeito como ela falha é a parte perigosa. Ela trata graus mais minutos com uma letra de hemisfério no fim, e nada além disso. Uma célula com segundos não é recusada, é truncada em silêncio: 23°32'56.10"S dá -23.53333 onde o valor verdadeiro é -23.548917, um ponto a cerca de 1,7 km de distância, sem nenhum erro na célula. Uma célula sem letra de hemisfério também não é recusada: 23°33' dá 23.55, positivo, hemisfério norte. Ela recusa 23°S, 23 33 S e -23.55, cada um com #VALUE! — e essas são as falhas inofensivas. As duas silenciosas é que chegam ao mapa.

Na linha de comando, o GDAL não tem parser de GMS pela via do CSV

Por essa via, o GDAL 3.13.3 não lê um sinal de grau. ogrinfo -oo AUTODETECT_TYPE=YES -al -so num arquivo de três linhas todo em GMS tipa as duas colunas de coordenada como texto — lat: String (0.0) e lon: String (0.0) — enquanto a mesma chamada na versão decimal desse arquivo as tipa como Real (0.0).

A conversão então tem sucesso e não produz nada. ogr2ogr -f GeoJSON out.geojson dms.csv -oo X_POSSIBLE_NAMES=lon -oo Y_POSSIBLE_NAMES=lat sai com 0, imprime uma linha — Warning 1: Invalid value type found in record 1 for field lat. This warning will no longer be emitted — e escreve "geometry":null nas três linhas, com lat e lon sumindo também das propriedades, por terem sido consumidos como campos de geometria. Um arquivo que converteu, sem nenhum ponto dentro. O número do registro é o da primeira linha que falha, e não sempre 1: ponha uma linha numérica primeiro e uma linha em GMS depois, e o mesmo comando diz record 2.

O controle é o que torna isso legível. O mesmo comando, com as mesmas flags, na versão decimal do arquivo, escreve três pontos de verdade — "coordinates":[-46.63,-23.55] para o primeiro — e nenhum aviso. Ou seja, "geometry":null é o GDAL recusando a célula, não o comando estando errado. Acrescentar -oo AUTODETECT_TYPE=YES à chamada do ogr2ogr não muda nenhum dos dois resultados.

No csv-viewer, depende do resto do arquivo

Solte no csv-viewer um CSV com uma célula 23°33'S e o que você recebe depende de o resto ter sobrevivido ou não. Uma linha em GMS no meio de duas boas: a camada abre, os dois pontos bons são desenhados, e a linha de contagem diz 2 pontos · 1 linha sem coordenadas válidas. Um arquivo em que toda linha está em GMS: nenhuma camada, nenhuma linha de contagem, nenhum botão Exportar, só o aviso Nenhuma coluna de coordenadas válida encontrada. Verifique se as colunas selecionadas contêm valores numéricos de latitude e longitude.. O controle — as mesmas três linhas em graus decimais — diz 3 pontos, sem cláusula de descarte depois. De um jeito ou de outro o seletor continua abrindo e continua pré-selecionando lat e lon; a recusa vem depois que você clica em Abrir no mapa.

Arquivos de teste que você pode usar

Nada para baixar — três linhas cada, digitadas. Copie um item para um editor de texto, um trecho por linha, salve como .csv, solte no csv-viewer; para o conversor, cole uma string da matriz acima no campo de GMS. O segundo arquivo é o terceiro com as células de coordenada da linha 2 reescritas em graus e minutos.

  • Toda linha em graus e minutos — id,lat,lon,nome · 1,23°33'S,46°38'W,São Paulo · 2,15°47'S,47°53'W,Brasília · 3,3°07'S,60°01'W,Manaus — o aviso, e as transcrições do GDAL acima.
  • Uma linha em GMS no meio de duas boas — id,lat,lon,nome · 1,-23.55,-46.63,São Paulo · 2,15°47'S,47°53'W,Brasília · 3,-3.12,-60.02,Manaus — o contador de descartes.
  • Controle — id,lat,lon,nome · 1,-23.55,-46.63,São Paulo · 2,-15.79,-47.88,Brasília · 3,-3.12,-60.02,Manaus — 3 pontos, nada descartado.

Para times

Uma coordenada convertida continua sendo só uma coordenada. Essas strings vieram de uma tela de GPS, de uma planilha de levantamento ou da letra de alguém, e vão para um ponto que uma pessoa tem que visitar, fotografar, preencher e aprovar. O Geodocs pega o arquivo, mantém cada coluna como um campo que a equipe preenche pelo celular, roda a revisão, e põe o mapa no relatório. Converta aqui; faça o trabalho lá.

Artigos Relacionados

Navegação