HDF5 file, superblock version 2
group /
	attribute Conventions = "CF-1.10; ACDD-1.3; IEC TS 61836:2016"
	attribute ac_capacity = "16922.0"
	attribute ac_capacity_reference = "Expected AC capacity of inverters (in W), estimated with cumulative distribution function analysis as in Visser 2022 (https://doi.org/10.1063/5.0100939)"
	attribute additional_qc_parameters = "Additonal parameters used to run the quality checks of Visser 2022.      \"coef_inv_norm\" = 0.9637 (Reference inverter efficiency used in pvWatts, this is the default value);      \"temperature_model_parameters\" = {\"a\": -2.98, \"b\": -0.0471, \"deltaT\": 1} (parameters used by SAPM to compute the cell temperature, values for the closed mount setup for roof mounted PV from https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.temperature.sapm_cell.html#pvlib-temperature-sapm-cell);      \"max_consecutive_period\": 2 (number of consecutive periods considered for the linear test);      \"kpv_threshold\": 1.4 (threshold for cloud enhancement conditions)"
	attribute azimuth_degrees = "180.0"
	attribute azimuth_reference = "Orientation of the panels: North = 0°, East = 90°, South = 180°, West = 270°"
	attribute cdm_data_type = "timeSeries"
	attribute climate = "Cfb"
	attribute creator_email = "e4c_datahub@ip-paris.fr"
	attribute creator_institution = "Ecole Polytechnique - SIRTA - IPSL"
	attribute creator_url = "https://e4c-ipsl.ip-paris.fr/#/fr/datahub/projects/?id=19"
	attribute date_created = "2026-08-21T16:35:07.875698"
	attribute date_modified = "2026-08-21T16:35:07.875698"
	attribute dc_capacity = "16705.0"
	attribute dc_capacity_reference = "Total DC capacity of the panels (in W): 16×300 + 8×345 + 320×10 + 10×310 + 8×305 + 405"
	attribute description = "Reference data used for the training and evaluation work of the DimRed article."
	attribute featureType = "timeSeries"
	attribute geospatial_bounds = "POINT(48.7131 2.2121)"
	attribute geospatial_bounds_crs = "EPSG:4326"
	attribute geospatial_lat_max = "48.7131"
	attribute geospatial_lat_min = "48.7131"
	attribute geospatial_lon_max = "2.2121"
	attribute geospatial_lon_min = "2.2121"
	attribute geospatial_vertical_max = "156.0"
	attribute geospatial_vertical_min = "156.0"
	attribute id = "DimRed-PV_DRAHIX_SIRTA"
	attribute institution = "Ecole Polytechnique - SIRTA - IPSL"
	attribute inverter_efficiency = "0.96"
	attribute inverter_model = "MultiPlus-II 6000"
	attribute inverter_reference = "https://www.victronenergy.com/upload/documents/Datasheet-MultiPlus-II-inverter-charger-EN.pdf"
	attribute keywords = "photovoltaic production, photovoltaic power, AC power, station, time, Photovoltaic > Solar Energy > Solar Radiation > Energy Production > TBD"
	attribute keywords_vocabulary = "TBD"
	attribute keywords_vocabulary_url = "TBD"
	attribute license = "TBD"
	attribute local_time_zone = "UTC+01:00"
	attribute missing_data_handling = "NaNs in the original dataset have been replaced based on two similar methodologies. Both methodologies comprise three successive steps, and share the same first two steps. First, isolated NaNs (i.e., spanning only one timestamp) are replaced by the mean value between the previous and the next timestamps. Then, remaining sequences of NaNs (i.e., more than 2 successive NaNs) are replaced. If the sequence spans less than 1 hour, the corresponding values are interpolated using the closest valid measurements. If the sequence of NaNs is longer than 1 hour, the values are replaced using the measurements of YEAR Y - 1. In this case, two methodologies have been used. '_onlyhours': the data has been replaced only for the missing hours. This preserves valid data within the day but might lead to inconsistencies between valid values for YEAR Y and NaNs replaced by values of YEAR Y - 1.; '_allday': the data has been replaced for the whole day to avoid inconsistencies between valid values for YEAR Y and NaNs replaced by values of YEAR Y - 1. The updated PAC data are stored in the 'PAC_filled_allday' and 'PAC_filled_onlyhours' variables. They are almost identical and only differ for days related to sequences of NaNs longer than 1 hour. To check which timestamp corresponds to a missing value that has been replaced, as well as which method has been used, please use the related flags."
	attribute network_id = "DimRed"
	attribute panels_power_temperature_coefficient_per_celsius = "-0.00375"
	attribute panels_power_temperature_coefficient_reference = "power temperature coefficient, in 1/°C, computed based on weighted average of the specifications of all panels: ((16×−0,39)+(8×−0,36)+(28×−0,37) - 0.36)÷53."
	attribute platform = "Drahi-X Novation Center - Ecole Polytechnique - SIRTA"
	attribute processing_email = "h.bouzgou@univ-batna2.dz, cyril.voyant@minesparis.psl.eu, notton_g@univ-corse.fr, claudio.nicolosi@phd.unict.it, asloune_m1@univ-corse.fr, k.abdeladim@cder.dz, gabriel.chesnoiu@minesparis.psl.eu, lionel.menard@mines-paristech.fr, chris@solarconsultingservices.com"
	attribute processing_institution = "TBD"
	attribute processing_name = "Hassen Bouzgou, Cyril Voyant, Gilles Noton, Claudio Francesco Nicolosi, Asloune Mohammed, Kamel Abdeladim, Gabriel Chesnoiu, Lionel Menard, Chris Gueymard, TBD"
	attribute product_version = "libinsitu 1.7"
	attribute project = "DimRed; TBD"
	attribute publisher_email = "lionel.menard@mines-paristech.fr, raphael.jolivet@mines-paristech.fr, saint-drenan@mines-paristech.fr, philippe.blanc@mines-paristech.fr"
	attribute publisher_institution = "Mines Paris - PSL"
	attribute publisher_name = "Lionel MENARD, Raphael JOLIVET, Yves-Marie SAINT-DRENAN, Philippe BLANC"
	attribute publisher_url = "https://www.oie.minesparis.psl.eu/"
	attribute quality_check_procedure = "Quality check procedure performed using the methodology of Visser 2022 (https://doi.org/10.1063/5.0100939). Based on the code freely available at https://doi.org/10.5281/zenodo.6906504. In this work it is assumed that the temperature of the PV cells is 40°C so that the procedure does not involve any exogeneous data (i.e. wind speed or air temperature). Furthermore, the 'persistance' test was modified because it gave erroneous results for very clear days under which the variability was identified as 'too low'. The test relies on the extraterrestrial radiation received on the plane normal to the Sun, instead of an horizontal plane."
	attribute record = "Basic measurements (photovoltaic alternative current production)"
	attribute references = "Source data : Jordi Badosa, Cécile Teissedre. Multivariable energy and meteorological dataset for a tertiary building. 2025. https://doi.org/10.14768/211dff87-8187-447a-8086-1eb7c93a3688; Processing : Hassen Bouzgou, Cyril Voyant, Gilles Noton, Claudio Francesco Nicolosi, Asloune Mohammed, Kamel Abdeladim, Gabriel Chesnoiu, Lionel Menard, Chris Gueymard, TBD. Parsimonious Dimensionality Reduction with Redundancy Awareness for Direct PV Power Time-Series Forecasting. 2026. TBD; Publishing : Philippe Blanc, Raphaël Jolivet, Lionel Ménard, Yves-Marie Saint-Drenan. Data sharing of in-situ measurements following GEO and FAIR principles in the solar energy sector: An end-to-end implementation example in the solar energy domain ranging from data encoding up to search and discovery. 2022. hal-03811628"
	attribute source_project = "E4C DataHub"
	attribute station_address = "Ecole polytechnique, Palaiseau"
	attribute station_commision_date = "-"
	attribute station_country = "France"
	attribute station_id = "PV_DRAHIX_SIRTA"
	attribute station_region = "Europe"
	attribute summary = "Archive of photovoltaic power system production worldwide provided by the Webservice-Energy initiative supported by MINES Paris PSL. Files are provided as NetCDF file format with the support of a Thredds Data Server."
	attribute tilt_degrees = "22.1"
	attribute tilt_reference = "Tilt computed as weighted average of all panels: (12*30+40*20+1*10)/53"
	attribute time_coverage_end = "2025-09-21T22:00:00"
	attribute time_coverage_resolution = "P15M"
	attribute time_coverage_start = "2020-08-01T00:00:00"
	attribute title = "Timeseries of photovoltaic power system production (AC) for the DimRed article. (DimRed). Station : DrahiX-SIRTA"
