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')
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
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']]