AZIMUTIS — EXPORT HORAIRE / HOURLY EXPORT
FR — Les données météo PVGIS sont estimées, non mesurées sur le site. Chaque année météo est conservée séparément.
Les colonnes pv_* contiennent la production recalée sur la moyenne annuelle de l’étude. Les colonnes pvgis_* conservent la production source avant recalage.
Un coefficient annuel par scénario est appliqué à toutes les années. Il préserve les variations entre années ; les mois ne sont pas recalés sur les moyennes mensuelles de l’étude.
Les totaux de PVcalc et seriescalc peuvent différer même sur une période commune. Le recalage assure la cohérence avec le bilan annuel PVcalc de l’étude ; il ne constitue pas une correction physique horaire détaillée.
Les différences sont calculées sans masque moins avec masque. Une valeur négative peut déjà provenir des résultats du modèle PVGIS ; elle ne démontre pas un gain physique dû au masque. Le recalage peut aussi introduire un écart négatif. Les valeurs sont conservées sans écrêtage.
quality_flags : negative_source_pv_difference signale un écart de production négatif avant recalage ; negative_source_poa_difference signale un écart de rayonnement négatif avant recalage (si météo exportée). negative_recalibrated_difference signale tout écart de production négatif après recalage, quelle que soit son origine ; negative_recalibration_induced_difference précise que cet écart devient négatif uniquement après recalage. Seuil de signalement : écart inférieur à -0,000001 dans l’unité de la colonne (kWh ou W/m²). Les compteurs correspondants figurent dans les métadonnées ; le compteur POA vaut null si la météo est absente.
Le rayonnement et la météo ne sont pas recalés. Le DNI est dérivé du direct horizontal et de la hauteur solaire ; en dessous de 5°, les valeurs non fiables restent vides.
timestamp_pvgis_utc conserve la date et les minutes sources. simulation_timestamp_utc désigne un créneau du calendrier de référence 2021, pas une observation historique.
Le 29 février reste présent dans les données sources, avec des champs de simulation vides. L’autoconsommation utilise 8 760 créneaux par année et les jours de semaine du calendrier de référence.
La consommation est issue du profil estimé enregistré. Les flux réseau tiennent compte de la batterie de l’étude même si les colonnes batterie ne sont pas sélectionnées.
La charge batterie est l’énergie à l’entrée ; la décharge est l’énergie livrée ; battery_stored_end_kwh est l’énergie stockée en fin de créneau. Rendement aller-retour : 90 %.
Sans masque signifie sans horizon PVGIS. Le masque angulaire ne représente pas les effets électriques détaillés de l’ombrage sur les modules et chaînes.
horizonConfiguration décrit les paramètres envoyés : le scénario masqué utilise le userhorizon Azimutis, sans ajout de l’horizon terrain PVGIS. Les réponses brutes pvgisInputs sont conservées, y compris le libellé DEM-calculated éventuellement renvoyé par PVGIS.
pvgis_reconstruction_flag reprend Int de PVGIS : 1 signifie que les valeurs de rayonnement ont été reconstruites. Ce nom remplace pvgis_interpolation_flag dans le format 2.
Synthèse : mois UTC de janvier à décembre puis total annuel, pour chaque année et pour les moyennes (weather_year=mean). Ces moyennes portent uniquement sur les années exportées, pas sur toute la période de l’étude. Les valeurs sources incluent le 29 février ; la simulation l’exclut.
Les irradiations estimées en kWh/m² sont la somme des échantillons en W/m² × 1 h / 1 000. Chaque échantillon représente une heure ; il ne s’agit pas de mesures continues. Le pourcentage POA est calculé à partir des totaux sans masque et avec masque, jamais par moyenne des pourcentages horaires.
Si un échantillon de rayonnement manque, le total concerné et les moyennes correspondantes restent vides. irradiation_missing_hours compte les heures où au moins une donnée nécessaire aux irradiations manque (nombre moyen pour weather_year=mean) ; quality_flags indique incomplete_irradiation. Les différences POA restent vides si un total nécessaire manque, et le pourcentage reste vide si le total sans masque est nul.
CSV : UTF-8 avec BOM, séparateur point-virgule, décimales avec point. Dans Excel, importer en choisissant ces conventions si la détection automatique diffère. Identifiants de colonnes techniques en anglais ; unités dans les noms.

