Skip to content

Commit

Permalink
Merge pull request #118 from DeltaE/refactor-canada-us
Browse files Browse the repository at this point in the history
Create Canada Equivalent Functions to USA Functions
  • Loading branch information
trevorb1 authored Feb 4, 2022
2 parents 3873057 + 7a8fa0c commit c8af7e6
Show file tree
Hide file tree
Showing 14 changed files with 397 additions and 877,125 deletions.
17 changes: 0 additions & 17 deletions dataSources/techList_AUTO_GENERATED.csv

This file was deleted.

24 changes: 14 additions & 10 deletions scripts/EmissionActivityRatio.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,24 @@ def main():

### EVERYTHING CURRENTLY MAPS TO MODE_OFOPERARION = 1
### EVERYTHING IS CO2 EMISSIONS

#write to a csv
dataOut = getCanEmissionActivityRatio()
dfUsa = getUsaEmissionActivityRatio()

dfOut = pd.DataFrame(dataOut,columns=['REGION','TECHNOLOGY','EMISSION','MODE_OF_OPERATION','YEAR','VALUE'])
dfOut = dfOut.append(dfUsa)
dfOut.to_csv('../src/data/EmissionActivityRatio.csv', index=False)

def getCanEmissionActivityRatio():
# PURPOSE: Creates EmissionActivityRatio file from Canadian data
# INPUT: N/A
# OUTPUT: dataOut = Canadian Emission Activity Ratio data

# Parameters to print over
continent = functions.getFromYaml('continent')
canSubregions = functions.getFromYaml('regions_dict')['CAN'].keys() # Canadian subregions
years = functions.getYears()

###########################################
# Compile Emission Activity Ratio
###########################################

#read in raw emission activity values
dfRaw = pd.read_csv('../dataSources/EmissionActivityRatioByTechnology.csv', index_col=0)

Expand All @@ -45,11 +53,7 @@ def main():
if tech in modeTwoTechs:
dataOut.append([continent, techName, 'CO2', 2, year, activityRatio])

#write to a csv
dfOut = pd.DataFrame(dataOut,columns=['REGION','TECHNOLOGY','EMISSION','MODE_OF_OPERATION','YEAR','VALUE'])
dfUsa = getUsaEmissionActivityRatio()
dfOut = dfOut.append(dfUsa)
dfOut.to_csv('../src/data/EmissionActivityRatio.csv', index=False)
return dataOut

def getUsaEmissionActivityRatio():
# PURPOSE: Creates EmissionActivityRatio file from USA data
Expand Down
2 changes: 1 addition & 1 deletion scripts/RETags.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import functions

def main():
# PURPOSE: Creates otoole formatted RETagTechnology CSVs
# PURPOSE: Creates otoole formatted RETagTechnology (renewable energy tag technology) CSVs
# INPUT: none
# OUTPUT: none

Expand Down
106 changes: 70 additions & 36 deletions scripts/ReserveMargin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,66 @@ def main():
# Model Parameters
###########################################

continent = functions.getFromYaml('continent')
#To include reserve margin in osemosys global naming scheme, we:
# Gave a value of 1 for all regions and years of reserve margin
# assigned the regional reserve margin value to ELCCAN<subregion>01 in reserve margin tag fuel
# assign a value of one to all relevant PWR<technology>CAN<subregion>01

#write out all files
reserveMargin = getCanReserveMargin()
dfReserveMarginUsa = getUsaReserveMargin()

dfReserveMargin = pd.DataFrame(reserveMargin,columns=['REGION','YEAR','VALUE'])
dfReserveMargin = dfReserveMargin.append(dfReserveMarginUsa)
dfReserveMargin.to_csv('../src/data/ReserveMargin.csv', index=False)

reserveMarginTagFuel = getCanReserveMarginTagFuel()
dfReserveMarginFuelUsa = getUsaReserveMarginTagFuel()

dfReserveMarginFuel = pd.DataFrame(reserveMarginTagFuel,columns=['REGION','FUEL','YEAR','VALUE'])
dfReserveMarginFuel = dfReserveMarginFuel.append(dfReserveMarginFuelUsa)
dfReserveMarginFuel.to_csv('../src/data/ReserveMarginTagFuel.csv', index=False)

reserveMarginTagTech = getCanReserveMarginTagTechnology()
dfReserveMarginTechUsa = getUsaReserveMarginTagTechnology()

dfReserveMarginTech = pd.DataFrame(reserveMarginTagTech,columns=['REGION','TECHNOLOGY','YEAR','VALUE'])
dfReserveMarginTech = dfReserveMarginTech.append(dfReserveMarginTechUsa)
dfReserveMarginTech.to_csv('../src/data/ReserveMarginTagTechnology.csv', index=False)

def getCanReserveMarginTagTechnology():
# PURPOSE: Creates getReserveMarginTagTechnology file from Canadian data
# INPUT: N/A
# OUTPUT: reserveMarginTagTech = Canadian Reserve Margin Tag Technology Data

