There is no error message if a field in an update function do not met column names in oemof.tabular csv definition files (components/component_attr/*.csv). If oemof.tabular csv files changed, update functions have to change, too.
If new columns are introduced in the csv def files, update functions ignore this and just add the old columns as well:
Old csv output:
region,name,type,carrier,tech,bus,capacity,storage_capacity,efficiency,marginal_cost,loss_rate,expandable,capacity_cost,storage_capacity_cost,input_parameters,output_parameters
AT,AT-electricity-h2-cavern,storage,electricity,h2_cavern,AT-electricity,0,0,0.665,1.2,0.0,True,111557.29605533341,96.58640351111119,{},{}
A new tabular csv definition introduces new columns and drops capacity, efficiency, capacity_cost:
attribute,type,unit,default,suffix,description
region,str,n/a,n/a,,Country code
name,str,n/a,,-electricity-h2-cavern,Name
type,str,n/a,storage,,Type
carrier,str,n/a,electricity,,Energy carrier
tech,str,n/a,h2_cavern,,Technology
bus,str,n/a,,-electricity,The bus this component is connected to
capacity_charge,float,MW,n/a,,Installed charge capacity
capacity_discharge,float,MW,n/a,,Installed discharge capacity
storage_capacity,float,MWh,n/a,,Installed storage capacity
efficiency_charge,float,unitless,n/a,,Efficiency of charging
efficiency_discharge,float,unitless,n/a,,Efficiency of discharging
marginal_cost,float,Eur/MWh,n/a,,Marginal cost of charging/discharging
loss_rate,float,unitless,n/a,,Losses due to self discharging
expandable,boolean,n/a,,,Capacity can be expanded
capacity_cost_charge,float,Eur/MW,n/a,,Annualized investment cost per charging capacity
capacity_cost_discharge,float,Eur/MW,n/a,,Annualized investment cost per discharging capacity
storage_capacity_cost,float,Eur/MWh,n/a,,Annualized investment cost per storage capacity
input_parameters,dict,n/a,{},,Optional parameters passed to oemof-solph's input flow
output_parameters,dict,n/a,{},,Optional parameters passed to oemof-solph's output flow
New element csv output (after update function) contains the set of both (old and new):
region,name,type,carrier,tech,bus,capacity_charge,capacity_discharge,storage_capacity,efficiency_charge,efficiency_discharge,marginal_cost,loss_rate,expandable,capacity_cost_charge,capacity_cost_discharge,storage_capacity_cost,input_parameters,output_parameters,capacity,efficiency,capacity_cost
AT,AT-electricity-h2-cavern,storage,electricity,h2_cavern,AT-electricity,,,0,,,1.2,0.0,True,,,96.58640351111119,{},{},0,0.665,111557.29605533341
Columns capacity, efficiency, capacity_cost are obsolete, just added to the end of the header.
Update functions should raise an error if those columns to be updated cannot be found in the csv file.
There is no error message if a field in an update function do not met column names in oemof.tabular csv definition files (
components/component_attr/*.csv). If oemof.tabular csv files changed, update functions have to change, too.If new columns are introduced in the csv def files, update functions ignore this and just add the old columns as well:
Old csv output:
A new tabular csv definition introduces new columns and drops
capacity,efficiency,capacity_cost:New element csv output (after update function) contains the set of both (old and new):
Columns
capacity,efficiency,capacity_costare obsolete, just added to the end of the header.Update functions should raise an error if those columns to be updated cannot be found in the csv file.