Skip to main content

Detecta edificios en régimen de propiedad vertical a partir de datos abiertos del Catastro español (formato CAT + shapefile).

Project description

Buscador de Propiedad Vertical en el Catastro español

Herramienta de línea de comandos que identifica edificios de viviendas en régimen de propiedad vertical a partir de los datos abiertos del Catastro español (fichero alfanumérico .CAT + shapefile de parcelas).

¿Qué es la propiedad vertical?

En una finca de propiedad vertical el edificio pertenece a un único titular: los distintos pisos no tienen referencia catastral individualizada. En el fichero CAT esto se traduce en que la parcela tiene un único registro de inmueble (tipo 15) de uso residencial, a diferencia de una comunidad de propietarios normal, donde existe un registro tipo 15 por cada piso o local.

Fuentes de datos

Los datos se descargan gratuitamente (con Cl@ve o certificado digital) desde:

  • Fichero alfanumérico .CATSede Electrónica del Catastro → "Descarga de información alfanumérica por provincia (formato CAT)"
  • Cartografía vectorial (shapefile) — misma página → "Descarga de cartografía vectorial por provincia (formato Shapefile)" → capa PARCELA.shp

Instalación

Opción recomendada: pipx

pipx instala herramientas de línea de comandos en entornos aislados, sin contaminar el Python del sistema:

pipx install buscador-propiedad-vertical

Con pip

pip install buscador-propiedad-vertical

Windows / macOS: las dependencias geoespaciales (geopandas, shapely) pueden fallar al instalarse con pip en estas plataformas. Si ocurre, instálalas primero con conda/mamba y luego el paquete con pip:

conda install -c conda-forge geopandas shapely contextily
pip install buscador-propiedad-vertical

Desde el repositorio (sin publicar)

pip install git+https://codeberg.org/mig42/BuscadorPropiedadVertical.git

Uso

buscador_propiedad_vertical \
    --cat  datos/47_166_U_20240101.cat \
    --shp  datos/shp/PARCELA.shp \
    --salida resultados/

Opciones

Opción Descripción Valor por defecto
--cat Ruta al fichero .CAT de Catastro (obligatorio)
--shp Ruta al shapefile PARCELA.shp (opcional; sin él no se genera mapa ni GeoJSON) None
--salida Directorio de salida (se crea si no existe) resultados/
--sup-minima Superficie construida mínima en m² para considerar un edificio 100
--zoom-mapa Nivel de zoom del mapa base (1–19). 14 = barrio, 12 = ciudad, 10 = provincia automático

Salidas generadas

Fichero Descripción
candidatos_propiedad_vertical.csv Tabla con todos los candidatos (RC, dirección, superficies, coordenadas)
candidatos_propiedad_vertical.geojson Geometría de parcelas para QGIS / uMap (requiere --shp)
mapa_propiedad_vertical.png Mapa de situación rápido (requiere --shp)

Dependencias

pandas
geopandas
shapely
matplotlib
contextily

Instálalas con pip install -r requirements.txt.

Documentación

  • Lógica de procesado — explica el pipeline completo y los criterios de detección en lenguaje no técnico.

Testing

pytest          # ejecuta todos los tests
pytest -s       # muestra la salida estándar
pytest -k _01   # ejecuta solo tests cuyo nombre contiene "_01"

Desarrollo local

Instala el paquete junto con las herramientas de desarrollo (ruff, bandit, mypy, pytest, pytest-cov):

make install

Los targets disponibles en el Makefile son:

Target Qué hace
install pip install -e ".[dev]" — instala el paquete en modo editable
lint Comprueba el estilo del código con ruff
lint-fix Aplica las correcciones automáticas de ruff
security Análisis estático de seguridad con bandit
mypy Comprueba las anotaciones de tipos con mypy
test Ejecuta los tests con pytest
coverage Ejecuta los tests y muestra el informe de cobertura
build Genera los artefactos de distribución (dist/*.whl y .tar.gz)
publish Publica en PyPI (requiere PYPI_TOKEN en el entorno)
check Lanza security + lint + mypy + test en orden (igual que el pipeline CI)

El pipeline de integración continua sigue la misma secuencia: securitylint + mypy + pyright (en paralelo) → test

Nota sobre el desarrollo

Este proyecto ha sido implementado con la asistencia de modelos de lenguaje (LLMs), bajo instrucción y supervisión de un ser humano. Todo el código ha sido revisado, validado y dirigido por el autor.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buscador_propiedad_vertical-0.1.0.tar.gz (775.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

buscador_propiedad_vertical-0.1.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file buscador_propiedad_vertical-0.1.0.tar.gz.

File metadata

File hashes

Hashes for buscador_propiedad_vertical-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1829d033c7d3f58eead5dd08b5eacb3b68a3742e324a882c621dcf1b7e1dca44
MD5 f1ca79fc96a3accda2821adde8a3ede2
BLAKE2b-256 2ad93dd200ce783339ab0a8375c73ced3ed54452b909c82f679f46a988a9e44c

See more details on using hashes here.

File details

Details for the file buscador_propiedad_vertical-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for buscador_propiedad_vertical-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b29d019a88abcd9b5a44111c8f76c0101d64411db1c63b0edaf7f026d2d8d314
MD5 59a2016b6dfc8f93d84ddc68348d0aba
BLAKE2b-256 e0b00dd261d7eb4b6ab6664c5befeba676c0ff9481d2672d634c3a6053c92b9c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page