EN — TECHNICAL METHOD
CSV: UTF-8 BOM; separator = semicolon; decimal = dot. Column identifiers and units are stable English technical identifiers.
PVGIS source: https://joint-research-centre.ec.europa.eu/photovoltaic-geographical-information-system-pvgis/using-pvgis-5/pvgis-5-tools/hourly-radiation_en
Source timestamps retain PVGIS minutes and leap days. Each P sample (W per 1 kWp) represents one hour for estimated energy: P / 1000 * installed kWp.
PVGIS satellite irradiance samples may be instantaneous, while reanalysis uses hourly averages. Weather is modelled, not site measurements.
Simulation uses 8760 slots on the reference calendar 2021 UTC for each weather year. Minutes are assigned to their hour. February 29 has source values only; simulation fields are empty.
The simulation timestamp is a reference-calendar slot, NOT a historical observation. Local consumption weekdays and daylight saving time follow this reference calendar.
pv_*: production recalibrated to the study. pvgis_*: source production before recalibration. Each scenario uses one annual coefficient shared by all weather years; no monthly recalibration.
The mean of yearly pv_shaded_kwh totals equals the study annual production. Monthly totals and individual years need not equal the long-term study averages.
PVcalc and seriescalc totals can differ even over the same period. Annual scaling aligns the study energy balance; it is not a detailed hourly physical correction.
Differences are unshaded minus shaded. Negative values can already occur in the PVGIS model output and do not demonstrate a physical gain caused by shading. Scaling can also introduce negative differences. Values are retained without clipping.
quality_flags: negative_source_pv_difference marks negative source production differences; negative_source_poa_difference marks negative source irradiance differences (when weather is exported). negative_recalibrated_difference marks any negative production difference after scaling, regardless of origin; negative_recalibration_induced_difference identifies differences that become negative only after scaling. Flag threshold: difference below -0.000001 in the column unit (kWh or W/m2). Corresponding counts are in the metadata; the POA count is null when weather is omitted.
Unshaded means usehorizon=0 (no terrain horizon). Shaded uses the Azimutis angular horizon; this is not module/string-level electrical shading modelling.
horizonConfiguration records the request settings: the shaded scenario uses the Azimutis userhorizon without adding the PVGIS terrain horizon. Raw pvgisInputs responses are preserved, including any DEM-calculated label returned by PVGIS.
pvgis_reconstruction_flag preserves PVGIS Int: 1 means radiation values were reconstructed. This replaces pvgis_interpolation_flag in format 2.
Irradiance (W/m2) and weather are not recalibrated. POA = direct + diffuse + reflected. DNI is derived from horizontal beam / sin(PVGIS elevation), only at elevation >= 5 degrees; unreliable values are empty and flagged.
Missing optional weather values remain empty and flagged. Night-time DNI is zero only when horizontal beam is zero and elevation <= 0.
Self-consumption uses the saved synthetic consumption profile and existing annual cyclic battery simulation (90% round-trip efficiency; power defaults to 0.5C). It is not a metered load profile.
Grid flows use the study battery even if battery columns are hidden. Battery charge is input energy; discharge is delivered energy; stored energy is measured at the end of the slot.
Monthly summary groups by source UTC month. Raw source totals include February 29; simulation totals exclude it. Sum before rounding; CSV values rounded to 8 decimals.
Summary order: January to December, then annual total, for each year and for the means (weather_year=mean). Means cover only the exported years, not the full study period.
Estimated irradiation in kWh/m2 = sum of W/m2 samples * 1 hour / 1000. Each sample represents one hour, not continuous measurements. POA difference percentages use unshaded and shaded totals, never averaged hourly percentages.
If an irradiance sample is missing, the affected total and corresponding means remain empty. irradiation_missing_hours counts hours missing at least one input needed for irradiation (mean count for weather_year=mean); quality_flags reports incomplete_irradiation. POA differences remain empty if a required total is missing; the percentage remains empty when the unshaded total is zero.

