Skip to content

Commit

Permalink
Merge pull request #111 from jdebacker/example_output
Browse files Browse the repository at this point in the history
Merging
  • Loading branch information
rickecon authored May 16, 2024
2 parents 3135391 + 13841dd commit 252161e
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
run: |
python -m pytest -m "not local" --cov=./ --cov-report=xml
- name: Upload coverage to Codecov
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-latest' && contains(github.repository, 'PSLmodels/OG-USA')
uses: codecov/codecov-action@v4
with:
files: ./coverage.xml
Expand Down
33 changes: 31 additions & 2 deletions examples/run_og_usa.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@
import json
import time
from taxcalc import Calculator
import matplotlib.pyplot as plt
from ogusa.calibrate import Calibration
from ogcore.parameters import Specifications
from ogcore import output_tables as ot
from ogcore import output_plots as op
from ogcore.execute import runner
from ogcore.utils import safe_read_pickle

# Use a custom matplotlib style file for plots
style_file_url = (
"https://raw.githubusercontent.com/PSLmodels/OG-Core/"
+ "master/ogcore/OGcorePlots.mplstyle"
)
plt.style.use(style_file_url)


def main():
# Define parameters to use for multiprocessing
Expand Down Expand Up @@ -46,6 +54,7 @@ def main():
)
)
p.tax_func_type = "GS"
p.age_specific = False
c = Calibration(p, estimate_tax_functions=True, client=client)
# close and delete client bc cache is too large
client.close()
Expand Down Expand Up @@ -99,6 +108,7 @@ def main():
)
)
p2.tax_func_type = "GS"
p2.age_specific = False
# Use calibration class to estimate reform tax functions from
# Tax-Calculator, specifying reform for Tax-Calculator in iit_reform
c2 = Calibration(
Expand Down Expand Up @@ -152,12 +162,31 @@ def main():

# create plots of output
op.plot_all(
base_dir, reform_dir, os.path.join(CUR_DIR, "OG-USA_example_plots")
base_dir,
reform_dir,
os.path.join(CUR_DIR, "OG-USA_example_plots_tables"),
)
# Create CSV file with output
ot.tp_output_dump_table(
base_params,
base_tpi,
reform_params,
reform_tpi,
table_format="csv",
path=os.path.join(
CUR_DIR,
"OG-USA_example_plots_tables",
"macro_time_series_output.csv",
),
)

print("Percentage changes in aggregates:", ans)
# save percentage change output to csv file
ans.to_csv("ogusa_example_output.csv")
ans.to_csv(
os.path.join(
CUR_DIR, "OG-USA_example_plots_tables", "ogusa_example_output.csv"
)
)


if __name__ == "__main__":
Expand Down
36 changes: 34 additions & 2 deletions examples/run_og_usa_current_policy_baseline.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import json
import time
from taxcalc import Calculator
import matplotlib.pyplot as plt
from ogusa.calibrate import Calibration
from ogcore.parameters import Specifications
from ogcore import output_tables as ot
Expand All @@ -13,6 +14,14 @@
from ogcore.utils import safe_read_pickle


# Use a custom matplotlib style file for plots
style_file_url = (
"https://raw.githubusercontent.com/PSLmodels/OG-Core/"
+ "master/ogcore/OGcorePlots.mplstyle"
)
plt.style.use(style_file_url)


def main():
# Define parameters to use for multiprocessing
num_workers = min(multiprocessing.cpu_count(), 7)
Expand Down Expand Up @@ -47,6 +56,7 @@ def main():
)
)
p.tax_func_type = "GS"
p.age_specific = False
# get current policy JSON file
base_url = (
"github://PSLmodels:Tax-Calculator@master/taxcalc/"
Expand Down Expand Up @@ -111,6 +121,7 @@ def main():
)
)
p2.tax_func_type = "GS"
p.age_specific = False
# Use calibration class to estimate reform tax functions from
# Tax-Calculator, specifying reform for Tax-Calculator in iit_reform
c2 = Calibration(
Expand Down Expand Up @@ -168,12 +179,33 @@ def main():

# create plots of output
op.plot_all(
base_dir, reform_dir, os.path.join(CUR_DIR, "OG-USA_example_plots")
base_dir,
reform_dir,
os.path.join(CUR_DIR, "OG-USA_current_policy_example_plots_tables"),
)
# Create CSV file with output
ot.tp_output_dump_table(
base_params,
base_tpi,
reform_params,
reform_tpi,
table_format="csv",
path=os.path.join(
CUR_DIR,
"OG-USA_example_plots_tables",
"macro_time_series_output.csv",
),
)

print("Percentage changes in aggregates:", ans)
# save percentage change output to csv file
ans.to_csv("ogusa_example_output.csv")
ans.to_csv(
os.path.join(
CUR_DIR,
"OG-USA_current_policy_example_plots_tables",
"ogusa_example_output.csv",
)
)


if __name__ == "__main__":
Expand Down

0 comments on commit 252161e

Please sign in to comment.