Códigos EPSG do Brasil e da América Latina: Guia Rápido de Consulta

Um código EPSG é um número que representa um sistema de referência de coordenadas inteiro — datum, unidades e, se houver, a projeção. Esta página é o que você consulta quando um arquivo brasileiro ou latino-americano te entrega um número e nenhuma explicação: qual é o código do SIRGAS 2000, qual zona UTM cobre qual estado, e como converter entre eles.

Todo código aqui foi lido direto do GDAL em 11 de setembro de 2026 — GDAL 3.13.3 "Iowa City", PROJ 9.8.1 — não de memória. Quando o nome que uma ferramenta mostra difere do nome que está na WKT, os dois são impressos: essa diferença é exatamente o que transforma uma busca por datum num resultado vazio.

O que um código EPSG realmente é

Um código EPSG é um identificador de registro para um sistema de referência de coordenadas. Um único número representa uma definição inteira — datum, elipsoide, meridiano de origem, unidades e, se o SRC for projetado, a projeção e os seus parâmetros. Escrever EPSG:4674 já diz "graus no datum SIRGAS 2000", em vez de quarenta linhas de WKT.

É por isso que "meu arquivo não tem EPSG" é uma reclamação tão comum. O .prj de um Shapefile não guarda um número; guarda WKT, e se um leitor consegue transformar esse texto de volta num código depende de quão perto ele bate com o registro. O nosso guia de Shapefile cobre os arquivos-satélite; as autoridades para os códigos são o epsg.org e a documentação do PROJ.

