Files
fn_registry/python/functions/geo/point_in_polygons_bbox.md
T
egutierrez faac610745 feat: extraccion masiva footprint_aurgi (41 funcs + 4 types + stack Docker geo)
Extrae al registry funciones del proyecto interno footprint_aurgi:
- core (6): slugify_ascii, normalize_for_join, cp_provincia_es, infer_provincia_from_cp, safe_read_csv_fallback, csv_to_parquet_duckdb
- geo puras (7): haversine_km, point_in_ring, point_in_polygon, point_in_polygons_bbox, polygon_bbox, extent_with_padding, distance_bucket
- geo I/O (4): load_geojson_polygons, load_boundary_gdf, add_basemap_osm, add_basemap_with_timeout
- valhalla client (4): valhalla_route, valhalla_isochrone, valhalla_isochrones_async, valhalla_matrix_1_to_n
- datascience stats (7): trimmed_mean, geometric_mean, detect_distribution_type, best_central_tendency, summary_stats, kde_density_levels, alpha_shape_concave_hull
- datascience fuzzy (3): fuzzy_merge_adaptive (rapidfuzz), words_to_dataset, remove_words_from_column
- datascience viz (2): plot_kde_2d, plot_heatmap_log
- infra (4): compress_pdf_ghostscript, render_table_page_pdfpages, add_header_logo, osm2pgsql_ingest
- pipelines (4): setup_geo_stack_docker, compute_centers_reachability, generate_isochrones_by_zone, count_points_per_zone
- types geo (4): LonLat, BBox, IsochroneRequest, Centro

Incluye:
- apps/footprint_geo_stack/ (PostGIS + Martin + Valhalla via docker-compose)
- 131/132 tests pasan (1 skip esperado: osm2pgsql en PATH)
- Issue tracker dev/issues/0052-footprint-aurgi-extraction.md
- Atribucion uniforme: source_repo internal:footprint_aurgi, source_license internal-aurgi
- Build con 9 agentes en paralelo (8 wave 1 + 1 wave 2 pipelines)

Tambien commitea trabajo previo no commiteado: aggregate_extraction_results, chunk_with_overlap, clean_pdf_text, merge_entity_aliases, extract_graph_gliner2, extract_relations_mrebel, extract_triples_spacy_es, gliner2/mrebel/marianmt/rebel/spacy_es load_model, parse_rebel_output, translate_es_to_en, issue 0050/0051.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 23:35:22 +02:00

2.1 KiB

id, name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, example, tested, tests, test_file_path, file_path, params, output, source_repo, source_license, source_file
id name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports example tested tests test_file_path file_path params output source_repo source_license source_file
point_in_polygons_bbox_py_geo point_in_polygons_bbox function py geo 1.0.0 pure point_in_polygons_bbox(lon: float, lat: float, polygons: list[list[list[tuple[float, float]]]], bboxes: list[tuple[float, float, float, float]]) -> bool Comprueba si el punto esta en CUALQUIER poligono de la lista usando prefiltraje por bounding box para mayor rendimiento.
geo
polygon
point-in-polygon
bbox
batch
point_in_polygon_py_geo
false
from geo.point_in_polygons_bbox import point_in_polygons_bbox from geo.polygon_bbox import polygon_bbox p1 = (0.0,0.0),(1.0,0.0),(1.0,1.0),(0.0,1.0) p2 = (5.0,5.0),(6.0,5.0),(6.0,6.0),(5.0,6.0) bboxes = [polygon_bbox(p1), polygon_bbox(p2)] point_in_polygons_bbox(0.5, 0.5, [p1, p2], bboxes) # True true
punto_en_primer_poligono
punto_en_segundo_poligono
punto_fuera_de_todos
python/functions/geo/tests/test_point_in_polygons_bbox.py python/functions/geo/point_in_polygons_bbox.py
name desc
lon longitud del punto a comprobar en grados decimales
name desc
lat latitud del punto a comprobar en grados decimales
name desc
polygons lista de poligonos, cada uno como lista de anillos (exterior + holes)
name desc
bboxes lista de bboxes precalculados (minx, miny, maxx, maxy) para cada poligono, en el mismo orden
True si el punto esta dentro de al menos uno de los poligonos internal:footprint_aurgi internal-aurgi zonas_mapas_aurgi/backend/app.py:745

Ejemplo

from geo.point_in_polygons_bbox import point_in_polygons_bbox
from geo.polygon_bbox import polygon_bbox

p1 = [[(0.0,0.0),(1.0,0.0),(1.0,1.0),(0.0,1.0)]]
bboxes = [polygon_bbox(p1)]
point_in_polygons_bbox(0.5, 0.5, [p1], bboxes)  # True

Notas

Los bboxes deben precalcularse con polygon_bbox y pasarse en el mismo orden que polygons.