dataset /PAC: float32, shape (180281)
	attribute _FillValue = -999.0
	attribute abbreviation = "PAC"
	attribute coordinates = "time latitude longitude elevation"
	attribute grid_mapping = "crs"
	attribute least_significant_digit = 1
	attribute long_name = "Averaged Photovoltaic AC power"
	attribute standard_name = "photovoltaic_power_system_production"
	attribute timestamp_ref = "Timestamps represent the end of the averaging period."
	attribute units = "W"
	attribute valid_max_ = "16922.666"
	attribute valid_min_ = 0.0
dataset /PAC_filled_allday: float32, shape (180281)
	attribute _FillValue = -999.0
	attribute abbreviation = "PAC"
	attribute coordinates = "time latitude longitude elevation"
	attribute description = " Subscript '_filled' means that missing data has been filled when possible. Subscript \"_allday\" means that when sequences of missing values were longer than 1 hour, the whole day has been replaced by measurements at YEAR - 1 for the same date. Check the 'missing_data_handling' attribute for more information."
	attribute grid_mapping = "crs"
	attribute least_significant_digit = 1
	attribute long_name = "Averaged Photovoltaic AC power"
	attribute standard_name = "photovoltaic_power_system_production"
	attribute timestamp_ref = "Timestamps represent the end of the averaging period."
	attribute units = "W"
	attribute valid_max_ = "16922.666"
	attribute valid_min_ = 0.0
