Atlas
Librería Python para FastAPI que publica tablas y vistas de PostGIS como capas geográficas vía WMS y WFS, con API de consulta, filtrado, descarga y exportación de mapas.
Sin GeoServer. Sin proceso aparte. Es una librería que vive dentro de tu aplicación.
Estado: v0.1.0 — MVP disponible como release en GitHub. Ver roadmap.
Instalación
pip install atlas-geo # núcleo: WMS, WFS, API, GeoJSON, CSV
pip install atlas-geo[export] # + GeoPackage y Shapefile
Requiere Python 3.11+ y PostgreSQL 14+ con PostGIS 3.
Uso
from fastapi import FastAPI
from atlas import Atlas
app = FastAPI()
geo = Atlas(database_url="postgresql://user:pass@localhost/gis")
@app.on_event("startup")
async def startup() -> None:
await geo.startup()
await geo.register_layer("geo.municipios", title="Municipios de Jalisco")
app.include_router(geo.router)
Eso publica, para cada capa registrada:
| Endpoint | Qué hace |
|---|---|
GET /atlas/layers |
Catálogo de capas |
GET /atlas/layers/{layer} |
Metadatos: atributos, CRS, extent, formatos |
GET /atlas/layers/{layer}/download?format=geojson |
Descarga, con filtros |
GET /atlas/wms?REQUEST=GetMap&... |
Imagen PNG/JPEG de la capa |
GET /atlas/wms?REQUEST=GetFeatureInfo&... |
Atributos del elemento en un píxel |
GET /atlas/wfs?REQUEST=GetFeature&... |
Features en GeoJSON |
POST /atlas/maps/export |
Mapa compuesto como imagen |
El esquema, la columna de geometría, el SRID, la llave primaria, los atributos y el extent se descubren solos por introspección: solo hace falta el nombre de la tabla.
Filtros
Misma sintaxis en WFS y en descargas:
/atlas/layers/municipios/download?format=csv&poblacion__gt=100000&estado=Jalisco
Operadores: eq ne gt gte lt lte in like, más bbox. Los nombres de columna se
validan contra los atributos reales de la capa y los valores van parametrizados — nunca se
concatena SQL. Ver security.md.
Documentación
| Documento | Para qué |
|---|---|
| architecture.md | Componentes, reglas de dependencia y flujo de una petición |
| components/ | Un documento por componente: contrato, invariantes, alcance |
| security.md | Inyección SQL, autorización, límites de recursos |
| conventions.md | Estilo de código, SQL, tests, commits |
| roadmap.md | Qué entra en cada versión y qué no entra nunca |
| adr/ | Decisiones técnicas y alternativas descartadas |
| requirements.md | Manual de requerimientos original |
| changelog.md | Cuándo y cómo se actualiza el CHANGELOG |
| CHANGELOG.md | Qué cambió en cada versión |
| CONTRIBUTING.md | Cómo se trabaja un issue |
Alcance
Atlas cubre lo que un geoportal usa de verdad, no el estándar OGC completo (ADR 0003):
Sí: PostGIS, datos vectoriales, WMS 1.3.0 (GetCapabilities, GetMap, GetFeatureInfo),
WFS 2.0.0 de lectura (GetCapabilities, DescribeFeatureType, GetFeature), GeoJSON, CSV,
GeoPackage, Shapefile, exportación PNG/JPEG.
No: WFS-T, SLD, GML completo, WPS, CSW, Oracle/MySQL/ArcSDE, Shapefile como datasource, motor propio de rendering o reproyección. WMTS, vector tiles y raster son fases posteriores.
Licencia
MIT
Metadata
Release files for atlas-geo 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| atlas_geo-0.1.0.tar.gz | 111.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| atlas_geo-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 169.3 kB
Release files / atlas_geo-0.1.0.tar.gz
| Download URL | atlas_geo-0.1.0.tar.gz |
|---|---|
| Size | 111.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7bf773265584872348f997967b33257c6f3663d1462b348b7bcede11ff175dd9
|
|
BLAKE2b-256 checksum How to use checksums |
dc372ba94bc48649f3f587fddcc36aae2deef3047b8c8b5f105cb5a653eec4db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / atlas_geo-0.1.0-py3-none-any.whl
| Download URL | atlas_geo-0.1.0-py3-none-any.whl |
|---|---|
| Size | 57.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4588b6a8c288ccb5fea27c3ce590ad713cd1a13b0178330e32a9a5f65d7d7f8
|
|
BLAKE2b-256 checksum How to use checksums |
e33120f8f4e79b406f9e47f883ea88ff1a293fb1c0c1c0e3162dadfaa3634ab9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency log