Skip to content

Commit 3d1db6b

Browse files
authored
Format files using DocumentFormat
1 parent c354f67 commit 3d1db6b

File tree

5 files changed

+124
-112
lines changed

5 files changed

+124
-112
lines changed

src/components/RegionAggregatorSum.jl

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Mimi
22

33
@defcomp RegionAggregatorSum begin
4-
4+
55
inputregions = Index()
66
outputregions = Index()
77

@@ -14,17 +14,17 @@ using Mimi
1414
input = Parameter(index=[time, inputregions])
1515
output = Variable(index=[time, outputregions])
1616

17-
function init(p,v,d)
17+
function init(p, v, d)
1818
idxs = indexin(p.input_output_mapping, p.output_region_names)
1919
!isnothing(findfirst(i -> isnothing(i), idxs)) ? error("All provided region names in the RegionAggregatorSum's input_output_mapping Parameter must exist in the output_region_names Parameter.") : nothing
2020
v.input_output_mapping_int[:] = idxs
2121
end
2222

23-
function run_timestep(p,v,d,t)
24-
v.output[t, :] .= 0.
23+
function run_timestep(p, v, d, t)
24+
v.output[t, :] .= 0.0
2525

2626
for i in d.inputregions
27-
v.output[t, v.input_output_mapping_int[i]] += p.input[t,i]
27+
v.output[t, v.input_output_mapping_int[i]] += p.input[t, i]
2828
end
2929
end
3030
end

src/components/SPs.jl

+35-35
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ using Mimi, CSVFiles, DataFrames, Query, Interpolations, Arrow, CategoricalArray
22
import IteratorInterfaceExtensions, Tables
33

44
# (10/25/2021) BEA Table 1.1.9, line 1 GDP annual values as linked here: https://apps.bea.gov/iTable/iTable.cfm?reqid=19&step=3&isuri=1&select_all_years=0&nipa_table_list=13&series=a&first_year=2005&last_year=2020&scale=-99&categories=survey&thetable=
5-
const pricelevel_2011_to_2005 = 87.504/98.164
5+
const pricelevel_2011_to_2005 = 87.504 / 98.164
66

77
function fill_socioeconomics!(source_Year, source_Country, source_Pop, source_GDP, population, gdp, country_lookup, start_year, end_year)
88
for i in 1:length(source_Year)
@@ -63,50 +63,50 @@ end
6363
end_year = Parameter{Int}(default=Int(2300)) # year (annual) data should end
6464
country_names = Parameter{String}(index=[country]) # need the names of the countries from the dimension
6565
id = Parameter{Int64}(default=Int(6546)) # the sample (out of 10,000) to be used
66-
67-
population = Variable(index=[time, country], unit="million")
68-
population_global = Variable(index=[time], unit="million")
69-
deathrate = Variable(index=[time, country], unit="deaths/1000 persons/yr")
70-
gdp = Variable(index=[time, country], unit="billion US\$2005/yr")
71-
gdp_global = Variable(index=[time], unit="billion US\$2005/yr")
72-
73-
population1990 = Variable(index=[country], unit = "million")
74-
gdp1990 = Variable(index=[country], unit = unit="billion US\$2005/yr")
75-
76-
co2_emissions = Variable(index=[time], unit="GtC/yr")
77-
ch4_emissions = Variable(index=[time], unit="MtCH4/yr")
78-
n2o_emissions = Variable(index=[time], unit="MtN2/yr")
79-
80-
function init(p,v,d)
66+
67+
population = Variable(index=[time, country], unit="million")
68+
population_global = Variable(index=[time], unit="million")
69+
deathrate = Variable(index=[time, country], unit="deaths/1000 persons/yr")
70+
gdp = Variable(index=[time, country], unit="billion US\$2005/yr")
71+
gdp_global = Variable(index=[time], unit="billion US\$2005/yr")
72+
73+
population1990 = Variable(index=[country], unit="million")
74+
gdp1990 = Variable(index=[country], unit=unit = "billion US\$2005/yr")
75+
76+
co2_emissions = Variable(index=[time], unit="GtC/yr")
77+
ch4_emissions = Variable(index=[time], unit="MtCH4/yr")
78+
n2o_emissions = Variable(index=[time], unit="MtN2/yr")
79+
80+
function init(p, v, d)
8181

