diff --git a/R/utils.R b/R/utils.R index ed89a6c..7cc70d6 100644 --- a/R/utils.R +++ b/R/utils.R @@ -34,3 +34,16 @@ download_model_RDS <- function(modelname) { } return(file_path) } + +#' Load state population table. +load_state_population <- function(path=NULL) { + if (is.null(path)) { + path <- file.path("../data/state_population.csv") + } else { + path <- file.path(path, "state_population.csv") + } + pop <- read.csv(path, header=TRUE) + pop <- pop[,c("FlowAmount","Abbreviation","Year")] + colnames(pop) <- c("Population","State","Year") + return(pop) +} diff --git a/data/state_population.csv b/data/state_population.csv new file mode 100644 index 0000000..7a90319 --- /dev/null +++ b/data/state_population.csv @@ -0,0 +1,451 @@ +Location,FlowAmount,Year,State,Abbreviation +01000,4815588.0,2012,Alabama,AL +01000,4833722.0,2013,Alabama,AL +01000,4849377.0,2014,Alabama,AL +01000,4858979.0,2015,Alabama,AL +01000,4863300.0,2016,Alabama,AL +01000,4874747.0,2017,Alabama,AL +01000,4887871.0,2018,Alabama,AL +01000,4903185.0,2019,Alabama,AL +01000,5024803.0,2020,Alabama,AL +02000,730443.0,2012,Alaska,AK +02000,735132.0,2013,Alaska,AK +02000,736732.0,2014,Alaska,AK +02000,738432.0,2015,Alaska,AK +02000,741894.0,2016,Alaska,AK +02000,739795.0,2017,Alaska,AK +02000,737438.0,2018,Alaska,AK +02000,731545.0,2019,Alaska,AK +02000,732441.0,2020,Alaska,AK +04000,6554978.0,2012,Arizona,AZ +04000,6626624.0,2013,Arizona,AZ +04000,6731484.0,2014,Arizona,AZ +04000,6828065.0,2015,Arizona,AZ +04000,6931071.0,2016,Arizona,AZ +04000,7016270.0,2017,Arizona,AZ +04000,7171646.0,2018,Arizona,AZ +04000,7278717.0,2019,Arizona,AZ +04000,7177986.0,2020,Arizona,AZ +05000,2952164.0,2012,Arkansas,AR +05000,2959373.0,2013,Arkansas,AR +05000,2966369.0,2014,Arkansas,AR +05000,2978204.0,2015,Arkansas,AR +05000,2988248.0,2016,Arkansas,AR +05000,3004279.0,2017,Arkansas,AR +05000,3013825.0,2018,Arkansas,AR +05000,3017804.0,2019,Arkansas,AR +05000,3012232.0,2020,Arkansas,AR +06000,37948800.0,2012,California,CA +06000,38332521.0,2013,California,CA +06000,38802500.0,2014,California,CA +06000,39144818.0,2015,California,CA +06000,39250017.0,2016,California,CA +06000,39536653.0,2017,California,CA +06000,39557045.0,2018,California,CA +06000,39512223.0,2019,California,CA +06000,39499738.0,2020,California,CA +08000,5192647.0,2012,Colorado,CO +08000,5268367.0,2013,Colorado,CO +08000,5355866.0,2014,Colorado,CO +08000,5456574.0,2015,Colorado,CO +08000,5540545.0,2016,Colorado,CO +08000,5607154.0,2017,Colorado,CO +08000,5695564.0,2018,Colorado,CO +08000,5758736.0,2019,Colorado,CO +08000,5784308.0,2020,Colorado,CO +09000,3594547.0,2012,Connecticut,CT +09000,3596080.0,2013,Connecticut,CT +09000,3596677.0,2014,Connecticut,CT +09000,3590886.0,2015,Connecticut,CT +09000,3576452.0,2016,Connecticut,CT +09000,3588184.0,2017,Connecticut,CT +09000,3572665.0,2018,Connecticut,CT +09000,3565287.0,2019,Connecticut,CT +09000,3600260.0,2020,Connecticut,CT +10000,915179.0,2012,Delaware,DE +10000,925749.0,2013,Delaware,DE +10000,935614.0,2014,Delaware,DE +10000,945934.0,2015,Delaware,DE +10000,952065.0,2016,Delaware,DE +10000,961939.0,2017,Delaware,DE +10000,967171.0,2018,Delaware,DE +10000,973764.0,2019,Delaware,DE +10000,991886.0,2020,Delaware,DE +12000,19297822.0,2012,Florida,FL +12000,19552860.0,2013,Florida,FL +12000,19893297.0,2014,Florida,FL +12000,20271272.0,2015,Florida,FL +12000,20612439.0,2016,Florida,FL +12000,20984400.0,2017,Florida,FL +12000,21299325.0,2018,Florida,FL +12000,21477737.0,2019,Florida,FL +12000,21569932.0,2020,Florida,FL +13000,9901430.0,2012,Georgia,GA +13000,9992167.0,2013,Georgia,GA +13000,10097343.0,2014,Georgia,GA +13000,10214860.0,2015,Georgia,GA +13000,10310371.0,2016,Georgia,GA +13000,10429379.0,2017,Georgia,GA +13000,10519475.0,2018,Georgia,GA +13000,10617423.0,2019,Georgia,GA +13000,10725800.0,2020,Georgia,GA +15000,1394804.0,2012,Hawaii,HI +15000,1404054.0,2013,Hawaii,HI +15000,1419561.0,2014,Hawaii,HI +15000,1431603.0,2015,Hawaii,HI +15000,1428557.0,2016,Hawaii,HI +15000,1427538.0,2017,Hawaii,HI +15000,1420491.0,2018,Hawaii,HI +15000,1415872.0,2019,Hawaii,HI +15000,1451911.0,2020,Hawaii,HI +16000,1595324.0,2012,Idaho,ID +16000,1612136.0,2013,Idaho,ID +16000,1634464.0,2014,Idaho,ID +16000,1654930.0,2015,Idaho,ID +16000,1683140.0,2016,Idaho,ID +16000,1716943.0,2017,Idaho,ID +16000,1754208.0,2018,Idaho,ID +16000,1787065.0,2019,Idaho,ID +16000,1847772.0,2020,Idaho,ID +17000,12882510.0,2012,Illinois,IL +17000,12882135.0,2013,Illinois,IL +17000,12880580.0,2014,Illinois,IL +17000,12859995.0,2015,Illinois,IL +17000,12801539.0,2016,Illinois,IL +17000,12802023.0,2017,Illinois,IL +17000,12741080.0,2018,Illinois,IL +17000,12671821.0,2019,Illinois,IL +17000,12785245.0,2020,Illinois,IL +18000,6537703.0,2012,Indiana,IN +18000,6570902.0,2013,Indiana,IN +18000,6596855.0,2014,Indiana,IN +18000,6619680.0,2015,Indiana,IN +18000,6633053.0,2016,Indiana,IN +18000,6666818.0,2017,Indiana,IN +18000,6691878.0,2018,Indiana,IN +18000,6732219.0,2019,Indiana,IN +18000,6785644.0,2020,Indiana,IN +19000,3076190.0,2012,Iowa,IA +19000,3090416.0,2013,Iowa,IA +19000,3107126.0,2014,Iowa,IA +19000,3123899.0,2015,Iowa,IA +19000,3134693.0,2016,Iowa,IA +19000,3145711.0,2017,Iowa,IA +19000,3156145.0,2018,Iowa,IA +19000,3155070.0,2019,Iowa,IA +19000,3188669.0,2020,Iowa,IA +20000,2885257.0,2012,Kansas,KS +20000,2893957.0,2013,Kansas,KS +20000,2904021.0,2014,Kansas,KS +20000,2911641.0,2015,Kansas,KS +20000,2907289.0,2016,Kansas,KS +20000,2913123.0,2017,Kansas,KS +20000,2911505.0,2018,Kansas,KS +20000,2913314.0,2019,Kansas,KS +20000,2935880.0,2020,Kansas,KS +21000,4386346.0,2012,Kentucky,KY +21000,4395295.0,2013,Kentucky,KY +21000,4413457.0,2014,Kentucky,KY +21000,4425092.0,2015,Kentucky,KY +21000,4436974.0,2016,Kentucky,KY +21000,4454189.0,2017,Kentucky,KY +21000,4468402.0,2018,Kentucky,KY +21000,4467673.0,2019,Kentucky,KY +21000,4503958.0,2020,Kentucky,KY +22000,4600972.0,2012,Louisiana,LA +22000,4625470.0,2013,Louisiana,LA +22000,4649676.0,2014,Louisiana,LA +22000,4670724.0,2015,Louisiana,LA +22000,4681666.0,2016,Louisiana,LA +22000,4684333.0,2017,Louisiana,LA +22000,4659978.0,2018,Louisiana,LA +22000,4648794.0,2019,Louisiana,LA +22000,4651203.0,2020,Louisiana,LA +23000,1327729.0,2012,Maine,ME +23000,1328302.0,2013,Maine,ME +23000,1330089.0,2014,Maine,ME +23000,1329328.0,2015,Maine,ME +23000,1331479.0,2016,Maine,ME +23000,1335907.0,2017,Maine,ME +23000,1338404.0,2018,Maine,ME +23000,1344212.0,2019,Maine,ME +23000,1362280.0,2020,Maine,ME +24000,5886992.0,2012,Maryland,MD +24000,5928814.0,2013,Maryland,MD +24000,5976407.0,2014,Maryland,MD +24000,6006401.0,2015,Maryland,MD +24000,6016447.0,2016,Maryland,MD +24000,6052177.0,2017,Maryland,MD +24000,6042718.0,2018,Maryland,MD +24000,6045680.0,2019,Maryland,MD +24000,6172679.0,2020,Maryland,MD +25000,6663005.0,2012,Massachusetts,MA +25000,6692824.0,2013,Massachusetts,MA +25000,6745408.0,2014,Massachusetts,MA +25000,6794422.0,2015,Massachusetts,MA +25000,6811779.0,2016,Massachusetts,MA +25000,6859819.0,2017,Massachusetts,MA +25000,6902149.0,2018,Massachusetts,MA +25000,6892503.0,2019,Massachusetts,MA +25000,7022220.0,2020,Massachusetts,MA +26000,9897145.0,2012,Michigan,MI +26000,9895622.0,2013,Michigan,MI +26000,9909877.0,2014,Michigan,MI +26000,9922576.0,2015,Michigan,MI +26000,9928300.0,2016,Michigan,MI +26000,9962311.0,2017,Michigan,MI +26000,9995915.0,2018,Michigan,MI +26000,9986857.0,2019,Michigan,MI +26000,10067664.0,2020,Michigan,MI +27000,5376643.0,2012,Minnesota,MN +27000,5420380.0,2013,Minnesota,MN +27000,5457173.0,2014,Minnesota,MN +27000,5489594.0,2015,Minnesota,MN +27000,5519952.0,2016,Minnesota,MN +27000,5576606.0,2017,Minnesota,MN +27000,5611179.0,2018,Minnesota,MN +27000,5639632.0,2019,Minnesota,MN +27000,5707165.0,2020,Minnesota,MN +28000,2983816.0,2012,Mississippi,MS +28000,2991207.0,2013,Mississippi,MS +28000,2994079.0,2014,Mississippi,MS +28000,2992333.0,2015,Mississippi,MS +28000,2988726.0,2016,Mississippi,MS +28000,2984100.0,2017,Mississippi,MS +28000,2986530.0,2018,Mississippi,MS +28000,2976149.0,2019,Mississippi,MS +28000,2956870.0,2020,Mississippi,MS +29000,6024367.0,2012,Missouri,MO +29000,6044171.0,2013,Missouri,MO +29000,6063589.0,2014,Missouri,MO +29000,6083672.0,2015,Missouri,MO +29000,6093000.0,2016,Missouri,MO +29000,6113532.0,2017,Missouri,MO +29000,6126452.0,2018,Missouri,MO +29000,6137428.0,2019,Missouri,MO +29000,6154481.0,2020,Missouri,MO +30000,1003783.0,2012,Montana,MT +30000,1015165.0,2013,Montana,MT +30000,1023579.0,2014,Montana,MT +30000,1032949.0,2015,Montana,MT +30000,1042520.0,2016,Montana,MT +30000,1050493.0,2017,Montana,MT +30000,1062305.0,2018,Montana,MT +30000,1068778.0,2019,Montana,MT +30000,1086193.0,2020,Montana,MT +31000,1853303.0,2012,Nebraska,NE +31000,1868516.0,2013,Nebraska,NE +31000,1881503.0,2014,Nebraska,NE +31000,1896190.0,2015,Nebraska,NE +31000,1907116.0,2016,Nebraska,NE +31000,1920076.0,2017,Nebraska,NE +31000,1929268.0,2018,Nebraska,NE +31000,1934408.0,2019,Nebraska,NE +31000,1961455.0,2020,Nebraska,NE +32000,2743996.0,2012,Nevada,NV +32000,2790136.0,2013,Nevada,NV +32000,2839099.0,2014,Nevada,NV +32000,2890845.0,2015,Nevada,NV +32000,2940058.0,2016,Nevada,NV +32000,2998039.0,2017,Nevada,NV +32000,3034392.0,2018,Nevada,NV +32000,3080156.0,2019,Nevada,NV +32000,3114071.0,2020,Nevada,NV +33000,1324232.0,2012,New Hampshire,NH +33000,1323459.0,2013,New Hampshire,NH +33000,1326813.0,2014,New Hampshire,NH +33000,1330608.0,2015,New Hampshire,NH +33000,1334795.0,2016,New Hampshire,NH +33000,1342795.0,2017,New Hampshire,NH +33000,1356458.0,2018,New Hampshire,NH +33000,1359711.0,2019,New Hampshire,NH +33000,1377848.0,2020,New Hampshire,NH +34000,8844942.0,2012,New Jersey,NJ +34000,8899339.0,2013,New Jersey,NJ +34000,8938175.0,2014,New Jersey,NJ +34000,8958013.0,2015,New Jersey,NJ +34000,8944469.0,2016,New Jersey,NJ +34000,9005644.0,2017,New Jersey,NJ +34000,8908520.0,2018,New Jersey,NJ +34000,8882190.0,2019,New Jersey,NJ +34000,9279743.0,2020,New Jersey,NJ +35000,2087309.0,2012,New Mexico,NM +35000,2085287.0,2013,New Mexico,NM +35000,2085572.0,2014,New Mexico,NM +35000,2085109.0,2015,New Mexico,NM +35000,2081015.0,2016,New Mexico,NM +35000,2088070.0,2017,New Mexico,NM +35000,2095428.0,2018,New Mexico,NM +35000,2096829.0,2019,New Mexico,NM +35000,2117566.0,2020,New Mexico,NM +36000,19572932.0,2012,New York,NY +36000,19651127.0,2013,New York,NY +36000,19746227.0,2014,New York,NY +36000,19795791.0,2015,New York,NY +36000,19745289.0,2016,New York,NY +36000,19849399.0,2017,New York,NY +36000,19542209.0,2018,New York,NY +36000,19453561.0,2019,New York,NY +36000,20154933.0,2020,New York,NY +37000,9749476.0,2012,North Carolina,NC +37000,9848060.0,2013,North Carolina,NC +37000,9943964.0,2014,North Carolina,NC +37000,10042802.0,2015,North Carolina,NC +37000,10146788.0,2016,North Carolina,NC +37000,10273419.0,2017,North Carolina,NC +37000,10383620.0,2018,North Carolina,NC +37000,10488084.0,2019,North Carolina,NC +37000,10457177.0,2020,North Carolina,NC +38000,701176.0,2012,North Dakota,ND +38000,723393.0,2013,North Dakota,ND +38000,739482.0,2014,North Dakota,ND +38000,756927.0,2015,North Dakota,ND +38000,757952.0,2016,North Dakota,ND +38000,755393.0,2017,North Dakota,ND +38000,760077.0,2018,North Dakota,ND +38000,762062.0,2019,North Dakota,ND +38000,778962.0,2020,North Dakota,ND +39000,11548923.0,2012,Ohio,OH +39000,11570808.0,2013,Ohio,OH +39000,11594163.0,2014,Ohio,OH +39000,11613423.0,2015,Ohio,OH +39000,11614373.0,2016,Ohio,OH +39000,11658609.0,2017,Ohio,OH +39000,11689442.0,2018,Ohio,OH +39000,11689100.0,2019,Ohio,OH +39000,11790587.0,2020,Ohio,OH +40000,3818814.0,2012,Oklahoma,OK +40000,3850568.0,2013,Oklahoma,OK +40000,3878051.0,2014,Oklahoma,OK +40000,3911338.0,2015,Oklahoma,OK +40000,3923561.0,2016,Oklahoma,OK +40000,3930864.0,2017,Oklahoma,OK +40000,3943079.0,2018,Oklahoma,OK +40000,3956971.0,2019,Oklahoma,OK +40000,3962031.0,2020,Oklahoma,OK +41000,3899001.0,2012,Oregon,OR +41000,3930065.0,2013,Oregon,OR +41000,3970239.0,2014,Oregon,OR +41000,4028977.0,2015,Oregon,OR +41000,4093465.0,2016,Oregon,OR +41000,4142776.0,2017,Oregon,OR +41000,4190713.0,2018,Oregon,OR +41000,4217737.0,2019,Oregon,OR +41000,4241544.0,2020,Oregon,OR +42000,12767118.0,2012,Pennsylvania,PA +42000,12773801.0,2013,Pennsylvania,PA +42000,12787209.0,2014,Pennsylvania,PA +42000,12802503.0,2015,Pennsylvania,PA +42000,12784227.0,2016,Pennsylvania,PA +42000,12805537.0,2017,Pennsylvania,PA +42000,12807060.0,2018,Pennsylvania,PA +42000,12801989.0,2019,Pennsylvania,PA +42000,12989625.0,2020,Pennsylvania,PA +44000,1054621.0,2012,Rhode Island,RI +44000,1051511.0,2013,Rhode Island,RI +44000,1055173.0,2014,Rhode Island,RI +44000,1056298.0,2015,Rhode Island,RI +44000,1056426.0,2016,Rhode Island,RI +44000,1059639.0,2017,Rhode Island,RI +44000,1057315.0,2018,Rhode Island,RI +44000,1059361.0,2019,Rhode Island,RI +44000,1096229.0,2020,Rhode Island,RI +45000,4717354.0,2012,South Carolina,SC +45000,4774839.0,2013,South Carolina,SC +45000,4832482.0,2014,South Carolina,SC +45000,4896146.0,2015,South Carolina,SC +45000,4961119.0,2016,South Carolina,SC +45000,5024369.0,2017,South Carolina,SC +45000,5084127.0,2018,South Carolina,SC +45000,5148714.0,2019,South Carolina,SC +45000,5130729.0,2020,South Carolina,SC +46000,833566.0,2012,South Dakota,SD +46000,844877.0,2013,South Dakota,SD +46000,853175.0,2014,South Dakota,SD +46000,858469.0,2015,South Dakota,SD +46000,865454.0,2016,South Dakota,SD +46000,869666.0,2017,South Dakota,SD +46000,882235.0,2018,South Dakota,SD +46000,884659.0,2019,South Dakota,SD +46000,887099.0,2020,South Dakota,SD +47000,6453898.0,2012,Tennessee,TN +47000,6495978.0,2013,Tennessee,TN +47000,6549352.0,2014,Tennessee,TN +47000,6600299.0,2015,Tennessee,TN +47000,6651194.0,2016,Tennessee,TN +47000,6715984.0,2017,Tennessee,TN +47000,6770010.0,2018,Tennessee,TN +47000,6829174.0,2019,Tennessee,TN +47000,6920119.0,2020,Tennessee,TN +48000,26084481.0,2012,Texas,TX +48000,26448193.0,2013,Texas,TX +48000,26956958.0,2014,Texas,TX +48000,27469114.0,2015,Texas,TX +48000,27862596.0,2016,Texas,TX +48000,28304596.0,2017,Texas,TX +48000,28701845.0,2018,Texas,TX +48000,28995881.0,2019,Texas,TX +48000,29217653.0,2020,Texas,TX +49000,2853375.0,2012,Utah,UT +49000,2900872.0,2013,Utah,UT +49000,2942902.0,2014,Utah,UT +49000,2995919.0,2015,Utah,UT +49000,3051217.0,2016,Utah,UT +49000,3101833.0,2017,Utah,UT +49000,3161105.0,2018,Utah,UT +49000,3205958.0,2019,Utah,UT +49000,3281684.0,2020,Utah,UT +50000,626090.0,2012,Vermont,VT +50000,626630.0,2013,Vermont,VT +50000,626562.0,2014,Vermont,VT +50000,626042.0,2015,Vermont,VT +50000,624594.0,2016,Vermont,VT +50000,623657.0,2017,Vermont,VT +50000,626299.0,2018,Vermont,VT +50000,623989.0,2019,Vermont,VT +50000,642495.0,2020,Vermont,VT +51000,8185080.0,2012,Virginia,VA +51000,8260405.0,2013,Virginia,VA +51000,8326289.0,2014,Virginia,VA +51000,8382993.0,2015,Virginia,VA +51000,8411808.0,2016,Virginia,VA +51000,8470020.0,2017,Virginia,VA +51000,8517685.0,2018,Virginia,VA +51000,8535519.0,2019,Virginia,VA +51000,8632044.0,2020,Virginia,VA +53000,6897058.0,2012,Washington,WA +53000,6971406.0,2013,Washington,WA +53000,7061530.0,2014,Washington,WA +53000,7170351.0,2015,Washington,WA +53000,7288000.0,2016,Washington,WA +53000,7405743.0,2017,Washington,WA +53000,7535591.0,2018,Washington,WA +53000,7614893.0,2019,Washington,WA +53000,7718785.0,2020,Washington,WA +54000,1856872.0,2012,West Virginia,WV +54000,1854304.0,2013,West Virginia,WV +54000,1850326.0,2014,West Virginia,WV +54000,1844128.0,2015,West Virginia,WV +54000,1831102.0,2016,West Virginia,WV +54000,1815857.0,2017,West Virginia,WV +54000,1805832.0,2018,West Virginia,WV +54000,1792147.0,2019,West Virginia,WV +54000,1789798.0,2020,West Virginia,WV +55000,5719960.0,2012,Wisconsin,WI +55000,5742713.0,2013,Wisconsin,WI +55000,5757564.0,2014,Wisconsin,WI +55000,5771337.0,2015,Wisconsin,WI +55000,5778708.0,2016,Wisconsin,WI +55000,5795483.0,2017,Wisconsin,WI +55000,5813568.0,2018,Wisconsin,WI +55000,5822434.0,2019,Wisconsin,WI +55000,5892323.0,2020,Wisconsin,WI +56000,576305.0,2012,Wyoming,WY +56000,582658.0,2013,Wyoming,WY +56000,584153.0,2014,Wyoming,WY +56000,586107.0,2015,Wyoming,WY +56000,585501.0,2016,Wyoming,WY +56000,579315.0,2017,Wyoming,WY +56000,577737.0,2018,Wyoming,WY +56000,578759.0,2019,Wyoming,WY +56000,577267.0,2020,Wyoming,WY