{
  "formatVersion": 2,
  "projectId": "demo-seo-lyon-9kwc",
  "projectName": "DEMONSTRATION Lyon 9 kWc - horizon fictif",
  "inputRevision": 1,
  "analysisGeneratedAt": "2026-11-09T19:43:41.561Z",
  "exportedAt": "2026-11-09T19:43:46.315Z",
  "options": {
    "language": "fr",
    "weather": true,
    "solar": true,
    "selfConsumption": true,
    "battery": true
  },
  "latitude": 45.75,
  "longitude": 4.85,
  "tiltDeg": 30,
  "compassAzimuthDeg": 180,
  "installedPowerKw": 9,
  "source": "PVGIS v5_3 seriescalc",
  "radiationDatabase": "PVGIS-SARAH3",
  "studyWeatherPeriod": [
    2005,
    2023
  ],
  "hourlyWeatherYears": [
    2021,
    2022,
    2023
  ],
  "timeZone": "Europe/Paris",
  "annualTargetMaskedKwh": 11384.19,
  "annualTargetUnmaskedKwh": 11490.93,
  "sourceMeanMaskedKwhExcludingLeapDay": 11689.706910000015,
  "sourceMeanUnmaskedKwhExcludingLeapDay": 11775.86964000001,
  "maskedFactor": 0.9738644508068326,
  "unmaskedFactor": 0.9758030915158799,
  "negativeRecalibratedDifferenceHours": 0,
  "missingWeatherHours": 0,
  "negativeSourcePvDifferenceHours": 0,
  "negativeSourcePoaDifferenceHours": 0,
  "negativeRecalibrationInducedDifferenceHours": 0,
  "systemLossPct": 14,
  "maskSha256": "e12f3e615e32f55bf9b208fdc344ebc9f7fbd21fa317acc5baaab8078ad4e15d",
  "horizonDegreesFromNorthEvery7_5Degrees": "8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0",
  "horizonConfiguration": {
    "shaded": {
      "horizonMode": "userhorizon",
      "horizonSource": "Azimutis mask",
      "pvgisTerrainHorizonUsed": false
    },
    "unshaded": {
      "horizonMode": "none",
      "horizonSource": null,
      "pvgisTerrainHorizonUsed": false
    },
    "horizontal": {
      "horizonMode": "none",
      "horizonSource": null,
      "pvgisTerrainHorizonUsed": false
    }
  },
  "selfConsumptionInputs": {
    "annualConsumptionKwh": 12000,
    "consumptionProfileId": "daywork",
    "batterySizingMode": "manual",
    "manualBatteryCapacityKwh": 5
  },
  "selectedBatteryCapacityKwh": 5,
  "pvgisInputs": [
    {
      "location": {
        "latitude": 45.75,
        "longitude": 4.85,
        "elevation": 171
      },
      "meteo_data": {
        "radiation_db": "PVGIS-SARAH3",
        "meteo_db": "ERA5",
        "year_min": 2021,
        "year_max": 2023,
        "use_horizon": true,
        "horizon_db": null,
        "horizon_data": "DEM-calculated"
      },
      "mounting_system": {
        "fixed": {
          "slope": {
            "value": 30,
            "optimal": false
          },
          "azimuth": {
            "value": 0,
            "optimal": false
          },
          "type": "free-standing"
        }
      },
      "pv_module": {
        "technology": "c-Si",
        "peak_power": 1,
        "system_loss": 14
      }
    },
    {
      "location": {
        "latitude": 45.75,
        "longitude": 4.85,
        "elevation": 171
      },
      "meteo_data": {
        "radiation_db": "PVGIS-SARAH3",
        "meteo_db": "ERA5",
        "year_min": 2021,
        "year_max": 2023,
        "use_horizon": false,
        "horizon_db": null
      },
      "mounting_system": {
        "fixed": {
          "slope": {
            "value": 30,
            "optimal": false
          },
          "azimuth": {
            "value": 0,
            "optimal": false
          },
          "type": "free-standing"
        }
      },
      "pv_module": {
        "technology": "c-Si",
        "peak_power": 1,
        "system_loss": 14
      }
    },
    {
      "location": {
        "latitude": 45.75,
        "longitude": 4.85,
        "elevation": 171
      },
      "meteo_data": {
        "radiation_db": "PVGIS-SARAH3",
        "meteo_db": "ERA5",
        "year_min": 2021,
        "year_max": 2023,
        "use_horizon": false,
        "horizon_db": null
      },
      "mounting_system": {
        "fixed": {
          "slope": {
            "value": 0,
            "optimal": false
          },
          "azimuth": {
            "value": 0,
            "optimal": false
          },
          "type": "free-standing"
        }
      },
      "pv_module": {
        "technology": "c-Si",
        "peak_power": 1,
        "system_loss": 14
      }
    }
  ],
  "pvgisMetadata": [
    {
      "inputs": {
        "location": {
          "description": "Selected location",
          "variables": {
            "latitude": {
              "description": "Latitude",
              "units": "decimal degree"
            },
            "longitude": {
              "description": "Longitude",
              "units": "decimal degree"
            },
            "elevation": {
              "description": "Elevation",
              "units": "m"
            }
          }
        },
        "meteo_data": {
          "description": "Sources of meteorological data",
          "variables": {
            "radiation_db": {
              "description": "Solar radiation database"
            },
            "meteo_db": {
              "description": "Database used for meteorological variables other than solar radiation"
            },
            "year_min": {
              "description": "First year of the calculations"
            },
            "year_max": {
              "description": "Last year of the calculations"
            },
            "use_horizon": {
              "description": "Include horizon shadows"
            },
            "horizon_db": {
              "description": "Source of horizon data"
            }
          }
        },
        "mounting_system": {
          "description": "Mounting system",
          "choices": "fixed, vertical_axis, inclined_axis, two_axis",
          "fields": {
            "slope": {
              "description": "Inclination angle from the horizontal plane",
              "units": "degree"
            },
            "azimuth": {
              "description": "Orientation (azimuth) angle of the (fixed) PV system (0 = S, 90 = W, -90 = E)",
              "units": "degree"
            }
          }
        },
        "pv_module": {
          "description": "PV module parameters",
          "variables": {
            "technology": {
              "description": "PV technology"
            },
            "peak_power": {
              "description": "Nominal (peak) power of the PV module",
              "units": "kW"
            },
            "system_loss": {
              "description": "Sum of system losses",
              "units": "%"
            }
          }
        }
      },
      "outputs": {
        "hourly": {
          "type": "time series",
          "timestamp": "hourly averages",
          "variables": {
            "P": {
              "description": "PV system power",
              "units": "W"
            },
            "Gb(i)": {
              "description": "Beam (direct) irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gd(i)": {
              "description": "Diffuse irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gr(i)": {
              "description": "Reflected irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "H_sun": {
              "description": "Sun height",
              "units": "degree"
            },
            "T2m": {
              "description": "2-m air temperature",
              "units": "degree Celsius"
            },
            "WS10m": {
              "description": "10-m total wind speed",
              "units": "m/s"
            },
            "Int": {
              "description": "1 means solar radiation values are reconstructed"
            }
          }
        }
      }
    },
    {
      "inputs": {
        "location": {
          "description": "Selected location",
          "variables": {
            "latitude": {
              "description": "Latitude",
              "units": "decimal degree"
            },
            "longitude": {
              "description": "Longitude",
              "units": "decimal degree"
            },
            "elevation": {
              "description": "Elevation",
              "units": "m"
            }
          }
        },
        "meteo_data": {
          "description": "Sources of meteorological data",
          "variables": {
            "radiation_db": {
              "description": "Solar radiation database"
            },
            "meteo_db": {
              "description": "Database used for meteorological variables other than solar radiation"
            },
            "year_min": {
              "description": "First year of the calculations"
            },
            "year_max": {
              "description": "Last year of the calculations"
            },
            "use_horizon": {
              "description": "Include horizon shadows"
            },
            "horizon_db": {
              "description": "Source of horizon data"
            }
          }
        },
        "mounting_system": {
          "description": "Mounting system",
          "choices": "fixed, vertical_axis, inclined_axis, two_axis",
          "fields": {
            "slope": {
              "description": "Inclination angle from the horizontal plane",
              "units": "degree"
            },
            "azimuth": {
              "description": "Orientation (azimuth) angle of the (fixed) PV system (0 = S, 90 = W, -90 = E)",
              "units": "degree"
            }
          }
        },
        "pv_module": {
          "description": "PV module parameters",
          "variables": {
            "technology": {
              "description": "PV technology"
            },
            "peak_power": {
              "description": "Nominal (peak) power of the PV module",
              "units": "kW"
            },
            "system_loss": {
              "description": "Sum of system losses",
              "units": "%"
            }
          }
        }
      },
      "outputs": {
        "hourly": {
          "type": "time series",
          "timestamp": "hourly averages",
          "variables": {
            "P": {
              "description": "PV system power",
              "units": "W"
            },
            "Gb(i)": {
              "description": "Beam (direct) irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gd(i)": {
              "description": "Diffuse irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gr(i)": {
              "description": "Reflected irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "H_sun": {
              "description": "Sun height",
              "units": "degree"
            },
            "T2m": {
              "description": "2-m air temperature",
              "units": "degree Celsius"
            },
            "WS10m": {
              "description": "10-m total wind speed",
              "units": "m/s"
            },
            "Int": {
              "description": "1 means solar radiation values are reconstructed"
            }
          }
        }
      }
    },
    {
      "inputs": {
        "location": {
          "description": "Selected location",
          "variables": {
            "latitude": {
              "description": "Latitude",
              "units": "decimal degree"
            },
            "longitude": {
              "description": "Longitude",
              "units": "decimal degree"
            },
            "elevation": {
              "description": "Elevation",
              "units": "m"
            }
          }
        },
        "meteo_data": {
          "description": "Sources of meteorological data",
          "variables": {
            "radiation_db": {
              "description": "Solar radiation database"
            },
            "meteo_db": {
              "description": "Database used for meteorological variables other than solar radiation"
            },
            "year_min": {
              "description": "First year of the calculations"
            },
            "year_max": {
              "description": "Last year of the calculations"
            },
            "use_horizon": {
              "description": "Include horizon shadows"
            },
            "horizon_db": {
              "description": "Source of horizon data"
            }
          }
        },
        "mounting_system": {
          "description": "Mounting system",
          "choices": "fixed, vertical_axis, inclined_axis, two_axis",
          "fields": {
            "slope": {
              "description": "Inclination angle from the horizontal plane",
              "units": "degree"
            },
            "azimuth": {
              "description": "Orientation (azimuth) angle of the (fixed) PV system (0 = S, 90 = W, -90 = E)",
              "units": "degree"
            }
          }
        },
        "pv_module": {
          "description": "PV module parameters",
          "variables": {
            "technology": {
              "description": "PV technology"
            },
            "peak_power": {
              "description": "Nominal (peak) power of the PV module",
              "units": "kW"
            },
            "system_loss": {
              "description": "Sum of system losses",
              "units": "%"
            }
          }
        }
      },
      "outputs": {
        "hourly": {
          "type": "time series",
          "timestamp": "hourly averages",
          "variables": {
            "P": {
              "description": "PV system power",
              "units": "W"
            },
            "Gb(i)": {
              "description": "Beam (direct) irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gd(i)": {
              "description": "Diffuse irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "Gr(i)": {
              "description": "Reflected irradiance on the inclined plane (plane of the array)",
              "units": "W/m2"
            },
            "H_sun": {
              "description": "Sun height",
              "units": "degree"
            },
            "T2m": {
              "description": "2-m air temperature",
              "units": "degree Celsius"
            },
            "WS10m": {
              "description": "10-m total wind speed",
              "units": "m/s"
            },
            "Int": {
              "description": "1 means solar radiation values are reconstructed"
            }
          }
        }
      }
    }
  ]
}