{
  "version": "1.4",
  "date": "2026-10-10",
  "public_url": "https://zagreb.dandelionstudio.hr",
  "changes": [
    "Fixed 28–46 C contrast palette and 100% default opacity; wider 25–50 C palette retained.",
    "Every city pixel displays thermal colour or an explicit missing/water category; no temperature completeness claim.",
    "Optional >=4-date partial-season observed median, clearly dotted.",
    "Optional actual mixed-water-edge thermal context, marked and excluded from land summaries/building colours.",
    "Optional original LoD2 building colours transfer coarse LST at official envelope centres; no thermal resolution increase.",
    "DHMZ-based conditional delivery/storage volume balance with editable assumptions."
  ],
  "observed_coverage": {
    "observed_land_fraction": 0.7479875712742566,
    "extended_land_fraction": 0.828885005897825,
    "added_partial_cells": 56992,
    "context_land_fraction": 0.917509939715854,
    "mixed_edge_cells": 62436,
    "mixed_edge_rule": "At least 4 raw QA-passing dates. Spatial footprint may include water; some pixels lack a summer month. Separate visual context only, excluded from land summaries and building colours.",
    "partial_month_coverage": "At least 4 retained QA-passing observations; at least one summer month missing. Not comparable to complete-summer composite without sampling caveat.",
    "display": "Every city cell has visible thermal colour or explicit patterned no-data/water category; no invented LST values.",
    "source_unchanged": true,
    "palettes": {
      "standard": {
        "min_c": 25,
        "max_c": 50,
        "colors": [
          "#285995",
          "#45b6bd",
          "#dbdf9d",
          "#efab50",
          "#e7653c",
          "#9c2849"
        ]
      },
      "contrast": {
        "min_c": 28,
        "max_c": 46,
        "colors": [
          "#244d89",
          "#459fba",
          "#82c8bd",
          "#eceab4",
          "#f3b85f",
          "#e76e44",
          "#9c2849"
        ]
      }
    },
    "quantiles_c": {
      "p02": 28.67,
      "p10": 29.91,
      "p50": 35.91,
      "p90": 42.04,
      "p98": 44.33
    }
  },
  "original_daily_equality": {
    "scenes": 19,
    "mismatches": 0,
    "QA_thresholds_changed": false
  },
  "swmm_executed": false,
  "model_gap_filling_published": false,
  "model_research": {
    "validation": "5-fold 2km spatial blocks with 500m exclusion; retained observed 100m targets",
    "overall_RMSE_C": 1.375888,
    "low_NDVI_RMSE_C": 1.90457,
    "low_NDVI_R2": 0.109281,
    "decision": "Not published as temperature gap fill: weak within-low-NDVI contrasts and unvalidated actual missing regions; not ground validation."
  },
  "verification": {
    "original_analysis_arrays_unchanged": true,
    "existing_address_references": "passed",
    "source_palette_atomic_updates": "passed",
    "partial_pixel_identity_and_counts": "passed",
    "mixed_context_excluded_from_land_summary": "passed",
    "official_building_ID_position_pairing": "passed 357682 objects",
    "thermal_raster_visual_inspection": "passed",
    "DHMZ_volume_balance_capacity_and_input_validation": "passed",
    "browser_webgl_mobile": "unavailable; not tested",
    "field_validation": "not performed"
  }
}