Ejemplo n.º 1
0
def test_validate_directional():
    # test that validation works as expected with directional data
    assert validate(df.rename(region={'Europe': 'Austria>Germany'}))
    assert not validate(df.rename(region={'Europe': 'Austria>foo'}))

    # test that directional data with more than one `>` fails
    assert not validate(df.rename(region={'Europe': 'Austria>Italy>France'}))
Ejemplo n.º 2
0
def test_validate_subannual_datetime_as_subannual():
    # test that validation works as expected with continuous time as subannual
    assert validate(IamDataFrame(TEST_DF, subannual='01-01 00:00+01:00'))

    # assert that missing timezone fails
    assert not validate(IamDataFrame(TEST_DF, subannual='01-01 00:00'))

    # assert that wrong timezone fails
    assert not validate(IamDataFrame(TEST_DF, subannual='01-01 00:00+02:00'))

    # assert that value not castable to datetime fails
    assert not validate(IamDataFrame(TEST_DF, subannual='01-32 00:00+01:00'))
Ejemplo n.º 3
0
def _generate_yearly_values(input_file):
    data_wrapper = dr.load_gdx_file(input_file, DEF_GAMS_DIR)

    dt.generate_load_demand_series(data_wrapper)
    dt.generate_primary_energy_values(data_wrapper)
    dt.generate_final_energy_values(data_wrapper)
    dt.generate_capacity_values(data_wrapper)
    dt.generate_transport_capacity_values(data_wrapper)
    dt.generate_storage_capacity_values(data_wrapper)
    dt.generate_emissions_values(data_wrapper)
    # dt.generate_additional_emissions_values(data_wrapper) - currently not in nomenclature
    dt.generate_secondary_energy(data_wrapper)
    dt.generate_exogenous_costs(data_wrapper)
    dt.generate_co2_prices(data_wrapper)

    data_wrapper.generate_idataframe(True)
    nomenclature.validate(data_wrapper.idataframe)
    return data_wrapper
Ejemplo n.º 4
0
def test_validate_time_entry():
    df_sub = TEST_DF.rename(columns={'year': 'subannual'}).\
        replace([2005, 2010], value=['2005-06-17 00:00+01:00',
                                     '2010-07-21 12:00+01:00'])
    assert validate(IamDataFrame(df_sub))
Ejemplo n.º 5
0
def test_validate_subannual_months():
    # test that validation works as expected with months
    # (and representative timeslices generally)
    assert validate(IamDataFrame(TEST_DF, subannual='January'))
    assert not validate(IamDataFrame(TEST_DF, subannual='foo'))
Ejemplo n.º 6
0
def test_validate_fail():
    # test that simple validation fails on variable and region dimension
    assert not (validate(df.rename(variable={'Primary Energy': 'foo'})))
    assert not (validate(df.rename(region={'Europe': 'foo'})))
Ejemplo n.º 7
0
def test_validate():
    # test simple validation
    assert validate(df)
Ejemplo n.º 8
0
def test_validate_unit_entry():
    assert not (validate(df.rename(unit={'EJ/yr': 'MWh'})))
Ejemplo n.º 9
0
def _generate_load_factors(input_file):
    data_wrapper_series = dr.load_gdx_file(input_file, DEF_GAMS_DIR)
    dt.generate_load_factors(data_wrapper_series)
    data_wrapper_series.generate_idataframe_renewable_series()
    nomenclature.validate(data_wrapper_series.idataframe)
    return data_wrapper_series
import pyam

# Read SCOPE output file
TEST_DF = pd.read_excel("scope_sd_20201120_test_data.xlsx")

# Create dictionary and convert regions with iso_mapping into IAMC format
TEST_DICT = TEST_DF.to_dict()
DICT_REGIO = {}
DICT_REGIO["Region"] = {}
for i in range(len(TEST_DICT["Region"].keys())):
    try:
        DICT_REGIO["Region"][i] = nc.iso_mapping[TEST_DICT["Region"][i]]
    except KeyError:
        DICT_REGIO["Region"][i] = TEST_DICT["Region"][i]

NEW_DICT = {}
NEW_DICT["Model"] = TEST_DICT["Model"]
NEW_DICT["Scenario"] = TEST_DICT["Scenario"]
NEW_DICT["Region"] = DICT_REGIO["Region"]
NEW_DICT["Variable"] = TEST_DICT["Variable"]
NEW_DICT["Unit"] = TEST_DICT["Unit"]
NEW_DICT["Subannual"] = TEST_DICT["Subannual"]
NEW_DICT[2050] = TEST_DICT[2050]
NEW_DF = pd.DataFrame.from_dict(NEW_DICT)

# Save dict into new excel file
NEW_DF.to_excel("scope_sd_20201120_test_data_validated.xlsx")

# Check the created excel file with the openENTRANCE nomenclature
nc.validate("scope_sd_20201120_test_data_validated.xlsx")
Ejemplo n.º 11
0
    #delete lines with 0 units
    sheet = sheet[sheet.NumberUnits > 0]

    # converting region names from plan4eu to OpenEntrance
    sheet = sheet.replace({"Zone": plan4euRegDict})
    sheet = sheet.replace({"Name": vardict['technos']})

    iamc_region = sheet['Zone']
    iamc_techno = sheet['Name']

    for name_plan4eu in vardict[key].keys():
        iamc_value = sheet[name_plan4eu]
        iamc_unit = vardict[key][name_plan4eu]['unit']
        iamc_variable = vardict[key][name_plan4eu]['variable'] + iamc_techno

        #conversion needed?
        if name_plan4eu in vardict['conversion'].keys():
            if vardict['conversion'][name_plan4eu] == 'DivideByMaxPower':
                iamc_value = iamc_value / sheet['MaxPower']

        iamc = pd.DataFrame({
            'Model': cfg['model'],
            'Scenario': cfg['scenario'],
            'Region': iamc_region,
            'Variable': iamc_variable,
            'Unit': iamc_unit,
            '2050': iamc_value
        })
        iamc.to_csv(outputfile, index=False, mode='a', header=False)
nc.validate(outputfile)