{
  "schema_version": "barindex.habitat-research-package.v1",
  "status": "prepared_for_distribution",
  "package_id": "bilberry-habitat-v4-2026-10-30",
  "licence": "CC-BY-4.0",
  "licence_url": "https://creativecommons.org/licenses/by/4.0/",
  "creator": "Emil Hessman",
  "licensor": "Emil Hessman",
  "citation": "Emil Hessman (2026). B\u00e4rindex: Bilberry habitat suitability in Sweden. Model release v4, 23 August 2026. https://xn--brindex-5wa.se/data/",
  "landing_page": "https://xn--brindex-5wa.se/data/",
  "package_date": "2026-10-30",
  "release_id": "bar_habitat_release_v4",
  "model_date": "2026-08-23",
  "species": "Vaccinium myrtillus",
  "species_slug": "blabar",
  "model_source": "low_complexity_hgb_challenger_v4",
  "grid": {
    "crs": "EPSG:3006",
    "pixel_size_m": [
      1000,
      1000
    ],
    "width": 649,
    "height": 1538,
    "bounds_west_south_east_north": [
      269000,
      6134000,
      918000,
      7672000
    ],
    "transform": [
      1000.0,
      0.0,
      269000.0,
      0.0,
      -1000.0,
      7672000.0
    ],
    "pixel_interpretation": "area",
    "dataset_cells": 447940,
    "scored_cells": 446606,
    "excluded_cells": 1334,
    "outside_dataset_pixels": 550222,
    "products": {
      "bilberry-habitat.tif": {
        "dtype": "float32",
        "nodata": -9999.0,
        "bands": [
          {
            "band": 1,
            "name": "habitat_score",
            "units": "1",
            "valid_range": "0,1",
            "meaning": "Mean of five fold-model occurrence scores"
          },
          {
            "band": 2,
            "name": "habitat_percentile",
            "units": "1",
            "valid_range": "0,1",
            "meaning": "National eligible-cell rank; not probability"
          }
        ]
      },
      "bilberry-quality.tif": {
        "dtype": "uint8",
        "nodata": 255,
        "bands": [
          {
            "band": 1,
            "name": "score_eligible",
            "codes": "0=excluded;1=scored;255=outside_dataset"
          },
          {
            "band": 2,
            "name": "uncertainty_tier",
            "codes": "1=low;2=medium;3=high;255=outside_dataset",
            "meaning": "Heuristic category; not a confidence interval"
          }
        ]
      }
    }
  },
  "inputs": {
    "release_manifest": {
      "path": "data/ml/releases/bar_habitat_release_v4/manifest.json",
      "sha256": "7d89dd17cfac85faf432c1868f3781e02e8d324c3976010e47cc7555a2a2bf09"
    },
    "surface": {
      "path": "data/ml/surfaces/bar_habitat_national_shadow_v3.parquet",
      "sha256": "0e7bfe59377cbc9dc8472eb8cd2172c8f09767d05ba500e1c35fcc4ec1903173",
      "bytes": 32404698
    },
    "release_contract": {
      "path": "ml/bar/contracts/bar_habitat_release_v4.frozen.json",
      "sha256": "0c47933fd5b19655505bb393fcd591302896e998e516040734af90e8cf2278fa",
      "bytes": 5027
    },
    "surface_report": {
      "path": "data/ml/reports/bar_habitat_national_shadow_v3.json",
      "sha256": "642c481bde6d22e1e3da2cfaae61c6d19232021089dc0c1f0ba90eb0b1181f49",
      "bytes": 6005
    },
    "public_review": {
      "path": "barindex/data/habitat-review.json",
      "sha256": "e72cbe39a07a2a348698c99076fce78f5448471030c818e69b464caa9edcb559",
      "bytes": 7210
    },
    "experiment_report": {
      "path": "data/ml/reports/bar_habitat_low_complexity_challenger_v4.json",
      "sha256": "de9d8fd9ac9639d5d76904b383992e983990b6f044dfe5f8e12568dbdd2830f0",
      "bytes": 74293
    },
    "readme": {
      "path": "ml/docs/barindex-research-package.md",
      "sha256": "0d8eb2daee4ad173783144786c3172d28307d96589c5a50efd42e0fac777c6d9"
    },
    "exporter": {
      "path": "ml/scripts/export_bar_research_packages.py",
      "sha256": "7df3559db6ccdff662a9a565ad617c962619c3cecac1ed01b12bcdb34eb53461"
    },
    "map_renderer": {
      "path": "ml/scripts/export_bar_habitat_review_assets.py",
      "sha256": "6484d420f95ea17c8632db6b3e57a0bb9b57522d13a41f506b19f4f9650531ca"
    },
    "dependency_lock": {
      "path": "ml/uv.lock",
      "sha256": "4822a34b3e6e2e536c2aa33da18481751c40aa25c34670dc310c6fb3a560bed4"
    },
    "regional_report": {
      "path": "data/ml/reports/bar_habitat_low_complexity_regional_audit_v4.json",
      "sha256": "5286e08b9d12e8365d0fa98dfe3e290498d8fc4b9ac830fd26477518e020b620"
    },
    "source_registry": {
      "path": "ml/feature_sources/feature_source_registry_v1.json",
      "sha256": "ca854e616f40f14027aadc796248ad66afc294dff9a24cb8959ad63af8dd1fae"
    },
    "nils_transport_report": {
      "path": "data/ml/reports/bar_bilberry_nils_transport_v1.json",
      "sha256": "3be15134f643387432d4ca6ff4fb49556b7128707c3aeb7f32516f02197783e1"
    },
    "nils_note": {
      "path": "ml/docs/barindex-bilberry-nils-note.md",
      "sha256": "ae2adb56bf96ad83a09b71d67db4b4fee0a4cf37990ea731c24d670960b53234"
    }
  },
  "verification": {
    "all_scored_values_exact": true,
    "quality_and_masks_exact": true,
    "map_geometry_exact": true,
    "map_assets_reproduced_from_tiffs": [
      {
        "path": "barindex/public/habitat/blabar-habitat-lookup.png",
        "sha256": "933b119a431378b8f5fd6dcab328dbf08d03bd22c3136e558c24124d91a3b658",
        "bytes": 679045
      },
      {
        "path": "barindex/public/habitat/blabar-habitat-percentile.png",
        "sha256": "20d04168119c2da0262a2bc1370d954d2f4a26a3c2ea7aec28b838b3c573c6d1",
        "bytes": 765518
      },
      {
        "path": "barindex/public/habitat/blabar-habitat-web-mercator-overview.png",
        "sha256": "c84cddaf493774dbd3d05933283da8d2de3bed4bfeb7631065995d7c51ccd030",
        "bytes": 11662
      },
      {
        "path": "barindex/public/habitat/blabar-habitat-web-mercator-regional.png",
        "sha256": "171d556a56c27514e8ce9bc885fb629dfe85159c3c5e094d54cf81bb2df82193",
        "bytes": 74981
      },
      {
        "path": "barindex/public/habitat/blabar-habitat-web-mercator.png",
        "sha256": "58e4fb431f2717e2d1326b92d5a2a4939163408f0a2f20e37215cb86dd1b0f9f",
        "bytes": 593659
      },
      {
        "path": "barindex/public/habitat/blabar-uncertainty.png",
        "sha256": "33ab7f9f36240735b9b1f20a632003d39c01a0c9036dbd29cafba9a38b234570",
        "bytes": 99313
      }
    ]
  },
  "software": {
    "python": "3.14.3",
    "numpy": "2.4.6",
    "pandas": "2.3.3",
    "rasterio": "1.5.0",
    "gdal": "3.12.1"
  },
  "files": {
    "README.md": {
      "sha256": "3e83e12c4d4c5f393c9949b58129bea2a1c9cb6c5b19daa39158a53f9883940b",
      "bytes": 12388
    },
    "bilberry-habitat.tif": {
      "sha256": "4e5a9d80dae1a471d81c4a9b8a0aaf3f24e8e612e2bc28a36e110b0678b96ed9",
      "bytes": 3856617
    },
    "bilberry-quality.tif": {
      "sha256": "461461944fe9f533cf4d0259d2825ad4d12da5c5fcfbdb0bc012317472241330",
      "bytes": 166531
    }
  }
}