canSubregions = functions.getFromYaml('regions_dict')['CAN'] # Canadian subregions
seasons = functions.getFromYaml('seasons')
continent = functions.getFromYaml('continent')
techTags = functions.getFromYaml('techs_master')
variableTechs = functions.getFromYaml('variable_techs')
years = functions.getYears()

# Make list of techs to tag by removing the non-dispachable techs from techTags
techTags = [x for x in techTags if x not in variableTechs]

#reserve margin Tag Technology = Region, Technology, Year, Value
reserveMarginTagTech = []
for subregion in canSubregions:
for year in years:
for tech in techTags:
techName = 'PWR' + tech + 'CAN' + subregion + '01'
reserveMarginTagTech.append([continent, techName, year, 1])

return reserveMarginTagTech

def getCanReserveMarginTagFuel():
# PURPOSE: Creates ReserveMarginTagFuel file from Canadian data
# INPUT: N/A
# OUTPUT: reserveMarginTagFuel = Canadian Reserve Margin Tag Fuel Data

continent = functions.getFromYaml('continent')
canSubregions = functions.getFromYaml('regions_dict')['CAN'] # Canadian subregions
seasons = functions.getFromYaml('seasons')
years = functions.getYears()

# holds baseline reserve margin for each province based on NERC
# 10 percent for hydro dominated provinces
Expand All @@ -40,9 +94,6 @@ def main():
# List of fuels to tag
# fuelTag = ['ELC']

# Make list of techs to tag by removing the non-dispachable techs from techTags
techTags = [x for x in techTags if x not in variableTechs]

#For timeslicing
hours = range(1,25)

Expand Down Expand Up @@ -128,16 +179,6 @@ def main():
#save adjusted regional reserve margin
reserveMarginRaw.append([subregion, year, regionReserveMargin])

#To include reserve margin in osemosys global naming scheme, we:
# Gave a value of 1 for all regions and years of reserve margin
# assigned the regional reserve margin value to ELCCAN<subregion>01 in reserve margin tag fuel
# assign a value of one to all relevant PWR<technology>CAN<subregion>01

#Reserve Margin = Region, year, value
reserveMargin = []
for year in years:
reserveMargin.append([continent, year, 1])

#reserve margin Tag Fuel = Region, Fuel, Year, Value
reserveMarginTagFuel = []
for i in range(len(reserveMarginRaw)):
Expand All @@ -147,29 +188,22 @@ def main():
rm = round(rm,3)
reserveMarginTagFuel.append([continent, fuelName, year, rm])

#reserve margin Tag Technology = Region, Technology, Year, Value
reserveMarginTagTech = []
for subregion in canSubregions:
for year in years:
for tech in techTags:
techName = 'PWR' + tech + 'CAN' + subregion + '01'
reserveMarginTagTech.append([continent, techName, year, 1])
return reserveMarginTagFuel

#write out all files
dfReserveMargin = pd.DataFrame(reserveMargin,columns=['REGION','YEAR','VALUE'])
dfReserveMarginUsa = getUsaReserveMargin()
dfReserveMargin = dfReserveMargin.append(dfReserveMarginUsa)
dfReserveMargin.to_csv('../src/data/ReserveMargin.csv', index=False)
def getCanReserveMargin():
# PURPOSE: Creates ReserveMargin file from Canadian data
# INPUT: N/A
# OUTPUT: reserveMargin = Base Reserve Margin Data

dfReserveMarginFuel = pd.DataFrame(reserveMarginTagFuel,columns=['REGION','FUEL','YEAR','VALUE'])
dfReserveMarginFuelUsa = getUsaReserveMarginTagFuel()
dfReserveMarginFuel = dfReserveMarginFuel.append(dfReserveMarginFuelUsa)
dfReserveMarginFuel.to_csv('../src/data/ReserveMarginTagFuel.csv', index=False)
continent = functions.getFromYaml('continent')
years = functions.getYears()

dfReserveMarginTech = pd.DataFrame(reserveMarginTagTech,columns=['REGION','TECHNOLOGY','YEAR','VALUE'])
dfReserveMarginTechUsa = getUsaReserveMarginTagTechnology()
dfReserveMarginTech = dfReserveMarginTech.append(dfReserveMarginTechUsa)
dfReserveMarginTech.to_csv('../src/data/ReserveMarginTagTechnology.csv', index=False)
#Reserve Margin = Region, year, value
reserveMargin = []
for year in years:
reserveMargin.append([continent, year, 1])

return reserveMargin

def getUsaReserveMarginTagTechnology():
# PURPOSE: Creates getReserveMarginTagTechnology file from USA data
Expand Down Expand Up @@ -325,7 +359,7 @@ def getUsaReserveMarginTagFuel():
return dfOut

def getUsaReserveMargin():
# PURPOSE: Creates ReserveMargin file
# PURPOSE: Creates ReserveMargin file from USA data
# INPUT: N/A
# OUTPUT: dfOut = dataframe to be written to a csv

Expand Down
Loading

0 comments on commit c8af7e6

Please sign in to comment.