{
 "generated_at": "2026-09-22T01:26:46Z",
 "catalog": "pubdata",
 "bucket": "jatorre--pubdata",
 "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/",
 "categories": [
  "Calendars",
  "Environment",
  "Places",
  "Population",
  "Reference",
  "Transport",
  "Weather"
 ],
 "datasets": [
  {
   "id": "admin_areas",
   "title": "Countries & regions",
   "tagline": "Boundaries to put your points in a country or a region.",
   "description": "Countries, dependencies and first-level regions (states, provinces, Länder, autonomous communities) as polygons, from Overture Maps' divisions theme. One row per area with its name, codes, bounding box, centroid, area and the geometry as WKB. Use the bounding-box columns for a fast first cut and `ST_GeomFromWKB(geometry_wkb)` with DuckDB's spatial extension for the exact point-in-polygon.",
   "category": "Places",
   "tags": [
    "Places",
    "Spatial",
    "Country"
   ],
   "namespace": "places",
   "table": "admin_areas",
   "tables": [
    "admin_areas"
   ],
   "source": {
    "name": "Overture Maps Foundation, divisions theme",
    "url": "https://docs.overturemaps.org/guides/divisions/",
    "licence": "CDLA-Permissive-2.0 (Overture); OpenStreetMap-derived parts under ODbL 1.0",
    "attribution": "© Overture Maps Foundation; contains data from OpenStreetMap © OpenStreetMap contributors (ODbL) and geoBoundaries.",
    "notes": "Overture releases monthly; the release name is the source version."
   },
   "coverage": {
    "spatial": "worldwide, ~380 countries and dependencies, ~4,700 regions",
    "temporal": "the latest Overture release"
   },
   "refresh": "monthly",
   "mode": "replace",
   "join_keys": [
    "country_code",
    "region_code"
   ],
   "schema": [
    {
     "name": "area_id",
     "type": "string",
     "description": "Overture GERS id of the area"
    },
    {
     "name": "division_id",
     "type": "string",
     "description": "the division the area belongs to"
    },
    {
     "name": "subtype",
     "type": "string",
     "description": "country",
     "dependency or region": null
    },
    {
     "name": "class",
     "type": "string",
     "description": "land or maritime"
    },
    {
     "name": "country_code",
     "type": "string",
     "description": "ISO 3166-1 alpha-2 (joins reference.countries)"
    },
    {
     "name": "region_code",
     "type": "string",
     "description": "ISO 3166-2 region code for regions",
     "e.g. ES-MD": null
    },
    {
     "name": "name",
     "type": "string",
     "description": "primary name"
    },
    {
     "name": "is_land",
     "type": "boolean",
     "description": "land area (as opposed to maritime)"
    },
    {
     "name": "is_territorial",
     "type": "boolean",
     "description": "territorial extent"
    },
    {
     "name": "bbox_xmin",
     "type": "double",
     "description": "bounding box west (longitude)"
    },
    {
     "name": "bbox_ymin",
     "type": "double",
     "description": "bounding box south (latitude)"
    },
    {
     "name": "bbox_xmax",
     "type": "double",
     "description": "bounding box east"
    },
    {
     "name": "bbox_ymax",
     "type": "double",
     "description": "bounding box north"
    },
    {
     "name": "centroid_longitude",
     "type": "double",
     "description": "centroid longitude"
    },
    {
     "name": "centroid_latitude",
     "type": "double",
     "description": "centroid latitude"
    },
    {
     "name": "area_km2",
     "type": "double",
     "description": "spheroidal area",
     "km²": null
    },
    {
     "name": "geometry_wkb",
     "type": "binary",
     "description": "the polygon or multipolygon as WKB (WGS84)"
    },
    {
     "name": "overture_release",
     "type": "string",
     "description": "the release this row came from"
    }
   ],
   "status": "loaded",
   "rows": 5200,
   "size_bytes": 589763492,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:25:56Z",
   "source_version": "overture 2026-08-19.0",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/places/admin_areas/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/places/admin_areas/metadata/v10.metadata.json",
   "card_url": "/pubdata/cards/admin_areas.md",
   "image_url": "/pubdata/images/admin_areas.png",
   "example_sql": "-- the regions of Spain by area\nSELECT region_code, name, round(area_km2) AS km2\nFROM pubdata.places.admin_areas\nWHERE subtype = 'region' AND country_code = 'ES' AND class = 'land'\nORDER BY km2 DESC;\n-- which region is each of your points in (bounding box first, exact polygon second)\nINSTALL spatial; LOAD spatial;\nSELECT p.point_id, a.region_code, a.name\nFROM my.points AS p JOIN pubdata.places.admin_areas AS a\n  ON a.subtype = 'region' AND a.class = 'land'\n AND p.lon BETWEEN a.bbox_xmin AND a.bbox_xmax AND p.lat BETWEEN a.bbox_ymin AND a.bbox_ymax\n AND ST_Contains(ST_GeomFromWKB(a.geometry_wkb), ST_Point(p.lon, p.lat));",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW admin_areas AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/places/admin_areas/metadata/v10.metadata.json');\nSELECT * FROM admin_areas LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.places.admin_areas LIMIT 10;"
  },
  {
   "id": "airports",
   "title": "Airports",
   "tagline": "Every airport, heliport and seaplane base, with codes and coordinates.",
   "description": "OurAirports' worldwide list of airports, heliports, seaplane bases, balloonports and closed fields, with the ICAO, IATA, GPS and local codes, the country and region, the municipality and whether scheduled service exists. One row per airport. The community keeps it current; the export is daily.",
   "category": "Transport",
   "tags": [
    "Transport",
    "Spatial"
   ],
   "namespace": "transport",
   "table": "airports",
   "tables": [
    "airports"
   ],
   "source": {
    "name": "OurAirports",
    "url": "https://ourairports.com/data/",
    "licence": "Public domain (released without restrictions)",
    "attribution": "Data from OurAirports (ourairports.com), David Megginson and contributors, public domain."
   },
   "coverage": {
    "spatial": "worldwide, ~80,000 fields",
    "temporal": "current state (no history)"
   },
   "refresh": "weekly",
   "mode": "replace",
   "join_keys": [
    "country_code",
    "iata_code",
    "icao_code"
   ],
   "schema": [
    {
     "name": "airport_id",
     "type": "int",
     "description": "OurAirports' stable numeric id"
    },
    {
     "name": "ident",
     "type": "string",
     "description": "the identifier OurAirports uses (ICAO where one exists)"
    },
    {
     "name": "type",
     "type": "string",
     "description": "small_airport, medium_airport, large_airport, heliport, seaplane_base, balloonport, closed"
    },
    {
     "name": "name",
     "type": "string",
     "description": "the airport's name"
    },
    {
     "name": "latitude",
     "type": "double",
     "description": "WGS84 degrees"
    },
    {
     "name": "longitude",
     "type": "double",
     "description": "WGS84 degrees"
    },
    {
     "name": "elevation_ft",
     "type": "int",
     "description": "elevation in feet where known"
    },
    {
     "name": "continent",
     "type": "string",
     "description": "AF, AN, AS, EU, NA, OC, SA"
    },
    {
     "name": "country_code",
     "type": "string",
     "description": "ISO 3166-1 alpha-2 (joins reference.countries)"
    },
    {
     "name": "region_code",
     "type": "string",
     "description": "ISO 3166-2 region",
     "e.g. US-PA": null
    },
    {
     "name": "municipality",
     "type": "string",
     "description": "the city the airport serves"
    },
    {
     "name": "scheduled_service",
     "type": "boolean",
     "description": "true when airlines fly scheduled service"
    },
    {
     "name": "icao_code",
     "type": "string",
     "description": "ICAO code where assigned"
    },
    {
     "name": "iata_code",
     "type": "string",
     "description": "IATA code where assigned"
    },
    {
     "name": "gps_code",
     "type": "string",
     "description": "GPS code"
    },
    {
     "name": "local_code",
     "type": "string",
     "description": "local (national) code"
    },
    {
     "name": "wikipedia_url",
     "type": "string",
     "description": "Wikipedia article"
    }
   ],
   "status": "loaded",
   "rows": 86112,
   "size_bytes": 4661688,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:04:56Z",
   "source_version": "Mon, 21 Sep 2026 01:53:59 GMT",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/transport/airports/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/transport/airports/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/airports.md",
   "image_url": "/pubdata/images/airports.png",
   "example_sql": "-- large airports with scheduled service per country\nSELECT country_code, count(*) AS large_airports\nFROM pubdata.transport.airports\nWHERE type = 'large_airport' AND scheduled_service\nGROUP BY 1 ORDER BY 2 DESC LIMIT 20;\n-- the nearest airport to each of your locations (flat-earth approximation, fine under ~200 km)\nSELECT l.location_id, a.iata_code, a.name,\n       6371 * acos(cos(radians(l.lat)) * cos(radians(a.latitude)) * cos(radians(a.longitude) - radians(l.lon))\n                   + sin(radians(l.lat)) * sin(radians(a.latitude))) AS km\nFROM my.locations AS l, pubdata.transport.airports AS a\nWHERE a.type IN ('medium_airport', 'large_airport')\nQUALIFY row_number() OVER (PARTITION BY l.location_id ORDER BY km) = 1;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW airports AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/transport/airports/metadata/v3.metadata.json');\nSELECT * FROM airports LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.transport.airports LIMIT 10;"
  },
  {
   "id": "countries",
   "title": "Countries",
   "tagline": "The reference table every other dataset joins on.",
   "description": "ISO 3166-1 codes (alpha-2, alpha-3, numeric) and names from the ISO/Debian iso-codes data, with the World Bank's region, income group and capital city with coordinates. One row per country or territory (249). Use it to turn a code into a name, a region or a capital, and as the spine for joining the other public datasets.",
   "category": "Reference",
   "tags": [
    "Country",
    "Reference"
   ],
   "namespace": "reference",
   "table": "countries",
   "tables": [
    "countries"
   ],
   "source": {
    "name": "ISO 3166 (iso-codes via pycountry) + World Bank country API",
    "url": "https://data.worldbank.org/",
    "licence": "iso-codes: LGPL-2.1 (data); World Bank: CC BY 4.0",
    "attribution": "ISO 3166 names and codes from the Debian iso-codes project through pycountry (LGPL-2.1); region, income level and capitals from the World Bank Indicators API (CC BY 4.0)."
   },
   "coverage": {
    "spatial": "249 countries and territories",
    "temporal": "current state"
   },
   "refresh": "monthly",
   "mode": "replace",
   "join_keys": [
    "country_code",
    "iso3"
   ],
   "schema": [
    {
     "name": "country_code",
     "type": "string",
     "description": "ISO 3166-1 alpha-2",
     "the join key used across pubdata": null
    },
    {
     "name": "iso3",
     "type": "string",
     "description": "ISO 3166-1 alpha-3 (the World Bank's key)"
    },
    {
     "name": "iso_numeric",
     "type": "int",
     "description": "ISO 3166-1 numeric"
    },
    {
     "name": "name",
     "type": "string",
     "description": "ISO short name in English"
    },
    {
     "name": "official_name",
     "type": "string",
     "description": "ISO official name where defined"
    },
    {
     "name": "common_name",
     "type": "string",
     "description": "ISO common name where defined"
    },
    {
     "name": "wb_region",
     "type": "string",
     "description": "World Bank region",
     "e.g. Europe & Central Asia; null for territories the Bank does not classify": null
    },
    {
     "name": "wb_income_level",
     "type": "string",
     "description": "World Bank income group: High income, Upper middle income, Lower middle income, Low income"
    },
    {
     "name": "capital_city",
     "type": "string",
     "description": "capital city as the World Bank lists it"
    },
    {
     "name": "capital_longitude",
     "type": "double",
     "description": "capital's longitude (WGS84)"
    },
    {
     "name": "capital_latitude",
     "type": "double",
     "description": "capital's latitude (WGS84)"
    },
    {
     "name": "flag",
     "type": "string",
     "description": "the flag emoji"
    }
   ],
   "status": "loaded",
   "rows": 249,
   "size_bytes": 17668,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:04:59Z",
   "source_version": "pycountry 26.2.16 + worldbank 73f56217ac23",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/reference/countries/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/reference/countries/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/countries.md",
   "image_url": "/pubdata/images/countries.png",
   "example_sql": "-- countries per World Bank region and income group\nSELECT wb_region, wb_income_level, count(*) AS countries\nFROM pubdata.reference.countries\nWHERE wb_region IS NOT NULL\nGROUP BY 1, 2 ORDER BY 1, 2;\n-- attach a name and a region to your country codes\nSELECT s.country_code, c.name, c.wb_region, sum(s.revenue) AS revenue\nFROM my.sales AS s JOIN pubdata.reference.countries AS c USING (country_code)\nGROUP BY 1, 2, 3;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW countries AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/reference/countries/metadata/v3.metadata.json');\nSELECT * FROM countries LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.reference.countries LIMIT 10;"
  },
  {
   "id": "earthquakes",
   "title": "Earthquakes",
   "tagline": "Every magnitude 4.5+ event since 2000, where and how deep.",
   "description": "The USGS earthquake catalog for events of magnitude 4.5 and above since 2000: time, location, depth, magnitude and type, the reporting network and the review status. One row per event. The whole table is replaced daily because the USGS revises magnitudes and locations for weeks after an event.",
   "category": "Environment",
   "tags": [
    "Environment",
    "Spatial",
    "Time series"
   ],
   "namespace": "environment",
   "table": "earthquakes",
   "tables": [
    "earthquakes"
   ],
   "source": {
    "name": "USGS Earthquake Hazards Program (FDSN event service)",
    "url": "https://earthquake.usgs.gov/fdsnws/event/1/",
    "licence": "Public domain (US government work)",
    "attribution": "Earthquake catalog from the U.S. Geological Survey, Earthquake Hazards Program; public domain."
   },
   "coverage": {
    "spatial": "worldwide",
    "temporal": "2000-01-01 to yesterday"
   },
   "refresh": "daily",
   "mode": "replace",
   "join_keys": [
    "event_time",
    "latitude",
    "longitude"
   ],
   "schema": [
    {
     "name": "event_id",
     "type": "string",
     "description": "the USGS event id",
     "e.g. us7000tdrv": null
    },
    {
     "name": "event_time",
     "type": "timestamptz",
     "description": "origin time (UTC)"
    },
    {
     "name": "latitude",
     "type": "double",
     "description": "epicentre latitude (WGS84)"
    },
    {
     "name": "longitude",
     "type": "double",
     "description": "epicentre longitude (WGS84)"
    },
    {
     "name": "depth_km",
     "type": "double",
     "description": "hypocentre depth in km"
    },
    {
     "name": "magnitude",
     "type": "double",
     "description": "the preferred magnitude"
    },
    {
     "name": "magnitude_type",
     "type": "string",
     "description": "mww, mb, ms, ml, ..."
    },
    {
     "name": "place",
     "type": "string",
     "description": "the USGS place description"
    },
    {
     "name": "event_type",
     "type": "string",
     "description": "always earthquake here (other event types are excluded)"
    },
    {
     "name": "status",
     "type": "string",
     "description": "reviewed or automatic"
    },
    {
     "name": "network",
     "type": "string",
     "description": "the contributing network code"
    },
    {
     "name": "updated_at",
     "type": "timestamptz",
     "description": "when the USGS last revised the event"
    }
   ],
   "status": "loaded",
   "rows": 187116,
   "size_bytes": 8006332,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:06:02Z",
   "source_version": "usgs fdsn 2026-09-22",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/environment/earthquakes/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/environment/earthquakes/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/earthquakes.md",
   "image_url": "/pubdata/images/earthquakes.png",
   "example_sql": "-- the strongest earthquake per year\nSELECT year(event_time) AS year, max(magnitude) AS max_magnitude\nFROM pubdata.environment.earthquakes GROUP BY 1 ORDER BY 1;\n-- events within ~300 km of your sites in the last year\nSELECT s.site_id, count(*) AS quakes, max(e.magnitude) AS strongest\nFROM my.sites AS s JOIN pubdata.environment.earthquakes AS e\n  ON abs(e.latitude - s.lat) < 2.7 AND abs(e.longitude - s.lon) < 2.7 / cos(radians(s.lat))\nWHERE e.event_time >= now() - INTERVAL 1 YEAR\nGROUP BY 1;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW earthquakes AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/environment/earthquakes/metadata/v3.metadata.json');\nSELECT * FROM earthquakes LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.environment.earthquakes LIMIT 10;"
  },
  {
   "id": "public_holidays",
   "title": "Public holidays",
   "tagline": "Give sales patterns a calendar context.",
   "description": "Public holidays for every country the `holidays` library models, with the subdivisions it knows (US states, Canadian provinces, German Länder, Australian states, ...), for the last ten years and the next two. One row per holiday and day; when a country and one of its subdivisions both observe a day, both rows exist. Names are in English where the library has them.",
   "category": "Calendars",
   "tags": [
    "Country",
    "Date"
   ],
   "namespace": "calendars",
   "table": "public_holidays",
   "tables": [
    "public_holidays"
   ],
   "source": {
    "name": "holidays (Vacanza)",
    "url": "https://github.com/vacanza/holidays",
    "licence": "MIT",
    "attribution": "Public holiday rules from the holidays Python library, © Vacanza contributors, MIT licence.",
    "notes": "Rules, not observations; a government can move a holiday after the library's release."
   },
   "coverage": {
    "spatial": "250 countries and 620+ subdivisions",
    "temporal": "ten years back, two years ahead (rolling)"
   },
   "refresh": "monthly",
   "mode": "replace",
   "join_keys": [
    "country_code",
    "date"
   ],
   "schema": [
    {
     "name": "country_code",
     "type": "string",
     "description": "ISO 3166-1 alpha-2",
     "upper case (joins reference.countries)": null
    },
    {
     "name": "subdivision",
     "type": "string",
     "description": "ISO 3166-2 subdivision code without the country prefix (US-CA -> CA); null for the national calendar"
    },
    {
     "name": "date",
     "type": "date",
     "description": "the day of the holiday"
    },
    {
     "name": "year",
     "type": "int",
     "description": "the calendar year",
     "for cheap filtering": null
    },
    {
     "name": "name",
     "type": "string",
     "description": "the holiday's name in English"
    },
    {
     "name": "observed",
     "type": "boolean",
     "description": "true when the row is a substitute day (\"(observed)\")"
    }
   ],
   "status": "loaded",
   "rows": 161718,
   "size_bytes": 276390,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:06:05Z",
   "source_version": "holidays 0.105",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/calendars/public_holidays/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/calendars/public_holidays/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/public_holidays.md",
   "image_url": "/pubdata/images/public_holidays.png",
   "example_sql": "-- national holidays of Spain and the United States in 2026\nSELECT country_code, date, name\nFROM pubdata.calendars.public_holidays\nWHERE year = 2026 AND subdivision IS NULL AND country_code IN ('ES', 'US')\nORDER BY date;\n-- your daily sales with a holiday flag\nSELECT s.day, s.revenue, h.name AS holiday\nFROM my.sales_daily AS s\nLEFT JOIN pubdata.calendars.public_holidays AS h\n  ON h.date = s.day AND h.country_code = s.country_code AND h.subdivision IS NULL;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW public_holidays AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/calendars/public_holidays/metadata/v3.metadata.json');\nSELECT * FROM public_holidays LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.calendars.public_holidays LIMIT 10;"
  },
  {
   "id": "weather_daily",
   "title": "Daily weather",
   "tagline": "Temperature and rainfall by capital and day.",
   "description": "Daily observations from NOAA's Global Historical Climatology Network for a weather station at each of the world's capitals (the nearest station within 60 km that reports since 2015 and still reports this year): maximum, minimum and average temperature, precipitation, snowfall and snow depth, from 2015 on. One row per station and day. The companion table `weather.stations` says which station stands for which capital, and how far.",
   "category": "Weather",
   "tags": [
    "Daily",
    "Time series",
    "Weather"
   ],
   "namespace": "weather",
   "table": "daily",
   "tables": [
    "daily",
    "stations"
   ],
   "source": {
    "name": "GHCN-Daily (NOAA National Centers for Environmental Information)",
    "url": "https://www.ncei.noaa.gov/products/land-based-station/global-historical-climatology-network-daily",
    "licence": "Public domain (US government work); attribution requested",
    "attribution": "Menne, M.J., I. Durre, R.S. Vose, B.E. Gleason, and T.G. Houston, 2012: An overview of the Global Historical Climatology Network-Daily Database. NOAA NCEI.",
    "notes": "Stations report with a lag of days; recent days can be missing or partly filled."
   },
   "coverage": {
    "spatial": "one station per capital where GHCN has one within 60 km reporting since 2015 (62 capitals at the first load)",
    "temporal": "2015-01-01 to a few days ago"
   },
   "refresh": "weekly",
   "mode": "replace",
   "join_keys": [
    "station_id",
    "day"
   ],
   "schema": [
    {
     "name": "station_id",
     "type": "string",
     "description": "GHCN station id (joins weather.stations)"
    },
    {
     "name": "day",
     "type": "date",
     "description": "the local calendar day of the observation"
    },
    {
     "name": "tmax_c",
     "type": "double",
     "description": "maximum temperature",
     "°C": null
    },
    {
     "name": "tmin_c",
     "type": "double",
     "description": "minimum temperature",
     "°C": null
    },
    {
     "name": "tavg_c",
     "type": "double",
     "description": "average temperature",
     "°C (not every station reports it)": null
    },
    {
     "name": "precipitation_mm",
     "type": "double",
     "description": "precipitation",
     "mm": null
    },
    {
     "name": "snowfall_mm",
     "type": "double",
     "description": "snowfall",
     "mm": null
    },
    {
     "name": "snow_depth_mm",
     "type": "double",
     "description": "snow depth",
     "mm": null
    }
   ],
   "status": "loaded",
   "rows": 243756,
   "size_bytes": 1271101,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:06:33Z",
   "source_version": "ghcn-daily 2026-09-22",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/weather/daily/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/weather/daily/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/weather_daily.md",
   "image_url": "/pubdata/images/weather_daily.png",
   "example_sql": "-- last week in Madrid\nSELECT d.day, d.tmax_c, d.tmin_c, d.precipitation_mm\nFROM pubdata.weather.daily AS d JOIN pubdata.weather.stations AS s USING (station_id)\nWHERE s.capital_city = 'Madrid' AND d.day >= current_date - 7\nORDER BY d.day;\n-- your daily sales against the capital's rain, by country\nSELECT s.day, s.country_code, s.revenue, w.precipitation_mm, w.tmax_c\nFROM my.sales_daily AS s\nJOIN pubdata.weather.stations AS st ON st.country_code = s.country_code\nJOIN pubdata.weather.daily AS w ON w.station_id = st.station_id AND w.day = s.day;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW daily AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/weather/daily/metadata/v3.metadata.json');\nSELECT * FROM daily LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.weather.daily LIMIT 10;"
  },
  {
   "id": "world_bank_indicators",
   "title": "Population & economy",
   "tagline": "Put local demand in context.",
   "description": "Eight of the World Bank's most used yearly series for every economy since 1960, in long format: population and its growth, urban share, life expectancy, GDP and GDP per capita, Internet users, CO2 per capita. One row per economy, indicator and year where the Bank has a value. Regional and income aggregates are included and flagged.",
   "category": "Population",
   "tags": [
    "Population",
    "Country",
    "Time series"
   ],
   "namespace": "population",
   "table": "world_bank_indicators",
   "tables": [
    "world_bank_indicators"
   ],
   "source": {
    "name": "World Development Indicators (World Bank)",
    "url": "https://data.worldbank.org/",
    "licence": "CC BY 4.0",
    "attribution": "World Development Indicators, The World Bank, Creative Commons Attribution 4.0.",
    "notes": "Values are revised every year; the whole table is replaced at each refresh."
   },
   "coverage": {
    "spatial": "217 economies plus 48 aggregates",
    "temporal": "1960 to the latest published year"
   },
   "refresh": "monthly",
   "mode": "replace",
   "join_keys": [
    "country_code",
    "iso3",
    "year"
   ],
   "schema": [
    {
     "name": "iso3",
     "type": "string",
     "description": "World Bank economy code (ISO 3166-1 alpha-3 for countries)"
    },
    {
     "name": "country_code",
     "type": "string",
     "description": "ISO 3166-1 alpha-2 (joins reference.countries); null for aggregates and Kosovo"
    },
    {
     "name": "country_name",
     "type": "string",
     "description": "the economy's name as the Bank lists it"
    },
    {
     "name": "indicator_code",
     "type": "string",
     "description": "World Bank indicator code, e.g. SP.POP.TOTL"
    },
    {
     "name": "indicator_name",
     "type": "string",
     "description": "the indicator's name"
    },
    {
     "name": "year",
     "type": "int",
     "description": "the calendar year"
    },
    {
     "name": "value",
     "type": "double",
     "description": "the value in the indicator's unit (people, %, current US$, years, t CO2e)"
    },
    {
     "name": "is_aggregate",
     "type": "boolean",
     "description": "true for regions",
     "income groups and other aggregates": null
    }
   ],
   "status": "loaded",
   "rows": 119208,
   "size_bytes": 1053227,
   "format_version": 2,
   "refreshed_at": "2026-09-22T01:06:46Z",
   "source_version": "worldbank lastupdated 2026-07-13",
   "public_url": "https://s3.lakehousebox.com/jatorre--pubdata/population/world_bank_indicators/",
   "metadata_url": "https://s3.lakehousebox.com/jatorre--pubdata/population/world_bank_indicators/metadata/v3.metadata.json",
   "card_url": "/pubdata/cards/world_bank_indicators.md",
   "image_url": "/pubdata/images/world_bank_indicators.png",
   "example_sql": "-- population of every country in the latest available year\nSELECT country_code, country_name, year, value AS population\nFROM pubdata.population.world_bank_indicators\nWHERE indicator_code = 'SP.POP.TOTL' AND NOT is_aggregate\nQUALIFY row_number() OVER (PARTITION BY iso3 ORDER BY year DESC) = 1\nORDER BY population DESC LIMIT 10;\n-- pivot two series side by side\nSELECT iso3, year,\n       max(value) FILTER (WHERE indicator_code = 'SP.POP.TOTL') AS population,\n       max(value) FILTER (WHERE indicator_code = 'NY.GDP.PCAP.CD') AS gdp_per_capita_usd\nFROM pubdata.population.world_bank_indicators\nWHERE NOT is_aggregate AND year >= 2015\nGROUP BY 1, 2;",
   "duckdb_anonymous": "INSTALL iceberg; LOAD iceberg; INSTALL httpfs; LOAD httpfs;\n-- anonymous: the bucket is public, requests go unsigned\nCREATE OR REPLACE SECRET pubdata (TYPE S3, ENDPOINT 's3.lakehousebox.com', URL_STYLE 'path', REGION 'us-east-1');\nCREATE OR REPLACE VIEW world_bank_indicators AS SELECT * FROM iceberg_scan('https://s3.lakehousebox.com/jatorre--pubdata/population/world_bank_indicators/metadata/v3.metadata.json');\nSELECT * FROM world_bank_indicators LIMIT 10;",
   "duckdb_account": "# with a LakehouseBox account (any organisation): the catalog by name, the REST catalog does the rest\nlhbox duckdb --catalog pubdata     # opens DuckDB attached as `pubdata`\nSELECT * FROM pubdata.population.world_bank_indicators LIMIT 10;"
  }
 ]
}