Alguns formatos não têm onde guardar um SRC, e um padrão é assumido em silêncio. Rode ogrinfo -so -al num GeoJSON puro e o OGR reporta GEOGCRS["WGS 84" com ID["EPSG",4326] — nada no arquivo disse isso. No Brasil isso é perigoso justamente porque quase funciona: SIRGAS 2000 e WGS 84 concordam a bem menos de um metro, então o ponto de partida errado ainda parece certo.

Uma propriedade para internalizar logo de cara: códigos EPSG são densos, não esparsos. Um erro de um dígito geralmente cai em outro SRC válido em algum lugar do mundo. EPSG:4674 é SIRGAS 2000; EPSG:4675 é GEOGCS["Guam 1963". Nada reclama — os seus dados simplesmente se movem.

O conjunto brasileiro: SIRGAS 2000, SAD 69 e Córrego Alegre

Os códigos que você encontra em dados brasileiros, cada um com o nome que o GDAL imprime. Todos estão no seletor do nosso conversor de coordenadas.

Em uso atual

Estes são os códigos que você escolhe para um trabalho novo:

  • EPSG:4674 — GEOGCS["SIRGAS 2000"; em graus, o referencial nacional, e a resposta certa para qualquer coisa em latitude e longitude.
  • EPSG:31978 a EPSG:31985 — PROJCS["SIRGAS 2000 / UTM zone 18S" até PROJCS["SIRGAS 2000 / UTM zone 25S"; em metros, cobertas zona por zona logo abaixo.
  • EPSG:5880 — PROJCS["SIRGAS 2000 / Brazil Polyconic"; a projeção de extensão nacional, para quando um conjunto de dados cobre o país inteiro e nenhuma zona UTM isolada resolve. A sua irmã Mercator, EPSG:5641, é PROJCS["SIRGAS 2000 / Brazil Mercator".
  • EPSG:32722, EPSG:32723, EPSG:32724 — PROJCS["WGS 84 / UTM zone 22S" e as suas vizinhas 23S e 24S; a mesma grade sobre o datum WGS 84, que é o que um receptor de GPS te entrega.

O conjunto legado que você herda

Você não escolhe esses; você os recebe, geralmente em algo digitalizado antes de 2005. O conversor marca cada um deles com — legacy.

  • EPSG:4618 — GEOGCS["SAD69" na WKT, sem espaço. O seletor mostra SAD 69 — legacy (EPSG:4618), com espaço, então procurar num .prj pelo rótulo da interface não encontra nada.
  • EPSG:29192 e EPSG:29193 — PROJCS["SAD69 / UTM zone 22S" e PROJCS["SAD69 / UTM zone 23S"; o par UTM antigo do sudeste populoso.
  • EPSG:29101 — PROJCS["SAD69 / Brazil Polyconic"; a antecessora da 5880, e o motivo de um mapa nacional antigo cair dezenas de metros fora do lugar.
  • EPSG:4225 — GEOGCS["Corrego Alegre 1970-72". A WKT do GDAL vem sem acento; o rótulo da opção escreve Córrego Alegre 1970-72 — legacy (EPSG:4225), e este artigo escreve Córrego Alegre com acento no texto corrido. Procure no .prj pela string sem acento.

Os dois códigos globais

Mais dois aparecem em todo projeto, seja qual for o país:

  • EPSG:4326 — GEOGCS["WGS 84"; em graus, a língua franca do GPS e do GeoJSON.
  • EPSG:3857 — PROJCS["WGS 84 / Pseudo-Mercator"; o sistema em que todo mapa web renderiza, e um péssimo lugar para calcular qualquer coisa.

As unidades do EPSG:3857 não são metros. Elas só valem como metros no equador, e o erro cresce com a latitude. Medido em São Paulo em 11 de setembro de 2026, dois pontos na latitude -23.5505 e 0,1° de distância em longitude ficam 11.131,949 unidades afastados em 3857 contra uma distância geodésica real de 10.210,207 m — um exagero de 9,03%, 921,7 m numa linha de 10,2 km. A razão, 1,09028, é bem próxima de 1/cos(23.5505°), ou seja 1,09086. O mesmo par em EPSG:31983 dá 10.209,419 m de distância, 0,788 m longe da geodésica, o efeito esperado do fator de escala 0,9996 do UTM. Meça em UTM ou na Polyconic; renderize em 3857.

Escolhendo uma zona UTM no Brasil

Os códigos UTM do SIRGAS 2000 são contíguos, então existe uma regra em vez de uma tabela de consulta: 31977 + (zone - 17), cobrindo as zonas 17S a 25S. O GDAL confirma — gdalsrsinfo -o proj4 EPSG:31983 imprime +proj=utm +zone=23 +south. Não extrapole para além do bloco: EPSG:31986 não é a zona 26S, é PROJCS["SIRGAS 1995 / UTM zone 17N" — outro datum, o outro hemisfério.

As listas abaixo foram calculadas em 11 de setembro de 2026 a partir dos limites estaduais de máxima qualidade do IBGE, via a API de malhas linkada no final. Um estado aparece em toda zona que a sua fronteira alcança, não numa única zona que uma tabela-resumo atribuiria a ele.

Zona por zona

Cada zona lista os estados cuja fronteira entra nela:

  • Zona 18S — EPSG:31978 — oeste do Acre, oeste do Amazonas. O ponto mais a oeste do Brasil fica em torno de 73,99°W, dentro da zona 18, então nenhum estado brasileiro alcança a zona 17S; EPSG:31977 é oferecido para o resto da cobertura continental do SIRGAS 2000.
  • Zona 19S — EPSG:31979 — leste do Acre, incluindo Rio Branco, centro do Amazonas, oeste de Rondônia.
  • Zona 20S — EPSG:31980 — Amazonas, a maior parte de Rondônia e Roraima, oeste do Mato Grosso.
  • Zona 21S — EPSG:31981 — leste do Amazonas, Rondônia e Roraima, Mato Grosso, e as bordas ocidentais de Pará, Amapá, Mato Grosso do Sul, Paraná e Rio Grande do Sul.
  • Zona 22S — EPSG:31982 — Santa Catarina inteira, mais Paraná, Rio Grande do Sul, Mato Grosso do Sul, leste do Mato Grosso, Goiás, Pará, leste do Amapá, e as bordas ocidentais de Distrito Federal, São Paulo, Tocantins e Minas Gerais, mais a fatia oeste do Maranhão.
  • Zona 23S — EPSG:31983 — São Paulo incluindo a capital, quase todo o Maranhão, a maior parte de Minas Gerais, leste do Distrito Federal, Goiás, Tocantins e Pará, oeste do Piauí, Bahia e Rio de Janeiro.
  • Zona 24S — EPSG:31984 — Ceará e Sergipe inteiros, Espírito Santo, leste da Bahia, Piauí, Minas Gerais e Rio de Janeiro, e o interior do Rio Grande do Norte, Paraíba, Pernambuco e Alagoas, mais a fatia leste do Maranhão.
  • Zona 25S — EPSG:31985 — a ponta leste do Nordeste, a leste de 36°W: Natal, João Pessoa, Recife e Maceió, mais Fernando de Noronha.

Os estados que atravessam duas zonas, ou mais

Alguns estados se recusam a ficar numa zona só, e são esses os casos que geram discussão:

  • O Amazonas atravessa quatro zonas — de 18S a 21S. Não existe uma "zona UTM do Amazonas"; um conjunto de dados que cobre o estado inteiro usa uma projeção nacional ou fica em graus.
  • Pará, Mato Grosso, Minas Gerais e Maranhão atravessam três cada um. As duas pontas do Maranhão são fatias finas: o grosso está em 23S, com uma borda oeste em 22S e uma borda leste em 24S.
  • O Distrito Federal atravessa duas, assim como o município de Brasília sozinho: a sua fronteira vai de 48,29°W a 47,31°W, cruzando o meridiano de 48°W entre EPSG:31982 e EPSG:31983.
  • Só três estados ficam numa única zona — Santa Catarina na 22S, Ceará e Sergipe na 24S.
  • As ilhas do Atlântico caem fora da faixa. A malha do IBGE para o município de Vitória inclui terra em 28,85°W, o grupo de Trindade e Martim Vaz, na zona 26S — além do último código UTM do SIRGAS 2000 oferecido.
  • Quando um conjunto de dados cruza zonas, pare de escolher uma zona. EPSG:5880 cobre o país inteiro num único sistema projetado; EPSG:4674 mantém tudo em graus até que algo precise de metros.

O conjunto latino-americano

O mesmo conversor de coordenadas move um ponto entre qualquer um destes e o conjunto brasileiro. Vários são nomes que parecem certos e não são, então a string do GDAL é impressa para cada um.

Colômbia

A Colômbia roda em MAGNA-SIRGAS, em dois códigos fáceis de confundir:

  • EPSG:4686 — GEOGCS["MAGNA-SIRGAS"; geográfico, o referencial nacional.
  • EPSG:9377 — PROJCS["MAGNA-SIRGAS 2018 / Origen-Nacional". Guarde o 2018: essa é uma realização de datum diferente, não uma versão projetada da 4686. Na WKT, o datum da 9377 carrega AUTHORITY["EPSG","1329"], enquanto o da 4686 carrega AUTHORITY["EPSG","6686"].

Argentina

O par argentino separa o referencial geográfico da grade:

  • EPSG:5340 — GEOGCS["POSGAR 2007"; geográfico, em graus. Não é a grade argentina, e chamá-lo assim é o erro mais comum cometido com esse código.
  • EPSG:5343 e EPSG:5349 — PROJCS["POSGAR 2007 / Argentina 1" e PROJCS["POSGAR 2007 / Argentina 7"; as faixas Gauss-Krüger, essas sim em metros.

Chile

O Chile tem um código oferecido e um vizinho que não é o mesmo referencial:

  • EPSG:5360 — GEOGCS["SIRGAS-Chile 2002". Repare no 2002. A realização de 2016 é um código separado, EPSG:9153, que o GDAL nomeia GEOGCS["SIRGAS-Chile 2016" e que o conversor não oferece. Renomear a 5360 para "2016" mistura dois referenciais diferentes.

México

O México repete a mesma divisão entre geográfico e projetado:

  • EPSG:6365 — GEOGCS["Mexico ITRF2008"; geográfico, em graus, e também não é uma grade.
  • EPSG:6362 — PROJCS["Mexico ITRF92 / LCC"; a cônica conforme de Lambert, a projetada do par.

O referencial continental

Um código cobre o continente, mais o vizinho com que ele é confundido:

  • EPSG:4170 — GEOGCS["SIRGAS 1995"; a primeira realização continental do SIRGAS, geográfica, encontrada em conjuntos de dados regionais arquivados, e não escolhida para trabalho novo.
  • Não é o referencial do Uruguai. O SIRGAS-ROU98 é EPSG:5381, GEOGCS["SIRGAS-ROU98", e a sua grade é EPSG:5382, PROJCS["SIRGAS-ROU98 / UTM zone 21S". Nenhum dos dois é oferecido pelo conversor.

Convertendo entre eles: converter SIRGAS 2000 para UTM e WGS 84

No navegador

Cole uma coordenada no conversor de coordenadas, escolha um SRC, e leia todas as outras representações do mesmo ponto: graus decimais, DMS, easting e northing UTM, WKT, EWKT e WKB. Tudo roda dentro da página. Vale saber quatro coisas.

  • Ele oferece 42 códigos em cinco grupos, e todo código dos conjuntos brasileiro e latino-americano acima é um deles. Os quatro que este artigo cita só para te avisar — EPSG:4675, EPSG:9153, EPSG:5381 e EPSG:5382 — estão deliberadamente ausentes, assim como o EPSG:31986.
  • Os nomes dos grupos são em inglês em todos os idiomas. Global, Brasil, Latin America, Europe e North America estão fixos no código, então as versões em português e espanhol mostram essas mesmas cinco palavras.
  • Os rótulos das opções também estão fixos no código, e é por isso que SAD 69 — legacy (EPSG:4618) e SIRGAS-Chile 2002 — Chile (EPSG:5360) aparecem iguais nos três idiomas. O marcador — legacy é um aviso: datums que você encontra, não datums que você escolhe.
  • Não existe deep link. A página não lê nada da query string, então uma URL com uma coordenada anexada abre um formulário vazio.

Na linha de comando

Use a linha de comando quando você tem um arquivo ou mil pontos — não porque falte algo no seletor. As transcrições abaixo rodaram em 11 de setembro de 2026, todas sobre um único ponto: a Praça da Sé, em São Paulo, em -23.5505, -46.6333.

  • cs2cs — echo "-23.5505 -46.6333" | cs2cs -f "%.3f" EPSG:4674 EPSG:31983 imprime 333287.915 7394588.319 0.000. Para a Polyconic, cs2cs -f "%.3f" EPSG:4674 EPSG:5880 imprime 5751824.537 7375179.974 0.000.
  • A ordem dos eixos é a armadilha. Dado um código EPSG:, o PROJ respeita a ordem de eixos da autoridade, então a entrada para EPSG:4674 é latitude e depois longitude. Inverta para longitude e latitude e você recebe uma resposta silenciosamente errada, não um erro.
  • O gdaltransform usa a ordem oposta. echo "-46.6333 -23.5505" | gdaltransform -s_srs EPSG:4674 -t_srs EPSG:31983 imprime 333287.91510143 7394588.31863695 0 — o mesmo ponto até o milímetro, o mesmo conjunto de ferramentas, a entrada invertida.
  • ogr2ogr para o arquivo — ogr2ogr -s_srs EPSG:4674 -t_srs EPSG:31983 -f GeoJSON out.geojson in.geojson escreve "name": "urn:ogc:def:crs:EPSG::31983" e o mesmo easting e northing. O -s_srs é o que torna isso correto num GeoJSON, que não carrega SRC nenhum por conta própria.
  • Confira as versões antes de confiar numa transcrição — gdalinfo --version imprime GDAL 3.13.3 "Iowa City", released 2026/08/13. Para o PROJ use cs2cs 2>&1 | head -1, que imprime Rel. 9.8.1, April 10th, 2026, porque cs2cs --version sai com status de erro.

Quando o código está certo e o ponto continua errado

O resto desta página responde "qual código". As quatro perguntas abaixo são as que aparecem quando você já tem um código na mão: o arquivo abriu, nada deu erro, e o ponto não está onde deveria.

Todos os pontos caíram no oceano na costa da África

Uma célula de coordenada vazia, ou que o leitor não conseguiu transformar em número, muitas vezes chega do outro lado como um zero — e 0, 0 é uma posição real, no Golfo da Guiné, então nada reclama. O sinal é que os pontos ficam empilhados em um único lugar em vez de espalhados, e que nenhum código EPSG muda nada: os números sumiram, não foram rotulados errado. De onde vem o ponto em (0, 0) e como distingui-lo de um ponto real percorre o caso.

Meus números UTM foram lidos como latitude e longitude

Easting e northing têm seis e sete dígitos; lidos como graus, ficam muito além de ±90 e ±180, então uma ferramenta recusa o arquivo e outra desenha em algum lugar impossível. Converter de volta exige duas coisas que os números não carregam: em que zona UTM foram medidos — 18S a 25S no Brasil — e em que hemisfério, já que um northing do sul conta para baixo a partir de um equador que recebe o valor 10.000.000 m em vez de zero. Como transformar easting e northing UTM de volta em latitude e longitude cobre as duas.

A célula diz 23°33'02"S e a ferramenta quer um número

Graus, minutos e segundos com uma letra de hemisfério são uma string, não um número, e a maioria dos leitores trata a célula inteira como texto no instante em que aparece um °. A conversão é aritmética, mas o sinal é onde se erra: uma latitude sul que perdeu o S vira um número positivo que continua sendo um ponto válido — no hemisfério norte, e nada vai te avisar. Convertendo graus, minutos e segundos para graus decimais mostra quais formas são aceitas e quais não são.

O ponto está dezenas de metros fora e todos os códigos parecem certos

SIRGAS 2000 e WGS 84 concordam a bem menos de um metro, e é por isso que a maioria dos arquivos brasileiros sobrevive a ser rotulada como um ou como o outro. EPSG:4618 (SAD 69) e EPSG:4225 (Córrego Alegre) não: os graus são idênticos na tela e se referem a outro datum, então lê-los como SIRGAS 2000 move o ponto dezenas de metros — longe o bastante para cruzar uma divisa, perto o bastante para não parecer quebrado. O quanto SIRGAS 2000, WGS 84, Córrego Alegre e SAD 69 realmente diferem põe um número em cada par.

Arquivos de teste que você pode usar

Cada linha abaixo foi checada em 11 de setembro de 2026 com um user agent de navegador, a partir de uma única máquina. Um status é indicativo: uma fonte que responde para a gente pode recusar você.

  • O registro EPSG — epsg.org respondeu 200; busque por código ou por área. A origem pura redireciona com um 302, então linke a página, não a origem. O conjunto de dados está disponível sem custo, e a titularidade da IOGP "deve ser reconhecida em qualquer publicação ou transmissão" segundo os seus termos.
  • Documentação do PROJ — proj.org respondeu 200 com um cabeçalho CORS aberto, e a origem pura também é um 302 para lá. O PROJ é distribuído sob a licença X/MIT, e a página da Mercator transversa respondeu 200.
  • API de malhas do IBGE, um arquivo em vez de um portal — o limite do Brasil em GeoJSON respondeu 200 com access-control-allow-origin: *, então funciona tanto direto de uma página web quanto como download. Acrescente &intrarregiao=UF para as malhas estaduais de onde vieram as listas de zonas. A página da API não declara licença — credite o IBGE e confira os termos do portal antes de republicar.
  • Portal de downloads do IBGE — downloads-geociencias respondeu 403 para o nosso script, e também para um user agent de navegador, atrás de uma barreira do Cloudflare — um desafio que uma pessoa resolve de forma interativa e um script não. Baixe de lá num navegador; não busque o arquivo a partir de uma aplicação web. Um filtro de bot, não um link morto.
  • INEGI, México — inegi.org.mx/temas/mapas respondeu 200 para um user agent de navegador, sem cabeçalho CORS: baixe direto de lá, não busque via uma aplicação web.
  • IGAC, Colômbia — igac.gov.co respondeu 200 e publica através de uma seção de dados abertos, com os termos de uso linkados no rodapé. Um aviso: o seu subdomínio de geoportal simplesmente não respondeu, com timeout depois de 10,3 segundos em dois user agents diferentes. Pode ser que só responda de dentro da Colômbia.
  • Servidor de arquivos do IBGE — geoftp.ibge.gov.br respondeu 200 via https com um cabeçalho CORS aberto, e guarda o grosso dos produtos cartográficos.

Leve o hábito por trás desta página adiante: antes de escrever um código em qualquer lugar, pergunte ao software o que ele significa. gdalsrsinfo -o wkt1 EPSG:5360 diz 2002, não 2016. Se o seu próximo arquivo for um raster em vez de uma lista de pontos, a mesma disciplina vale para a organização dos bytes dele: o nosso guia sobre Cloud Optimized GeoTIFF faz pelo layout o que esta página faz pelos códigos, e o Geodocs cuida dos dois para uma equipe de campo.

Artigos Relacionados

Navegação