@@ -22,20 +22,30 @@ def write(s):
22
22
f .write (s + "\n " )
23
23
24
24
# sea level rise
25
+ # level
25
26
if scenario in settings ["slr_scenarios" ]["enable_in" ]:
26
27
slr_progression = orca .get_table ("slr_progression" )
27
28
slr = slr_progression ['inundated' ].max ()
28
29
write ("Sea level rise in this scenario is %d inches" % slr )
29
30
else :
30
31
write ("There is no sea level rise in this scenario" )
32
+ # mitigation
33
+ slr_mitigation = orca .get_injectable ("slr_mitigation" )
34
+ write ("Sea level rise mitigation is %s" % slr_mitigation )
31
35
32
36
write ("" )
33
37
34
38
# earthquake
39
+ # activation
35
40
if scenario in settings ["eq_scenarios" ]["enable_in" ]:
36
41
write ("Earthquake is activated" )
37
42
else :
38
43
write ("Earthquake is not activated" )
44
+ # mitigation
45
+ if scenario in settings ["eq_scenarios" ]["mitigation" ]:
46
+ write ("Earthquake retrofit policies are applied" )
47
+ else :
48
+ write ("Earthquake retrofit policies are not applied" )
39
49
40
50
write ("" )
41
51
@@ -47,7 +57,6 @@ def write(s):
47
57
write ("Household control file used: %s" % hh_fname )
48
58
emp_fname = orca .get_injectable ("employment_control_file" )
49
59
write ("Employment file used: %s" % emp_fname )
50
- # these injectables are not storing ...
51
60
reg_fname = orca .get_injectable ("reg_control_file" )
52
61
write ("Regional control file used is: %s" % reg_fname )
53
62
reg_dem_fname = orca .get_injectable ("reg_dem_control_file" )
@@ -80,7 +89,6 @@ def write(s):
80
89
else :
81
90
write ("No 2030 non-mandatory accessibility file is set" )
82
91
# segmentation
83
- # this injectable is also not storing ...
84
92
acc_seg_fname_2010 = orca .get_injectable ("acc_seg_file_2010" )
85
93
write ("2010 accessibility segmentation file used: %s"
86
94
% acc_seg_fname_2010 )
@@ -1633,60 +1641,81 @@ def hazards_slr_summary(run_number, year, scenario, households, jobs, parcels,
1633
1641
if scenario not in settings ["slr_scenarios" ]["enable_in" ]:
1634
1642
return
1635
1643
1636
- f = open ( os . path . join ( "runs" , "run%d_hazards_slr_%d.log" %
1637
- ( run_number , year )), "w" )
1644
+ destroy_parcels = orca . get_table ( "destroy_parcels" )
1645
+ if len ( destroy_parcels ) > 0 :
1638
1646
1639
- def write (s ):
1640
- # print s
1641
- f .write (s + "\n \n " )
1647
+ def write (s ):
1648
+ # print s
1649
+ f .write (s + "\n \n " )
1642
1650
1643
- destroy_parcels = orca .get_table ("destroy_parcels" )
1644
- slr_demolish = orca .get_table ("slr_demolish" )
1645
- n = len (destroy_parcels )
1646
- write ("Number of impacted parcels = %d" % n )
1647
- n = slr_demolish ['residential_units' ].sum ()
1648
- write ("Number of impacted residential units = %d" % n )
1649
- n = slr_demolish ['building_sqft' ].sum ()
1650
- write ("Number of impacted building sqft = %d" % n )
1651
-
1652
- # income quartile counts
1653
- hh_unplaced_slr = orca .get_injectable ("hh_unplaced_slr" )
1654
-
1655
- write ("Number of impacted households by type" )
1656
-
1657
- hh_summary = pd .DataFrame (index = [0 ])
1658
- hh_summary ['hhincq1' ] = \
1659
- (hh_unplaced_slr ["base_income_quartile" ] == 1 ).sum ()
1660
- hh_summary ['hhincq2' ] = \
1661
- (hh_unplaced_slr ["base_income_quartile" ] == 2 ).sum ()
1662
- hh_summary ['hhincq3' ] = \
1663
- (hh_unplaced_slr ["base_income_quartile" ] == 3 ).sum ()
1664
- hh_summary ['hhincq4' ] = \
1665
- (hh_unplaced_slr ["base_income_quartile" ] == 4 ).sum ()
1666
- hh_summary .to_string (f , index = False )
1651
+ f = open (os .path .join ("runs" , "run%d_hazards_slr_%d.log" %
1652
+ (run_number , year )), "w" )
1667
1653
1668
- write ("" )
1669
- jobs_unplaced_slr = orca .get_injectable ("jobs_unplaced_slr" )
1670
- # employees by sector
1654
+ n = len (destroy_parcels )
1655
+ write ("Number of impacted parcels = %d" % n )
1656
+
1657
+ try :
1658
+ slr_demolish_cum = orca .get_table ("slr_demolish_cum" ).to_frame ()
1659
+ except :
1660
+ slr_demolish_cum = pd .DataFrame ()
1661
+ slr_demolish = orca .get_table ("slr_demolish" ).to_frame ()
1662
+ slr_demolish_cum = slr_demolish .append (slr_demolish_cum )
1663
+ orca .add_table ("slr_demolish_cum" , slr_demolish_cum )
1671
1664
1672
- write ("Number of impacted jobs by sector" )
1665
+ n = slr_demolish_cum ['residential_units' ].sum ()
1666
+ write ("Number of impacted residential units = %d" % n )
1667
+ n = slr_demolish_cum ['building_sqft' ].sum ()
1668
+ write ("Number of impacted building sqft = %d" % n )
1673
1669
1674
- jobs_summary = pd .DataFrame (index = [0 ])
1675
- jobs_summary ['agrempn' ] = (jobs_unplaced_slr ["empsix" ] == 'AGREMPN' ).sum ()
1676
- jobs_summary ['mwtempn' ] = (jobs_unplaced_slr ["empsix" ] == 'MWTEMPN' ).sum ()
1677
- jobs_summary ['retempn' ] = (jobs_unplaced_slr ["empsix" ] == 'RETEMPN' ).sum ()
1678
- jobs_summary ['fpsempn' ] = (jobs_unplaced_slr ["empsix" ] == 'FPSEMPN' ).sum ()
1679
- jobs_summary ['herempn' ] = (jobs_unplaced_slr ["empsix" ] == 'HEREMPN' ).sum ()
1680
- jobs_summary ['othempn' ] = (jobs_unplaced_slr ["empsix" ] == 'OTHEMPN' ).sum ()
1681
- jobs_summary .to_string (f , index = False )
1670
+ # income quartile counts
1671
+ try :
1672
+ hh_unplaced_slr_cum = \
1673
+ orca .get_table ("hh_unplaced_slr_cum" ).to_frame ()
1674
+ except :
1675
+ hh_unplaced_slr_cum = pd .DataFrame ()
1676
+ hh_unplaced_slr = orca .get_injectable ("hh_unplaced_slr" )
1677
+ hh_unplaced_slr_cum = hh_unplaced_slr .append (hh_unplaced_slr_cum )
1678
+ orca .add_table ("hh_unplaced_slr_cum" , hh_unplaced_slr_cum )
1682
1679
1683
- f .close ()
1680
+ write ("Number of impacted households by type" )
1681
+ hs = pd .DataFrame (index = [0 ])
1682
+ hs ['hhincq1' ] = \
1683
+ (hh_unplaced_slr_cum ["base_income_quartile" ] == 1 ).sum ()
1684
+ hs ['hhincq2' ] = \
1685
+ (hh_unplaced_slr_cum ["base_income_quartile" ] == 2 ).sum ()
1686
+ hs ['hhincq3' ] = \
1687
+ (hh_unplaced_slr_cum ["base_income_quartile" ] == 3 ).sum ()
1688
+ hs ['hhincq4' ] = \
1689
+ (hh_unplaced_slr_cum ["base_income_quartile" ] == 4 ).sum ()
1690
+ hs .to_string (f , index = False )
1691
+
1692
+ write ("" )
1693
+
1694
+ # employees by sector
1695
+ try :
1696
+ jobs_unplaced_slr_cum = \
1697
+ orca .get_table ("jobs_unplaced_slr_cum" ).to_frame ()
1698
+ except :
1699
+ jobs_unplaced_slr_cum = pd .DataFrame ()
1700
+ jobs_unplaced_slr = orca .get_injectable ("jobs_unplaced_slr" )
1701
+ jobs_unplaced_slr_cum = jobs_unplaced_slr .append (jobs_unplaced_slr_cum )
1702
+ orca .add_table ("jobs_unplaced_slr_cum" , jobs_unplaced_slr_cum )
1703
+
1704
+ write ("Number of impacted jobs by sector" )
1705
+ js = pd .DataFrame (index = [0 ])
1706
+ js ['agrempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'AGREMPN' ).sum ()
1707
+ js ['mwtempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'MWTEMPN' ).sum ()
1708
+ js ['retempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'RETEMPN' ).sum ()
1709
+ js ['fpsempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'FPSEMPN' ).sum ()
1710
+ js ['herempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'HEREMPN' ).sum ()
1711
+ js ['othempn' ] = (jobs_unplaced_slr_cum ["empsix" ] == 'OTHEMPN' ).sum ()
1712
+ js .to_string (f , index = False )
1713
+
1714
+ f .close ()
1684
1715
1685
- slr_demolish = slr_demolish .to_frame ()
1686
- slr_demolish = slr_demolish [['parcel_id' ]]
1687
- slr_demolish .to_csv (os .path .join ("runs" ,
1688
- "run%d_hazards_slr_buildings_%d.csv"
1689
- % (run_number , year )))
1716
+ slr_demolish .to_csv (os .path .join ("runs" ,
1717
+ "run%d_hazards_slr_buildings_%d.csv"
1718
+ % (run_number , year )))
1690
1719
1691
1720
1692
1721
@orca .step ()
@@ -1780,29 +1809,53 @@ def write(s):
1780
1809
1781
1810
f .close ()
1782
1811
1812
+ # print out demolished buildings
1783
1813
eq_demolish = eq_demolish .to_frame ()
1784
1814
eq_demolish_taz = misc .reindex (parcels .zone_id ,
1785
1815
eq_demolish .parcel_id )
1786
1816
eq_demolish ['taz' ] = eq_demolish_taz
1817
+ eq_demolish ['count' ] = 1
1787
1818
eq_demolish = eq_demolish .drop (['parcel_id' , 'year_built' ,
1788
1819
'redfin_sale_year' ], axis = 1 )
1789
1820
eq_demolish = eq_demolish .groupby (['taz' ]).sum ()
1790
1821
eq_demolish .to_csv (os .path .join ("runs" ,
1791
1822
"run%d_hazards_eq_demolish_buildings_%d.csv"
1792
1823
% (run_number , year )))
1793
1824
1825
+ # print out retrofit buildings that were saved
1826
+ if scenario in settings ["eq_scenarios" ]["mitigation" ]:
1827
+ retrofit_bldgs_tot = orca .get_table ("retrofit_bldgs_tot" )
1828
+ retrofit_bldgs_tot = retrofit_bldgs_tot .to_frame ()
1829
+ retrofit_bldgs_tot_taz = misc .reindex (parcels .zone_id ,
1830
+ retrofit_bldgs_tot .parcel_id )
1831
+ retrofit_bldgs_tot ['taz' ] = retrofit_bldgs_tot_taz
1832
+ retrofit_bldgs_tot ['count' ] = 1
1833
+ retrofit_bldgs_tot = retrofit_bldgs_tot [[
1834
+ 'taz' , 'residential_units' , 'residential_sqft' ,
1835
+ 'non_residential_sqft' , 'building_sqft' , 'stories' ,
1836
+ 'redfin_sale_price' , 'non_residential_rent' ,
1837
+ 'deed_restricted_units' , 'residential_price' , 'count' ]]
1838
+ retrofit_bldgs_tot = retrofit_bldgs_tot .groupby (['taz' ]).sum ()
1839
+ retrofit_bldgs_tot .\
1840
+ to_csv (os .path .join (
1841
+ "runs" , "run%d_hazards_eq_retrofit_buildings_%d.csv"
1842
+ % (run_number , year )))
1843
+
1844
+ # print out buildings in 2030, 2035, and 2050 so Horizon team can compare
1845
+ # building inventory by TAZ
1794
1846
if year in [2030 , 2035 , 2050 ] and scenario in \
1795
1847
settings ["eq_scenarios" ]["enable_in" ]:
1796
1848
buildings = buildings .to_frame ()
1797
1849
buildings_taz = misc .reindex (parcels .zone_id ,
1798
1850
buildings .parcel_id )
1799
1851
buildings ['taz' ] = buildings_taz
1800
- buildings = buildings [['taz' , 'residential_units' , 'residential_sqft' ,
1801
- 'non_residential_sqft' , 'building_sqft' ,
1802
- 'stories' , 'redfin_sale_price' ,
1852
+ buildings ['count' ] = 1
1853
+ buildings = buildings [['taz' , 'count' , 'residential_units' ,
1854
+ 'residential_sqft' , 'non_residential_sqft' ,
1855
+ 'building_sqft' , 'stories' , 'redfin_sale_price' ,
1803
1856
'non_residential_rent' , 'deed_restricted_units' ,
1804
1857
'residential_price' ]]
1805
1858
buildings = buildings .groupby (['taz' ]).sum ()
1806
1859
buildings .to_csv (os .path .join ("runs" ,
1807
- "run%d_hazards_eq_buildings_ %d.csv"
1860
+ "run%d_hazards_eq_buildings_list_ %d.csv"
1808
1861
% (run_number , year )))
0 commit comments