{
  "version": "1.12",
  "date": "2026-10-16",
  "status": "visual model, not field validated",
  "scope": "Local building, bridge and inventory-based approximate crown shadows. Trees enabled by default in shade mode; city inventory or LiDAR pilot, never stacked.",
  "engine": {
    "name": "ArcGIS Maps SDK for JavaScript",
    "pinned_version": "4.33",
    "instant": "SceneView SunLighting.directShadowsEnabled",
    "duration": "ShadowCastViewModel, visualizationType duration, continuous",
    "documentation": "https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/",
    "pinned_implementation": "https://js.arcgis.com/4.33/esri/widgets/ShadowCast/ShadowCastViewModel.js"
  },
  "time": {
    "available_dates": [
      "2026-06-01",
      "2026-08-31"
    ],
    "instant_hour_range": [
      8,
      18
    ],
    "instant_step_minutes": 15,
    "duration_hours": [
      12,
      17
    ],
    "timezone": "Europe/Zagreb",
    "explicit_summer_offset_hours": 2,
    "browser_timezone_independent": true,
    "duration_readout_rounding_minutes": 15,
    "rounding_is_accuracy_claim": false
  },
  "sources": [
    {
      "name": "Grad Zagreb LoD2 buildings",
      "url": "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/ZG3D_LOD2_2025_atributi/SceneServer/layers/0",
      "geometry": "3D meshes",
      "used_for_shadow": true,
      "date": "Source service name 2025 is not a survey date for every object; use per-building Godina_izv and Izvor attributes in main map."
    },
    {
      "name": "Grad Zagreb bridges and overpasses",
      "services": [
        "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/Mostovi_2025_G1/SceneServer/layers/0",
        "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/Mostovi_2025_G2/SceneServer/layers/0",
        "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/Nadvoznjaci_2025_G1/SceneServer/layers/0",
        "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/Nadvoznjaci_2025_G2/SceneServer/layers/0"
      ],
      "geometry": "3D meshes",
      "used_for_shadow": true
    },
    {
      "name": "Grad Zagreb tree inventory",
      "url": "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/ZG3D_stabla_2025_Z/FeatureServer/0",
      "geometry": "source points; modelled 3D geometry",
      "used_for_shadow": true,
      "record_count_audited_2026_10_10": 162676,
      "height": "Class representatives in metres: up to 5 -> 3; 6–10 -> 8; 11–15 -> 13; 16–20 -> 18; 21–25 -> 23; above 25 -> 30 (assumed open class).",
      "crown": "Class diameter representatives: up to 5 -> 3; 6–10 -> 8; 11–15 -> 13; above 15 -> 18 (assumed open class). Not measured outlines.",
      "completeness": "not confirmed citywide",
      "survey_date": "not established per record",
      "rendering": "Opaque ellipsoid crown and cylinder trunk, metres, relative to terrain",
      "included_count": 162210
    },
    {
      "name": "Grad Zagreb Trešnjevka north LiDAR extraction pilot",
      "url": "https://services-eu1.arcgis.com/6BlpNMAIwm2EjKih/arcgis/rest/services/VEGE_extract_TresnjevkaSj_Z/FeatureServer/0",
      "geometry": "source points; modelled 3D geometry",
      "used_for_shadow": true,
      "record_count_audited_2026_10_10": 10362,
      "height": "height = MAX_ - BASEELEV in inspected samples, metres",
      "attributes": "Width and AREA are supplied extraction attributes. No crown polygons or detection accuracy are inferred.",
      "source_description": "DGU multisensor survey, vegetation class 5; tile acquisition date must be verified.",
      "rendering": "Opaque ellipsoid crown and cylinder trunk, metres, relative to terrain",
      "included_count": 10355
    }
  ],
  "spatial_support": {
    "local_max_scale_denominator": 16000,
    "fixed_ground_resolution_m": null,
    "explanation": "View-dependent loaded 3D objects and screen-space shadow rendering; no claim of a uniform raster or surveyed ground precision.",
    "canopy_loading": "1000 Web Mercator metre tiles; viewport plus 400 Web Mercator metre buffer; at most 6000 trees per local view, otherwise asks for a closer view without truncation."
  },
  "limitations": [
    "Terrain receives shadows but does not cast shadows in this SDK model.",
    "Approximate opaque crowns cast shade; leaf gaps/transmission and actual crown outlines are not modelled. Records are not a complete citywide canopy mask; separate canopy coverage above asphalt has not been computed.",
    "Clouds, atmospheric diffuse radiation, crown seasonality and current construction changes are not modelled.",
    "Missing, simplified or unloaded geometry can underestimate shade; rendering depends on camera, hardware and loaded objects.",
    "Duration readout is on the selected visible surface. A roof readout is not a sidewalk readout.",
    "No confirmed sidewalk/asphalt polygons, no percentage of sidewalk shade and no claim of canopy above asphalt.",
    "The optional analysis does not modify LST/NDVI values, does not fill LST gaps and does not estimate Tair, MRT, UTCI or cooling effect.",
    "No field validation or visual browser/WebGL QA was available for this release."
  ],
  "display": "Neutral Esri Light Gray basemap while active, avoiding orthophoto baked shadows. Previous basemap, lighting and building visibility restored on exit.",
  "handover": {
    "available_now": [
      "ERA5/VPD climate context 2016–2025",
      "local visual shadows from buildings, bridges and approximate inventory crowns",
      "alternative Trešnjevka LiDAR pilot crown geometry"
    ],
    "additional_inputs": [
      "Classified LAZ or co-registered DSM/DTM and ortho for canopy pilot",
      "Survey dates, density, class accuracy and leaf condition",
      "Ground-surface and sidewalk polygons, including material beneath crowns",
      "NIR/SWIR scenes with QA for NDMI and common-date VPD/LST comparisons",
      "Street and morphology boundaries for actual urban blocks"
    ],
    "later": [
      "Validated canopy extent and height, then tree segmentation",
      "Shadow intersection with verified pedestrian surfaces",
      "Common-date multivariate block assessment with documented uncertainty",
      "Field-supported human thermal comfort and intervention evaluation"
    ]
  },
  "canopy_manifest": "../canopy/index.json",
  "canopy_base": "Assumed min(5 m, 25% of tree height). Unknown species architecture and crown-base variation."
}
