def test_plant_stats(self):
     if os.path.isfile('C:/Users/user/Documents/plant_stats.csv'):
         t0 = time.time()
         plant_types = data_fetch_methods.static_table_xl('', '', 'Generators and Scheduled Loads', 'E:/raw_aemo_data',
                                                          select_columns=['DUID', 'Fuel Source - Primary',
                                                                          'Region', 'Participant'])
         plant_stats = custom_tables.plant_stats('2017/07/01 00:05:00', '2018/07/01 00:05:00', '', 'E:/raw_aemo_data')
         plant_stats = pd.merge(plant_stats, plant_types, 'left', 'DUID')
         plant_stats['TRADING_COST'] = plant_stats['Volume'] * plant_stats['TRADING_VWAP']
         plant_stats['DISPATCH_COST'] = plant_stats['Volume'] * plant_stats['DISPATCH_VWAP']
         plant_stats.to_csv('C:/Users/user/Documents/plant_stats_tp.csv')
         print(time.time() - t0)
 def test_registration_list(self):
     start_time = ''
     end_time = ''
     table = 'Generators and Scheduled Loads'
     cols = ['DUID', 'Technology Type - Primary']
     filter_cols = ('DUID',)
     data = data_fetch_methods.static_table_xl( start_time, end_time, table, defaults.raw_data_cache,
         select_columns=cols, filter_cols=filter_cols, filter_values=(['AGLHAL'],))
     expected_length = 1
     expected_number_of_columns = 2
     self.assertEqual(expected_length, data.shape[0])
     self.assertEqual(expected_number_of_columns, data.shape[1])
     print('Passed')
Example #3
0
def get_residual_demand(start_time, end_time, raw_data_cache):
    cols = ['DUID', 'Region', 'Fuel Source - Descriptor']
    tech_data = data_fetch_methods.static_table_xl(
        'Generators and Scheduled Loads', raw_data_cache, select_columns=cols)
    zero_srmc_techs = ['Wind', 'Solar', 'Solar ']
    tech_data = tech_data[tech_data['Fuel Source - Descriptor'].isin(
        zero_srmc_techs)]
    scada_data = data_fetch_methods.dynamic_data_compiler(
        start_time, end_time, 'DISPATCH_UNIT_SCADA', raw_data_cache)
    scada_data = pd.merge(scada_data, tech_data, on='DUID')
    scada_data['SCADAVALUE'] = pd.to_numeric(scada_data['SCADAVALUE'])
    scada_data = scada_data.groupby(['SETTLEMENTDATE', 'Region'],
                                    as_index=False).agg({'SCADAVALUE': 'sum'})
    regional_demand = data_fetch_methods.dynamic_data_compiler(
        start_time, end_time, 'DISPATCHREGIONSUM', raw_data_cache)
    regional_demand = regional_demand[regional_demand['INTERVENTION'] == 0]
    regional_demand = pd.merge(regional_demand,
                               scada_data,
                               left_on=['SETTLEMENTDATE', 'REGIONID'],
                               right_on=['SETTLEMENTDATE', 'Region'])
    regional_demand['TOTALDEMAND'] = pd.to_numeric(
        regional_demand['TOTALDEMAND'])
    regional_demand['RESIDUALDEMAND'] = regional_demand[
        'TOTALDEMAND'] - regional_demand['SCADAVALUE']

    regional_demand = regional_demand.pivot_table(values='RESIDUALDEMAND',
                                                  index='SETTLEMENTDATE',
                                                  columns='REGIONID')

    regional_demand = regional_demand.reset_index().fillna('0.0')

    regional_demand = regional_demand.rename(columns={
        'QLD1': 'qld',
        'NSW1': 'nsw',
        'VIC1': 'vic',
        'SA1': 'sa',
        'TAS1': 'tas'
    })

    regional_demand.columns = [
        col + '-demand' if col != 'SETTLEMENTDATE' else col
        for col in regional_demand.columns
    ]
    return regional_demand
Example #4
0
def get_duid_techs(raw_data_cache):

    cols = [
        'DUID', 'Region', 'Fuel Source - Descriptor',
        'Technology Type - Descriptor'
    ]
    tech_data = data_fetch_methods.static_table_xl(
        'Generators and Scheduled Loads', raw_data_cache, select_columns=cols)

    def tech_classifier(fuel_source, technology_type):
        category = fuel_source
        if technology_type == 'Hydro - Gravity':
            category = 'Hydro'
        elif technology_type == 'Open Cycle Gas turbines (OCGT)':
            category = 'OCGT'
        elif technology_type == 'Combined Cycle Gas Turbine (CCGT)':
            category = 'CCGT'
        elif technology_type == 'Run of River' or fuel_source == 'Solar' or fuel_source == 'Wind' or fuel_source == 'Solar ':
            category = 'ZEROSRMC'
        elif technology_type == 'Spark Ignition Reciprocating Engine':
            category = 'Engine'
        elif technology_type == 'Compression Reciprocating Engine':
            category = 'Engine'
        elif technology_type == 'Steam Sub-Critical' and (
                fuel_source == 'Natural Gas / Fuel Oil'
                or fuel_source == 'Natural Gas'):
            category = 'Gas Thermal'
        elif technology_type == 'Pump Storage' or technology_type == 'Battery':
            category = 'Storage'
        return category

    tech_data['TECH'] = tech_data.apply(lambda x: tech_classifier(
        x['Fuel Source - Descriptor'], x['Technology Type - Descriptor']),
                                        axis=1)

    return tech_data.loc[:, ['DUID', 'Region', 'TECH']]