dataset /PAC_filled_onlyhours: float32, shape (180281)
	attribute _FillValue = -999.0
	attribute abbreviation = "PAC"
	attribute coordinates = "time latitude longitude elevation"
	attribute description = " Subscript '_filled' means that missing data has been filled when possible. Subscript \"_onlyhours\" means that when sequences of missing values were longer than 1 hour, only the affected hours have been replaced by measurements at YEAR - 1 for the same times. Check the 'missing_data_handling' attribute for more information."
	attribute grid_mapping = "crs"
	attribute least_significant_digit = 1
	attribute long_name = "Averaged Photovoltaic AC power"
	attribute standard_name = "photovoltaic_power_system_production"
	attribute timestamp_ref = "Timestamps represent the end of the averaging period."
	attribute units = "W"
	attribute valid_max_ = "16922.666"
	attribute valid_min_ = 0.0
dataset /crs: float64, shape ()
	attribute _FillValue = -999.0
	attribute epsg_code = "EPSG:4326"
	attribute grid_mapping_name = "latitude_longitude"
	attribute inverse_flattening = 298.257223563
	attribute longitude_of_prime_meridian = 0.0
	attribute semi_major_axis = 6378137.0
dataset /elevation: float32, shape ()
	attribute _CoordinateAxisType = "Z"
	attribute axis = "Z"
	attribute long_name = "Elevation above mean seal level"
	attribute standard_name = "height_above_mean_sea_level"
	attribute units = "m"