8282
# add countrys to a dictionary where each country key has a value holding it's
8383
# index in country_names
84-
country_lookup = Dict{String,Int}(name=>i for (i,name) in enumerate(p.country_names))
84+
country_lookup = Dict{String,Int}(name => i for (i, name) in enumerate(p.country_names))
8585
country_indices = d.country::Vector{Int} # helper for type stable country indices
8686

8787
# ----------------------------------------------------------------------
8888
# Socioeconomic Data
8989
# population in millions of individuals
9090
# GDP in billions of $2005 USD
91-
91+
9292
# Load Feather File
9393
t = Arrow.Table(joinpath(datadep"rffsps_v5", "pop_income", "rffsp_pop_income_run_$(p.id).feather"))
9494
fill_socioeconomics!(t.Year, t.Country, t.Pop, t.GDP, v.population, v.gdp, country_lookup, p.start_year, p.end_year)
9595

9696
for year in p.start_year:5:p.end_year-5, country in country_indices
9797
year_as_timestep = TimestepIndex(year - p.start_year + 1)
98-
pop_interpolator = LinearInterpolation(Float64[year, year+5], [log(v.population[year_as_timestep,country]), log(v.population[year_as_timestep+5,country])])
99-
gdp_interpolator = LinearInterpolation(Float64[year, year+5], [log(v.gdp[year_as_timestep,country]), log(v.gdp[year_as_timestep+5,country])])
98+
pop_interpolator = LinearInterpolation(Float64[year, year+5], [log(v.population[year_as_timestep, country]), log(v.population[year_as_timestep+5, country])])
99+
gdp_interpolator = LinearInterpolation(Float64[year, year+5], [log(v.gdp[year_as_timestep, country]), log(v.gdp[year_as_timestep+5, country])])
100100
for year2 in year+1:year+4
101101
year2_as_timestep = TimestepIndex(year2 - p.start_year + 1)
102-
v.population[year2_as_timestep,country] = exp(pop_interpolator[year2])
103-
v.gdp[year2_as_timestep,country] = exp(gdp_interpolator[year2])
102+
v.population[year2_as_timestep, country] = exp(pop_interpolator[year2])
103+
v.gdp[year2_as_timestep, country] = exp(gdp_interpolator[year2])
104104
end
105105
end
106-
106+
107107
# add global data for future accessibility and quality control
108-
v.gdp_global[:,:] = sum(v.gdp[:,:], dims = 2) # sum across countries, which are the second dimension
109-
v.population_global[:,:] = sum(v.population[:,:], dims = 2) # sum across countries, which are the second dimension
108+
v.gdp_global[:, :] = sum(v.gdp[:, :], dims=2) # sum across countries, which are the second dimension
109+
v.population_global[:, :] = sum(v.population[:, :], dims=2) # sum across countries, which are the second dimension
110110

111111
# ----------------------------------------------------------------------
112112
# Death Rate Data
@@ -118,7 +118,7 @@ end
118118
g_datasets[:pop_trajectory_key] = (load(joinpath(datadep"rffsps_v5", "sample_numbers", "sampled_pop_trajectory_numbers.csv")) |> DataFrame).x
119119
end
120120
deathrate_trajectory_id = convert(Int64, g_datasets[:pop_trajectory_key][p.id])
121-
121+
122122
# Load Feather File
123123
t = Arrow.Table(joinpath(datadep"rffsps_v5", "death_rates", "rffsp_death_rates_run_$(deathrate_trajectory_id).feather"))
124124
fill_deathrates!(t.Year, t.ISO3, t.DeathRate, v.deathrate, country_lookup, p.start_year, p.end_year)
@@ -129,7 +129,7 @@ end
129129
# carbon dioxide emissions in GtC
130130
# nitrous oxide emissions in MtN2
131131
# methane emissions in MtCH4
132-
132+
133133
# add data to the global dataset if it's not there
134134
if !haskey(g_datasets, :ch4)
135135
g_datasets[:ch4] = load(joinpath(datadep"rffsps_v5", "emissions", "rffsp_ch4_emissions.csv")) |> DataFrame
@@ -150,13 +150,13 @@ end
150150
# Population and GDP 1990 Values
151151

