{
  "version": 2,
  "model_id": "meteofrance_arome_france",
  "model_unavailable_fields": [
    "convective_inhibition",
    "showers",
    "vertical_velocity_925hPa",
    "vertical_velocity_850hPa"
  ],
  "method_status": "experimental_convergence_tracking_not_calibrated",
  "wsp_assessment_status": "available_where_required_data_finite",
  "calculation_version": "wsp_arome_france_local_v22",
  "parcel_integration_policy": {
    "version": 1,
    "method": "independent_parcel_pressure_from_local_lcl",
    "pressure_step_hpa": 5.0,
    "model_top_hpa": 250.0,
    "terminal_partial_step": true,
    "buoyancy_pressure": "reached_step_pressure",
    "domain_independent": true,
    "meaning": "Numerical correction only; environmental weights and convergence policy unchanged"
  },
  "convergence_policy": {
    "version": "convergence_lines_v21_experimental_1",
    "intensity_scale_s_inverse": 0.0002,
    "ridge_prominence_min": 0.02,
    "min_ridge_points": 3,
    "min_length_km": 5.0,
    "elongation_min": 2.0,
    "orientation_coherence_min": 0.65,
    "connection_max_axis_difference_degrees": 45.0,
    "length_full_km": 10.0,
    "elongation_full": 4.0,
    "orientation_coherence_full": 0.95,
    "proximity_sigma_km": 2.5,
    "proximity_max_km": 5.0,
    "tracking_max_residual_km": 6.0,
    "tracking_max_residual_grid_steps": 2.5,
    "tracking_overlap_dilation_grid_steps": 1.0,
    "tracking_max_gap_hours": 1.5,
    "parameter_status": "experimental; frozen before replay; not calibrated",
    "intensity_formula": "max(C,0)/(max(C,0)+scale); NaN stays unknown",
    "smoothing": "strict 3x3 binomial; unknown stencil stays unknown",
    "ridge_width_definition": "PCA transverse spread, floor one native grid step; not frontal width",
    "effective_length_definition": "sum(segment_m * mean(intensity_gate(smoothed_C_at_segment_ends)))/1000",
    "length_thresholds_apply_to": "effective_length_km; geometric length also reported",
    "geometry_quality_formula": "0.5+0.5*mean(clip((effective_length_km-5)/5),clip((elongation-2)/2),clip((coherence-.65)/.30))",
    "support_elongation_definition": "sqrt(lambda_max/lambda_min) of covariance weighted by positive smoothed C within proximity_max_km of ridge path on assessment footprint",
    "support_elongation_usage": "additional eligibility >= elongation_min; does not change geometry-quality formula",
    "tracking_advection": "previous mean wind component normal to previous line axis only",
    "tracking_history_controls_gate": false,
    "small_domain_policy": "diagnostic flag; no relaxed detection thresholds"
  },
  "convergence_module_sha256": "94c66501b41a3aa20e4d27ee295944cab992e19ae82ee1f456d33506d1be9eb2",
  "generated_utc": "2026-11-11T03:30:09.089360+00:00",
  "expires_utc": "2026-10-30T01:05:00+00:00",
  "cadence_minutes": 30,
  "automatic_run": true,
  "area": {
    "lon_min": 10.6,
    "lat_min": 42.6,
    "lon_max": 11.175,
    "lat_max": 42.9
  },
  "policy": {
    "version": 3,
    "method": "experimental_convergence_tracking_not_calibrated",
    "observation_max_age_minutes": 45,
    "model_download_max_age_hours": 18,
    "environment_potential_min": 0.4,
    "environment_score_field": "wsp_max",
    "cape_min": 0,
    "rainfall_min_mm_h": 0.1,
    "ir_cold_max_c": 0,
    "ir_cooling_min_c_per_30min": 4
  },
  "sources": {
    "SRI": {
      "source": "Radar-DPC SRI",
      "valid_utc": "2026-11-11T03:20:00+00:00",
      "timestamp_ms": 1794367200000,
      "license": "CC BY-SA 4.0",
      "fresh": true,
      "creation_utc": "2026:11:11 03:26:57",
      "pixel_m": [
        1000.0,
        1000.0
      ],
      "previous_valid_utc": "2026-11-11T02:50:00+00:00"
    },
    "IR_108": {
      "source": "Radar-DPC IR_108",
      "valid_utc": "2026-10-30T00:20:00+00:00",
      "timestamp_ms": 1793319600000,
      "license": "CC BY-SA 4.0",
      "fresh": false,
      "creation_utc": "2026:10:30 00:27:13",
      "pixel_m": [
        1000.0,
        1000.0
      ],
      "previous_valid_utc": "2026-10-29T23:50:00+00:00"
    },
    "model": {
      "source": "AROME France 2,5 km Single Runs + Marine API / Open-Meteo",
      "model_id": "meteofrance_arome_france",
      "method_status": "experimental_convergence_tracking_not_calibrated",
      "wsp_assessment_status": "available_where_required_data_finite",
      "calculation_version": "wsp_arome_france_local_v22",
      "parcel_integration_policy": {
        "version": 1,
        "method": "independent_parcel_pressure_from_local_lcl",
        "pressure_step_hpa": 5.0,
        "model_top_hpa": 250.0,
        "terminal_partial_step": true,
        "buoyancy_pressure": "reached_step_pressure",
        "domain_independent": true,
        "meaning": "Numerical correction only; environmental weights and convergence policy unchanged"
      },
      "convergence_policy": {
        "version": "convergence_lines_v21_experimental_1",
        "intensity_scale_s_inverse": 0.0002,
        "ridge_prominence_min": 0.02,
        "min_ridge_points": 3,
        "min_length_km": 5.0,
        "elongation_min": 2.0,
        "orientation_coherence_min": 0.65,
        "connection_max_axis_difference_degrees": 45.0,
        "length_full_km": 10.0,
        "elongation_full": 4.0,
        "orientation_coherence_full": 0.95,
        "proximity_sigma_km": 2.5,
        "proximity_max_km": 5.0,
        "tracking_max_residual_km": 6.0,
        "tracking_max_residual_grid_steps": 2.5,
        "tracking_overlap_dilation_grid_steps": 1.0,
        "tracking_max_gap_hours": 1.5,
        "parameter_status": "experimental; frozen before replay; not calibrated",
        "intensity_formula": "max(C,0)/(max(C,0)+scale); NaN stays unknown",
        "smoothing": "strict 3x3 binomial; unknown stencil stays unknown",
        "ridge_width_definition": "PCA transverse spread, floor one native grid step; not frontal width",
        "effective_length_definition": "sum(segment_m * mean(intensity_gate(smoothed_C_at_segment_ends)))/1000",
        "length_thresholds_apply_to": "effective_length_km; geometric length also reported",
        "geometry_quality_formula": "0.5+0.5*mean(clip((effective_length_km-5)/5),clip((elongation-2)/2),clip((coherence-.65)/.30))",
        "support_elongation_definition": "sqrt(lambda_max/lambda_min) of covariance weighted by positive smoothed C within proximity_max_km of ridge path on assessment footprint",
        "support_elongation_usage": "additional eligibility >= elongation_min; does not change geometry-quality formula",
        "tracking_advection": "previous mean wind component normal to previous line axis only",
        "tracking_history_controls_gate": false,
        "small_domain_policy": "diagnostic flag; no relaxed detection thresholds"
      },
      "convergence_module_sha256": "94c66501b41a3aa20e4d27ee295944cab992e19ae82ee1f456d33506d1be9eb2",
      "valid_utc": "2026-11-11T03:00:00+00:00",
      "downloaded_utc": "2026-11-10T18:34:15.122016+00:00",
      "cache": "20261110_18",
      "fresh": true,
      "model_selection_policy": {
        "version": 2,
        "ranking": [
          "model_run_utc_desc",
          "first_acquired_utc_desc"
        ],
        "scope": "all_complete_usable_shared_and_own_caches",
        "initialization_time_must_be_aware_and_not_future": true,
        "download_age_controls_freshness_only": true,
        "changes_wsp_method": false
      },
      "issuance_utc": "2026-11-10T12:00:00+00:00",
      "unavailable_model_fields": [
        "convective_inhibition",
        "showers",
        "vertical_velocity_925hPa",
        "vertical_velocity_850hPa"
      ],
      "missing_fields": [
        "convective_inhibition",
        "showers",
        "vertical_velocity_925hPa",
        "vertical_velocity_850hPa"
      ],
      "field_availability": {
        "temperature_2m": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "dew_point_2m": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "relative_humidity_2m": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "%"
          ]
        },
        "surface_pressure": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "hPa"
          ]
        },
        "wind_speed_10m": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m/s"
          ]
        },
        "wind_direction_10m": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°"
          ]
        },
        "cape": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "J/kg"
          ]
        },
        "precipitation": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "mm"
          ]
        },
        "cloud_cover_low": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "%"
          ]
        },
        "cloud_cover_mid": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "%"
          ]
        },
        "temperature_1000hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "temperature_925hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "temperature_850hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "temperature_700hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "temperature_500hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "temperature_250hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°C"
          ]
        },
        "geopotential_height_1000hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "geopotential_height_925hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "geopotential_height_850hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "geopotential_height_700hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "geopotential_height_500hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "geopotential_height_250hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m"
          ]
        },
        "relative_humidity_850hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "%"
          ]
        },
        "wind_speed_850hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m/s"
          ]
        },
        "wind_direction_850hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°"
          ]
        },
        "wind_speed_500hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "m/s"
          ]
        },
        "wind_direction_500hPa": {
          "status": "available",
          "available_points": 476,
          "total_points": 476,
          "units": [
            "°"
          ]
        },
        "convective_inhibition": {
          "status": "unsupported",
          "available_points": 0,
          "total_points": 476,
          "units": []
        },
        "showers": {
          "status": "unsupported",
          "available_points": 0,
          "total_points": 476,
          "units": [],
          "reason": "AROME non fornisce precipitazione convettiva separata; il residuo API total-rain-snow non e un segnale convettivo utilizzabile"
        },
        "vertical_velocity_925hPa": {
          "status": "unsupported",
          "available_points": 0,
          "total_points": 476,
          "units": []
        },
        "vertical_velocity_850hPa": {
          "status": "unsupported",
          "available_points": 0,
          "total_points": 476,
          "units": []
        }
      },
      "note": "Tutti i punti AROME France 2,5 km appartengono alla stessa emissione UTC. Marine acquisito a blocchi, con emissione originaria non esposta; intervalli di acquisizione nei metadati. La validità di 18 ore parte dal primo blocco acquisito. Filtro AROME sperimentale non calibrato: CAPE, profondita, nubi e linee di convergenza modellistiche. Il tracking descrive strutture nel modello, non trombe osservate. CIN, velocita verticali e rovesci convettivi restano indisponibili e non sono richiesti dal metodo.",
      "download_started_utc": "2026-11-10T18:34:15.122016+00:00",
      "download_completed_utc": "2026-11-10T23:04:30.267854+00:00",
      "acquisition_ranges": {
        "AROME-France-v1": {
          "first_utc": "2026-11-10T18:34:15.122016+00:00",
          "last_utc": "2026-11-10T20:34:34.825878+00:00"
        },
        "Marine": {
          "first_utc": "2026-11-10T21:04:17.982636+00:00",
          "last_utc": "2026-11-10T23:04:30.267854+00:00"
        }
      },
      "provider_run_availability_utc": null,
      "availability_scope": null,
      "marine_issuance_utc": null,
      "refresh_progress": {
        "status": "waiting",
        "note": "Prossima generazione nel rispetto della quota giornaliera"
      },
      "refresh_note": "Prossima generazione nel rispetto della quota giornaliera"
    }
  },
  "errors": {},
  "maps": {
    "SRI": "runs/20261111T033009Z/SRI.png",
    "IR_108": "runs/20261111T033009Z/IR_108.png",
    "wind": "runs/20261111T033009Z/wind.png",
    "assessment": "runs/20261111T033009Z/assessment.png"
  },
  "assessment": "Non valutabile",
  "counts": {
    "Non valutabile": 166,
    "Nessuna concomitanza rilevata": 0,
    "Solo ambiente modellistico": 0,
    "Ambiente + precipitazione": 0,
    "Ambiente + raffreddamento IR": 0
  },
  "stations": {
    "source": "SIR Toscana",
    "fetched_utc": "2026-11-11T03:30:09.089360+00:00",
    "speed_unit": "ms",
    "provider_time": " del 11/11/2026 04.15 (ora solare)",
    "stations": [
      {
        "id": "TOS03002551",
        "name": "Caldana - Gavorrano",
        "latitude": 42.893,
        "longitude": 10.927,
        "provider_value": "0.3",
        "provider_direction": "19"
      },
      {
        "id": "TOS11000005",
        "name": "Rispescia - Grosseto",
        "latitude": 42.706,
        "longitude": 11.145,
        "provider_value": "0.8",
        "provider_direction": "156"
      },
      {
        "id": "TOS11000013",
        "name": "Casotto dei Pescatori - Grosseto",
        "latitude": 42.769,
        "longitude": 11.016,
        "provider_value": "1.3",
        "provider_direction": "58"
      },
      {
        "id": "TOS11000103",
        "name": "Alberese - Grosseto",
        "latitude": 42.661,
        "longitude": 11.017,
        "provider_value": "3.4",
        "provider_direction": "148"
      }
    ],
    "note": "Misure puntuali sulla costa; non usate per interpolare la convergenza sul mare."
  },
  "local_station": {
    "source": "Stazione AllSky / Weather Underground",
    "id": "ICASTI84",
    "name": "Castiglione della Pescaia",
    "valid_utc": "2026-11-11T03:27:49+00:00",
    "fresh": true,
    "values": {
      "temperature": {
        "value": 14.1,
        "unit": "°C"
      },
      "humidity": {
        "value": 87.0,
        "unit": "%"
      },
      "wind_speed": {
        "value": 0.0,
        "unit": "km/h"
      },
      "wind_direction": {
        "value": 250,
        "unit": "°"
      },
      "dew_point": {
        "value": 12.0,
        "unit": "°C"
      }
    }
  },
  "convergence_lines": [
    {
      "line_id": 20,
      "track_id": 20,
      "id": 20,
      "points": [
        [
          10.95,
          42.725
        ],
        [
          10.975,
          42.7
        ],
        [
          11.0,
          42.675
        ],
        [
          11.025,
          42.65
        ],
        [
          11.05,
          42.625
        ]
      ],
      "valid_time_utc": "2026-11-11T03:00:00+00:00",
      "run_id": "2026-11-10T12:00:00+00:00",
      "polyline_lonlat": [
        [
          10.95,
          42.725
        ],
        [
          10.975,
          42.7
        ],
        [
          11.0,
          42.675
        ],
        [
          11.025,
          42.65
        ],
        [
          11.05,
          42.625
        ]
      ],
      "centroid_lonlat": [
        11.0,
        42.675000000000004
      ],
      "length_km": 13.795475318133857,
      "ridge_width_km": 2.0413234392537634,
      "effective_length_km": 7.111992334648282,
      "ridge_points": 5,
      "elongation": 6.7581036169246165,
      "support_elongation": 5.830659858480666,
      "orientation_coherence": 0.882220547511299,
      "geometry_quality": 0.8660778264389977,
      "mean_convergence_s_inverse": 0.00034932575079438504,
      "max_convergence_s_inverse": 0.0005720456915438489,
      "axis_unit_xy": [
        0.5918820170177006,
        -0.8060246137253243
      ],
      "mean_wind_ms_xy": [
        -1.0860196918080163,
        6.222130239476469
      ],
      "track_age_h": 0.0,
      "track_confidence": 0.0,
      "match_residual_km": null,
      "match_overlap": null,
      "boundary_truncated": true,
      "edge_truncated": true,
      "small_domain": false,
      "history_controls_gate": false
    },
    {
      "line_id": 21,
      "track_id": 21,
      "id": 21,
      "points": [
        [
          10.65,
          42.9
        ],
        [
          10.625,
          42.9
        ],
        [
          10.65,
          42.875
        ],
        [
          10.675,
          42.85
        ],
        [
          10.675,
          42.825
        ],
        [
          10.7,
          42.8
        ],
        [
          10.725,
          42.775
        ]
      ],
      "valid_time_utc": "2026-11-11T03:00:00+00:00",
      "run_id": "2026-11-10T12:00:00+00:00",
      "polyline_lonlat": [
        [
          10.65,
          42.9
        ],
        [
          10.625,
          42.9
        ],
        [
          10.65,
          42.875
        ],
        [
          10.675,
          42.85
        ],
        [
          10.675,
          42.825
        ],
        [
          10.7,
          42.8
        ],
        [
          10.725,
          42.775
        ]
      ],
      "centroid_lonlat": [
        10.671428571428569,
        42.846428571428575
      ],
      "length_km": 18.616671923501343,
      "ridge_width_km": 2.0413234392537634,
      "effective_length_km": 10.768364519797673,
      "ridge_points": 7,
      "elongation": 7.876464256157497,
      "support_elongation": 2.172248121298633,
      "orientation_coherence": 0.8351835002603939,
      "geometry_quality": 0.9362130557002188,
      "mean_convergence_s_inverse": 0.00030946870448737585,
      "max_convergence_s_inverse": 0.0005297583788948752,
      "axis_unit_xy": [
        0.44308031179708807,
        -0.8964819224601215
      ],
      "mean_wind_ms_xy": [
        -3.051248381684277,
        2.518552130376139
      ],
      "track_age_h": 0.0,
      "track_confidence": 0.0,
      "match_residual_km": null,
      "match_overlap": null,
      "boundary_truncated": true,
      "edge_truncated": true,
      "small_domain": false,
      "history_controls_gate": false
    }
  ],
  "convergence_summary": {
    "records_available": true,
    "line_count": 2,
    "ids": [
      20,
      21
    ],
    "maximum_track_age_h": 0.0,
    "policy": {
      "version": "convergence_lines_v21_experimental_1",
      "intensity_scale_s_inverse": 0.0002,
      "ridge_prominence_min": 0.02,
      "min_ridge_points": 3,
      "min_length_km": 5.0,
      "elongation_min": 2.0,
      "orientation_coherence_min": 0.65,
      "connection_max_axis_difference_degrees": 45.0,
      "length_full_km": 10.0,
      "elongation_full": 4.0,
      "orientation_coherence_full": 0.95,
      "proximity_sigma_km": 2.5,
      "proximity_max_km": 5.0,
      "tracking_max_residual_km": 6.0,
      "tracking_max_residual_grid_steps": 2.5,
      "tracking_overlap_dilation_grid_steps": 1.0,
      "tracking_max_gap_hours": 1.5,
      "parameter_status": "experimental; frozen before replay; not calibrated",
      "intensity_formula": "max(C,0)/(max(C,0)+scale); NaN stays unknown",
      "smoothing": "strict 3x3 binomial; unknown stencil stays unknown",
      "ridge_width_definition": "PCA transverse spread, floor one native grid step; not frontal width",
      "effective_length_definition": "sum(segment_m * mean(intensity_gate(smoothed_C_at_segment_ends)))/1000",
      "length_thresholds_apply_to": "effective_length_km; geometric length also reported",
      "geometry_quality_formula": "0.5+0.5*mean(clip((effective_length_km-5)/5),clip((elongation-2)/2),clip((coherence-.65)/.30))",
      "support_elongation_definition": "sqrt(lambda_max/lambda_min) of covariance weighted by positive smoothed C within proximity_max_km of ridge path on assessment footprint",
      "support_elongation_usage": "additional eligibility >= elongation_min; does not change geometry-quality formula",
      "tracking_advection": "previous mean wind component normal to previous line axis only",
      "tracking_history_controls_gate": false,
      "small_domain_policy": "diagnostic flag; no relaxed detection thresholds"
    },
    "meaning": "Linee e identita del vento modellistico; non osservazioni di trombe marine"
  },
  "model_summary": {
    "CAPE": 70.0,
    "CIN": null,
    "convergenza": 0.0005720456915438489
  }
}