Last active
June 19, 2026 11:01
-
-
Save nlebovits/fd3e5f9a0e5ea1eeb4c6313917fbbbbe to your computer and use it in GitHub Desktop.
Argentina informal settlement population estimation — building footprints vs RENABAP official data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python3 | |
| """ | |
| Argentina Informal Settlement Population Estimation — end-to-end. | |
| Runs the full pipeline in one shot, with per-phase timing: | |
| download -> geoparquet-io optimization -> spatial-join query -> export | |
| Estimates household counts in informal settlements by joining satellite-derived | |
| building footprints to official RENABAP settlement boundaries. | |
| Logic: max(building_count × occupation_rate × 1.1, renabap_families) per settlement. | |
| - 1.1 = RENABAP's families-per-dwelling multiplier (SISU 2023a pp. 14-15) | |
| - Occupation rate discounts building counts only (familias_aproximadas is enumerated) | |
| Includes sensitivity analysis across: | |
| - Building size filters (none, ≥6m², ≥10m²) | |
| - Occupation rates (85%, 90%, 95%, 100%) | |
| - Population multipliers (2.8, 3.35) | |
| Data sources: | |
| - RENABAP boundaries: argentina.gob.ar GeoJSON (downloaded, then gpio-optimized) | |
| - Buildings: Google/MS/OSM Open Buildings via VIDA on Source Cooperative | |
| (downloaded, then gpio-optimized: bbox column + Hilbert order + ideal row groups) | |
| - Urban areas: IGN Planta Urbana polygons (local file; see URBAN_AREAS_PATH) | |
| Optimization rationale: the raw VIDA national file is not spatially organized for a | |
| join like this. gpio re-writes it with a bbox column, Hilbert-curve row ordering, and | |
| ideal row-group sizes so DuckDB can prune row groups during the spatial join. | |
| Output: | |
| - Per-settlement GeoJSON: ~/Documents/settlement_estimates.geojson | |
| - Summary markdown: ~/Documents/settlement_analysis_summary.md | |
| Run with: pixi run python estimate.py | |
| """ | |
| import time | |
| from contextlib import contextmanager | |
| from pathlib import Path | |
| from datetime import datetime | |
| import requests | |
| import duckdb | |
| import geoparquet_io as gpio | |
| # --------------------------------------------------------------------------- # | |
| # Paths | |
| # --------------------------------------------------------------------------- # | |
| DATA_DIR = Path(__file__).resolve().parent / "data" | |
| DOWNLOADS = Path.home() / "Downloads" | |
| # RENABAP: downloaded GeoJSON, then gpio-optimized parquet | |
| RENABAP_GEOJSON = DATA_DIR / "renabap-2023-12-06.geojson" | |
| RENABAP_PATH = DATA_DIR / "renabap.parquet" | |
| # Buildings: raw VIDA national file (cached download), then gpio-optimized parquet | |
| BUILDINGS_RAW = DOWNLOADS / "ARG.parquet" | |
| BUILDINGS_PATH = DATA_DIR / "buildings_arg.parquet" | |
| # Urban areas: local-only (no public URL wired). if-not-exists guard below. | |
| URBAN_AREAS_PATH = DOWNLOADS / "areas_de_asentamientos_y_edificios_020105.parquet" | |
| OUTPUT_GEOJSON = Path.home() / "Documents/settlement_estimates.geojson" | |
| OUTPUT_MD = Path.home() / "Documents/settlement_analysis_summary.md" | |
| # --------------------------------------------------------------------------- # | |
| # Download sources | |
| # --------------------------------------------------------------------------- # | |
| RENABAP_URL = ( | |
| "https://www.argentina.gob.ar/sites/default/files/renabap-2023-12-06.geojson" | |
| ) | |
| VIDA_URL = ( | |
| "https://data.source.coop/vida/google-microsoft-open-buildings/" | |
| "geoparquet/by_country/country_iso=ARG/ARG.parquet" | |
| ) | |
| # --------------------------------------------------------------------------- # | |
| # Sensitivity analysis parameters | |
| # --------------------------------------------------------------------------- # | |
| BUILDING_SIZE_FILTERS = [ | |
| (None, "No filter"), | |
| (6, "≥6 m²"), | |
| (10, "≥10 m²"), | |
| ] | |
| OCCUPATION_RATES = [0.85, 0.90, 0.95, 1.00] | |
| POP_MULTIPLIERS = [2.8, 3.35] | |
| # Argentina total population (2022 census) | |
| ARGENTINA_POP = 46_700_000 | |
| # --------------------------------------------------------------------------- # | |
| # Timing | |
| # --------------------------------------------------------------------------- # | |
| TIMINGS: dict[str, float] = {} | |
| @contextmanager | |
| def timed(label: str): | |
| """Time a pipeline phase, record it, and report start/finish.""" | |
| print(f"\n▶ {label} ...") | |
| t0 = time.perf_counter() | |
| yield | |
| dt = time.perf_counter() - t0 | |
| TIMINGS[label] = dt | |
| print(f"✓ {label} — {dt:,.1f}s") | |
| def _fmt_bytes(n: int) -> str: | |
| for unit in ("B", "KB", "MB", "GB", "TB"): | |
| if n < 1024 or unit == "TB": | |
| return f"{n:,.1f} {unit}" | |
| n /= 1024 | |
| def _stream_download(url: str, dest: Path) -> None: | |
| """Stream a (possibly large) file to disk with light progress reporting.""" | |
| dest.parent.mkdir(parents=True, exist_ok=True) | |
| tmp = dest.with_suffix(dest.suffix + ".part") | |
| with requests.get( | |
| url, headers={"User-Agent": "Mozilla/5.0"}, stream=True, timeout=300 | |
| ) as r: | |
| r.raise_for_status() | |
| total = int(r.headers.get("content-length", 0)) | |
| done = 0 | |
| next_mark = 0.10 | |
| with open(tmp, "wb") as f: | |
| for chunk in r.iter_content(chunk_size=8 * 1024 * 1024): | |
| if not chunk: | |
| continue | |
| f.write(chunk) | |
| done += len(chunk) | |
| if total and done / total >= next_mark: | |
| print(f" {done / total:5.0%} ({_fmt_bytes(done)})") | |
| next_mark += 0.10 | |
| tmp.rename(dest) | |
| print(f" saved {_fmt_bytes(dest.stat().st_size)} -> {dest}") | |
| # --------------------------------------------------------------------------- # | |
| # Phase 1+2: download + gpio optimization | |
| # --------------------------------------------------------------------------- # | |
| def prepare_renabap() -> None: | |
| """Download RENABAP GeoJSON (cached) and write an optimized GeoParquet.""" | |
| with timed("Download RENABAP boundaries"): | |
| if RENABAP_GEOJSON.exists(): | |
| print(f" cached: {RENABAP_GEOJSON}") | |
| else: | |
| _stream_download(RENABAP_URL, RENABAP_GEOJSON) | |
| with timed("Optimize RENABAP (gpio: bbox + Hilbert)"): | |
| if RENABAP_PATH.exists(): | |
| print(f" cached: {RENABAP_PATH}") | |
| else: | |
| ( | |
| gpio.convert(str(RENABAP_GEOJSON)) | |
| .add_bbox() | |
| .sort_hilbert() | |
| .write(str(RENABAP_PATH), geoparquet_version="1.1", overwrite=True) | |
| ) | |
| def prepare_buildings() -> None: | |
| """Download the national VIDA buildings file (cached) and gpio-optimize it.""" | |
| with timed("Download VIDA national buildings"): | |
| if BUILDINGS_RAW.exists(): | |
| print(f" cached: {BUILDINGS_RAW} ({_fmt_bytes(BUILDINGS_RAW.stat().st_size)})") | |
| else: | |
| print(" not found locally — downloading from VIDA (Source Cooperative)") | |
| _stream_download(VIDA_URL, BUILDINGS_RAW) | |
| with timed("Optimize buildings (gpio: bbox + Hilbert + row groups)"): | |
| if BUILDINGS_PATH.exists(): | |
| print(f" cached: {BUILDINGS_PATH}") | |
| else: | |
| ( | |
| gpio.read(str(BUILDINGS_RAW)) | |
| .add_bbox() | |
| .sort_hilbert() | |
| .write(str(BUILDINGS_PATH), geoparquet_version="1.1", overwrite=True) | |
| ) | |
| def check_urban_areas() -> None: | |
| """Urban-areas layer has no wired download URL; guard for the local file.""" | |
| if not URBAN_AREAS_PATH.exists(): | |
| raise FileNotFoundError( | |
| f"Urban-areas file not found: {URBAN_AREAS_PATH}\n" | |
| "No public download URL is wired for this layer. Place the IGN " | |
| "Planta Urbana parquet at the path above (or update URBAN_AREAS_PATH)." | |
| ) | |
| print(f" urban areas: {URBAN_AREAS_PATH}") | |
| # --------------------------------------------------------------------------- # | |
| # Phase 3: spatial-join query + sensitivity analysis | |
| # --------------------------------------------------------------------------- # | |
| def run_analysis() -> dict: | |
| """Run the spatial joins, sensitivity sweep, and breakdowns. Returns results.""" | |
| con = duckdb.connect() | |
| con.execute("INSTALL spatial; LOAD spatial;") | |
| print(" spatial joins (settlements × urban areas × buildings)...") | |
| # Step 1: Flag settlements that intersect urban areas | |
| con.execute(f""" | |
| CREATE TABLE settlements_with_urban AS | |
| SELECT | |
| s.id_renabap, | |
| s.nombre_barrio as nombre, | |
| s.provincia, | |
| s.departamento, | |
| s.localidad, | |
| s.familias_aproximadas, | |
| s.geometry, | |
| CASE WHEN COUNT(u.geometry) > 0 THEN TRUE ELSE FALSE END as is_urban | |
| FROM '{RENABAP_PATH}' s | |
| LEFT JOIN '{URBAN_AREAS_PATH}' u | |
| ON ST_Intersects( | |
| ST_SetCRS(s.geometry, 'EPSG:4326'), | |
| ST_SetCRS(u.geometry, 'EPSG:4326') | |
| ) | |
| GROUP BY | |
| s.id_renabap, s.nombre_barrio, s.provincia, s.departamento, | |
| s.localidad, s.familias_aproximadas, s.geometry | |
| """) | |
| # Step 2: Spatial join with buildings (all buildings, no filter yet) | |
| # We'll filter by size later for sensitivity analysis | |
| con.execute(f""" | |
| CREATE TABLE settlement_buildings_raw AS | |
| SELECT | |
| s.id_renabap, | |
| s.nombre, | |
| s.provincia, | |
| s.departamento, | |
| s.localidad, | |
| s.familias_aproximadas, | |
| s.geometry, | |
| s.is_urban, | |
| b.area_in_meters as building_area | |
| FROM settlements_with_urban s | |
| LEFT JOIN '{BUILDINGS_PATH}' b | |
| ON ST_Intersects( | |
| ST_SetCRS(b.geometry, 'EPSG:4326'), | |
| ST_SetCRS(s.geometry, 'EPSG:4326') | |
| ) | |
| """) | |
| print(" sensitivity sweep across building-size filters...") | |
| # Step 3: Build aggregated table for each size filter | |
| # Logic: max(buildings, renabap_families) per settlement | |
| sensitivity_results = [] | |
| for min_area, filter_label in BUILDING_SIZE_FILTERS: | |
| area_filter = f"AND building_area >= {min_area}" if min_area else "" | |
| # Aggregate building counts per settlement with this filter | |
| con.execute(f""" | |
| CREATE OR REPLACE TABLE settlement_buildings AS | |
| SELECT | |
| id_renabap, | |
| nombre, | |
| provincia, | |
| departamento, | |
| localidad, | |
| familias_aproximadas, | |
| geometry, | |
| is_urban, | |
| COUNT(building_area) as building_count | |
| FROM settlement_buildings_raw | |
| WHERE 1=1 {area_filter} | |
| GROUP BY | |
| id_renabap, nombre, provincia, departamento, localidad, | |
| familias_aproximadas, geometry, is_urban | |
| """) | |
| # For each occupation rate and pop multiplier, calculate estimates | |
| # estimated_families depends on occupation_rate, so computed per scenario | |
| for occ_rate in OCCUPATION_RATES: | |
| total_buildings = int(con.execute("SELECT SUM(building_count) FROM settlement_buildings").fetchone()[0]) | |
| renabap_households = int(con.execute("SELECT SUM(familias_aproximadas) FROM settlement_buildings").fetchone()[0]) | |
| # Apply methodology fix: | |
| # - building_count * occ_rate * 1.1 (occupancy + families-per-dwelling multiplier) | |
| # - familias_aproximadas unchanged (already enumerated families, no discount) | |
| # - max() selects higher of the two per settlement | |
| est_households = float(con.execute(f""" | |
| SELECT SUM( | |
| CASE | |
| WHEN building_count * {occ_rate} * 1.1 > familias_aproximadas | |
| THEN building_count * {occ_rate} * 1.1 | |
| ELSE familias_aproximadas | |
| END | |
| ) | |
| FROM settlement_buildings | |
| """).fetchone()[0]) | |
| for pop_mult in POP_MULTIPLIERS: | |
| est_pop = est_households * pop_mult | |
| renabap_pop = renabap_households * pop_mult | |
| sensitivity_results.append({ | |
| 'size_filter': filter_label, | |
| 'min_area': min_area, | |
| 'occupation': occ_rate, | |
| 'pop_multiplier': pop_mult, | |
| 'total_buildings': total_buildings, | |
| 'est_households': int(est_households), | |
| 'renabap_households': renabap_households, | |
| 'est_population': int(est_pop), | |
| 'renabap_population': int(renabap_pop), | |
| 'pct_of_argentina': est_pop / ARGENTINA_POP * 100, | |
| }) | |
| print(f" completed {len(sensitivity_results)} sensitivity scenarios") | |
| # Step 4: Rebuild final table with no filter for exports and validation | |
| con.execute(f""" | |
| CREATE OR REPLACE TABLE settlement_buildings AS | |
| SELECT | |
| id_renabap, | |
| nombre, | |
| provincia, | |
| departamento, | |
| localidad, | |
| familias_aproximadas, | |
| geometry, | |
| is_urban, | |
| COUNT(building_area) as building_count | |
| FROM settlement_buildings_raw | |
| GROUP BY | |
| id_renabap, nombre, provincia, departamento, localidad, | |
| familias_aproximadas, geometry, is_urban | |
| """) | |
| # Apply 1.1 multiplier (baseline: 100% occupation for exports) | |
| # DOUBLE because building_count * 1.1 is no longer whole-number | |
| con.execute(""" | |
| ALTER TABLE settlement_buildings ADD COLUMN estimated_families DOUBLE; | |
| UPDATE settlement_buildings | |
| SET estimated_families = CASE | |
| WHEN building_count * 1.1 > familias_aproximadas THEN building_count * 1.1 | |
| ELSE familias_aproximadas | |
| END | |
| """) | |
| # Validation: % where buildings vs RENABAP was used, by urban intersection | |
| # Uses multiplier-adjusted comparison (building_count * 1.1) | |
| print(" source breakdown by urban intersection...") | |
| validation_by_urban = con.execute(""" | |
| SELECT | |
| is_urban, | |
| COUNT(*) as n_settlements, | |
| SUM(CASE WHEN building_count * 1.1 > familias_aproximadas THEN 1 ELSE 0 END) as used_buildings, | |
| SUM(CASE WHEN building_count * 1.1 <= familias_aproximadas THEN 1 ELSE 0 END) as used_renabap, | |
| ROUND(SUM(CASE WHEN building_count * 1.1 > familias_aproximadas THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) as pct_used_buildings, | |
| ROUND(SUM(CASE WHEN building_count * 1.1 <= familias_aproximadas THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) as pct_used_renabap | |
| FROM settlement_buildings | |
| WHERE building_count > 0 | |
| GROUP BY is_urban | |
| ORDER BY is_urban DESC | |
| """).fetchdf() | |
| print("\nSource breakdown by urban intersection:") | |
| print(validation_by_urban.to_string(index=False)) | |
| # Aglomerado tier analysis | |
| print("\n aglomerado tier breakdown...") | |
| # Define conurbano partidos | |
| CONURBANO_PARTIDOS = [ | |
| 'La Matanza', 'Lomas de Zamora', 'Quilmes', 'Moreno', 'Merlo', | |
| 'General San Martín', 'Esteban Echeverría', 'Almirante Brown', | |
| 'Florencio Varela', 'Lanús', 'José C. Paz', 'Tigre', 'Avellaneda', | |
| 'San Miguel', 'Malvinas Argentinas', 'San Isidro', 'Berazategui', | |
| 'Hurlingham', 'Ituzaingó', 'Morón', 'Tres de Febrero', 'Vicente López', | |
| 'San Fernando', 'Pilar', 'Escobar', 'Presidente Perón', 'José M. Ezeiza' | |
| ] | |
| con.execute(f""" | |
| ALTER TABLE settlement_buildings ADD COLUMN aglomerado_tier VARCHAR; | |
| UPDATE settlement_buildings | |
| SET aglomerado_tier = CASE | |
| WHEN provincia = 'Ciudad Autónoma de Buenos Aires' THEN 'CABA' | |
| WHEN provincia = 'Buenos Aires' AND departamento IN ({','.join(f"'{p}'" for p in CONURBANO_PARTIDOS)}) | |
| THEN 'Conurbano-AMBA' | |
| WHEN (provincia = 'Buenos Aires' AND departamento = 'La Plata') | |
| OR (provincia = 'Buenos Aires' AND departamento = 'General Pueyrredón') | |
| OR (provincia = 'Santa Fe' AND departamento = 'Rosario') | |
| OR (provincia = 'Córdoba' AND departamento = 'Capital') | |
| OR (provincia = 'Mendoza' AND departamento IN ('Capital', 'Godoy Cruz', 'Guaymallén', 'Las Heras', 'Maipú')) | |
| OR (provincia = 'Tucumán' AND departamento = 'Capital') | |
| THEN 'Other Gran Aglomerados' | |
| ELSE 'Outside Aglomerados' | |
| END | |
| """) | |
| by_aglomerado = con.execute(""" | |
| SELECT | |
| aglomerado_tier, | |
| COUNT(*) as n_settlements, | |
| SUM(CASE WHEN familias_aproximadas > building_count * 1.1 THEN 1 ELSE 0 END) as renabap_higher, | |
| SUM(CASE WHEN building_count * 1.1 > familias_aproximadas THEN 1 ELSE 0 END) as footprints_higher, | |
| ROUND(MEDIAN(building_count * 1.1 / NULLIF(familias_aproximadas, 0)), 2) as median_ratio | |
| FROM settlement_buildings | |
| WHERE building_count > 0 | |
| GROUP BY aglomerado_tier | |
| ORDER BY | |
| CASE aglomerado_tier | |
| WHEN 'CABA' THEN 1 | |
| WHEN 'Conurbano-AMBA' THEN 2 | |
| WHEN 'Other Gran Aglomerados' THEN 3 | |
| ELSE 4 | |
| END | |
| """).fetchdf() | |
| print("\nAglomerado tier breakdown:") | |
| print(by_aglomerado.to_string(index=False)) | |
| # Conurbano partido breakdown (vertical density gradient) | |
| print("\n conurbano partido breakdown...") | |
| conurbano_partidos = con.execute(f""" | |
| SELECT | |
| departamento, | |
| COUNT(*) as n_settlements, | |
| SUM(CASE WHEN familias_aproximadas > building_count * 1.1 THEN 1 ELSE 0 END) as renabap_higher, | |
| ROUND(SUM(CASE WHEN familias_aproximadas > building_count * 1.1 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 1) as pct_vertical | |
| FROM settlement_buildings | |
| WHERE building_count > 0 | |
| AND provincia = 'Buenos Aires' | |
| AND departamento IN ({','.join(f"'{p}'" for p in CONURBANO_PARTIDOS)}) | |
| GROUP BY departamento | |
| ORDER BY pct_vertical DESC | |
| """).fetchdf() | |
| print("\nConurbano vertical density by partido:") | |
| print(conurbano_partidos.to_string(index=False)) | |
| # National totals (baseline: no filter, 100% occupation) | |
| national = con.execute(""" | |
| SELECT | |
| COUNT(*) as n_settlements, | |
| SUM(familias_aproximadas) as total_renabap_families, | |
| SUM(building_count) as total_buildings, | |
| SUM(estimated_families) as total_estimated_families | |
| FROM settlement_buildings | |
| """).fetchone() | |
| # By province (uses multiplier-adjusted comparison) | |
| by_province = con.execute(""" | |
| SELECT | |
| provincia, | |
| COUNT(*) as n_settlements, | |
| SUM(familias_aproximadas) as renabap_families, | |
| SUM(building_count) as building_count, | |
| SUM(estimated_families) as estimated_families, | |
| SUM(CASE WHEN building_count * 1.1 > familias_aproximadas THEN 1 ELSE 0 END) as used_buildings, | |
| SUM(CASE WHEN building_count * 1.1 <= familias_aproximadas THEN 1 ELSE 0 END) as used_renabap | |
| FROM settlement_buildings | |
| GROUP BY provincia | |
| ORDER BY estimated_families DESC | |
| """).fetchdf() | |
| return { | |
| "con": con, | |
| "sensitivity_results": sensitivity_results, | |
| "validation_by_urban": validation_by_urban, | |
| "by_aglomerado": by_aglomerado, | |
| "conurbano_partidos": conurbano_partidos, | |
| "national": national, | |
| "by_province": by_province, | |
| } | |
| # --------------------------------------------------------------------------- # | |
| # Phase 4: export + summary | |
| # --------------------------------------------------------------------------- # | |
| def export_outputs(results: dict) -> None: | |
| con = results["con"] | |
| sensitivity_results = results["sensitivity_results"] | |
| validation_by_urban = results["validation_by_urban"] | |
| by_aglomerado = results["by_aglomerado"] | |
| conurbano_partidos = results["conurbano_partidos"] | |
| national = results["national"] | |
| by_province = results["by_province"] | |
| n_settlements, renabap_fam, total_bldg, est_fam = national | |
| # Export per-settlement GeoJSON | |
| print(f" writing {OUTPUT_GEOJSON}...") | |
| OUTPUT_GEOJSON.parent.mkdir(parents=True, exist_ok=True) | |
| con.execute(f""" | |
| COPY ( | |
| SELECT | |
| id_renabap, | |
| nombre, | |
| provincia, | |
| departamento, | |
| localidad, | |
| is_urban, | |
| familias_aproximadas as renabap_families, | |
| building_count, | |
| estimated_families, | |
| CASE WHEN building_count * 1.1 > familias_aproximadas THEN 'buildings' ELSE 'renabap' END as estimate_source, | |
| geometry | |
| FROM settlement_buildings | |
| ORDER BY provincia, departamento, nombre | |
| ) TO '{OUTPUT_GEOJSON}' | |
| WITH (FORMAT GDAL, DRIVER 'GeoJSON') | |
| """) | |
| # Write markdown summary | |
| print(f" writing {OUTPUT_MD}...") | |
| with open(OUTPUT_MD, 'w') as f: | |
| f.write("# Argentina Informal Settlement Population Estimates\n\n") | |
| f.write(f"**Generated:** {datetime.now().strftime('%Y-%m-%d %H:%M')}\n\n") | |
| f.write("---\n\n") | |
| # Sensitivity Analysis Table (the main deliverable) | |
| f.write("## Sensitivity Analysis\n\n") | |
| f.write("Estimated households and population across building size filters, occupation rates, and population multipliers.\n\n") | |
| f.write("| Size Filter | Occupation | Pop Mult | Buildings | Est. Households | Est. Population | % of Argentina |\n") | |
| f.write("|-------------|------------|----------|-----------|-----------------|-----------------|----------------|\n") | |
| for r in sensitivity_results: | |
| f.write(f"| {r['size_filter']} | {r['occupation']:.0%} | {r['pop_multiplier']} | {r['total_buildings']:,} | {r['est_households']:,} | {r['est_population']:,} | {r['pct_of_argentina']:.2f}% |\n") | |
| f.write("\n") | |
| # Summary range | |
| min_pop = min(r['est_population'] for r in sensitivity_results) | |
| max_pop = max(r['est_population'] for r in sensitivity_results) | |
| min_hh = min(r['est_households'] for r in sensitivity_results) | |
| max_hh = max(r['est_households'] for r in sensitivity_results) | |
| f.write(f"**Range:** {min_hh:,} – {max_hh:,} households | {min_pop:,} – {max_pop:,} population\n\n") | |
| # Source breakdown by Urban Intersection | |
| f.write("## Estimate Source by Urban Intersection\n\n") | |
| f.write("Shows which source (buildings vs RENABAP) was used per settlement, split by urban area intersection.\n\n") | |
| f.write("| Urban? | Settlements | Used Buildings | Used RENABAP | % Buildings | % RENABAP |\n") | |
| f.write("|--------|-------------|----------------|--------------|-------------|----------|\n") | |
| for _, row in validation_by_urban.iterrows(): | |
| urban_label = "Yes" if row['is_urban'] else "No" | |
| f.write(f"| {urban_label} | {int(row['n_settlements']):,} | {int(row['used_buildings']):,} | {int(row['used_renabap']):,} | {row['pct_used_buildings']:.1f}% | {row['pct_used_renabap']:.1f}% |\n") | |
| f.write("\n") | |
| f.write("*Logic: max(building_count × occ_rate × 1.1, renabap_families) per settlement*\n\n") | |
| # Aglomerado tier analysis | |
| f.write("## Aglomerado Tier Analysis\n\n") | |
| f.write("| Aglomerado Tier | N Settlements | RENABAP Higher | Footprints Higher | Median Ratio |\n") | |
| f.write("|-----------------|---------------|----------------|-------------------|-------------|\n") | |
| for _, row in by_aglomerado.iterrows(): | |
| f.write(f"| {row['aglomerado_tier']} | {int(row['n_settlements']):,} | {int(row['renabap_higher']):,} | {int(row['footprints_higher']):,} | {row['median_ratio']:.2f} |\n") | |
| f.write("\n") | |
| f.write("*Median ratio = footprints / RENABAP families. <1 means RENABAP captures more (vertical density).*\n\n") | |
| # Conurbano vertical density gradient | |
| f.write("## Conurbano Vertical Density Gradient\n\n") | |
| f.write("Vertical density (RENABAP > footprints) concentrates in inner-ring partidos adjacent to CABA.\n\n") | |
| # Split into inner ring (high vertical) and outer ring (low vertical) | |
| inner_ring = conurbano_partidos[conurbano_partidos['pct_vertical'] >= 25].head(7) | |
| outer_ring = conurbano_partidos[conurbano_partidos['pct_vertical'] < 10].head(4) | |
| f.write("**Inner ring (adjacent to CABA):**\n\n") | |
| f.write("| Partido | N | RENABAP Higher | % Vertical |\n") | |
| f.write("|---------|---|----------------|------------|\n") | |
| for _, row in inner_ring.iterrows(): | |
| f.write(f"| {row['departamento']} | {int(row['n_settlements'])} | {int(row['renabap_higher'])} | {row['pct_vertical']:.0f}% |\n") | |
| f.write("\n") | |
| f.write("**Outer ring:**\n\n") | |
| f.write("| Partido | N | RENABAP Higher | % Vertical |\n") | |
| f.write("|---------|---|----------------|------------|\n") | |
| for _, row in outer_ring.iterrows(): | |
| f.write(f"| {row['departamento']} | {int(row['n_settlements'])} | {int(row['renabap_higher'])} | {row['pct_vertical']:.0f}% |\n") | |
| f.write("\n") | |
| f.write("*Clear gradient: vertical density decays with distance from CABA. Inner-ring partidos show 40-60% vertical (nearly CABA-like), outer ring drops to <10%.*\n\n") | |
| # National summary (baseline scenario) | |
| f.write("## Baseline National Summary\n\n") | |
| f.write("*Baseline: No building filter, 100% occupation*\n\n") | |
| f.write("| Metric | RENABAP Official | Building-Based Estimate | Difference |\n") | |
| f.write("|--------|------------------|------------------------|------------|\n") | |
| f.write(f"| Settlements | {n_settlements:,} | {n_settlements:,} | — |\n") | |
| f.write(f"| Building Footprints | — | {int(total_bldg):,} | — |\n") | |
| f.write(f"| Families/Households | {int(renabap_fam):,} | {int(est_fam):,} | +{int(est_fam - renabap_fam):,} (+{(est_fam/renabap_fam - 1)*100:.1f}%) |\n") | |
| for mult in POP_MULTIPLIERS: | |
| renabap_pop = renabap_fam * mult | |
| est_pop = est_fam * mult | |
| diff = est_pop - renabap_pop | |
| pct_arg = est_pop / ARGENTINA_POP * 100 | |
| f.write(f"| Population (×{mult}) | {int(renabap_pop):,} | {int(est_pop):,} | +{int(diff):,} ({pct_arg:.1f}% of Argentina) |\n") | |
| f.write("\n") | |
| # Province breakdown | |
| f.write("## Province Breakdown\n\n") | |
| f.write("| Provincia | Settlements | RENABAP | Buildings | Est. Families | Used Bldg | Used RENABAP |\n") | |
| f.write("|-----------|-------------|---------|-----------|---------------|-----------|-------------|\n") | |
| for _, row in by_province.iterrows(): | |
| f.write(f"| {row['provincia']} | {int(row['n_settlements']):,} | {int(row['renabap_families']):,} | {int(row['building_count']):,} | {row['estimated_families']:,.1f} | {int(row['used_buildings']):,} | {int(row['used_renabap']):,} |\n") | |
| f.write("\n") | |
| # Methodology | |
| f.write("## Methodology\n\n") | |
| f.write("**Per-settlement logic:** `max(building_count × occupation_rate × 1.1, renabap_families)`\n\n") | |
| f.write("- **1.1 multiplier**: RENABAP documents ~1.1 families per dwelling (SISU 2023a pp. 14-15)\n") | |
| f.write("- **Occupation rate**: Applied only to building-derived counts, not RENABAP\n") | |
| f.write("- `familias_aproximadas` is already enumerated families, needs no discount\n") | |
| f.write("- If adjusted buildings > RENABAP → use building estimate (RENABAP undercounted)\n") | |
| f.write("- If RENABAP > adjusted buildings → use RENABAP (vertical density / multi-family)\n\n") | |
| # Data sources | |
| f.write("## Data Sources\n\n") | |
| f.write("- **RENABAP:** Argentina Ministry of Habitat, 2023 release\n") | |
| f.write("- **Building Footprints:** Google/Microsoft/OSM Open Buildings (VIDA, Source Cooperative)\n") | |
| f.write("- **Urban Areas:** IGN Planta Urbana polygons\n") | |
| f.write("- **Population multipliers:** INDEC 2022 Census (2.8), Barrios-specific estimate (3.35)\n") | |
| f.write("\n---\n") | |
| f.write("\n*Analysis code: arg-informal-settlements-analysis*\n") | |
| con.close() | |
| # --------------------------------------------------------------------------- # | |
| # Orchestration | |
| # --------------------------------------------------------------------------- # | |
| def main(): | |
| pipeline_start = time.perf_counter() | |
| # Phase 1+2: download + optimize | |
| prepare_renabap() | |
| prepare_buildings() | |
| with timed("Check urban-areas layer"): | |
| check_urban_areas() | |
| # Phase 3: query | |
| with timed("Spatial-join query + sensitivity analysis"): | |
| results = run_analysis() | |
| # Phase 4: export | |
| with timed("Export GeoJSON + markdown summary"): | |
| export_outputs(results) | |
| total = time.perf_counter() - pipeline_start | |
| # Timing report | |
| print("\n" + "=" * 60) | |
| print("TIMING BREAKDOWN") | |
| print("=" * 60) | |
| width = max(len(k) for k in TIMINGS) | |
| for label, dt in TIMINGS.items(): | |
| print(f" {label:<{width}} {dt:8,.1f}s ({dt / total:4.0%})") | |
| print("-" * 60) | |
| print(f" {'TOTAL':<{width}} {total:8,.1f}s") | |
| print("=" * 60) | |
| print(f"\nDone! Output files:") | |
| print(f" - {OUTPUT_GEOJSON}") | |
| print(f" - {OUTPUT_MD}") | |
| if __name__ == "__main__": | |
| main() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| version: 6 | |
| environments: | |
| default: | |
| channels: | |
| - url: https://conda.anaconda.org/conda-forge/ | |
| options: | |
| pypi-prerelease-mode: if-necessary-or-explicit | |
| packages: | |
| linux-64: | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.1-h2d2dd48_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.13-h2c9d079_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.6-hb03c661_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h8b1a151_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.6.0-h9b893ba_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.12-h4bacb7b_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.26.3-hc87160b_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.15.2-he9ea9c5_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.11.5-h6d69fc9_5.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h8b1a151_4.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h8b1a151_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.37.4-h4c8aef7_3.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.747-hc3785e1_3.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.16.2-h206d751_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.3-hed0cdb0_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.16.0-hdd73cc9_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.12.0-ha7a2c86_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.14.0-h52c5a47_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/duckdb-1.5.2-hfdaf410_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260107.1-cxx17_h7b12aa8_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-23.0.1-ha7f89c6_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-23.0.1-h635bf11_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-23.0.1-h53684a4_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-23.0.1-h635bf11_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-23.0.1-hb4dd7c2_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-6_h4a7cf45_openblas.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-6_h0358290_openblas.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.19.0-hcf29cc6_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-3.3.0-h25dbb67_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-3.3.0-hdbdcf42_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.78.1-h1d1128b_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-6_h47877c9_openblas.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h877daf1_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.32-pthreads_h94d23a6_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.26.0-h9692893_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.26.0-ha770c72_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-23.0.1-h7376487_9_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.33.5-h2b00c02_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h0dc7533_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.0-hf4e2dac_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.2-hca6bf5a_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.2-he237659_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.3-py314hd4f4903_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.3.0-h21090e2_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.0.2-py314hd70f1f7_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-23.0.1-py314h061e8c0_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-23.0.1-py314h9de4539_0_cpu.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.4-hf9ea5aa_0_cp314t.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/python-duckdb-1.5.2-py314h3ce7e56_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314t.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.11.05-h5301d42_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.1-h1cbb8d7_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_2.conda | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda | |
| packages: | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda | |
| build_number: 20 | |
| sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 | |
| md5: a9f577daf3de00bca7c3c76c0ecbd1de | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgomp >=7.5.0 | |
| constrains: | |
| - openmp_impl <0.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 28948 | |
| timestamp: 1770939786096 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.1-h2d2dd48_2.conda | |
| sha256: 292aa18fe6ab5351710e6416fbd683eaef3aa5b1b7396da9350ff08efc660e4f | |
| md5: 675ea6d90900350b1dcfa8231a5ea2dd | |
| depends: | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - aws-c-sdkutils >=0.2.4,<0.2.5.0a0 | |
| - aws-c-cal >=0.9.13,<0.9.14.0a0 | |
| - aws-c-http >=0.10.12,<0.10.13.0a0 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 134426 | |
| timestamp: 1774274932726 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.13-h2c9d079_1.conda | |
| sha256: f21d648349a318f4ae457ea5403d542ba6c0e0343b8642038523dd612b2a5064 | |
| md5: 3c3d02681058c3d206b562b2e3bc337f | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - libgcc >=14 | |
| - openssl >=3.5.4,<4.0a0 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 56230 | |
| timestamp: 1764593147526 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.6-hb03c661_0.conda | |
| sha256: 926a5b9de0a586e88669d81de717c8dd3218c51ce55658e8a16af7e7fe87c833 | |
| md5: e36ad70a7e0b48f091ed6902f04c23b8 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 239605 | |
| timestamp: 1763585595898 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h8b1a151_0.conda | |
| sha256: 1838bdc077b77168416801f4715335b65e9223f83641a2c28644f8acd8f9db0e | |
| md5: f16f498641c9e05b645fe65902df661a | |
| depends: | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 22278 | |
| timestamp: 1767790836624 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.6.0-h9b893ba_1.conda | |
| sha256: 4a1a060ab40cb4fa39d24418758ca9faa1f51df6918f05143118e79bb11b4350 | |
| md5: cd4946050ecfcb3c6fd09106ae6a261e | |
| depends: | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| - aws-checksums >=0.2.10,<0.2.11.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 58989 | |
| timestamp: 1774270004533 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.12-h4bacb7b_1.conda | |
| sha256: c6f910d400ef9034493988e8cd37bd4712e42d85921122bcda4ba68d4614b131 | |
| md5: 7bc920933e5fb225aba86a788164a8f1 | |
| depends: | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| - aws-c-cal >=0.9.13,<0.9.14.0a0 | |
| - aws-c-compression >=0.3.2,<0.3.3.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 225868 | |
| timestamp: 1774270031584 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.26.3-hc87160b_0.conda | |
| sha256: c66ebb7815949db72bab7c86bf477197e4bc6937c381cf32248bdd1ce496db00 | |
| md5: dde6a3e4fe6bb2ecd2a7050dd1e701fb | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - aws-c-cal >=0.9.13,<0.9.14.0a0 | |
| - s2n >=1.7.1,<1.7.2.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 181624 | |
| timestamp: 1773868304737 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.15.2-he9ea9c5_1.conda | |
| sha256: 3fc68793c0ca2c36524ae67abac696ce6b066a8be6b2b980cbdc40ae1310041a | |
| md5: 8e77514673f5773b40ff8953583938b6 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - aws-c-http >=0.10.12,<0.10.13.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 221711 | |
| timestamp: 1774275485771 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.11.5-h6d69fc9_5.conda | |
| sha256: c15869656f5fbebe27cc5aa58b23831f75d85502d324fedd7ee7e552c79b495d | |
| md5: 4c5c16bf1133dcfe100f33dd4470998e | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| - aws-checksums >=0.2.10,<0.2.11.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - aws-c-http >=0.10.12,<0.10.13.0a0 | |
| - openssl >=3.5.5,<4.0a0 | |
| - aws-c-auth >=0.10.1,<0.10.2.0a0 | |
| - aws-c-cal >=0.9.13,<0.9.14.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 151340 | |
| timestamp: 1774282148690 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h8b1a151_4.conda | |
| sha256: 9d62c5029f6f8219368a8665f0a549da572dc777f52413b7d75609cacdbc02cc | |
| md5: c7e3e08b7b1b285524ab9d74162ce40b | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 59383 | |
| timestamp: 1764610113765 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h8b1a151_0.conda | |
| sha256: 09472dd5fa4473cffd44741ee4c1112f2c76d7168d1343de53c2ad283dc1efa6 | |
| md5: f8e1bcc5c7d839c5882e94498791be08 | |
| depends: | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 101435 | |
| timestamp: 1771063496927 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.37.4-h4c8aef7_3.conda | |
| sha256: b82d0bc6d4b716347e1aefb0acc6e4bff04b3f807537ada9b458a7e467beb2a0 | |
| md5: 798a499cf76e530a992365d557ba5827 | |
| depends: | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-c-event-stream >=0.6.0,<0.6.1.0a0 | |
| - aws-c-mqtt >=0.15.2,<0.15.3.0a0 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - aws-c-s3 >=0.11.5,<0.11.6.0a0 | |
| - aws-c-http >=0.10.12,<0.10.13.0a0 | |
| - aws-c-io >=0.26.3,<0.26.4.0a0 | |
| - aws-c-auth >=0.10.1,<0.10.2.0a0 | |
| - aws-c-sdkutils >=0.2.4,<0.2.5.0a0 | |
| - aws-c-cal >=0.9.13,<0.9.14.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 410120 | |
| timestamp: 1774286908570 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.747-hc3785e1_3.conda | |
| sha256: 62b7e565852fa061a26281b2890e432853fabefa8ea3dc22d00d39295a030805 | |
| md5: cfffedbfd03d5a6bb74157c14b6f0cdf | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| - aws-c-common >=0.12.6,<0.12.7.0a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - aws-crt-cpp >=0.37.4,<0.37.5.0a0 | |
| - aws-c-event-stream >=0.6.0,<0.6.1.0a0 | |
| - libcurl >=8.19.0,<9.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 3624521 | |
| timestamp: 1773666645246 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.16.2-h206d751_0.conda | |
| sha256: 321d1070905e467b6bc6f5067b97c1868d7345c272add82b82e08a0224e326f0 | |
| md5: 5492abf806c45298ae642831c670bba0 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libcurl >=8.18.0,<9.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - openssl >=3.5.4,<4.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 348729 | |
| timestamp: 1768837519361 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.3-hed0cdb0_1.conda | |
| sha256: 2beb6ae8406f946b8963a67e72fe74453e1411c5ae7e992978340de6c512d13c | |
| md5: 68bfb556bdf56d56e9f38da696e752ca | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - azure-core-cpp >=1.16.2,<1.16.3.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 250511 | |
| timestamp: 1770344967948 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.16.0-hdd73cc9_1.conda | |
| sha256: cef75b91bdd5a65c560b501df78905437cc2090a64b4c5ecd7da9e08e9e9af7c | |
| md5: 939d9ce324e51961c7c4c0046733dbb7 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - azure-core-cpp >=1.16.2,<1.16.3.0a0 | |
| - azure-storage-common-cpp >=12.12.0,<12.12.1.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 579825 | |
| timestamp: 1770321459546 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.12.0-ha7a2c86_1.conda | |
| sha256: ef7d1cae36910b21385d0816f8524a84dee1513e0306927e41a6bd32b5b9a0d0 | |
| md5: 6400f73fe5ebe19fe7aca3616f1f1de7 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - azure-core-cpp >=1.16.2,<1.16.3.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libxml2 | |
| - libxml2-16 >=2.14.6 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 150405 | |
| timestamp: 1770240307002 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.14.0-h52c5a47_1.conda | |
| sha256: 55aa8ad5217d358e0ccf4a715bd1f9bafef3cd1c2ea4021f0e916f174c20f8e3 | |
| md5: 6d10339800840562b7dad7775f5d2c16 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - azure-core-cpp >=1.16.2,<1.16.3.0a0 | |
| - azure-storage-blobs-cpp >=12.16.0,<12.16.1.0a0 | |
| - azure-storage-common-cpp >=12.12.0,<12.12.1.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 302524 | |
| timestamp: 1770384269834 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda | |
| sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 | |
| md5: d2ffd7602c02f2b316fd921d39876885 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: bzip2-1.0.6 | |
| license_family: BSD | |
| size: 260182 | |
| timestamp: 1771350215188 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda | |
| sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e | |
| md5: 920bb03579f15389b9e512095ad995b7 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 207882 | |
| timestamp: 1765214722852 | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda | |
| sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc | |
| md5: 4492fd26db29495f0ba23f146cd5638d | |
| depends: | |
| - __unix | |
| license: ISC | |
| size: 147413 | |
| timestamp: 1772006283803 | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/duckdb-1.5.2-hfdaf410_0.conda | |
| sha256: 49fc58e9d3770498a5af486007c393ca8320bb36796f9c85e9f342e3ad46ea67 | |
| md5: 66645b45ca91739d9476172cb2c40f26 | |
| depends: | |
| - python-duckdb >=1.5.2,<1.5.3.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 7883 | |
| timestamp: 1776091773337 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda | |
| sha256: 6c33bf0c4d8f418546ba9c250db4e4221040936aef8956353bc764d4877bc39a | |
| md5: d411fc29e338efb48c5fd4576d71d881 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| - libstdcxx >=13 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 119654 | |
| timestamp: 1726600001928 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda | |
| sha256: dc824dc1d0aa358e28da2ecbbb9f03d932d976c8dca11214aa1dcdfcbd054ba2 | |
| md5: ff862eebdfeb2fd048ae9dc92510baca | |
| depends: | |
| - gflags >=2.2.2,<2.3.0a0 | |
| - libgcc-ng >=12 | |
| - libstdcxx-ng >=12 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 143452 | |
| timestamp: 1718284177264 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h33c6efd_0.conda | |
| sha256: fbf86c4a59c2ed05bbffb2ba25c7ed94f6185ec30ecb691615d42342baa1a16a | |
| md5: c80d8a3b84358cb967fa81e7075fbc8a | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 12723451 | |
| timestamp: 1773822285671 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda | |
| sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 | |
| md5: b38117a3c920364aff79f870c984b4a3 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| license: LGPL-2.1-or-later | |
| size: 134088 | |
| timestamp: 1754905959823 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda | |
| sha256: 3e307628ca3527448dd1cb14ad7bb9d04d1d28c7d4c5f97ba196ae984571dd25 | |
| md5: fb53fb07ce46a575c5d004bbc96032c2 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - keyutils >=1.6.3,<2.0a0 | |
| - libedit >=3.1.20250104,<3.2.0a0 | |
| - libedit >=3.1.20250104,<4.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 1386730 | |
| timestamp: 1769769569681 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda | |
| sha256: 3d584956604909ff5df353767f3a2a2f60e07d070b328d109f30ac40cd62df6c | |
| md5: 18335a698559cdbcd86150a48bf54ba6 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - zstd >=1.5.7,<1.6.0a0 | |
| constrains: | |
| - binutils_impl_linux-64 2.45.1 | |
| license: GPL-3.0-only | |
| license_family: GPL | |
| size: 728002 | |
| timestamp: 1774197446916 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260107.1-cxx17_h7b12aa8_0.conda | |
| sha256: a7a4481a4d217a3eadea0ec489826a69070fcc3153f00443aa491ed21527d239 | |
| md5: 6f7b4302263347698fd24565fbf11310 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| constrains: | |
| - libabseil-static =20260107.1=cxx17* | |
| - abseil-cpp =20260107.1 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 1384817 | |
| timestamp: 1770863194876 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-23.0.1-ha7f89c6_9_cpu.conda | |
| build_number: 9 | |
| sha256: 227150d746680ddb0c1e8c346647d62f3e6b6fc43c22f87a330c616c9ef68d9d | |
| md5: b94c6431eadc98b61f4b9c62a338b3c6 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - aws-crt-cpp >=0.37.4,<0.37.5.0a0 | |
| - aws-sdk-cpp >=1.11.747,<1.11.748.0a0 | |
| - azure-core-cpp >=1.16.2,<1.16.3.0a0 | |
| - azure-identity-cpp >=1.13.3,<1.13.4.0a0 | |
| - azure-storage-blobs-cpp >=12.16.0,<12.16.1.0a0 | |
| - azure-storage-files-datalake-cpp >=12.14.0,<12.14.1.0a0 | |
| - bzip2 >=1.0.8,<2.0a0 | |
| - glog >=0.7.1,<0.8.0a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libbrotlidec >=1.2.0,<1.3.0a0 | |
| - libbrotlienc >=1.2.0,<1.3.0a0 | |
| - libgcc >=14 | |
| - libgoogle-cloud >=3.3.0,<3.4.0a0 | |
| - libgoogle-cloud-storage >=3.3.0,<3.4.0a0 | |
| - libopentelemetry-cpp >=1.26.0,<1.27.0a0 | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.2,<2.0a0 | |
| - lz4-c >=1.10.0,<1.11.0a0 | |
| - orc >=2.3.0,<2.3.1.0a0 | |
| - snappy >=1.2.2,<1.3.0a0 | |
| - zstd >=1.5.7,<1.6.0a0 | |
| constrains: | |
| - arrow-cpp <0.0a0 | |
| - parquet-cpp <0.0a0 | |
| - apache-arrow-proc =*=cpu | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 6492912 | |
| timestamp: 1774232411616 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-23.0.1-h635bf11_9_cpu.conda | |
| build_number: 9 | |
| sha256: 42fb618f2402d14e96987d82f36453793ee7bae07c8dfa7fee54491bf1d163d9 | |
| md5: 84cdfd12ec9a363b400f7d3850838ea3 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libarrow 23.0.1 ha7f89c6_9_cpu | |
| - libarrow-compute 23.0.1 h53684a4_9_cpu | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 609325 | |
| timestamp: 1774232640179 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-23.0.1-h53684a4_9_cpu.conda | |
| build_number: 9 | |
| sha256: 6ce44b5992a855e2412d904181729272b4732e8ebd8283a20b5b0b93f91f48f3 | |
| md5: b3ba3597c481a636fc161185819cf6b1 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libarrow 23.0.1 ha7f89c6_9_cpu | |
| - libgcc >=14 | |
| - libre2-11 >=2025.11.5 | |
| - libstdcxx >=14 | |
| - libutf8proc >=2.11.3,<2.12.0a0 | |
| - re2 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 3003173 | |
| timestamp: 1774232490011 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-23.0.1-h635bf11_9_cpu.conda | |
| build_number: 9 | |
| sha256: cc3fb77d53f7e2db2cd35ffc1371d677d9e13682b7964e196cab533b319a85ea | |
| md5: 9c5282b7aaf2261d3dbe5a61d24d5337 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libarrow 23.0.1 ha7f89c6_9_cpu | |
| - libarrow-acero 23.0.1 h635bf11_9_cpu | |
| - libarrow-compute 23.0.1 h53684a4_9_cpu | |
| - libgcc >=14 | |
| - libparquet 23.0.1 h7376487_9_cpu | |
| - libstdcxx >=14 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 607738 | |
| timestamp: 1774232745741 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-23.0.1-hb4dd7c2_9_cpu.conda | |
| build_number: 9 | |
| sha256: 037f4befc2df64d9c7903eb7508c1495772f17b7a318b5a888aaddb6307b48a0 | |
| md5: d5338f154126253750e8ccc539386b92 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libarrow 23.0.1 ha7f89c6_9_cpu | |
| - libarrow-acero 23.0.1 h635bf11_9_cpu | |
| - libarrow-dataset 23.0.1 h635bf11_9_cpu | |
| - libgcc >=14 | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - libstdcxx >=14 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 518730 | |
| timestamp: 1774232781245 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-6_h4a7cf45_openblas.conda | |
| build_number: 6 | |
| sha256: 7bfe936dbb5db04820cf300a9cc1f5ee8d5302fc896c2d66e30f1ee2f20fbfd6 | |
| md5: 6d6d225559bfa6e2f3c90ee9c03d4e2e | |
| depends: | |
| - libopenblas >=0.3.32,<0.3.33.0a0 | |
| - libopenblas >=0.3.32,<1.0a0 | |
| constrains: | |
| - blas 2.306 openblas | |
| - liblapack 3.11.0 6*_openblas | |
| - liblapacke 3.11.0 6*_openblas | |
| - libcblas 3.11.0 6*_openblas | |
| - mkl <2026 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 18621 | |
| timestamp: 1774503034895 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda | |
| sha256: 318f36bd49ca8ad85e6478bd8506c88d82454cc008c1ac1c6bf00a3c42fa610e | |
| md5: 72c8fd1af66bd67bf580645b426513ed | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 79965 | |
| timestamp: 1764017188531 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda | |
| sha256: 12fff21d38f98bc446d82baa890e01fd82e3b750378fedc720ff93522ffb752b | |
| md5: 366b40a69f0ad6072561c1d09301c886 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libbrotlicommon 1.2.0 hb03c661_1 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 34632 | |
| timestamp: 1764017199083 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda | |
| sha256: a0c15c79997820bbd3fbc8ecf146f4fe0eca36cc60b62b63ac6cf78857f1dd0d | |
| md5: 4ffbb341c8b616aa2494b6afb26a0c5f | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libbrotlicommon 1.2.0 hb03c661_1 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 298378 | |
| timestamp: 1764017210931 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-6_h0358290_openblas.conda | |
| build_number: 6 | |
| sha256: 57edafa7796f6fa3ebbd5367692dd4c7f552be42109c2dd1a7c89b55089bf374 | |
| md5: 36ae340a916635b97ac8a0655ace2a35 | |
| depends: | |
| - libblas 3.11.0 6_h4a7cf45_openblas | |
| constrains: | |
| - blas 2.306 openblas | |
| - liblapack 3.11.0 6*_openblas | |
| - liblapacke 3.11.0 6*_openblas | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 18622 | |
| timestamp: 1774503050205 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 | |
| sha256: fd1d153962764433fe6233f34a72cdeed5dcf8a883a85769e8295ce940b5b0c5 | |
| md5: c965a5aa0d5c1c37ffc62dff36e28400 | |
| depends: | |
| - libgcc-ng >=9.4.0 | |
| - libstdcxx-ng >=9.4.0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 20440 | |
| timestamp: 1633683576494 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.19.0-hcf29cc6_0.conda | |
| sha256: a0390fd0536ebcd2244e243f5f00ab8e76ab62ed9aa214cd54470fe7496620f4 | |
| md5: d50608c443a30c341c24277d28290f76 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - krb5 >=1.22.2,<1.23.0a0 | |
| - libgcc >=14 | |
| - libnghttp2 >=1.67.0,<2.0a0 | |
| - libssh2 >=1.11.1,<2.0a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - openssl >=3.5.5,<4.0a0 | |
| - zstd >=1.5.7,<1.6.0a0 | |
| license: curl | |
| license_family: MIT | |
| size: 466704 | |
| timestamp: 1773218522665 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda | |
| sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 | |
| md5: c277e0a4d549b03ac1e9d6cbbe3d017b | |
| depends: | |
| - ncurses | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| - ncurses >=6.5,<7.0a0 | |
| license: BSD-2-Clause | |
| license_family: BSD | |
| size: 134676 | |
| timestamp: 1738479519902 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda | |
| sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 | |
| md5: 172bf1cd1ff8629f2b1179945ed45055 | |
| depends: | |
| - libgcc-ng >=12 | |
| license: BSD-2-Clause | |
| license_family: BSD | |
| size: 112766 | |
| timestamp: 1702146165126 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda | |
| sha256: 2e14399d81fb348e9d231a82ca4d816bf855206923759b69ad006ba482764131 | |
| md5: a1cfcc585f0c42bf8d5546bb1dfb668d | |
| depends: | |
| - libgcc-ng >=12 | |
| - openssl >=3.1.1,<4.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 427426 | |
| timestamp: 1685725977222 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda | |
| sha256: e8c2b57f6aacabdf2f1b0924bd4831ce5071ba080baa4a9e8c0d720588b6794c | |
| md5: 49f570f3bc4c874a06ea69b7225753af | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| constrains: | |
| - expat 2.7.5.* | |
| license: MIT | |
| license_family: MIT | |
| size: 76624 | |
| timestamp: 1774719175983 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda | |
| sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 | |
| md5: a360c33a5abe61c07959e449fa1453eb | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 58592 | |
| timestamp: 1769456073053 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda | |
| sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 | |
| md5: 0aa00f03f9e39fb9876085dee11a85d4 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - _openmp_mutex >=4.5 | |
| constrains: | |
| - libgcc-ng ==15.2.0=*_18 | |
| - libgomp 15.2.0 he0feb66_18 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 1041788 | |
| timestamp: 1771378212382 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_18.conda | |
| sha256: e318a711400f536c81123e753d4c797a821021fb38970cebfb3f454126016893 | |
| md5: d5e96b1ed75ca01906b3d2469b4ce493 | |
| depends: | |
| - libgcc 15.2.0 he0feb66_18 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 27526 | |
| timestamp: 1771378224552 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda | |
| sha256: d2c9fad338fd85e4487424865da8e74006ab2e2475bd788f624d7a39b2a72aee | |
| md5: 9063115da5bc35fdc3e1002e69b9ef6e | |
| depends: | |
| - libgfortran5 15.2.0 h68bc16d_18 | |
| constrains: | |
| - libgfortran-ng ==15.2.0=*_18 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 27523 | |
| timestamp: 1771378269450 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda | |
| sha256: 539b57cf50ec85509a94ba9949b7e30717839e4d694bc94f30d41c9d34de2d12 | |
| md5: 646855f357199a12f02a87382d429b75 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=15.2.0 | |
| constrains: | |
| - libgfortran 15.2.0 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 2482475 | |
| timestamp: 1771378241063 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda | |
| sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 | |
| md5: 239c5e9546c38a1e884d69effcf4c882 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 603262 | |
| timestamp: 1771378117851 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-3.3.0-h25dbb67_1.conda | |
| sha256: 17ea802cef3942b0a850b8e33b03fc575f79734f3c829cdd6a4e56e2dae60791 | |
| md5: b2baa4ce6a9d9472aaa602b88f8d40ac | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libcurl >=8.19.0,<9.0a0 | |
| - libgcc >=14 | |
| - libgrpc >=1.78.1,<1.79.0a0 | |
| - libopentelemetry-cpp >=1.26.0,<1.27.0a0 | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - libstdcxx >=14 | |
| - openssl >=3.5.5,<4.0a0 | |
| constrains: | |
| - libgoogle-cloud 3.3.0 *_1 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 2558266 | |
| timestamp: 1774212240265 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-3.3.0-hdbdcf42_1.conda | |
| sha256: 838b6798962039e7f1ed97be85c3a36ceacfd4611bdf76e7cc0b6cd8741edf57 | |
| md5: da94b149c8eea6ceef10d9e408dcfeb3 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libabseil | |
| - libcrc32c >=1.1.2,<1.2.0a0 | |
| - libcurl | |
| - libgcc >=14 | |
| - libgoogle-cloud 3.3.0 h25dbb67_1 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.2,<2.0a0 | |
| - openssl | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 779217 | |
| timestamp: 1774212426084 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.78.1-h1d1128b_0.conda | |
| sha256: 5bb935188999fd70f67996746fd2dca85ec6204289e11695c316772e19451eb8 | |
| md5: b5fb6d6c83f63d83ef2721dca6ff7091 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - c-ares >=1.34.6,<2.0a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libgcc >=14 | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - libre2-11 >=2025.11.5 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - openssl >=3.5.5,<4.0a0 | |
| - re2 | |
| constrains: | |
| - grpc-cpp =1.78.1 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 7021360 | |
| timestamp: 1774020290672 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda | |
| sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f | |
| md5: 915f5995e94f60e9a4826e0b0920ee88 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: LGPL-2.1-only | |
| size: 790176 | |
| timestamp: 1754908768807 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-6_h47877c9_openblas.conda | |
| build_number: 6 | |
| sha256: 371f517eb7010b21c6cc882c7606daccebb943307cb9a3bf2c70456a5c024f7d | |
| md5: 881d801569b201c2e753f03c84b85e15 | |
| depends: | |
| - libblas 3.11.0 6_h4a7cf45_openblas | |
| constrains: | |
| - blas 2.306 openblas | |
| - liblapacke 3.11.0 6*_openblas | |
| - libcblas 3.11.0 6*_openblas | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 18624 | |
| timestamp: 1774503065378 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda | |
| sha256: ec30e52a3c1bf7d0425380a189d209a52baa03f22fb66dd3eb587acaa765bd6d | |
| md5: b88d90cad08e6bc8ad540cb310a761fb | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| constrains: | |
| - xz 5.8.3.* | |
| license: 0BSD | |
| size: 113478 | |
| timestamp: 1775825492909 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda | |
| sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 | |
| md5: 2c21e66f50753a083cbe6b80f38268fa | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: BSD-2-Clause | |
| license_family: BSD | |
| size: 92400 | |
| timestamp: 1769482286018 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h877daf1_0.conda | |
| sha256: 663444d77a42f2265f54fb8b48c5450bfff4388d9c0f8253dd7855f0d993153f | |
| md5: 2a45e7f8af083626f009645a6481f12d | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - c-ares >=1.34.6,<2.0a0 | |
| - libev >=4.33,<4.34.0a0 | |
| - libev >=4.33,<5.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 663344 | |
| timestamp: 1773854035739 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.32-pthreads_h94d23a6_0.conda | |
| sha256: 6dc30b28f32737a1c52dada10c8f3a41bc9e021854215efca04a7f00487d09d9 | |
| md5: 89d61bc91d3f39fda0ca10fcd3c68594 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - libgfortran | |
| - libgfortran5 >=14.3.0 | |
| constrains: | |
| - openblas >=0.3.32,<0.3.33.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 5928890 | |
| timestamp: 1774471724897 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.26.0-h9692893_0.conda | |
| sha256: 5126b75e7733de31e261aa275c0a1fd38b25fdfff23e7d7056ebd6ca76d11532 | |
| md5: c360be6f9e0947b64427603e91f9651f | |
| depends: | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libcurl >=8.19.0,<9.0a0 | |
| - libgrpc >=1.78.0,<1.79.0a0 | |
| - libopentelemetry-cpp-headers 1.26.0 ha770c72_0 | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - nlohmann_json | |
| - prometheus-cpp >=1.3.0,<1.4.0a0 | |
| constrains: | |
| - cpp-opentelemetry-sdk =1.26.0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 934274 | |
| timestamp: 1774001192674 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.26.0-ha770c72_0.conda | |
| sha256: fec2ba047f7000c213ca7ace5452435197c79fbcb1690da7ce85e99312245984 | |
| md5: cb93c6e226a7bed5557601846555153d | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 396403 | |
| timestamp: 1774001149705 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-23.0.1-h7376487_9_cpu.conda | |
| build_number: 9 | |
| sha256: 2ab9ac48c43b9800777c05b504337ef93597bf310ac8cff957796cc6776992a2 | |
| md5: 2dccf1b6cf9dba8857050740dbc0497e | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libarrow 23.0.1 ha7f89c6_9_cpu | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libthrift >=0.22.0,<0.22.1.0a0 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 1390169 | |
| timestamp: 1774232604005 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.33.5-h2b00c02_0.conda | |
| sha256: afbf195443269ae10a940372c1d37cda749355d2bd96ef9587a962abd87f2429 | |
| md5: 11ac478fa72cf12c214199b8a96523f4 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.0,<20260108.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 3638698 | |
| timestamp: 1769749419271 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h0dc7533_1.conda | |
| sha256: 138fc85321a8c0731c1715688b38e2be4fb71db349c9ab25f685315095ae70ff | |
| md5: ced7f10b6cfb4389385556f47c0ad949 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libabseil * cxx17* | |
| - libabseil >=20260107.0,<20260108.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| constrains: | |
| - re2 2025.11.05.* | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 213122 | |
| timestamp: 1768190028309 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.0-hf4e2dac_0.conda | |
| sha256: ec37c79f737933bbac965f5dc0f08ef2790247129a84bb3114fad4900adce401 | |
| md5: 810d83373448da85c3f673fbcb7ad3a3 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - icu >=78.3,<79.0a0 | |
| - libgcc >=14 | |
| - libzlib >=1.3.2,<2.0a0 | |
| license: blessing | |
| size: 958864 | |
| timestamp: 1775753750179 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda | |
| sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661 | |
| md5: eecce068c7e4eddeb169591baac20ac4 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - openssl >=3.5.0,<4.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 304790 | |
| timestamp: 1745608545575 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda | |
| sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e | |
| md5: 1b08cd684f34175e4514474793d44bcb | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc 15.2.0 he0feb66_18 | |
| constrains: | |
| - libstdcxx-ng ==15.2.0=*_18 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 5852330 | |
| timestamp: 1771378262446 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_18.conda | |
| sha256: 3c902ffd673cb3c6ddde624cdb80f870b6c835f8bf28384b0016e7d444dd0145 | |
| md5: 6235adb93d064ecdf3d44faee6f468de | |
| depends: | |
| - libstdcxx 15.2.0 h934c35e_18 | |
| license: GPL-3.0-only WITH GCC-exception-3.1 | |
| license_family: GPL | |
| size: 27575 | |
| timestamp: 1771378314494 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda | |
| sha256: 4888b9ea2593c36ca587a5ebe38d0a56a0e6d6a9e4bb7da7d9a326aaaca7c336 | |
| md5: 8ed82d90e6b1686f5e98f8b7825a15ef | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libevent >=2.1.12,<2.1.13.0a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - openssl >=3.5.1,<4.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 424208 | |
| timestamp: 1753277183984 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda | |
| sha256: ecbf4b7520296ed580498dc66a72508b8a79da5126e1d6dc650a7087171288f9 | |
| md5: 1247168fe4a0b8912e3336bccdbf98a5 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: MIT | |
| license_family: MIT | |
| size: 85969 | |
| timestamp: 1768735071295 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42-h5347b49_0.conda | |
| sha256: bc1b08c92626c91500fd9f26f2c797f3eb153b627d53e9c13cd167f1e12b2829 | |
| md5: 38ffe67b78c9d4de527be8315e5ada2c | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 40297 | |
| timestamp: 1775052476770 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.2-he237659_0.conda | |
| sha256: 275c324f87bda1a3b67d2f4fcc3555eeff9e228a37655aa001284a7ceb6b0392 | |
| md5: e49238a1609f9a4a844b09d9926f2c3d | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - icu >=78.2,<79.0a0 | |
| - libgcc >=14 | |
| - libiconv >=1.18,<2.0a0 | |
| - liblzma >=5.8.2,<6.0a0 | |
| - libxml2-16 2.15.2 hca6bf5a_0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| license: MIT | |
| license_family: MIT | |
| size: 45968 | |
| timestamp: 1772704614539 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.2-hca6bf5a_0.conda | |
| sha256: 08d2b34b49bec9613784f868209bb7c3bb8840d6cf835ff692e036b09745188c | |
| md5: f3bc152cb4f86babe30f3a4bf0dbef69 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - icu >=78.2,<79.0a0 | |
| - libgcc >=14 | |
| - libiconv >=1.18,<2.0a0 | |
| - liblzma >=5.8.2,<6.0a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| constrains: | |
| - libxml2 2.15.2 | |
| license: MIT | |
| license_family: MIT | |
| size: 557492 | |
| timestamp: 1772704601644 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda | |
| sha256: 55044c403570f0dc26e6364de4dc5368e5f3fc7ff103e867c487e2b5ab2bcda9 | |
| md5: d87ff7921124eccd67248aa483c23fec | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| constrains: | |
| - zlib 1.3.2 *_2 | |
| license: Zlib | |
| license_family: Other | |
| size: 63629 | |
| timestamp: 1774072609062 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda | |
| sha256: 47326f811392a5fd3055f0f773036c392d26fdb32e4d8e7a8197eed951489346 | |
| md5: 9de5350a85c4a20c685259b889aa6393 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| - libstdcxx >=13 | |
| license: BSD-2-Clause | |
| license_family: BSD | |
| size: 167055 | |
| timestamp: 1733741040117 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda | |
| sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 | |
| md5: 47e340acb35de30501a76c7c799c41d7 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=13 | |
| license: X11 AND BSD-3-Clause | |
| size: 891641 | |
| timestamp: 1738195959188 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda | |
| sha256: fd2cbd8dfc006c72f45843672664a8e4b99b2f8137654eaae8c3d46dca776f63 | |
| md5: 16c2a0e9c4a166e53632cfca4f68d020 | |
| constrains: | |
| - nlohmann_json-abi ==3.12.0 | |
| license: MIT | |
| license_family: MIT | |
| size: 136216 | |
| timestamp: 1758194284857 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.3-py314hd4f4903_0.conda | |
| sha256: 80bdebe25269b3a0ea5e3eae2ef7159615d4aa3a74b2aa1b408f35b5812312b7 | |
| md5: ee2b2bb9e96a9cd64d68492842559adf | |
| depends: | |
| - python | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - python_abi 3.14.* *_cp314t | |
| - libcblas >=3.9.0,<4.0a0 | |
| - libblas >=3.9.0,<4.0a0 | |
| - liblapack >=3.9.0,<4.0a0 | |
| constrains: | |
| - numpy-base <0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 8972010 | |
| timestamp: 1773839212779 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.2-h35e630c_0.conda | |
| sha256: c0ef482280e38c71a08ad6d71448194b719630345b0c9c60744a2010e8a8e0cb | |
| md5: da1b85b6a87e141f5140bb9924cecab0 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - ca-certificates | |
| - libgcc >=14 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 3167099 | |
| timestamp: 1775587756857 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.3.0-h21090e2_0.conda | |
| sha256: a60c2578c8422e0c67206d269767feb4d3e627511558b6866e5daf2231d5214d | |
| md5: 8027fce94fdfdf2e54f9d18cbae496df | |
| depends: | |
| - tzdata | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - lz4-c >=1.10.0,<1.11.0a0 | |
| - snappy >=1.2.2,<1.3.0a0 | |
| - libabseil >=20260107.1,<20260108.0a0 | |
| - libabseil * cxx17* | |
| - libprotobuf >=6.33.5,<6.33.6.0a0 | |
| - zstd >=1.5.7,<1.6.0a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 1468651 | |
| timestamp: 1773230208923 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.0.2-py314hd70f1f7_0.conda | |
| sha256: 6f16837e4bbc6e8fbece05a262f86cf8f8ee61ac514c1444d4870cb4cc13ab77 | |
| md5: 4b1ab10ca0252d9dff2af572846894ca | |
| depends: | |
| - python | |
| - numpy >=1.26.0 | |
| - python-dateutil >=2.8.2 | |
| - __glibc >=2.17,<3.0.a0 | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| - python_abi 3.14.* *_cp314t | |
| - numpy >=1.23,<3 | |
| constrains: | |
| - adbc-driver-postgresql >=1.2.0 | |
| - adbc-driver-sqlite >=1.2.0 | |
| - beautifulsoup4 >=4.12.3 | |
| - blosc >=1.21.3 | |
| - bottleneck >=1.4.2 | |
| - fastparquet >=2024.11.0 | |
| - fsspec >=2024.10.0 | |
| - gcsfs >=2024.10.0 | |
| - html5lib >=1.1 | |
| - hypothesis >=6.116.0 | |
| - jinja2 >=3.1.5 | |
| - lxml >=5.3.0 | |
| - matplotlib >=3.9.3 | |
| - numba >=0.60.0 | |
| - numexpr >=2.10.2 | |
| - odfpy >=1.4.1 | |
| - openpyxl >=3.1.5 | |
| - psycopg2 >=2.9.10 | |
| - pyarrow >=13.0.0 | |
| - pyiceberg >=0.8.1 | |
| - pymysql >=1.1.1 | |
| - pyqt5 >=5.15.9 | |
| - pyreadstat >=1.2.8 | |
| - pytables >=3.10.1 | |
| - pytest >=8.3.4 | |
| - pytest-xdist >=3.6.1 | |
| - python-calamine >=0.3.0 | |
| - pytz >=2024.2 | |
| - pyxlsb >=1.0.10 | |
| - qtpy >=2.4.2 | |
| - scipy >=1.14.1 | |
| - s3fs >=2024.10.0 | |
| - sqlalchemy >=2.0.36 | |
| - tabulate >=0.9.0 | |
| - xarray >=2024.10.0 | |
| - xlrd >=2.0.1 | |
| - xlsxwriter >=3.2.0 | |
| - zstandard >=0.23.0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 15176289 | |
| timestamp: 1774916581995 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda | |
| sha256: 013669433eb447548f21c3c6b16b2ed64356f726b5f77c1b39d5ba17a8a4b8bc | |
| md5: a83f6a2fdc079e643237887a37460668 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libcurl >=8.10.1,<9.0a0 | |
| - libgcc >=13 | |
| - libstdcxx >=13 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - zlib | |
| license: MIT | |
| license_family: MIT | |
| size: 199544 | |
| timestamp: 1730769112346 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-23.0.1-py314h061e8c0_0.conda | |
| sha256: 35e9865be71461d049a026735e6732493050ed66f945750cb0cd4106054d4d9f | |
| md5: b881d61d7dcfe42a1e0e94586ef12a21 | |
| depends: | |
| - libarrow-acero 23.0.1.* | |
| - libarrow-dataset 23.0.1.* | |
| - libarrow-substrait 23.0.1.* | |
| - libparquet 23.0.1.* | |
| - pyarrow-core 23.0.1 *_0_* | |
| - python >=3.14,<3.15.0a0 | |
| - python_abi 3.14.* *_cp314t | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 28636 | |
| timestamp: 1771307347465 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-23.0.1-py314h9de4539_0_cpu.conda | |
| sha256: f62d9ae514f2e4e2b060e0279da28bbb4d38253b16c9d81059bfa6ef8024bec2 | |
| md5: c01f4b7872d5bdc588e25656a65e24bb | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libarrow 23.0.1.* *cpu | |
| - libarrow-compute 23.0.1.* *cpu | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| - python >=3.14,<3.15.0a0 | |
| - python_abi 3.14.* *_cp314t | |
| constrains: | |
| - apache-arrow-proc * cpu | |
| - numpy >=1.23,<3 | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 5356915 | |
| timestamp: 1771307292471 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.4-hf9ea5aa_0_cp314t.conda | |
| sha256: 60b64046b273c5ae1508d860bda2cb1c02c9af8d0973a9873ce416496132933d | |
| md5: f9c864fd19f2e57a6624520c63262a16 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - bzip2 >=1.0.8,<2.0a0 | |
| - ld_impl_linux-64 >=2.36.1 | |
| - libexpat >=2.7.5,<3.0a0 | |
| - libffi >=3.5.2,<3.6.0a0 | |
| - libgcc >=14 | |
| - liblzma >=5.8.2,<6.0a0 | |
| - libmpdec >=4.0.0,<5.0a0 | |
| - libsqlite >=3.52.0,<4.0a0 | |
| - libuuid >=2.42,<3.0a0 | |
| - libzlib >=1.3.2,<2.0a0 | |
| - ncurses >=6.5,<7.0a0 | |
| - openssl >=3.5.6,<4.0a0 | |
| - python_abi 3.14.* *_cp314t | |
| - readline >=8.3,<9.0a0 | |
| - tk >=8.6.13,<8.7.0a0 | |
| - tzdata | |
| - zstd >=1.5.7,<1.6.0a0 | |
| track_features: | |
| - py_freethreading | |
| license: Python-2.0 | |
| size: 47768693 | |
| timestamp: 1775614324184 | |
| python_site_packages_path: lib/python3.14t/site-packages | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda | |
| sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 | |
| md5: 5b8d21249ff20967101ffa321cab24e8 | |
| depends: | |
| - python >=3.9 | |
| - six >=1.5 | |
| - python | |
| license: Apache-2.0 | |
| license_family: APACHE | |
| size: 233310 | |
| timestamp: 1751104122689 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/python-duckdb-1.5.2-py314h3ce7e56_0.conda | |
| sha256: f4bc8f166dc53523d0bb86cfcbf8166f3298163afcc7af5264561689c9271251 | |
| md5: 28f2ec1421356a449a4d57bbcf74fd81 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - libstdcxx >=14 | |
| - python >=3.14,<3.15.0a0 | |
| - python_abi 3.14.* *_cp314t | |
| license: MIT | |
| license_family: MIT | |
| size: 17075120 | |
| timestamp: 1776091749532 | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314t.conda | |
| build_number: 8 | |
| sha256: d9ed2538fba61265a330ee1b1afe99a4bb23ace706172b9464546c7e01259d63 | |
| md5: 3251796e09870c978e0f69fa05e38fb6 | |
| constrains: | |
| - python 3.14.* *_cp314t | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 7020 | |
| timestamp: 1752805919426 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.11.05-h5301d42_1.conda | |
| sha256: 3fc684b81631348540e9a42f6768b871dfeab532d3f47d5c341f1f83e2a2b2b2 | |
| md5: 66a715bc01c77d43aca1f9fcb13dde3c | |
| depends: | |
| - libre2-11 2025.11.05 h0dc7533_1 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 27469 | |
| timestamp: 1768190052132 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda | |
| sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 | |
| md5: d7d95fc8287ea7bf33e0e7116d2b95ec | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - ncurses >=6.5,<7.0a0 | |
| license: GPL-3.0-only | |
| license_family: GPL | |
| size: 345073 | |
| timestamp: 1765813471974 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.1-h1cbb8d7_1.conda | |
| sha256: dbbe4ab36b90427f12d69fc14a8b601b6bca4185c6c4dd67b8046a8da9daec03 | |
| md5: 9d978822b57bafe72ebd3f8b527bba71 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - openssl >=3.5.5,<4.0a0 | |
| license: Apache-2.0 | |
| license_family: Apache | |
| size: 395083 | |
| timestamp: 1773251675551 | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda | |
| sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d | |
| md5: 3339e3b65d58accf4ca4fb8748ab16b3 | |
| depends: | |
| - python >=3.9 | |
| - python | |
| license: MIT | |
| license_family: MIT | |
| size: 18455 | |
| timestamp: 1753199211006 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda | |
| sha256: 48f3f6a76c34b2cfe80de9ce7f2283ecb55d5ed47367ba91e8bb8104e12b8f11 | |
| md5: 98b6c9dc80eb87b2519b97bcf7e578dd | |
| depends: | |
| - libgcc >=14 | |
| - __glibc >=2.17,<3.0.a0 | |
| - libstdcxx >=14 | |
| - libgcc >=14 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 45829 | |
| timestamp: 1762948049098 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda | |
| sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac | |
| md5: cffd3bdd58090148f4cfcd831f4b26ab | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libgcc >=14 | |
| - libzlib >=1.3.1,<2.0a0 | |
| constrains: | |
| - xorg-libx11 >=1.8.12,<2.0a0 | |
| license: TCL | |
| license_family: BSD | |
| size: 3301196 | |
| timestamp: 1769460227866 | |
| - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda | |
| sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c | |
| md5: ad659d0a2b3e47e38d829aa8cad2d610 | |
| license: LicenseRef-Public-Domain | |
| size: 119135 | |
| timestamp: 1767016325805 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_2.conda | |
| sha256: 245c9ee8d688e23661b95e3c6dd7272ca936fabc03d423cdb3cdee1bbcf9f2f2 | |
| md5: c2a01a08fc991620a74b32420e97868a | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libzlib 1.3.2 h25fd6f3_2 | |
| license: Zlib | |
| license_family: Other | |
| size: 95931 | |
| timestamp: 1774072620848 | |
| - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda | |
| sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 | |
| md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 | |
| depends: | |
| - __glibc >=2.17,<3.0.a0 | |
| - libzlib >=1.3.1,<2.0a0 | |
| license: BSD-3-Clause | |
| license_family: BSD | |
| size: 601375 | |
| timestamp: 1764777111296 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [workspace] | |
| authors = ["nlebovits <nissim.lebovits@vanderbilt.edu>"] | |
| channels = ["conda-forge"] | |
| name = "arg-informal-settlements-analysis" | |
| platforms = ["linux-64"] | |
| version = "0.1.0" | |
| [tasks] | |
| [dependencies] | |
| duckdb = ">=1.5.2,<2" | |
| pandas = ">=3.0.2,<4" | |
| pyarrow = ">=23.0.1,<24" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment