Códigos EPSG de Brasil y América Latina: la guía rápida
Un código EPSG es un número que representa todo un sistema de referencia de coordenadas — datum, unidades y, si la hay, la proyección. Esta página es lo que consultás cuando un archivo brasileño o latinoamericano te entrega un número y ninguna explicación: qué código es SIRGAS 2000, qué zona UTM cubre cada estado, y cómo convertir entre ellos.
Cada código de esta página salió de GDAL el 11 de septiembre de 2026 — GDAL 3.13.3 "Iowa City", PROJ 9.8.1 — y no de memoria. Cuando el nombre que muestra una herramienta difiere del nombre que aparece en el WKT, mostramos los dos: esa diferencia es justo lo que convierte una búsqueda de datum en un resultado vacío.
Qué es realmente un código EPSG
Un código EPSG es un identificador de registro para un sistema de referencia de coordenadas. Un solo número representa toda una definición — datum, elipsoide, meridiano de origen, unidades y, si el CRS es proyectado, la proyección y sus parámetros. Escribir EPSG:4674 dice "grados sobre el datum SIRGAS 2000" en vez de cuarenta líneas de WKT.
Por eso "mi archivo no tiene código EPSG" es una queja tan común. El .prj de un Shapefile no guarda ningún número; guarda WKT, y que un lector logre convertir ese texto de vuelta en un código depende de qué tan bien coincida con el registro. Nuestra guía de Shapefile cubre los archivos laterales; las autoridades para los códigos son epsg.org y la documentación de PROJ.
Algunos formatos no tienen dónde poner un CRS, y se asume uno por defecto en silencio. Corré ogrinfo -so -al sobre un GeoJSON pelado y OGR reporta GEOGCRS["WGS 84" con ID["EPSG",4326] — nada en el archivo lo decía. En Brasil eso es peligroso porque casi funciona: SIRGAS 2000 y WGS 84 coinciden con un margen muy por debajo del metro, así que el punto de partida equivocado igual parece correcto.
Una propiedad para internalizar de entrada: los códigos EPSG son densos, no dispersos. Un error de un solo dígito suele caer en otro CRS válido en cualquier otra parte del mundo. EPSG:4674 es SIRGAS 2000; EPSG:4675 es GEOGCS["Guam 1963". Nadie te avisa — tus datos simplemente se mueven de lugar.
El conjunto brasileño: SIRGAS 2000, SAD 69 y Córrego Alegre
Los códigos que te vas a encontrar en datos brasileños, cada uno con el nombre que imprime GDAL. Todos están en el selector de nuestro conversor de coordenadas.
En uso actual
Estos son los códigos que elegís para un trabajo nuevo:
- EPSG:4674 —
GEOGCS["SIRGAS 2000"; grados, el marco de referencia nacional, y la respuesta correcta para cualquier cosa en latitud y longitud. - EPSG:31978 a EPSG:31985 —
PROJCS["SIRGAS 2000 / UTM zone 18S"hastaPROJCS["SIRGAS 2000 / UTM zone 25S"; metros, cubiertos zona por zona más abajo. - EPSG:5880 —
PROJCS["SIRGAS 2000 / Brazil Polyconic"; la proyección de alcance nacional, para cuando un dataset cubre todo el país y ninguna zona UTM aislada alcanza. Su hermana en Mercator, EPSG:5641, esPROJCS["SIRGAS 2000 / Brazil Mercator". - EPSG:32722, EPSG:32723, EPSG:32724 —
PROJCS["WGS 84 / UTM zone 22S"y sus vecinas 23S y 24S; la misma grilla sobre el datum WGS 84, que es lo que te entrega un receptor GPS.
El legado que heredás
Estos códigos no se eligen; se heredan, casi siempre de algo digitalizado antes de 2005. El conversor marca cada uno como — legacy.
- EPSG:4618 —
GEOGCS["SAD69"en el WKT, sin espacio. El selector muestraSAD 69 — legacy (EPSG:4618), con espacio, así que buscar la etiqueta de la interfaz dentro de un.prjno encuentra nada. - EPSG:29192 y EPSG:29193 —
PROJCS["SAD69 / UTM zone 22S"yPROJCS["SAD69 / UTM zone 23S"; el par UTM viejo para el sureste densamente poblado. - EPSG:29101 —
PROJCS["SAD69 / Brazil Polyconic"; el antecesor de 5880, y la razón por la que un mapa nacional viejo queda desplazado decenas de metros. - EPSG:4225 —
GEOGCS["Corrego Alegre 1970-72". El WKT de GDAL no lleva ningún acento; la etiqueta del selector escribeCórrego Alegre 1970-72 — legacy (EPSG:4225), y este artículo escribe Córrego Alegre con tilde en la prosa. Buscá en el.prjla cadena sin acento.
Los dos códigos globales
Otros dos aparecen en todo proyecto, sea cual sea el país:
- EPSG:4326 —
GEOGCS["WGS 84"; grados, la lengua franca del GPS y del GeoJSON. - EPSG:3857 —
PROJCS["WGS 84 / Pseudo-Mercator"; en lo que se renderiza todo mapa web, y un mal lugar para calcular cualquier cosa.
Las unidades de EPSG:3857 no son metros. Son metros solo en el ecuador, y el error crece con la latitud. Medido en São Paulo el 11 de septiembre de 2026, dos puntos en latitud -23.5505 y separados 0.1° en longitud quedan a 11,131.949 unidades de distancia en 3857 contra una distancia geodésica real de 10,210.207 m — una sobreestimación del 9.03%, 921.7 m sobre una línea de 10.2 km. La razón, 1.09028, coincide casi exactamente con 1/cos(23.5505°), es decir 1.09086. El mismo par en EPSG:31983 da 10,209.419 m de distancia, a 0.788 m de la geodésica, el efecto esperado del factor de escala 0.9996 de UTM. Medí en UTM o en la Polyconic; renderizá en 3857.
Cómo elegir una zona UTM en Brasil
Los códigos UTM de SIRGAS 2000 son contiguos, así que hay una regla en vez de una tabla de consulta: 31977 + (zone - 17), cubriendo las zonas 17S a 25S. GDAL lo confirma — gdalsrsinfo -o proj4 EPSG:31983 imprime +proj=utm +zone=23 +south. No extrapoles más allá del bloque: EPSG:31986 no es la zona 26S, es PROJCS["SIRGAS 1995 / UTM zone 17N" — otro datum, el otro hemisferio.
Las listas de abajo se calcularon el 11 de septiembre de 2026 a partir de los límites estatales de máxima calidad del IBGE, vía la API de malhas enlazada al final. Un estado aparece bajo cada zona que su límite toca, no la única zona que le asignaría una tabla resumida.
Zona por zona
Cada zona lista los estados cuyo límite entra en ella:
- Zona 18S — EPSG:31978 — oeste de Acre, oeste de Amazonas. El punto más occidental de Brasil está en unos 73.99°O, dentro de la zona 18, así que ningún estado brasileño llega a la zona 17S;
EPSG:31977se ofrece para el resto de la cobertura continental de SIRGAS 2000. - Zona 19S — EPSG:31979 — este de Acre incluyendo Rio Branco, centro de Amazonas, oeste de Rondônia.
- Zona 20S — EPSG:31980 — Amazonas, la mayor parte de Rondônia y Roraima, oeste de Mato Grosso.
- Zona 21S — EPSG:31981 — este de Amazonas, Rondônia y Roraima, Mato Grosso, y los bordes occidentales de Pará, Amapá, Mato Grosso do Sul, Paraná y Rio Grande do Sul.
- Zona 22S — EPSG:31982 — Santa Catarina entera, más Paraná, Rio Grande do Sul, Mato Grosso do Sul, este de Mato Grosso, Goiás, Pará, este de Amapá, y los bordes occidentales de Distrito Federal, São Paulo, Tocantins y Minas Gerais, más la franja occidental de Maranhão.
- Zona 23S — EPSG:31983 — São Paulo incluyendo la capital, casi todo Maranhão, la mayor parte de Minas Gerais, este de Distrito Federal, Goiás, Tocantins y Pará, oeste de Piauí, Bahia y Rio de Janeiro.
- Zona 24S — EPSG:31984 — Ceará y Sergipe enteros, Espírito Santo, este de Bahia, Piauí, Minas Gerais y Rio de Janeiro, y el interior de Rio Grande do Norte, Paraíba, Pernambuco y Alagoas, más la franja oriental de Maranhão.
- Zona 25S — EPSG:31985 — la punta este del Nordeste, al este de 36°O: Natal, João Pessoa, Recife y Maceió, más Fernando de Noronha.
Los estados que abarcan dos zonas, o más
Algunos estados se niegan a quedar en una sola zona, y son esos los casos que generan discusión:
- Amazonas abarca cuatro zonas — de 18S a 21S. No existe "la zona UTM de Amazonas"; un dataset a nivel estado completo usa una proyección nacional o se queda en grados.
- Pará, Mato Grosso, Minas Gerais y Maranhão abarcan tres cada uno. Las dos zonas extremas de Maranhão son delgadas: el grueso está en 23S, con un borde occidental en 22S y uno oriental en 24S.
- Distrito Federal abarca dos, igual que el municipio de Brasília solo: su límite va de 48.29°O a 47.31°O, a caballo de la línea de 48°O entre
EPSG:31982yEPSG:31983. - Solo tres estados están en una única zona — Santa Catarina en 22S, Ceará y Sergipe en 24S.
- Las islas del Atlántico se salen de la serie. La malla del IBGE para el municipio de Vitória incluye tierra a 28.85°O, el grupo de Trindade y Martim Vaz, en zona 26S — más allá del último código UTM de SIRGAS 2000 ofrecido.
- Cuando un dataset cruza zonas, dejá de elegir una zona.
EPSG:5880cubre el país entero en un sistema proyectado;EPSG:4674lo mantiene en grados hasta que algo necesite metros.
El conjunto latinoamericano
El mismo conversor de coordenadas mueve un punto entre cualquiera de estos y el conjunto brasileño. Varios son nombres que parecen correctos y no lo son, así que se imprime la cadena de GDAL para cada uno.
Colombia
Colombia funciona con MAGNA-SIRGAS, en dos códigos fáciles de confundir:
- EPSG:4686 —
GEOGCS["MAGNA-SIRGAS"; geográfico, el marco nacional. - EPSG:9377 —
PROJCS["MAGNA-SIRGAS 2018 / Origen-Nacional". Quedate con el 2018: es una realización de datum distinta, no una versión proyectada de 4686. En el WKT, el datum de 9377 llevaAUTHORITY["EPSG","1329"]mientras que el de 4686 llevaAUTHORITY["EPSG","6686"].
Argentina
El par argentino separa el marco geográfico de la grilla:
- EPSG:5340 —
GEOGCS["POSGAR 2007"; geográfico, en grados. No es la grilla argentina, y llamarlo así es el error más común que se comete con este código. - EPSG:5343 y EPSG:5349 —
PROJCS["POSGAR 2007 / Argentina 1"yPROJCS["POSGAR 2007 / Argentina 7"; las fajas Gauss-Krüger, y las que están en metros.
Chile
Chile tiene un código ofrecido y un vecino que no es el mismo marco:
- EPSG:5360 —
GEOGCS["SIRGAS-Chile 2002". Notá el 2002. La realización de 2016 es un código distinto,EPSG:9153, que GDAL nombraGEOGCS["SIRGAS-Chile 2016"y que el conversor no ofrece. Renombrar 5360 como "2016" mezcla dos marcos distintos.
México
México repite la misma división entre geográfico y proyectado:
- EPSG:6365 —
GEOGCS["Mexico ITRF2008"; geográfico, en grados, y tampoco una grilla. - EPSG:6362 —
PROJCS["Mexico ITRF92 / LCC"; la cónica conforme de Lambert, la proyectada del par.
El marco continental
Un código abarca el continente, más el vecino con el que se lo confunde:
- EPSG:4170 —
GEOGCS["SIRGAS 1995"; la primera realización continental de SIRGAS, geográfica, que te vas a encontrar en datasets regionales archivados y no algo que se elija para trabajo nuevo. - No es el marco de Uruguay. SIRGAS-ROU98 es
EPSG:5381,GEOGCS["SIRGAS-ROU98", y su grillaEPSG:5382,PROJCS["SIRGAS-ROU98 / UTM zone 21S". El conversor no ofrece ninguno de los dos.
Cómo convertir entre ellos: SIRGAS 2000, WGS 84 y UTM
En el navegador
Pegá una coordenada en el conversor de coordenadas, elegí un CRS, y leé todas las demás representaciones del mismo punto: grados decimales, DMS, este y norte en UTM, WKT, EWKT y WKB. Corre enteramente en la página. Cuatro cosas valen la pena saber.
- Ofrece 42 códigos en cinco grupos, y todos los códigos de los conjuntos brasileño y latinoamericano de arriba están entre ellos. Los cuatro que este artículo nombra solo para advertirte —
EPSG:4675,EPSG:9153,EPSG:5381yEPSG:5382— están deliberadamente ausentes, igual queEPSG:31986. - Los nombres de los grupos están en inglés en todos los idiomas.
Global,Brasil,Latin America,EuropeyNorth Americaestán fijos en el código, así que las versiones en portugués y en español muestran esas mismas cinco palabras. - Las etiquetas de las opciones también están fijas. Por eso
SAD 69 — legacy (EPSG:4618)ySIRGAS-Chile 2002 — Chile (EPSG:5360)se leen igual en los tres idiomas. La marca— legacyes una señal: datums que te encontrás, no datums que elegís. - No hay enlace directo (deep link). La página no lee nada de la query string, así que una URL con una coordenada pegada al final abre un formulario vacío.
En la línea de comandos
Recurrí a la línea de comandos cuando tenés un archivo o mil puntos — no porque falte algo en el selector. Las transcripciones de abajo corrieron el 11 de septiembre de 2026, todas sobre un mismo punto: Praça da Sé, São Paulo, en -23.5505, -46.6333.
- cs2cs —
echo "-23.5505 -46.6333" | cs2cs -f "%.3f" EPSG:4674 EPSG:31983imprime333287.915 7394588.319 0.000. Hacia la Polyconic,cs2cs -f "%.3f" EPSG:4674 EPSG:5880imprime5751824.537 7375179.974 0.000. - El orden de los ejes es la trampa. Dado un código
EPSG:, PROJ respeta el orden de ejes de la autoridad, así que la entrada paraEPSG:4674es latitud y después longitud. Si le das longitud y latitud, obtenés una respuesta silenciosamente equivocada, no un error. - gdaltransform usa el orden contrario.
echo "-46.6333 -23.5505" | gdaltransform -s_srs EPSG:4674 -t_srs EPSG:31983imprime333287.91510143 7394588.31863695 0— el mismo punto al milímetro, la misma cadena de herramientas, la entrada invertida. - ogr2ogr para el archivo —
ogr2ogr -s_srs EPSG:4674 -t_srs EPSG:31983 -f GeoJSON out.geojson in.geojsonescribe"name": "urn:ogc:def:crs:EPSG::31983"y el mismo este y norte. El-s_srses lo que lo hace correcto sobre un GeoJSON, que no lleva CRS propio. - Revisá las versiones antes de confiar en una transcripción —
gdalinfo --versionimprimeGDAL 3.13.3 "Iowa City", released 2026/08/13. Para PROJ usács2cs 2>&1 | head -1, que imprimeRel. 9.8.1, April 10th, 2026, porquecs2cs --versionsale con un estado de error.
Archivos de prueba que podés usar
Cada línea de abajo se verificó el 11 de septiembre de 2026 con un user agent de navegador, desde una sola máquina. Un código de estado es orientativo: una fuente que responde para nosotros puede rechazarte a vos.
- El registro EPSG — epsg.org respondió 200; buscá por código o por área. El dominio pelado redirige con un 302, así que enlazá la página, no el origen. El dataset está disponible sin costo, y la propiedad de IOGP "debe reconocerse en cualquier publicación o transmisión" según sus términos.
- Documentación de PROJ — proj.org respondió 200 con un encabezado CORS abierto, y el dominio pelado también es un 302 hacia ahí. PROJ se distribuye bajo la licencia X/MIT, y la página de la Mercator transversa respondió 200.
- API de malhas del IBGE, un archivo y no un portal — el límite de Brasil como GeoJSON respondió 200 con
access-control-allow-origin: *, así que funciona desde una página web y también como descarga. Agregá&intrarregiao=UFpara las mallas estatales de las que salieron las listas por zona. La página de la API no declara licencia — dale crédito al IBGE y revisá los términos del portal antes de republicar. - Portal de descargas del IBGE — downloads-geociencias respondió 403 a nuestro script, y también a un user agent de navegador, detrás de una interstitial de Cloudflare — un desafío que una persona resuelve de forma interactiva y un script no. Descargá desde ahí en un navegador; no lo llames desde una aplicación web. Un filtro de bots, no un enlace muerto.
- INEGI, México — inegi.org.mx/temas/mapas respondió 200 a un user agent de navegador sin encabezado CORS: descargá desde ahí, no lo llames desde una aplicación web.
- IGAC, Colombia — igac.gov.co respondió 200 y publica a través de una sección de datos abiertos, con los términos de uso enlazados en el pie de página. Una advertencia: su subdominio de geoportal no respondió en absoluto, con un timeout de 10.3 segundos en dos user agents distintos. Puede que solo se pueda acceder desde dentro de Colombia.
- Servidor de archivos del IBGE — geoftp.ibge.gov.br respondió 200 sobre https con un encabezado CORS abierto, y guarda los productos cartográficos masivos.
Quedate con el hábito detrás de la página: antes de escribir un código en cualquier lado, preguntale al software qué significa. gdalsrsinfo -o wkt1 EPSG:5360 dice 2002, no 2016. Si tu próximo archivo es un ráster y no una lista de puntos, la misma disciplina vale para cómo están organizados sus bytes: nuestra guía de Cloud Optimized GeoTIFF hace con el layout lo que esta página hace con los códigos, y Geodocs se ocupa de los dos para un equipo de campo.