dataset /flag_gaps_record: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding timestamp was not in the raw data (i.e. there was a gap). 0 means the data was present in the raw dataset."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag gaps"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_linear: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding power value was constant or linearly increasing/decreasing for more than the max_consecutive_period threshold provided in the metadata of the present dataset. 0 means it was not constant or linearly increasing/decreasing."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag linear"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_lower_limit: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding power value was below the lower threshold (0 W) of Visser et al. (2022, https://doi.org/10.1063/5.0100939) for daytime conditions. 0 means it was greater. This removes negative values during daytime."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag lower limit"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_min_availability_1: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding timestamp did not pass the daily availability test of Visser et al. (2022, https://doi.org/10.1063/5.0100939). 0 means it passed. The daily availability should be above 50% to pass the test. The subscript '1' in the name means that this flag correspond to the first daily availability check of the QC procedure, which is applied to the raw data. The same filter is applied a second time almost at the end of the QC routine to ensure that days with numerous errors identified by the other tests are removed. In the latter case the flag anme holds the subscript '2'."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "First QC flag daily availability"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_min_availability_2: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding timestamp did not pass the daily availability test of Visser et al. (2022, https://doi.org/10.1063/5.0100939). 0 means it passed. The daily availability should be above 50% to pass the test. The subscript '2' in the name means that this flag correspond to the second daily availability check of the QC procedure, which is applied almost at the end on the QC routine. This check ensures that days with numerous errors identified by the previous tests are removed entirely."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "Second QC flag daily availability"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_missing_allday: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means this timestamp has been replaced compared to the raw data, either because it was part of a sequence of NaNs longer than 1 hour, or because it was part of a day for which there was such a sequence of NaNs. In the case \"_allday\", the data for the whole day has been replaced by measurements at YEAR - 1 for the same date. Flag=0 means the data has not been changed using this method. The replaced values are stored in the 'PAC_filled_allday' variable. Check the 'missing_data_handling' attribute for more information."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "Missing data flag replace day"
	attribute standard_name = "missing_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_missing_averaged: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means this timestamp was a NaN in the raw data and has been filled. Subscript \"_average\" means that it was an isolated NaN, which has been replaced by the mean of the previous and next values. Flag=0 either means that the data was not a NaN or that it has not been filled using this method. The replaced values are stored in the 'PAC_filled_allday' and 'PAC_filled_onlyhours' variables."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "Missing data flag averaged"
	attribute standard_name = "missing_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_missing_interped: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means this timestamp was a NaN in the raw data and has been filled. Subscript \"_interped\" means that it was not an isolated NaN which could be replaced by the mean value between the previous and next measurements. However, because the corresponding sequence of NaNs is shorter than 1 hour, the NaN values have been replaced by linear interpolation between the closest measurements. Flag=0 either means that the data was not a NaN or that it has not been filled using this method. The replaced values are stored in the 'PAC_filled_allday' and 'PAC_filled_onlyhours' variables."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "Missing data flag interpolated"
	attribute standard_name = "missing_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_missing_onlyhours: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means this timestamp was a NaN in the raw data and has been filled. Subscript \"_onlyhours\" means that it was not an isolated NaN, which could be replaced by the mean value between the previous and next measurements, and that the corresponding sequence of NaNs was longer than 1 hour, making interpolation less reliable. Instead, the sequences have been replaced by measurements at YEAR - 1 for the same date. In the case \"onlyhours\", the data has been replaced only for the missing hours. This preserves valid data within the day but might lead to inconsistencies between valid values for YEAR Y and NaNs replaced by values of YEAR Y - 1. Flag=0 either means that the data was not a NaN or that it has not been filled using this method. The replaced values are stored in the 'PAC_filled_onlyhours' variable."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "Missing data flag replace hours"
	attribute standard_name = "missing_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_night: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding timestamp is considered nighttime in the sense of Visser et al. (2022, https://doi.org/10.1063/5.0100939). 0 means it's daytime. Note that all nighttime power values are set to 0. Check the related publication for more information. The required metadata used for this test (e.g. dc capacity, inverter efficiency, etc.) is provided in the metadata of the present dataset."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag night"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_other_raw_nans: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means this timestamp was already a NaN in the raw data and was not modified by the nighttime and sundown filters. 0 means it was not a NaN."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag other nans"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_persistence: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding power value did not fulfill the persistence chekc of Visser et al. (2022, https://doi.org/10.1063/5.0100939). 0 means it passed. Check the related publication for more information."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag persistence"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_sundown: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "This flag relates to the sundown test of Visser et al. (2022, https://doi.org/10.1063/5.0100939). This test identifies negative values between [sunrise, sunrise + 30min] and [sunset - 30 min, sunset] and replaces them by 0. Flag=1 means the corresponding power value was previously negative and has been replaced by 0. 0 means it was already positive."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag sundown"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /flag_upper_limit: int32, shape (180281)
	attribute _FillValue = -1
	attribute comment = "Flag=1 means the corresponding power value did not pass the upper limit test of Visser et al. (2022, https://doi.org/10.1063/5.0100939). 0 means it passed. Check the related publication for more information. The required metadata used for this test (e.g. dc capacity, inverter efficiency, etc.) is provided in the metadata of the present dataset."
	attribute coordinates = "time latitude longitude elevation"
	attribute long_name = "QC flag upper limit"
	attribute standard_name = "quality_flag_processed"
	attribute valid_max_ = 1
	attribute valid_min_ = 0
dataset /latitude: float32, shape ()
	attribute _CoordinateAxisType = "Lat"
	attribute axis = "Y"
	attribute long_name = "station latitude"
	attribute standard_name = "latitude"
	attribute units = "degrees_north"
dataset /longitude: float32, shape ()
	attribute _CoordinateAxisType = "Lon"
	attribute axis = "X"
	attribute long_name = "station longitude"
	attribute standard_name = "longitude"
	attribute units = "degrees_east"
dataset /station_name: string, shape ()
	attribute cf_role = "timeseries_id"
	attribute long_name = "station_name"
	attribute standard_name = "platform_name"
	text = "PV_DRAHIX_SIRTA"
dataset /time: uint32, shape (180281)
	attribute _CoordinateAxisType = "Time"
	attribute abbreviation = "Date/Time"
	attribute axis = "T"
	attribute calendar = "gregorian"
	attribute long_name = "Time of measurement"
	attribute standard_name = "time"
	attribute time_origin = "1970-01-01 00:00:00"
	attribute time_zone = "UTC"
	attribute units = "seconds since 1970-01-01 00:00:00"