152152
if !haskey(g_datasets, :ypc1990)
153-
g_datasets[:ypc1990] = load(joinpath(datadep"rffsps_v5", "ypc1990", "rffsp_ypc1990.csv")) |>
154-
DataFrame |>
155-
i -> insertcols!(i, :sample => 1:10_000) |>
156-
i -> stack(i, Not(:sample)) |>
157-
DataFrame |>
158-
i -> rename!(i, [:sample, :country, :value]) |>
159-
DataFrame
153+
g_datasets[:ypc1990] = load(joinpath(datadep"rffsps_v5", "ypc1990", "rffsp_ypc1990.csv")) |>
154+
DataFrame |>
155+
i -> insertcols!(i, :sample => 1:10_000) |>
156+
i -> stack(i, Not(:sample)) |>
157+
DataFrame |>
158+
i -> rename!(i, [:sample, :country, :value]) |>
159+
DataFrame
160160
end
161161
if !haskey(g_datasets, :pop1990)
162162
g_datasets[:pop1990] = load(joinpath(@__DIR__, "..", "..", "data/population1990.csv")) |> DataFrame
@@ -167,7 +167,7 @@ end
167167

168168
end
169169

170-
function run_timestep(p,v,d,t)
170+
function run_timestep(p, v, d, t)
171171

172172
if !(gettime(t) in p.start_year:p.end_year)
173173
error("Cannot run SP component in year $(gettime(t)), SP data is not available for this model and year.")

test/test_Coupled.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ m = Model()
99
set_dimension!(m, :time, 2000:2300)
1010

1111
# Handle the MimiRFFSPs.SPs component
12-
add_comp!(m, MimiRFFSPs.SPs, first = 2020)
12+
add_comp!(m, MimiRFFSPs.SPs, first=2020)
1313
set_dimension!(m, :country, inputregions)
1414
update_param!(m, :SPs, :country_names, inputregions)
1515

1616
# Handle the MimiRFFSPs.RegionAggregatorSum component
17-
add_comp!(m, MimiRFFSPs.RegionAggregatorSum, first = 2020)
17+
add_comp!(m, MimiRFFSPs.RegionAggregatorSum, first=2020)
1818

1919
set_dimension!(m, :inputregions, inputregions)
2020
set_dimension!(m, :outputregions, outputregions)
@@ -28,7 +28,7 @@ connect_param!(m, :RegionAggregatorSum, :input, :SPs, :population)
2828
run(m)
2929

3030
# Should also work if Aggregator runs long, using backup data
31-
Mimi.set_first_last!(m, :RegionAggregatorSum, first = 2000)
31+
Mimi.set_first_last!(m, :RegionAggregatorSum, first=2000)
3232
backup = zeros(301, 184)
3333
connect_param!(m, :RegionAggregatorSum, :input, :SPs, :population, backup, ignoreunits=true)
3434

test/test_RegionAggregatorSum.jl

+9-3
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ run(m)
2121

2222
expected_output = zeros(length(2000:2010), length(outputregions))
2323
for (i, output_region) in enumerate(outputregions)
24-
idxs = findall(i -> i == output_region, dummy_input_output[:,2])
25-
expected_output[:, i] = sum(data[:, idxs], dims = 2)
24+
idxs = findall(i -> i == output_region, dummy_input_output[:, 2])
25+
expected_output[:, i] = sum(data[:, idxs], dims=2)
2626
end
2727

2828
@test (m[:RegionAggregatorSum, :output]) expected_output atol = 1e-9
@@ -31,5 +31,11 @@ bad_mapping = dummy_input_output.Output_Region
3131
bad_mapping[5] = "Region-MISSING" # this does not exist in the output regions list
3232
update_param!(m, :RegionAggregatorSum, :input_output_mapping, bad_mapping)
3333

34-
error_msg = (try eval(run(m)) catch err err end).msg
34+
error_msg = (
35+
try
36+
eval(run(m))
37+
catch err
38+
err
39+
end
40+
).msg
3541
@test occursin("All provided region names in the RegionAggregatorSum's input_output_mapping Parameter must exist in the output_region_names Parameter.", error_msg)

0 commit comments

Comments
 (0)