From 4d04b19392507f49a545ba2087d1ac2177f669df Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:14:43 -0500 Subject: [PATCH 01/18] add popsafe county -> fips and state data files --- .../data/2019/fips_popsafe-fips_table.csv | 3293 ++++++++++++++++ .../data/2019/popsafe-fips_state_table.csv | 2711 ++++++++++++++ .../data/2020/fips_popsafe-fips_table.csv | 3294 +++++++++++++++++ .../data/2020/popsafe-fips_state_table.csv | 2712 ++++++++++++++ 4 files changed, 12010 insertions(+) create mode 100644 _delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv create mode 100644 _delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv create mode 100644 _delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv create mode 100644 _delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv diff --git a/_delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv b/_delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv new file mode 100644 index 000000000..9c1603ea9 --- /dev/null +++ b/_delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv @@ -0,0 +1,3293 @@ +fips,popsafe-fips +01000,01000 +01001,01001 +01003,01003 +01005,01005 +01007,01007 +01009,01009 +01011,01011 +01013,01013 +01015,01015 +01017,01017 +01019,01019 +01021,01021 +01023,01023 +01025,01025 +01027,01027 +01029,01029 +01031,01031 +01033,01033 +01035,01035 +01037,01037 +01039,01039 +01041,01041 +01043,01043 +01045,01045 +01047,01g02 +01049,01049 +01051,01051 +01053,01053 +01055,01055 +01057,01057 +01059,01059 +01061,01061 +01063,01g01 +01065,01g01 +01067,01067 +01069,01069 +01071,01071 +01073,01073 +01075,01075 +01077,01077 +01079,01079 +01081,01081 +01083,01083 +01085,01085 +01087,01087 +01089,01089 +01091,01091 +01093,01093 +01095,01095 +01097,01097 +01099,01099 +01101,01101 +01103,01103 +01105,01g02 +01107,01107 +01109,01109 +01111,01111 +01113,01113 +01115,01115 +01117,01117 +01119,01119 +01121,01121 +01123,01123 +01125,01125 +01127,01127 +01129,01129 +01131,01131 +01133,01133 +02000,02000 +02013,02013 +02016,02016 +02020,02020 +02050,02050 +02060,02060 +02068,02068 +02070,02070 +02090,02090 +02100,02100 +02105,02105 +02110,02110 +02122,02122 +02130,02130 +02150,02150 +02158,02158 +02164,02164 +02170,02170 +02180,02180 +02185,02185 +02188,02188 +02195,02195 +02198,02198 +02220,02220 +02230,02230 +02240,02240 +02261,02261 +02275,02275 +02282,02282 +02290,02290 +04000,04000 +04001,04001 +04003,04003 +04005,04005 +04007,04007 +04009,04g01 +04011,04g01 +04012,04012 +04013,04013 +04015,04015 +04017,04017 +04019,04019 +04021,04021 +04023,04023 +04025,04025 +04027,04027 +05000,05000 +05001,05001 +05003,05003 +05005,05005 +05007,05007 +05009,05g08 +05011,05g01 +05013,05g01 +05015,05015 +05017,05017 +05019,05019 +05021,05021 +05023,05023 +05025,05g01 +05027,05027 +05029,05029 +05031,05031 +05033,05033 +05035,05035 +05037,05037 +05039,05g02 +05041,05041 +05043,05043 +05045,05045 +05047,05047 +05049,05049 +05051,05051 +05053,05g02 +05055,05055 +05057,05g07 +05059,05059 +05061,05061 +05063,05063 +05065,05065 +05067,05g10 +05069,05069 +05071,05071 +05073,05g03 +05075,05075 +05077,05g04 +05079,05079 +05081,05081 +05083,05083 +05085,05085 +05087,05087 +05089,05g09 +05091,05g03 +05093,05093 +05095,05g05 +05097,05g06 +05099,05g07 +05101,05g08 +05103,05103 +05105,05105 +05107,05107 +05109,05g06 +05111,05111 +05113,05113 +05115,05115 +05117,05g05 +05119,05119 +05121,05121 +05123,05g04 +05125,05125 +05127,05127 +05129,05g09 +05131,05131 +05133,05133 +05135,05135 +05137,05137 +05139,05139 +05141,05141 +05143,05143 +05145,05145 +05147,05g10 +05149,05149 +06000,06000 +06001,06001 +06003,06g01 +06005,06005 +06007,06007 +06009,06009 +06011,06011 +06013,06013 +06015,06015 +06017,06017 +06019,06019 +06021,06021 +06023,06023 +06025,06025 +06027,06027 +06029,06029 +06031,06031 +06033,06033 +06035,06g02 +06037,06037 +06039,06039 +06041,06041 +06043,06043 +06045,06045 +06047,06047 +06049,06g02 +06051,06051 +06053,06053 +06055,06055 +06057,06g03 +06059,06059 +06061,06061 +06063,06063 +06065,06065 +06067,06067 +06069,06069 +06071,06071 +06073,06073 +06075,06075 +06077,06077 +06079,06079 +06081,06081 +06083,06083 +06085,06085 +06087,06087 +06089,06089 +06091,06g03 +06093,06093 +06095,06095 +06097,06097 +06099,06099 +06101,06101 +06103,06103 +06105,06105 +06107,06107 +06109,06g01 +06111,06111 +06113,06113 +06115,06115 +08000,08000 +08001,08001 +08003,08g04 +08005,08005 +08007,08g12 +08009,08g01 +08011,08g01 +08013,08013 +08014,08014 +08015,08g10 +08017,08g02 +08019,08g03 +08021,08g15 +08023,08g04 +08025,08g05 +08027,08g06 +08029,08029 +08031,08031 +08033,08g07 +08035,08035 +08037,08037 +08039,08g11 +08041,08041 +08043,08g06 +08045,08g14 +08047,08g03 +08049,08g09 +08051,08051 +08053,08g07 +08055,08g08 +08057,08g09 +08059,08059 +08061,08g01 +08063,08g02 +08065,08g10 +08067,08067 +08069,08069 +08071,08071 +08073,08g11 +08075,08g13 +08077,08077 +08079,08g12 +08081,08081 +08083,08083 +08085,08g07 +08087,08g16 +08089,08g05 +08091,08g07 +08093,08093 +08095,08g13 +08097,08097 +08099,08g01 +08101,08g08 +08103,08g14 +08105,08g15 +08107,08107 +08109,08g15 +08111,08g07 +08113,08g07 +08115,08g13 +08117,08117 +08119,08119 +08121,08g16 +08123,08123 +08125,08g02 +09000,09000 +09001,09001 +09003,09003 +09005,09005 +09007,09007 +09009,09009 +09011,09011 +09013,09013 +09015,09015 +10000,10000 +10001,10001 +10003,10003 +10005,10005 +11000,11000 +11001,11001 +12000,12000 +12001,12001 +12003,12003 +12005,12005 +12007,12007 +12009,12009 +12011,12011 +12013,12013 +12015,12015 +12017,12017 +12019,12019 +12021,12021 +12023,12023 +12027,12027 +12029,12029 +12031,12031 +12033,12033 +12035,12035 +12037,12g02 +12039,12039 +12041,12041 +12043,12043 +12045,12045 +12047,12047 +12049,12049 +12051,12051 +12053,12053 +12055,12055 +12057,12057 +12059,12059 +12061,12061 +12063,12063 +12065,12065 +12067,12g01 +12069,12069 +12071,12071 +12073,12073 +12075,12075 +12077,12g02 +12079,12079 +12081,12081 +12083,12083 +12085,12085 +12086,12086 +12087,12087 +12089,12089 +12091,12091 +12093,12093 +12095,12095 +12097,12097 +12099,12099 +12101,12101 +12103,12103 +12105,12105 +12107,12107 +12109,12109 +12111,12111 +12113,12113 +12115,12115 +12117,12117 +12119,12119 +12121,12g01 +12123,12123 +12125,12125 +12127,12127 +12129,12129 +12131,12131 +12133,12133 +13000,13000 +13001,13001 +13003,13g01 +13005,13005 +13007,13g02 +13009,13g24 +13011,13011 +13013,13013 +13015,13015 +13017,13g06 +13019,13019 +13021,13021 +13023,13g21 +13025,13025 +13027,13027 +13029,13029 +13031,13031 +13033,13g07 +13035,13035 +13037,13g03 +13039,13039 +13043,13043 +13045,13045 +13047,13047 +13049,13049 +13051,13051 +13053,13g14 +13055,13055 +13057,13057 +13059,13059 +13061,13g03 +13063,13063 +13065,13g04 +13067,13067 +13069,13g01 +13071,13071 +13073,13073 +13075,13075 +13077,13077 +13079,13079 +13081,13g20 +13083,13083 +13085,13085 +13087,13g13 +13089,13089 +13091,13091 +13093,13093 +13095,13095 +13097,13097 +13099,13g11 +13101,13g04 +13103,13103 +13105,13105 +13107,13g19 +13109,13109 +13111,13111 +13113,13113 +13115,13115 +13117,13117 +13119,13119 +13121,13121 +13123,13123 +13125,13g05 +13127,13127 +13129,13129 +13131,13131 +13133,13g16 +13135,13135 +13137,13137 +13139,13139 +13141,13g24 +13143,13143 +13145,13145 +13147,13147 +13149,13149 +13151,13151 +13153,13153 +13155,13g06 +13157,13157 +13159,13159 +13161,13161 +13163,13163 +13165,13g07 +13167,13g08 +13169,13169 +13171,13171 +13173,13173 +13175,13175 +13177,13g18 +13179,13179 +13181,13g09 +13183,13183 +13185,13185 +13187,13187 +13189,13g05 +13191,13191 +13193,13g17 +13195,13195 +13197,13g10 +13199,13199 +13201,13g11 +13205,13g02 +13207,13207 +13209,13g12 +13211,13211 +13213,13213 +13215,13215 +13217,13217 +13219,13219 +13221,13221 +13223,13223 +13225,13225 +13227,13227 +13229,13229 +13231,13231 +13233,13233 +13235,13g23 +13237,13237 +13239,13g03 +13241,13241 +13243,13g03 +13245,13245 +13247,13247 +13249,13g10 +13251,13251 +13253,13g13 +13255,13255 +13257,13257 +13259,13g14 +13261,13261 +13263,13g15 +13265,13g16 +13267,13267 +13269,13g17 +13271,13g22 +13273,13g18 +13275,13275 +13277,13277 +13279,13g12 +13281,13281 +13283,13g19 +13285,13285 +13287,13g20 +13289,13g21 +13291,13291 +13293,13g15 +13295,13295 +13297,13297 +13299,13299 +13301,13g05 +13303,13g08 +13305,13305 +13307,13g14 +13309,13g22 +13311,13311 +13313,13313 +13315,13g23 +13317,13g09 +13319,13g24 +13321,13321 +15000,15000 +15001,15001 +15003,15003 +15005,15005 +15007,15007 +15009,15009 +16000,16000 +16001,16001 +16003,16g01 +16005,16005 +16007,16g05 +16009,16g02 +16011,16011 +16013,16013 +16015,16g03 +16017,16017 +16019,16019 +16021,16021 +16023,16g06 +16025,16g04 +16027,16027 +16029,16g05 +16031,16031 +16033,16g06 +16035,16g07 +16037,16g08 +16039,16039 +16041,16g05 +16043,16043 +16045,16g03 +16047,16g04 +16049,16049 +16051,16g06 +16053,16g10 +16055,16055 +16057,16g02 +16059,16g08 +16061,16g09 +16063,16g10 +16065,16065 +16067,16067 +16069,16g09 +16071,16g11 +16073,16073 +16075,16075 +16077,16g11 +16079,16g07 +16081,16081 +16083,16083 +16085,16085 +16087,16g01 +17000,17000 +17001,17001 +17003,17g01 +17005,17005 +17007,17007 +17009,17g02 +17011,17011 +17013,17g03 +17015,17015 +17017,17017 +17019,17019 +17021,17021 +17023,17023 +17025,17025 +17027,17027 +17029,17029 +17031,17031 +17033,17033 +17035,17g08 +17037,17037 +17039,17039 +17041,17041 +17043,17043 +17045,17045 +17047,17g04 +17049,17049 +17051,17051 +17053,17053 +17055,17055 +17057,17057 +17059,17g05 +17061,17061 +17063,17063 +17065,17g06 +17067,17067 +17069,17g05 +17071,17g07 +17073,17073 +17075,17075 +17077,17077 +17079,17g08 +17081,17081 +17083,17g03 +17085,17085 +17087,17087 +17089,17089 +17091,17091 +17093,17093 +17095,17095 +17097,17097 +17099,17099 +17101,17101 +17103,17103 +17105,17105 +17107,17107 +17109,17109 +17111,17111 +17113,17113 +17115,17115 +17117,17117 +17119,17119 +17121,17121 +17123,17g10 +17125,17125 +17127,17g09 +17129,17129 +17131,17131 +17133,17133 +17135,17135 +17137,17g11 +17139,17139 +17141,17141 +17143,17g12 +17145,17145 +17147,17147 +17149,17149 +17151,17g09 +17153,17g01 +17155,17g10 +17157,17157 +17159,17159 +17161,17161 +17163,17163 +17165,17g05 +17167,17167 +17169,17g02 +17171,17g11 +17173,17173 +17175,17g12 +17177,17177 +17179,17179 +17181,17181 +17183,17183 +17185,17g04 +17187,17g07 +17189,17189 +17191,17191 +17193,17g06 +17195,17195 +17197,17197 +17199,17199 +17201,17201 +17203,17203 +18000,18000 +18001,18001 +18003,18003 +18005,18005 +18007,18g01 +18009,18009 +18011,18011 +18013,18013 +18015,18015 +18017,18017 +18019,18019 +18021,18021 +18023,18023 +18025,18025 +18027,18027 +18029,18029 +18031,18031 +18033,18033 +18035,18035 +18037,18037 +18039,18039 +18041,18g03 +18043,18043 +18045,18045 +18047,18047 +18049,18049 +18051,18051 +18053,18053 +18055,18055 +18057,18057 +18059,18059 +18061,18061 +18063,18063 +18065,18065 +18067,18067 +18069,18069 +18071,18071 +18073,18073 +18075,18075 +18077,18077 +18079,18079 +18081,18081 +18083,18083 +18085,18085 +18087,18087 +18089,18089 +18091,18091 +18093,18093 +18095,18095 +18097,18097 +18099,18099 +18101,18101 +18103,18103 +18105,18105 +18107,18107 +18109,18109 +18111,18111 +18113,18113 +18115,18g02 +18117,18117 +18119,18119 +18121,18121 +18123,18123 +18125,18125 +18127,18127 +18129,18129 +18131,18131 +18133,18133 +18135,18135 +18137,18137 +18139,18139 +18141,18141 +18143,18143 +18145,18145 +18147,18147 +18149,18149 +18151,18151 +18153,18153 +18155,18g02 +18157,18157 +18159,18159 +18161,18g03 +18163,18163 +18165,18165 +18167,18167 +18169,18169 +18171,18g01 +18173,18173 +18175,18175 +18177,18177 +18179,18179 +18181,18181 +18183,18183 +19000,19000 +19001,19g01 +19003,19g02 +19005,19005 +19007,19g14 +19009,19g03 +19011,19011 +19013,19013 +19015,19015 +19017,19017 +19019,19019 +19021,19021 +19023,19023 +19025,19g04 +19027,19027 +19029,19g03 +19031,19031 +19033,19g18 +19035,19g11 +19037,19g09 +19039,19g05 +19041,19041 +19043,19043 +19045,19045 +19047,19047 +19049,19049 +19051,19g06 +19053,19g05 +19055,19055 +19057,19057 +19059,19059 +19061,19061 +19063,19g07 +19065,19065 +19067,19067 +19069,19069 +19071,19g08 +19073,19g10 +19075,19075 +19077,19g01 +19079,19079 +19081,19081 +19083,19083 +19085,19085 +19087,19087 +19089,19g09 +19091,19g10 +19093,19g11 +19095,19095 +19097,19097 +19099,19099 +19101,19g17 +19103,19103 +19105,19105 +19107,19107 +19109,19109 +19111,19111 +19113,19113 +19115,19115 +19117,19g12 +19119,19119 +19121,19121 +19123,19123 +19125,19125 +19127,19127 +19129,19g08 +19131,19131 +19133,19g13 +19135,19g14 +19137,19137 +19139,19139 +19141,19g15 +19143,19g15 +19145,19145 +19147,19g07 +19149,19149 +19151,19g04 +19153,19153 +19155,19155 +19157,19157 +19159,19g16 +19161,19161 +19163,19163 +19165,19165 +19167,19167 +19169,19169 +19171,19171 +19173,19g02 +19175,19g16 +19177,19g17 +19179,19g06 +19181,19181 +19183,19183 +19185,19g12 +19187,19g10 +19189,19189 +19191,19191 +19193,19g13 +19195,19g18 +19197,19197 +20000,20000 +20001,20g01 +20003,20g01 +20005,20g06 +20007,20g24 +20009,20g22 +20011,20011 +20013,20g06 +20015,20015 +20017,20g02 +20019,20g27 +20021,20021 +20023,20g03 +20025,20g04 +20027,20g26 +20029,20g21 +20031,20g12 +20033,20g24 +20035,20035 +20037,20037 +20039,20g05 +20041,20041 +20043,20g06 +20045,20045 +20047,20g24 +20049,20g27 +20051,20g09 +20053,20g07 +20055,20g10 +20057,20g04 +20059,20059 +20061,20g02 +20063,20g08 +20065,20g09 +20067,20g18 +20069,20g10 +20071,20g11 +20073,20g12 +20075,20g11 +20077,20g13 +20079,20079 +20081,20g17 +20083,20g14 +20085,20085 +20087,20087 +20089,20g23 +20091,20091 +20093,20g11 +20095,20g13 +20097,20g24 +20099,20099 +20101,20g08 +20103,20103 +20105,20g07 +20107,20g15 +20109,20g08 +20111,20111 +20113,20113 +20115,20115 +20117,20g16 +20119,20g17 +20121,20g15 +20123,20g23 +20125,20g27 +20127,20g02 +20129,20g18 +20131,20131 +20133,20133 +20135,20g14 +20137,20g05 +20139,20139 +20141,20g23 +20143,20g21 +20145,20g14 +20147,20g19 +20149,20g16 +20151,20g24 +20153,20g20 +20155,20155 +20157,20g21 +20159,20g07 +20161,20g26 +20163,20g19 +20165,20g14 +20167,20g22 +20169,20169 +20171,20g08 +20173,20173 +20175,20g17 +20177,20g25 +20179,20g05 +20181,20g03 +20183,20g23 +20185,20g24 +20187,20g11 +20189,20g18 +20191,20191 +20193,20g20 +20195,20g09 +20197,20g25 +20199,20g03 +20201,20g26 +20203,20g11 +20205,20g27 +20207,20g12 +20209,20209 +21000,21000 +21001,21001 +21003,21003 +21005,21005 +21007,21g01 +21009,21009 +21011,21011 +21013,21013 +21015,21015 +21017,21g13 +21019,21019 +21021,21021 +21023,21g02 +21025,21025 +21027,21027 +21029,21029 +21031,21031 +21033,21g09 +21035,21035 +21037,21037 +21039,21g01 +21041,21g14 +21043,21g05 +21045,21045 +21047,21047 +21049,21049 +21051,21051 +21053,21g04 +21055,21g03 +21057,21g04 +21059,21g10 +21061,21061 +21063,21g05 +21065,21065 +21067,21067 +21069,21069 +21071,21071 +21073,21073 +21075,21g06 +21077,21g07 +21079,21079 +21081,21081 +21083,21083 +21085,21085 +21087,21g12 +21089,21089 +21091,21g10 +21093,21093 +21095,21095 +21097,21097 +21099,21099 +21101,21101 +21103,21103 +21105,21g06 +21107,21107 +21109,21109 +21111,21111 +21113,21113 +21115,21115 +21117,21117 +21119,21119 +21121,21121 +21123,21123 +21125,21125 +21127,21127 +21129,21g08 +21131,21131 +21133,21133 +21135,21135 +21137,21137 +21139,21g03 +21141,21141 +21143,21g09 +21145,21145 +21147,21147 +21149,21g10 +21151,21151 +21153,21153 +21155,21155 +21157,21157 +21159,21159 +21161,21161 +21163,21163 +21165,21g11 +21167,21167 +21169,21g12 +21171,21171 +21173,21173 +21175,21175 +21177,21177 +21179,21179 +21181,21g13 +21183,21183 +21185,21185 +21187,21g07 +21189,21g08 +21191,21191 +21193,21193 +21195,21195 +21197,21197 +21199,21199 +21201,21g02 +21203,21203 +21205,21205 +21207,21207 +21209,21209 +21211,21211 +21213,21213 +21215,21215 +21217,21217 +21219,21219 +21221,21221 +21223,21g14 +21225,21225 +21227,21227 +21229,21229 +21231,21231 +21233,21233 +21235,21235 +21237,21g11 +21239,21239 +22000,22000 +22001,22001 +22003,22003 +22005,22005 +22007,22007 +22009,22009 +22011,22011 +22013,22g04 +22015,22015 +22017,22017 +22019,22g02 +22021,22g01 +22023,22g02 +22025,22025 +22027,22027 +22029,22029 +22031,22031 +22033,22033 +22035,22g03 +22037,22037 +22039,22039 +22041,22g05 +22043,22043 +22045,22045 +22047,22047 +22049,22049 +22051,22051 +22053,22053 +22055,22055 +22057,22057 +22059,22059 +22061,22061 +22063,22063 +22065,22065 +22067,22067 +22069,22069 +22071,22071 +22073,22g01 +22075,22075 +22077,22077 +22079,22079 +22081,22g04 +22083,22083 +22085,22085 +22087,22087 +22089,22089 +22091,22091 +22093,22093 +22095,22095 +22097,22097 +22099,22099 +22101,22101 +22103,22103 +22105,22105 +22107,22g05 +22109,22109 +22111,22111 +22113,22113 +22115,22115 +22117,22117 +22119,22119 +22121,22121 +22123,22g03 +22125,22125 +22127,22127 +23000,23000 +23001,23001 +23003,23003 +23005,23005 +23007,23007 +23009,23009 +23011,23011 +23013,23013 +23015,23015 +23017,23017 +23019,23019 +23021,23021 +23023,23023 +23025,23025 +23027,23027 +23029,23029 +23031,23031 +24000,24000 +24001,24001 +24003,24003 +24005,24005 +24009,24009 +24011,24011 +24013,24013 +24015,24015 +24017,24017 +24019,24019 +24021,24021 +24023,24023 +24025,24025 +24027,24027 +24029,24029 +24031,24031 +24033,24033 +24035,24035 +24037,24037 +24039,24039 +24041,24041 +24043,24043 +24045,24045 +24047,24047 +24510,24510 +25000,25000 +25001,25001 +25003,25003 +25005,25005 +25007,25007 +25009,25009 +25011,25011 +25013,25013 +25015,25015 +25017,25017 +25019,25019 +25021,25021 +25023,25023 +25025,25025 +25027,25027 +26000,26000 +26001,26001 +26003,26g01 +26005,26005 +26007,26007 +26009,26009 +26011,26011 +26013,26g02 +26015,26015 +26017,26017 +26019,26019 +26021,26021 +26023,26023 +26025,26025 +26027,26027 +26029,26029 +26031,26031 +26033,26033 +26035,26035 +26037,26037 +26039,26039 +26041,26041 +26043,26043 +26045,26045 +26047,26047 +26049,26049 +26051,26051 +26053,26g05 +26055,26055 +26057,26057 +26059,26059 +26061,26g02 +26063,26063 +26065,26065 +26067,26067 +26069,26069 +26071,26071 +26073,26073 +26075,26075 +26077,26077 +26079,26079 +26081,26081 +26083,26g02 +26085,26085 +26087,26087 +26089,26089 +26091,26091 +26093,26093 +26095,26g03 +26097,26g03 +26099,26099 +26101,26101 +26103,26103 +26105,26105 +26107,26107 +26109,26109 +26111,26111 +26113,26113 +26115,26115 +26117,26117 +26119,26g04 +26121,26121 +26123,26123 +26125,26125 +26127,26127 +26129,26129 +26131,26g05 +26133,26133 +26135,26g04 +26137,26137 +26139,26139 +26141,26141 +26143,26143 +26145,26145 +26147,26147 +26149,26149 +26151,26151 +26153,26g01 +26155,26155 +26157,26157 +26159,26159 +26161,26161 +26163,26163 +26165,26165 +27000,27000 +27001,27001 +27003,27003 +27005,27005 +27007,27g06 +27009,27009 +27011,27g03 +27013,27013 +27015,27015 +27017,27017 +27019,27019 +27021,27021 +27023,27g10 +27025,27025 +27027,27g11 +27029,27g01 +27031,27g02 +27033,27033 +27035,27035 +27037,27037 +27039,27039 +27041,27041 +27043,27043 +27045,27045 +27047,27047 +27049,27049 +27051,27g03 +27053,27053 +27055,27055 +27057,27057 +27059,27059 +27061,27061 +27063,27063 +27065,27065 +27067,27067 +27069,27g04 +27071,27071 +27073,27g05 +27075,27g02 +27077,27g06 +27079,27079 +27081,27g07 +27083,27083 +27085,27085 +27087,27g01 +27089,27g04 +27091,27091 +27093,27093 +27095,27095 +27097,27097 +27099,27099 +27101,27g09 +27103,27103 +27105,27g09 +27107,27g11 +27109,27109 +27111,27111 +27113,27g08 +27115,27115 +27117,27g07 +27119,27119 +27121,27121 +27123,27123 +27125,27g08 +27127,27127 +27129,27129 +27131,27131 +27133,27g09 +27135,27135 +27137,27137 +27139,27139 +27141,27141 +27143,27143 +27145,27145 +27147,27147 +27149,27g03 +27151,27g10 +27153,27153 +27155,27g03 +27157,27157 +27159,27159 +27161,27161 +27163,27163 +27165,27165 +27167,27g11 +27169,27169 +27171,27171 +27173,27g05 +28000,28000 +28001,28g08 +28003,28003 +28005,28g04 +28007,28007 +28009,28g01 +28011,28011 +28013,28013 +28015,28015 +28017,28017 +28019,28g02 +28021,28g03 +28023,28023 +28025,28025 +28027,28g07 +28029,28029 +28031,28031 +28033,28033 +28035,28035 +28037,28g04 +28039,28039 +28041,28041 +28043,28043 +28045,28045 +28047,28047 +28049,28049 +28051,28051 +28053,28g05 +28055,28g05 +28057,28057 +28059,28059 +28061,28061 +28063,28g03 +28065,28065 +28067,28067 +28069,28g06 +28071,28071 +28073,28073 +28075,28g06 +28077,28077 +28079,28079 +28081,28081 +28083,28083 +28085,28085 +28087,28087 +28089,28089 +28091,28091 +28093,28093 +28095,28095 +28097,28097 +28099,28099 +28101,28101 +28103,28103 +28105,28105 +28107,28107 +28109,28109 +28111,28111 +28113,28113 +28115,28115 +28117,28117 +28119,28g07 +28121,28121 +28123,28123 +28125,28g05 +28127,28127 +28129,28129 +28131,28131 +28133,28133 +28135,28135 +28137,28137 +28139,28g01 +28141,28141 +28143,28143 +28145,28145 +28147,28147 +28149,28149 +28151,28151 +28153,28153 +28155,28g02 +28157,28g08 +28159,28159 +28161,28161 +28163,28g05 +29000,29000 +29001,29001 +29003,29003 +29005,29g01 +29007,29007 +29009,29009 +29011,29011 +29013,29013 +29015,29015 +29017,29017 +29019,29019 +29021,29021 +29023,29023 +29025,29g02 +29027,29027 +29029,29029 +29031,29031 +29033,29g03 +29035,29g04 +29037,29037 +29039,29g07 +29041,29g05 +29043,29043 +29045,29g06 +29047,29047 +29049,29049 +29051,29051 +29053,29053 +29055,29055 +29057,29g07 +29059,29059 +29061,29g08 +29063,29g09 +29065,29g19 +29067,29g15 +29069,29069 +29071,29071 +29073,29073 +29075,29g09 +29077,29077 +29079,29g13 +29081,29g08 +29083,29g18 +29085,29g10 +29087,29g01 +29089,29089 +29091,29091 +29093,29g17 +29095,29095 +29097,29097 +29099,29099 +29101,29101 +29103,29g11 +29105,29105 +29107,29107 +29109,29109 +29111,29g06 +29113,29113 +29115,29g05 +29117,29g03 +29119,29119 +29121,29121 +29123,29123 +29125,29g12 +29127,29127 +29129,29g13 +29131,29131 +29133,29133 +29135,29135 +29137,29g14 +29139,29139 +29141,29141 +29143,29143 +29145,29145 +29147,29g01 +29149,29149 +29151,29g12 +29153,29g15 +29155,29155 +29157,29157 +29159,29159 +29161,29161 +29163,29163 +29165,29165 +29167,29g10 +29169,29169 +29171,29g16 +29173,29173 +29175,29175 +29177,29g02 +29179,29g17 +29181,29g04 +29183,29183 +29185,29g18 +29186,29186 +29187,29187 +29189,29189 +29195,29195 +29197,29g11 +29199,29g11 +29201,29201 +29203,29g19 +29205,29g14 +29207,29207 +29209,29209 +29211,29g16 +29213,29213 +29215,29215 +29217,29217 +29219,29219 +29221,29221 +29223,29223 +29225,29225 +29227,29g09 +29229,29229 +29510,29510 +30000,30000 +30001,30g04 +30003,30003 +30005,30g01 +30007,30g02 +30009,30009 +30011,30g09 +30013,30g07 +30015,30g03 +30017,30g14 +30019,30g17 +30021,30g09 +30023,30g04 +30025,30g09 +30027,30g13 +30029,30029 +30031,30g10 +30033,30g16 +30035,30035 +30037,30g05 +30039,30g06 +30041,30g03 +30043,30g02 +30045,30g07 +30047,30047 +30049,30g15 +30051,30g08 +30053,30053 +30055,30g09 +30057,30g10 +30059,30g07 +30061,30g11 +30063,30063 +30065,30g12 +30067,30067 +30069,30g13 +30071,30g01 +30073,30g08 +30075,30g14 +30077,30g06 +30079,30g09 +30081,30081 +30083,30083 +30085,30g17 +30087,30g16 +30089,30g11 +30091,30g17 +30093,30g04 +30095,30g05 +30097,30g05 +30099,30g15 +30101,30g08 +30103,30g16 +30105,30g17 +30107,30g05 +30109,30g09 +30111,30g12 +31000,31000 +31001,31g24 +31003,31g01 +31005,31g06 +31007,31g21 +31009,31g02 +31011,31g01 +31013,31g20 +31015,31g02 +31017,31g02 +31019,31019 +31021,31g03 +31023,31g04 +31025,31025 +31027,31g05 +31029,31g06 +31031,31g07 +31033,31g15 +31035,31g08 +31037,31g04 +31039,31g09 +31041,31041 +31043,31043 +31045,31g20 +31047,31047 +31049,31g15 +31051,31g05 +31053,31053 +31055,31055 +31057,31g06 +31059,31g10 +31061,31g24 +31063,31g11 +31065,31g18 +31067,31067 +31069,31g15 +31071,31g02 +31073,31g18 +31075,31g06 +31077,31g23 +31079,31079 +31081,31g16 +31083,31g18 +31085,31g06 +31087,31g06 +31089,31g02 +31091,31g07 +31093,31g23 +31095,31g12 +31097,31g13 +31099,31g24 +31101,31g06 +31103,31g02 +31105,31g21 +31107,31g14 +31109,31109 +31111,31g07 +31113,31g07 +31115,31g02 +31117,31g07 +31119,31119 +31121,31g16 +31123,31g15 +31125,31g16 +31127,31g17 +31129,31g08 +31131,31g13 +31133,31g13 +31135,31g06 +31137,31g18 +31139,31g14 +31141,31141 +31143,31g19 +31145,31g11 +31147,31g17 +31149,31g02 +31151,31g12 +31153,31153 +31155,31155 +31157,31g21 +31159,31159 +31161,31g20 +31163,31g23 +31165,31g21 +31167,31g22 +31169,31g10 +31171,31g07 +31173,31g09 +31175,31g23 +31177,31g03 +31179,31g22 +31181,31g24 +31183,31g23 +31185,31g19 +32000,32000 +32001,32g03 +32003,32g02 +32005,32005 +32007,32g05 +32009,32g01 +32011,32g03 +32013,32013 +32015,32g03 +32017,32g02 +32019,32g01 +32021,32g01 +32023,32023 +32027,32g03 +32029,32g04 +32031,32031 +32033,32g05 +32510,32g04 +33000,33000 +33001,33001 +33003,33003 +33005,33005 +33007,33007 +33009,33009 +33011,33011 +33013,33013 +33015,33015 +33017,33017 +33019,33019 +34000,34000 +34001,34001 +34003,34003 +34005,34005 +34007,34007 +34009,34009 +34011,34011 +34013,34013 +34015,34015 +34017,34017 +34019,34019 +34021,34021 +34023,34023 +34025,34025 +34027,34027 +34029,34029 +34031,34031 +34033,34033 +34035,34035 +34037,34037 +34039,34039 +34041,34041 +35000,35000 +35001,35001 +35003,35g01 +35005,35005 +35006,35g01 +35007,35g02 +35009,35g05 +35011,35g04 +35013,35013 +35015,35015 +35017,35g03 +35019,35g04 +35021,35g02 +35023,35g03 +35025,35025 +35027,35027 +35028,35028 +35029,35029 +35031,35031 +35033,35g04 +35035,35035 +35037,35g05 +35039,35039 +35041,35041 +35043,35043 +35045,35045 +35047,35g04 +35049,35049 +35051,35051 +35053,35053 +35055,35055 +35057,35057 +35059,35g02 +35061,35061 +36000,36000 +36001,36001 +36003,36003 +36005,36005 +36007,36007 +36009,36009 +36011,36011 +36013,36013 +36015,36015 +36017,36017 +36019,36019 +36021,36021 +36023,36023 +36025,36025 +36027,36027 +36029,36029 +36031,36031 +36033,36033 +36035,36035 +36037,36037 +36039,36039 +36041,36g01 +36043,36g01 +36045,36045 +36047,36047 +36049,36049 +36051,36051 +36053,36053 +36055,36055 +36057,36057 +36059,36059 +36061,36061 +36063,36063 +36065,36065 +36067,36067 +36069,36069 +36071,36071 +36073,36073 +36075,36075 +36077,36077 +36079,36079 +36081,36081 +36083,36083 +36085,36085 +36087,36087 +36089,36089 +36091,36091 +36093,36093 +36095,36095 +36097,36097 +36099,36099 +36101,36101 +36103,36103 +36105,36105 +36107,36107 +36109,36109 +36111,36111 +36113,36113 +36115,36115 +36117,36117 +36119,36119 +36121,36121 +36123,36123 +37000,37000 +37001,37001 +37003,37003 +37005,37005 +37007,37007 +37009,37009 +37011,37011 +37013,37013 +37015,37015 +37017,37017 +37019,37019 +37021,37021 +37023,37023 +37025,37025 +37027,37027 +37029,37029 +37031,37031 +37033,37033 +37035,37035 +37037,37037 +37039,37039 +37041,37041 +37043,37g01 +37045,37045 +37047,37047 +37049,37049 +37051,37051 +37053,37053 +37055,37055 +37057,37057 +37059,37059 +37061,37061 +37063,37063 +37065,37065 +37067,37067 +37069,37069 +37071,37071 +37073,37073 +37075,37g01 +37077,37077 +37079,37079 +37081,37081 +37083,37083 +37085,37085 +37087,37087 +37089,37089 +37091,37091 +37093,37093 +37095,37g02 +37097,37097 +37099,37099 +37101,37101 +37103,37103 +37105,37105 +37107,37107 +37109,37109 +37111,37111 +37113,37113 +37115,37115 +37117,37117 +37119,37119 +37121,37121 +37123,37123 +37125,37125 +37127,37127 +37129,37129 +37131,37131 +37133,37133 +37135,37135 +37137,37137 +37139,37139 +37141,37141 +37143,37143 +37145,37145 +37147,37147 +37149,37149 +37151,37151 +37153,37153 +37155,37155 +37157,37157 +37159,37159 +37161,37161 +37163,37163 +37165,37165 +37167,37167 +37169,37169 +37171,37171 +37173,37173 +37175,37175 +37177,37g02 +37179,37179 +37181,37181 +37183,37183 +37185,37185 +37187,37g02 +37189,37189 +37191,37191 +37193,37193 +37195,37195 +37197,37197 +37199,37199 +38000,38000 +38001,38g07 +38003,38g05 +38005,38g01 +38007,38g07 +38009,38g02 +38011,38g07 +38013,38g03 +38015,38g14 +38017,38g17 +38019,38g04 +38021,38g05 +38023,38g06 +38025,38g07 +38027,38g09 +38029,38g14 +38031,38g09 +38033,38g07 +38035,38g08 +38037,38g15 +38039,38g08 +38041,38g07 +38043,38g09 +38045,38g05 +38047,38g09 +38049,38g02 +38051,38g09 +38053,38053 +38055,38g10 +38057,38g10 +38059,38g15 +38061,38g03 +38063,38g08 +38065,38g10 +38067,38g11 +38069,38g16 +38071,38g04 +38073,38g12 +38075,38g13 +38077,38g12 +38079,38g16 +38081,38g12 +38083,38g14 +38085,38g15 +38087,38g07 +38089,38g07 +38091,38g08 +38093,38g09 +38095,38g16 +38097,38g17 +38099,38g11 +38101,38g13 +38103,38g01 +38105,38g06 +39000,39000 +39001,39001 +39003,39003 +39005,39005 +39007,39007 +39009,39009 +39011,39011 +39013,39013 +39015,39015 +39017,39017 +39019,39019 +39021,39021 +39023,39023 +39025,39025 +39027,39027 +39029,39029 +39031,39031 +39033,39033 +39035,39035 +39037,39037 +39039,39039 +39041,39041 +39043,39043 +39045,39045 +39047,39047 +39049,39049 +39051,39051 +39053,39053 +39055,39055 +39057,39057 +39059,39059 +39061,39061 +39063,39063 +39065,39065 +39067,39067 +39069,39069 +39071,39071 +39073,39073 +39075,39075 +39077,39077 +39079,39079 +39081,39081 +39083,39083 +39085,39085 +39087,39087 +39089,39089 +39091,39091 +39093,39093 +39095,39095 +39097,39097 +39099,39099 +39101,39101 +39103,39103 +39105,39105 +39107,39107 +39109,39109 +39111,39111 +39113,39113 +39115,39115 +39117,39117 +39119,39119 +39121,39121 +39123,39123 +39125,39125 +39127,39127 +39129,39129 +39131,39131 +39133,39133 +39135,39135 +39137,39137 +39139,39139 +39141,39141 +39143,39143 +39145,39145 +39147,39147 +39149,39149 +39151,39151 +39153,39153 +39155,39155 +39157,39157 +39159,39159 +39161,39161 +39163,39163 +39165,39165 +39167,39167 +39169,39169 +39171,39171 +39173,39173 +39175,39175 +40000,40000 +40001,40001 +40003,40g13 +40005,40g04 +40007,40g01 +40009,40g11 +40011,40g02 +40013,40013 +40015,40015 +40017,40017 +40019,40g10 +40021,40021 +40023,40023 +40025,40g03 +40027,40027 +40029,40g04 +40031,40g12 +40033,40g12 +40035,40035 +40037,40037 +40039,40g05 +40041,40041 +40043,40g05 +40045,40g01 +40047,40g06 +40049,40049 +40051,40051 +40053,40g06 +40055,40g07 +40057,40g07 +40059,40g01 +40061,40061 +40063,40063 +40065,40g07 +40067,40g08 +40069,40069 +40071,40071 +40073,40g02 +40075,40g09 +40077,40077 +40079,40079 +40081,40081 +40083,40083 +40085,40g10 +40087,40087 +40089,40089 +40091,40091 +40093,40g13 +40095,40095 +40097,40097 +40099,40099 +40101,40101 +40103,40103 +40105,40105 +40107,40107 +40109,40109 +40111,40111 +40113,40113 +40115,40115 +40117,40117 +40119,40119 +40121,40121 +40123,40123 +40125,40125 +40127,40127 +40129,40g11 +40131,40131 +40133,40133 +40135,40135 +40137,40g08 +40139,40g03 +40141,40g12 +40143,40143 +40145,40145 +40147,40147 +40149,40g09 +40151,40g13 +40153,40153 +41000,41000 +41001,41001 +41003,41003 +41005,41005 +41007,41007 +41009,41009 +41011,41011 +41013,41013 +41015,41015 +41017,41017 +41019,41019 +41021,41g01 +41023,41g02 +41025,41g03 +41027,41027 +41029,41029 +41031,41031 +41033,41033 +41035,41g04 +41037,41g04 +41039,41039 +41041,41041 +41043,41043 +41045,41g03 +41047,41047 +41049,41g02 +41051,41051 +41053,41053 +41055,41g01 +41057,41057 +41059,41059 +41061,41g05 +41063,41g05 +41065,41g01 +41067,41067 +41069,41g02 +41071,41071 +42000,42000 +42001,42001 +42003,42003 +42005,42005 +42007,42007 +42009,42009 +42011,42011 +42013,42013 +42015,42g03 +42017,42017 +42019,42019 +42021,42021 +42023,42g01 +42025,42025 +42027,42027 +42029,42029 +42031,42031 +42033,42033 +42035,42035 +42037,42037 +42039,42039 +42041,42041 +42043,42043 +42045,42045 +42047,42047 +42049,42049 +42051,42051 +42053,42g02 +42055,42055 +42057,42057 +42059,42059 +42061,42061 +42063,42063 +42065,42065 +42067,42067 +42069,42069 +42071,42071 +42073,42073 +42075,42075 +42077,42077 +42079,42079 +42081,42081 +42083,42083 +42085,42085 +42087,42087 +42089,42089 +42091,42091 +42093,42093 +42095,42095 +42097,42097 +42099,42099 +42101,42101 +42103,42103 +42105,42g01 +42107,42107 +42109,42109 +42111,42111 +42113,42g03 +42115,42115 +42117,42117 +42119,42119 +42121,42121 +42123,42g02 +42125,42125 +42127,42127 +42129,42129 +42131,42131 +42133,42133 +44000,44000 +44001,44001 +44003,44003 +44005,44005 +44007,44007 +44009,44009 +45000,45000 +45001,45001 +45003,45003 +45005,45g01 +45007,45007 +45009,45009 +45011,45g01 +45013,45013 +45015,45015 +45017,45017 +45019,45019 +45021,45021 +45023,45023 +45025,45025 +45027,45027 +45029,45029 +45031,45031 +45033,45033 +45035,45035 +45037,45037 +45039,45039 +45041,45041 +45043,45043 +45045,45045 +45047,45g02 +45049,45049 +45051,45051 +45053,45053 +45055,45055 +45057,45057 +45059,45059 +45061,45061 +45063,45063 +45065,45g02 +45067,45067 +45069,45069 +45071,45071 +45073,45073 +45075,45075 +45077,45077 +45079,45079 +45081,45081 +45083,45083 +45085,45085 +45087,45087 +45089,45089 +45091,45091 +46000,46000 +46003,46g18 +46005,46g19 +46007,46g01 +46009,46g02 +46011,46g07 +46013,46g15 +46015,46g03 +46017,46g03 +46019,46g12 +46021,46g08 +46023,46g04 +46025,46g10 +46027,46027 +46029,46g10 +46031,46g05 +46033,46g06 +46035,46g18 +46037,46g10 +46039,46g07 +46041,46g05 +46043,46g04 +46045,46g08 +46047,46g06 +46049,46g08 +46051,46g09 +46053,46g03 +46055,46g01 +46057,46g10 +46059,46g14 +46061,46g11 +46063,46g12 +46065,46g14 +46067,46g02 +46069,46g14 +46071,46g01 +46073,46g18 +46075,46g14 +46077,46g13 +46079,46g13 +46081,46081 +46083,46083 +46085,46g14 +46087,46g11 +46089,46g08 +46091,46g15 +46093,46g17 +46095,46g01 +46097,46g11 +46099,46g16 +46101,46g16 +46102,46102 +46103,46103 +46105,46g17 +46107,46g08 +46109,46g09 +46111,46g18 +46115,46g19 +46117,46g14 +46119,46g08 +46121,46g20 +46123,46g20 +46125,46g21 +46127,46127 +46129,46g08 +46135,46g21 +46137,46g05 +47000,47000 +47001,47001 +47003,47g05 +47005,47005 +47007,47007 +47009,47009 +47011,47011 +47013,47013 +47015,47015 +47017,47017 +47019,47019 +47021,47021 +47023,47023 +47025,47025 +47027,47g01 +47029,47029 +47031,47031 +47033,47033 +47035,47035 +47037,47037 +47039,47g06 +47041,47041 +47043,47043 +47045,47g04 +47047,47047 +47049,47g07 +47051,47051 +47053,47053 +47055,47055 +47057,47057 +47059,47059 +47061,47061 +47063,47063 +47065,47065 +47067,47g02 +47069,47069 +47071,47071 +47073,47g02 +47075,47075 +47077,47077 +47079,47079 +47081,47081 +47083,47g03 +47085,47085 +47087,47g01 +47089,47089 +47091,47091 +47093,47093 +47095,47g04 +47097,47097 +47099,47099 +47101,47101 +47103,47103 +47105,47105 +47107,47107 +47109,47109 +47111,47g08 +47113,47113 +47115,47115 +47117,47117 +47119,47119 +47121,47121 +47123,47123 +47125,47125 +47127,47g05 +47129,47129 +47131,47131 +47133,47133 +47135,47g06 +47137,47g07 +47139,47139 +47141,47141 +47143,47143 +47145,47145 +47147,47147 +47149,47149 +47151,47151 +47153,47153 +47155,47155 +47157,47157 +47159,47159 +47161,47g03 +47163,47163 +47165,47165 +47167,47167 +47169,47g08 +47171,47171 +47173,47173 +47175,47g09 +47177,47177 +47179,47179 +47181,47181 +47183,47183 +47185,47g09 +47187,47187 +47189,47189 +48000,48000 +48001,48001 +48003,48003 +48005,48005 +48007,48g39 +48009,48g01 +48011,48g02 +48013,48013 +48015,48015 +48017,48g03 +48019,48019 +48021,48021 +48023,48g04 +48025,48g21 +48027,48027 +48029,48029 +48031,48031 +48033,48g20 +48035,48035 +48037,48037 +48039,48039 +48041,48041 +48043,48g05 +48045,48g06 +48047,48g07 +48049,48g10 +48051,48051 +48053,48053 +48055,48055 +48057,48057 +48059,48g43 +48061,48061 +48063,48063 +48065,48g02 +48067,48067 +48069,48g08 +48071,48071 +48073,48073 +48075,48g22 +48077,48077 +48079,48g03 +48081,48g09 +48083,48g10 +48085,48085 +48087,48g22 +48089,48089 +48091,48091 +48093,48093 +48095,48g11 +48097,48097 +48099,48g23 +48101,48g22 +48103,48g12 +48105,48g13 +48107,48g06 +48109,48g14 +48111,48g15 +48113,48113 +48115,48g35 +48117,48g38 +48119,48g16 +48121,48121 +48123,48123 +48125,48g17 +48127,48127 +48129,48g40 +48131,48131 +48133,48g45 +48135,48g12 +48137,48g18 +48139,48139 +48141,48g25 +48143,48143 +48145,48145 +48147,48147 +48149,48149 +48151,48g19 +48153,48g06 +48155,48g22 +48157,48157 +48159,48159 +48161,48161 +48163,48g30 +48165,48g48 +48167,48167 +48169,48g17 +48171,48171 +48173,48g20 +48175,48g21 +48177,48177 +48179,48g40 +48181,48181 +48183,48183 +48185,48185 +48187,48187 +48189,48189 +48191,48g22 +48193,48g23 +48195,48g24 +48197,48g22 +48199,48199 +48201,48201 +48203,48203 +48205,48g15 +48207,48g04 +48209,48209 +48211,48g40 +48213,48213 +48215,48215 +48217,48217 +48219,48219 +48221,48g44 +48223,48g16 +48225,48225 +48227,48g20 +48229,48g25 +48231,48231 +48233,48g02 +48235,48g13 +48237,48g26 +48239,48239 +48241,48241 +48243,48g14 +48245,48245 +48247,48g07 +48249,48249 +48251,48251 +48253,48g19 +48255,48255 +48257,48257 +48259,48259 +48261,48g27 +48263,48g17 +48265,48g28 +48267,48g28 +48269,48g22 +48271,48g29 +48273,48273 +48275,48g04 +48277,48277 +48279,48g08 +48281,48281 +48283,48g30 +48285,48285 +48287,48287 +48289,48289 +48291,48291 +48293,48293 +48295,48g31 +48297,48g34 +48299,48299 +48301,48g32 +48303,48g33 +48305,48g33 +48307,48g11 +48309,48309 +48311,48g34 +48313,48313 +48315,48315 +48317,48g35 +48319,48g28 +48321,48321 +48323,48g29 +48325,48325 +48327,48g11 +48329,48329 +48331,48331 +48333,48g36 +48335,48g37 +48337,48337 +48339,48339 +48341,48g24 +48343,48343 +48345,48g06 +48347,48347 +48349,48349 +48351,48351 +48353,48g09 +48355,48355 +48357,48g31 +48359,48g38 +48361,48361 +48363,48g26 +48365,48365 +48367,48367 +48369,48g38 +48371,48g47 +48373,48373 +48375,48375 +48377,48g05 +48379,48379 +48381,48g46 +48383,48g13 +48385,48g18 +48387,48387 +48389,48g14 +48391,48g39 +48393,48g40 +48395,48395 +48397,48397 +48399,48399 +48401,48401 +48403,48g41 +48405,48g41 +48407,48407 +48409,48409 +48411,48g36 +48413,48g42 +48415,48g17 +48417,48g43 +48419,48419 +48421,48g24 +48423,48423 +48425,48g44 +48427,48427 +48429,48g45 +48431,48g37 +48433,48g19 +48435,48g42 +48437,48g46 +48439,48439 +48441,48441 +48443,48g47 +48445,48445 +48447,48g04 +48449,48449 +48451,48g42 +48453,48453 +48455,48455 +48457,48457 +48459,48459 +48461,48g13 +48463,48g18 +48465,48465 +48467,48467 +48469,48469 +48471,48471 +48473,48473 +48475,48g32 +48477,48477 +48479,48479 +48481,48481 +48483,48g40 +48485,48g01 +48487,48487 +48489,48g27 +48491,48491 +48493,48493 +48495,48g32 +48497,48497 +48499,48499 +48501,48g48 +48503,48503 +48505,48505 +48507,48507 +49000,49000 +49001,49g01 +49003,49003 +49005,49g05 +49007,49007 +49009,49g02 +49011,49011 +49013,49013 +49015,49g03 +49017,49g04 +49019,49g03 +49021,49g01 +49023,49023 +49025,49g04 +49027,49027 +49029,49029 +49031,49g04 +49033,49g05 +49035,49035 +49037,49037 +49039,49039 +49041,49g04 +49043,49043 +49045,49045 +49047,49g02 +49049,49049 +49051,49051 +49053,49053 +49055,49g04 +49057,49057 +50000,50000 +50001,50001 +50003,50003 +50005,50g01 +50007,50007 +50009,50g01 +50011,50g02 +50013,50g02 +50015,50015 +50017,50017 +50019,50019 +50021,50021 +50023,50023 +50025,50025 +50027,50027 +51000,51000 +51001,51001 +51003,51003 +51005,51005 +51007,51007 +51009,51009 +51011,51011 +51013,51013 +51015,51015 +51017,51g01 +51019,51019 +51021,51g02 +51023,51023 +51025,51025 +51027,51027 +51029,51g05 +51031,51031 +51033,51033 +51035,51035 +51036,51g03 +51037,51037 +51041,51041 +51043,51043 +51045,51g04 +51047,51047 +51049,51g05 +51051,51051 +51053,51053 +51057,51057 +51059,51059 +51061,51061 +51063,51063 +51065,51065 +51067,51067 +51069,51069 +51071,51071 +51073,51g07 +51075,51075 +51077,51077 +51079,51079 +51081,51081 +51083,51083 +51085,51085 +51087,51087 +51089,51089 +51091,51g01 +51093,51093 +51095,51g10 +51097,51g06 +51099,51099 +51101,51g06 +51103,51103 +51105,51105 +51107,51107 +51109,51109 +51111,51111 +51113,51113 +51115,51g07 +51117,51117 +51119,51119 +51121,51121 +51125,51125 +51127,51g03 +51131,51131 +51133,51133 +51135,51135 +51137,51137 +51139,51139 +51141,51141 +51143,51143 +51145,51145 +51147,51147 +51149,51149 +51153,51153 +51155,51155 +51157,51g08 +51159,51g09 +51161,51g04 +51163,51g01 +51165,51165 +51167,51167 +51169,51169 +51171,51171 +51173,51173 +51175,51175 +51177,51177 +51179,51179 +51181,51g10 +51183,51183 +51185,51185 +51187,51g08 +51191,51191 +51193,51g09 +51195,51195 +51197,51g02 +51199,51199 +51510,51510 +51520,51520 +51530,51530 +51540,51540 +51550,51550 +51570,51570 +51580,51580 +51590,51590 +51595,51595 +51600,51600 +51610,51610 +51620,51620 +51630,51630 +51640,51640 +51650,51650 +51660,51660 +51670,51670 +51678,51678 +51680,51680 +51683,51683 +51685,51685 +51690,51690 +51700,51700 +51710,51710 +51720,51720 +51730,51730 +51735,51735 +51740,51740 +51750,51750 +51760,51760 +51770,51770 +51775,51775 +51790,51790 +51800,51800 +51810,51810 +51820,51820 +51830,51830 +51840,51840 +53000,53000 +53001,53001 +53003,53g01 +53005,53005 +53007,53007 +53009,53009 +53011,53011 +53013,53g01 +53015,53015 +53017,53017 +53019,53g02 +53021,53021 +53023,53g01 +53025,53025 +53027,53027 +53029,53029 +53031,53031 +53033,53033 +53035,53035 +53037,53037 +53039,53039 +53041,53041 +53043,53043 +53045,53045 +53047,53047 +53049,53g03 +53051,53051 +53053,53053 +53055,53055 +53057,53057 +53059,53059 +53061,53061 +53063,53063 +53065,53g02 +53067,53067 +53069,53g03 +53071,53071 +53073,53073 +53075,53075 +53077,53077 +54000,54000 +54001,54001 +54003,54003 +54005,54005 +54007,54g04 +54009,54009 +54011,54011 +54013,54g01 +54015,54g02 +54017,54g03 +54019,54019 +54021,54g04 +54023,54g07 +54025,54025 +54027,54027 +54029,54029 +54031,54031 +54033,54033 +54035,54035 +54037,54037 +54039,54039 +54041,54041 +54043,54043 +54045,54045 +54047,54047 +54049,54049 +54051,54051 +54053,54053 +54055,54055 +54057,54057 +54059,54059 +54061,54061 +54063,54063 +54065,54065 +54067,54g02 +54069,54069 +54071,54g07 +54073,54g05 +54075,54g06 +54077,54077 +54079,54079 +54081,54081 +54083,54083 +54085,54g05 +54087,54g01 +54089,54089 +54091,54091 +54093,54g07 +54095,54g03 +54097,54097 +54099,54099 +54101,54g06 +54103,54103 +54105,54g08 +54107,54g08 +54109,54109 +55000,55000 +55001,55001 +55003,55g02 +55005,55005 +55007,55007 +55009,55009 +55011,55g04 +55013,55013 +55015,55015 +55017,55017 +55019,55019 +55021,55021 +55023,55023 +55025,55025 +55027,55027 +55029,55029 +55031,55031 +55033,55033 +55035,55035 +55037,55g01 +55039,55039 +55041,55g01 +55043,55043 +55045,55045 +55047,55047 +55049,55049 +55051,55g02 +55053,55053 +55055,55055 +55057,55057 +55059,55059 +55061,55061 +55063,55063 +55065,55065 +55067,55067 +55069,55069 +55071,55071 +55073,55073 +55075,55075 +55077,55077 +55078,55g03 +55079,55079 +55081,55081 +55083,55083 +55085,55085 +55087,55087 +55089,55089 +55091,55g04 +55093,55093 +55095,55095 +55097,55097 +55099,55099 +55101,55101 +55103,55103 +55105,55105 +55107,55107 +55109,55109 +55111,55111 +55113,55113 +55115,55g03 +55117,55117 +55119,55119 +55121,55121 +55123,55123 +55125,55125 +55127,55127 +55129,55129 +55131,55131 +55133,55133 +55135,55135 +55137,55137 +55139,55139 +55141,55141 +56000,56000 +56001,56001 +56003,56g06 +56005,56005 +56007,56007 +56009,56009 +56011,56g01 +56013,56g02 +56015,56g04 +56017,56g02 +56019,56g03 +56021,56021 +56023,56g05 +56025,56025 +56027,56g04 +56029,56029 +56031,56g04 +56033,56g03 +56035,56g05 +56037,56037 +56039,56039 +56041,56041 +56043,56g06 +56045,56g01 +60000,60000 +60010,60010 +60020,60020 +60030,60030 +60040,60040 +60050,60050 +66000,66000 +66010,66010 +69000,69000 +69085,69085 +69100,69100 +69110,69110 +69120,69120 +70000,70000 +70002,70002 +70003,70003 +72000,72000 +72001,72001 +72003,72003 +72005,72005 +72007,72007 +72009,72009 +72011,72011 +72013,72013 +72015,72015 +72017,72017 +72019,72019 +72021,72021 +72023,72023 +72025,72025 +72027,72027 +72029,72029 +72031,72031 +72033,72033 +72035,72035 +72037,72037 +72039,72039 +72041,72041 +72043,72043 +72045,72045 +72047,72047 +72049,72049 +72051,72051 +72053,72053 +72054,72054 +72055,72055 +72057,72057 +72059,72059 +72061,72061 +72063,72063 +72065,72065 +72067,72067 +72069,72069 +72071,72071 +72073,72073 +72075,72075 +72077,72077 +72079,72079 +72081,72081 +72083,72083 +72085,72085 +72087,72087 +72089,72089 +72091,72091 +72093,72093 +72095,72095 +72097,72097 +72099,72099 +72101,72101 +72103,72103 +72105,72105 +72107,72107 +72109,72109 +72111,72111 +72113,72113 +72115,72115 +72117,72117 +72119,72119 +72121,72121 +72123,72123 +72125,72125 +72127,72127 +72129,72129 +72131,72131 +72133,72133 +72135,72135 +72137,72137 +72139,72139 +72141,72141 +72143,72143 +72145,72145 +72147,72147 +72149,72149 +72151,72151 +72153,72153 +78000,78000 +78010,78010 +78020,78020 +78030,78030 diff --git a/_delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv b/_delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv new file mode 100644 index 000000000..7d8b5a42c --- /dev/null +++ b/_delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv @@ -0,0 +1,2711 @@ +popsafe-fips,state_code,state_id,state_name +01000,01,al,Alabama +01001,01,al,Alabama +01003,01,al,Alabama +01005,01,al,Alabama +01007,01,al,Alabama +01009,01,al,Alabama +01011,01,al,Alabama +01013,01,al,Alabama +01015,01,al,Alabama +01017,01,al,Alabama +01019,01,al,Alabama +01021,01,al,Alabama +01023,01,al,Alabama +01025,01,al,Alabama +01027,01,al,Alabama +01029,01,al,Alabama +01031,01,al,Alabama +01033,01,al,Alabama +01035,01,al,Alabama +01037,01,al,Alabama +01039,01,al,Alabama +01041,01,al,Alabama +01043,01,al,Alabama +01045,01,al,Alabama +01049,01,al,Alabama +01051,01,al,Alabama +01053,01,al,Alabama +01055,01,al,Alabama +01057,01,al,Alabama +01059,01,al,Alabama +01061,01,al,Alabama +01067,01,al,Alabama +01069,01,al,Alabama +01071,01,al,Alabama +01073,01,al,Alabama +01075,01,al,Alabama +01077,01,al,Alabama +01079,01,al,Alabama +01081,01,al,Alabama +01083,01,al,Alabama +01085,01,al,Alabama +01087,01,al,Alabama +01089,01,al,Alabama +01091,01,al,Alabama +01093,01,al,Alabama +01095,01,al,Alabama +01097,01,al,Alabama +01099,01,al,Alabama +01101,01,al,Alabama +01103,01,al,Alabama +01107,01,al,Alabama +01109,01,al,Alabama +01111,01,al,Alabama +01113,01,al,Alabama +01115,01,al,Alabama +01117,01,al,Alabama +01119,01,al,Alabama +01121,01,al,Alabama +01123,01,al,Alabama +01125,01,al,Alabama +01127,01,al,Alabama +01129,01,al,Alabama +01131,01,al,Alabama +01133,01,al,Alabama +01g01,01,al,Alabama +01g02,01,al,Alabama +02000,02,ak,Alaska +02013,02,ak,Alaska +02016,02,ak,Alaska +02020,02,ak,Alaska +02050,02,ak,Alaska +02060,02,ak,Alaska +02068,02,ak,Alaska +02070,02,ak,Alaska +02090,02,ak,Alaska +02100,02,ak,Alaska +02105,02,ak,Alaska +02110,02,ak,Alaska +02122,02,ak,Alaska +02130,02,ak,Alaska +02150,02,ak,Alaska +02158,02,ak,Alaska +02164,02,ak,Alaska +02170,02,ak,Alaska +02180,02,ak,Alaska +02185,02,ak,Alaska +02188,02,ak,Alaska +02195,02,ak,Alaska +02198,02,ak,Alaska +02220,02,ak,Alaska +02230,02,ak,Alaska +02240,02,ak,Alaska +02261,02,ak,Alaska +02275,02,ak,Alaska +02282,02,ak,Alaska +02290,02,ak,Alaska +04000,04,az,Arizona +04001,04,az,Arizona +04003,04,az,Arizona +04005,04,az,Arizona +04007,04,az,Arizona +04012,04,az,Arizona +04013,04,az,Arizona +04015,04,az,Arizona +04017,04,az,Arizona +04019,04,az,Arizona +04021,04,az,Arizona +04023,04,az,Arizona +04025,04,az,Arizona +04027,04,az,Arizona +04g01,04,az,Arizona +05000,05,ar,Arkansas +05001,05,ar,Arkansas +05003,05,ar,Arkansas +05005,05,ar,Arkansas +05007,05,ar,Arkansas +05015,05,ar,Arkansas +05017,05,ar,Arkansas +05019,05,ar,Arkansas +05021,05,ar,Arkansas +05023,05,ar,Arkansas +05027,05,ar,Arkansas +05029,05,ar,Arkansas +05031,05,ar,Arkansas +05033,05,ar,Arkansas +05035,05,ar,Arkansas +05037,05,ar,Arkansas +05041,05,ar,Arkansas +05043,05,ar,Arkansas +05045,05,ar,Arkansas +05047,05,ar,Arkansas +05049,05,ar,Arkansas +05051,05,ar,Arkansas +05055,05,ar,Arkansas +05059,05,ar,Arkansas +05061,05,ar,Arkansas +05063,05,ar,Arkansas +05065,05,ar,Arkansas +05069,05,ar,Arkansas +05071,05,ar,Arkansas +05075,05,ar,Arkansas +05079,05,ar,Arkansas +05081,05,ar,Arkansas +05083,05,ar,Arkansas +05085,05,ar,Arkansas +05087,05,ar,Arkansas +05093,05,ar,Arkansas +05103,05,ar,Arkansas +05105,05,ar,Arkansas +05107,05,ar,Arkansas +05111,05,ar,Arkansas +05113,05,ar,Arkansas +05115,05,ar,Arkansas +05119,05,ar,Arkansas +05121,05,ar,Arkansas +05125,05,ar,Arkansas +05127,05,ar,Arkansas +05131,05,ar,Arkansas +05133,05,ar,Arkansas +05135,05,ar,Arkansas +05137,05,ar,Arkansas +05139,05,ar,Arkansas +05141,05,ar,Arkansas +05143,05,ar,Arkansas +05145,05,ar,Arkansas +05149,05,ar,Arkansas +05g01,05,ar,Arkansas +05g02,05,ar,Arkansas +05g03,05,ar,Arkansas +05g04,05,ar,Arkansas +05g05,05,ar,Arkansas +05g06,05,ar,Arkansas +05g07,05,ar,Arkansas +05g08,05,ar,Arkansas +05g09,05,ar,Arkansas +05g10,05,ar,Arkansas +06000,06,ca,California +06001,06,ca,California +06005,06,ca,California +06007,06,ca,California +06009,06,ca,California +06011,06,ca,California +06013,06,ca,California +06015,06,ca,California +06017,06,ca,California +06019,06,ca,California +06021,06,ca,California +06023,06,ca,California +06025,06,ca,California +06027,06,ca,California +06029,06,ca,California +06031,06,ca,California +06033,06,ca,California +06037,06,ca,California +06039,06,ca,California +06041,06,ca,California +06043,06,ca,California +06045,06,ca,California +06047,06,ca,California +06051,06,ca,California +06053,06,ca,California +06055,06,ca,California +06059,06,ca,California +06061,06,ca,California +06063,06,ca,California +06065,06,ca,California +06067,06,ca,California +06069,06,ca,California +06071,06,ca,California +06073,06,ca,California +06075,06,ca,California +06077,06,ca,California +06079,06,ca,California +06081,06,ca,California +06083,06,ca,California +06085,06,ca,California +06087,06,ca,California +06089,06,ca,California +06093,06,ca,California +06095,06,ca,California +06097,06,ca,California +06099,06,ca,California +06101,06,ca,California +06103,06,ca,California +06105,06,ca,California +06107,06,ca,California +06111,06,ca,California +06113,06,ca,California +06115,06,ca,California +06g01,06,ca,California +06g02,06,ca,California +06g03,06,ca,California +08000,08,co,Colorado +08001,08,co,Colorado +08005,08,co,Colorado +08013,08,co,Colorado +08014,08,co,Colorado +08029,08,co,Colorado +08031,08,co,Colorado +08035,08,co,Colorado +08037,08,co,Colorado +08041,08,co,Colorado +08051,08,co,Colorado +08059,08,co,Colorado +08067,08,co,Colorado +08069,08,co,Colorado +08071,08,co,Colorado +08077,08,co,Colorado +08081,08,co,Colorado +08083,08,co,Colorado +08093,08,co,Colorado +08097,08,co,Colorado +08107,08,co,Colorado +08117,08,co,Colorado +08119,08,co,Colorado +08123,08,co,Colorado +08g01,08,co,Colorado +08g02,08,co,Colorado +08g03,08,co,Colorado +08g04,08,co,Colorado +08g05,08,co,Colorado +08g06,08,co,Colorado +08g07,08,co,Colorado +08g08,08,co,Colorado +08g09,08,co,Colorado +08g10,08,co,Colorado +08g11,08,co,Colorado +08g12,08,co,Colorado +08g13,08,co,Colorado +08g14,08,co,Colorado +08g15,08,co,Colorado +08g16,08,co,Colorado +09000,09,ct,Connecticut +09001,09,ct,Connecticut +09003,09,ct,Connecticut +09005,09,ct,Connecticut +09007,09,ct,Connecticut +09009,09,ct,Connecticut +09011,09,ct,Connecticut +09013,09,ct,Connecticut +09015,09,ct,Connecticut +10000,10,de,Delaware +10001,10,de,Delaware +10003,10,de,Delaware +10005,10,de,Delaware +11000,11,dc,District of Columbia +11001,11,dc,District of Columbia +12000,12,fl,Florida +12001,12,fl,Florida +12003,12,fl,Florida +12005,12,fl,Florida +12007,12,fl,Florida +12009,12,fl,Florida +12011,12,fl,Florida +12013,12,fl,Florida +12015,12,fl,Florida +12017,12,fl,Florida +12019,12,fl,Florida +12021,12,fl,Florida +12023,12,fl,Florida +12027,12,fl,Florida +12029,12,fl,Florida +12031,12,fl,Florida +12033,12,fl,Florida +12035,12,fl,Florida +12039,12,fl,Florida +12041,12,fl,Florida +12043,12,fl,Florida +12045,12,fl,Florida +12047,12,fl,Florida +12049,12,fl,Florida +12051,12,fl,Florida +12053,12,fl,Florida +12055,12,fl,Florida +12057,12,fl,Florida +12059,12,fl,Florida +12061,12,fl,Florida +12063,12,fl,Florida +12065,12,fl,Florida +12069,12,fl,Florida +12071,12,fl,Florida +12073,12,fl,Florida +12075,12,fl,Florida +12079,12,fl,Florida +12081,12,fl,Florida +12083,12,fl,Florida +12085,12,fl,Florida +12086,12,fl,Florida +12087,12,fl,Florida +12089,12,fl,Florida +12091,12,fl,Florida +12093,12,fl,Florida +12095,12,fl,Florida +12097,12,fl,Florida +12099,12,fl,Florida +12101,12,fl,Florida +12103,12,fl,Florida +12105,12,fl,Florida +12107,12,fl,Florida +12109,12,fl,Florida +12111,12,fl,Florida +12113,12,fl,Florida +12115,12,fl,Florida +12117,12,fl,Florida +12119,12,fl,Florida +12123,12,fl,Florida +12125,12,fl,Florida +12127,12,fl,Florida +12129,12,fl,Florida +12131,12,fl,Florida +12133,12,fl,Florida +12g01,12,fl,Florida +12g02,12,fl,Florida +13000,13,ga,Georgia +13001,13,ga,Georgia +13005,13,ga,Georgia +13011,13,ga,Georgia +13013,13,ga,Georgia +13015,13,ga,Georgia +13019,13,ga,Georgia +13021,13,ga,Georgia +13025,13,ga,Georgia +13027,13,ga,Georgia +13029,13,ga,Georgia +13031,13,ga,Georgia +13035,13,ga,Georgia +13039,13,ga,Georgia +13043,13,ga,Georgia +13045,13,ga,Georgia +13047,13,ga,Georgia +13049,13,ga,Georgia +13051,13,ga,Georgia +13055,13,ga,Georgia +13057,13,ga,Georgia +13059,13,ga,Georgia +13063,13,ga,Georgia +13067,13,ga,Georgia +13071,13,ga,Georgia +13073,13,ga,Georgia +13075,13,ga,Georgia +13077,13,ga,Georgia +13079,13,ga,Georgia +13083,13,ga,Georgia +13085,13,ga,Georgia +13089,13,ga,Georgia +13091,13,ga,Georgia +13093,13,ga,Georgia +13095,13,ga,Georgia +13097,13,ga,Georgia +13103,13,ga,Georgia +13105,13,ga,Georgia +13109,13,ga,Georgia +13111,13,ga,Georgia +13113,13,ga,Georgia +13115,13,ga,Georgia +13117,13,ga,Georgia +13119,13,ga,Georgia +13121,13,ga,Georgia +13123,13,ga,Georgia +13127,13,ga,Georgia +13129,13,ga,Georgia +13131,13,ga,Georgia +13135,13,ga,Georgia +13137,13,ga,Georgia +13139,13,ga,Georgia +13143,13,ga,Georgia +13145,13,ga,Georgia +13147,13,ga,Georgia +13149,13,ga,Georgia +13151,13,ga,Georgia +13153,13,ga,Georgia +13157,13,ga,Georgia +13159,13,ga,Georgia +13161,13,ga,Georgia +13163,13,ga,Georgia +13169,13,ga,Georgia +13171,13,ga,Georgia +13173,13,ga,Georgia +13175,13,ga,Georgia +13179,13,ga,Georgia +13183,13,ga,Georgia +13185,13,ga,Georgia +13187,13,ga,Georgia +13191,13,ga,Georgia +13195,13,ga,Georgia +13199,13,ga,Georgia +13207,13,ga,Georgia +13211,13,ga,Georgia +13213,13,ga,Georgia +13215,13,ga,Georgia +13217,13,ga,Georgia +13219,13,ga,Georgia +13221,13,ga,Georgia +13223,13,ga,Georgia +13225,13,ga,Georgia +13227,13,ga,Georgia +13229,13,ga,Georgia +13231,13,ga,Georgia +13233,13,ga,Georgia +13237,13,ga,Georgia +13241,13,ga,Georgia +13245,13,ga,Georgia +13247,13,ga,Georgia +13251,13,ga,Georgia +13255,13,ga,Georgia +13257,13,ga,Georgia +13261,13,ga,Georgia +13267,13,ga,Georgia +13275,13,ga,Georgia +13277,13,ga,Georgia +13281,13,ga,Georgia +13285,13,ga,Georgia +13291,13,ga,Georgia +13295,13,ga,Georgia +13297,13,ga,Georgia +13299,13,ga,Georgia +13305,13,ga,Georgia +13311,13,ga,Georgia +13313,13,ga,Georgia +13321,13,ga,Georgia +13g01,13,ga,Georgia +13g02,13,ga,Georgia +13g03,13,ga,Georgia +13g04,13,ga,Georgia +13g05,13,ga,Georgia +13g06,13,ga,Georgia +13g07,13,ga,Georgia +13g08,13,ga,Georgia +13g09,13,ga,Georgia +13g10,13,ga,Georgia +13g11,13,ga,Georgia +13g12,13,ga,Georgia +13g13,13,ga,Georgia +13g14,13,ga,Georgia +13g15,13,ga,Georgia +13g16,13,ga,Georgia +13g17,13,ga,Georgia +13g18,13,ga,Georgia +13g19,13,ga,Georgia +13g20,13,ga,Georgia +13g21,13,ga,Georgia +13g22,13,ga,Georgia +13g23,13,ga,Georgia +13g24,13,ga,Georgia +15000,15,hi,Hawaii +15001,15,hi,Hawaii +15003,15,hi,Hawaii +15005,15,hi,Hawaii +15007,15,hi,Hawaii +15009,15,hi,Hawaii +16000,16,id,Idaho +16001,16,id,Idaho +16005,16,id,Idaho +16011,16,id,Idaho +16013,16,id,Idaho +16017,16,id,Idaho +16019,16,id,Idaho +16021,16,id,Idaho +16027,16,id,Idaho +16031,16,id,Idaho +16039,16,id,Idaho +16043,16,id,Idaho +16049,16,id,Idaho +16055,16,id,Idaho +16065,16,id,Idaho +16067,16,id,Idaho +16073,16,id,Idaho +16075,16,id,Idaho +16081,16,id,Idaho +16083,16,id,Idaho +16085,16,id,Idaho +16g01,16,id,Idaho +16g02,16,id,Idaho +16g03,16,id,Idaho +16g04,16,id,Idaho +16g05,16,id,Idaho +16g06,16,id,Idaho +16g07,16,id,Idaho +16g08,16,id,Idaho +16g09,16,id,Idaho +16g10,16,id,Idaho +16g11,16,id,Idaho +17000,17,il,Illinois +17001,17,il,Illinois +17005,17,il,Illinois +17007,17,il,Illinois +17011,17,il,Illinois +17015,17,il,Illinois +17017,17,il,Illinois +17019,17,il,Illinois +17021,17,il,Illinois +17023,17,il,Illinois +17025,17,il,Illinois +17027,17,il,Illinois +17029,17,il,Illinois +17031,17,il,Illinois +17033,17,il,Illinois +17037,17,il,Illinois +17039,17,il,Illinois +17041,17,il,Illinois +17043,17,il,Illinois +17045,17,il,Illinois +17049,17,il,Illinois +17051,17,il,Illinois +17053,17,il,Illinois +17055,17,il,Illinois +17057,17,il,Illinois +17061,17,il,Illinois +17063,17,il,Illinois +17067,17,il,Illinois +17073,17,il,Illinois +17075,17,il,Illinois +17077,17,il,Illinois +17081,17,il,Illinois +17085,17,il,Illinois +17087,17,il,Illinois +17089,17,il,Illinois +17091,17,il,Illinois +17093,17,il,Illinois +17095,17,il,Illinois +17097,17,il,Illinois +17099,17,il,Illinois +17101,17,il,Illinois +17103,17,il,Illinois +17105,17,il,Illinois +17107,17,il,Illinois +17109,17,il,Illinois +17111,17,il,Illinois +17113,17,il,Illinois +17115,17,il,Illinois +17117,17,il,Illinois +17119,17,il,Illinois +17121,17,il,Illinois +17125,17,il,Illinois +17129,17,il,Illinois +17131,17,il,Illinois +17133,17,il,Illinois +17135,17,il,Illinois +17139,17,il,Illinois +17141,17,il,Illinois +17145,17,il,Illinois +17147,17,il,Illinois +17149,17,il,Illinois +17157,17,il,Illinois +17159,17,il,Illinois +17161,17,il,Illinois +17163,17,il,Illinois +17167,17,il,Illinois +17173,17,il,Illinois +17177,17,il,Illinois +17179,17,il,Illinois +17181,17,il,Illinois +17183,17,il,Illinois +17189,17,il,Illinois +17191,17,il,Illinois +17195,17,il,Illinois +17197,17,il,Illinois +17199,17,il,Illinois +17201,17,il,Illinois +17203,17,il,Illinois +17g01,17,il,Illinois +17g02,17,il,Illinois +17g03,17,il,Illinois +17g04,17,il,Illinois +17g05,17,il,Illinois +17g06,17,il,Illinois +17g07,17,il,Illinois +17g08,17,il,Illinois +17g09,17,il,Illinois +17g10,17,il,Illinois +17g11,17,il,Illinois +17g12,17,il,Illinois +18000,18,in,Indiana +18001,18,in,Indiana +18003,18,in,Indiana +18005,18,in,Indiana +18009,18,in,Indiana +18011,18,in,Indiana +18013,18,in,Indiana +18015,18,in,Indiana +18017,18,in,Indiana +18019,18,in,Indiana +18021,18,in,Indiana +18023,18,in,Indiana +18025,18,in,Indiana +18027,18,in,Indiana +18029,18,in,Indiana +18031,18,in,Indiana +18033,18,in,Indiana +18035,18,in,Indiana +18037,18,in,Indiana +18039,18,in,Indiana +18043,18,in,Indiana +18045,18,in,Indiana +18047,18,in,Indiana +18049,18,in,Indiana +18051,18,in,Indiana +18053,18,in,Indiana +18055,18,in,Indiana +18057,18,in,Indiana +18059,18,in,Indiana +18061,18,in,Indiana +18063,18,in,Indiana +18065,18,in,Indiana +18067,18,in,Indiana +18069,18,in,Indiana +18071,18,in,Indiana +18073,18,in,Indiana +18075,18,in,Indiana +18077,18,in,Indiana +18079,18,in,Indiana +18081,18,in,Indiana +18083,18,in,Indiana +18085,18,in,Indiana +18087,18,in,Indiana +18089,18,in,Indiana +18091,18,in,Indiana +18093,18,in,Indiana +18095,18,in,Indiana +18097,18,in,Indiana +18099,18,in,Indiana +18101,18,in,Indiana +18103,18,in,Indiana +18105,18,in,Indiana +18107,18,in,Indiana +18109,18,in,Indiana +18111,18,in,Indiana +18113,18,in,Indiana +18117,18,in,Indiana +18119,18,in,Indiana +18121,18,in,Indiana +18123,18,in,Indiana +18125,18,in,Indiana +18127,18,in,Indiana +18129,18,in,Indiana +18131,18,in,Indiana +18133,18,in,Indiana +18135,18,in,Indiana +18137,18,in,Indiana +18139,18,in,Indiana +18141,18,in,Indiana +18143,18,in,Indiana +18145,18,in,Indiana +18147,18,in,Indiana +18149,18,in,Indiana +18151,18,in,Indiana +18153,18,in,Indiana +18157,18,in,Indiana +18159,18,in,Indiana +18163,18,in,Indiana +18165,18,in,Indiana +18167,18,in,Indiana +18169,18,in,Indiana +18173,18,in,Indiana +18175,18,in,Indiana +18177,18,in,Indiana +18179,18,in,Indiana +18181,18,in,Indiana +18183,18,in,Indiana +18g01,18,in,Indiana +18g02,18,in,Indiana +18g03,18,in,Indiana +19000,19,ia,Iowa +19005,19,ia,Iowa +19011,19,ia,Iowa +19013,19,ia,Iowa +19015,19,ia,Iowa +19017,19,ia,Iowa +19019,19,ia,Iowa +19021,19,ia,Iowa +19023,19,ia,Iowa +19027,19,ia,Iowa +19031,19,ia,Iowa +19041,19,ia,Iowa +19043,19,ia,Iowa +19045,19,ia,Iowa +19047,19,ia,Iowa +19049,19,ia,Iowa +19055,19,ia,Iowa +19057,19,ia,Iowa +19059,19,ia,Iowa +19061,19,ia,Iowa +19065,19,ia,Iowa +19067,19,ia,Iowa +19069,19,ia,Iowa +19075,19,ia,Iowa +19079,19,ia,Iowa +19081,19,ia,Iowa +19083,19,ia,Iowa +19085,19,ia,Iowa +19087,19,ia,Iowa +19095,19,ia,Iowa +19097,19,ia,Iowa +19099,19,ia,Iowa +19103,19,ia,Iowa +19105,19,ia,Iowa +19107,19,ia,Iowa +19109,19,ia,Iowa +19111,19,ia,Iowa +19113,19,ia,Iowa +19115,19,ia,Iowa +19119,19,ia,Iowa +19121,19,ia,Iowa +19123,19,ia,Iowa +19125,19,ia,Iowa +19127,19,ia,Iowa +19131,19,ia,Iowa +19137,19,ia,Iowa +19139,19,ia,Iowa +19145,19,ia,Iowa +19149,19,ia,Iowa +19153,19,ia,Iowa +19155,19,ia,Iowa +19157,19,ia,Iowa +19161,19,ia,Iowa +19163,19,ia,Iowa +19165,19,ia,Iowa +19167,19,ia,Iowa +19169,19,ia,Iowa +19171,19,ia,Iowa +19181,19,ia,Iowa +19183,19,ia,Iowa +19189,19,ia,Iowa +19191,19,ia,Iowa +19197,19,ia,Iowa +19g01,19,ia,Iowa +19g02,19,ia,Iowa +19g03,19,ia,Iowa +19g04,19,ia,Iowa +19g05,19,ia,Iowa +19g06,19,ia,Iowa +19g07,19,ia,Iowa +19g08,19,ia,Iowa +19g09,19,ia,Iowa +19g10,19,ia,Iowa +19g11,19,ia,Iowa +19g12,19,ia,Iowa +19g13,19,ia,Iowa +19g14,19,ia,Iowa +19g15,19,ia,Iowa +19g16,19,ia,Iowa +19g17,19,ia,Iowa +19g18,19,ia,Iowa +20000,20,ks,Kansas +20011,20,ks,Kansas +20015,20,ks,Kansas +20021,20,ks,Kansas +20035,20,ks,Kansas +20037,20,ks,Kansas +20041,20,ks,Kansas +20045,20,ks,Kansas +20059,20,ks,Kansas +20079,20,ks,Kansas +20085,20,ks,Kansas +20087,20,ks,Kansas +20091,20,ks,Kansas +20099,20,ks,Kansas +20103,20,ks,Kansas +20111,20,ks,Kansas +20113,20,ks,Kansas +20115,20,ks,Kansas +20131,20,ks,Kansas +20133,20,ks,Kansas +20139,20,ks,Kansas +20155,20,ks,Kansas +20169,20,ks,Kansas +20173,20,ks,Kansas +20191,20,ks,Kansas +20209,20,ks,Kansas +20g01,20,ks,Kansas +20g02,20,ks,Kansas +20g03,20,ks,Kansas +20g04,20,ks,Kansas +20g05,20,ks,Kansas +20g06,20,ks,Kansas +20g07,20,ks,Kansas +20g08,20,ks,Kansas +20g09,20,ks,Kansas +20g10,20,ks,Kansas +20g11,20,ks,Kansas +20g12,20,ks,Kansas +20g13,20,ks,Kansas +20g14,20,ks,Kansas +20g15,20,ks,Kansas +20g16,20,ks,Kansas +20g17,20,ks,Kansas +20g18,20,ks,Kansas +20g19,20,ks,Kansas +20g20,20,ks,Kansas +20g21,20,ks,Kansas +20g22,20,ks,Kansas +20g23,20,ks,Kansas +20g24,20,ks,Kansas +20g25,20,ks,Kansas +20g26,20,ks,Kansas +20g27,20,ks,Kansas +21000,21,ky,Kentucky +21001,21,ky,Kentucky +21003,21,ky,Kentucky +21005,21,ky,Kentucky +21009,21,ky,Kentucky +21011,21,ky,Kentucky +21013,21,ky,Kentucky +21015,21,ky,Kentucky +21019,21,ky,Kentucky +21021,21,ky,Kentucky +21025,21,ky,Kentucky +21027,21,ky,Kentucky +21029,21,ky,Kentucky +21031,21,ky,Kentucky +21035,21,ky,Kentucky +21037,21,ky,Kentucky +21045,21,ky,Kentucky +21047,21,ky,Kentucky +21049,21,ky,Kentucky +21051,21,ky,Kentucky +21061,21,ky,Kentucky +21065,21,ky,Kentucky +21067,21,ky,Kentucky +21069,21,ky,Kentucky +21071,21,ky,Kentucky +21073,21,ky,Kentucky +21079,21,ky,Kentucky +21081,21,ky,Kentucky +21083,21,ky,Kentucky +21085,21,ky,Kentucky +21089,21,ky,Kentucky +21093,21,ky,Kentucky +21095,21,ky,Kentucky +21097,21,ky,Kentucky +21099,21,ky,Kentucky +21101,21,ky,Kentucky +21103,21,ky,Kentucky +21107,21,ky,Kentucky +21109,21,ky,Kentucky +21111,21,ky,Kentucky +21113,21,ky,Kentucky +21115,21,ky,Kentucky +21117,21,ky,Kentucky +21119,21,ky,Kentucky +21121,21,ky,Kentucky +21123,21,ky,Kentucky +21125,21,ky,Kentucky +21127,21,ky,Kentucky +21131,21,ky,Kentucky +21133,21,ky,Kentucky +21135,21,ky,Kentucky +21137,21,ky,Kentucky +21141,21,ky,Kentucky +21145,21,ky,Kentucky +21147,21,ky,Kentucky +21151,21,ky,Kentucky +21153,21,ky,Kentucky +21155,21,ky,Kentucky +21157,21,ky,Kentucky +21159,21,ky,Kentucky +21161,21,ky,Kentucky +21163,21,ky,Kentucky +21167,21,ky,Kentucky +21171,21,ky,Kentucky +21173,21,ky,Kentucky +21175,21,ky,Kentucky +21177,21,ky,Kentucky +21179,21,ky,Kentucky +21183,21,ky,Kentucky +21185,21,ky,Kentucky +21191,21,ky,Kentucky +21193,21,ky,Kentucky +21195,21,ky,Kentucky +21197,21,ky,Kentucky +21199,21,ky,Kentucky +21203,21,ky,Kentucky +21205,21,ky,Kentucky +21207,21,ky,Kentucky +21209,21,ky,Kentucky +21211,21,ky,Kentucky +21213,21,ky,Kentucky +21215,21,ky,Kentucky +21217,21,ky,Kentucky +21219,21,ky,Kentucky +21221,21,ky,Kentucky +21225,21,ky,Kentucky +21227,21,ky,Kentucky +21229,21,ky,Kentucky +21231,21,ky,Kentucky +21233,21,ky,Kentucky +21235,21,ky,Kentucky +21239,21,ky,Kentucky +21g01,21,ky,Kentucky +21g02,21,ky,Kentucky +21g03,21,ky,Kentucky +21g04,21,ky,Kentucky +21g05,21,ky,Kentucky +21g06,21,ky,Kentucky +21g07,21,ky,Kentucky +21g08,21,ky,Kentucky +21g09,21,ky,Kentucky +21g10,21,ky,Kentucky +21g11,21,ky,Kentucky +21g12,21,ky,Kentucky +21g13,21,ky,Kentucky +21g14,21,ky,Kentucky +22000,22,la,Louisiana +22001,22,la,Louisiana +22003,22,la,Louisiana +22005,22,la,Louisiana +22007,22,la,Louisiana +22009,22,la,Louisiana +22011,22,la,Louisiana +22015,22,la,Louisiana +22017,22,la,Louisiana +22025,22,la,Louisiana +22027,22,la,Louisiana +22029,22,la,Louisiana +22031,22,la,Louisiana +22033,22,la,Louisiana +22037,22,la,Louisiana +22039,22,la,Louisiana +22043,22,la,Louisiana +22045,22,la,Louisiana +22047,22,la,Louisiana +22049,22,la,Louisiana +22051,22,la,Louisiana +22053,22,la,Louisiana +22055,22,la,Louisiana +22057,22,la,Louisiana +22059,22,la,Louisiana +22061,22,la,Louisiana +22063,22,la,Louisiana +22065,22,la,Louisiana +22067,22,la,Louisiana +22069,22,la,Louisiana +22071,22,la,Louisiana +22075,22,la,Louisiana +22077,22,la,Louisiana +22079,22,la,Louisiana +22083,22,la,Louisiana +22085,22,la,Louisiana +22087,22,la,Louisiana +22089,22,la,Louisiana +22091,22,la,Louisiana +22093,22,la,Louisiana +22095,22,la,Louisiana +22097,22,la,Louisiana +22099,22,la,Louisiana +22101,22,la,Louisiana +22103,22,la,Louisiana +22105,22,la,Louisiana +22109,22,la,Louisiana +22111,22,la,Louisiana +22113,22,la,Louisiana +22115,22,la,Louisiana +22117,22,la,Louisiana +22119,22,la,Louisiana +22121,22,la,Louisiana +22125,22,la,Louisiana +22127,22,la,Louisiana +22g01,22,la,Louisiana +22g02,22,la,Louisiana +22g03,22,la,Louisiana +22g04,22,la,Louisiana +22g05,22,la,Louisiana +23000,23,me,Maine +23001,23,me,Maine +23003,23,me,Maine +23005,23,me,Maine +23007,23,me,Maine +23009,23,me,Maine +23011,23,me,Maine +23013,23,me,Maine +23015,23,me,Maine +23017,23,me,Maine +23019,23,me,Maine +23021,23,me,Maine +23023,23,me,Maine +23025,23,me,Maine +23027,23,me,Maine +23029,23,me,Maine +23031,23,me,Maine +24000,24,md,Maryland +24001,24,md,Maryland +24003,24,md,Maryland +24005,24,md,Maryland +24009,24,md,Maryland +24011,24,md,Maryland +24013,24,md,Maryland +24015,24,md,Maryland +24017,24,md,Maryland +24019,24,md,Maryland +24021,24,md,Maryland +24023,24,md,Maryland +24025,24,md,Maryland +24027,24,md,Maryland +24029,24,md,Maryland +24031,24,md,Maryland +24033,24,md,Maryland +24035,24,md,Maryland +24037,24,md,Maryland +24039,24,md,Maryland +24041,24,md,Maryland +24043,24,md,Maryland +24045,24,md,Maryland +24047,24,md,Maryland +24510,24,md,Maryland +25000,25,ma,Massachusetts +25001,25,ma,Massachusetts +25003,25,ma,Massachusetts +25005,25,ma,Massachusetts +25007,25,ma,Massachusetts +25009,25,ma,Massachusetts +25011,25,ma,Massachusetts +25013,25,ma,Massachusetts +25015,25,ma,Massachusetts +25017,25,ma,Massachusetts +25019,25,ma,Massachusetts +25021,25,ma,Massachusetts +25023,25,ma,Massachusetts +25025,25,ma,Massachusetts +25027,25,ma,Massachusetts +26000,26,mi,Michigan +26001,26,mi,Michigan +26005,26,mi,Michigan +26007,26,mi,Michigan +26009,26,mi,Michigan +26011,26,mi,Michigan +26015,26,mi,Michigan +26017,26,mi,Michigan +26019,26,mi,Michigan +26021,26,mi,Michigan +26023,26,mi,Michigan +26025,26,mi,Michigan +26027,26,mi,Michigan +26029,26,mi,Michigan +26031,26,mi,Michigan +26033,26,mi,Michigan +26035,26,mi,Michigan +26037,26,mi,Michigan +26039,26,mi,Michigan +26041,26,mi,Michigan +26043,26,mi,Michigan +26045,26,mi,Michigan +26047,26,mi,Michigan +26049,26,mi,Michigan +26051,26,mi,Michigan +26055,26,mi,Michigan +26057,26,mi,Michigan +26059,26,mi,Michigan +26063,26,mi,Michigan +26065,26,mi,Michigan +26067,26,mi,Michigan +26069,26,mi,Michigan +26071,26,mi,Michigan +26073,26,mi,Michigan +26075,26,mi,Michigan +26077,26,mi,Michigan +26079,26,mi,Michigan +26081,26,mi,Michigan +26085,26,mi,Michigan +26087,26,mi,Michigan +26089,26,mi,Michigan +26091,26,mi,Michigan +26093,26,mi,Michigan +26099,26,mi,Michigan +26101,26,mi,Michigan +26103,26,mi,Michigan +26105,26,mi,Michigan +26107,26,mi,Michigan +26109,26,mi,Michigan +26111,26,mi,Michigan +26113,26,mi,Michigan +26115,26,mi,Michigan +26117,26,mi,Michigan +26121,26,mi,Michigan +26123,26,mi,Michigan +26125,26,mi,Michigan +26127,26,mi,Michigan +26129,26,mi,Michigan +26133,26,mi,Michigan +26137,26,mi,Michigan +26139,26,mi,Michigan +26141,26,mi,Michigan +26143,26,mi,Michigan +26145,26,mi,Michigan +26147,26,mi,Michigan +26149,26,mi,Michigan +26151,26,mi,Michigan +26155,26,mi,Michigan +26157,26,mi,Michigan +26159,26,mi,Michigan +26161,26,mi,Michigan +26163,26,mi,Michigan +26165,26,mi,Michigan +26g01,26,mi,Michigan +26g02,26,mi,Michigan +26g03,26,mi,Michigan +26g04,26,mi,Michigan +26g05,26,mi,Michigan +27000,27,mn,Minnesota +27001,27,mn,Minnesota +27003,27,mn,Minnesota +27005,27,mn,Minnesota +27009,27,mn,Minnesota +27013,27,mn,Minnesota +27015,27,mn,Minnesota +27017,27,mn,Minnesota +27019,27,mn,Minnesota +27021,27,mn,Minnesota +27025,27,mn,Minnesota +27033,27,mn,Minnesota +27035,27,mn,Minnesota +27037,27,mn,Minnesota +27039,27,mn,Minnesota +27041,27,mn,Minnesota +27043,27,mn,Minnesota +27045,27,mn,Minnesota +27047,27,mn,Minnesota +27049,27,mn,Minnesota +27053,27,mn,Minnesota +27055,27,mn,Minnesota +27057,27,mn,Minnesota +27059,27,mn,Minnesota +27061,27,mn,Minnesota +27063,27,mn,Minnesota +27065,27,mn,Minnesota +27067,27,mn,Minnesota +27071,27,mn,Minnesota +27079,27,mn,Minnesota +27083,27,mn,Minnesota +27085,27,mn,Minnesota +27091,27,mn,Minnesota +27093,27,mn,Minnesota +27095,27,mn,Minnesota +27097,27,mn,Minnesota +27099,27,mn,Minnesota +27103,27,mn,Minnesota +27109,27,mn,Minnesota +27111,27,mn,Minnesota +27115,27,mn,Minnesota +27119,27,mn,Minnesota +27121,27,mn,Minnesota +27123,27,mn,Minnesota +27127,27,mn,Minnesota +27129,27,mn,Minnesota +27131,27,mn,Minnesota +27135,27,mn,Minnesota +27137,27,mn,Minnesota +27139,27,mn,Minnesota +27141,27,mn,Minnesota +27143,27,mn,Minnesota +27145,27,mn,Minnesota +27147,27,mn,Minnesota +27153,27,mn,Minnesota +27157,27,mn,Minnesota +27159,27,mn,Minnesota +27161,27,mn,Minnesota +27163,27,mn,Minnesota +27165,27,mn,Minnesota +27169,27,mn,Minnesota +27171,27,mn,Minnesota +27g01,27,mn,Minnesota +27g02,27,mn,Minnesota +27g03,27,mn,Minnesota +27g04,27,mn,Minnesota +27g05,27,mn,Minnesota +27g06,27,mn,Minnesota +27g07,27,mn,Minnesota +27g08,27,mn,Minnesota +27g09,27,mn,Minnesota +27g10,27,mn,Minnesota +27g11,27,mn,Minnesota +28000,28,ms,Mississippi +28003,28,ms,Mississippi +28007,28,ms,Mississippi +28011,28,ms,Mississippi +28013,28,ms,Mississippi +28015,28,ms,Mississippi +28017,28,ms,Mississippi +28023,28,ms,Mississippi +28025,28,ms,Mississippi +28029,28,ms,Mississippi +28031,28,ms,Mississippi +28033,28,ms,Mississippi +28035,28,ms,Mississippi +28039,28,ms,Mississippi +28041,28,ms,Mississippi +28043,28,ms,Mississippi +28045,28,ms,Mississippi +28047,28,ms,Mississippi +28049,28,ms,Mississippi +28051,28,ms,Mississippi +28057,28,ms,Mississippi +28059,28,ms,Mississippi +28061,28,ms,Mississippi +28065,28,ms,Mississippi +28067,28,ms,Mississippi +28071,28,ms,Mississippi +28073,28,ms,Mississippi +28077,28,ms,Mississippi +28079,28,ms,Mississippi +28081,28,ms,Mississippi +28083,28,ms,Mississippi +28085,28,ms,Mississippi +28087,28,ms,Mississippi +28089,28,ms,Mississippi +28091,28,ms,Mississippi +28093,28,ms,Mississippi +28095,28,ms,Mississippi +28097,28,ms,Mississippi +28099,28,ms,Mississippi +28101,28,ms,Mississippi +28103,28,ms,Mississippi +28105,28,ms,Mississippi +28107,28,ms,Mississippi +28109,28,ms,Mississippi +28111,28,ms,Mississippi +28113,28,ms,Mississippi +28115,28,ms,Mississippi +28117,28,ms,Mississippi +28121,28,ms,Mississippi +28123,28,ms,Mississippi +28127,28,ms,Mississippi +28129,28,ms,Mississippi +28131,28,ms,Mississippi +28133,28,ms,Mississippi +28135,28,ms,Mississippi +28137,28,ms,Mississippi +28141,28,ms,Mississippi +28143,28,ms,Mississippi +28145,28,ms,Mississippi +28147,28,ms,Mississippi +28149,28,ms,Mississippi +28151,28,ms,Mississippi +28153,28,ms,Mississippi +28159,28,ms,Mississippi +28161,28,ms,Mississippi +28g01,28,ms,Mississippi +28g02,28,ms,Mississippi +28g03,28,ms,Mississippi +28g04,28,ms,Mississippi +28g05,28,ms,Mississippi +28g06,28,ms,Mississippi +28g07,28,ms,Mississippi +28g08,28,ms,Mississippi +29000,29,mo,Missouri +29001,29,mo,Missouri +29003,29,mo,Missouri +29007,29,mo,Missouri +29009,29,mo,Missouri +29011,29,mo,Missouri +29013,29,mo,Missouri +29015,29,mo,Missouri +29017,29,mo,Missouri +29019,29,mo,Missouri +29021,29,mo,Missouri +29023,29,mo,Missouri +29027,29,mo,Missouri +29029,29,mo,Missouri +29031,29,mo,Missouri +29037,29,mo,Missouri +29043,29,mo,Missouri +29047,29,mo,Missouri +29049,29,mo,Missouri +29051,29,mo,Missouri +29053,29,mo,Missouri +29055,29,mo,Missouri +29059,29,mo,Missouri +29069,29,mo,Missouri +29071,29,mo,Missouri +29073,29,mo,Missouri +29077,29,mo,Missouri +29089,29,mo,Missouri +29091,29,mo,Missouri +29095,29,mo,Missouri +29097,29,mo,Missouri +29099,29,mo,Missouri +29101,29,mo,Missouri +29105,29,mo,Missouri +29107,29,mo,Missouri +29109,29,mo,Missouri +29113,29,mo,Missouri +29119,29,mo,Missouri +29121,29,mo,Missouri +29123,29,mo,Missouri +29127,29,mo,Missouri +29131,29,mo,Missouri +29133,29,mo,Missouri +29135,29,mo,Missouri +29139,29,mo,Missouri +29141,29,mo,Missouri +29143,29,mo,Missouri +29145,29,mo,Missouri +29149,29,mo,Missouri +29155,29,mo,Missouri +29157,29,mo,Missouri +29159,29,mo,Missouri +29161,29,mo,Missouri +29163,29,mo,Missouri +29165,29,mo,Missouri +29169,29,mo,Missouri +29173,29,mo,Missouri +29175,29,mo,Missouri +29183,29,mo,Missouri +29186,29,mo,Missouri +29187,29,mo,Missouri +29189,29,mo,Missouri +29195,29,mo,Missouri +29201,29,mo,Missouri +29207,29,mo,Missouri +29209,29,mo,Missouri +29213,29,mo,Missouri +29215,29,mo,Missouri +29217,29,mo,Missouri +29219,29,mo,Missouri +29221,29,mo,Missouri +29223,29,mo,Missouri +29225,29,mo,Missouri +29229,29,mo,Missouri +29510,29,mo,Missouri +29g01,29,mo,Missouri +29g02,29,mo,Missouri +29g03,29,mo,Missouri +29g04,29,mo,Missouri +29g05,29,mo,Missouri +29g06,29,mo,Missouri +29g07,29,mo,Missouri +29g08,29,mo,Missouri +29g09,29,mo,Missouri +29g10,29,mo,Missouri +29g11,29,mo,Missouri +29g12,29,mo,Missouri +29g13,29,mo,Missouri +29g14,29,mo,Missouri +29g15,29,mo,Missouri +29g16,29,mo,Missouri +29g17,29,mo,Missouri +29g18,29,mo,Missouri +29g19,29,mo,Missouri +30000,30,mt,Montana +30003,30,mt,Montana +30009,30,mt,Montana +30029,30,mt,Montana +30035,30,mt,Montana +30047,30,mt,Montana +30053,30,mt,Montana +30063,30,mt,Montana +30067,30,mt,Montana +30081,30,mt,Montana +30083,30,mt,Montana +30g01,30,mt,Montana +30g02,30,mt,Montana +30g03,30,mt,Montana +30g04,30,mt,Montana +30g05,30,mt,Montana +30g06,30,mt,Montana +30g07,30,mt,Montana +30g08,30,mt,Montana +30g09,30,mt,Montana +30g10,30,mt,Montana +30g11,30,mt,Montana +30g12,30,mt,Montana +30g13,30,mt,Montana +30g14,30,mt,Montana +30g15,30,mt,Montana +30g16,30,mt,Montana +30g17,30,mt,Montana +31000,31,ne,Nebraska +31019,31,ne,Nebraska +31025,31,ne,Nebraska +31041,31,ne,Nebraska +31043,31,ne,Nebraska +31047,31,ne,Nebraska +31053,31,ne,Nebraska +31055,31,ne,Nebraska +31067,31,ne,Nebraska +31079,31,ne,Nebraska +31109,31,ne,Nebraska +31119,31,ne,Nebraska +31141,31,ne,Nebraska +31153,31,ne,Nebraska +31155,31,ne,Nebraska +31159,31,ne,Nebraska +31g01,31,ne,Nebraska +31g02,31,ne,Nebraska +31g03,31,ne,Nebraska +31g04,31,ne,Nebraska +31g05,31,ne,Nebraska +31g06,31,ne,Nebraska +31g07,31,ne,Nebraska +31g08,31,ne,Nebraska +31g09,31,ne,Nebraska +31g10,31,ne,Nebraska +31g11,31,ne,Nebraska +31g12,31,ne,Nebraska +31g13,31,ne,Nebraska +31g14,31,ne,Nebraska +31g15,31,ne,Nebraska +31g16,31,ne,Nebraska +31g17,31,ne,Nebraska +31g18,31,ne,Nebraska +31g19,31,ne,Nebraska +31g20,31,ne,Nebraska +31g21,31,ne,Nebraska +31g22,31,ne,Nebraska +31g23,31,ne,Nebraska +31g24,31,ne,Nebraska +32000,32,nv,Nevada +32005,32,nv,Nevada +32013,32,nv,Nevada +32023,32,nv,Nevada +32031,32,nv,Nevada +32g01,32,nv,Nevada +32g02,32,nv,Nevada +32g03,32,nv,Nevada +32g04,32,nv,Nevada +32g05,32,nv,Nevada +33000,33,nh,New Hampshire +33001,33,nh,New Hampshire +33003,33,nh,New Hampshire +33005,33,nh,New Hampshire +33007,33,nh,New Hampshire +33009,33,nh,New Hampshire +33011,33,nh,New Hampshire +33013,33,nh,New Hampshire +33015,33,nh,New Hampshire +33017,33,nh,New Hampshire +33019,33,nh,New Hampshire +34000,34,nj,New Jersey +34001,34,nj,New Jersey +34003,34,nj,New Jersey +34005,34,nj,New Jersey +34007,34,nj,New Jersey +34009,34,nj,New Jersey +34011,34,nj,New Jersey +34013,34,nj,New Jersey +34015,34,nj,New Jersey +34017,34,nj,New Jersey +34019,34,nj,New Jersey +34021,34,nj,New Jersey +34023,34,nj,New Jersey +34025,34,nj,New Jersey +34027,34,nj,New Jersey +34029,34,nj,New Jersey +34031,34,nj,New Jersey +34033,34,nj,New Jersey +34035,34,nj,New Jersey +34037,34,nj,New Jersey +34039,34,nj,New Jersey +34041,34,nj,New Jersey +35000,35,nm,New Mexico +35001,35,nm,New Mexico +35005,35,nm,New Mexico +35013,35,nm,New Mexico +35015,35,nm,New Mexico +35025,35,nm,New Mexico +35027,35,nm,New Mexico +35028,35,nm,New Mexico +35029,35,nm,New Mexico +35031,35,nm,New Mexico +35035,35,nm,New Mexico +35039,35,nm,New Mexico +35041,35,nm,New Mexico +35043,35,nm,New Mexico +35045,35,nm,New Mexico +35049,35,nm,New Mexico +35051,35,nm,New Mexico +35053,35,nm,New Mexico +35055,35,nm,New Mexico +35057,35,nm,New Mexico +35061,35,nm,New Mexico +35g01,35,nm,New Mexico +35g02,35,nm,New Mexico +35g03,35,nm,New Mexico +35g04,35,nm,New Mexico +35g05,35,nm,New Mexico +36000,36,ny,New York +36001,36,ny,New York +36003,36,ny,New York +36005,36,ny,New York +36007,36,ny,New York +36009,36,ny,New York +36011,36,ny,New York +36013,36,ny,New York +36015,36,ny,New York +36017,36,ny,New York +36019,36,ny,New York +36021,36,ny,New York +36023,36,ny,New York +36025,36,ny,New York +36027,36,ny,New York +36029,36,ny,New York +36031,36,ny,New York +36033,36,ny,New York +36035,36,ny,New York +36037,36,ny,New York +36039,36,ny,New York +36045,36,ny,New York +36047,36,ny,New York +36049,36,ny,New York +36051,36,ny,New York +36053,36,ny,New York +36055,36,ny,New York +36057,36,ny,New York +36059,36,ny,New York +36061,36,ny,New York +36063,36,ny,New York +36065,36,ny,New York +36067,36,ny,New York +36069,36,ny,New York +36071,36,ny,New York +36073,36,ny,New York +36075,36,ny,New York +36077,36,ny,New York +36079,36,ny,New York +36081,36,ny,New York +36083,36,ny,New York +36085,36,ny,New York +36087,36,ny,New York +36089,36,ny,New York +36091,36,ny,New York +36093,36,ny,New York +36095,36,ny,New York +36097,36,ny,New York +36099,36,ny,New York +36101,36,ny,New York +36103,36,ny,New York +36105,36,ny,New York +36107,36,ny,New York +36109,36,ny,New York +36111,36,ny,New York +36113,36,ny,New York +36115,36,ny,New York +36117,36,ny,New York +36119,36,ny,New York +36121,36,ny,New York +36123,36,ny,New York +36g01,36,ny,New York +37000,37,nc,North Carolina +37001,37,nc,North Carolina +37003,37,nc,North Carolina +37005,37,nc,North Carolina +37007,37,nc,North Carolina +37009,37,nc,North Carolina +37011,37,nc,North Carolina +37013,37,nc,North Carolina +37015,37,nc,North Carolina +37017,37,nc,North Carolina +37019,37,nc,North Carolina +37021,37,nc,North Carolina +37023,37,nc,North Carolina +37025,37,nc,North Carolina +37027,37,nc,North Carolina +37029,37,nc,North Carolina +37031,37,nc,North Carolina +37033,37,nc,North Carolina +37035,37,nc,North Carolina +37037,37,nc,North Carolina +37039,37,nc,North Carolina +37041,37,nc,North Carolina +37045,37,nc,North Carolina +37047,37,nc,North Carolina +37049,37,nc,North Carolina +37051,37,nc,North Carolina +37053,37,nc,North Carolina +37055,37,nc,North Carolina +37057,37,nc,North Carolina +37059,37,nc,North Carolina +37061,37,nc,North Carolina +37063,37,nc,North Carolina +37065,37,nc,North Carolina +37067,37,nc,North Carolina +37069,37,nc,North Carolina +37071,37,nc,North Carolina +37073,37,nc,North Carolina +37077,37,nc,North Carolina +37079,37,nc,North Carolina +37081,37,nc,North Carolina +37083,37,nc,North Carolina +37085,37,nc,North Carolina +37087,37,nc,North Carolina +37089,37,nc,North Carolina +37091,37,nc,North Carolina +37093,37,nc,North Carolina +37097,37,nc,North Carolina +37099,37,nc,North Carolina +37101,37,nc,North Carolina +37103,37,nc,North Carolina +37105,37,nc,North Carolina +37107,37,nc,North Carolina +37109,37,nc,North Carolina +37111,37,nc,North Carolina +37113,37,nc,North Carolina +37115,37,nc,North Carolina +37117,37,nc,North Carolina +37119,37,nc,North Carolina +37121,37,nc,North Carolina +37123,37,nc,North Carolina +37125,37,nc,North Carolina +37127,37,nc,North Carolina +37129,37,nc,North Carolina +37131,37,nc,North Carolina +37133,37,nc,North Carolina +37135,37,nc,North Carolina +37137,37,nc,North Carolina +37139,37,nc,North Carolina +37141,37,nc,North Carolina +37143,37,nc,North Carolina +37145,37,nc,North Carolina +37147,37,nc,North Carolina +37149,37,nc,North Carolina +37151,37,nc,North Carolina +37153,37,nc,North Carolina +37155,37,nc,North Carolina +37157,37,nc,North Carolina +37159,37,nc,North Carolina +37161,37,nc,North Carolina +37163,37,nc,North Carolina +37165,37,nc,North Carolina +37167,37,nc,North Carolina +37169,37,nc,North Carolina +37171,37,nc,North Carolina +37173,37,nc,North Carolina +37175,37,nc,North Carolina +37179,37,nc,North Carolina +37181,37,nc,North Carolina +37183,37,nc,North Carolina +37185,37,nc,North Carolina +37189,37,nc,North Carolina +37191,37,nc,North Carolina +37193,37,nc,North Carolina +37195,37,nc,North Carolina +37197,37,nc,North Carolina +37199,37,nc,North Carolina +37g01,37,nc,North Carolina +37g02,37,nc,North Carolina +38000,38,nd,North Dakota +38053,38,nd,North Dakota +38g01,38,nd,North Dakota +38g02,38,nd,North Dakota +38g03,38,nd,North Dakota +38g04,38,nd,North Dakota +38g05,38,nd,North Dakota +38g06,38,nd,North Dakota +38g07,38,nd,North Dakota +38g08,38,nd,North Dakota +38g09,38,nd,North Dakota +38g10,38,nd,North Dakota +38g11,38,nd,North Dakota +38g12,38,nd,North Dakota +38g13,38,nd,North Dakota +38g14,38,nd,North Dakota +38g15,38,nd,North Dakota +38g16,38,nd,North Dakota +38g17,38,nd,North Dakota +39000,39,oh,Ohio +39001,39,oh,Ohio +39003,39,oh,Ohio +39005,39,oh,Ohio +39007,39,oh,Ohio +39009,39,oh,Ohio +39011,39,oh,Ohio +39013,39,oh,Ohio +39015,39,oh,Ohio +39017,39,oh,Ohio +39019,39,oh,Ohio +39021,39,oh,Ohio +39023,39,oh,Ohio +39025,39,oh,Ohio +39027,39,oh,Ohio +39029,39,oh,Ohio +39031,39,oh,Ohio +39033,39,oh,Ohio +39035,39,oh,Ohio +39037,39,oh,Ohio +39039,39,oh,Ohio +39041,39,oh,Ohio +39043,39,oh,Ohio +39045,39,oh,Ohio +39047,39,oh,Ohio +39049,39,oh,Ohio +39051,39,oh,Ohio +39053,39,oh,Ohio +39055,39,oh,Ohio +39057,39,oh,Ohio +39059,39,oh,Ohio +39061,39,oh,Ohio +39063,39,oh,Ohio +39065,39,oh,Ohio +39067,39,oh,Ohio +39069,39,oh,Ohio +39071,39,oh,Ohio +39073,39,oh,Ohio +39075,39,oh,Ohio +39077,39,oh,Ohio +39079,39,oh,Ohio +39081,39,oh,Ohio +39083,39,oh,Ohio +39085,39,oh,Ohio +39087,39,oh,Ohio +39089,39,oh,Ohio +39091,39,oh,Ohio +39093,39,oh,Ohio +39095,39,oh,Ohio +39097,39,oh,Ohio +39099,39,oh,Ohio +39101,39,oh,Ohio +39103,39,oh,Ohio +39105,39,oh,Ohio +39107,39,oh,Ohio +39109,39,oh,Ohio +39111,39,oh,Ohio +39113,39,oh,Ohio +39115,39,oh,Ohio +39117,39,oh,Ohio +39119,39,oh,Ohio +39121,39,oh,Ohio +39123,39,oh,Ohio +39125,39,oh,Ohio +39127,39,oh,Ohio +39129,39,oh,Ohio +39131,39,oh,Ohio +39133,39,oh,Ohio +39135,39,oh,Ohio +39137,39,oh,Ohio +39139,39,oh,Ohio +39141,39,oh,Ohio +39143,39,oh,Ohio +39145,39,oh,Ohio +39147,39,oh,Ohio +39149,39,oh,Ohio +39151,39,oh,Ohio +39153,39,oh,Ohio +39155,39,oh,Ohio +39157,39,oh,Ohio +39159,39,oh,Ohio +39161,39,oh,Ohio +39163,39,oh,Ohio +39165,39,oh,Ohio +39167,39,oh,Ohio +39169,39,oh,Ohio +39171,39,oh,Ohio +39173,39,oh,Ohio +39175,39,oh,Ohio +40000,40,ok,Oklahoma +40001,40,ok,Oklahoma +40013,40,ok,Oklahoma +40015,40,ok,Oklahoma +40017,40,ok,Oklahoma +40021,40,ok,Oklahoma +40023,40,ok,Oklahoma +40027,40,ok,Oklahoma +40035,40,ok,Oklahoma +40037,40,ok,Oklahoma +40041,40,ok,Oklahoma +40049,40,ok,Oklahoma +40051,40,ok,Oklahoma +40061,40,ok,Oklahoma +40063,40,ok,Oklahoma +40069,40,ok,Oklahoma +40071,40,ok,Oklahoma +40077,40,ok,Oklahoma +40079,40,ok,Oklahoma +40081,40,ok,Oklahoma +40083,40,ok,Oklahoma +40087,40,ok,Oklahoma +40089,40,ok,Oklahoma +40091,40,ok,Oklahoma +40095,40,ok,Oklahoma +40097,40,ok,Oklahoma +40099,40,ok,Oklahoma +40101,40,ok,Oklahoma +40103,40,ok,Oklahoma +40105,40,ok,Oklahoma +40107,40,ok,Oklahoma +40109,40,ok,Oklahoma +40111,40,ok,Oklahoma +40113,40,ok,Oklahoma +40115,40,ok,Oklahoma +40117,40,ok,Oklahoma +40119,40,ok,Oklahoma +40121,40,ok,Oklahoma +40123,40,ok,Oklahoma +40125,40,ok,Oklahoma +40127,40,ok,Oklahoma +40131,40,ok,Oklahoma +40133,40,ok,Oklahoma +40135,40,ok,Oklahoma +40143,40,ok,Oklahoma +40145,40,ok,Oklahoma +40147,40,ok,Oklahoma +40153,40,ok,Oklahoma +40g01,40,ok,Oklahoma +40g02,40,ok,Oklahoma +40g03,40,ok,Oklahoma +40g04,40,ok,Oklahoma +40g05,40,ok,Oklahoma +40g06,40,ok,Oklahoma +40g07,40,ok,Oklahoma +40g08,40,ok,Oklahoma +40g09,40,ok,Oklahoma +40g10,40,ok,Oklahoma +40g11,40,ok,Oklahoma +40g12,40,ok,Oklahoma +40g13,40,ok,Oklahoma +41000,41,or,Oregon +41001,41,or,Oregon +41003,41,or,Oregon +41005,41,or,Oregon +41007,41,or,Oregon +41009,41,or,Oregon +41011,41,or,Oregon +41013,41,or,Oregon +41015,41,or,Oregon +41017,41,or,Oregon +41019,41,or,Oregon +41027,41,or,Oregon +41029,41,or,Oregon +41031,41,or,Oregon +41033,41,or,Oregon +41039,41,or,Oregon +41041,41,or,Oregon +41043,41,or,Oregon +41047,41,or,Oregon +41051,41,or,Oregon +41053,41,or,Oregon +41057,41,or,Oregon +41059,41,or,Oregon +41067,41,or,Oregon +41071,41,or,Oregon +41g01,41,or,Oregon +41g02,41,or,Oregon +41g03,41,or,Oregon +41g04,41,or,Oregon +41g05,41,or,Oregon +42000,42,pa,Pennsylvania +42001,42,pa,Pennsylvania +42003,42,pa,Pennsylvania +42005,42,pa,Pennsylvania +42007,42,pa,Pennsylvania +42009,42,pa,Pennsylvania +42011,42,pa,Pennsylvania +42013,42,pa,Pennsylvania +42017,42,pa,Pennsylvania +42019,42,pa,Pennsylvania +42021,42,pa,Pennsylvania +42025,42,pa,Pennsylvania +42027,42,pa,Pennsylvania +42029,42,pa,Pennsylvania +42031,42,pa,Pennsylvania +42033,42,pa,Pennsylvania +42035,42,pa,Pennsylvania +42037,42,pa,Pennsylvania +42039,42,pa,Pennsylvania +42041,42,pa,Pennsylvania +42043,42,pa,Pennsylvania +42045,42,pa,Pennsylvania +42047,42,pa,Pennsylvania +42049,42,pa,Pennsylvania +42051,42,pa,Pennsylvania +42055,42,pa,Pennsylvania +42057,42,pa,Pennsylvania +42059,42,pa,Pennsylvania +42061,42,pa,Pennsylvania +42063,42,pa,Pennsylvania +42065,42,pa,Pennsylvania +42067,42,pa,Pennsylvania +42069,42,pa,Pennsylvania +42071,42,pa,Pennsylvania +42073,42,pa,Pennsylvania +42075,42,pa,Pennsylvania +42077,42,pa,Pennsylvania +42079,42,pa,Pennsylvania +42081,42,pa,Pennsylvania +42083,42,pa,Pennsylvania +42085,42,pa,Pennsylvania +42087,42,pa,Pennsylvania +42089,42,pa,Pennsylvania +42091,42,pa,Pennsylvania +42093,42,pa,Pennsylvania +42095,42,pa,Pennsylvania +42097,42,pa,Pennsylvania +42099,42,pa,Pennsylvania +42101,42,pa,Pennsylvania +42103,42,pa,Pennsylvania +42107,42,pa,Pennsylvania +42109,42,pa,Pennsylvania +42111,42,pa,Pennsylvania +42115,42,pa,Pennsylvania +42117,42,pa,Pennsylvania +42119,42,pa,Pennsylvania +42121,42,pa,Pennsylvania +42125,42,pa,Pennsylvania +42127,42,pa,Pennsylvania +42129,42,pa,Pennsylvania +42131,42,pa,Pennsylvania +42133,42,pa,Pennsylvania +42g01,42,pa,Pennsylvania +42g02,42,pa,Pennsylvania +42g03,42,pa,Pennsylvania +44000,44,ri,Rhode Island +44001,44,ri,Rhode Island +44003,44,ri,Rhode Island +44005,44,ri,Rhode Island +44007,44,ri,Rhode Island +44009,44,ri,Rhode Island +45000,45,sc,South Carolina +45001,45,sc,South Carolina +45003,45,sc,South Carolina +45007,45,sc,South Carolina +45009,45,sc,South Carolina +45013,45,sc,South Carolina +45015,45,sc,South Carolina +45017,45,sc,South Carolina +45019,45,sc,South Carolina +45021,45,sc,South Carolina +45023,45,sc,South Carolina +45025,45,sc,South Carolina +45027,45,sc,South Carolina +45029,45,sc,South Carolina +45031,45,sc,South Carolina +45033,45,sc,South Carolina +45035,45,sc,South Carolina +45037,45,sc,South Carolina +45039,45,sc,South Carolina +45041,45,sc,South Carolina +45043,45,sc,South Carolina +45045,45,sc,South Carolina +45049,45,sc,South Carolina +45051,45,sc,South Carolina +45053,45,sc,South Carolina +45055,45,sc,South Carolina +45057,45,sc,South Carolina +45059,45,sc,South Carolina +45061,45,sc,South Carolina +45063,45,sc,South Carolina +45067,45,sc,South Carolina +45069,45,sc,South Carolina +45071,45,sc,South Carolina +45073,45,sc,South Carolina +45075,45,sc,South Carolina +45077,45,sc,South Carolina +45079,45,sc,South Carolina +45081,45,sc,South Carolina +45083,45,sc,South Carolina +45085,45,sc,South Carolina +45087,45,sc,South Carolina +45089,45,sc,South Carolina +45091,45,sc,South Carolina +45g01,45,sc,South Carolina +45g02,45,sc,South Carolina +46000,46,sd,South Dakota +46027,46,sd,South Dakota +46081,46,sd,South Dakota +46083,46,sd,South Dakota +46102,46,sd,South Dakota +46103,46,sd,South Dakota +46127,46,sd,South Dakota +46g01,46,sd,South Dakota +46g02,46,sd,South Dakota +46g03,46,sd,South Dakota +46g04,46,sd,South Dakota +46g05,46,sd,South Dakota +46g06,46,sd,South Dakota +46g07,46,sd,South Dakota +46g08,46,sd,South Dakota +46g09,46,sd,South Dakota +46g10,46,sd,South Dakota +46g11,46,sd,South Dakota +46g12,46,sd,South Dakota +46g13,46,sd,South Dakota +46g14,46,sd,South Dakota +46g15,46,sd,South Dakota +46g16,46,sd,South Dakota +46g17,46,sd,South Dakota +46g18,46,sd,South Dakota +46g19,46,sd,South Dakota +46g20,46,sd,South Dakota +46g21,46,sd,South Dakota +47000,47,tn,Tennessee +47001,47,tn,Tennessee +47005,47,tn,Tennessee +47007,47,tn,Tennessee +47009,47,tn,Tennessee +47011,47,tn,Tennessee +47013,47,tn,Tennessee +47015,47,tn,Tennessee +47017,47,tn,Tennessee +47019,47,tn,Tennessee +47021,47,tn,Tennessee +47023,47,tn,Tennessee +47025,47,tn,Tennessee +47029,47,tn,Tennessee +47031,47,tn,Tennessee +47033,47,tn,Tennessee +47035,47,tn,Tennessee +47037,47,tn,Tennessee +47041,47,tn,Tennessee +47043,47,tn,Tennessee +47047,47,tn,Tennessee +47051,47,tn,Tennessee +47053,47,tn,Tennessee +47055,47,tn,Tennessee +47057,47,tn,Tennessee +47059,47,tn,Tennessee +47061,47,tn,Tennessee +47063,47,tn,Tennessee +47065,47,tn,Tennessee +47069,47,tn,Tennessee +47071,47,tn,Tennessee +47075,47,tn,Tennessee +47077,47,tn,Tennessee +47079,47,tn,Tennessee +47081,47,tn,Tennessee +47085,47,tn,Tennessee +47089,47,tn,Tennessee +47091,47,tn,Tennessee +47093,47,tn,Tennessee +47097,47,tn,Tennessee +47099,47,tn,Tennessee +47101,47,tn,Tennessee +47103,47,tn,Tennessee +47105,47,tn,Tennessee +47107,47,tn,Tennessee +47109,47,tn,Tennessee +47113,47,tn,Tennessee +47115,47,tn,Tennessee +47117,47,tn,Tennessee +47119,47,tn,Tennessee +47121,47,tn,Tennessee +47123,47,tn,Tennessee +47125,47,tn,Tennessee +47129,47,tn,Tennessee +47131,47,tn,Tennessee +47133,47,tn,Tennessee +47139,47,tn,Tennessee +47141,47,tn,Tennessee +47143,47,tn,Tennessee +47145,47,tn,Tennessee +47147,47,tn,Tennessee +47149,47,tn,Tennessee +47151,47,tn,Tennessee +47153,47,tn,Tennessee +47155,47,tn,Tennessee +47157,47,tn,Tennessee +47159,47,tn,Tennessee +47163,47,tn,Tennessee +47165,47,tn,Tennessee +47167,47,tn,Tennessee +47171,47,tn,Tennessee +47173,47,tn,Tennessee +47177,47,tn,Tennessee +47179,47,tn,Tennessee +47181,47,tn,Tennessee +47183,47,tn,Tennessee +47187,47,tn,Tennessee +47189,47,tn,Tennessee +47g01,47,tn,Tennessee +47g02,47,tn,Tennessee +47g03,47,tn,Tennessee +47g04,47,tn,Tennessee +47g05,47,tn,Tennessee +47g06,47,tn,Tennessee +47g07,47,tn,Tennessee +47g08,47,tn,Tennessee +47g09,47,tn,Tennessee +48000,48,tx,Texas +48001,48,tx,Texas +48003,48,tx,Texas +48005,48,tx,Texas +48013,48,tx,Texas +48015,48,tx,Texas +48019,48,tx,Texas +48021,48,tx,Texas +48027,48,tx,Texas +48029,48,tx,Texas +48031,48,tx,Texas +48035,48,tx,Texas +48037,48,tx,Texas +48039,48,tx,Texas +48041,48,tx,Texas +48051,48,tx,Texas +48053,48,tx,Texas +48055,48,tx,Texas +48057,48,tx,Texas +48061,48,tx,Texas +48063,48,tx,Texas +48067,48,tx,Texas +48071,48,tx,Texas +48073,48,tx,Texas +48077,48,tx,Texas +48085,48,tx,Texas +48089,48,tx,Texas +48091,48,tx,Texas +48093,48,tx,Texas +48097,48,tx,Texas +48113,48,tx,Texas +48121,48,tx,Texas +48123,48,tx,Texas +48127,48,tx,Texas +48131,48,tx,Texas +48139,48,tx,Texas +48143,48,tx,Texas +48145,48,tx,Texas +48147,48,tx,Texas +48149,48,tx,Texas +48157,48,tx,Texas +48159,48,tx,Texas +48161,48,tx,Texas +48167,48,tx,Texas +48171,48,tx,Texas +48177,48,tx,Texas +48181,48,tx,Texas +48183,48,tx,Texas +48185,48,tx,Texas +48187,48,tx,Texas +48189,48,tx,Texas +48199,48,tx,Texas +48201,48,tx,Texas +48203,48,tx,Texas +48209,48,tx,Texas +48213,48,tx,Texas +48215,48,tx,Texas +48217,48,tx,Texas +48219,48,tx,Texas +48225,48,tx,Texas +48231,48,tx,Texas +48239,48,tx,Texas +48241,48,tx,Texas +48245,48,tx,Texas +48249,48,tx,Texas +48251,48,tx,Texas +48255,48,tx,Texas +48257,48,tx,Texas +48259,48,tx,Texas +48273,48,tx,Texas +48277,48,tx,Texas +48281,48,tx,Texas +48285,48,tx,Texas +48287,48,tx,Texas +48289,48,tx,Texas +48291,48,tx,Texas +48293,48,tx,Texas +48299,48,tx,Texas +48309,48,tx,Texas +48313,48,tx,Texas +48315,48,tx,Texas +48321,48,tx,Texas +48325,48,tx,Texas +48329,48,tx,Texas +48331,48,tx,Texas +48337,48,tx,Texas +48339,48,tx,Texas +48343,48,tx,Texas +48347,48,tx,Texas +48349,48,tx,Texas +48351,48,tx,Texas +48355,48,tx,Texas +48361,48,tx,Texas +48365,48,tx,Texas +48367,48,tx,Texas +48373,48,tx,Texas +48375,48,tx,Texas +48379,48,tx,Texas +48387,48,tx,Texas +48395,48,tx,Texas +48397,48,tx,Texas +48399,48,tx,Texas +48401,48,tx,Texas +48407,48,tx,Texas +48409,48,tx,Texas +48419,48,tx,Texas +48423,48,tx,Texas +48427,48,tx,Texas +48439,48,tx,Texas +48441,48,tx,Texas +48445,48,tx,Texas +48449,48,tx,Texas +48453,48,tx,Texas +48455,48,tx,Texas +48457,48,tx,Texas +48459,48,tx,Texas +48465,48,tx,Texas +48467,48,tx,Texas +48469,48,tx,Texas +48471,48,tx,Texas +48473,48,tx,Texas +48477,48,tx,Texas +48479,48,tx,Texas +48481,48,tx,Texas +48487,48,tx,Texas +48491,48,tx,Texas +48493,48,tx,Texas +48497,48,tx,Texas +48499,48,tx,Texas +48503,48,tx,Texas +48505,48,tx,Texas +48507,48,tx,Texas +48g01,48,tx,Texas +48g02,48,tx,Texas +48g03,48,tx,Texas +48g04,48,tx,Texas +48g05,48,tx,Texas +48g06,48,tx,Texas +48g07,48,tx,Texas +48g08,48,tx,Texas +48g09,48,tx,Texas +48g10,48,tx,Texas +48g11,48,tx,Texas +48g12,48,tx,Texas +48g13,48,tx,Texas +48g14,48,tx,Texas +48g15,48,tx,Texas +48g16,48,tx,Texas +48g17,48,tx,Texas +48g18,48,tx,Texas +48g19,48,tx,Texas +48g20,48,tx,Texas +48g21,48,tx,Texas +48g22,48,tx,Texas +48g23,48,tx,Texas +48g24,48,tx,Texas +48g25,48,tx,Texas +48g26,48,tx,Texas +48g27,48,tx,Texas +48g28,48,tx,Texas +48g29,48,tx,Texas +48g30,48,tx,Texas +48g31,48,tx,Texas +48g32,48,tx,Texas +48g33,48,tx,Texas +48g34,48,tx,Texas +48g35,48,tx,Texas +48g36,48,tx,Texas +48g37,48,tx,Texas +48g38,48,tx,Texas +48g39,48,tx,Texas +48g40,48,tx,Texas +48g41,48,tx,Texas +48g42,48,tx,Texas +48g43,48,tx,Texas +48g44,48,tx,Texas +48g45,48,tx,Texas +48g46,48,tx,Texas +48g47,48,tx,Texas +48g48,48,tx,Texas +49000,49,ut,Utah +49003,49,ut,Utah +49007,49,ut,Utah +49011,49,ut,Utah +49013,49,ut,Utah +49023,49,ut,Utah +49027,49,ut,Utah +49029,49,ut,Utah +49035,49,ut,Utah +49037,49,ut,Utah +49039,49,ut,Utah +49043,49,ut,Utah +49045,49,ut,Utah +49049,49,ut,Utah +49051,49,ut,Utah +49053,49,ut,Utah +49057,49,ut,Utah +49g01,49,ut,Utah +49g02,49,ut,Utah +49g03,49,ut,Utah +49g04,49,ut,Utah +49g05,49,ut,Utah +50000,50,vt,Vermont +50001,50,vt,Vermont +50003,50,vt,Vermont +50007,50,vt,Vermont +50015,50,vt,Vermont +50017,50,vt,Vermont +50019,50,vt,Vermont +50021,50,vt,Vermont +50023,50,vt,Vermont +50025,50,vt,Vermont +50027,50,vt,Vermont +50g01,50,vt,Vermont +50g02,50,vt,Vermont +51000,51,va,Virginia +51001,51,va,Virginia +51003,51,va,Virginia +51005,51,va,Virginia +51007,51,va,Virginia +51009,51,va,Virginia +51011,51,va,Virginia +51013,51,va,Virginia +51015,51,va,Virginia +51019,51,va,Virginia +51023,51,va,Virginia +51025,51,va,Virginia +51027,51,va,Virginia +51031,51,va,Virginia +51033,51,va,Virginia +51035,51,va,Virginia +51037,51,va,Virginia +51041,51,va,Virginia +51043,51,va,Virginia +51047,51,va,Virginia +51051,51,va,Virginia +51053,51,va,Virginia +51057,51,va,Virginia +51059,51,va,Virginia +51061,51,va,Virginia +51063,51,va,Virginia +51065,51,va,Virginia +51067,51,va,Virginia +51069,51,va,Virginia +51071,51,va,Virginia +51075,51,va,Virginia +51077,51,va,Virginia +51079,51,va,Virginia +51081,51,va,Virginia +51083,51,va,Virginia +51085,51,va,Virginia +51087,51,va,Virginia +51089,51,va,Virginia +51093,51,va,Virginia +51099,51,va,Virginia +51103,51,va,Virginia +51105,51,va,Virginia +51107,51,va,Virginia +51109,51,va,Virginia +51111,51,va,Virginia +51113,51,va,Virginia +51117,51,va,Virginia +51119,51,va,Virginia +51121,51,va,Virginia +51125,51,va,Virginia +51131,51,va,Virginia +51133,51,va,Virginia +51135,51,va,Virginia +51137,51,va,Virginia +51139,51,va,Virginia +51141,51,va,Virginia +51143,51,va,Virginia +51145,51,va,Virginia +51147,51,va,Virginia +51149,51,va,Virginia +51153,51,va,Virginia +51155,51,va,Virginia +51165,51,va,Virginia +51167,51,va,Virginia +51169,51,va,Virginia +51171,51,va,Virginia +51173,51,va,Virginia +51175,51,va,Virginia +51177,51,va,Virginia +51179,51,va,Virginia +51183,51,va,Virginia +51185,51,va,Virginia +51191,51,va,Virginia +51195,51,va,Virginia +51199,51,va,Virginia +51510,51,va,Virginia +51520,51,va,Virginia +51530,51,va,Virginia +51540,51,va,Virginia +51550,51,va,Virginia +51570,51,va,Virginia +51580,51,va,Virginia +51590,51,va,Virginia +51595,51,va,Virginia +51600,51,va,Virginia +51610,51,va,Virginia +51620,51,va,Virginia +51630,51,va,Virginia +51640,51,va,Virginia +51650,51,va,Virginia +51660,51,va,Virginia +51670,51,va,Virginia +51678,51,va,Virginia +51680,51,va,Virginia +51683,51,va,Virginia +51685,51,va,Virginia +51690,51,va,Virginia +51700,51,va,Virginia +51710,51,va,Virginia +51720,51,va,Virginia +51730,51,va,Virginia +51735,51,va,Virginia +51740,51,va,Virginia +51750,51,va,Virginia +51760,51,va,Virginia +51770,51,va,Virginia +51775,51,va,Virginia +51790,51,va,Virginia +51800,51,va,Virginia +51810,51,va,Virginia +51820,51,va,Virginia +51830,51,va,Virginia +51840,51,va,Virginia +51g01,51,va,Virginia +51g02,51,va,Virginia +51g03,51,va,Virginia +51g04,51,va,Virginia +51g05,51,va,Virginia +51g06,51,va,Virginia +51g07,51,va,Virginia +51g08,51,va,Virginia +51g09,51,va,Virginia +51g10,51,va,Virginia +53000,53,wa,Washington +53001,53,wa,Washington +53005,53,wa,Washington +53007,53,wa,Washington +53009,53,wa,Washington +53011,53,wa,Washington +53015,53,wa,Washington +53017,53,wa,Washington +53021,53,wa,Washington +53025,53,wa,Washington +53027,53,wa,Washington +53029,53,wa,Washington +53031,53,wa,Washington +53033,53,wa,Washington +53035,53,wa,Washington +53037,53,wa,Washington +53039,53,wa,Washington +53041,53,wa,Washington +53043,53,wa,Washington +53045,53,wa,Washington +53047,53,wa,Washington +53051,53,wa,Washington +53053,53,wa,Washington +53055,53,wa,Washington +53057,53,wa,Washington +53059,53,wa,Washington +53061,53,wa,Washington +53063,53,wa,Washington +53067,53,wa,Washington +53071,53,wa,Washington +53073,53,wa,Washington +53075,53,wa,Washington +53077,53,wa,Washington +53g01,53,wa,Washington +53g02,53,wa,Washington +53g03,53,wa,Washington +54000,54,wv,West Virginia +54001,54,wv,West Virginia +54003,54,wv,West Virginia +54005,54,wv,West Virginia +54009,54,wv,West Virginia +54011,54,wv,West Virginia +54019,54,wv,West Virginia +54025,54,wv,West Virginia +54027,54,wv,West Virginia +54029,54,wv,West Virginia +54031,54,wv,West Virginia +54033,54,wv,West Virginia +54035,54,wv,West Virginia +54037,54,wv,West Virginia +54039,54,wv,West Virginia +54041,54,wv,West Virginia +54043,54,wv,West Virginia +54045,54,wv,West Virginia +54047,54,wv,West Virginia +54049,54,wv,West Virginia +54051,54,wv,West Virginia +54053,54,wv,West Virginia +54055,54,wv,West Virginia +54057,54,wv,West Virginia +54059,54,wv,West Virginia +54061,54,wv,West Virginia +54063,54,wv,West Virginia +54065,54,wv,West Virginia +54069,54,wv,West Virginia +54077,54,wv,West Virginia +54079,54,wv,West Virginia +54081,54,wv,West Virginia +54083,54,wv,West Virginia +54089,54,wv,West Virginia +54091,54,wv,West Virginia +54097,54,wv,West Virginia +54099,54,wv,West Virginia +54103,54,wv,West Virginia +54109,54,wv,West Virginia +54g01,54,wv,West Virginia +54g02,54,wv,West Virginia +54g03,54,wv,West Virginia +54g04,54,wv,West Virginia +54g05,54,wv,West Virginia +54g06,54,wv,West Virginia +54g07,54,wv,West Virginia +54g08,54,wv,West Virginia +55000,55,wi,Wisconsin +55001,55,wi,Wisconsin +55005,55,wi,Wisconsin +55007,55,wi,Wisconsin +55009,55,wi,Wisconsin +55013,55,wi,Wisconsin +55015,55,wi,Wisconsin +55017,55,wi,Wisconsin +55019,55,wi,Wisconsin +55021,55,wi,Wisconsin +55023,55,wi,Wisconsin +55025,55,wi,Wisconsin +55027,55,wi,Wisconsin +55029,55,wi,Wisconsin +55031,55,wi,Wisconsin +55033,55,wi,Wisconsin +55035,55,wi,Wisconsin +55039,55,wi,Wisconsin +55043,55,wi,Wisconsin +55045,55,wi,Wisconsin +55047,55,wi,Wisconsin +55049,55,wi,Wisconsin +55053,55,wi,Wisconsin +55055,55,wi,Wisconsin +55057,55,wi,Wisconsin +55059,55,wi,Wisconsin +55061,55,wi,Wisconsin +55063,55,wi,Wisconsin +55065,55,wi,Wisconsin +55067,55,wi,Wisconsin +55069,55,wi,Wisconsin +55071,55,wi,Wisconsin +55073,55,wi,Wisconsin +55075,55,wi,Wisconsin +55077,55,wi,Wisconsin +55079,55,wi,Wisconsin +55081,55,wi,Wisconsin +55083,55,wi,Wisconsin +55085,55,wi,Wisconsin +55087,55,wi,Wisconsin +55089,55,wi,Wisconsin +55093,55,wi,Wisconsin +55095,55,wi,Wisconsin +55097,55,wi,Wisconsin +55099,55,wi,Wisconsin +55101,55,wi,Wisconsin +55103,55,wi,Wisconsin +55105,55,wi,Wisconsin +55107,55,wi,Wisconsin +55109,55,wi,Wisconsin +55111,55,wi,Wisconsin +55113,55,wi,Wisconsin +55117,55,wi,Wisconsin +55119,55,wi,Wisconsin +55121,55,wi,Wisconsin +55123,55,wi,Wisconsin +55125,55,wi,Wisconsin +55127,55,wi,Wisconsin +55129,55,wi,Wisconsin +55131,55,wi,Wisconsin +55133,55,wi,Wisconsin +55135,55,wi,Wisconsin +55137,55,wi,Wisconsin +55139,55,wi,Wisconsin +55141,55,wi,Wisconsin +55g01,55,wi,Wisconsin +55g02,55,wi,Wisconsin +55g03,55,wi,Wisconsin +55g04,55,wi,Wisconsin +56000,56,wy,Wyoming +56001,56,wy,Wyoming +56005,56,wy,Wyoming +56007,56,wy,Wyoming +56009,56,wy,Wyoming +56021,56,wy,Wyoming +56025,56,wy,Wyoming +56029,56,wy,Wyoming +56037,56,wy,Wyoming +56039,56,wy,Wyoming +56041,56,wy,Wyoming +56g01,56,wy,Wyoming +56g02,56,wy,Wyoming +56g03,56,wy,Wyoming +56g04,56,wy,Wyoming +56g05,56,wy,Wyoming +56g06,56,wy,Wyoming +60000,60,as,American Samoa +60010,60,as,American Samoa +60020,60,as,American Samoa +60030,60,as,American Samoa +60040,60,as,American Samoa +60050,60,as,American Samoa +66000,66,gu,Guam +66010,66,gu,Guam +69000,69,mp,Northern Mariana Islands +69085,69,mp,Northern Mariana Islands +69100,69,mp,Northern Mariana Islands +69110,69,mp,Northern Mariana Islands +69120,69,mp,Northern Mariana Islands +70000,70,pw,Republic of Palau +70002,70,pw,Republic of Palau +70003,70,pw,Republic of Palau +72000,72,pr,Puerto Rico +72001,72,pr,Puerto Rico +72003,72,pr,Puerto Rico +72005,72,pr,Puerto Rico +72007,72,pr,Puerto Rico +72009,72,pr,Puerto Rico +72011,72,pr,Puerto Rico +72013,72,pr,Puerto Rico +72015,72,pr,Puerto Rico +72017,72,pr,Puerto Rico +72019,72,pr,Puerto Rico +72021,72,pr,Puerto Rico +72023,72,pr,Puerto Rico +72025,72,pr,Puerto Rico +72027,72,pr,Puerto Rico +72029,72,pr,Puerto Rico +72031,72,pr,Puerto Rico +72033,72,pr,Puerto Rico +72035,72,pr,Puerto Rico +72037,72,pr,Puerto Rico +72039,72,pr,Puerto Rico +72041,72,pr,Puerto Rico +72043,72,pr,Puerto Rico +72045,72,pr,Puerto Rico +72047,72,pr,Puerto Rico +72049,72,pr,Puerto Rico +72051,72,pr,Puerto Rico +72053,72,pr,Puerto Rico +72054,72,pr,Puerto Rico +72055,72,pr,Puerto Rico +72057,72,pr,Puerto Rico +72059,72,pr,Puerto Rico +72061,72,pr,Puerto Rico +72063,72,pr,Puerto Rico +72065,72,pr,Puerto Rico +72067,72,pr,Puerto Rico +72069,72,pr,Puerto Rico +72071,72,pr,Puerto Rico +72073,72,pr,Puerto Rico +72075,72,pr,Puerto Rico +72077,72,pr,Puerto Rico +72079,72,pr,Puerto Rico +72081,72,pr,Puerto Rico +72083,72,pr,Puerto Rico +72085,72,pr,Puerto Rico +72087,72,pr,Puerto Rico +72089,72,pr,Puerto Rico +72091,72,pr,Puerto Rico +72093,72,pr,Puerto Rico +72095,72,pr,Puerto Rico +72097,72,pr,Puerto Rico +72099,72,pr,Puerto Rico +72101,72,pr,Puerto Rico +72103,72,pr,Puerto Rico +72105,72,pr,Puerto Rico +72107,72,pr,Puerto Rico +72109,72,pr,Puerto Rico +72111,72,pr,Puerto Rico +72113,72,pr,Puerto Rico +72115,72,pr,Puerto Rico +72117,72,pr,Puerto Rico +72119,72,pr,Puerto Rico +72121,72,pr,Puerto Rico +72123,72,pr,Puerto Rico +72125,72,pr,Puerto Rico +72127,72,pr,Puerto Rico +72129,72,pr,Puerto Rico +72131,72,pr,Puerto Rico +72133,72,pr,Puerto Rico +72135,72,pr,Puerto Rico +72137,72,pr,Puerto Rico +72139,72,pr,Puerto Rico +72141,72,pr,Puerto Rico +72143,72,pr,Puerto Rico +72145,72,pr,Puerto Rico +72147,72,pr,Puerto Rico +72149,72,pr,Puerto Rico +72151,72,pr,Puerto Rico +72153,72,pr,Puerto Rico +78000,78,vi,U.S. Virgin Islands +78010,78,vi,U.S. Virgin Islands +78020,78,vi,U.S. Virgin Islands +78030,78,vi,U.S. Virgin Islands diff --git a/_delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv b/_delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv new file mode 100644 index 000000000..163934c78 --- /dev/null +++ b/_delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv @@ -0,0 +1,3294 @@ +fips,popsafe-fips +01000,01000 +01001,01001 +01003,01003 +01005,01005 +01007,01007 +01009,01009 +01011,01011 +01013,01013 +01015,01015 +01017,01017 +01019,01019 +01021,01021 +01023,01023 +01025,01025 +01027,01027 +01029,01029 +01031,01031 +01033,01033 +01035,01035 +01037,01037 +01039,01039 +01041,01041 +01043,01043 +01045,01045 +01047,01g02 +01049,01049 +01051,01051 +01053,01053 +01055,01055 +01057,01057 +01059,01059 +01061,01061 +01063,01g01 +01065,01g01 +01067,01067 +01069,01069 +01071,01071 +01073,01073 +01075,01075 +01077,01077 +01079,01079 +01081,01081 +01083,01083 +01085,01085 +01087,01087 +01089,01089 +01091,01091 +01093,01093 +01095,01095 +01097,01097 +01099,01099 +01101,01101 +01103,01103 +01105,01g02 +01107,01107 +01109,01109 +01111,01111 +01113,01113 +01115,01115 +01117,01117 +01119,01119 +01121,01121 +01123,01123 +01125,01125 +01127,01127 +01129,01129 +01131,01131 +01133,01133 +02000,02000 +02013,02013 +02016,02016 +02020,02020 +02050,02050 +02060,02060 +02063,02063 +02066,02066 +02068,02068 +02070,02070 +02090,02090 +02100,02100 +02105,02105 +02110,02110 +02122,02122 +02130,02130 +02150,02150 +02158,02158 +02164,02164 +02170,02170 +02180,02180 +02185,02185 +02188,02188 +02195,02195 +02198,02198 +02220,02220 +02230,02230 +02240,02240 +02275,02275 +02282,02282 +02290,02290 +04000,04000 +04001,04001 +04003,04003 +04005,04005 +04007,04007 +04009,04g01 +04011,04g01 +04012,04012 +04013,04013 +04015,04015 +04017,04017 +04019,04019 +04021,04021 +04023,04023 +04025,04025 +04027,04027 +05000,05000 +05001,05001 +05003,05003 +05005,05005 +05007,05007 +05009,05g08 +05011,05g01 +05013,05g01 +05015,05015 +05017,05017 +05019,05019 +05021,05021 +05023,05023 +05025,05g01 +05027,05027 +05029,05029 +05031,05031 +05033,05033 +05035,05035 +05037,05037 +05039,05g02 +05041,05041 +05043,05043 +05045,05045 +05047,05047 +05049,05049 +05051,05051 +05053,05g02 +05055,05055 +05057,05g07 +05059,05059 +05061,05061 +05063,05063 +05065,05065 +05067,05g10 +05069,05069 +05071,05071 +05073,05g03 +05075,05075 +05077,05g04 +05079,05079 +05081,05081 +05083,05083 +05085,05085 +05087,05087 +05089,05g09 +05091,05g03 +05093,05093 +05095,05g05 +05097,05g06 +05099,05g07 +05101,05g08 +05103,05103 +05105,05105 +05107,05107 +05109,05g06 +05111,05111 +05113,05113 +05115,05115 +05117,05g05 +05119,05119 +05121,05121 +05123,05g04 +05125,05125 +05127,05127 +05129,05g09 +05131,05131 +05133,05133 +05135,05135 +05137,05137 +05139,05139 +05141,05141 +05143,05143 +05145,05145 +05147,05g10 +05149,05149 +06000,06000 +06001,06001 +06003,06g01 +06005,06005 +06007,06007 +06009,06009 +06011,06011 +06013,06013 +06015,06015 +06017,06017 +06019,06019 +06021,06021 +06023,06023 +06025,06025 +06027,06027 +06029,06029 +06031,06031 +06033,06033 +06035,06g02 +06037,06037 +06039,06039 +06041,06041 +06043,06043 +06045,06045 +06047,06047 +06049,06g02 +06051,06051 +06053,06053 +06055,06055 +06057,06g03 +06059,06059 +06061,06061 +06063,06063 +06065,06065 +06067,06067 +06069,06069 +06071,06071 +06073,06073 +06075,06075 +06077,06077 +06079,06079 +06081,06081 +06083,06083 +06085,06085 +06087,06087 +06089,06089 +06091,06g03 +06093,06093 +06095,06095 +06097,06097 +06099,06099 +06101,06101 +06103,06103 +06105,06105 +06107,06107 +06109,06g01 +06111,06111 +06113,06113 +06115,06115 +08000,08000 +08001,08001 +08003,08g04 +08005,08005 +08007,08g12 +08009,08g01 +08011,08g01 +08013,08013 +08014,08014 +08015,08g10 +08017,08g02 +08019,08g03 +08021,08g15 +08023,08g04 +08025,08g05 +08027,08g06 +08029,08029 +08031,08031 +08033,08g07 +08035,08035 +08037,08037 +08039,08g11 +08041,08041 +08043,08g06 +08045,08g14 +08047,08g03 +08049,08g09 +08051,08051 +08053,08g07 +08055,08g08 +08057,08g09 +08059,08059 +08061,08g01 +08063,08g02 +08065,08g10 +08067,08067 +08069,08069 +08071,08071 +08073,08g11 +08075,08g13 +08077,08077 +08079,08g12 +08081,08081 +08083,08083 +08085,08g07 +08087,08g16 +08089,08g05 +08091,08g07 +08093,08093 +08095,08g13 +08097,08097 +08099,08g01 +08101,08g08 +08103,08g14 +08105,08g15 +08107,08107 +08109,08g15 +08111,08g07 +08113,08g07 +08115,08g13 +08117,08117 +08119,08119 +08121,08g16 +08123,08123 +08125,08g02 +09000,09000 +09001,09001 +09003,09003 +09005,09005 +09007,09007 +09009,09009 +09011,09011 +09013,09013 +09015,09015 +10000,10000 +10001,10001 +10003,10003 +10005,10005 +11000,11000 +11001,11001 +12000,12000 +12001,12001 +12003,12003 +12005,12005 +12007,12007 +12009,12009 +12011,12011 +12013,12013 +12015,12015 +12017,12017 +12019,12019 +12021,12021 +12023,12023 +12027,12027 +12029,12029 +12031,12031 +12033,12033 +12035,12035 +12037,12g02 +12039,12039 +12041,12041 +12043,12043 +12045,12045 +12047,12047 +12049,12049 +12051,12051 +12053,12053 +12055,12055 +12057,12057 +12059,12059 +12061,12061 +12063,12063 +12065,12065 +12067,12g01 +12069,12069 +12071,12071 +12073,12073 +12075,12075 +12077,12g02 +12079,12079 +12081,12081 +12083,12083 +12085,12085 +12086,12086 +12087,12087 +12089,12089 +12091,12091 +12093,12093 +12095,12095 +12097,12097 +12099,12099 +12101,12101 +12103,12103 +12105,12105 +12107,12107 +12109,12109 +12111,12111 +12113,12113 +12115,12115 +12117,12117 +12119,12119 +12121,12g01 +12123,12123 +12125,12125 +12127,12127 +12129,12129 +12131,12131 +12133,12133 +13000,13000 +13001,13001 +13003,13g01 +13005,13005 +13007,13g02 +13009,13g24 +13011,13011 +13013,13013 +13015,13015 +13017,13g06 +13019,13019 +13021,13021 +13023,13g21 +13025,13025 +13027,13027 +13029,13029 +13031,13031 +13033,13g07 +13035,13035 +13037,13g03 +13039,13039 +13043,13043 +13045,13045 +13047,13047 +13049,13049 +13051,13051 +13053,13g14 +13055,13055 +13057,13057 +13059,13059 +13061,13g03 +13063,13063 +13065,13g04 +13067,13067 +13069,13g01 +13071,13071 +13073,13073 +13075,13075 +13077,13077 +13079,13079 +13081,13g20 +13083,13083 +13085,13085 +13087,13g13 +13089,13089 +13091,13091 +13093,13093 +13095,13095 +13097,13097 +13099,13g11 +13101,13g04 +13103,13103 +13105,13105 +13107,13g19 +13109,13109 +13111,13111 +13113,13113 +13115,13115 +13117,13117 +13119,13119 +13121,13121 +13123,13123 +13125,13g05 +13127,13127 +13129,13129 +13131,13131 +13133,13g16 +13135,13135 +13137,13137 +13139,13139 +13141,13g24 +13143,13143 +13145,13145 +13147,13147 +13149,13149 +13151,13151 +13153,13153 +13155,13g06 +13157,13157 +13159,13159 +13161,13161 +13163,13163 +13165,13g07 +13167,13g08 +13169,13169 +13171,13171 +13173,13173 +13175,13175 +13177,13g18 +13179,13179 +13181,13g09 +13183,13183 +13185,13185 +13187,13187 +13189,13g05 +13191,13191 +13193,13g17 +13195,13195 +13197,13g10 +13199,13199 +13201,13g11 +13205,13g02 +13207,13207 +13209,13g12 +13211,13211 +13213,13213 +13215,13215 +13217,13217 +13219,13219 +13221,13221 +13223,13223 +13225,13225 +13227,13227 +13229,13229 +13231,13231 +13233,13233 +13235,13g23 +13237,13237 +13239,13g03 +13241,13241 +13243,13g03 +13245,13245 +13247,13247 +13249,13g10 +13251,13251 +13253,13g13 +13255,13255 +13257,13257 +13259,13g14 +13261,13261 +13263,13g15 +13265,13g16 +13267,13267 +13269,13g17 +13271,13g22 +13273,13g18 +13275,13275 +13277,13277 +13279,13g12 +13281,13281 +13283,13g19 +13285,13285 +13287,13g20 +13289,13g21 +13291,13291 +13293,13g15 +13295,13295 +13297,13297 +13299,13299 +13301,13g05 +13303,13g08 +13305,13305 +13307,13g14 +13309,13g22 +13311,13311 +13313,13313 +13315,13g23 +13317,13g09 +13319,13g24 +13321,13321 +15000,15000 +15001,15001 +15003,15003 +15005,15005 +15007,15007 +15009,15009 +16000,16000 +16001,16001 +16003,16g01 +16005,16005 +16007,16g05 +16009,16g02 +16011,16011 +16013,16013 +16015,16g03 +16017,16017 +16019,16019 +16021,16021 +16023,16g06 +16025,16g04 +16027,16027 +16029,16g05 +16031,16031 +16033,16g06 +16035,16g07 +16037,16g08 +16039,16039 +16041,16g05 +16043,16043 +16045,16g03 +16047,16g04 +16049,16049 +16051,16g06 +16053,16g10 +16055,16055 +16057,16g02 +16059,16g08 +16061,16g09 +16063,16g10 +16065,16065 +16067,16067 +16069,16g09 +16071,16g11 +16073,16073 +16075,16075 +16077,16g11 +16079,16g07 +16081,16081 +16083,16083 +16085,16085 +16087,16g01 +17000,17000 +17001,17001 +17003,17g01 +17005,17005 +17007,17007 +17009,17g02 +17011,17011 +17013,17g03 +17015,17015 +17017,17017 +17019,17019 +17021,17021 +17023,17023 +17025,17025 +17027,17027 +17029,17029 +17031,17031 +17033,17033 +17035,17g08 +17037,17037 +17039,17039 +17041,17041 +17043,17043 +17045,17045 +17047,17g04 +17049,17049 +17051,17051 +17053,17053 +17055,17055 +17057,17057 +17059,17g05 +17061,17061 +17063,17063 +17065,17g06 +17067,17067 +17069,17g05 +17071,17g07 +17073,17073 +17075,17075 +17077,17077 +17079,17g08 +17081,17081 +17083,17g03 +17085,17085 +17087,17087 +17089,17089 +17091,17091 +17093,17093 +17095,17095 +17097,17097 +17099,17099 +17101,17101 +17103,17103 +17105,17105 +17107,17107 +17109,17109 +17111,17111 +17113,17113 +17115,17115 +17117,17117 +17119,17119 +17121,17121 +17123,17g10 +17125,17125 +17127,17g09 +17129,17129 +17131,17131 +17133,17133 +17135,17135 +17137,17g11 +17139,17139 +17141,17141 +17143,17g12 +17145,17145 +17147,17147 +17149,17149 +17151,17g09 +17153,17g01 +17155,17g10 +17157,17157 +17159,17159 +17161,17161 +17163,17163 +17165,17g05 +17167,17167 +17169,17g02 +17171,17g11 +17173,17173 +17175,17g12 +17177,17177 +17179,17179 +17181,17181 +17183,17183 +17185,17g04 +17187,17g07 +17189,17189 +17191,17191 +17193,17g06 +17195,17195 +17197,17197 +17199,17199 +17201,17201 +17203,17203 +18000,18000 +18001,18001 +18003,18003 +18005,18005 +18007,18g01 +18009,18009 +18011,18011 +18013,18013 +18015,18015 +18017,18017 +18019,18019 +18021,18021 +18023,18023 +18025,18025 +18027,18027 +18029,18029 +18031,18031 +18033,18033 +18035,18035 +18037,18037 +18039,18039 +18041,18g03 +18043,18043 +18045,18045 +18047,18047 +18049,18049 +18051,18051 +18053,18053 +18055,18055 +18057,18057 +18059,18059 +18061,18061 +18063,18063 +18065,18065 +18067,18067 +18069,18069 +18071,18071 +18073,18073 +18075,18075 +18077,18077 +18079,18079 +18081,18081 +18083,18083 +18085,18085 +18087,18087 +18089,18089 +18091,18091 +18093,18093 +18095,18095 +18097,18097 +18099,18099 +18101,18101 +18103,18103 +18105,18105 +18107,18107 +18109,18109 +18111,18111 +18113,18113 +18115,18g02 +18117,18117 +18119,18119 +18121,18121 +18123,18123 +18125,18125 +18127,18127 +18129,18129 +18131,18131 +18133,18133 +18135,18135 +18137,18137 +18139,18139 +18141,18141 +18143,18143 +18145,18145 +18147,18147 +18149,18149 +18151,18151 +18153,18153 +18155,18g02 +18157,18157 +18159,18159 +18161,18g03 +18163,18163 +18165,18165 +18167,18167 +18169,18169 +18171,18g01 +18173,18173 +18175,18175 +18177,18177 +18179,18179 +18181,18181 +18183,18183 +19000,19000 +19001,19g01 +19003,19g02 +19005,19005 +19007,19g14 +19009,19g03 +19011,19011 +19013,19013 +19015,19015 +19017,19017 +19019,19019 +19021,19021 +19023,19023 +19025,19g04 +19027,19027 +19029,19g03 +19031,19031 +19033,19g18 +19035,19g11 +19037,19g09 +19039,19g05 +19041,19041 +19043,19043 +19045,19045 +19047,19047 +19049,19049 +19051,19g06 +19053,19g05 +19055,19055 +19057,19057 +19059,19059 +19061,19061 +19063,19g07 +19065,19065 +19067,19067 +19069,19069 +19071,19g08 +19073,19g10 +19075,19075 +19077,19g01 +19079,19079 +19081,19081 +19083,19083 +19085,19085 +19087,19087 +19089,19g09 +19091,19g10 +19093,19g11 +19095,19095 +19097,19097 +19099,19099 +19101,19g17 +19103,19103 +19105,19105 +19107,19107 +19109,19109 +19111,19111 +19113,19113 +19115,19115 +19117,19g12 +19119,19119 +19121,19121 +19123,19123 +19125,19125 +19127,19127 +19129,19g08 +19131,19131 +19133,19g13 +19135,19g14 +19137,19137 +19139,19139 +19141,19g15 +19143,19g15 +19145,19145 +19147,19g07 +19149,19149 +19151,19g04 +19153,19153 +19155,19155 +19157,19157 +19159,19g16 +19161,19161 +19163,19163 +19165,19165 +19167,19167 +19169,19169 +19171,19171 +19173,19g02 +19175,19g16 +19177,19g17 +19179,19g06 +19181,19181 +19183,19183 +19185,19g12 +19187,19g10 +19189,19189 +19191,19191 +19193,19g13 +19195,19g18 +19197,19197 +20000,20000 +20001,20g01 +20003,20g01 +20005,20g06 +20007,20g24 +20009,20g22 +20011,20011 +20013,20g06 +20015,20015 +20017,20g02 +20019,20g27 +20021,20021 +20023,20g03 +20025,20g04 +20027,20g26 +20029,20g21 +20031,20g12 +20033,20g24 +20035,20035 +20037,20037 +20039,20g05 +20041,20041 +20043,20g06 +20045,20045 +20047,20g24 +20049,20g27 +20051,20g09 +20053,20g07 +20055,20g10 +20057,20g04 +20059,20059 +20061,20g02 +20063,20g08 +20065,20g09 +20067,20g18 +20069,20g10 +20071,20g11 +20073,20g12 +20075,20g11 +20077,20g13 +20079,20079 +20081,20g17 +20083,20g14 +20085,20085 +20087,20087 +20089,20g23 +20091,20091 +20093,20g11 +20095,20g13 +20097,20g24 +20099,20099 +20101,20g08 +20103,20103 +20105,20g07 +20107,20g15 +20109,20g08 +20111,20111 +20113,20113 +20115,20115 +20117,20g16 +20119,20g17 +20121,20g15 +20123,20g23 +20125,20g27 +20127,20g02 +20129,20g18 +20131,20131 +20133,20133 +20135,20g14 +20137,20g05 +20139,20139 +20141,20g23 +20143,20g21 +20145,20g14 +20147,20g19 +20149,20g16 +20151,20g24 +20153,20g20 +20155,20155 +20157,20g21 +20159,20g07 +20161,20g26 +20163,20g19 +20165,20g14 +20167,20g22 +20169,20169 +20171,20g08 +20173,20173 +20175,20g17 +20177,20g25 +20179,20g05 +20181,20g03 +20183,20g23 +20185,20g24 +20187,20g11 +20189,20g18 +20191,20191 +20193,20g20 +20195,20g09 +20197,20g25 +20199,20g03 +20201,20g26 +20203,20g11 +20205,20g27 +20207,20g12 +20209,20209 +21000,21000 +21001,21001 +21003,21003 +21005,21005 +21007,21g01 +21009,21009 +21011,21011 +21013,21013 +21015,21015 +21017,21g13 +21019,21019 +21021,21021 +21023,21g02 +21025,21025 +21027,21027 +21029,21029 +21031,21031 +21033,21g09 +21035,21035 +21037,21037 +21039,21g01 +21041,21g14 +21043,21g05 +21045,21045 +21047,21047 +21049,21049 +21051,21051 +21053,21g04 +21055,21g03 +21057,21g04 +21059,21g10 +21061,21061 +21063,21g05 +21065,21065 +21067,21067 +21069,21069 +21071,21071 +21073,21073 +21075,21g06 +21077,21g07 +21079,21079 +21081,21081 +21083,21083 +21085,21085 +21087,21g12 +21089,21089 +21091,21g10 +21093,21093 +21095,21095 +21097,21097 +21099,21099 +21101,21101 +21103,21103 +21105,21g06 +21107,21107 +21109,21109 +21111,21111 +21113,21113 +21115,21115 +21117,21117 +21119,21119 +21121,21121 +21123,21123 +21125,21125 +21127,21127 +21129,21g08 +21131,21131 +21133,21133 +21135,21135 +21137,21137 +21139,21g03 +21141,21141 +21143,21g09 +21145,21145 +21147,21147 +21149,21g10 +21151,21151 +21153,21153 +21155,21155 +21157,21157 +21159,21159 +21161,21161 +21163,21163 +21165,21g11 +21167,21167 +21169,21g12 +21171,21171 +21173,21173 +21175,21175 +21177,21177 +21179,21179 +21181,21g13 +21183,21183 +21185,21185 +21187,21g07 +21189,21g08 +21191,21191 +21193,21193 +21195,21195 +21197,21197 +21199,21199 +21201,21g02 +21203,21203 +21205,21205 +21207,21207 +21209,21209 +21211,21211 +21213,21213 +21215,21215 +21217,21217 +21219,21219 +21221,21221 +21223,21g14 +21225,21225 +21227,21227 +21229,21229 +21231,21231 +21233,21233 +21235,21235 +21237,21g11 +21239,21239 +22000,22000 +22001,22001 +22003,22003 +22005,22005 +22007,22007 +22009,22009 +22011,22011 +22013,22g04 +22015,22015 +22017,22017 +22019,22g02 +22021,22g01 +22023,22g02 +22025,22025 +22027,22027 +22029,22029 +22031,22031 +22033,22033 +22035,22g03 +22037,22037 +22039,22039 +22041,22g05 +22043,22043 +22045,22045 +22047,22047 +22049,22049 +22051,22051 +22053,22053 +22055,22055 +22057,22057 +22059,22059 +22061,22061 +22063,22063 +22065,22065 +22067,22067 +22069,22069 +22071,22071 +22073,22g01 +22075,22075 +22077,22077 +22079,22079 +22081,22g04 +22083,22083 +22085,22085 +22087,22087 +22089,22089 +22091,22091 +22093,22093 +22095,22095 +22097,22097 +22099,22099 +22101,22101 +22103,22103 +22105,22105 +22107,22g05 +22109,22109 +22111,22111 +22113,22113 +22115,22115 +22117,22117 +22119,22119 +22121,22121 +22123,22g03 +22125,22125 +22127,22127 +23000,23000 +23001,23001 +23003,23003 +23005,23005 +23007,23007 +23009,23009 +23011,23011 +23013,23013 +23015,23015 +23017,23017 +23019,23019 +23021,23021 +23023,23023 +23025,23025 +23027,23027 +23029,23029 +23031,23031 +24000,24000 +24001,24001 +24003,24003 +24005,24005 +24009,24009 +24011,24011 +24013,24013 +24015,24015 +24017,24017 +24019,24019 +24021,24021 +24023,24023 +24025,24025 +24027,24027 +24029,24029 +24031,24031 +24033,24033 +24035,24035 +24037,24037 +24039,24039 +24041,24041 +24043,24043 +24045,24045 +24047,24047 +24510,24510 +25000,25000 +25001,25001 +25003,25003 +25005,25005 +25007,25007 +25009,25009 +25011,25011 +25013,25013 +25015,25015 +25017,25017 +25019,25019 +25021,25021 +25023,25023 +25025,25025 +25027,25027 +26000,26000 +26001,26001 +26003,26g01 +26005,26005 +26007,26007 +26009,26009 +26011,26011 +26013,26g02 +26015,26015 +26017,26017 +26019,26019 +26021,26021 +26023,26023 +26025,26025 +26027,26027 +26029,26029 +26031,26031 +26033,26033 +26035,26035 +26037,26037 +26039,26039 +26041,26041 +26043,26043 +26045,26045 +26047,26047 +26049,26049 +26051,26051 +26053,26g05 +26055,26055 +26057,26057 +26059,26059 +26061,26g02 +26063,26063 +26065,26065 +26067,26067 +26069,26069 +26071,26071 +26073,26073 +26075,26075 +26077,26077 +26079,26079 +26081,26081 +26083,26g02 +26085,26085 +26087,26087 +26089,26089 +26091,26091 +26093,26093 +26095,26g03 +26097,26g03 +26099,26099 +26101,26101 +26103,26103 +26105,26105 +26107,26107 +26109,26109 +26111,26111 +26113,26113 +26115,26115 +26117,26117 +26119,26g04 +26121,26121 +26123,26123 +26125,26125 +26127,26127 +26129,26129 +26131,26g05 +26133,26133 +26135,26g04 +26137,26137 +26139,26139 +26141,26141 +26143,26143 +26145,26145 +26147,26147 +26149,26149 +26151,26151 +26153,26g01 +26155,26155 +26157,26157 +26159,26159 +26161,26161 +26163,26163 +26165,26165 +27000,27000 +27001,27001 +27003,27003 +27005,27005 +27007,27g06 +27009,27009 +27011,27g03 +27013,27013 +27015,27015 +27017,27017 +27019,27019 +27021,27021 +27023,27g10 +27025,27025 +27027,27g11 +27029,27g01 +27031,27g02 +27033,27033 +27035,27035 +27037,27037 +27039,27039 +27041,27041 +27043,27043 +27045,27045 +27047,27047 +27049,27049 +27051,27g03 +27053,27053 +27055,27055 +27057,27057 +27059,27059 +27061,27061 +27063,27063 +27065,27065 +27067,27067 +27069,27g04 +27071,27071 +27073,27g05 +27075,27g02 +27077,27g06 +27079,27079 +27081,27g07 +27083,27083 +27085,27085 +27087,27g01 +27089,27g04 +27091,27091 +27093,27093 +27095,27095 +27097,27097 +27099,27099 +27101,27g09 +27103,27103 +27105,27g09 +27107,27g11 +27109,27109 +27111,27111 +27113,27g08 +27115,27115 +27117,27g07 +27119,27119 +27121,27121 +27123,27123 +27125,27g08 +27127,27127 +27129,27129 +27131,27131 +27133,27g09 +27135,27135 +27137,27137 +27139,27139 +27141,27141 +27143,27143 +27145,27145 +27147,27147 +27149,27g03 +27151,27g10 +27153,27153 +27155,27g03 +27157,27157 +27159,27159 +27161,27161 +27163,27163 +27165,27165 +27167,27g11 +27169,27169 +27171,27171 +27173,27g05 +28000,28000 +28001,28g08 +28003,28003 +28005,28g04 +28007,28007 +28009,28g01 +28011,28011 +28013,28013 +28015,28015 +28017,28017 +28019,28g02 +28021,28g03 +28023,28023 +28025,28025 +28027,28g07 +28029,28029 +28031,28031 +28033,28033 +28035,28035 +28037,28g04 +28039,28039 +28041,28041 +28043,28043 +28045,28045 +28047,28047 +28049,28049 +28051,28051 +28053,28g05 +28055,28g05 +28057,28057 +28059,28059 +28061,28061 +28063,28g03 +28065,28065 +28067,28067 +28069,28g06 +28071,28071 +28073,28073 +28075,28g06 +28077,28077 +28079,28079 +28081,28081 +28083,28083 +28085,28085 +28087,28087 +28089,28089 +28091,28091 +28093,28093 +28095,28095 +28097,28097 +28099,28099 +28101,28101 +28103,28103 +28105,28105 +28107,28107 +28109,28109 +28111,28111 +28113,28113 +28115,28115 +28117,28117 +28119,28g07 +28121,28121 +28123,28123 +28125,28g05 +28127,28127 +28129,28129 +28131,28131 +28133,28133 +28135,28135 +28137,28137 +28139,28g01 +28141,28141 +28143,28143 +28145,28145 +28147,28147 +28149,28149 +28151,28151 +28153,28153 +28155,28g02 +28157,28g08 +28159,28159 +28161,28161 +28163,28g05 +29000,29000 +29001,29001 +29003,29003 +29005,29g01 +29007,29007 +29009,29009 +29011,29011 +29013,29013 +29015,29015 +29017,29017 +29019,29019 +29021,29021 +29023,29023 +29025,29g02 +29027,29027 +29029,29029 +29031,29031 +29033,29g03 +29035,29g04 +29037,29037 +29039,29g07 +29041,29g05 +29043,29043 +29045,29g06 +29047,29047 +29049,29049 +29051,29051 +29053,29053 +29055,29055 +29057,29g07 +29059,29059 +29061,29g08 +29063,29g09 +29065,29g19 +29067,29g15 +29069,29069 +29071,29071 +29073,29073 +29075,29g09 +29077,29077 +29079,29g13 +29081,29g08 +29083,29g18 +29085,29g10 +29087,29g01 +29089,29089 +29091,29091 +29093,29g17 +29095,29095 +29097,29097 +29099,29099 +29101,29101 +29103,29g11 +29105,29105 +29107,29107 +29109,29109 +29111,29g06 +29113,29113 +29115,29g05 +29117,29g03 +29119,29119 +29121,29121 +29123,29123 +29125,29g12 +29127,29127 +29129,29g13 +29131,29131 +29133,29133 +29135,29135 +29137,29g14 +29139,29139 +29141,29141 +29143,29143 +29145,29145 +29147,29g01 +29149,29149 +29151,29g12 +29153,29g15 +29155,29155 +29157,29157 +29159,29159 +29161,29161 +29163,29163 +29165,29165 +29167,29g10 +29169,29169 +29171,29g16 +29173,29173 +29175,29175 +29177,29g02 +29179,29g17 +29181,29g04 +29183,29183 +29185,29g18 +29186,29186 +29187,29187 +29189,29189 +29195,29195 +29197,29g11 +29199,29g11 +29201,29201 +29203,29g19 +29205,29g14 +29207,29207 +29209,29209 +29211,29g16 +29213,29213 +29215,29215 +29217,29217 +29219,29219 +29221,29221 +29223,29223 +29225,29225 +29227,29g09 +29229,29229 +29510,29510 +30000,30000 +30001,30g04 +30003,30003 +30005,30g01 +30007,30g02 +30009,30009 +30011,30g09 +30013,30g07 +30015,30g03 +30017,30g14 +30019,30g17 +30021,30g09 +30023,30g04 +30025,30g09 +30027,30g13 +30029,30029 +30031,30g10 +30033,30g16 +30035,30035 +30037,30g05 +30039,30g06 +30041,30g03 +30043,30g02 +30045,30g07 +30047,30047 +30049,30g15 +30051,30g08 +30053,30053 +30055,30g09 +30057,30g10 +30059,30g07 +30061,30g11 +30063,30063 +30065,30g12 +30067,30067 +30069,30g13 +30071,30g01 +30073,30g08 +30075,30g14 +30077,30g06 +30079,30g09 +30081,30081 +30083,30083 +30085,30g17 +30087,30g16 +30089,30g11 +30091,30g17 +30093,30g04 +30095,30g05 +30097,30g05 +30099,30g15 +30101,30g08 +30103,30g16 +30105,30g17 +30107,30g05 +30109,30g09 +30111,30g12 +31000,31000 +31001,31g24 +31003,31g01 +31005,31g06 +31007,31g21 +31009,31g02 +31011,31g01 +31013,31g20 +31015,31g02 +31017,31g02 +31019,31019 +31021,31g03 +31023,31g04 +31025,31025 +31027,31g05 +31029,31g06 +31031,31g07 +31033,31g15 +31035,31g08 +31037,31g04 +31039,31g09 +31041,31041 +31043,31043 +31045,31g20 +31047,31047 +31049,31g15 +31051,31g05 +31053,31053 +31055,31055 +31057,31g06 +31059,31g10 +31061,31g24 +31063,31g11 +31065,31g18 +31067,31067 +31069,31g15 +31071,31g02 +31073,31g18 +31075,31g06 +31077,31g23 +31079,31079 +31081,31g16 +31083,31g18 +31085,31g06 +31087,31g06 +31089,31g02 +31091,31g07 +31093,31g23 +31095,31g12 +31097,31g13 +31099,31g24 +31101,31g06 +31103,31g02 +31105,31g21 +31107,31g14 +31109,31109 +31111,31g07 +31113,31g07 +31115,31g02 +31117,31g07 +31119,31119 +31121,31g16 +31123,31g15 +31125,31g16 +31127,31g17 +31129,31g08 +31131,31g13 +31133,31g13 +31135,31g06 +31137,31g18 +31139,31g14 +31141,31141 +31143,31g19 +31145,31g11 +31147,31g17 +31149,31g02 +31151,31g12 +31153,31153 +31155,31155 +31157,31g21 +31159,31159 +31161,31g20 +31163,31g23 +31165,31g21 +31167,31g22 +31169,31g10 +31171,31g07 +31173,31g09 +31175,31g23 +31177,31g03 +31179,31g22 +31181,31g24 +31183,31g23 +31185,31g19 +32000,32000 +32001,32g03 +32003,32g02 +32005,32005 +32007,32g05 +32009,32g01 +32011,32g03 +32013,32013 +32015,32g03 +32017,32g02 +32019,32g01 +32021,32g01 +32023,32023 +32027,32g03 +32029,32g04 +32031,32031 +32033,32g05 +32510,32g04 +33000,33000 +33001,33001 +33003,33003 +33005,33005 +33007,33007 +33009,33009 +33011,33011 +33013,33013 +33015,33015 +33017,33017 +33019,33019 +34000,34000 +34001,34001 +34003,34003 +34005,34005 +34007,34007 +34009,34009 +34011,34011 +34013,34013 +34015,34015 +34017,34017 +34019,34019 +34021,34021 +34023,34023 +34025,34025 +34027,34027 +34029,34029 +34031,34031 +34033,34033 +34035,34035 +34037,34037 +34039,34039 +34041,34041 +35000,35000 +35001,35001 +35003,35g01 +35005,35005 +35006,35g01 +35007,35g02 +35009,35g05 +35011,35g04 +35013,35013 +35015,35015 +35017,35g03 +35019,35g04 +35021,35g02 +35023,35g03 +35025,35025 +35027,35027 +35028,35028 +35029,35029 +35031,35031 +35033,35g04 +35035,35035 +35037,35g05 +35039,35039 +35041,35041 +35043,35043 +35045,35045 +35047,35g04 +35049,35049 +35051,35051 +35053,35053 +35055,35055 +35057,35057 +35059,35g02 +35061,35061 +36000,36000 +36001,36001 +36003,36003 +36005,36005 +36007,36007 +36009,36009 +36011,36011 +36013,36013 +36015,36015 +36017,36017 +36019,36019 +36021,36021 +36023,36023 +36025,36025 +36027,36027 +36029,36029 +36031,36031 +36033,36033 +36035,36035 +36037,36037 +36039,36039 +36041,36g01 +36043,36g01 +36045,36045 +36047,36047 +36049,36049 +36051,36051 +36053,36053 +36055,36055 +36057,36057 +36059,36059 +36061,36061 +36063,36063 +36065,36065 +36067,36067 +36069,36069 +36071,36071 +36073,36073 +36075,36075 +36077,36077 +36079,36079 +36081,36081 +36083,36083 +36085,36085 +36087,36087 +36089,36089 +36091,36091 +36093,36093 +36095,36095 +36097,36097 +36099,36099 +36101,36101 +36103,36103 +36105,36105 +36107,36107 +36109,36109 +36111,36111 +36113,36113 +36115,36115 +36117,36117 +36119,36119 +36121,36121 +36123,36123 +37000,37000 +37001,37001 +37003,37003 +37005,37005 +37007,37007 +37009,37009 +37011,37011 +37013,37013 +37015,37015 +37017,37017 +37019,37019 +37021,37021 +37023,37023 +37025,37025 +37027,37027 +37029,37029 +37031,37031 +37033,37033 +37035,37035 +37037,37037 +37039,37039 +37041,37041 +37043,37g01 +37045,37045 +37047,37047 +37049,37049 +37051,37051 +37053,37053 +37055,37055 +37057,37057 +37059,37059 +37061,37061 +37063,37063 +37065,37065 +37067,37067 +37069,37069 +37071,37071 +37073,37073 +37075,37g01 +37077,37077 +37079,37079 +37081,37081 +37083,37083 +37085,37085 +37087,37087 +37089,37089 +37091,37091 +37093,37093 +37095,37g02 +37097,37097 +37099,37099 +37101,37101 +37103,37103 +37105,37105 +37107,37107 +37109,37109 +37111,37111 +37113,37113 +37115,37115 +37117,37117 +37119,37119 +37121,37121 +37123,37123 +37125,37125 +37127,37127 +37129,37129 +37131,37131 +37133,37133 +37135,37135 +37137,37137 +37139,37139 +37141,37141 +37143,37143 +37145,37145 +37147,37147 +37149,37149 +37151,37151 +37153,37153 +37155,37155 +37157,37157 +37159,37159 +37161,37161 +37163,37163 +37165,37165 +37167,37167 +37169,37169 +37171,37171 +37173,37173 +37175,37175 +37177,37g02 +37179,37179 +37181,37181 +37183,37183 +37185,37185 +37187,37g02 +37189,37189 +37191,37191 +37193,37193 +37195,37195 +37197,37197 +37199,37199 +38000,38000 +38001,38g07 +38003,38g05 +38005,38g01 +38007,38g07 +38009,38g02 +38011,38g07 +38013,38g03 +38015,38g14 +38017,38g17 +38019,38g04 +38021,38g05 +38023,38g06 +38025,38g07 +38027,38g09 +38029,38g14 +38031,38g09 +38033,38g07 +38035,38g08 +38037,38g15 +38039,38g08 +38041,38g07 +38043,38g09 +38045,38g05 +38047,38g09 +38049,38g02 +38051,38g09 +38053,38053 +38055,38g10 +38057,38g10 +38059,38g15 +38061,38g03 +38063,38g08 +38065,38g10 +38067,38g11 +38069,38g16 +38071,38g04 +38073,38g12 +38075,38g13 +38077,38g12 +38079,38g16 +38081,38g12 +38083,38g14 +38085,38g15 +38087,38g07 +38089,38g07 +38091,38g08 +38093,38g09 +38095,38g16 +38097,38g17 +38099,38g11 +38101,38g13 +38103,38g01 +38105,38g06 +39000,39000 +39001,39001 +39003,39003 +39005,39005 +39007,39007 +39009,39009 +39011,39011 +39013,39013 +39015,39015 +39017,39017 +39019,39019 +39021,39021 +39023,39023 +39025,39025 +39027,39027 +39029,39029 +39031,39031 +39033,39033 +39035,39035 +39037,39037 +39039,39039 +39041,39041 +39043,39043 +39045,39045 +39047,39047 +39049,39049 +39051,39051 +39053,39053 +39055,39055 +39057,39057 +39059,39059 +39061,39061 +39063,39063 +39065,39065 +39067,39067 +39069,39069 +39071,39071 +39073,39073 +39075,39075 +39077,39077 +39079,39079 +39081,39081 +39083,39083 +39085,39085 +39087,39087 +39089,39089 +39091,39091 +39093,39093 +39095,39095 +39097,39097 +39099,39099 +39101,39101 +39103,39103 +39105,39105 +39107,39107 +39109,39109 +39111,39111 +39113,39113 +39115,39115 +39117,39117 +39119,39119 +39121,39121 +39123,39123 +39125,39125 +39127,39127 +39129,39129 +39131,39131 +39133,39133 +39135,39135 +39137,39137 +39139,39139 +39141,39141 +39143,39143 +39145,39145 +39147,39147 +39149,39149 +39151,39151 +39153,39153 +39155,39155 +39157,39157 +39159,39159 +39161,39161 +39163,39163 +39165,39165 +39167,39167 +39169,39169 +39171,39171 +39173,39173 +39175,39175 +40000,40000 +40001,40001 +40003,40g13 +40005,40g04 +40007,40g01 +40009,40g11 +40011,40g02 +40013,40013 +40015,40015 +40017,40017 +40019,40g10 +40021,40021 +40023,40023 +40025,40g03 +40027,40027 +40029,40g04 +40031,40g12 +40033,40g12 +40035,40035 +40037,40037 +40039,40g05 +40041,40041 +40043,40g05 +40045,40g01 +40047,40g06 +40049,40049 +40051,40051 +40053,40g06 +40055,40g07 +40057,40g07 +40059,40g01 +40061,40061 +40063,40063 +40065,40g07 +40067,40g08 +40069,40069 +40071,40071 +40073,40g02 +40075,40g09 +40077,40077 +40079,40079 +40081,40081 +40083,40083 +40085,40g10 +40087,40087 +40089,40089 +40091,40091 +40093,40g13 +40095,40095 +40097,40097 +40099,40099 +40101,40101 +40103,40103 +40105,40105 +40107,40107 +40109,40109 +40111,40111 +40113,40113 +40115,40115 +40117,40117 +40119,40119 +40121,40121 +40123,40123 +40125,40125 +40127,40127 +40129,40g11 +40131,40131 +40133,40133 +40135,40135 +40137,40g08 +40139,40g03 +40141,40g12 +40143,40143 +40145,40145 +40147,40147 +40149,40g09 +40151,40g13 +40153,40153 +41000,41000 +41001,41001 +41003,41003 +41005,41005 +41007,41007 +41009,41009 +41011,41011 +41013,41013 +41015,41015 +41017,41017 +41019,41019 +41021,41g01 +41023,41g02 +41025,41g03 +41027,41027 +41029,41029 +41031,41031 +41033,41033 +41035,41g04 +41037,41g04 +41039,41039 +41041,41041 +41043,41043 +41045,41g03 +41047,41047 +41049,41g02 +41051,41051 +41053,41053 +41055,41g01 +41057,41057 +41059,41059 +41061,41g05 +41063,41g05 +41065,41g01 +41067,41067 +41069,41g02 +41071,41071 +42000,42000 +42001,42001 +42003,42003 +42005,42005 +42007,42007 +42009,42009 +42011,42011 +42013,42013 +42015,42g03 +42017,42017 +42019,42019 +42021,42021 +42023,42g01 +42025,42025 +42027,42027 +42029,42029 +42031,42031 +42033,42033 +42035,42035 +42037,42037 +42039,42039 +42041,42041 +42043,42043 +42045,42045 +42047,42047 +42049,42049 +42051,42051 +42053,42g02 +42055,42055 +42057,42057 +42059,42059 +42061,42061 +42063,42063 +42065,42065 +42067,42067 +42069,42069 +42071,42071 +42073,42073 +42075,42075 +42077,42077 +42079,42079 +42081,42081 +42083,42083 +42085,42085 +42087,42087 +42089,42089 +42091,42091 +42093,42093 +42095,42095 +42097,42097 +42099,42099 +42101,42101 +42103,42103 +42105,42g01 +42107,42107 +42109,42109 +42111,42111 +42113,42g03 +42115,42115 +42117,42117 +42119,42119 +42121,42121 +42123,42g02 +42125,42125 +42127,42127 +42129,42129 +42131,42131 +42133,42133 +44000,44000 +44001,44001 +44003,44003 +44005,44005 +44007,44007 +44009,44009 +45000,45000 +45001,45001 +45003,45003 +45005,45g01 +45007,45007 +45009,45009 +45011,45g01 +45013,45013 +45015,45015 +45017,45017 +45019,45019 +45021,45021 +45023,45023 +45025,45025 +45027,45027 +45029,45029 +45031,45031 +45033,45033 +45035,45035 +45037,45037 +45039,45039 +45041,45041 +45043,45043 +45045,45045 +45047,45g02 +45049,45049 +45051,45051 +45053,45053 +45055,45055 +45057,45057 +45059,45059 +45061,45061 +45063,45063 +45065,45g02 +45067,45067 +45069,45069 +45071,45071 +45073,45073 +45075,45075 +45077,45077 +45079,45079 +45081,45081 +45083,45083 +45085,45085 +45087,45087 +45089,45089 +45091,45091 +46000,46000 +46003,46g18 +46005,46g19 +46007,46g01 +46009,46g02 +46011,46g07 +46013,46g15 +46015,46g03 +46017,46g03 +46019,46g12 +46021,46g08 +46023,46g04 +46025,46g10 +46027,46027 +46029,46g10 +46031,46g05 +46033,46g06 +46035,46g18 +46037,46g10 +46039,46g07 +46041,46g05 +46043,46g04 +46045,46g08 +46047,46g06 +46049,46g08 +46051,46g09 +46053,46g03 +46055,46g01 +46057,46g10 +46059,46g14 +46061,46g11 +46063,46g12 +46065,46g14 +46067,46g02 +46069,46g14 +46071,46g01 +46073,46g18 +46075,46g14 +46077,46g13 +46079,46g13 +46081,46081 +46083,46083 +46085,46g14 +46087,46g11 +46089,46g08 +46091,46g15 +46093,46g17 +46095,46g01 +46097,46g11 +46099,46g16 +46101,46g16 +46102,46102 +46103,46103 +46105,46g17 +46107,46g08 +46109,46g09 +46111,46g18 +46115,46g19 +46117,46g14 +46119,46g08 +46121,46g20 +46123,46g20 +46125,46g21 +46127,46127 +46129,46g08 +46135,46g21 +46137,46g05 +47000,47000 +47001,47001 +47003,47g05 +47005,47005 +47007,47007 +47009,47009 +47011,47011 +47013,47013 +47015,47015 +47017,47017 +47019,47019 +47021,47021 +47023,47023 +47025,47025 +47027,47g01 +47029,47029 +47031,47031 +47033,47033 +47035,47035 +47037,47037 +47039,47g06 +47041,47041 +47043,47043 +47045,47g04 +47047,47047 +47049,47g07 +47051,47051 +47053,47053 +47055,47055 +47057,47057 +47059,47059 +47061,47061 +47063,47063 +47065,47065 +47067,47g02 +47069,47069 +47071,47071 +47073,47g02 +47075,47075 +47077,47077 +47079,47079 +47081,47081 +47083,47g03 +47085,47085 +47087,47g01 +47089,47089 +47091,47091 +47093,47093 +47095,47g04 +47097,47097 +47099,47099 +47101,47101 +47103,47103 +47105,47105 +47107,47107 +47109,47109 +47111,47g08 +47113,47113 +47115,47115 +47117,47117 +47119,47119 +47121,47121 +47123,47123 +47125,47125 +47127,47g05 +47129,47129 +47131,47131 +47133,47133 +47135,47g06 +47137,47g07 +47139,47139 +47141,47141 +47143,47143 +47145,47145 +47147,47147 +47149,47149 +47151,47151 +47153,47153 +47155,47155 +47157,47157 +47159,47159 +47161,47g03 +47163,47163 +47165,47165 +47167,47167 +47169,47g08 +47171,47171 +47173,47173 +47175,47g09 +47177,47177 +47179,47179 +47181,47181 +47183,47183 +47185,47g09 +47187,47187 +47189,47189 +48000,48000 +48001,48001 +48003,48003 +48005,48005 +48007,48g39 +48009,48g01 +48011,48g02 +48013,48013 +48015,48015 +48017,48g03 +48019,48019 +48021,48021 +48023,48g04 +48025,48g21 +48027,48027 +48029,48029 +48031,48031 +48033,48g20 +48035,48035 +48037,48037 +48039,48039 +48041,48041 +48043,48g05 +48045,48g06 +48047,48g07 +48049,48g10 +48051,48051 +48053,48053 +48055,48055 +48057,48057 +48059,48g43 +48061,48061 +48063,48063 +48065,48g02 +48067,48067 +48069,48g08 +48071,48071 +48073,48073 +48075,48g22 +48077,48077 +48079,48g03 +48081,48g09 +48083,48g10 +48085,48085 +48087,48g22 +48089,48089 +48091,48091 +48093,48093 +48095,48g11 +48097,48097 +48099,48g23 +48101,48g22 +48103,48g12 +48105,48g13 +48107,48g06 +48109,48g14 +48111,48g15 +48113,48113 +48115,48g35 +48117,48g38 +48119,48g16 +48121,48121 +48123,48123 +48125,48g17 +48127,48127 +48129,48g40 +48131,48131 +48133,48g45 +48135,48g12 +48137,48g18 +48139,48139 +48141,48g25 +48143,48143 +48145,48145 +48147,48147 +48149,48149 +48151,48g19 +48153,48g06 +48155,48g22 +48157,48157 +48159,48159 +48161,48161 +48163,48g30 +48165,48g48 +48167,48167 +48169,48g17 +48171,48171 +48173,48g20 +48175,48g21 +48177,48177 +48179,48g40 +48181,48181 +48183,48183 +48185,48185 +48187,48187 +48189,48189 +48191,48g22 +48193,48g23 +48195,48g24 +48197,48g22 +48199,48199 +48201,48201 +48203,48203 +48205,48g15 +48207,48g04 +48209,48209 +48211,48g40 +48213,48213 +48215,48215 +48217,48217 +48219,48219 +48221,48g44 +48223,48g16 +48225,48225 +48227,48g20 +48229,48g25 +48231,48231 +48233,48g02 +48235,48g13 +48237,48g26 +48239,48239 +48241,48241 +48243,48g14 +48245,48245 +48247,48g07 +48249,48249 +48251,48251 +48253,48g19 +48255,48255 +48257,48257 +48259,48259 +48261,48g27 +48263,48g17 +48265,48g28 +48267,48g28 +48269,48g22 +48271,48g29 +48273,48273 +48275,48g04 +48277,48277 +48279,48g08 +48281,48281 +48283,48g30 +48285,48285 +48287,48287 +48289,48289 +48291,48291 +48293,48293 +48295,48g31 +48297,48g34 +48299,48299 +48301,48g32 +48303,48g33 +48305,48g33 +48307,48g11 +48309,48309 +48311,48g34 +48313,48313 +48315,48315 +48317,48g35 +48319,48g28 +48321,48321 +48323,48g29 +48325,48325 +48327,48g11 +48329,48329 +48331,48331 +48333,48g36 +48335,48g37 +48337,48337 +48339,48339 +48341,48g24 +48343,48343 +48345,48g06 +48347,48347 +48349,48349 +48351,48351 +48353,48g09 +48355,48355 +48357,48g31 +48359,48g38 +48361,48361 +48363,48g26 +48365,48365 +48367,48367 +48369,48g38 +48371,48g47 +48373,48373 +48375,48375 +48377,48g05 +48379,48379 +48381,48g46 +48383,48g13 +48385,48g18 +48387,48387 +48389,48g14 +48391,48g39 +48393,48g40 +48395,48395 +48397,48397 +48399,48399 +48401,48401 +48403,48g41 +48405,48g41 +48407,48407 +48409,48409 +48411,48g36 +48413,48g42 +48415,48g17 +48417,48g43 +48419,48419 +48421,48g24 +48423,48423 +48425,48g44 +48427,48427 +48429,48g45 +48431,48g37 +48433,48g19 +48435,48g42 +48437,48g46 +48439,48439 +48441,48441 +48443,48g47 +48445,48445 +48447,48g04 +48449,48449 +48451,48g42 +48453,48453 +48455,48455 +48457,48457 +48459,48459 +48461,48g13 +48463,48g18 +48465,48465 +48467,48467 +48469,48469 +48471,48471 +48473,48473 +48475,48g32 +48477,48477 +48479,48479 +48481,48481 +48483,48g40 +48485,48g01 +48487,48487 +48489,48g27 +48491,48491 +48493,48493 +48495,48g32 +48497,48497 +48499,48499 +48501,48g48 +48503,48503 +48505,48505 +48507,48507 +49000,49000 +49001,49g01 +49003,49003 +49005,49g05 +49007,49007 +49009,49g02 +49011,49011 +49013,49013 +49015,49g03 +49017,49g04 +49019,49g03 +49021,49g01 +49023,49023 +49025,49g04 +49027,49027 +49029,49029 +49031,49g04 +49033,49g05 +49035,49035 +49037,49037 +49039,49039 +49041,49g04 +49043,49043 +49045,49045 +49047,49g02 +49049,49049 +49051,49051 +49053,49053 +49055,49g04 +49057,49057 +50000,50000 +50001,50001 +50003,50003 +50005,50g01 +50007,50007 +50009,50g01 +50011,50g02 +50013,50g02 +50015,50015 +50017,50017 +50019,50019 +50021,50021 +50023,50023 +50025,50025 +50027,50027 +51000,51000 +51001,51001 +51003,51003 +51005,51005 +51007,51007 +51009,51009 +51011,51011 +51013,51013 +51015,51015 +51017,51g01 +51019,51019 +51021,51g02 +51023,51023 +51025,51025 +51027,51027 +51029,51g05 +51031,51031 +51033,51033 +51035,51035 +51036,51g03 +51037,51037 +51041,51041 +51043,51043 +51045,51g04 +51047,51047 +51049,51g05 +51051,51051 +51053,51053 +51057,51057 +51059,51059 +51061,51061 +51063,51063 +51065,51065 +51067,51067 +51069,51069 +51071,51071 +51073,51g07 +51075,51075 +51077,51077 +51079,51079 +51081,51081 +51083,51083 +51085,51085 +51087,51087 +51089,51089 +51091,51g01 +51093,51093 +51095,51g10 +51097,51g06 +51099,51099 +51101,51g06 +51103,51103 +51105,51105 +51107,51107 +51109,51109 +51111,51111 +51113,51113 +51115,51g07 +51117,51117 +51119,51119 +51121,51121 +51125,51125 +51127,51g03 +51131,51131 +51133,51133 +51135,51135 +51137,51137 +51139,51139 +51141,51141 +51143,51143 +51145,51145 +51147,51147 +51149,51149 +51153,51153 +51155,51155 +51157,51g08 +51159,51g09 +51161,51g04 +51163,51g01 +51165,51165 +51167,51167 +51169,51169 +51171,51171 +51173,51173 +51175,51175 +51177,51177 +51179,51179 +51181,51g10 +51183,51183 +51185,51185 +51187,51g08 +51191,51191 +51193,51g09 +51195,51195 +51197,51g02 +51199,51199 +51510,51510 +51520,51520 +51530,51530 +51540,51540 +51550,51550 +51570,51570 +51580,51580 +51590,51590 +51595,51595 +51600,51600 +51610,51610 +51620,51620 +51630,51630 +51640,51640 +51650,51650 +51660,51660 +51670,51670 +51678,51678 +51680,51680 +51683,51683 +51685,51685 +51690,51690 +51700,51700 +51710,51710 +51720,51720 +51730,51730 +51735,51735 +51740,51740 +51750,51750 +51760,51760 +51770,51770 +51775,51775 +51790,51790 +51800,51800 +51810,51810 +51820,51820 +51830,51830 +51840,51840 +53000,53000 +53001,53001 +53003,53g01 +53005,53005 +53007,53007 +53009,53009 +53011,53011 +53013,53g01 +53015,53015 +53017,53017 +53019,53g02 +53021,53021 +53023,53g01 +53025,53025 +53027,53027 +53029,53029 +53031,53031 +53033,53033 +53035,53035 +53037,53037 +53039,53039 +53041,53041 +53043,53043 +53045,53045 +53047,53047 +53049,53g03 +53051,53051 +53053,53053 +53055,53055 +53057,53057 +53059,53059 +53061,53061 +53063,53063 +53065,53g02 +53067,53067 +53069,53g03 +53071,53071 +53073,53073 +53075,53075 +53077,53077 +54000,54000 +54001,54001 +54003,54003 +54005,54005 +54007,54g04 +54009,54009 +54011,54011 +54013,54g01 +54015,54g02 +54017,54g03 +54019,54019 +54021,54g04 +54023,54g07 +54025,54025 +54027,54027 +54029,54029 +54031,54031 +54033,54033 +54035,54035 +54037,54037 +54039,54039 +54041,54041 +54043,54043 +54045,54045 +54047,54047 +54049,54049 +54051,54051 +54053,54053 +54055,54055 +54057,54057 +54059,54059 +54061,54061 +54063,54063 +54065,54065 +54067,54g02 +54069,54069 +54071,54g07 +54073,54g05 +54075,54g06 +54077,54077 +54079,54079 +54081,54081 +54083,54083 +54085,54g05 +54087,54g01 +54089,54089 +54091,54091 +54093,54g07 +54095,54g03 +54097,54097 +54099,54099 +54101,54g06 +54103,54103 +54105,54g08 +54107,54g08 +54109,54109 +55000,55000 +55001,55001 +55003,55g02 +55005,55005 +55007,55007 +55009,55009 +55011,55g04 +55013,55013 +55015,55015 +55017,55017 +55019,55019 +55021,55021 +55023,55023 +55025,55025 +55027,55027 +55029,55029 +55031,55031 +55033,55033 +55035,55035 +55037,55g01 +55039,55039 +55041,55g01 +55043,55043 +55045,55045 +55047,55047 +55049,55049 +55051,55g02 +55053,55053 +55055,55055 +55057,55057 +55059,55059 +55061,55061 +55063,55063 +55065,55065 +55067,55067 +55069,55069 +55071,55071 +55073,55073 +55075,55075 +55077,55077 +55078,55g03 +55079,55079 +55081,55081 +55083,55083 +55085,55085 +55087,55087 +55089,55089 +55091,55g04 +55093,55093 +55095,55095 +55097,55097 +55099,55099 +55101,55101 +55103,55103 +55105,55105 +55107,55107 +55109,55109 +55111,55111 +55113,55113 +55115,55g03 +55117,55117 +55119,55119 +55121,55121 +55123,55123 +55125,55125 +55127,55127 +55129,55129 +55131,55131 +55133,55133 +55135,55135 +55137,55137 +55139,55139 +55141,55141 +56000,56000 +56001,56001 +56003,56g06 +56005,56005 +56007,56007 +56009,56009 +56011,56g01 +56013,56g02 +56015,56g04 +56017,56g02 +56019,56g03 +56021,56021 +56023,56g05 +56025,56025 +56027,56g04 +56029,56029 +56031,56g04 +56033,56g03 +56035,56g05 +56037,56037 +56039,56039 +56041,56041 +56043,56g06 +56045,56g01 +60000,60000 +60010,60010 +60020,60020 +60030,60030 +60040,60040 +60050,60050 +66000,66000 +66010,66010 +69000,69000 +69085,69085 +69100,69100 +69110,69110 +69120,69120 +70000,70000 +70002,70002 +70003,70003 +72000,72000 +72001,72001 +72003,72003 +72005,72005 +72007,72007 +72009,72009 +72011,72011 +72013,72013 +72015,72015 +72017,72017 +72019,72019 +72021,72021 +72023,72023 +72025,72025 +72027,72027 +72029,72029 +72031,72031 +72033,72033 +72035,72035 +72037,72037 +72039,72039 +72041,72041 +72043,72043 +72045,72045 +72047,72047 +72049,72049 +72051,72051 +72053,72053 +72054,72054 +72055,72055 +72057,72057 +72059,72059 +72061,72061 +72063,72063 +72065,72065 +72067,72067 +72069,72069 +72071,72071 +72073,72073 +72075,72075 +72077,72077 +72079,72079 +72081,72081 +72083,72083 +72085,72085 +72087,72087 +72089,72089 +72091,72091 +72093,72093 +72095,72095 +72097,72097 +72099,72099 +72101,72101 +72103,72103 +72105,72105 +72107,72107 +72109,72109 +72111,72111 +72113,72113 +72115,72115 +72117,72117 +72119,72119 +72121,72121 +72123,72123 +72125,72125 +72127,72127 +72129,72129 +72131,72131 +72133,72133 +72135,72135 +72137,72137 +72139,72139 +72141,72141 +72143,72143 +72145,72145 +72147,72147 +72149,72149 +72151,72151 +72153,72153 +78000,78000 +78010,78010 +78020,78020 +78030,78030 diff --git a/_delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv b/_delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv new file mode 100644 index 000000000..566d5c3d8 --- /dev/null +++ b/_delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv @@ -0,0 +1,2712 @@ +popsafe-fips,state_code,state_id,state_name +01000,01,al,Alabama +01001,01,al,Alabama +01003,01,al,Alabama +01005,01,al,Alabama +01007,01,al,Alabama +01009,01,al,Alabama +01011,01,al,Alabama +01013,01,al,Alabama +01015,01,al,Alabama +01017,01,al,Alabama +01019,01,al,Alabama +01021,01,al,Alabama +01023,01,al,Alabama +01025,01,al,Alabama +01027,01,al,Alabama +01029,01,al,Alabama +01031,01,al,Alabama +01033,01,al,Alabama +01035,01,al,Alabama +01037,01,al,Alabama +01039,01,al,Alabama +01041,01,al,Alabama +01043,01,al,Alabama +01045,01,al,Alabama +01049,01,al,Alabama +01051,01,al,Alabama +01053,01,al,Alabama +01055,01,al,Alabama +01057,01,al,Alabama +01059,01,al,Alabama +01061,01,al,Alabama +01067,01,al,Alabama +01069,01,al,Alabama +01071,01,al,Alabama +01073,01,al,Alabama +01075,01,al,Alabama +01077,01,al,Alabama +01079,01,al,Alabama +01081,01,al,Alabama +01083,01,al,Alabama +01085,01,al,Alabama +01087,01,al,Alabama +01089,01,al,Alabama +01091,01,al,Alabama +01093,01,al,Alabama +01095,01,al,Alabama +01097,01,al,Alabama +01099,01,al,Alabama +01101,01,al,Alabama +01103,01,al,Alabama +01107,01,al,Alabama +01109,01,al,Alabama +01111,01,al,Alabama +01113,01,al,Alabama +01115,01,al,Alabama +01117,01,al,Alabama +01119,01,al,Alabama +01121,01,al,Alabama +01123,01,al,Alabama +01125,01,al,Alabama +01127,01,al,Alabama +01129,01,al,Alabama +01131,01,al,Alabama +01133,01,al,Alabama +01g01,01,al,Alabama +01g02,01,al,Alabama +02000,02,ak,Alaska +02013,02,ak,Alaska +02016,02,ak,Alaska +02020,02,ak,Alaska +02050,02,ak,Alaska +02060,02,ak,Alaska +02063,02,ak,Alaska +02066,02,ak,Alaska +02068,02,ak,Alaska +02070,02,ak,Alaska +02090,02,ak,Alaska +02100,02,ak,Alaska +02105,02,ak,Alaska +02110,02,ak,Alaska +02122,02,ak,Alaska +02130,02,ak,Alaska +02150,02,ak,Alaska +02158,02,ak,Alaska +02164,02,ak,Alaska +02170,02,ak,Alaska +02180,02,ak,Alaska +02185,02,ak,Alaska +02188,02,ak,Alaska +02195,02,ak,Alaska +02198,02,ak,Alaska +02220,02,ak,Alaska +02230,02,ak,Alaska +02240,02,ak,Alaska +02275,02,ak,Alaska +02282,02,ak,Alaska +02290,02,ak,Alaska +04000,04,az,Arizona +04001,04,az,Arizona +04003,04,az,Arizona +04005,04,az,Arizona +04007,04,az,Arizona +04012,04,az,Arizona +04013,04,az,Arizona +04015,04,az,Arizona +04017,04,az,Arizona +04019,04,az,Arizona +04021,04,az,Arizona +04023,04,az,Arizona +04025,04,az,Arizona +04027,04,az,Arizona +04g01,04,az,Arizona +05000,05,ar,Arkansas +05001,05,ar,Arkansas +05003,05,ar,Arkansas +05005,05,ar,Arkansas +05007,05,ar,Arkansas +05015,05,ar,Arkansas +05017,05,ar,Arkansas +05019,05,ar,Arkansas +05021,05,ar,Arkansas +05023,05,ar,Arkansas +05027,05,ar,Arkansas +05029,05,ar,Arkansas +05031,05,ar,Arkansas +05033,05,ar,Arkansas +05035,05,ar,Arkansas +05037,05,ar,Arkansas +05041,05,ar,Arkansas +05043,05,ar,Arkansas +05045,05,ar,Arkansas +05047,05,ar,Arkansas +05049,05,ar,Arkansas +05051,05,ar,Arkansas +05055,05,ar,Arkansas +05059,05,ar,Arkansas +05061,05,ar,Arkansas +05063,05,ar,Arkansas +05065,05,ar,Arkansas +05069,05,ar,Arkansas +05071,05,ar,Arkansas +05075,05,ar,Arkansas +05079,05,ar,Arkansas +05081,05,ar,Arkansas +05083,05,ar,Arkansas +05085,05,ar,Arkansas +05087,05,ar,Arkansas +05093,05,ar,Arkansas +05103,05,ar,Arkansas +05105,05,ar,Arkansas +05107,05,ar,Arkansas +05111,05,ar,Arkansas +05113,05,ar,Arkansas +05115,05,ar,Arkansas +05119,05,ar,Arkansas +05121,05,ar,Arkansas +05125,05,ar,Arkansas +05127,05,ar,Arkansas +05131,05,ar,Arkansas +05133,05,ar,Arkansas +05135,05,ar,Arkansas +05137,05,ar,Arkansas +05139,05,ar,Arkansas +05141,05,ar,Arkansas +05143,05,ar,Arkansas +05145,05,ar,Arkansas +05149,05,ar,Arkansas +05g01,05,ar,Arkansas +05g02,05,ar,Arkansas +05g03,05,ar,Arkansas +05g04,05,ar,Arkansas +05g05,05,ar,Arkansas +05g06,05,ar,Arkansas +05g07,05,ar,Arkansas +05g08,05,ar,Arkansas +05g09,05,ar,Arkansas +05g10,05,ar,Arkansas +06000,06,ca,California +06001,06,ca,California +06005,06,ca,California +06007,06,ca,California +06009,06,ca,California +06011,06,ca,California +06013,06,ca,California +06015,06,ca,California +06017,06,ca,California +06019,06,ca,California +06021,06,ca,California +06023,06,ca,California +06025,06,ca,California +06027,06,ca,California +06029,06,ca,California +06031,06,ca,California +06033,06,ca,California +06037,06,ca,California +06039,06,ca,California +06041,06,ca,California +06043,06,ca,California +06045,06,ca,California +06047,06,ca,California +06051,06,ca,California +06053,06,ca,California +06055,06,ca,California +06059,06,ca,California +06061,06,ca,California +06063,06,ca,California +06065,06,ca,California +06067,06,ca,California +06069,06,ca,California +06071,06,ca,California +06073,06,ca,California +06075,06,ca,California +06077,06,ca,California +06079,06,ca,California +06081,06,ca,California +06083,06,ca,California +06085,06,ca,California +06087,06,ca,California +06089,06,ca,California +06093,06,ca,California +06095,06,ca,California +06097,06,ca,California +06099,06,ca,California +06101,06,ca,California +06103,06,ca,California +06105,06,ca,California +06107,06,ca,California +06111,06,ca,California +06113,06,ca,California +06115,06,ca,California +06g01,06,ca,California +06g02,06,ca,California +06g03,06,ca,California +08000,08,co,Colorado +08001,08,co,Colorado +08005,08,co,Colorado +08013,08,co,Colorado +08014,08,co,Colorado +08029,08,co,Colorado +08031,08,co,Colorado +08035,08,co,Colorado +08037,08,co,Colorado +08041,08,co,Colorado +08051,08,co,Colorado +08059,08,co,Colorado +08067,08,co,Colorado +08069,08,co,Colorado +08071,08,co,Colorado +08077,08,co,Colorado +08081,08,co,Colorado +08083,08,co,Colorado +08093,08,co,Colorado +08097,08,co,Colorado +08107,08,co,Colorado +08117,08,co,Colorado +08119,08,co,Colorado +08123,08,co,Colorado +08g01,08,co,Colorado +08g02,08,co,Colorado +08g03,08,co,Colorado +08g04,08,co,Colorado +08g05,08,co,Colorado +08g06,08,co,Colorado +08g07,08,co,Colorado +08g08,08,co,Colorado +08g09,08,co,Colorado +08g10,08,co,Colorado +08g11,08,co,Colorado +08g12,08,co,Colorado +08g13,08,co,Colorado +08g14,08,co,Colorado +08g15,08,co,Colorado +08g16,08,co,Colorado +09000,09,ct,Connecticut +09001,09,ct,Connecticut +09003,09,ct,Connecticut +09005,09,ct,Connecticut +09007,09,ct,Connecticut +09009,09,ct,Connecticut +09011,09,ct,Connecticut +09013,09,ct,Connecticut +09015,09,ct,Connecticut +10000,10,de,Delaware +10001,10,de,Delaware +10003,10,de,Delaware +10005,10,de,Delaware +11000,11,dc,District of Columbia +11001,11,dc,District of Columbia +12000,12,fl,Florida +12001,12,fl,Florida +12003,12,fl,Florida +12005,12,fl,Florida +12007,12,fl,Florida +12009,12,fl,Florida +12011,12,fl,Florida +12013,12,fl,Florida +12015,12,fl,Florida +12017,12,fl,Florida +12019,12,fl,Florida +12021,12,fl,Florida +12023,12,fl,Florida +12027,12,fl,Florida +12029,12,fl,Florida +12031,12,fl,Florida +12033,12,fl,Florida +12035,12,fl,Florida +12039,12,fl,Florida +12041,12,fl,Florida +12043,12,fl,Florida +12045,12,fl,Florida +12047,12,fl,Florida +12049,12,fl,Florida +12051,12,fl,Florida +12053,12,fl,Florida +12055,12,fl,Florida +12057,12,fl,Florida +12059,12,fl,Florida +12061,12,fl,Florida +12063,12,fl,Florida +12065,12,fl,Florida +12069,12,fl,Florida +12071,12,fl,Florida +12073,12,fl,Florida +12075,12,fl,Florida +12079,12,fl,Florida +12081,12,fl,Florida +12083,12,fl,Florida +12085,12,fl,Florida +12086,12,fl,Florida +12087,12,fl,Florida +12089,12,fl,Florida +12091,12,fl,Florida +12093,12,fl,Florida +12095,12,fl,Florida +12097,12,fl,Florida +12099,12,fl,Florida +12101,12,fl,Florida +12103,12,fl,Florida +12105,12,fl,Florida +12107,12,fl,Florida +12109,12,fl,Florida +12111,12,fl,Florida +12113,12,fl,Florida +12115,12,fl,Florida +12117,12,fl,Florida +12119,12,fl,Florida +12123,12,fl,Florida +12125,12,fl,Florida +12127,12,fl,Florida +12129,12,fl,Florida +12131,12,fl,Florida +12133,12,fl,Florida +12g01,12,fl,Florida +12g02,12,fl,Florida +13000,13,ga,Georgia +13001,13,ga,Georgia +13005,13,ga,Georgia +13011,13,ga,Georgia +13013,13,ga,Georgia +13015,13,ga,Georgia +13019,13,ga,Georgia +13021,13,ga,Georgia +13025,13,ga,Georgia +13027,13,ga,Georgia +13029,13,ga,Georgia +13031,13,ga,Georgia +13035,13,ga,Georgia +13039,13,ga,Georgia +13043,13,ga,Georgia +13045,13,ga,Georgia +13047,13,ga,Georgia +13049,13,ga,Georgia +13051,13,ga,Georgia +13055,13,ga,Georgia +13057,13,ga,Georgia +13059,13,ga,Georgia +13063,13,ga,Georgia +13067,13,ga,Georgia +13071,13,ga,Georgia +13073,13,ga,Georgia +13075,13,ga,Georgia +13077,13,ga,Georgia +13079,13,ga,Georgia +13083,13,ga,Georgia +13085,13,ga,Georgia +13089,13,ga,Georgia +13091,13,ga,Georgia +13093,13,ga,Georgia +13095,13,ga,Georgia +13097,13,ga,Georgia +13103,13,ga,Georgia +13105,13,ga,Georgia +13109,13,ga,Georgia +13111,13,ga,Georgia +13113,13,ga,Georgia +13115,13,ga,Georgia +13117,13,ga,Georgia +13119,13,ga,Georgia +13121,13,ga,Georgia +13123,13,ga,Georgia +13127,13,ga,Georgia +13129,13,ga,Georgia +13131,13,ga,Georgia +13135,13,ga,Georgia +13137,13,ga,Georgia +13139,13,ga,Georgia +13143,13,ga,Georgia +13145,13,ga,Georgia +13147,13,ga,Georgia +13149,13,ga,Georgia +13151,13,ga,Georgia +13153,13,ga,Georgia +13157,13,ga,Georgia +13159,13,ga,Georgia +13161,13,ga,Georgia +13163,13,ga,Georgia +13169,13,ga,Georgia +13171,13,ga,Georgia +13173,13,ga,Georgia +13175,13,ga,Georgia +13179,13,ga,Georgia +13183,13,ga,Georgia +13185,13,ga,Georgia +13187,13,ga,Georgia +13191,13,ga,Georgia +13195,13,ga,Georgia +13199,13,ga,Georgia +13207,13,ga,Georgia +13211,13,ga,Georgia +13213,13,ga,Georgia +13215,13,ga,Georgia +13217,13,ga,Georgia +13219,13,ga,Georgia +13221,13,ga,Georgia +13223,13,ga,Georgia +13225,13,ga,Georgia +13227,13,ga,Georgia +13229,13,ga,Georgia +13231,13,ga,Georgia +13233,13,ga,Georgia +13237,13,ga,Georgia +13241,13,ga,Georgia +13245,13,ga,Georgia +13247,13,ga,Georgia +13251,13,ga,Georgia +13255,13,ga,Georgia +13257,13,ga,Georgia +13261,13,ga,Georgia +13267,13,ga,Georgia +13275,13,ga,Georgia +13277,13,ga,Georgia +13281,13,ga,Georgia +13285,13,ga,Georgia +13291,13,ga,Georgia +13295,13,ga,Georgia +13297,13,ga,Georgia +13299,13,ga,Georgia +13305,13,ga,Georgia +13311,13,ga,Georgia +13313,13,ga,Georgia +13321,13,ga,Georgia +13g01,13,ga,Georgia +13g02,13,ga,Georgia +13g03,13,ga,Georgia +13g04,13,ga,Georgia +13g05,13,ga,Georgia +13g06,13,ga,Georgia +13g07,13,ga,Georgia +13g08,13,ga,Georgia +13g09,13,ga,Georgia +13g10,13,ga,Georgia +13g11,13,ga,Georgia +13g12,13,ga,Georgia +13g13,13,ga,Georgia +13g14,13,ga,Georgia +13g15,13,ga,Georgia +13g16,13,ga,Georgia +13g17,13,ga,Georgia +13g18,13,ga,Georgia +13g19,13,ga,Georgia +13g20,13,ga,Georgia +13g21,13,ga,Georgia +13g22,13,ga,Georgia +13g23,13,ga,Georgia +13g24,13,ga,Georgia +15000,15,hi,Hawaii +15001,15,hi,Hawaii +15003,15,hi,Hawaii +15005,15,hi,Hawaii +15007,15,hi,Hawaii +15009,15,hi,Hawaii +16000,16,id,Idaho +16001,16,id,Idaho +16005,16,id,Idaho +16011,16,id,Idaho +16013,16,id,Idaho +16017,16,id,Idaho +16019,16,id,Idaho +16021,16,id,Idaho +16027,16,id,Idaho +16031,16,id,Idaho +16039,16,id,Idaho +16043,16,id,Idaho +16049,16,id,Idaho +16055,16,id,Idaho +16065,16,id,Idaho +16067,16,id,Idaho +16073,16,id,Idaho +16075,16,id,Idaho +16081,16,id,Idaho +16083,16,id,Idaho +16085,16,id,Idaho +16g01,16,id,Idaho +16g02,16,id,Idaho +16g03,16,id,Idaho +16g04,16,id,Idaho +16g05,16,id,Idaho +16g06,16,id,Idaho +16g07,16,id,Idaho +16g08,16,id,Idaho +16g09,16,id,Idaho +16g10,16,id,Idaho +16g11,16,id,Idaho +17000,17,il,Illinois +17001,17,il,Illinois +17005,17,il,Illinois +17007,17,il,Illinois +17011,17,il,Illinois +17015,17,il,Illinois +17017,17,il,Illinois +17019,17,il,Illinois +17021,17,il,Illinois +17023,17,il,Illinois +17025,17,il,Illinois +17027,17,il,Illinois +17029,17,il,Illinois +17031,17,il,Illinois +17033,17,il,Illinois +17037,17,il,Illinois +17039,17,il,Illinois +17041,17,il,Illinois +17043,17,il,Illinois +17045,17,il,Illinois +17049,17,il,Illinois +17051,17,il,Illinois +17053,17,il,Illinois +17055,17,il,Illinois +17057,17,il,Illinois +17061,17,il,Illinois +17063,17,il,Illinois +17067,17,il,Illinois +17073,17,il,Illinois +17075,17,il,Illinois +17077,17,il,Illinois +17081,17,il,Illinois +17085,17,il,Illinois +17087,17,il,Illinois +17089,17,il,Illinois +17091,17,il,Illinois +17093,17,il,Illinois +17095,17,il,Illinois +17097,17,il,Illinois +17099,17,il,Illinois +17101,17,il,Illinois +17103,17,il,Illinois +17105,17,il,Illinois +17107,17,il,Illinois +17109,17,il,Illinois +17111,17,il,Illinois +17113,17,il,Illinois +17115,17,il,Illinois +17117,17,il,Illinois +17119,17,il,Illinois +17121,17,il,Illinois +17125,17,il,Illinois +17129,17,il,Illinois +17131,17,il,Illinois +17133,17,il,Illinois +17135,17,il,Illinois +17139,17,il,Illinois +17141,17,il,Illinois +17145,17,il,Illinois +17147,17,il,Illinois +17149,17,il,Illinois +17157,17,il,Illinois +17159,17,il,Illinois +17161,17,il,Illinois +17163,17,il,Illinois +17167,17,il,Illinois +17173,17,il,Illinois +17177,17,il,Illinois +17179,17,il,Illinois +17181,17,il,Illinois +17183,17,il,Illinois +17189,17,il,Illinois +17191,17,il,Illinois +17195,17,il,Illinois +17197,17,il,Illinois +17199,17,il,Illinois +17201,17,il,Illinois +17203,17,il,Illinois +17g01,17,il,Illinois +17g02,17,il,Illinois +17g03,17,il,Illinois +17g04,17,il,Illinois +17g05,17,il,Illinois +17g06,17,il,Illinois +17g07,17,il,Illinois +17g08,17,il,Illinois +17g09,17,il,Illinois +17g10,17,il,Illinois +17g11,17,il,Illinois +17g12,17,il,Illinois +18000,18,in,Indiana +18001,18,in,Indiana +18003,18,in,Indiana +18005,18,in,Indiana +18009,18,in,Indiana +18011,18,in,Indiana +18013,18,in,Indiana +18015,18,in,Indiana +18017,18,in,Indiana +18019,18,in,Indiana +18021,18,in,Indiana +18023,18,in,Indiana +18025,18,in,Indiana +18027,18,in,Indiana +18029,18,in,Indiana +18031,18,in,Indiana +18033,18,in,Indiana +18035,18,in,Indiana +18037,18,in,Indiana +18039,18,in,Indiana +18043,18,in,Indiana +18045,18,in,Indiana +18047,18,in,Indiana +18049,18,in,Indiana +18051,18,in,Indiana +18053,18,in,Indiana +18055,18,in,Indiana +18057,18,in,Indiana +18059,18,in,Indiana +18061,18,in,Indiana +18063,18,in,Indiana +18065,18,in,Indiana +18067,18,in,Indiana +18069,18,in,Indiana +18071,18,in,Indiana +18073,18,in,Indiana +18075,18,in,Indiana +18077,18,in,Indiana +18079,18,in,Indiana +18081,18,in,Indiana +18083,18,in,Indiana +18085,18,in,Indiana +18087,18,in,Indiana +18089,18,in,Indiana +18091,18,in,Indiana +18093,18,in,Indiana +18095,18,in,Indiana +18097,18,in,Indiana +18099,18,in,Indiana +18101,18,in,Indiana +18103,18,in,Indiana +18105,18,in,Indiana +18107,18,in,Indiana +18109,18,in,Indiana +18111,18,in,Indiana +18113,18,in,Indiana +18117,18,in,Indiana +18119,18,in,Indiana +18121,18,in,Indiana +18123,18,in,Indiana +18125,18,in,Indiana +18127,18,in,Indiana +18129,18,in,Indiana +18131,18,in,Indiana +18133,18,in,Indiana +18135,18,in,Indiana +18137,18,in,Indiana +18139,18,in,Indiana +18141,18,in,Indiana +18143,18,in,Indiana +18145,18,in,Indiana +18147,18,in,Indiana +18149,18,in,Indiana +18151,18,in,Indiana +18153,18,in,Indiana +18157,18,in,Indiana +18159,18,in,Indiana +18163,18,in,Indiana +18165,18,in,Indiana +18167,18,in,Indiana +18169,18,in,Indiana +18173,18,in,Indiana +18175,18,in,Indiana +18177,18,in,Indiana +18179,18,in,Indiana +18181,18,in,Indiana +18183,18,in,Indiana +18g01,18,in,Indiana +18g02,18,in,Indiana +18g03,18,in,Indiana +19000,19,ia,Iowa +19005,19,ia,Iowa +19011,19,ia,Iowa +19013,19,ia,Iowa +19015,19,ia,Iowa +19017,19,ia,Iowa +19019,19,ia,Iowa +19021,19,ia,Iowa +19023,19,ia,Iowa +19027,19,ia,Iowa +19031,19,ia,Iowa +19041,19,ia,Iowa +19043,19,ia,Iowa +19045,19,ia,Iowa +19047,19,ia,Iowa +19049,19,ia,Iowa +19055,19,ia,Iowa +19057,19,ia,Iowa +19059,19,ia,Iowa +19061,19,ia,Iowa +19065,19,ia,Iowa +19067,19,ia,Iowa +19069,19,ia,Iowa +19075,19,ia,Iowa +19079,19,ia,Iowa +19081,19,ia,Iowa +19083,19,ia,Iowa +19085,19,ia,Iowa +19087,19,ia,Iowa +19095,19,ia,Iowa +19097,19,ia,Iowa +19099,19,ia,Iowa +19103,19,ia,Iowa +19105,19,ia,Iowa +19107,19,ia,Iowa +19109,19,ia,Iowa +19111,19,ia,Iowa +19113,19,ia,Iowa +19115,19,ia,Iowa +19119,19,ia,Iowa +19121,19,ia,Iowa +19123,19,ia,Iowa +19125,19,ia,Iowa +19127,19,ia,Iowa +19131,19,ia,Iowa +19137,19,ia,Iowa +19139,19,ia,Iowa +19145,19,ia,Iowa +19149,19,ia,Iowa +19153,19,ia,Iowa +19155,19,ia,Iowa +19157,19,ia,Iowa +19161,19,ia,Iowa +19163,19,ia,Iowa +19165,19,ia,Iowa +19167,19,ia,Iowa +19169,19,ia,Iowa +19171,19,ia,Iowa +19181,19,ia,Iowa +19183,19,ia,Iowa +19189,19,ia,Iowa +19191,19,ia,Iowa +19197,19,ia,Iowa +19g01,19,ia,Iowa +19g02,19,ia,Iowa +19g03,19,ia,Iowa +19g04,19,ia,Iowa +19g05,19,ia,Iowa +19g06,19,ia,Iowa +19g07,19,ia,Iowa +19g08,19,ia,Iowa +19g09,19,ia,Iowa +19g10,19,ia,Iowa +19g11,19,ia,Iowa +19g12,19,ia,Iowa +19g13,19,ia,Iowa +19g14,19,ia,Iowa +19g15,19,ia,Iowa +19g16,19,ia,Iowa +19g17,19,ia,Iowa +19g18,19,ia,Iowa +20000,20,ks,Kansas +20011,20,ks,Kansas +20015,20,ks,Kansas +20021,20,ks,Kansas +20035,20,ks,Kansas +20037,20,ks,Kansas +20041,20,ks,Kansas +20045,20,ks,Kansas +20059,20,ks,Kansas +20079,20,ks,Kansas +20085,20,ks,Kansas +20087,20,ks,Kansas +20091,20,ks,Kansas +20099,20,ks,Kansas +20103,20,ks,Kansas +20111,20,ks,Kansas +20113,20,ks,Kansas +20115,20,ks,Kansas +20131,20,ks,Kansas +20133,20,ks,Kansas +20139,20,ks,Kansas +20155,20,ks,Kansas +20169,20,ks,Kansas +20173,20,ks,Kansas +20191,20,ks,Kansas +20209,20,ks,Kansas +20g01,20,ks,Kansas +20g02,20,ks,Kansas +20g03,20,ks,Kansas +20g04,20,ks,Kansas +20g05,20,ks,Kansas +20g06,20,ks,Kansas +20g07,20,ks,Kansas +20g08,20,ks,Kansas +20g09,20,ks,Kansas +20g10,20,ks,Kansas +20g11,20,ks,Kansas +20g12,20,ks,Kansas +20g13,20,ks,Kansas +20g14,20,ks,Kansas +20g15,20,ks,Kansas +20g16,20,ks,Kansas +20g17,20,ks,Kansas +20g18,20,ks,Kansas +20g19,20,ks,Kansas +20g20,20,ks,Kansas +20g21,20,ks,Kansas +20g22,20,ks,Kansas +20g23,20,ks,Kansas +20g24,20,ks,Kansas +20g25,20,ks,Kansas +20g26,20,ks,Kansas +20g27,20,ks,Kansas +21000,21,ky,Kentucky +21001,21,ky,Kentucky +21003,21,ky,Kentucky +21005,21,ky,Kentucky +21009,21,ky,Kentucky +21011,21,ky,Kentucky +21013,21,ky,Kentucky +21015,21,ky,Kentucky +21019,21,ky,Kentucky +21021,21,ky,Kentucky +21025,21,ky,Kentucky +21027,21,ky,Kentucky +21029,21,ky,Kentucky +21031,21,ky,Kentucky +21035,21,ky,Kentucky +21037,21,ky,Kentucky +21045,21,ky,Kentucky +21047,21,ky,Kentucky +21049,21,ky,Kentucky +21051,21,ky,Kentucky +21061,21,ky,Kentucky +21065,21,ky,Kentucky +21067,21,ky,Kentucky +21069,21,ky,Kentucky +21071,21,ky,Kentucky +21073,21,ky,Kentucky +21079,21,ky,Kentucky +21081,21,ky,Kentucky +21083,21,ky,Kentucky +21085,21,ky,Kentucky +21089,21,ky,Kentucky +21093,21,ky,Kentucky +21095,21,ky,Kentucky +21097,21,ky,Kentucky +21099,21,ky,Kentucky +21101,21,ky,Kentucky +21103,21,ky,Kentucky +21107,21,ky,Kentucky +21109,21,ky,Kentucky +21111,21,ky,Kentucky +21113,21,ky,Kentucky +21115,21,ky,Kentucky +21117,21,ky,Kentucky +21119,21,ky,Kentucky +21121,21,ky,Kentucky +21123,21,ky,Kentucky +21125,21,ky,Kentucky +21127,21,ky,Kentucky +21131,21,ky,Kentucky +21133,21,ky,Kentucky +21135,21,ky,Kentucky +21137,21,ky,Kentucky +21141,21,ky,Kentucky +21145,21,ky,Kentucky +21147,21,ky,Kentucky +21151,21,ky,Kentucky +21153,21,ky,Kentucky +21155,21,ky,Kentucky +21157,21,ky,Kentucky +21159,21,ky,Kentucky +21161,21,ky,Kentucky +21163,21,ky,Kentucky +21167,21,ky,Kentucky +21171,21,ky,Kentucky +21173,21,ky,Kentucky +21175,21,ky,Kentucky +21177,21,ky,Kentucky +21179,21,ky,Kentucky +21183,21,ky,Kentucky +21185,21,ky,Kentucky +21191,21,ky,Kentucky +21193,21,ky,Kentucky +21195,21,ky,Kentucky +21197,21,ky,Kentucky +21199,21,ky,Kentucky +21203,21,ky,Kentucky +21205,21,ky,Kentucky +21207,21,ky,Kentucky +21209,21,ky,Kentucky +21211,21,ky,Kentucky +21213,21,ky,Kentucky +21215,21,ky,Kentucky +21217,21,ky,Kentucky +21219,21,ky,Kentucky +21221,21,ky,Kentucky +21225,21,ky,Kentucky +21227,21,ky,Kentucky +21229,21,ky,Kentucky +21231,21,ky,Kentucky +21233,21,ky,Kentucky +21235,21,ky,Kentucky +21239,21,ky,Kentucky +21g01,21,ky,Kentucky +21g02,21,ky,Kentucky +21g03,21,ky,Kentucky +21g04,21,ky,Kentucky +21g05,21,ky,Kentucky +21g06,21,ky,Kentucky +21g07,21,ky,Kentucky +21g08,21,ky,Kentucky +21g09,21,ky,Kentucky +21g10,21,ky,Kentucky +21g11,21,ky,Kentucky +21g12,21,ky,Kentucky +21g13,21,ky,Kentucky +21g14,21,ky,Kentucky +22000,22,la,Louisiana +22001,22,la,Louisiana +22003,22,la,Louisiana +22005,22,la,Louisiana +22007,22,la,Louisiana +22009,22,la,Louisiana +22011,22,la,Louisiana +22015,22,la,Louisiana +22017,22,la,Louisiana +22025,22,la,Louisiana +22027,22,la,Louisiana +22029,22,la,Louisiana +22031,22,la,Louisiana +22033,22,la,Louisiana +22037,22,la,Louisiana +22039,22,la,Louisiana +22043,22,la,Louisiana +22045,22,la,Louisiana +22047,22,la,Louisiana +22049,22,la,Louisiana +22051,22,la,Louisiana +22053,22,la,Louisiana +22055,22,la,Louisiana +22057,22,la,Louisiana +22059,22,la,Louisiana +22061,22,la,Louisiana +22063,22,la,Louisiana +22065,22,la,Louisiana +22067,22,la,Louisiana +22069,22,la,Louisiana +22071,22,la,Louisiana +22075,22,la,Louisiana +22077,22,la,Louisiana +22079,22,la,Louisiana +22083,22,la,Louisiana +22085,22,la,Louisiana +22087,22,la,Louisiana +22089,22,la,Louisiana +22091,22,la,Louisiana +22093,22,la,Louisiana +22095,22,la,Louisiana +22097,22,la,Louisiana +22099,22,la,Louisiana +22101,22,la,Louisiana +22103,22,la,Louisiana +22105,22,la,Louisiana +22109,22,la,Louisiana +22111,22,la,Louisiana +22113,22,la,Louisiana +22115,22,la,Louisiana +22117,22,la,Louisiana +22119,22,la,Louisiana +22121,22,la,Louisiana +22125,22,la,Louisiana +22127,22,la,Louisiana +22g01,22,la,Louisiana +22g02,22,la,Louisiana +22g03,22,la,Louisiana +22g04,22,la,Louisiana +22g05,22,la,Louisiana +23000,23,me,Maine +23001,23,me,Maine +23003,23,me,Maine +23005,23,me,Maine +23007,23,me,Maine +23009,23,me,Maine +23011,23,me,Maine +23013,23,me,Maine +23015,23,me,Maine +23017,23,me,Maine +23019,23,me,Maine +23021,23,me,Maine +23023,23,me,Maine +23025,23,me,Maine +23027,23,me,Maine +23029,23,me,Maine +23031,23,me,Maine +24000,24,md,Maryland +24001,24,md,Maryland +24003,24,md,Maryland +24005,24,md,Maryland +24009,24,md,Maryland +24011,24,md,Maryland +24013,24,md,Maryland +24015,24,md,Maryland +24017,24,md,Maryland +24019,24,md,Maryland +24021,24,md,Maryland +24023,24,md,Maryland +24025,24,md,Maryland +24027,24,md,Maryland +24029,24,md,Maryland +24031,24,md,Maryland +24033,24,md,Maryland +24035,24,md,Maryland +24037,24,md,Maryland +24039,24,md,Maryland +24041,24,md,Maryland +24043,24,md,Maryland +24045,24,md,Maryland +24047,24,md,Maryland +24510,24,md,Maryland +25000,25,ma,Massachusetts +25001,25,ma,Massachusetts +25003,25,ma,Massachusetts +25005,25,ma,Massachusetts +25007,25,ma,Massachusetts +25009,25,ma,Massachusetts +25011,25,ma,Massachusetts +25013,25,ma,Massachusetts +25015,25,ma,Massachusetts +25017,25,ma,Massachusetts +25019,25,ma,Massachusetts +25021,25,ma,Massachusetts +25023,25,ma,Massachusetts +25025,25,ma,Massachusetts +25027,25,ma,Massachusetts +26000,26,mi,Michigan +26001,26,mi,Michigan +26005,26,mi,Michigan +26007,26,mi,Michigan +26009,26,mi,Michigan +26011,26,mi,Michigan +26015,26,mi,Michigan +26017,26,mi,Michigan +26019,26,mi,Michigan +26021,26,mi,Michigan +26023,26,mi,Michigan +26025,26,mi,Michigan +26027,26,mi,Michigan +26029,26,mi,Michigan +26031,26,mi,Michigan +26033,26,mi,Michigan +26035,26,mi,Michigan +26037,26,mi,Michigan +26039,26,mi,Michigan +26041,26,mi,Michigan +26043,26,mi,Michigan +26045,26,mi,Michigan +26047,26,mi,Michigan +26049,26,mi,Michigan +26051,26,mi,Michigan +26055,26,mi,Michigan +26057,26,mi,Michigan +26059,26,mi,Michigan +26063,26,mi,Michigan +26065,26,mi,Michigan +26067,26,mi,Michigan +26069,26,mi,Michigan +26071,26,mi,Michigan +26073,26,mi,Michigan +26075,26,mi,Michigan +26077,26,mi,Michigan +26079,26,mi,Michigan +26081,26,mi,Michigan +26085,26,mi,Michigan +26087,26,mi,Michigan +26089,26,mi,Michigan +26091,26,mi,Michigan +26093,26,mi,Michigan +26099,26,mi,Michigan +26101,26,mi,Michigan +26103,26,mi,Michigan +26105,26,mi,Michigan +26107,26,mi,Michigan +26109,26,mi,Michigan +26111,26,mi,Michigan +26113,26,mi,Michigan +26115,26,mi,Michigan +26117,26,mi,Michigan +26121,26,mi,Michigan +26123,26,mi,Michigan +26125,26,mi,Michigan +26127,26,mi,Michigan +26129,26,mi,Michigan +26133,26,mi,Michigan +26137,26,mi,Michigan +26139,26,mi,Michigan +26141,26,mi,Michigan +26143,26,mi,Michigan +26145,26,mi,Michigan +26147,26,mi,Michigan +26149,26,mi,Michigan +26151,26,mi,Michigan +26155,26,mi,Michigan +26157,26,mi,Michigan +26159,26,mi,Michigan +26161,26,mi,Michigan +26163,26,mi,Michigan +26165,26,mi,Michigan +26g01,26,mi,Michigan +26g02,26,mi,Michigan +26g03,26,mi,Michigan +26g04,26,mi,Michigan +26g05,26,mi,Michigan +27000,27,mn,Minnesota +27001,27,mn,Minnesota +27003,27,mn,Minnesota +27005,27,mn,Minnesota +27009,27,mn,Minnesota +27013,27,mn,Minnesota +27015,27,mn,Minnesota +27017,27,mn,Minnesota +27019,27,mn,Minnesota +27021,27,mn,Minnesota +27025,27,mn,Minnesota +27033,27,mn,Minnesota +27035,27,mn,Minnesota +27037,27,mn,Minnesota +27039,27,mn,Minnesota +27041,27,mn,Minnesota +27043,27,mn,Minnesota +27045,27,mn,Minnesota +27047,27,mn,Minnesota +27049,27,mn,Minnesota +27053,27,mn,Minnesota +27055,27,mn,Minnesota +27057,27,mn,Minnesota +27059,27,mn,Minnesota +27061,27,mn,Minnesota +27063,27,mn,Minnesota +27065,27,mn,Minnesota +27067,27,mn,Minnesota +27071,27,mn,Minnesota +27079,27,mn,Minnesota +27083,27,mn,Minnesota +27085,27,mn,Minnesota +27091,27,mn,Minnesota +27093,27,mn,Minnesota +27095,27,mn,Minnesota +27097,27,mn,Minnesota +27099,27,mn,Minnesota +27103,27,mn,Minnesota +27109,27,mn,Minnesota +27111,27,mn,Minnesota +27115,27,mn,Minnesota +27119,27,mn,Minnesota +27121,27,mn,Minnesota +27123,27,mn,Minnesota +27127,27,mn,Minnesota +27129,27,mn,Minnesota +27131,27,mn,Minnesota +27135,27,mn,Minnesota +27137,27,mn,Minnesota +27139,27,mn,Minnesota +27141,27,mn,Minnesota +27143,27,mn,Minnesota +27145,27,mn,Minnesota +27147,27,mn,Minnesota +27153,27,mn,Minnesota +27157,27,mn,Minnesota +27159,27,mn,Minnesota +27161,27,mn,Minnesota +27163,27,mn,Minnesota +27165,27,mn,Minnesota +27169,27,mn,Minnesota +27171,27,mn,Minnesota +27g01,27,mn,Minnesota +27g02,27,mn,Minnesota +27g03,27,mn,Minnesota +27g04,27,mn,Minnesota +27g05,27,mn,Minnesota +27g06,27,mn,Minnesota +27g07,27,mn,Minnesota +27g08,27,mn,Minnesota +27g09,27,mn,Minnesota +27g10,27,mn,Minnesota +27g11,27,mn,Minnesota +28000,28,ms,Mississippi +28003,28,ms,Mississippi +28007,28,ms,Mississippi +28011,28,ms,Mississippi +28013,28,ms,Mississippi +28015,28,ms,Mississippi +28017,28,ms,Mississippi +28023,28,ms,Mississippi +28025,28,ms,Mississippi +28029,28,ms,Mississippi +28031,28,ms,Mississippi +28033,28,ms,Mississippi +28035,28,ms,Mississippi +28039,28,ms,Mississippi +28041,28,ms,Mississippi +28043,28,ms,Mississippi +28045,28,ms,Mississippi +28047,28,ms,Mississippi +28049,28,ms,Mississippi +28051,28,ms,Mississippi +28057,28,ms,Mississippi +28059,28,ms,Mississippi +28061,28,ms,Mississippi +28065,28,ms,Mississippi +28067,28,ms,Mississippi +28071,28,ms,Mississippi +28073,28,ms,Mississippi +28077,28,ms,Mississippi +28079,28,ms,Mississippi +28081,28,ms,Mississippi +28083,28,ms,Mississippi +28085,28,ms,Mississippi +28087,28,ms,Mississippi +28089,28,ms,Mississippi +28091,28,ms,Mississippi +28093,28,ms,Mississippi +28095,28,ms,Mississippi +28097,28,ms,Mississippi +28099,28,ms,Mississippi +28101,28,ms,Mississippi +28103,28,ms,Mississippi +28105,28,ms,Mississippi +28107,28,ms,Mississippi +28109,28,ms,Mississippi +28111,28,ms,Mississippi +28113,28,ms,Mississippi +28115,28,ms,Mississippi +28117,28,ms,Mississippi +28121,28,ms,Mississippi +28123,28,ms,Mississippi +28127,28,ms,Mississippi +28129,28,ms,Mississippi +28131,28,ms,Mississippi +28133,28,ms,Mississippi +28135,28,ms,Mississippi +28137,28,ms,Mississippi +28141,28,ms,Mississippi +28143,28,ms,Mississippi +28145,28,ms,Mississippi +28147,28,ms,Mississippi +28149,28,ms,Mississippi +28151,28,ms,Mississippi +28153,28,ms,Mississippi +28159,28,ms,Mississippi +28161,28,ms,Mississippi +28g01,28,ms,Mississippi +28g02,28,ms,Mississippi +28g03,28,ms,Mississippi +28g04,28,ms,Mississippi +28g05,28,ms,Mississippi +28g06,28,ms,Mississippi +28g07,28,ms,Mississippi +28g08,28,ms,Mississippi +29000,29,mo,Missouri +29001,29,mo,Missouri +29003,29,mo,Missouri +29007,29,mo,Missouri +29009,29,mo,Missouri +29011,29,mo,Missouri +29013,29,mo,Missouri +29015,29,mo,Missouri +29017,29,mo,Missouri +29019,29,mo,Missouri +29021,29,mo,Missouri +29023,29,mo,Missouri +29027,29,mo,Missouri +29029,29,mo,Missouri +29031,29,mo,Missouri +29037,29,mo,Missouri +29043,29,mo,Missouri +29047,29,mo,Missouri +29049,29,mo,Missouri +29051,29,mo,Missouri +29053,29,mo,Missouri +29055,29,mo,Missouri +29059,29,mo,Missouri +29069,29,mo,Missouri +29071,29,mo,Missouri +29073,29,mo,Missouri +29077,29,mo,Missouri +29089,29,mo,Missouri +29091,29,mo,Missouri +29095,29,mo,Missouri +29097,29,mo,Missouri +29099,29,mo,Missouri +29101,29,mo,Missouri +29105,29,mo,Missouri +29107,29,mo,Missouri +29109,29,mo,Missouri +29113,29,mo,Missouri +29119,29,mo,Missouri +29121,29,mo,Missouri +29123,29,mo,Missouri +29127,29,mo,Missouri +29131,29,mo,Missouri +29133,29,mo,Missouri +29135,29,mo,Missouri +29139,29,mo,Missouri +29141,29,mo,Missouri +29143,29,mo,Missouri +29145,29,mo,Missouri +29149,29,mo,Missouri +29155,29,mo,Missouri +29157,29,mo,Missouri +29159,29,mo,Missouri +29161,29,mo,Missouri +29163,29,mo,Missouri +29165,29,mo,Missouri +29169,29,mo,Missouri +29173,29,mo,Missouri +29175,29,mo,Missouri +29183,29,mo,Missouri +29186,29,mo,Missouri +29187,29,mo,Missouri +29189,29,mo,Missouri +29195,29,mo,Missouri +29201,29,mo,Missouri +29207,29,mo,Missouri +29209,29,mo,Missouri +29213,29,mo,Missouri +29215,29,mo,Missouri +29217,29,mo,Missouri +29219,29,mo,Missouri +29221,29,mo,Missouri +29223,29,mo,Missouri +29225,29,mo,Missouri +29229,29,mo,Missouri +29510,29,mo,Missouri +29g01,29,mo,Missouri +29g02,29,mo,Missouri +29g03,29,mo,Missouri +29g04,29,mo,Missouri +29g05,29,mo,Missouri +29g06,29,mo,Missouri +29g07,29,mo,Missouri +29g08,29,mo,Missouri +29g09,29,mo,Missouri +29g10,29,mo,Missouri +29g11,29,mo,Missouri +29g12,29,mo,Missouri +29g13,29,mo,Missouri +29g14,29,mo,Missouri +29g15,29,mo,Missouri +29g16,29,mo,Missouri +29g17,29,mo,Missouri +29g18,29,mo,Missouri +29g19,29,mo,Missouri +30000,30,mt,Montana +30003,30,mt,Montana +30009,30,mt,Montana +30029,30,mt,Montana +30035,30,mt,Montana +30047,30,mt,Montana +30053,30,mt,Montana +30063,30,mt,Montana +30067,30,mt,Montana +30081,30,mt,Montana +30083,30,mt,Montana +30g01,30,mt,Montana +30g02,30,mt,Montana +30g03,30,mt,Montana +30g04,30,mt,Montana +30g05,30,mt,Montana +30g06,30,mt,Montana +30g07,30,mt,Montana +30g08,30,mt,Montana +30g09,30,mt,Montana +30g10,30,mt,Montana +30g11,30,mt,Montana +30g12,30,mt,Montana +30g13,30,mt,Montana +30g14,30,mt,Montana +30g15,30,mt,Montana +30g16,30,mt,Montana +30g17,30,mt,Montana +31000,31,ne,Nebraska +31019,31,ne,Nebraska +31025,31,ne,Nebraska +31041,31,ne,Nebraska +31043,31,ne,Nebraska +31047,31,ne,Nebraska +31053,31,ne,Nebraska +31055,31,ne,Nebraska +31067,31,ne,Nebraska +31079,31,ne,Nebraska +31109,31,ne,Nebraska +31119,31,ne,Nebraska +31141,31,ne,Nebraska +31153,31,ne,Nebraska +31155,31,ne,Nebraska +31159,31,ne,Nebraska +31g01,31,ne,Nebraska +31g02,31,ne,Nebraska +31g03,31,ne,Nebraska +31g04,31,ne,Nebraska +31g05,31,ne,Nebraska +31g06,31,ne,Nebraska +31g07,31,ne,Nebraska +31g08,31,ne,Nebraska +31g09,31,ne,Nebraska +31g10,31,ne,Nebraska +31g11,31,ne,Nebraska +31g12,31,ne,Nebraska +31g13,31,ne,Nebraska +31g14,31,ne,Nebraska +31g15,31,ne,Nebraska +31g16,31,ne,Nebraska +31g17,31,ne,Nebraska +31g18,31,ne,Nebraska +31g19,31,ne,Nebraska +31g20,31,ne,Nebraska +31g21,31,ne,Nebraska +31g22,31,ne,Nebraska +31g23,31,ne,Nebraska +31g24,31,ne,Nebraska +32000,32,nv,Nevada +32005,32,nv,Nevada +32013,32,nv,Nevada +32023,32,nv,Nevada +32031,32,nv,Nevada +32g01,32,nv,Nevada +32g02,32,nv,Nevada +32g03,32,nv,Nevada +32g04,32,nv,Nevada +32g05,32,nv,Nevada +33000,33,nh,New Hampshire +33001,33,nh,New Hampshire +33003,33,nh,New Hampshire +33005,33,nh,New Hampshire +33007,33,nh,New Hampshire +33009,33,nh,New Hampshire +33011,33,nh,New Hampshire +33013,33,nh,New Hampshire +33015,33,nh,New Hampshire +33017,33,nh,New Hampshire +33019,33,nh,New Hampshire +34000,34,nj,New Jersey +34001,34,nj,New Jersey +34003,34,nj,New Jersey +34005,34,nj,New Jersey +34007,34,nj,New Jersey +34009,34,nj,New Jersey +34011,34,nj,New Jersey +34013,34,nj,New Jersey +34015,34,nj,New Jersey +34017,34,nj,New Jersey +34019,34,nj,New Jersey +34021,34,nj,New Jersey +34023,34,nj,New Jersey +34025,34,nj,New Jersey +34027,34,nj,New Jersey +34029,34,nj,New Jersey +34031,34,nj,New Jersey +34033,34,nj,New Jersey +34035,34,nj,New Jersey +34037,34,nj,New Jersey +34039,34,nj,New Jersey +34041,34,nj,New Jersey +35000,35,nm,New Mexico +35001,35,nm,New Mexico +35005,35,nm,New Mexico +35013,35,nm,New Mexico +35015,35,nm,New Mexico +35025,35,nm,New Mexico +35027,35,nm,New Mexico +35028,35,nm,New Mexico +35029,35,nm,New Mexico +35031,35,nm,New Mexico +35035,35,nm,New Mexico +35039,35,nm,New Mexico +35041,35,nm,New Mexico +35043,35,nm,New Mexico +35045,35,nm,New Mexico +35049,35,nm,New Mexico +35051,35,nm,New Mexico +35053,35,nm,New Mexico +35055,35,nm,New Mexico +35057,35,nm,New Mexico +35061,35,nm,New Mexico +35g01,35,nm,New Mexico +35g02,35,nm,New Mexico +35g03,35,nm,New Mexico +35g04,35,nm,New Mexico +35g05,35,nm,New Mexico +36000,36,ny,New York +36001,36,ny,New York +36003,36,ny,New York +36005,36,ny,New York +36007,36,ny,New York +36009,36,ny,New York +36011,36,ny,New York +36013,36,ny,New York +36015,36,ny,New York +36017,36,ny,New York +36019,36,ny,New York +36021,36,ny,New York +36023,36,ny,New York +36025,36,ny,New York +36027,36,ny,New York +36029,36,ny,New York +36031,36,ny,New York +36033,36,ny,New York +36035,36,ny,New York +36037,36,ny,New York +36039,36,ny,New York +36045,36,ny,New York +36047,36,ny,New York +36049,36,ny,New York +36051,36,ny,New York +36053,36,ny,New York +36055,36,ny,New York +36057,36,ny,New York +36059,36,ny,New York +36061,36,ny,New York +36063,36,ny,New York +36065,36,ny,New York +36067,36,ny,New York +36069,36,ny,New York +36071,36,ny,New York +36073,36,ny,New York +36075,36,ny,New York +36077,36,ny,New York +36079,36,ny,New York +36081,36,ny,New York +36083,36,ny,New York +36085,36,ny,New York +36087,36,ny,New York +36089,36,ny,New York +36091,36,ny,New York +36093,36,ny,New York +36095,36,ny,New York +36097,36,ny,New York +36099,36,ny,New York +36101,36,ny,New York +36103,36,ny,New York +36105,36,ny,New York +36107,36,ny,New York +36109,36,ny,New York +36111,36,ny,New York +36113,36,ny,New York +36115,36,ny,New York +36117,36,ny,New York +36119,36,ny,New York +36121,36,ny,New York +36123,36,ny,New York +36g01,36,ny,New York +37000,37,nc,North Carolina +37001,37,nc,North Carolina +37003,37,nc,North Carolina +37005,37,nc,North Carolina +37007,37,nc,North Carolina +37009,37,nc,North Carolina +37011,37,nc,North Carolina +37013,37,nc,North Carolina +37015,37,nc,North Carolina +37017,37,nc,North Carolina +37019,37,nc,North Carolina +37021,37,nc,North Carolina +37023,37,nc,North Carolina +37025,37,nc,North Carolina +37027,37,nc,North Carolina +37029,37,nc,North Carolina +37031,37,nc,North Carolina +37033,37,nc,North Carolina +37035,37,nc,North Carolina +37037,37,nc,North Carolina +37039,37,nc,North Carolina +37041,37,nc,North Carolina +37045,37,nc,North Carolina +37047,37,nc,North Carolina +37049,37,nc,North Carolina +37051,37,nc,North Carolina +37053,37,nc,North Carolina +37055,37,nc,North Carolina +37057,37,nc,North Carolina +37059,37,nc,North Carolina +37061,37,nc,North Carolina +37063,37,nc,North Carolina +37065,37,nc,North Carolina +37067,37,nc,North Carolina +37069,37,nc,North Carolina +37071,37,nc,North Carolina +37073,37,nc,North Carolina +37077,37,nc,North Carolina +37079,37,nc,North Carolina +37081,37,nc,North Carolina +37083,37,nc,North Carolina +37085,37,nc,North Carolina +37087,37,nc,North Carolina +37089,37,nc,North Carolina +37091,37,nc,North Carolina +37093,37,nc,North Carolina +37097,37,nc,North Carolina +37099,37,nc,North Carolina +37101,37,nc,North Carolina +37103,37,nc,North Carolina +37105,37,nc,North Carolina +37107,37,nc,North Carolina +37109,37,nc,North Carolina +37111,37,nc,North Carolina +37113,37,nc,North Carolina +37115,37,nc,North Carolina +37117,37,nc,North Carolina +37119,37,nc,North Carolina +37121,37,nc,North Carolina +37123,37,nc,North Carolina +37125,37,nc,North Carolina +37127,37,nc,North Carolina +37129,37,nc,North Carolina +37131,37,nc,North Carolina +37133,37,nc,North Carolina +37135,37,nc,North Carolina +37137,37,nc,North Carolina +37139,37,nc,North Carolina +37141,37,nc,North Carolina +37143,37,nc,North Carolina +37145,37,nc,North Carolina +37147,37,nc,North Carolina +37149,37,nc,North Carolina +37151,37,nc,North Carolina +37153,37,nc,North Carolina +37155,37,nc,North Carolina +37157,37,nc,North Carolina +37159,37,nc,North Carolina +37161,37,nc,North Carolina +37163,37,nc,North Carolina +37165,37,nc,North Carolina +37167,37,nc,North Carolina +37169,37,nc,North Carolina +37171,37,nc,North Carolina +37173,37,nc,North Carolina +37175,37,nc,North Carolina +37179,37,nc,North Carolina +37181,37,nc,North Carolina +37183,37,nc,North Carolina +37185,37,nc,North Carolina +37189,37,nc,North Carolina +37191,37,nc,North Carolina +37193,37,nc,North Carolina +37195,37,nc,North Carolina +37197,37,nc,North Carolina +37199,37,nc,North Carolina +37g01,37,nc,North Carolina +37g02,37,nc,North Carolina +38000,38,nd,North Dakota +38053,38,nd,North Dakota +38g01,38,nd,North Dakota +38g02,38,nd,North Dakota +38g03,38,nd,North Dakota +38g04,38,nd,North Dakota +38g05,38,nd,North Dakota +38g06,38,nd,North Dakota +38g07,38,nd,North Dakota +38g08,38,nd,North Dakota +38g09,38,nd,North Dakota +38g10,38,nd,North Dakota +38g11,38,nd,North Dakota +38g12,38,nd,North Dakota +38g13,38,nd,North Dakota +38g14,38,nd,North Dakota +38g15,38,nd,North Dakota +38g16,38,nd,North Dakota +38g17,38,nd,North Dakota +39000,39,oh,Ohio +39001,39,oh,Ohio +39003,39,oh,Ohio +39005,39,oh,Ohio +39007,39,oh,Ohio +39009,39,oh,Ohio +39011,39,oh,Ohio +39013,39,oh,Ohio +39015,39,oh,Ohio +39017,39,oh,Ohio +39019,39,oh,Ohio +39021,39,oh,Ohio +39023,39,oh,Ohio +39025,39,oh,Ohio +39027,39,oh,Ohio +39029,39,oh,Ohio +39031,39,oh,Ohio +39033,39,oh,Ohio +39035,39,oh,Ohio +39037,39,oh,Ohio +39039,39,oh,Ohio +39041,39,oh,Ohio +39043,39,oh,Ohio +39045,39,oh,Ohio +39047,39,oh,Ohio +39049,39,oh,Ohio +39051,39,oh,Ohio +39053,39,oh,Ohio +39055,39,oh,Ohio +39057,39,oh,Ohio +39059,39,oh,Ohio +39061,39,oh,Ohio +39063,39,oh,Ohio +39065,39,oh,Ohio +39067,39,oh,Ohio +39069,39,oh,Ohio +39071,39,oh,Ohio +39073,39,oh,Ohio +39075,39,oh,Ohio +39077,39,oh,Ohio +39079,39,oh,Ohio +39081,39,oh,Ohio +39083,39,oh,Ohio +39085,39,oh,Ohio +39087,39,oh,Ohio +39089,39,oh,Ohio +39091,39,oh,Ohio +39093,39,oh,Ohio +39095,39,oh,Ohio +39097,39,oh,Ohio +39099,39,oh,Ohio +39101,39,oh,Ohio +39103,39,oh,Ohio +39105,39,oh,Ohio +39107,39,oh,Ohio +39109,39,oh,Ohio +39111,39,oh,Ohio +39113,39,oh,Ohio +39115,39,oh,Ohio +39117,39,oh,Ohio +39119,39,oh,Ohio +39121,39,oh,Ohio +39123,39,oh,Ohio +39125,39,oh,Ohio +39127,39,oh,Ohio +39129,39,oh,Ohio +39131,39,oh,Ohio +39133,39,oh,Ohio +39135,39,oh,Ohio +39137,39,oh,Ohio +39139,39,oh,Ohio +39141,39,oh,Ohio +39143,39,oh,Ohio +39145,39,oh,Ohio +39147,39,oh,Ohio +39149,39,oh,Ohio +39151,39,oh,Ohio +39153,39,oh,Ohio +39155,39,oh,Ohio +39157,39,oh,Ohio +39159,39,oh,Ohio +39161,39,oh,Ohio +39163,39,oh,Ohio +39165,39,oh,Ohio +39167,39,oh,Ohio +39169,39,oh,Ohio +39171,39,oh,Ohio +39173,39,oh,Ohio +39175,39,oh,Ohio +40000,40,ok,Oklahoma +40001,40,ok,Oklahoma +40013,40,ok,Oklahoma +40015,40,ok,Oklahoma +40017,40,ok,Oklahoma +40021,40,ok,Oklahoma +40023,40,ok,Oklahoma +40027,40,ok,Oklahoma +40035,40,ok,Oklahoma +40037,40,ok,Oklahoma +40041,40,ok,Oklahoma +40049,40,ok,Oklahoma +40051,40,ok,Oklahoma +40061,40,ok,Oklahoma +40063,40,ok,Oklahoma +40069,40,ok,Oklahoma +40071,40,ok,Oklahoma +40077,40,ok,Oklahoma +40079,40,ok,Oklahoma +40081,40,ok,Oklahoma +40083,40,ok,Oklahoma +40087,40,ok,Oklahoma +40089,40,ok,Oklahoma +40091,40,ok,Oklahoma +40095,40,ok,Oklahoma +40097,40,ok,Oklahoma +40099,40,ok,Oklahoma +40101,40,ok,Oklahoma +40103,40,ok,Oklahoma +40105,40,ok,Oklahoma +40107,40,ok,Oklahoma +40109,40,ok,Oklahoma +40111,40,ok,Oklahoma +40113,40,ok,Oklahoma +40115,40,ok,Oklahoma +40117,40,ok,Oklahoma +40119,40,ok,Oklahoma +40121,40,ok,Oklahoma +40123,40,ok,Oklahoma +40125,40,ok,Oklahoma +40127,40,ok,Oklahoma +40131,40,ok,Oklahoma +40133,40,ok,Oklahoma +40135,40,ok,Oklahoma +40143,40,ok,Oklahoma +40145,40,ok,Oklahoma +40147,40,ok,Oklahoma +40153,40,ok,Oklahoma +40g01,40,ok,Oklahoma +40g02,40,ok,Oklahoma +40g03,40,ok,Oklahoma +40g04,40,ok,Oklahoma +40g05,40,ok,Oklahoma +40g06,40,ok,Oklahoma +40g07,40,ok,Oklahoma +40g08,40,ok,Oklahoma +40g09,40,ok,Oklahoma +40g10,40,ok,Oklahoma +40g11,40,ok,Oklahoma +40g12,40,ok,Oklahoma +40g13,40,ok,Oklahoma +41000,41,or,Oregon +41001,41,or,Oregon +41003,41,or,Oregon +41005,41,or,Oregon +41007,41,or,Oregon +41009,41,or,Oregon +41011,41,or,Oregon +41013,41,or,Oregon +41015,41,or,Oregon +41017,41,or,Oregon +41019,41,or,Oregon +41027,41,or,Oregon +41029,41,or,Oregon +41031,41,or,Oregon +41033,41,or,Oregon +41039,41,or,Oregon +41041,41,or,Oregon +41043,41,or,Oregon +41047,41,or,Oregon +41051,41,or,Oregon +41053,41,or,Oregon +41057,41,or,Oregon +41059,41,or,Oregon +41067,41,or,Oregon +41071,41,or,Oregon +41g01,41,or,Oregon +41g02,41,or,Oregon +41g03,41,or,Oregon +41g04,41,or,Oregon +41g05,41,or,Oregon +42000,42,pa,Pennsylvania +42001,42,pa,Pennsylvania +42003,42,pa,Pennsylvania +42005,42,pa,Pennsylvania +42007,42,pa,Pennsylvania +42009,42,pa,Pennsylvania +42011,42,pa,Pennsylvania +42013,42,pa,Pennsylvania +42017,42,pa,Pennsylvania +42019,42,pa,Pennsylvania +42021,42,pa,Pennsylvania +42025,42,pa,Pennsylvania +42027,42,pa,Pennsylvania +42029,42,pa,Pennsylvania +42031,42,pa,Pennsylvania +42033,42,pa,Pennsylvania +42035,42,pa,Pennsylvania +42037,42,pa,Pennsylvania +42039,42,pa,Pennsylvania +42041,42,pa,Pennsylvania +42043,42,pa,Pennsylvania +42045,42,pa,Pennsylvania +42047,42,pa,Pennsylvania +42049,42,pa,Pennsylvania +42051,42,pa,Pennsylvania +42055,42,pa,Pennsylvania +42057,42,pa,Pennsylvania +42059,42,pa,Pennsylvania +42061,42,pa,Pennsylvania +42063,42,pa,Pennsylvania +42065,42,pa,Pennsylvania +42067,42,pa,Pennsylvania +42069,42,pa,Pennsylvania +42071,42,pa,Pennsylvania +42073,42,pa,Pennsylvania +42075,42,pa,Pennsylvania +42077,42,pa,Pennsylvania +42079,42,pa,Pennsylvania +42081,42,pa,Pennsylvania +42083,42,pa,Pennsylvania +42085,42,pa,Pennsylvania +42087,42,pa,Pennsylvania +42089,42,pa,Pennsylvania +42091,42,pa,Pennsylvania +42093,42,pa,Pennsylvania +42095,42,pa,Pennsylvania +42097,42,pa,Pennsylvania +42099,42,pa,Pennsylvania +42101,42,pa,Pennsylvania +42103,42,pa,Pennsylvania +42107,42,pa,Pennsylvania +42109,42,pa,Pennsylvania +42111,42,pa,Pennsylvania +42115,42,pa,Pennsylvania +42117,42,pa,Pennsylvania +42119,42,pa,Pennsylvania +42121,42,pa,Pennsylvania +42125,42,pa,Pennsylvania +42127,42,pa,Pennsylvania +42129,42,pa,Pennsylvania +42131,42,pa,Pennsylvania +42133,42,pa,Pennsylvania +42g01,42,pa,Pennsylvania +42g02,42,pa,Pennsylvania +42g03,42,pa,Pennsylvania +44000,44,ri,Rhode Island +44001,44,ri,Rhode Island +44003,44,ri,Rhode Island +44005,44,ri,Rhode Island +44007,44,ri,Rhode Island +44009,44,ri,Rhode Island +45000,45,sc,South Carolina +45001,45,sc,South Carolina +45003,45,sc,South Carolina +45007,45,sc,South Carolina +45009,45,sc,South Carolina +45013,45,sc,South Carolina +45015,45,sc,South Carolina +45017,45,sc,South Carolina +45019,45,sc,South Carolina +45021,45,sc,South Carolina +45023,45,sc,South Carolina +45025,45,sc,South Carolina +45027,45,sc,South Carolina +45029,45,sc,South Carolina +45031,45,sc,South Carolina +45033,45,sc,South Carolina +45035,45,sc,South Carolina +45037,45,sc,South Carolina +45039,45,sc,South Carolina +45041,45,sc,South Carolina +45043,45,sc,South Carolina +45045,45,sc,South Carolina +45049,45,sc,South Carolina +45051,45,sc,South Carolina +45053,45,sc,South Carolina +45055,45,sc,South Carolina +45057,45,sc,South Carolina +45059,45,sc,South Carolina +45061,45,sc,South Carolina +45063,45,sc,South Carolina +45067,45,sc,South Carolina +45069,45,sc,South Carolina +45071,45,sc,South Carolina +45073,45,sc,South Carolina +45075,45,sc,South Carolina +45077,45,sc,South Carolina +45079,45,sc,South Carolina +45081,45,sc,South Carolina +45083,45,sc,South Carolina +45085,45,sc,South Carolina +45087,45,sc,South Carolina +45089,45,sc,South Carolina +45091,45,sc,South Carolina +45g01,45,sc,South Carolina +45g02,45,sc,South Carolina +46000,46,sd,South Dakota +46027,46,sd,South Dakota +46081,46,sd,South Dakota +46083,46,sd,South Dakota +46102,46,sd,South Dakota +46103,46,sd,South Dakota +46127,46,sd,South Dakota +46g01,46,sd,South Dakota +46g02,46,sd,South Dakota +46g03,46,sd,South Dakota +46g04,46,sd,South Dakota +46g05,46,sd,South Dakota +46g06,46,sd,South Dakota +46g07,46,sd,South Dakota +46g08,46,sd,South Dakota +46g09,46,sd,South Dakota +46g10,46,sd,South Dakota +46g11,46,sd,South Dakota +46g12,46,sd,South Dakota +46g13,46,sd,South Dakota +46g14,46,sd,South Dakota +46g15,46,sd,South Dakota +46g16,46,sd,South Dakota +46g17,46,sd,South Dakota +46g18,46,sd,South Dakota +46g19,46,sd,South Dakota +46g20,46,sd,South Dakota +46g21,46,sd,South Dakota +47000,47,tn,Tennessee +47001,47,tn,Tennessee +47005,47,tn,Tennessee +47007,47,tn,Tennessee +47009,47,tn,Tennessee +47011,47,tn,Tennessee +47013,47,tn,Tennessee +47015,47,tn,Tennessee +47017,47,tn,Tennessee +47019,47,tn,Tennessee +47021,47,tn,Tennessee +47023,47,tn,Tennessee +47025,47,tn,Tennessee +47029,47,tn,Tennessee +47031,47,tn,Tennessee +47033,47,tn,Tennessee +47035,47,tn,Tennessee +47037,47,tn,Tennessee +47041,47,tn,Tennessee +47043,47,tn,Tennessee +47047,47,tn,Tennessee +47051,47,tn,Tennessee +47053,47,tn,Tennessee +47055,47,tn,Tennessee +47057,47,tn,Tennessee +47059,47,tn,Tennessee +47061,47,tn,Tennessee +47063,47,tn,Tennessee +47065,47,tn,Tennessee +47069,47,tn,Tennessee +47071,47,tn,Tennessee +47075,47,tn,Tennessee +47077,47,tn,Tennessee +47079,47,tn,Tennessee +47081,47,tn,Tennessee +47085,47,tn,Tennessee +47089,47,tn,Tennessee +47091,47,tn,Tennessee +47093,47,tn,Tennessee +47097,47,tn,Tennessee +47099,47,tn,Tennessee +47101,47,tn,Tennessee +47103,47,tn,Tennessee +47105,47,tn,Tennessee +47107,47,tn,Tennessee +47109,47,tn,Tennessee +47113,47,tn,Tennessee +47115,47,tn,Tennessee +47117,47,tn,Tennessee +47119,47,tn,Tennessee +47121,47,tn,Tennessee +47123,47,tn,Tennessee +47125,47,tn,Tennessee +47129,47,tn,Tennessee +47131,47,tn,Tennessee +47133,47,tn,Tennessee +47139,47,tn,Tennessee +47141,47,tn,Tennessee +47143,47,tn,Tennessee +47145,47,tn,Tennessee +47147,47,tn,Tennessee +47149,47,tn,Tennessee +47151,47,tn,Tennessee +47153,47,tn,Tennessee +47155,47,tn,Tennessee +47157,47,tn,Tennessee +47159,47,tn,Tennessee +47163,47,tn,Tennessee +47165,47,tn,Tennessee +47167,47,tn,Tennessee +47171,47,tn,Tennessee +47173,47,tn,Tennessee +47177,47,tn,Tennessee +47179,47,tn,Tennessee +47181,47,tn,Tennessee +47183,47,tn,Tennessee +47187,47,tn,Tennessee +47189,47,tn,Tennessee +47g01,47,tn,Tennessee +47g02,47,tn,Tennessee +47g03,47,tn,Tennessee +47g04,47,tn,Tennessee +47g05,47,tn,Tennessee +47g06,47,tn,Tennessee +47g07,47,tn,Tennessee +47g08,47,tn,Tennessee +47g09,47,tn,Tennessee +48000,48,tx,Texas +48001,48,tx,Texas +48003,48,tx,Texas +48005,48,tx,Texas +48013,48,tx,Texas +48015,48,tx,Texas +48019,48,tx,Texas +48021,48,tx,Texas +48027,48,tx,Texas +48029,48,tx,Texas +48031,48,tx,Texas +48035,48,tx,Texas +48037,48,tx,Texas +48039,48,tx,Texas +48041,48,tx,Texas +48051,48,tx,Texas +48053,48,tx,Texas +48055,48,tx,Texas +48057,48,tx,Texas +48061,48,tx,Texas +48063,48,tx,Texas +48067,48,tx,Texas +48071,48,tx,Texas +48073,48,tx,Texas +48077,48,tx,Texas +48085,48,tx,Texas +48089,48,tx,Texas +48091,48,tx,Texas +48093,48,tx,Texas +48097,48,tx,Texas +48113,48,tx,Texas +48121,48,tx,Texas +48123,48,tx,Texas +48127,48,tx,Texas +48131,48,tx,Texas +48139,48,tx,Texas +48143,48,tx,Texas +48145,48,tx,Texas +48147,48,tx,Texas +48149,48,tx,Texas +48157,48,tx,Texas +48159,48,tx,Texas +48161,48,tx,Texas +48167,48,tx,Texas +48171,48,tx,Texas +48177,48,tx,Texas +48181,48,tx,Texas +48183,48,tx,Texas +48185,48,tx,Texas +48187,48,tx,Texas +48189,48,tx,Texas +48199,48,tx,Texas +48201,48,tx,Texas +48203,48,tx,Texas +48209,48,tx,Texas +48213,48,tx,Texas +48215,48,tx,Texas +48217,48,tx,Texas +48219,48,tx,Texas +48225,48,tx,Texas +48231,48,tx,Texas +48239,48,tx,Texas +48241,48,tx,Texas +48245,48,tx,Texas +48249,48,tx,Texas +48251,48,tx,Texas +48255,48,tx,Texas +48257,48,tx,Texas +48259,48,tx,Texas +48273,48,tx,Texas +48277,48,tx,Texas +48281,48,tx,Texas +48285,48,tx,Texas +48287,48,tx,Texas +48289,48,tx,Texas +48291,48,tx,Texas +48293,48,tx,Texas +48299,48,tx,Texas +48309,48,tx,Texas +48313,48,tx,Texas +48315,48,tx,Texas +48321,48,tx,Texas +48325,48,tx,Texas +48329,48,tx,Texas +48331,48,tx,Texas +48337,48,tx,Texas +48339,48,tx,Texas +48343,48,tx,Texas +48347,48,tx,Texas +48349,48,tx,Texas +48351,48,tx,Texas +48355,48,tx,Texas +48361,48,tx,Texas +48365,48,tx,Texas +48367,48,tx,Texas +48373,48,tx,Texas +48375,48,tx,Texas +48379,48,tx,Texas +48387,48,tx,Texas +48395,48,tx,Texas +48397,48,tx,Texas +48399,48,tx,Texas +48401,48,tx,Texas +48407,48,tx,Texas +48409,48,tx,Texas +48419,48,tx,Texas +48423,48,tx,Texas +48427,48,tx,Texas +48439,48,tx,Texas +48441,48,tx,Texas +48445,48,tx,Texas +48449,48,tx,Texas +48453,48,tx,Texas +48455,48,tx,Texas +48457,48,tx,Texas +48459,48,tx,Texas +48465,48,tx,Texas +48467,48,tx,Texas +48469,48,tx,Texas +48471,48,tx,Texas +48473,48,tx,Texas +48477,48,tx,Texas +48479,48,tx,Texas +48481,48,tx,Texas +48487,48,tx,Texas +48491,48,tx,Texas +48493,48,tx,Texas +48497,48,tx,Texas +48499,48,tx,Texas +48503,48,tx,Texas +48505,48,tx,Texas +48507,48,tx,Texas +48g01,48,tx,Texas +48g02,48,tx,Texas +48g03,48,tx,Texas +48g04,48,tx,Texas +48g05,48,tx,Texas +48g06,48,tx,Texas +48g07,48,tx,Texas +48g08,48,tx,Texas +48g09,48,tx,Texas +48g10,48,tx,Texas +48g11,48,tx,Texas +48g12,48,tx,Texas +48g13,48,tx,Texas +48g14,48,tx,Texas +48g15,48,tx,Texas +48g16,48,tx,Texas +48g17,48,tx,Texas +48g18,48,tx,Texas +48g19,48,tx,Texas +48g20,48,tx,Texas +48g21,48,tx,Texas +48g22,48,tx,Texas +48g23,48,tx,Texas +48g24,48,tx,Texas +48g25,48,tx,Texas +48g26,48,tx,Texas +48g27,48,tx,Texas +48g28,48,tx,Texas +48g29,48,tx,Texas +48g30,48,tx,Texas +48g31,48,tx,Texas +48g32,48,tx,Texas +48g33,48,tx,Texas +48g34,48,tx,Texas +48g35,48,tx,Texas +48g36,48,tx,Texas +48g37,48,tx,Texas +48g38,48,tx,Texas +48g39,48,tx,Texas +48g40,48,tx,Texas +48g41,48,tx,Texas +48g42,48,tx,Texas +48g43,48,tx,Texas +48g44,48,tx,Texas +48g45,48,tx,Texas +48g46,48,tx,Texas +48g47,48,tx,Texas +48g48,48,tx,Texas +49000,49,ut,Utah +49003,49,ut,Utah +49007,49,ut,Utah +49011,49,ut,Utah +49013,49,ut,Utah +49023,49,ut,Utah +49027,49,ut,Utah +49029,49,ut,Utah +49035,49,ut,Utah +49037,49,ut,Utah +49039,49,ut,Utah +49043,49,ut,Utah +49045,49,ut,Utah +49049,49,ut,Utah +49051,49,ut,Utah +49053,49,ut,Utah +49057,49,ut,Utah +49g01,49,ut,Utah +49g02,49,ut,Utah +49g03,49,ut,Utah +49g04,49,ut,Utah +49g05,49,ut,Utah +50000,50,vt,Vermont +50001,50,vt,Vermont +50003,50,vt,Vermont +50007,50,vt,Vermont +50015,50,vt,Vermont +50017,50,vt,Vermont +50019,50,vt,Vermont +50021,50,vt,Vermont +50023,50,vt,Vermont +50025,50,vt,Vermont +50027,50,vt,Vermont +50g01,50,vt,Vermont +50g02,50,vt,Vermont +51000,51,va,Virginia +51001,51,va,Virginia +51003,51,va,Virginia +51005,51,va,Virginia +51007,51,va,Virginia +51009,51,va,Virginia +51011,51,va,Virginia +51013,51,va,Virginia +51015,51,va,Virginia +51019,51,va,Virginia +51023,51,va,Virginia +51025,51,va,Virginia +51027,51,va,Virginia +51031,51,va,Virginia +51033,51,va,Virginia +51035,51,va,Virginia +51037,51,va,Virginia +51041,51,va,Virginia +51043,51,va,Virginia +51047,51,va,Virginia +51051,51,va,Virginia +51053,51,va,Virginia +51057,51,va,Virginia +51059,51,va,Virginia +51061,51,va,Virginia +51063,51,va,Virginia +51065,51,va,Virginia +51067,51,va,Virginia +51069,51,va,Virginia +51071,51,va,Virginia +51075,51,va,Virginia +51077,51,va,Virginia +51079,51,va,Virginia +51081,51,va,Virginia +51083,51,va,Virginia +51085,51,va,Virginia +51087,51,va,Virginia +51089,51,va,Virginia +51093,51,va,Virginia +51099,51,va,Virginia +51103,51,va,Virginia +51105,51,va,Virginia +51107,51,va,Virginia +51109,51,va,Virginia +51111,51,va,Virginia +51113,51,va,Virginia +51117,51,va,Virginia +51119,51,va,Virginia +51121,51,va,Virginia +51125,51,va,Virginia +51131,51,va,Virginia +51133,51,va,Virginia +51135,51,va,Virginia +51137,51,va,Virginia +51139,51,va,Virginia +51141,51,va,Virginia +51143,51,va,Virginia +51145,51,va,Virginia +51147,51,va,Virginia +51149,51,va,Virginia +51153,51,va,Virginia +51155,51,va,Virginia +51165,51,va,Virginia +51167,51,va,Virginia +51169,51,va,Virginia +51171,51,va,Virginia +51173,51,va,Virginia +51175,51,va,Virginia +51177,51,va,Virginia +51179,51,va,Virginia +51183,51,va,Virginia +51185,51,va,Virginia +51191,51,va,Virginia +51195,51,va,Virginia +51199,51,va,Virginia +51510,51,va,Virginia +51520,51,va,Virginia +51530,51,va,Virginia +51540,51,va,Virginia +51550,51,va,Virginia +51570,51,va,Virginia +51580,51,va,Virginia +51590,51,va,Virginia +51595,51,va,Virginia +51600,51,va,Virginia +51610,51,va,Virginia +51620,51,va,Virginia +51630,51,va,Virginia +51640,51,va,Virginia +51650,51,va,Virginia +51660,51,va,Virginia +51670,51,va,Virginia +51678,51,va,Virginia +51680,51,va,Virginia +51683,51,va,Virginia +51685,51,va,Virginia +51690,51,va,Virginia +51700,51,va,Virginia +51710,51,va,Virginia +51720,51,va,Virginia +51730,51,va,Virginia +51735,51,va,Virginia +51740,51,va,Virginia +51750,51,va,Virginia +51760,51,va,Virginia +51770,51,va,Virginia +51775,51,va,Virginia +51790,51,va,Virginia +51800,51,va,Virginia +51810,51,va,Virginia +51820,51,va,Virginia +51830,51,va,Virginia +51840,51,va,Virginia +51g01,51,va,Virginia +51g02,51,va,Virginia +51g03,51,va,Virginia +51g04,51,va,Virginia +51g05,51,va,Virginia +51g06,51,va,Virginia +51g07,51,va,Virginia +51g08,51,va,Virginia +51g09,51,va,Virginia +51g10,51,va,Virginia +53000,53,wa,Washington +53001,53,wa,Washington +53005,53,wa,Washington +53007,53,wa,Washington +53009,53,wa,Washington +53011,53,wa,Washington +53015,53,wa,Washington +53017,53,wa,Washington +53021,53,wa,Washington +53025,53,wa,Washington +53027,53,wa,Washington +53029,53,wa,Washington +53031,53,wa,Washington +53033,53,wa,Washington +53035,53,wa,Washington +53037,53,wa,Washington +53039,53,wa,Washington +53041,53,wa,Washington +53043,53,wa,Washington +53045,53,wa,Washington +53047,53,wa,Washington +53051,53,wa,Washington +53053,53,wa,Washington +53055,53,wa,Washington +53057,53,wa,Washington +53059,53,wa,Washington +53061,53,wa,Washington +53063,53,wa,Washington +53067,53,wa,Washington +53071,53,wa,Washington +53073,53,wa,Washington +53075,53,wa,Washington +53077,53,wa,Washington +53g01,53,wa,Washington +53g02,53,wa,Washington +53g03,53,wa,Washington +54000,54,wv,West Virginia +54001,54,wv,West Virginia +54003,54,wv,West Virginia +54005,54,wv,West Virginia +54009,54,wv,West Virginia +54011,54,wv,West Virginia +54019,54,wv,West Virginia +54025,54,wv,West Virginia +54027,54,wv,West Virginia +54029,54,wv,West Virginia +54031,54,wv,West Virginia +54033,54,wv,West Virginia +54035,54,wv,West Virginia +54037,54,wv,West Virginia +54039,54,wv,West Virginia +54041,54,wv,West Virginia +54043,54,wv,West Virginia +54045,54,wv,West Virginia +54047,54,wv,West Virginia +54049,54,wv,West Virginia +54051,54,wv,West Virginia +54053,54,wv,West Virginia +54055,54,wv,West Virginia +54057,54,wv,West Virginia +54059,54,wv,West Virginia +54061,54,wv,West Virginia +54063,54,wv,West Virginia +54065,54,wv,West Virginia +54069,54,wv,West Virginia +54077,54,wv,West Virginia +54079,54,wv,West Virginia +54081,54,wv,West Virginia +54083,54,wv,West Virginia +54089,54,wv,West Virginia +54091,54,wv,West Virginia +54097,54,wv,West Virginia +54099,54,wv,West Virginia +54103,54,wv,West Virginia +54109,54,wv,West Virginia +54g01,54,wv,West Virginia +54g02,54,wv,West Virginia +54g03,54,wv,West Virginia +54g04,54,wv,West Virginia +54g05,54,wv,West Virginia +54g06,54,wv,West Virginia +54g07,54,wv,West Virginia +54g08,54,wv,West Virginia +55000,55,wi,Wisconsin +55001,55,wi,Wisconsin +55005,55,wi,Wisconsin +55007,55,wi,Wisconsin +55009,55,wi,Wisconsin +55013,55,wi,Wisconsin +55015,55,wi,Wisconsin +55017,55,wi,Wisconsin +55019,55,wi,Wisconsin +55021,55,wi,Wisconsin +55023,55,wi,Wisconsin +55025,55,wi,Wisconsin +55027,55,wi,Wisconsin +55029,55,wi,Wisconsin +55031,55,wi,Wisconsin +55033,55,wi,Wisconsin +55035,55,wi,Wisconsin +55039,55,wi,Wisconsin +55043,55,wi,Wisconsin +55045,55,wi,Wisconsin +55047,55,wi,Wisconsin +55049,55,wi,Wisconsin +55053,55,wi,Wisconsin +55055,55,wi,Wisconsin +55057,55,wi,Wisconsin +55059,55,wi,Wisconsin +55061,55,wi,Wisconsin +55063,55,wi,Wisconsin +55065,55,wi,Wisconsin +55067,55,wi,Wisconsin +55069,55,wi,Wisconsin +55071,55,wi,Wisconsin +55073,55,wi,Wisconsin +55075,55,wi,Wisconsin +55077,55,wi,Wisconsin +55079,55,wi,Wisconsin +55081,55,wi,Wisconsin +55083,55,wi,Wisconsin +55085,55,wi,Wisconsin +55087,55,wi,Wisconsin +55089,55,wi,Wisconsin +55093,55,wi,Wisconsin +55095,55,wi,Wisconsin +55097,55,wi,Wisconsin +55099,55,wi,Wisconsin +55101,55,wi,Wisconsin +55103,55,wi,Wisconsin +55105,55,wi,Wisconsin +55107,55,wi,Wisconsin +55109,55,wi,Wisconsin +55111,55,wi,Wisconsin +55113,55,wi,Wisconsin +55117,55,wi,Wisconsin +55119,55,wi,Wisconsin +55121,55,wi,Wisconsin +55123,55,wi,Wisconsin +55125,55,wi,Wisconsin +55127,55,wi,Wisconsin +55129,55,wi,Wisconsin +55131,55,wi,Wisconsin +55133,55,wi,Wisconsin +55135,55,wi,Wisconsin +55137,55,wi,Wisconsin +55139,55,wi,Wisconsin +55141,55,wi,Wisconsin +55g01,55,wi,Wisconsin +55g02,55,wi,Wisconsin +55g03,55,wi,Wisconsin +55g04,55,wi,Wisconsin +56000,56,wy,Wyoming +56001,56,wy,Wyoming +56005,56,wy,Wyoming +56007,56,wy,Wyoming +56009,56,wy,Wyoming +56021,56,wy,Wyoming +56025,56,wy,Wyoming +56029,56,wy,Wyoming +56037,56,wy,Wyoming +56039,56,wy,Wyoming +56041,56,wy,Wyoming +56g01,56,wy,Wyoming +56g02,56,wy,Wyoming +56g03,56,wy,Wyoming +56g04,56,wy,Wyoming +56g05,56,wy,Wyoming +56g06,56,wy,Wyoming +60000,60,as,American Samoa +60010,60,as,American Samoa +60020,60,as,American Samoa +60030,60,as,American Samoa +60040,60,as,American Samoa +60050,60,as,American Samoa +66000,66,gu,Guam +66010,66,gu,Guam +69000,69,mp,Northern Mariana Islands +69085,69,mp,Northern Mariana Islands +69100,69,mp,Northern Mariana Islands +69110,69,mp,Northern Mariana Islands +69120,69,mp,Northern Mariana Islands +70000,70,pw,Republic of Palau +70002,70,pw,Republic of Palau +70003,70,pw,Republic of Palau +72000,72,pr,Puerto Rico +72001,72,pr,Puerto Rico +72003,72,pr,Puerto Rico +72005,72,pr,Puerto Rico +72007,72,pr,Puerto Rico +72009,72,pr,Puerto Rico +72011,72,pr,Puerto Rico +72013,72,pr,Puerto Rico +72015,72,pr,Puerto Rico +72017,72,pr,Puerto Rico +72019,72,pr,Puerto Rico +72021,72,pr,Puerto Rico +72023,72,pr,Puerto Rico +72025,72,pr,Puerto Rico +72027,72,pr,Puerto Rico +72029,72,pr,Puerto Rico +72031,72,pr,Puerto Rico +72033,72,pr,Puerto Rico +72035,72,pr,Puerto Rico +72037,72,pr,Puerto Rico +72039,72,pr,Puerto Rico +72041,72,pr,Puerto Rico +72043,72,pr,Puerto Rico +72045,72,pr,Puerto Rico +72047,72,pr,Puerto Rico +72049,72,pr,Puerto Rico +72051,72,pr,Puerto Rico +72053,72,pr,Puerto Rico +72054,72,pr,Puerto Rico +72055,72,pr,Puerto Rico +72057,72,pr,Puerto Rico +72059,72,pr,Puerto Rico +72061,72,pr,Puerto Rico +72063,72,pr,Puerto Rico +72065,72,pr,Puerto Rico +72067,72,pr,Puerto Rico +72069,72,pr,Puerto Rico +72071,72,pr,Puerto Rico +72073,72,pr,Puerto Rico +72075,72,pr,Puerto Rico +72077,72,pr,Puerto Rico +72079,72,pr,Puerto Rico +72081,72,pr,Puerto Rico +72083,72,pr,Puerto Rico +72085,72,pr,Puerto Rico +72087,72,pr,Puerto Rico +72089,72,pr,Puerto Rico +72091,72,pr,Puerto Rico +72093,72,pr,Puerto Rico +72095,72,pr,Puerto Rico +72097,72,pr,Puerto Rico +72099,72,pr,Puerto Rico +72101,72,pr,Puerto Rico +72103,72,pr,Puerto Rico +72105,72,pr,Puerto Rico +72107,72,pr,Puerto Rico +72109,72,pr,Puerto Rico +72111,72,pr,Puerto Rico +72113,72,pr,Puerto Rico +72115,72,pr,Puerto Rico +72117,72,pr,Puerto Rico +72119,72,pr,Puerto Rico +72121,72,pr,Puerto Rico +72123,72,pr,Puerto Rico +72125,72,pr,Puerto Rico +72127,72,pr,Puerto Rico +72129,72,pr,Puerto Rico +72131,72,pr,Puerto Rico +72133,72,pr,Puerto Rico +72135,72,pr,Puerto Rico +72137,72,pr,Puerto Rico +72139,72,pr,Puerto Rico +72141,72,pr,Puerto Rico +72143,72,pr,Puerto Rico +72145,72,pr,Puerto Rico +72147,72,pr,Puerto Rico +72149,72,pr,Puerto Rico +72151,72,pr,Puerto Rico +72153,72,pr,Puerto Rico +78000,78,vi,U.S. Virgin Islands +78010,78,vi,U.S. Virgin Islands +78020,78,vi,U.S. Virgin Islands +78030,78,vi,U.S. Virgin Islands From b3a03d41e26a625da902b45664ed6a5b2e486015 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Thu, 16 Feb 2023 17:27:25 -0500 Subject: [PATCH 02/18] construct class attributes using CROSSWALK keys Doing so makes it easier to add new mappings by reducing the number of lines with hard-coded geo/key names. --- _delphi_utils_python/delphi_utils/geomap.py | 45 ++++++++------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/_delphi_utils_python/delphi_utils/geomap.py b/_delphi_utils_python/delphi_utils/geomap.py index 92a495098..3075cd885 100644 --- a/_delphi_utils_python/delphi_utils/geomap.py +++ b/_delphi_utils_python/delphi_utils/geomap.py @@ -13,6 +13,7 @@ import pandas as pd import pkg_resources from pandas.api.types import is_string_dtype +from collections import defaultdict class GeoMapper: # pylint: disable=too-many-public-methods @@ -110,25 +111,17 @@ def __init__(self, census_year=2020): census_year: int Year of Census population data. 2019 estimates and 2020 full Census supported. """ - self._crosswalks = { - "zip": { - geo: None for geo in ["fips", "hrr", "msa", "pop", "state", "hhs"] - }, - "fips": { - geo: None for geo in ["zip", "hrr", "msa", "pop", "state", "hhs"] - }, - "state": {"state": None}, - "state_code": {"hhs": None, "pop": None}, - "state_id": {"pop": None}, - "state_name": {"pop": None}, - "hhs": {"pop": None}, - "nation": {"pop": None}, - "jhu_uid": {"fips": None}, - } - self._geo_sets = { - geo: None for geo in ["zip", "fips", "hrr", "state_id", "state_code", - "state_name", "hhs", "msa", "nation"] - } + self._crosswalks = defaultdict(dict) + self._geo_sets = dict() + + # Include all unique geos from first-level and second-level keys in + # CROSSWALK_FILENAMES, with a few exceptions + self._geos = { + subkey for mainkey in self.CROSSWALK_FILENAMES.keys() + for subkey in self.CROSSWALK_FILENAMES[mainkey].keys() + }.union({ + mainkey for mainkey in self.CROSSWALK_FILENAMES.keys() + }) - set(["state", "pop", "jhu_uid"]) for from_code, to_codes in self.CROSSWALK_FILENAMES.items(): for to_code, file_path in to_codes.items(): @@ -138,7 +131,7 @@ def __init__(self, census_year=2020): join(f"data/{census_year}", file_path) ) - for geo_type in self._geo_sets: + for geo_type in self._geos: self._geo_sets[geo_type] = self._load_geo_values(geo_type) def _load_crosswalk_from_file(self, from_code, to_code, data_path): @@ -146,17 +139,11 @@ def _load_crosswalk_from_file(self, from_code, to_code, data_path): dtype = { from_code: str, to_code: str, - "fips": str, - "zip": str, - "hrr": str, - "hhs": str, - "msa": str, - "state_code": str, - "state_id": str, - "state_name": str, "pop": int, - "weight": float + "weight": float, + **{geo: str for geo in self._geos - set("nation")} } + usecols = [from_code, "pop"] if to_code == "pop" else None return pd.read_csv(stream, dtype=dtype, usecols=usecols) From 0284c28c915a53f546ecd55e5089fb7992fcd2f4 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Thu, 16 Feb 2023 17:48:29 -0500 Subject: [PATCH 03/18] support popsafe-fips in geomap.py; get_geos_within to take "fips" --- _delphi_utils_python/delphi_utils/geomap.py | 31 +++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/_delphi_utils_python/delphi_utils/geomap.py b/_delphi_utils_python/delphi_utils/geomap.py index 3075cd885..23c1b0d58 100644 --- a/_delphi_utils_python/delphi_utils/geomap.py +++ b/_delphi_utils_python/delphi_utils/geomap.py @@ -41,6 +41,8 @@ class GeoMapper: # pylint: disable=too-many-public-methods - [x] fips -> megacounty - [x] fips -> hrr - [x] fips -> hhs + - [x] fips -> popsafe-fips + - [x] popsafe-fips -> state : unweighted - [x] nation - [ ] zip -> dma (postponed) @@ -80,6 +82,7 @@ class GeoMapper: # pylint: disable=too-many-public-methods "hhs": "zip_hhs_table.csv" }, "fips": { + "popsafe-fips": "fips_popsafe-fips_table.csv", "zip": "fips_zip_table.csv", "hrr": "fips_hrr_table.csv", "msa": "fips_msa_table.csv", @@ -87,6 +90,7 @@ class GeoMapper: # pylint: disable=too-many-public-methods "state": "fips_state_table.csv", "hhs": "fips_hhs_table.csv", }, + "popsafe-fips": {"state": "popsafe-fips_state_table.csv"}, "state": {"state": "state_codes_table.csv"}, "state_code": { "hhs": "state_code_hhs_table.csv", @@ -230,7 +234,8 @@ def add_geocode( """Add a new geocode column to a dataframe. Currently supported conversions: - - fips -> state_code, state_id, state_name, zip, msa, hrr, nation, hhs + - fips -> state_code, state_id, state_name, zip, msa, hrr, nation, hhs, popsafe-fips + - popsafe-fips -> state_code, state_id, state_name - zip -> state_code, state_id, state_name, fips, msa, hrr, nation, hhs - jhu_uid -> fips - state_x -> state_y (where x and y are in {code, id, name}), nation @@ -240,10 +245,11 @@ def add_geocode( --------- df: pd.DataFrame Input dataframe. - from_code: {'fips', 'zip', 'jhu_uid', 'state_code', 'state_id', 'state_name'} + from_code: {'fips', 'popsafe-fips', 'zip', 'jhu_uid', 'state_code', + 'state_id', 'state_name'} Specifies the geocode type of the data in from_col. - new_code: {'fips', 'zip', 'state_code', 'state_id', 'state_name', 'hrr', 'msa', - 'hhs'} + new_code: {'fips', 'popsafe-fips', 'zip', 'state_code', 'state_id', + 'state_name', 'hrr', 'msa', 'hhs'} Specifies the geocode type in new_col. from_col: str, default None Name of the column in dataframe containing from_code. If None, then the name @@ -342,7 +348,8 @@ def replace_geocode( """Replace a geocode column in a dataframe. Currently supported conversions: - - fips -> state_code, state_id, state_name, zip, msa, hrr, nation + - fips -> popsafe-fips, state_code, state_id, state_name, zip, msa, hrr, nation + - popsafe-fips -> state_code, state_id, state_name - zip -> state_code, state_id, state_name, fips, msa, hrr, nation - jhu_uid -> fips - state_x -> state_y (where x and y are in {code, id, name}), nation @@ -555,9 +562,10 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g (e.g "state"), return: - all (contained_geocode_type)s within container_geocode - Supports these 3 combinations: + Supports these 4 combinations: - all states within a nation - all counties within a state + - all popsafe counties within a state - all states within an hhs region Parameters @@ -565,7 +573,7 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g container_geocode: str Instance of nation/state/hhs to find the sub-regions of contained_geocode_type: str - The subregion type to retrieve. One of "state", "county" + The subregion type to retrieve. One of "state", "county", "fips", "popsafe-fips" container_geocode_type: str The parent region type. One of "state", "nation", "hhs" @@ -582,9 +590,14 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g crosswalk_state = self._crosswalks["fips"]["state"] fips_hhs = crosswalk_hhs[crosswalk_hhs["hhs"] == container_geocode]["fips"] return set(crosswalk_state[crosswalk_state["fips"].isin(fips_hhs)]["state_id"]) - elif contained_geocode_type == "county" and container_geocode_type == "state": + elif ((contained_geocode_type == "county" or contained_geocode_type == "fips") and + container_geocode_type == "state"): crosswalk = self._crosswalks["fips"]["state"] return set(crosswalk[crosswalk["state_id"] == container_geocode]["fips"]) + elif contained_geocode_type == "popsafe-fips" and container_geocode_type == "state": + crosswalk = self._crosswalks["popsafe-fips"]["state"] + return set(crosswalk[crosswalk["state_id"] == container_geocode]["popsafe-fips"]) raise ValueError("(contained_geocode_type, container_geocode_type) was " f"({contained_geocode_type}, {container_geocode_type}), but " - f"must be one of (state, nation), (state, hhs), (county, state)") + "must be one of (state, nation), (state, hhs), (county, state)" + ", (fips, state), (popsafe-fips, state)") From 1f8a21b3a09c0ffdf16bf5be3c9b84683bb0a760 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 20 Feb 2023 14:22:36 -0500 Subject: [PATCH 04/18] combine fips and popsafe-fips get_geo_within logic; comments --- _delphi_utils_python/delphi_utils/geomap.py | 24 ++++++++++++--------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/_delphi_utils_python/delphi_utils/geomap.py b/_delphi_utils_python/delphi_utils/geomap.py index 23c1b0d58..8d726914c 100644 --- a/_delphi_utils_python/delphi_utils/geomap.py +++ b/_delphi_utils_python/delphi_utils/geomap.py @@ -169,7 +169,7 @@ def _load_geo_values(self, geo_type): @staticmethod def convert_fips_to_mega(data, fips_col="fips", mega_col="megafips"): - """Convert fips string to a megafips string.""" + """Convert fips or popsafe-fips string to a megafips string.""" data = data.copy() data[mega_col] = data[fips_col].astype(str).str.zfill(5) data[mega_col] = data[mega_col].str.slice_replace(start=2, stop=5, repl="000") @@ -276,7 +276,7 @@ def add_geocode( state_codes = ["state_code", "state_id", "state_name"] if not is_string_dtype(df[from_col]): - if from_code in ["fips", "zip"]: + if from_code in ["fips", "zip", "popsafe-fips"]: df[from_col] = df[from_col].astype(str).str.zfill(5) else: df[from_col] = df[from_col].astype(str) @@ -463,7 +463,7 @@ def fips_to_megacounty( mega_col="megafips", count_cols=None, ): - """Convert and aggregate from FIPS to megaFIPS. + """Convert and aggregate from FIPS or popsafe-fips to megaFIPS. Parameters --------- @@ -590,13 +590,17 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g crosswalk_state = self._crosswalks["fips"]["state"] fips_hhs = crosswalk_hhs[crosswalk_hhs["hhs"] == container_geocode]["fips"] return set(crosswalk_state[crosswalk_state["fips"].isin(fips_hhs)]["state_id"]) - elif ((contained_geocode_type == "county" or contained_geocode_type == "fips") and - container_geocode_type == "state"): - crosswalk = self._crosswalks["fips"]["state"] - return set(crosswalk[crosswalk["state_id"] == container_geocode]["fips"]) - elif contained_geocode_type == "popsafe-fips" and container_geocode_type == "state": - crosswalk = self._crosswalks["popsafe-fips"]["state"] - return set(crosswalk[crosswalk["state_id"] == container_geocode]["popsafe-fips"]) + elif ( + ( + contained_geocode_type == "county" or + contained_geocode_type == "fips" or + contained_geocode_type == "popsafe-fips" + ) and + container_geocode_type == "state" + ): + contained_geocode_type = self.as_mapper_name(contained_geocode_type) + crosswalk = self._crosswalks[contained_geocode_type]["state"] + return set(crosswalk[crosswalk["state_id"] == container_geocode][contained_geocode_type]) raise ValueError("(contained_geocode_type, container_geocode_type) was " f"({contained_geocode_type}, {container_geocode_type}), but " "must be one of (state, nation), (state, hhs), (county, state)" From fb82be4d745aab65080fd5d38b01180f2fd07227 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:45:11 -0500 Subject: [PATCH 05/18] code to generate popsafe tables --- .../data_proc/geomap/geo_data_proc.py | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 45e4e4ee3..dcf651175 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -33,6 +33,7 @@ FIPS_PUERTO_RICO_POPULATION_URL = "https://www2.census.gov/geo/docs/maps-data/data/rel/zcta_county_rel_10.txt?" STATE_HHS_FILE = "hhs.txt" ZIP_POP_MISSING_FILE = "zip_pop_filling.csv" +LOWPOP_COUNTY_GROUPS_FILE = "lowpop_county_groups.csv" # Out files FIPS_STATE_OUT_FILENAME = "fips_state_table.csv" @@ -40,8 +41,10 @@ FIPS_HRR_OUT_FILENAME = "fips_hrr_table.csv" FIPS_ZIP_OUT_FILENAME = "fips_zip_table.csv" FIPS_HHS_FILENAME = "fips_hhs_table.csv" +FIPS_POPSAFEFIPS_OUT_FILENAME = "fips_popsafe-fips_table.csv" FIPS_POPULATION_OUT_FILENAME = "fips_pop.csv" +POPSAFEFIPS_STATE_OUT_FILENAME = "popsafe-fips_state_table.csv" ZIP_HSA_OUT_FILENAME = "zip_hsa_table.csv" ZIP_HRR_OUT_FILENAME = "zip_hrr_table.csv" ZIP_FIPS_OUT_FILENAME = "zip_fips_table.csv" @@ -475,6 +478,70 @@ def derive_zip_hhs_crosswalk(): zip_state.sort_values(["zip", "hhs"]).to_csv(join(OUTPUT_DIR, ZIP_HHS_FILENAME), index=False) +def derive_fips_popsafefips_crosswalk(): + """Build a crosswalk table for FIPS to pop-safe fips.""" + if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): + derive_fips_state_crosswalk() + + county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False + ).drop(columns = "fips_list") + + # Change to long format. + county_groups = pd.melt( + county_groups, + id_vars = ["state_fips", "group"], + var_name = "county_num", + value_name = "fips" + ).drop( + columns="county_num" + ).dropna() + + county_groups["state_fips"] = county_groups["state_fips"].str.zfill(2).astype("string") + county_groups["group"] = county_groups["group"].str.zfill(2).astype("string") + county_groups["fips"] = county_groups["fips"].str.zfill(5).astype("string") + # Combine state codes and group ids into a single FIPS code. + county_groups["popsafe-fips"] = county_groups["state_fips"] + "g" + county_groups["group"] + + county_groups = county_groups[["fips", "popsafe-fips"]] + fips_to_state = pd.read_csv(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME), dtype="string", index_col=False) + + # Get all the fips that aren't included in the low-population groupings. + extra_fips_list = list(set(fips_to_state.fips) - set(county_groups.fips)) + # Normal fips codes and pop-safe fips codes are the same for high-population counties. + extra_fips_df = pd.DataFrame({"fips" : extra_fips_list, "popsafe-fips" : extra_fips_list}, dtype="string") + + # Combine high-pop and low-pop counties. + pd.concat( + [county_groups, extra_fips_df] + ).sort_values( + ["fips", "popsafe-fips"] + ).to_csv( + join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME), index=False + ) + + +def derive_popsafefips_state_crosswalk(): + """Build a crosswalk table for FIPS to pop-safe fips.""" + if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): + derive_fips_state_crosswalk() + + if not isfile(join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME)): + derive_fips_popsafefips_crosswalk() + + fips_to_group = pd.read_csv(join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME), dtype="string", index_col=False) + fips_to_state = pd.read_csv(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME), dtype="string", index_col=False) + + group_to_state = fips_to_group.join( + fips_to_state.set_index("fips"), on="fips", how="left" + ).drop( + columns = "fips" + ).drop_duplicates( + ).sort_values( + ["popsafe-fips", "state_code"] + ) + group_to_state.to_csv(join(OUTPUT_DIR, POPSAFEFIPS_STATE_OUT_FILENAME), index=False) + + def clear_dir(dir_path: str): for fname in listdir(dir_path): remove(join(dir_path, fname)) @@ -501,3 +568,5 @@ def clear_dir(dir_path: str): derive_zip_population_table() derive_fips_hhs_crosswalk() derive_zip_hhs_crosswalk() + derive_fips_popsafefips_crosswalk() + derive_popsafefips_state_crosswalk() From f284b91528f863e2f9ae499b075ec83289bcdca7 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:21:58 -0500 Subject: [PATCH 06/18] document group assignment procedure --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index dcf651175..1942752d7 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -483,6 +483,12 @@ def derive_fips_popsafefips_crosswalk(): if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): derive_fips_state_crosswalk() + # County mapping file is derived from + # https://docs.google.com/spreadsheets/d/1PEce4CjjHbRM1Z5xEMNI6Xsq_b2kkCh0/edit#gid=871427657. + # We assign an incrementing integer to be the group id of each county + # grouping within the given state via: + # + # county_groups["group"] = (county_groups.groupby("state_fips").cumcount() + 1).astype("string") county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False ).drop(columns = "fips_list") From ba62241842bd6a7b636a72f81c758e60975de495 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:22:39 -0500 Subject: [PATCH 07/18] add lowpop county group mapping file --- .../data_proc/geomap/lowpop_county_groups.csv | 402 ++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 _delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv diff --git a/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv b/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv new file mode 100644 index 000000000..c09ace96c --- /dev/null +++ b/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv @@ -0,0 +1,402 @@ +state_fips,fips_list,county1,county2,county3,county4,county5,county6,county7,county8,group +1,01063|01065,01063,01065,,,,,,,1 +1,01105|01047,01105,01047,,,,,,,2 +4,04011|04009,04011,04009,,,,,,,1 +5,05025|05013|05011,05025,05013,05011,,,,,,1 +5,05039|05053,05039,05053,,,,,,,2 +5,05073|05091,05073,05091,,,,,,,3 +5,05077|05123,05077,05123,,,,,,,4 +5,05095|05117,05095,05117,,,,,,,5 +5,05097|05109,05097,05109,,,,,,,6 +5,05099|05057,05099,05057,,,,,,,7 +5,05101|05009,05101,05009,,,,,,,8 +5,05129|05089,05129,05089,,,,,,,9 +5,05147|05067,05147,05067,,,,,,,10 +6,06003|06109,06003,06109,,,,,,,1 +6,06049|06035,06049,06035,,,,,,,2 +6,06091|06057,06091,06057,,,,,,,3 +8,08011|08061|08009|08099,08011,08061,08009,08099,,,,,1 +8,08017|08063|08125,08017,08063,08125,,,,,,2 +8,08019|08047,08019,08047,,,,,,,3 +8,08023|08003,08023,08003,,,,,,,4 +8,08025|08089,08025,08089,,,,,,,5 +8,08027|08043,08027,08043,,,,,,,6 +8,08053|08111|08091|08033|08113|08085,08053,08111,08091,08033,08113,08085,,,7 +8,08055|08101,08055,08101,,,,,,,8 +8,08057|08049,08057,08049,,,,,,,9 +8,08065|08015,08065,08015,,,,,,,10 +8,08073|08039,08073,08039,,,,,,,11 +8,08079|08007,08079,08007,,,,,,,12 +8,08095|08115|08075,08095,08115,08075,,,,,,13 +8,08103|08045,08103,08045,,,,,,,14 +8,08109|08021|08105,08109,08021,08105,,,,,,15 +8,08121|08087,08121,08087,,,,,,,16 +12,12067|12121,12067,12121,,,,,,,1 +12,12077|12037,12077,12037,,,,,,,2 +13,13003|13069,13003,13069,,,,,,,1 +13,13007|13205,13007,13205,,,,,,,2 +13,13061|13239|13037|13243,13061,13239,13037,13243,,,,,3 +13,13065|13101,13065,13101,,,,,,,4 +13,13125|13301|13189,13125,13301,13189,,,,,,5 +13,13155|13017,13155,13017,,,,,,,6 +13,13165|13033,13165,13033,,,,,,,7 +13,13167|13303,13167,13303,,,,,,,8 +13,13181|13317,13181,13317,,,,,,,9 +13,13197|13249,13197,13249,,,,,,,10 +13,13201|13099,13201,13099,,,,,,,11 +13,13209|13279,13209,13279,,,,,,,12 +13,13253|13087,13253,13087,,,,,,,13 +13,13259|13307|13053,13259,13307,13053,,,,,,14 +13,13263|13293,13263,13293,,,,,,,15 +13,13265|13133,13265,13133,,,,,,,16 +13,13269|13193,13269,13193,,,,,,,17 +13,13273|13177,13273,13177,,,,,,,18 +13,13283|13107,13283,13107,,,,,,,19 +13,13287|13081,13287,13081,,,,,,,20 +13,13289|13023,13289,13023,,,,,,,21 +13,13309|13271,13309,13271,,,,,,,22 +13,13315|13235,13315,13235,,,,,,,23 +13,13319|13141|13009,13319,13141,13009,,,,,,24 +16,16003|16087,16003,16087,,,,,,,1 +16,16009|16057,16009,16057,,,,,,,2 +16,16015|16045,16015,16045,,,,,,,3 +16,16025|16047,16025,16047,,,,,,,4 +16,16029|16007|16041,16029,16007,16041,,,,,,5 +16,16033|16023|16051,16033,16023,16051,,,,,,6 +16,16035|16079,16035,16079,,,,,,,7 +16,16037|16059,16037,16059,,,,,,,8 +16,16061|16069,16061,16069,,,,,,,9 +16,16063|16053,16063,16053,,,,,,,10 +16,16071|16077,16071,16077,,,,,,,11 +17,17003|17153,17003,17153,,,,,,,1 +17,17009|17169,17009,17169,,,,,,,2 +17,17013|17083,17013,17083,,,,,,,3 +17,17047|17185,17047,17185,,,,,,,4 +17,17059|17069|17165,17059,17069,17165,,,,,,5 +17,17065|17193,17065,17193,,,,,,,6 +17,17071|17187,17071,17187,,,,,,,7 +17,17079|17035,17079,17035,,,,,,,8 +17,17151|17127,17151,17127,,,,,,,9 +17,17155|17123,17155,17123,,,,,,,10 +17,17171|17137,17171,17137,,,,,,,11 +17,17175|17143,17175,17143,,,,,,,12 +18,18007|18171,18007,18171,,,,,,,1 +18,18115|18155,18115,18155,,,,,,,2 +18,18161|18041,18161,18041,,,,,,,3 +19,19001|19077,19001,19077,,,,,,,1 +19,19003|19173,19003,19173,,,,,,,2 +19,19009|19029,19009,19029,,,,,,,3 +19,19025|19151,19025,19151,,,,,,,4 +19,19039|19053,19039,19053,,,,,,,5 +19,19051|19179,19051,19179,,,,,,,6 +19,19063|19147,19063,19147,,,,,,,7 +19,19071|19129,19071,19129,,,,,,,8 +19,19089|19037,19089,19037,,,,,,,9 +19,19091|19073|19187,19091,19073,19187,,,,,,10 +19,19093|19035,19093,19035,,,,,,,11 +19,19117|19185,19117,19185,,,,,,,12 +19,19133|19193,19133,19193,,,,,,,13 +19,19135|19007,19135,19007,,,,,,,14 +19,19143|19141,19143,19141,,,,,,,15 +19,19159|19175,19159,19175,,,,,,,16 +19,19177|19101,19177,19101,,,,,,,17 +19,19195|19033,19195,19033,,,,,,,18 +20,20003|20001,20003,20001,,,,,,,1 +20,20017|20127|20061,20017,20127,20061,,,,,,2 +20,20023|20181|20199,20023,20181,20199,,,,,,3 +20,20025|20057,20025,20057,,,,,,,4 +20,20039|20179|20137,20039,20179,20137,,,,,,5 +20,20043|20013|20005,20043,20013,20005,,,,,,6 +20,20053|20105|20159,20053,20105,20159,,,,,,7 +20,20063|20101|20171|20109,20063,20101,20171,20109,,,,,8 +20,20065|20195|20051,20065,20195,20051,,,,,,9 +20,20069|20055,20069,20055,,,,,,,10 +20,20071|20203|20093|20075|20187,20071,20203,20093,20075,20187,,,,11 +20,20073|20031|20207,20073,20031,20207,,,,,,12 +20,20077|20095,20077,20095,,,,,,,13 +20,20083|20135|20165|20145,20083,20135,20165,20145,,,,,14 +20,20107|20121,20107,20121,,,,,,,15 +20,20117|20149,20117,20149,,,,,,,16 +20,20119|20081|20175,20119,20081,20175,,,,,,17 +20,20129|20067|20189,20129,20067,20189,,,,,,18 +20,20147|20163,20147,20163,,,,,,,19 +20,20153|20193,20153,20193,,,,,,,20 +20,20157|20029|20143,20157,20029,20143,,,,,,21 +20,20167|20009,20167,20009,,,,,,,22 +20,20183|20089|20123|20141,20183,20089,20123,20141,,,,,23 +20,20185|20033|20097|20047|20007|20151,20185,20033,20097,20047,20007,20151,,,24 +20,20197|20177,20197,20177,,,,,,,25 +20,20201|20027|20161,20201,20027,20161,,,,,,26 +20,20205|20019|20049|20125,20205,20019,20049,20125,,,,,27 +21,21007|21039,21007,21039,,,,,,,1 +21,21023|21201,21023,21201,,,,,,,2 +21,21055|21139,21055,21139,,,,,,,3 +21,21057|21053,21057,21053,,,,,,,4 +21,21063|21043,21063,21043,,,,,,,5 +21,21075|21105,21075,21105,,,,,,,6 +21,21077|21187,21077,21187,,,,,,,7 +21,21129|21189,21129,21189,,,,,,,8 +21,21143|21033,21143,21033,,,,,,,9 +21,21149|21091|21059,21149,21091,21059,,,,,,10 +21,21165|21237,21165,21237,,,,,,,11 +21,21169|21087,21169,21087,,,,,,,12 +21,21181|21017,21181,21017,,,,,,,13 +21,21223|21041,21223,21041,,,,,,,14 +22,22021|22073,22021,22073,,,,,,,1 +22,22023|22019,22023,22019,,,,,,,2 +22,22035|22123,22035,22123,,,,,,,3 +22,22081|22013,22081,22013,,,,,,,4 +22,22107|22041,22107,22041,,,,,,,5 +26,26003|26153,26003,26153,,,,,,,1 +26,26083|26013|26061,26083,26013,26061,,,,,,2 +26,26095|26097,26095,26097,,,,,,,3 +26,26119|26135,26119,26135,,,,,,,4 +26,26131|26053,26131,26053,,,,,,,5 +27,27029|27087,27029,27087,,,,,,,1 +27,27031|27075,27031,27075,,,,,,,2 +27,27051|27011|27155|27149,27051,27011,27155,27149,,,,,3 +27,27069|27089,27069,27089,,,,,,,4 +27,27073|27173,27073,27173,,,,,,,5 +27,27077|27007,27077,27007,,,,,,,6 +27,27081|27117,27081,27117,,,,,,,7 +27,27125|27113,27125,27113,,,,,,,8 +27,27133|27101|27105,27133,27101,27105,,,,,,9 +27,27151|27023,27151,27023,,,,,,,10 +27,27167|27107|27027,27167,27107,27027,,,,,,11 +28,28009|28139,28009,28139,,,,,,,1 +28,28019|28155,28019,28155,,,,,,,2 +28,28021|28063,28021,28063,,,,,,,3 +28,28037|28005,28037,28005,,,,,,,4 +28,28055|28125|28053|28163,28055,28125,28053,28163,,,,,5 +28,28069|28075,28069,28075,,,,,,,6 +28,28119|28027,28119,28027,,,,,,,7 +28,28157|28001,28157,28001,,,,,,,8 +29,29005|29087|29147,29005,29087,29147,,,,,,1 +29,29025|29177,29025,29177,,,,,,,2 +29,29033|29117,29033,29117,,,,,,,3 +29,29035|29181,29035,29181,,,,,,,4 +29,29041|29115,29041,29115,,,,,,,5 +29,29045|29111,29045,29111,,,,,,,6 +29,29057|29039,29057,29039,,,,,,,7 +29,29061|29081,29061,29081,,,,,,,8 +29,29075|29227|29063,29075,29227,29063,,,,,,9 +29,29085|29167,29085,29167,,,,,,,10 +29,29103|29199|29197,29103,29199,29197,,,,,,11 +29,29125|29151,29125,29151,,,,,,,12 +29,29129|29079,29129,29079,,,,,,,13 +29,29137|29205,29137,29205,,,,,,,14 +29,29153|29067,29153,29067,,,,,,,15 +29,29171|29211,29171,29211,,,,,,,16 +29,29179|29093,29179,29093,,,,,,,17 +29,29185|29083,29185,29083,,,,,,,18 +29,29203|29065,29203,29065,,,,,,,19 +30,30005|30071,30005,30071,,,,,,,1 +30,30007|30043,30007,30043,,,,,,,2 +30,30015|30041,30015,30041,,,,,,,3 +30,30023|30001|30093,30023,30001,30093,,,,,,4 +30,30037|30107|30097|30095,30037,30107,30097,30095,,,,,5 +30,30039|30077,30039,30077,,,,,,,6 +30,30045|30059|30013,30045,30059,30013,,,,,,7 +30,30051|30101|30073,30051,30101,30073,,,,,,8 +30,30055|30079|30011|30025|30109|30021,30055,30079,30011,30025,30109,30021,,,9 +30,30057|30031,30057,30031,,,,,,,10 +30,30061|30089,30061,30089,,,,,,,11 +30,30065|30111,30065,30111,,,,,,,12 +30,30069|30027,30069,30027,,,,,,,13 +30,30075|30017,30075,30017,,,,,,,14 +30,30099|30049,30099,30049,,,,,,,15 +30,30103|30033|30087,30103,30033,30087,,,,,,16 +30,30105|30091|30019|30085,30105,30091,30019,30085,,,,,17 +31,31003|31011,31003,31011,,,,,,,1 +31,31015|31009|31017|31149|31103|31115|31071|31089,31015,31009,31017,31149,31103,31115,31071,31089,2 +31,31021|31177,31021,31177,,,,,,,3 +31,31023|31037,31023,31037,,,,,,,4 +31,31027|31051,31027,31051,,,,,,,5 +31,31029|31057|31085|31087|31005|31075|31101|31135,31029,31057,31085,31087,31005,31075,31101,31135,6 +31,31031|31091|31171|31117|31113|31111,31031,31091,31171,31117,31113,31111,,,7 +31,31035|31129,31035,31129,,,,,,,8 +31,31039|31173,31039,31173,,,,,,,9 +31,31059|31169,31059,31169,,,,,,,10 +31,31063|31145,31063,31145,,,,,,,11 +31,31095|31151,31095,31151,,,,,,,12 +31,31097|31133|31131,31097,31133,31131,,,,,,13 +31,31107|31139,31107,31139,,,,,,,14 +31,31123|31049|31069|31033,31123,31049,31069,31033,,,,,15 +31,31125|31081|31121,31125,31081,31121,,,,,,16 +31,31127|31147,31127,31147,,,,,,,17 +31,31137|31065|31073|31083,31137,31065,31073,31083,,,,,18 +31,31143|31185,31143,31185,,,,,,,19 +31,31161|31045|31013,31161,31045,31013,,,,,,20 +31,31165|31105|31007|31157,31165,31105,31007,31157,,,,,21 +31,31167|31179,31167,31179,,,,,,,22 +31,31175|31077|31183|31093|31163,31175,31077,31183,31093,31163,,,,23 +31,31181|31061|31099|31001,31181,31061,31099,31001,,,,,24 +32,32009|32021|32019,32009,32021,32019,,,,,,1 +32,32017|32003,32017,32003,,,,,,,2 +32,32027|32011|32015|32001,32027,32011,32015,32001,,,,,3 +32,32029|32510,32029,32510,,,,,,,4 +32,32033|32007,32033,32007,,,,,,,5 +35,35003|35006,35003,35006,,,,,,,1 +35,35021|35059|35007,35021,35059,35007,,,,,,2 +35,35023|35017,35023,35017,,,,,,,3 +35,35033|35011|35019|35047,35033,35011,35019,35047,,,,,4 +35,35037|35009,35037,35009,,,,,,,5 +36,36041|36043,36041,36043,,,,,,,1 +37,37075|37043,37075,37043,,,,,,,1 +37,37095|37177|37187,37095,37177,37187,,,,,,2 +38,38005|38103,38005,38103,,,,,,,1 +38,38009|38049,38009,38049,,,,,,,2 +38,38013|38061,38013,38061,,,,,,,3 +38,38019|38071,38019,38071,,,,,,,4 +38,38021|38045|38003,38021,38045,38003,,,,,,5 +38,38023|38105,38023,38105,,,,,,,6 +38,38025|38007|38033|38087|38011|38001|38041|38089,38025,38007,38033,38087,38011,38001,38041,38089,7 +38,38039|38063|38091|38035,38039,38063,38091,38035,,,,,8 +38,38043|38047|38051|38027|38031|38093,38043,38047,38051,38027,38031,38093,,,9 +38,38057|38055|38065,38057,38055,38065,,,,,,10 +38,38067|38099,38067,38099,,,,,,,11 +38,38073|38081|38077,38073,38081,38077,,,,,,12 +38,38075|38101,38075,38101,,,,,,,13 +38,38083|38029|38015,38083,38029,38015,,,,,,14 +38,38085|38037|38059,38085,38037,38059,,,,,,15 +38,38095|38069|38079,38095,38069,38079,,,,,,16 +38,38097|38017,38097,38017,,,,,,,17 +40,40007|40059|40045,40007,40059,40045,,,,,,1 +40,40011|40073,40011,40073,,,,,,,2 +40,40025|40139,40025,40139,,,,,,,3 +40,40029|40005,40029,40005,,,,,,,4 +40,40043|40039,40043,40039,,,,,,,5 +40,40053|40047,40053,40047,,,,,,,6 +40,40055|40057|40065,40055,40057,40065,,,,,,7 +40,40067|40137,40067,40137,,,,,,,8 +40,40075|40149,40075,40149,,,,,,,9 +40,40085|40019,40085,40019,,,,,,,10 +40,40129|40009,40129,40009,,,,,,,11 +40,40141|40033|40031,40141,40033,40031,,,,,,12 +40,40151|40003|40093,40151,40003,40093,,,,,,13 +41,41021|41055|41065,41021,41055,41065,,,,,,1 +41,41023|41069|41049,41023,41069,41049,,,,,,2 +41,41025|41045,41025,41045,,,,,,,3 +41,41037|41035,41037,41035,,,,,,,4 +41,41063|41061,41063,41061,,,,,,,5 +42,42023|42105,42023,42105,,,,,,,1 +42,42053|42123,42053,42123,,,,,,,2 +42,42113|42015,42113,42015,,,,,,,3 +45,45005|45011,45005,45011,,,,,,,1 +45,45065|45047,45065,45047,,,,,,,2 +46,46007|46071|46055|46095,46007,46071,46055,46095,,,,,1 +46,46009|46067,46009,46067,,,,,,,2 +46,46015|46017|46053,46015,46017,46053,,,,,,3 +46,46023|46043,46023,46043,,,,,,,4 +46,46031|46041|46137,46031,46041,46137,,,,,,5 +46,46033|46047,46033,46047,,,,,,,6 +46,46039|46011,46039,46011,,,,,,,7 +46,46045|46089|46049|46021|46129|46107|46119,46045,46089,46049,46021,46129,46107,46119,,8 +46,46051|46109,46051,46109,,,,,,,9 +46,46057|46025|46037|46029,46057,46025,46037,46029,,,,,10 +46,46061|46097|46087,46061,46097,46087,,,,,,11 +46,46063|46019,46063,46019,,,,,,,12 +46,46077|46079,46077,46079,,,,,,,13 +46,46085|46075|46117|46059|46069|46065,46085,46075,46117,46059,46069,46065,,,14 +46,46091|46013,46091,46013,,,,,,,15 +46,46101|46099,46101,46099,,,,,,,16 +46,46105|46093,46105,46093,,,,,,,17 +46,46111|46003|46073|46035,46111,46003,46073,46035,,,,,18 +46,46115|46005,46115,46005,,,,,,,19 +46,46121|46123,46121,46123,,,,,,,20 +46,46125|46135,46125,46135,,,,,,,21 +47,47027|47087,47027,47087,,,,,,,1 +47,47067|47073,47067,47073,,,,,,,2 +47,47083|47161,47083,47161,,,,,,,3 +47,47095|47045,47095,47045,,,,,,,4 +47,47127|47003,47127,47003,,,,,,,5 +47,47135|47039,47135,47039,,,,,,,6 +47,47137|47049,47137,47049,,,,,,,7 +47,47169|47111,47169,47111,,,,,,,8 +47,47175|47185,47175,47185,,,,,,,9 +48,48009|48485,48009,48485,,,,,,,1 +48,48011|48065|48233,48011,48065,48233,,,,,,2 +48,48017|48079,48017,48079,,,,,,,3 +48,48023|48447|48275|48207,48023,48447,48275,48207,,,,,4 +48,48043|48377,48043,48377,,,,,,,5 +48,48045|48153|48345|48107,48045,48153,48345,48107,,,,,6 +48,48047|48247,48047,48247,,,,,,,7 +48,48069|48279,48069,48279,,,,,,,8 +48,48081|48353,48081,48353,,,,,,,9 +48,48083|48049,48083,48049,,,,,,,10 +48,48095|48327|48307,48095,48327,48307,,,,,,11 +48,48103|48135,48103,48135,,,,,,,12 +48,48105|48383|48235|48461,48105,48383,48235,48461,,,,,13 +48,48109|48243|48389,48109,48243,48389,,,,,,14 +48,48111|48205,48111,48205,,,,,,,15 +48,48119|48223,48119,48223,,,,,,,16 +48,48125|48263|48169|48415,48125,48263,48169,48415,,,,,17 +48,48137|48385|48463,48137,48385,48463,,,,,,18 +48,48151|48433|48253,48151,48433,48253,,,,,,19 +48,48173|48033|48227,48173,48033,48227,,,,,,20 +48,48175|48025,48175,48025,,,,,,,21 +48,48191|48101|48269|48155|48197|48075|48087,48191,48101,48269,48155,48197,48075,48087,,22 +48,48193|48099,48193,48099,,,,,,,23 +48,48195|48421|48341,48195,48421,48341,,,,,,24 +48,48229|48141,48229,48141,,,,,,,25 +48,48237|48363,48237,48363,,,,,,,26 +48,48261|48489,48261,48489,,,,,,,27 +48,48267|48319|48265,48267,48319,48265,,,,,,28 +48,48271|48323,48271,48323,,,,,,,29 +48,48283|48163,48283,48163,,,,,,,30 +48,48295|48357,48295,48357,,,,,,,31 +48,48301|48495|48475,48301,48495,48475,,,,,,32 +48,48305|48303,48305,48303,,,,,,,33 +48,48311|48297,48311,48297,,,,,,,34 +48,48317|48115,48317,48115,,,,,,,35 +48,48333|48411,48333,48411,,,,,,,36 +48,48335|48431,48335,48431,,,,,,,37 +48,48369|48359|48117,48369,48359,48117,,,,,,38 +48,48391|48007,48391,48007,,,,,,,39 +48,48393|48211|48483|48129|48179,48393,48211,48483,48129,48179,,,,40 +48,48405|48403,48405,48403,,,,,,,41 +48,48413|48435|48451,48413,48435,48451,,,,,,42 +48,48417|48059,48417,48059,,,,,,,43 +48,48425|48221,48425,48221,,,,,,,44 +48,48429|48133,48429,48133,,,,,,,45 +48,48437|48381,48437,48381,,,,,,,46 +48,48443|48371,48443,48371,,,,,,,47 +48,48501|48165,48501,48165,,,,,,,48 +49,49001|49021,49001,49021,,,,,,,1 +49,49009|49047,49009,49047,,,,,,,2 +49,49019|49015,49019,49015,,,,,,,3 +49,49025|49031|49017|49055|49041,49025,49031,49017,49055,49041,,,,4 +49,49033|49005,49033,49005,,,,,,,5 +50,50009|50005,50009,50005,,,,,,,1 +50,50013|50011,50013,50011,,,,,,,2 +51,51017|51091|51163,51017,51091,51163,,,,,,1 +51,51021|51197,51021,51197,,,,,,,2 +51,51036|51127,51036,51127,,,,,,,3 +51,51045|51161,51045,51161,,,,,,,4 +51,51049|51029,51049,51029,,,,,,,5 +51,51097|51101,51097,51101,,,,,,,6 +51,51115|51073,51115,51073,,,,,,,7 +51,51157|51187,51157,51187,,,,,,,8 +51,51159|51193,51159,51193,,,,,,,9 +51,51181|51095,51181,51095,,,,,,,10 +53,53013|53023|53003,53013,53023,53003,,,,,,1 +53,53019|53065,53019,53065,,,,,,,2 +53,53069|53049,53069,53049,,,,,,,3 +54,54013|54087,54013,54087,,,,,,,1 +54,54015|54067,54015,54067,,,,,,,2 +54,54017|54095,54017,54095,,,,,,,3 +54,54021|54007,54021,54007,,,,,,,4 +54,54073|54085,54073,54085,,,,,,,5 +54,54075|54101,54075,54101,,,,,,,6 +54,54093|54071|54023,54093,54071,54023,,,,,,7 +54,54105|54107,54105,54107,,,,,,,8 +55,55037|55041,55037,55041,,,,,,,1 +55,55051|55003,55051,55003,,,,,,,2 +55,55078|55115,55078,55115,,,,,,,3 +55,55091|55011,55091,55011,,,,,,,4 +56,56011|56045,56011,56045,,,,,,,1 +56,56017|56013,56017,56013,,,,,,,2 +56,56019|56033,56019,56033,,,,,,,3 +56,56031|56027|56015,56031,56027,56015,,,,,,4 +56,56035|56023,56035,56023,,,,,,,5 +56,56043|56003,56043,56003,,,,,,,6 From a1c491cf5ed3705d13d7f8b6bac831d615bf2039 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 20 Feb 2023 13:28:37 -0500 Subject: [PATCH 08/18] test popsafe-fips --- _delphi_utils_python/tests/test_geomap.py | 45 ++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/_delphi_utils_python/tests/test_geomap.py b/_delphi_utils_python/tests/test_geomap.py index d10d35c4d..e763496a5 100644 --- a/_delphi_utils_python/tests/test_geomap.py +++ b/_delphi_utils_python/tests/test_geomap.py @@ -4,6 +4,7 @@ import pandas as pd import numpy as np +import pdb @pytest.fixture(scope="class") @@ -190,6 +191,10 @@ def test_load_fips_msa_table(self, geomapper): msa_data = geomapper.get_crosswalk(from_code="fips", to_code="msa") assert tuple(msa_data.columns) == ("fips", "msa") + def test_load_fips_popsafefips_table(self, geomapper): + popsafe_data = geomapper.get_crosswalk(from_code="fips", to_code="popsafe-fips") + assert tuple(popsafe_data.columns) == ("fips", "popsafe-fips") + def test_load_jhu_uid_fips_table(self, geomapper): jhu_data = geomapper.get_crosswalk(from_code="jhu_uid", to_code="fips") assert np.allclose(jhu_data.groupby("jhu_uid").sum(), 1.0) @@ -226,6 +231,12 @@ def test_megacounty(self, geomapper): } ) pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) + # popsafe-county should have the same behavior when converting to megacounties. + mega_county_groups = self.mega_data_3.copy() + mega_county_groups.fips.replace({1125:"01g01"}, inplace = True) + new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1) + pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) + new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1, thr_col="count") expected_df = pd.DataFrame( { @@ -236,6 +247,11 @@ def test_megacounty(self, geomapper): } ) pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) + # popsafe-county should have the same behavior when converting to megacounties. + mega_county_groups = self.mega_data_3.copy() + mega_county_groups.fips.replace({1123:"01g01"}, inplace = True) + new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1, thr_col="count") + pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) def test_add_population_column(self, geomapper): new_data = geomapper.add_population_column(self.fips_data_3, "fips") @@ -244,6 +260,8 @@ def test_add_population_column(self, geomapper): assert new_data.shape == (6, 5) with pytest.raises(ValueError): new_data = geomapper.add_population_column(self.zip_data, "hrr") + with pytest.raises(ValueError): + new_data = geomapper.add_population_column(self.zip_data, "popsafe-fips") new_data = geomapper.add_population_column(self.fips_data_5, "fips") assert new_data.shape == (4, 5) new_data = geomapper.add_population_column(self.state_data, "state_code") @@ -285,6 +303,26 @@ def test_add_geocode(self, geomapper): ) ) + # fips -> popsafe-fips + new_data = geomapper.add_geocode(self.fips_data_5, "fips", "popsafe-fips") + assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003'] + assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size + new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips") + assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003'] + assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size + + # popsafe-fips -> state_id + new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips") + new_data2 = geomapper.add_geocode(new_data, "popsafe-fips", "state_id") + assert new_data2["state_id"].unique().size == 4 + assert new_data2["state_id"].size == self.fips_data_5.fips.size + assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx'] + + new_data2 = geomapper.replace_geocode(new_data, "popsafe-fips", "state_id") + assert new_data2["state_id"].unique().size == 4 + assert new_data2["state_id"].size == 4 + assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx'] + # zip -> nation new_data = geomapper.replace_geocode(self.zip_data, "zip", "nation") pd.testing.assert_frame_equal( @@ -358,17 +396,22 @@ def test_get_geos(self, geomapper): assert geomapper.get_geo_values("nation") == {"us"} assert geomapper.get_geo_values("hhs") == set(str(i) for i in range(1, 11)) assert len(geomapper.get_geo_values("fips")) == 3236 + assert len(geomapper.get_geo_values("popsafe-fips")) == 2711 assert len(geomapper.get_geo_values("state_id")) == 60 assert len(geomapper.get_geo_values("zip")) == 32976 def test_get_geos_2019(self, geomapper_2019): assert len(geomapper_2019.get_geo_values("fips")) == 3235 + assert len(geomapper_2019.get_geo_values("popsafe-fips")) == 2710 def test_get_geos_within(self, geomapper): assert len(geomapper.get_geos_within("us","state","nation")) == 60 assert len(geomapper.get_geos_within("al","county","state")) == 68 + assert len(geomapper.get_geos_within("al","fips","state")) == 68 + assert geomapper.get_geos_within("al","fips","state") == geomapper.get_geos_within("al","county","state") + assert len(geomapper.get_geos_within("al","popsafe-fips","state")) == 66 assert len(geomapper.get_geos_within("4","state","hhs")) == 8 - assert geomapper.get_geos_within("4","state","hhs") =={'al', 'fl', 'ga', 'ky', 'ms', 'nc', "tn", "sc"} + assert geomapper.get_geos_within("4","state","hhs") == {'al', 'fl', 'ga', 'ky', 'ms', 'nc', "tn", "sc"} def test_census_year_pop(self, geomapper, geomapper_2019): df = pd.DataFrame({"fips": ["01001"]}) From f74aefd57dc1e88f8f830a1419fdff6f489993fd Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:01:55 -0500 Subject: [PATCH 09/18] linting --- _delphi_utils_python/delphi_utils/geomap.py | 26 +++++++++------------ _delphi_utils_python/tests/test_geomap.py | 1 - 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/_delphi_utils_python/delphi_utils/geomap.py b/_delphi_utils_python/delphi_utils/geomap.py index 8d726914c..93a5f26ac 100644 --- a/_delphi_utils_python/delphi_utils/geomap.py +++ b/_delphi_utils_python/delphi_utils/geomap.py @@ -9,11 +9,11 @@ """ # pylint: disable=too-many-lines from os.path import join +from collections import defaultdict import pandas as pd import pkg_resources from pandas.api.types import is_string_dtype -from collections import defaultdict class GeoMapper: # pylint: disable=too-many-public-methods @@ -121,11 +121,11 @@ def __init__(self, census_year=2020): # Include all unique geos from first-level and second-level keys in # CROSSWALK_FILENAMES, with a few exceptions self._geos = { - subkey for mainkey in self.CROSSWALK_FILENAMES.keys() - for subkey in self.CROSSWALK_FILENAMES[mainkey].keys() - }.union({ - mainkey for mainkey in self.CROSSWALK_FILENAMES.keys() - }) - set(["state", "pop", "jhu_uid"]) + subkey for mainkey in self.CROSSWALK_FILENAMES + for subkey in self.CROSSWALK_FILENAMES[mainkey] + }.union( + set(self.CROSSWALK_FILENAMES.keys()) + ) - set(["state", "pop", "jhu_uid"]) for from_code, to_codes in self.CROSSWALK_FILENAMES.items(): for to_code, file_path in to_codes.items(): @@ -590,17 +590,13 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g crosswalk_state = self._crosswalks["fips"]["state"] fips_hhs = crosswalk_hhs[crosswalk_hhs["hhs"] == container_geocode]["fips"] return set(crosswalk_state[crosswalk_state["fips"].isin(fips_hhs)]["state_id"]) - elif ( - ( - contained_geocode_type == "county" or - contained_geocode_type == "fips" or - contained_geocode_type == "popsafe-fips" - ) and - container_geocode_type == "state" - ): + elif (contained_geocode_type in ("county", "fips", "popsafe-fips") and + container_geocode_type == "state"): contained_geocode_type = self.as_mapper_name(contained_geocode_type) crosswalk = self._crosswalks[contained_geocode_type]["state"] - return set(crosswalk[crosswalk["state_id"] == container_geocode][contained_geocode_type]) + return set( + crosswalk[crosswalk["state_id"] == container_geocode][contained_geocode_type] + ) raise ValueError("(contained_geocode_type, container_geocode_type) was " f"({contained_geocode_type}, {container_geocode_type}), but " "must be one of (state, nation), (state, hhs), (county, state)" diff --git a/_delphi_utils_python/tests/test_geomap.py b/_delphi_utils_python/tests/test_geomap.py index e763496a5..63f7383ec 100644 --- a/_delphi_utils_python/tests/test_geomap.py +++ b/_delphi_utils_python/tests/test_geomap.py @@ -4,7 +4,6 @@ import pandas as pd import numpy as np -import pdb @pytest.fixture(scope="class") From 1a1bba73d0521fdcc3cfcd5e944d36a4680ddaba Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:53:20 -0500 Subject: [PATCH 10/18] change code name --- .../data_proc/geomap/geo_data_proc.py | 38 ++++++++--------- ...te_table.csv => chng-fips_state_table.csv} | 2 +- ...ips_table.csv => fips_chng-fips_table.csv} | 2 +- ...te_table.csv => chng-fips_state_table.csv} | 2 +- ...ips_table.csv => fips_chng-fips_table.csv} | 2 +- _delphi_utils_python/delphi_utils/geomap.py | 34 +++++++-------- _delphi_utils_python/tests/test_geomap.py | 42 +++++++++---------- 7 files changed, 61 insertions(+), 61 deletions(-) rename _delphi_utils_python/delphi_utils/data/2019/{popsafe-fips_state_table.csv => chng-fips_state_table.csv} (99%) rename _delphi_utils_python/delphi_utils/data/2019/{fips_popsafe-fips_table.csv => fips_chng-fips_table.csv} (99%) rename _delphi_utils_python/delphi_utils/data/2020/{popsafe-fips_state_table.csv => chng-fips_state_table.csv} (99%) rename _delphi_utils_python/delphi_utils/data/2020/{fips_popsafe-fips_table.csv => fips_chng-fips_table.csv} (99%) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 1942752d7..9f868e5bb 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -41,10 +41,10 @@ FIPS_HRR_OUT_FILENAME = "fips_hrr_table.csv" FIPS_ZIP_OUT_FILENAME = "fips_zip_table.csv" FIPS_HHS_FILENAME = "fips_hhs_table.csv" -FIPS_POPSAFEFIPS_OUT_FILENAME = "fips_popsafe-fips_table.csv" +FIPS_CHNGFIPS_OUT_FILENAME = "fips_chng-fips_table.csv" FIPS_POPULATION_OUT_FILENAME = "fips_pop.csv" -POPSAFEFIPS_STATE_OUT_FILENAME = "popsafe-fips_state_table.csv" +CHNGFIPS_STATE_OUT_FILENAME = "chng-fips_state_table.csv" ZIP_HSA_OUT_FILENAME = "zip_hsa_table.csv" ZIP_HRR_OUT_FILENAME = "zip_hrr_table.csv" ZIP_FIPS_OUT_FILENAME = "zip_fips_table.csv" @@ -478,8 +478,8 @@ def derive_zip_hhs_crosswalk(): zip_state.sort_values(["zip", "hhs"]).to_csv(join(OUTPUT_DIR, ZIP_HHS_FILENAME), index=False) -def derive_fips_popsafefips_crosswalk(): - """Build a crosswalk table for FIPS to pop-safe fips.""" +def derive_fips_chngfips_crosswalk(): + """Build a crosswalk table for FIPS to CHNG FIPS.""" if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): derive_fips_state_crosswalk() @@ -506,35 +506,35 @@ def derive_fips_popsafefips_crosswalk(): county_groups["group"] = county_groups["group"].str.zfill(2).astype("string") county_groups["fips"] = county_groups["fips"].str.zfill(5).astype("string") # Combine state codes and group ids into a single FIPS code. - county_groups["popsafe-fips"] = county_groups["state_fips"] + "g" + county_groups["group"] + county_groups["chng-fips"] = county_groups["state_fips"] + "g" + county_groups["group"] - county_groups = county_groups[["fips", "popsafe-fips"]] + county_groups = county_groups[["fips", "chng-fips"]] fips_to_state = pd.read_csv(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME), dtype="string", index_col=False) # Get all the fips that aren't included in the low-population groupings. extra_fips_list = list(set(fips_to_state.fips) - set(county_groups.fips)) - # Normal fips codes and pop-safe fips codes are the same for high-population counties. - extra_fips_df = pd.DataFrame({"fips" : extra_fips_list, "popsafe-fips" : extra_fips_list}, dtype="string") + # Normal fips codes and CHNG fips codes are the same for high-population counties. + extra_fips_df = pd.DataFrame({"fips" : extra_fips_list, "chng-fips" : extra_fips_list}, dtype="string") # Combine high-pop and low-pop counties. pd.concat( [county_groups, extra_fips_df] ).sort_values( - ["fips", "popsafe-fips"] + ["fips", "chng-fips"] ).to_csv( - join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME), index=False + join(OUTPUT_DIR, FIPS_CHNGFIPS_OUT_FILENAME), index=False ) -def derive_popsafefips_state_crosswalk(): - """Build a crosswalk table for FIPS to pop-safe fips.""" +def derive_chngfips_state_crosswalk(): + """Build a crosswalk table for FIPS to CHNG FIPS.""" if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): derive_fips_state_crosswalk() - if not isfile(join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME)): - derive_fips_popsafefips_crosswalk() + if not isfile(join(OUTPUT_DIR, FIPS_CHNGFIPS_OUT_FILENAME)): + derive_fips_chngfips_crosswalk() - fips_to_group = pd.read_csv(join(OUTPUT_DIR, FIPS_POPSAFEFIPS_OUT_FILENAME), dtype="string", index_col=False) + fips_to_group = pd.read_csv(join(OUTPUT_DIR, FIPS_CHNGFIPS_OUT_FILENAME), dtype="string", index_col=False) fips_to_state = pd.read_csv(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME), dtype="string", index_col=False) group_to_state = fips_to_group.join( @@ -543,9 +543,9 @@ def derive_popsafefips_state_crosswalk(): columns = "fips" ).drop_duplicates( ).sort_values( - ["popsafe-fips", "state_code"] + ["chng-fips", "state_code"] ) - group_to_state.to_csv(join(OUTPUT_DIR, POPSAFEFIPS_STATE_OUT_FILENAME), index=False) + group_to_state.to_csv(join(OUTPUT_DIR, CHNGFIPS_STATE_OUT_FILENAME), index=False) def clear_dir(dir_path: str): @@ -574,5 +574,5 @@ def clear_dir(dir_path: str): derive_zip_population_table() derive_fips_hhs_crosswalk() derive_zip_hhs_crosswalk() - derive_fips_popsafefips_crosswalk() - derive_popsafefips_state_crosswalk() + derive_fips_chngfips_crosswalk() + derive_chngfips_state_crosswalk() diff --git a/_delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv b/_delphi_utils_python/delphi_utils/data/2019/chng-fips_state_table.csv similarity index 99% rename from _delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv rename to _delphi_utils_python/delphi_utils/data/2019/chng-fips_state_table.csv index 7d8b5a42c..438628972 100644 --- a/_delphi_utils_python/delphi_utils/data/2019/popsafe-fips_state_table.csv +++ b/_delphi_utils_python/delphi_utils/data/2019/chng-fips_state_table.csv @@ -1,4 +1,4 @@ -popsafe-fips,state_code,state_id,state_name +chng-fips,state_code,state_id,state_name 01000,01,al,Alabama 01001,01,al,Alabama 01003,01,al,Alabama diff --git a/_delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv b/_delphi_utils_python/delphi_utils/data/2019/fips_chng-fips_table.csv similarity index 99% rename from _delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv rename to _delphi_utils_python/delphi_utils/data/2019/fips_chng-fips_table.csv index 9c1603ea9..10345fdd8 100644 --- a/_delphi_utils_python/delphi_utils/data/2019/fips_popsafe-fips_table.csv +++ b/_delphi_utils_python/delphi_utils/data/2019/fips_chng-fips_table.csv @@ -1,4 +1,4 @@ -fips,popsafe-fips +fips,chng-fips 01000,01000 01001,01001 01003,01003 diff --git a/_delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv b/_delphi_utils_python/delphi_utils/data/2020/chng-fips_state_table.csv similarity index 99% rename from _delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv rename to _delphi_utils_python/delphi_utils/data/2020/chng-fips_state_table.csv index 566d5c3d8..7ee88aa5b 100644 --- a/_delphi_utils_python/delphi_utils/data/2020/popsafe-fips_state_table.csv +++ b/_delphi_utils_python/delphi_utils/data/2020/chng-fips_state_table.csv @@ -1,4 +1,4 @@ -popsafe-fips,state_code,state_id,state_name +chng-fips,state_code,state_id,state_name 01000,01,al,Alabama 01001,01,al,Alabama 01003,01,al,Alabama diff --git a/_delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv b/_delphi_utils_python/delphi_utils/data/2020/fips_chng-fips_table.csv similarity index 99% rename from _delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv rename to _delphi_utils_python/delphi_utils/data/2020/fips_chng-fips_table.csv index 163934c78..8af71608e 100644 --- a/_delphi_utils_python/delphi_utils/data/2020/fips_popsafe-fips_table.csv +++ b/_delphi_utils_python/delphi_utils/data/2020/fips_chng-fips_table.csv @@ -1,4 +1,4 @@ -fips,popsafe-fips +fips,chng-fips 01000,01000 01001,01001 01003,01003 diff --git a/_delphi_utils_python/delphi_utils/geomap.py b/_delphi_utils_python/delphi_utils/geomap.py index 93a5f26ac..d5446d1ea 100644 --- a/_delphi_utils_python/delphi_utils/geomap.py +++ b/_delphi_utils_python/delphi_utils/geomap.py @@ -41,8 +41,8 @@ class GeoMapper: # pylint: disable=too-many-public-methods - [x] fips -> megacounty - [x] fips -> hrr - [x] fips -> hhs - - [x] fips -> popsafe-fips - - [x] popsafe-fips -> state : unweighted + - [x] fips -> chng-fips + - [x] chng-fips -> state : unweighted - [x] nation - [ ] zip -> dma (postponed) @@ -82,7 +82,7 @@ class GeoMapper: # pylint: disable=too-many-public-methods "hhs": "zip_hhs_table.csv" }, "fips": { - "popsafe-fips": "fips_popsafe-fips_table.csv", + "chng-fips": "fips_chng-fips_table.csv", "zip": "fips_zip_table.csv", "hrr": "fips_hrr_table.csv", "msa": "fips_msa_table.csv", @@ -90,7 +90,7 @@ class GeoMapper: # pylint: disable=too-many-public-methods "state": "fips_state_table.csv", "hhs": "fips_hhs_table.csv", }, - "popsafe-fips": {"state": "popsafe-fips_state_table.csv"}, + "chng-fips": {"state": "chng-fips_state_table.csv"}, "state": {"state": "state_codes_table.csv"}, "state_code": { "hhs": "state_code_hhs_table.csv", @@ -169,7 +169,7 @@ def _load_geo_values(self, geo_type): @staticmethod def convert_fips_to_mega(data, fips_col="fips", mega_col="megafips"): - """Convert fips or popsafe-fips string to a megafips string.""" + """Convert fips or chng-fips string to a megafips string.""" data = data.copy() data[mega_col] = data[fips_col].astype(str).str.zfill(5) data[mega_col] = data[mega_col].str.slice_replace(start=2, stop=5, repl="000") @@ -234,8 +234,8 @@ def add_geocode( """Add a new geocode column to a dataframe. Currently supported conversions: - - fips -> state_code, state_id, state_name, zip, msa, hrr, nation, hhs, popsafe-fips - - popsafe-fips -> state_code, state_id, state_name + - fips -> state_code, state_id, state_name, zip, msa, hrr, nation, hhs, chng-fips + - chng-fips -> state_code, state_id, state_name - zip -> state_code, state_id, state_name, fips, msa, hrr, nation, hhs - jhu_uid -> fips - state_x -> state_y (where x and y are in {code, id, name}), nation @@ -245,10 +245,10 @@ def add_geocode( --------- df: pd.DataFrame Input dataframe. - from_code: {'fips', 'popsafe-fips', 'zip', 'jhu_uid', 'state_code', + from_code: {'fips', 'chng-fips', 'zip', 'jhu_uid', 'state_code', 'state_id', 'state_name'} Specifies the geocode type of the data in from_col. - new_code: {'fips', 'popsafe-fips', 'zip', 'state_code', 'state_id', + new_code: {'fips', 'chng-fips', 'zip', 'state_code', 'state_id', 'state_name', 'hrr', 'msa', 'hhs'} Specifies the geocode type in new_col. from_col: str, default None @@ -276,7 +276,7 @@ def add_geocode( state_codes = ["state_code", "state_id", "state_name"] if not is_string_dtype(df[from_col]): - if from_code in ["fips", "zip", "popsafe-fips"]: + if from_code in ["fips", "zip", "chng-fips"]: df[from_col] = df[from_col].astype(str).str.zfill(5) else: df[from_col] = df[from_col].astype(str) @@ -348,8 +348,8 @@ def replace_geocode( """Replace a geocode column in a dataframe. Currently supported conversions: - - fips -> popsafe-fips, state_code, state_id, state_name, zip, msa, hrr, nation - - popsafe-fips -> state_code, state_id, state_name + - fips -> chng-fips, state_code, state_id, state_name, zip, msa, hrr, nation + - chng-fips -> state_code, state_id, state_name - zip -> state_code, state_id, state_name, fips, msa, hrr, nation - jhu_uid -> fips - state_x -> state_y (where x and y are in {code, id, name}), nation @@ -463,7 +463,7 @@ def fips_to_megacounty( mega_col="megafips", count_cols=None, ): - """Convert and aggregate from FIPS or popsafe-fips to megaFIPS. + """Convert and aggregate from FIPS or chng-fips to megaFIPS. Parameters --------- @@ -565,7 +565,7 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g Supports these 4 combinations: - all states within a nation - all counties within a state - - all popsafe counties within a state + - all CHNG counties+county groups within a state - all states within an hhs region Parameters @@ -573,7 +573,7 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g container_geocode: str Instance of nation/state/hhs to find the sub-regions of contained_geocode_type: str - The subregion type to retrieve. One of "state", "county", "fips", "popsafe-fips" + The subregion type to retrieve. One of "state", "county", "fips", "chng-fips" container_geocode_type: str The parent region type. One of "state", "nation", "hhs" @@ -590,7 +590,7 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g crosswalk_state = self._crosswalks["fips"]["state"] fips_hhs = crosswalk_hhs[crosswalk_hhs["hhs"] == container_geocode]["fips"] return set(crosswalk_state[crosswalk_state["fips"].isin(fips_hhs)]["state_id"]) - elif (contained_geocode_type in ("county", "fips", "popsafe-fips") and + elif (contained_geocode_type in ("county", "fips", "chng-fips") and container_geocode_type == "state"): contained_geocode_type = self.as_mapper_name(contained_geocode_type) crosswalk = self._crosswalks[contained_geocode_type]["state"] @@ -600,4 +600,4 @@ def get_geos_within(self, container_geocode, contained_geocode_type, container_g raise ValueError("(contained_geocode_type, container_geocode_type) was " f"({contained_geocode_type}, {container_geocode_type}), but " "must be one of (state, nation), (state, hhs), (county, state)" - ", (fips, state), (popsafe-fips, state)") + ", (fips, state), (chng-fips, state)") diff --git a/_delphi_utils_python/tests/test_geomap.py b/_delphi_utils_python/tests/test_geomap.py index 63f7383ec..fb582e7d5 100644 --- a/_delphi_utils_python/tests/test_geomap.py +++ b/_delphi_utils_python/tests/test_geomap.py @@ -190,9 +190,9 @@ def test_load_fips_msa_table(self, geomapper): msa_data = geomapper.get_crosswalk(from_code="fips", to_code="msa") assert tuple(msa_data.columns) == ("fips", "msa") - def test_load_fips_popsafefips_table(self, geomapper): - popsafe_data = geomapper.get_crosswalk(from_code="fips", to_code="popsafe-fips") - assert tuple(popsafe_data.columns) == ("fips", "popsafe-fips") + def test_load_fips_chngfips_table(self, geomapper): + chngfips_data = geomapper.get_crosswalk(from_code="fips", to_code="chng-fips") + assert tuple(chngfips_data.columns) == ("fips", "chng-fips") def test_load_jhu_uid_fips_table(self, geomapper): jhu_data = geomapper.get_crosswalk(from_code="jhu_uid", to_code="fips") @@ -230,7 +230,7 @@ def test_megacounty(self, geomapper): } ) pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) - # popsafe-county should have the same behavior when converting to megacounties. + # chng-fips should have the same behavior when converting to megacounties. mega_county_groups = self.mega_data_3.copy() mega_county_groups.fips.replace({1125:"01g01"}, inplace = True) new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1) @@ -246,7 +246,7 @@ def test_megacounty(self, geomapper): } ) pd.testing.assert_frame_equal(new_data.set_index("megafips").sort_index(axis=1), expected_df.set_index("megafips").sort_index(axis=1)) - # popsafe-county should have the same behavior when converting to megacounties. + # chng-fips should have the same behavior when converting to megacounties. mega_county_groups = self.mega_data_3.copy() mega_county_groups.fips.replace({1123:"01g01"}, inplace = True) new_data = geomapper.fips_to_megacounty(self.mega_data_3, 4, 1, thr_col="count") @@ -260,7 +260,7 @@ def test_add_population_column(self, geomapper): with pytest.raises(ValueError): new_data = geomapper.add_population_column(self.zip_data, "hrr") with pytest.raises(ValueError): - new_data = geomapper.add_population_column(self.zip_data, "popsafe-fips") + new_data = geomapper.add_population_column(self.zip_data, "chng-fips") new_data = geomapper.add_population_column(self.fips_data_5, "fips") assert new_data.shape == (4, 5) new_data = geomapper.add_population_column(self.state_data, "state_code") @@ -302,22 +302,22 @@ def test_add_geocode(self, geomapper): ) ) - # fips -> popsafe-fips - new_data = geomapper.add_geocode(self.fips_data_5, "fips", "popsafe-fips") - assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003'] - assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size - new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips") - assert sorted(list(new_data["popsafe-fips"])) == ['01123', '18181', '48g19', '72003'] - assert new_data["popsafe-fips"].size == self.fips_data_5.fips.size - - # popsafe-fips -> state_id - new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "popsafe-fips") - new_data2 = geomapper.add_geocode(new_data, "popsafe-fips", "state_id") + # fips -> chng-fips + new_data = geomapper.add_geocode(self.fips_data_5, "fips", "chng-fips") + assert sorted(list(new_data["chng-fips"])) == ['01123', '18181', '48g19', '72003'] + assert new_data["chng-fips"].size == self.fips_data_5.fips.size + new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "chng-fips") + assert sorted(list(new_data["chng-fips"])) == ['01123', '18181', '48g19', '72003'] + assert new_data["chng-fips"].size == self.fips_data_5.fips.size + + # chng-fips -> state_id + new_data = geomapper.replace_geocode(self.fips_data_5, "fips", "chng-fips") + new_data2 = geomapper.add_geocode(new_data, "chng-fips", "state_id") assert new_data2["state_id"].unique().size == 4 assert new_data2["state_id"].size == self.fips_data_5.fips.size assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx'] - new_data2 = geomapper.replace_geocode(new_data, "popsafe-fips", "state_id") + new_data2 = geomapper.replace_geocode(new_data, "chng-fips", "state_id") assert new_data2["state_id"].unique().size == 4 assert new_data2["state_id"].size == 4 assert sorted(list(new_data2["state_id"])) == ['al', 'in', 'pr', 'tx'] @@ -395,20 +395,20 @@ def test_get_geos(self, geomapper): assert geomapper.get_geo_values("nation") == {"us"} assert geomapper.get_geo_values("hhs") == set(str(i) for i in range(1, 11)) assert len(geomapper.get_geo_values("fips")) == 3236 - assert len(geomapper.get_geo_values("popsafe-fips")) == 2711 + assert len(geomapper.get_geo_values("chng-fips")) == 2711 assert len(geomapper.get_geo_values("state_id")) == 60 assert len(geomapper.get_geo_values("zip")) == 32976 def test_get_geos_2019(self, geomapper_2019): assert len(geomapper_2019.get_geo_values("fips")) == 3235 - assert len(geomapper_2019.get_geo_values("popsafe-fips")) == 2710 + assert len(geomapper_2019.get_geo_values("chng-fips")) == 2710 def test_get_geos_within(self, geomapper): assert len(geomapper.get_geos_within("us","state","nation")) == 60 assert len(geomapper.get_geos_within("al","county","state")) == 68 assert len(geomapper.get_geos_within("al","fips","state")) == 68 assert geomapper.get_geos_within("al","fips","state") == geomapper.get_geos_within("al","county","state") - assert len(geomapper.get_geos_within("al","popsafe-fips","state")) == 66 + assert len(geomapper.get_geos_within("al","chng-fips","state")) == 66 assert len(geomapper.get_geos_within("4","state","hhs")) == 8 assert geomapper.get_geos_within("4","state","hhs") == {'al', 'fl', 'ga', 'ky', 'ms', 'nc', "tn", "sc"} From bb7df1a8000b599d53c3b954b2491ff983e53add Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Fri, 3 Mar 2023 12:51:32 -0500 Subject: [PATCH 11/18] generate local county mapping from CHNG spreadsheet --- .../data_proc/geomap/geo_data_proc.py | 100 ++++++++++++++++-- 1 file changed, 94 insertions(+), 6 deletions(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 9f868e5bb..cb7aef824 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -483,12 +483,7 @@ def derive_fips_chngfips_crosswalk(): if not isfile(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME)): derive_fips_state_crosswalk() - # County mapping file is derived from - # https://docs.google.com/spreadsheets/d/1PEce4CjjHbRM1Z5xEMNI6Xsq_b2kkCh0/edit#gid=871427657. - # We assign an incrementing integer to be the group id of each county - # grouping within the given state via: - # - # county_groups["group"] = (county_groups.groupby("state_fips").cumcount() + 1).astype("string") + assign_county_groups() county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False ).drop(columns = "fips_list") @@ -548,6 +543,99 @@ def derive_chngfips_state_crosswalk(): group_to_state.to_csv(join(OUTPUT_DIR, CHNGFIPS_STATE_OUT_FILENAME), index=False) +def fetch_county_groups_spreadsheet(): + # County mapping file is derived from + # https://docs.google.com/spreadsheets/d/1PEce4CjjHbRM1Z5xEMNI6Xsq_b2kkCh0/edit#gid=871427657 + sheet_id = "1PEce4CjjHbRM1Z5xEMNI6Xsq_b2kkCh0" + sheet_name = "groupings" + # Request sheet in CSV format via tag in URL. + url = f"https://docs.google.com/spreadsheets/d/{sheet_id}/gviz/tq?tqx=out:csv&sheet={sheet_name}" + + county_groups = pd.read_csv( + url, dtype="string", index_col=False + ).dropna( + how="all", axis=1 + ) + county_groups["state FIPS"] = county_groups["state FIPS"].astype(int) + + # Counties belonging to each group are listed (as FIPS codes) in the "county + # FIPS grouping" column, concatenated and separated by the pipe "|". Each + # included FIPS code is also listed in its own unnamed column. County groups + # can contain varying numbers of counties, and if CHNG provides new or updated + # county groupings the number of unnamed columns listing included counties + # could change. Use a general approach to find all of them. + county_cols = [colname for colname in county_groups.columns if colname.startswith("Unnamed: ")] + + new_names = { + "state FIPS": "state_fips", + "county FIPS grouping": "fips_list", + **{ colname: ("county" + str(i + 1)) for i, colname in enumerate(county_cols)} + } + + county_groups = county_groups.rename( + columns=new_names + )[new_names.values()] + + return county_groups + + +def assign_county_groups(): + county_groups = fetch_county_groups_spreadsheet() + + # If a `lowpop_county_groups.csv` already exists in `data_proc/geomap`, we + # have to be careful to not reassign a group number to a different group. + # Group numbers must remain fixed, even if a given county group is no longer + # being used. + if isfile(LOWPOP_COUNTY_GROUPS_FILE): + old_county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False) + old_county_groups.group = old_county_groups.group.astype(int) + old_county_groups.state_fips = old_county_groups.state_fips.astype(int) + + # Remove rows from county_groups if that `fips_list` value already + # exists in old_county_groups. + county_groups = county_groups[ + ~county_groups.fips_list.isin(old_county_groups.fips_list) + ] + + # If grouping file has no new rows, no need to process again. + if county_groups.empty: + return + + # Assign an incrementing integer to be the group id of each remaining + # county grouping within a state using the given sort order. + county_groups["group"] = county_groups.groupby("state_fips").cumcount() + 1 + + # Find max group number by state in old_county_groups, join on, and + # add max group number to group number. + max_group_by_state = old_county_groups.groupby( + "state_fips" + ).group.max( + ).reset_index( + ).rename( + columns = {"group": "max_group"} + ) + county_groups = county_groups.join( + max_group_by_state.set_index("state_fips"), + how="left", + on="state_fips" + ).assign( + group = lambda x: x.group + x.max_group + ).drop( + ["max_group"], axis=1 + ) + + # Combine old_county_groups and county_groups + county_groups = pd.concat([old_county_groups, county_groups]) + else: + county_groups["group"] = county_groups.groupby("state_fips").cumcount() + 1 + + county_groups.sort_values( + ["state_fips"], kind="stable" + ).to_csv( + LOWPOP_COUNTY_GROUPS_FILE, index=False + ) + + def clear_dir(dir_path: str): for fname in listdir(dir_path): remove(join(dir_path, fname)) From be8da3122af8f6e3bae8083cdfe8b09c8f8e7aad Mon Sep 17 00:00:00 2001 From: nmdefries <42820733+nmdefries@users.noreply.github.com> Date: Fri, 3 Mar 2023 15:22:41 -0500 Subject: [PATCH 12/18] remove "population" wording in relation to chng-fips Co-authored-by: Katie Mazaitis --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 9f868e5bb..7aa998d05 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -33,7 +33,7 @@ FIPS_PUERTO_RICO_POPULATION_URL = "https://www2.census.gov/geo/docs/maps-data/data/rel/zcta_county_rel_10.txt?" STATE_HHS_FILE = "hhs.txt" ZIP_POP_MISSING_FILE = "zip_pop_filling.csv" -LOWPOP_COUNTY_GROUPS_FILE = "lowpop_county_groups.csv" +CHNG_COUNTY_GROUPS_FILE = "chng_county_groups.csv" # Out files FIPS_STATE_OUT_FILENAME = "fips_state_table.csv" @@ -489,7 +489,7 @@ def derive_fips_chngfips_crosswalk(): # grouping within the given state via: # # county_groups["group"] = (county_groups.groupby("state_fips").cumcount() + 1).astype("string") - county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False + county_groups = pd.read_csv(CHNG_COUNTY_GROUPS_FILE, dtype="string", index_col=False ).drop(columns = "fips_list") # Change to long format. @@ -511,12 +511,12 @@ def derive_fips_chngfips_crosswalk(): county_groups = county_groups[["fips", "chng-fips"]] fips_to_state = pd.read_csv(join(OUTPUT_DIR, FIPS_STATE_OUT_FILENAME), dtype="string", index_col=False) - # Get all the fips that aren't included in the low-population groupings. + # Get all the fips that aren't included in the chng groupings. extra_fips_list = list(set(fips_to_state.fips) - set(county_groups.fips)) - # Normal fips codes and CHNG fips codes are the same for high-population counties. + # Normal fips codes and CHNG fips codes are the same for ungrouped counties. extra_fips_df = pd.DataFrame({"fips" : extra_fips_list, "chng-fips" : extra_fips_list}, dtype="string") - # Combine high-pop and low-pop counties. + # Combine grouped and ungrouped counties. pd.concat( [county_groups, extra_fips_df] ).sort_values( From 54faa45c838e31efc9064e7a6920d889366500e4 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Fri, 3 Mar 2023 15:28:21 -0500 Subject: [PATCH 13/18] rename local county groups csv to not mention population --- .../geomap/{lowpop_county_groups.csv => chng_county_groups.csv} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _delphi_utils_python/data_proc/geomap/{lowpop_county_groups.csv => chng_county_groups.csv} (100%) diff --git a/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv b/_delphi_utils_python/data_proc/geomap/chng_county_groups.csv similarity index 100% rename from _delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv rename to _delphi_utils_python/data_proc/geomap/chng_county_groups.csv From 18a08a5fd8d0e07a68bf45c732c03e752c3765aa Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 13 Mar 2023 07:35:18 -0400 Subject: [PATCH 14/18] drop split-out county fields; don't always exist in input --- .../data_proc/geomap/geo_data_proc.py | 11 +- .../data_proc/geomap/lowpop_county_groups.csv | 804 +++++++++--------- 2 files changed, 404 insertions(+), 411 deletions(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index cb7aef824..957bc72c8 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -559,17 +559,10 @@ def fetch_county_groups_spreadsheet(): county_groups["state FIPS"] = county_groups["state FIPS"].astype(int) # Counties belonging to each group are listed (as FIPS codes) in the "county - # FIPS grouping" column, concatenated and separated by the pipe "|". Each - # included FIPS code is also listed in its own unnamed column. County groups - # can contain varying numbers of counties, and if CHNG provides new or updated - # county groupings the number of unnamed columns listing included counties - # could change. Use a general approach to find all of them. - county_cols = [colname for colname in county_groups.columns if colname.startswith("Unnamed: ")] - + # FIPS grouping" column, concatenated and separated by the pipe "|". new_names = { "state FIPS": "state_fips", - "county FIPS grouping": "fips_list", - **{ colname: ("county" + str(i + 1)) for i, colname in enumerate(county_cols)} + "county FIPS grouping": "fips_list" } county_groups = county_groups.rename( diff --git a/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv b/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv index c09ace96c..c754eccb7 100644 --- a/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv +++ b/_delphi_utils_python/data_proc/geomap/lowpop_county_groups.csv @@ -1,402 +1,402 @@ -state_fips,fips_list,county1,county2,county3,county4,county5,county6,county7,county8,group -1,01063|01065,01063,01065,,,,,,,1 -1,01105|01047,01105,01047,,,,,,,2 -4,04011|04009,04011,04009,,,,,,,1 -5,05025|05013|05011,05025,05013,05011,,,,,,1 -5,05039|05053,05039,05053,,,,,,,2 -5,05073|05091,05073,05091,,,,,,,3 -5,05077|05123,05077,05123,,,,,,,4 -5,05095|05117,05095,05117,,,,,,,5 -5,05097|05109,05097,05109,,,,,,,6 -5,05099|05057,05099,05057,,,,,,,7 -5,05101|05009,05101,05009,,,,,,,8 -5,05129|05089,05129,05089,,,,,,,9 -5,05147|05067,05147,05067,,,,,,,10 -6,06003|06109,06003,06109,,,,,,,1 -6,06049|06035,06049,06035,,,,,,,2 -6,06091|06057,06091,06057,,,,,,,3 -8,08011|08061|08009|08099,08011,08061,08009,08099,,,,,1 -8,08017|08063|08125,08017,08063,08125,,,,,,2 -8,08019|08047,08019,08047,,,,,,,3 -8,08023|08003,08023,08003,,,,,,,4 -8,08025|08089,08025,08089,,,,,,,5 -8,08027|08043,08027,08043,,,,,,,6 -8,08053|08111|08091|08033|08113|08085,08053,08111,08091,08033,08113,08085,,,7 -8,08055|08101,08055,08101,,,,,,,8 -8,08057|08049,08057,08049,,,,,,,9 -8,08065|08015,08065,08015,,,,,,,10 -8,08073|08039,08073,08039,,,,,,,11 -8,08079|08007,08079,08007,,,,,,,12 -8,08095|08115|08075,08095,08115,08075,,,,,,13 -8,08103|08045,08103,08045,,,,,,,14 -8,08109|08021|08105,08109,08021,08105,,,,,,15 -8,08121|08087,08121,08087,,,,,,,16 -12,12067|12121,12067,12121,,,,,,,1 -12,12077|12037,12077,12037,,,,,,,2 -13,13003|13069,13003,13069,,,,,,,1 -13,13007|13205,13007,13205,,,,,,,2 -13,13061|13239|13037|13243,13061,13239,13037,13243,,,,,3 -13,13065|13101,13065,13101,,,,,,,4 -13,13125|13301|13189,13125,13301,13189,,,,,,5 -13,13155|13017,13155,13017,,,,,,,6 -13,13165|13033,13165,13033,,,,,,,7 -13,13167|13303,13167,13303,,,,,,,8 -13,13181|13317,13181,13317,,,,,,,9 -13,13197|13249,13197,13249,,,,,,,10 -13,13201|13099,13201,13099,,,,,,,11 -13,13209|13279,13209,13279,,,,,,,12 -13,13253|13087,13253,13087,,,,,,,13 -13,13259|13307|13053,13259,13307,13053,,,,,,14 -13,13263|13293,13263,13293,,,,,,,15 -13,13265|13133,13265,13133,,,,,,,16 -13,13269|13193,13269,13193,,,,,,,17 -13,13273|13177,13273,13177,,,,,,,18 -13,13283|13107,13283,13107,,,,,,,19 -13,13287|13081,13287,13081,,,,,,,20 -13,13289|13023,13289,13023,,,,,,,21 -13,13309|13271,13309,13271,,,,,,,22 -13,13315|13235,13315,13235,,,,,,,23 -13,13319|13141|13009,13319,13141,13009,,,,,,24 -16,16003|16087,16003,16087,,,,,,,1 -16,16009|16057,16009,16057,,,,,,,2 -16,16015|16045,16015,16045,,,,,,,3 -16,16025|16047,16025,16047,,,,,,,4 -16,16029|16007|16041,16029,16007,16041,,,,,,5 -16,16033|16023|16051,16033,16023,16051,,,,,,6 -16,16035|16079,16035,16079,,,,,,,7 -16,16037|16059,16037,16059,,,,,,,8 -16,16061|16069,16061,16069,,,,,,,9 -16,16063|16053,16063,16053,,,,,,,10 -16,16071|16077,16071,16077,,,,,,,11 -17,17003|17153,17003,17153,,,,,,,1 -17,17009|17169,17009,17169,,,,,,,2 -17,17013|17083,17013,17083,,,,,,,3 -17,17047|17185,17047,17185,,,,,,,4 -17,17059|17069|17165,17059,17069,17165,,,,,,5 -17,17065|17193,17065,17193,,,,,,,6 -17,17071|17187,17071,17187,,,,,,,7 -17,17079|17035,17079,17035,,,,,,,8 -17,17151|17127,17151,17127,,,,,,,9 -17,17155|17123,17155,17123,,,,,,,10 -17,17171|17137,17171,17137,,,,,,,11 -17,17175|17143,17175,17143,,,,,,,12 -18,18007|18171,18007,18171,,,,,,,1 -18,18115|18155,18115,18155,,,,,,,2 -18,18161|18041,18161,18041,,,,,,,3 -19,19001|19077,19001,19077,,,,,,,1 -19,19003|19173,19003,19173,,,,,,,2 -19,19009|19029,19009,19029,,,,,,,3 -19,19025|19151,19025,19151,,,,,,,4 -19,19039|19053,19039,19053,,,,,,,5 -19,19051|19179,19051,19179,,,,,,,6 -19,19063|19147,19063,19147,,,,,,,7 -19,19071|19129,19071,19129,,,,,,,8 -19,19089|19037,19089,19037,,,,,,,9 -19,19091|19073|19187,19091,19073,19187,,,,,,10 -19,19093|19035,19093,19035,,,,,,,11 -19,19117|19185,19117,19185,,,,,,,12 -19,19133|19193,19133,19193,,,,,,,13 -19,19135|19007,19135,19007,,,,,,,14 -19,19143|19141,19143,19141,,,,,,,15 -19,19159|19175,19159,19175,,,,,,,16 -19,19177|19101,19177,19101,,,,,,,17 -19,19195|19033,19195,19033,,,,,,,18 -20,20003|20001,20003,20001,,,,,,,1 -20,20017|20127|20061,20017,20127,20061,,,,,,2 -20,20023|20181|20199,20023,20181,20199,,,,,,3 -20,20025|20057,20025,20057,,,,,,,4 -20,20039|20179|20137,20039,20179,20137,,,,,,5 -20,20043|20013|20005,20043,20013,20005,,,,,,6 -20,20053|20105|20159,20053,20105,20159,,,,,,7 -20,20063|20101|20171|20109,20063,20101,20171,20109,,,,,8 -20,20065|20195|20051,20065,20195,20051,,,,,,9 -20,20069|20055,20069,20055,,,,,,,10 -20,20071|20203|20093|20075|20187,20071,20203,20093,20075,20187,,,,11 -20,20073|20031|20207,20073,20031,20207,,,,,,12 -20,20077|20095,20077,20095,,,,,,,13 -20,20083|20135|20165|20145,20083,20135,20165,20145,,,,,14 -20,20107|20121,20107,20121,,,,,,,15 -20,20117|20149,20117,20149,,,,,,,16 -20,20119|20081|20175,20119,20081,20175,,,,,,17 -20,20129|20067|20189,20129,20067,20189,,,,,,18 -20,20147|20163,20147,20163,,,,,,,19 -20,20153|20193,20153,20193,,,,,,,20 -20,20157|20029|20143,20157,20029,20143,,,,,,21 -20,20167|20009,20167,20009,,,,,,,22 -20,20183|20089|20123|20141,20183,20089,20123,20141,,,,,23 -20,20185|20033|20097|20047|20007|20151,20185,20033,20097,20047,20007,20151,,,24 -20,20197|20177,20197,20177,,,,,,,25 -20,20201|20027|20161,20201,20027,20161,,,,,,26 -20,20205|20019|20049|20125,20205,20019,20049,20125,,,,,27 -21,21007|21039,21007,21039,,,,,,,1 -21,21023|21201,21023,21201,,,,,,,2 -21,21055|21139,21055,21139,,,,,,,3 -21,21057|21053,21057,21053,,,,,,,4 -21,21063|21043,21063,21043,,,,,,,5 -21,21075|21105,21075,21105,,,,,,,6 -21,21077|21187,21077,21187,,,,,,,7 -21,21129|21189,21129,21189,,,,,,,8 -21,21143|21033,21143,21033,,,,,,,9 -21,21149|21091|21059,21149,21091,21059,,,,,,10 -21,21165|21237,21165,21237,,,,,,,11 -21,21169|21087,21169,21087,,,,,,,12 -21,21181|21017,21181,21017,,,,,,,13 -21,21223|21041,21223,21041,,,,,,,14 -22,22021|22073,22021,22073,,,,,,,1 -22,22023|22019,22023,22019,,,,,,,2 -22,22035|22123,22035,22123,,,,,,,3 -22,22081|22013,22081,22013,,,,,,,4 -22,22107|22041,22107,22041,,,,,,,5 -26,26003|26153,26003,26153,,,,,,,1 -26,26083|26013|26061,26083,26013,26061,,,,,,2 -26,26095|26097,26095,26097,,,,,,,3 -26,26119|26135,26119,26135,,,,,,,4 -26,26131|26053,26131,26053,,,,,,,5 -27,27029|27087,27029,27087,,,,,,,1 -27,27031|27075,27031,27075,,,,,,,2 -27,27051|27011|27155|27149,27051,27011,27155,27149,,,,,3 -27,27069|27089,27069,27089,,,,,,,4 -27,27073|27173,27073,27173,,,,,,,5 -27,27077|27007,27077,27007,,,,,,,6 -27,27081|27117,27081,27117,,,,,,,7 -27,27125|27113,27125,27113,,,,,,,8 -27,27133|27101|27105,27133,27101,27105,,,,,,9 -27,27151|27023,27151,27023,,,,,,,10 -27,27167|27107|27027,27167,27107,27027,,,,,,11 -28,28009|28139,28009,28139,,,,,,,1 -28,28019|28155,28019,28155,,,,,,,2 -28,28021|28063,28021,28063,,,,,,,3 -28,28037|28005,28037,28005,,,,,,,4 -28,28055|28125|28053|28163,28055,28125,28053,28163,,,,,5 -28,28069|28075,28069,28075,,,,,,,6 -28,28119|28027,28119,28027,,,,,,,7 -28,28157|28001,28157,28001,,,,,,,8 -29,29005|29087|29147,29005,29087,29147,,,,,,1 -29,29025|29177,29025,29177,,,,,,,2 -29,29033|29117,29033,29117,,,,,,,3 -29,29035|29181,29035,29181,,,,,,,4 -29,29041|29115,29041,29115,,,,,,,5 -29,29045|29111,29045,29111,,,,,,,6 -29,29057|29039,29057,29039,,,,,,,7 -29,29061|29081,29061,29081,,,,,,,8 -29,29075|29227|29063,29075,29227,29063,,,,,,9 -29,29085|29167,29085,29167,,,,,,,10 -29,29103|29199|29197,29103,29199,29197,,,,,,11 -29,29125|29151,29125,29151,,,,,,,12 -29,29129|29079,29129,29079,,,,,,,13 -29,29137|29205,29137,29205,,,,,,,14 -29,29153|29067,29153,29067,,,,,,,15 -29,29171|29211,29171,29211,,,,,,,16 -29,29179|29093,29179,29093,,,,,,,17 -29,29185|29083,29185,29083,,,,,,,18 -29,29203|29065,29203,29065,,,,,,,19 -30,30005|30071,30005,30071,,,,,,,1 -30,30007|30043,30007,30043,,,,,,,2 -30,30015|30041,30015,30041,,,,,,,3 -30,30023|30001|30093,30023,30001,30093,,,,,,4 -30,30037|30107|30097|30095,30037,30107,30097,30095,,,,,5 -30,30039|30077,30039,30077,,,,,,,6 -30,30045|30059|30013,30045,30059,30013,,,,,,7 -30,30051|30101|30073,30051,30101,30073,,,,,,8 -30,30055|30079|30011|30025|30109|30021,30055,30079,30011,30025,30109,30021,,,9 -30,30057|30031,30057,30031,,,,,,,10 -30,30061|30089,30061,30089,,,,,,,11 -30,30065|30111,30065,30111,,,,,,,12 -30,30069|30027,30069,30027,,,,,,,13 -30,30075|30017,30075,30017,,,,,,,14 -30,30099|30049,30099,30049,,,,,,,15 -30,30103|30033|30087,30103,30033,30087,,,,,,16 -30,30105|30091|30019|30085,30105,30091,30019,30085,,,,,17 -31,31003|31011,31003,31011,,,,,,,1 -31,31015|31009|31017|31149|31103|31115|31071|31089,31015,31009,31017,31149,31103,31115,31071,31089,2 -31,31021|31177,31021,31177,,,,,,,3 -31,31023|31037,31023,31037,,,,,,,4 -31,31027|31051,31027,31051,,,,,,,5 -31,31029|31057|31085|31087|31005|31075|31101|31135,31029,31057,31085,31087,31005,31075,31101,31135,6 -31,31031|31091|31171|31117|31113|31111,31031,31091,31171,31117,31113,31111,,,7 -31,31035|31129,31035,31129,,,,,,,8 -31,31039|31173,31039,31173,,,,,,,9 -31,31059|31169,31059,31169,,,,,,,10 -31,31063|31145,31063,31145,,,,,,,11 -31,31095|31151,31095,31151,,,,,,,12 -31,31097|31133|31131,31097,31133,31131,,,,,,13 -31,31107|31139,31107,31139,,,,,,,14 -31,31123|31049|31069|31033,31123,31049,31069,31033,,,,,15 -31,31125|31081|31121,31125,31081,31121,,,,,,16 -31,31127|31147,31127,31147,,,,,,,17 -31,31137|31065|31073|31083,31137,31065,31073,31083,,,,,18 -31,31143|31185,31143,31185,,,,,,,19 -31,31161|31045|31013,31161,31045,31013,,,,,,20 -31,31165|31105|31007|31157,31165,31105,31007,31157,,,,,21 -31,31167|31179,31167,31179,,,,,,,22 -31,31175|31077|31183|31093|31163,31175,31077,31183,31093,31163,,,,23 -31,31181|31061|31099|31001,31181,31061,31099,31001,,,,,24 -32,32009|32021|32019,32009,32021,32019,,,,,,1 -32,32017|32003,32017,32003,,,,,,,2 -32,32027|32011|32015|32001,32027,32011,32015,32001,,,,,3 -32,32029|32510,32029,32510,,,,,,,4 -32,32033|32007,32033,32007,,,,,,,5 -35,35003|35006,35003,35006,,,,,,,1 -35,35021|35059|35007,35021,35059,35007,,,,,,2 -35,35023|35017,35023,35017,,,,,,,3 -35,35033|35011|35019|35047,35033,35011,35019,35047,,,,,4 -35,35037|35009,35037,35009,,,,,,,5 -36,36041|36043,36041,36043,,,,,,,1 -37,37075|37043,37075,37043,,,,,,,1 -37,37095|37177|37187,37095,37177,37187,,,,,,2 -38,38005|38103,38005,38103,,,,,,,1 -38,38009|38049,38009,38049,,,,,,,2 -38,38013|38061,38013,38061,,,,,,,3 -38,38019|38071,38019,38071,,,,,,,4 -38,38021|38045|38003,38021,38045,38003,,,,,,5 -38,38023|38105,38023,38105,,,,,,,6 -38,38025|38007|38033|38087|38011|38001|38041|38089,38025,38007,38033,38087,38011,38001,38041,38089,7 -38,38039|38063|38091|38035,38039,38063,38091,38035,,,,,8 -38,38043|38047|38051|38027|38031|38093,38043,38047,38051,38027,38031,38093,,,9 -38,38057|38055|38065,38057,38055,38065,,,,,,10 -38,38067|38099,38067,38099,,,,,,,11 -38,38073|38081|38077,38073,38081,38077,,,,,,12 -38,38075|38101,38075,38101,,,,,,,13 -38,38083|38029|38015,38083,38029,38015,,,,,,14 -38,38085|38037|38059,38085,38037,38059,,,,,,15 -38,38095|38069|38079,38095,38069,38079,,,,,,16 -38,38097|38017,38097,38017,,,,,,,17 -40,40007|40059|40045,40007,40059,40045,,,,,,1 -40,40011|40073,40011,40073,,,,,,,2 -40,40025|40139,40025,40139,,,,,,,3 -40,40029|40005,40029,40005,,,,,,,4 -40,40043|40039,40043,40039,,,,,,,5 -40,40053|40047,40053,40047,,,,,,,6 -40,40055|40057|40065,40055,40057,40065,,,,,,7 -40,40067|40137,40067,40137,,,,,,,8 -40,40075|40149,40075,40149,,,,,,,9 -40,40085|40019,40085,40019,,,,,,,10 -40,40129|40009,40129,40009,,,,,,,11 -40,40141|40033|40031,40141,40033,40031,,,,,,12 -40,40151|40003|40093,40151,40003,40093,,,,,,13 -41,41021|41055|41065,41021,41055,41065,,,,,,1 -41,41023|41069|41049,41023,41069,41049,,,,,,2 -41,41025|41045,41025,41045,,,,,,,3 -41,41037|41035,41037,41035,,,,,,,4 -41,41063|41061,41063,41061,,,,,,,5 -42,42023|42105,42023,42105,,,,,,,1 -42,42053|42123,42053,42123,,,,,,,2 -42,42113|42015,42113,42015,,,,,,,3 -45,45005|45011,45005,45011,,,,,,,1 -45,45065|45047,45065,45047,,,,,,,2 -46,46007|46071|46055|46095,46007,46071,46055,46095,,,,,1 -46,46009|46067,46009,46067,,,,,,,2 -46,46015|46017|46053,46015,46017,46053,,,,,,3 -46,46023|46043,46023,46043,,,,,,,4 -46,46031|46041|46137,46031,46041,46137,,,,,,5 -46,46033|46047,46033,46047,,,,,,,6 -46,46039|46011,46039,46011,,,,,,,7 -46,46045|46089|46049|46021|46129|46107|46119,46045,46089,46049,46021,46129,46107,46119,,8 -46,46051|46109,46051,46109,,,,,,,9 -46,46057|46025|46037|46029,46057,46025,46037,46029,,,,,10 -46,46061|46097|46087,46061,46097,46087,,,,,,11 -46,46063|46019,46063,46019,,,,,,,12 -46,46077|46079,46077,46079,,,,,,,13 -46,46085|46075|46117|46059|46069|46065,46085,46075,46117,46059,46069,46065,,,14 -46,46091|46013,46091,46013,,,,,,,15 -46,46101|46099,46101,46099,,,,,,,16 -46,46105|46093,46105,46093,,,,,,,17 -46,46111|46003|46073|46035,46111,46003,46073,46035,,,,,18 -46,46115|46005,46115,46005,,,,,,,19 -46,46121|46123,46121,46123,,,,,,,20 -46,46125|46135,46125,46135,,,,,,,21 -47,47027|47087,47027,47087,,,,,,,1 -47,47067|47073,47067,47073,,,,,,,2 -47,47083|47161,47083,47161,,,,,,,3 -47,47095|47045,47095,47045,,,,,,,4 -47,47127|47003,47127,47003,,,,,,,5 -47,47135|47039,47135,47039,,,,,,,6 -47,47137|47049,47137,47049,,,,,,,7 -47,47169|47111,47169,47111,,,,,,,8 -47,47175|47185,47175,47185,,,,,,,9 -48,48009|48485,48009,48485,,,,,,,1 -48,48011|48065|48233,48011,48065,48233,,,,,,2 -48,48017|48079,48017,48079,,,,,,,3 -48,48023|48447|48275|48207,48023,48447,48275,48207,,,,,4 -48,48043|48377,48043,48377,,,,,,,5 -48,48045|48153|48345|48107,48045,48153,48345,48107,,,,,6 -48,48047|48247,48047,48247,,,,,,,7 -48,48069|48279,48069,48279,,,,,,,8 -48,48081|48353,48081,48353,,,,,,,9 -48,48083|48049,48083,48049,,,,,,,10 -48,48095|48327|48307,48095,48327,48307,,,,,,11 -48,48103|48135,48103,48135,,,,,,,12 -48,48105|48383|48235|48461,48105,48383,48235,48461,,,,,13 -48,48109|48243|48389,48109,48243,48389,,,,,,14 -48,48111|48205,48111,48205,,,,,,,15 -48,48119|48223,48119,48223,,,,,,,16 -48,48125|48263|48169|48415,48125,48263,48169,48415,,,,,17 -48,48137|48385|48463,48137,48385,48463,,,,,,18 -48,48151|48433|48253,48151,48433,48253,,,,,,19 -48,48173|48033|48227,48173,48033,48227,,,,,,20 -48,48175|48025,48175,48025,,,,,,,21 -48,48191|48101|48269|48155|48197|48075|48087,48191,48101,48269,48155,48197,48075,48087,,22 -48,48193|48099,48193,48099,,,,,,,23 -48,48195|48421|48341,48195,48421,48341,,,,,,24 -48,48229|48141,48229,48141,,,,,,,25 -48,48237|48363,48237,48363,,,,,,,26 -48,48261|48489,48261,48489,,,,,,,27 -48,48267|48319|48265,48267,48319,48265,,,,,,28 -48,48271|48323,48271,48323,,,,,,,29 -48,48283|48163,48283,48163,,,,,,,30 -48,48295|48357,48295,48357,,,,,,,31 -48,48301|48495|48475,48301,48495,48475,,,,,,32 -48,48305|48303,48305,48303,,,,,,,33 -48,48311|48297,48311,48297,,,,,,,34 -48,48317|48115,48317,48115,,,,,,,35 -48,48333|48411,48333,48411,,,,,,,36 -48,48335|48431,48335,48431,,,,,,,37 -48,48369|48359|48117,48369,48359,48117,,,,,,38 -48,48391|48007,48391,48007,,,,,,,39 -48,48393|48211|48483|48129|48179,48393,48211,48483,48129,48179,,,,40 -48,48405|48403,48405,48403,,,,,,,41 -48,48413|48435|48451,48413,48435,48451,,,,,,42 -48,48417|48059,48417,48059,,,,,,,43 -48,48425|48221,48425,48221,,,,,,,44 -48,48429|48133,48429,48133,,,,,,,45 -48,48437|48381,48437,48381,,,,,,,46 -48,48443|48371,48443,48371,,,,,,,47 -48,48501|48165,48501,48165,,,,,,,48 -49,49001|49021,49001,49021,,,,,,,1 -49,49009|49047,49009,49047,,,,,,,2 -49,49019|49015,49019,49015,,,,,,,3 -49,49025|49031|49017|49055|49041,49025,49031,49017,49055,49041,,,,4 -49,49033|49005,49033,49005,,,,,,,5 -50,50009|50005,50009,50005,,,,,,,1 -50,50013|50011,50013,50011,,,,,,,2 -51,51017|51091|51163,51017,51091,51163,,,,,,1 -51,51021|51197,51021,51197,,,,,,,2 -51,51036|51127,51036,51127,,,,,,,3 -51,51045|51161,51045,51161,,,,,,,4 -51,51049|51029,51049,51029,,,,,,,5 -51,51097|51101,51097,51101,,,,,,,6 -51,51115|51073,51115,51073,,,,,,,7 -51,51157|51187,51157,51187,,,,,,,8 -51,51159|51193,51159,51193,,,,,,,9 -51,51181|51095,51181,51095,,,,,,,10 -53,53013|53023|53003,53013,53023,53003,,,,,,1 -53,53019|53065,53019,53065,,,,,,,2 -53,53069|53049,53069,53049,,,,,,,3 -54,54013|54087,54013,54087,,,,,,,1 -54,54015|54067,54015,54067,,,,,,,2 -54,54017|54095,54017,54095,,,,,,,3 -54,54021|54007,54021,54007,,,,,,,4 -54,54073|54085,54073,54085,,,,,,,5 -54,54075|54101,54075,54101,,,,,,,6 -54,54093|54071|54023,54093,54071,54023,,,,,,7 -54,54105|54107,54105,54107,,,,,,,8 -55,55037|55041,55037,55041,,,,,,,1 -55,55051|55003,55051,55003,,,,,,,2 -55,55078|55115,55078,55115,,,,,,,3 -55,55091|55011,55091,55011,,,,,,,4 -56,56011|56045,56011,56045,,,,,,,1 -56,56017|56013,56017,56013,,,,,,,2 -56,56019|56033,56019,56033,,,,,,,3 -56,56031|56027|56015,56031,56027,56015,,,,,,4 -56,56035|56023,56035,56023,,,,,,,5 -56,56043|56003,56043,56003,,,,,,,6 +state_fips,fips_list,group +1,01063|01065,1 +1,01105|01047,2 +4,04011|04009,1 +5,05025|05013|05011,1 +5,05039|05053,2 +5,05073|05091,3 +5,05077|05123,4 +5,05095|05117,5 +5,05097|05109,6 +5,05099|05057,7 +5,05101|05009,8 +5,05129|05089,9 +5,05147|05067,10 +6,06003|06109,1 +6,06049|06035,2 +6,06091|06057,3 +8,08011|08061|08009|08099,1 +8,08017|08063|08125,2 +8,08019|08047,3 +8,08023|08003,4 +8,08025|08089,5 +8,08027|08043,6 +8,08053|08111|08091|08033|08113|08085,7 +8,08055|08101,8 +8,08057|08049,9 +8,08065|08015,10 +8,08073|08039,11 +8,08079|08007,12 +8,08095|08115|08075,13 +8,08103|08045,14 +8,08109|08021|08105,15 +8,08121|08087,16 +12,12067|12121,1 +12,12077|12037,2 +13,13003|13069,1 +13,13007|13205,2 +13,13061|13239|13037|13243,3 +13,13065|13101,4 +13,13125|13301|13189,5 +13,13155|13017,6 +13,13165|13033,7 +13,13167|13303,8 +13,13181|13317,9 +13,13197|13249,10 +13,13201|13099,11 +13,13209|13279,12 +13,13253|13087,13 +13,13259|13307|13053,14 +13,13263|13293,15 +13,13265|13133,16 +13,13269|13193,17 +13,13273|13177,18 +13,13283|13107,19 +13,13287|13081,20 +13,13289|13023,21 +13,13309|13271,22 +13,13315|13235,23 +13,13319|13141|13009,24 +16,16003|16087,1 +16,16009|16057,2 +16,16015|16045,3 +16,16025|16047,4 +16,16029|16007|16041,5 +16,16033|16023|16051,6 +16,16035|16079,7 +16,16037|16059,8 +16,16061|16069,9 +16,16063|16053,10 +16,16071|16077,11 +17,17003|17153,1 +17,17009|17169,2 +17,17013|17083,3 +17,17047|17185,4 +17,17059|17069|17165,5 +17,17065|17193,6 +17,17071|17187,7 +17,17079|17035,8 +17,17151|17127,9 +17,17155|17123,10 +17,17171|17137,11 +17,17175|17143,12 +18,18007|18171,1 +18,18115|18155,2 +18,18161|18041,3 +19,19001|19077,1 +19,19003|19173,2 +19,19009|19029,3 +19,19025|19151,4 +19,19039|19053,5 +19,19051|19179,6 +19,19063|19147,7 +19,19071|19129,8 +19,19089|19037,9 +19,19091|19073|19187,10 +19,19093|19035,11 +19,19117|19185,12 +19,19133|19193,13 +19,19135|19007,14 +19,19143|19141,15 +19,19159|19175,16 +19,19177|19101,17 +19,19195|19033,18 +20,20003|20001,1 +20,20017|20127|20061,2 +20,20023|20181|20199,3 +20,20025|20057,4 +20,20039|20179|20137,5 +20,20043|20013|20005,6 +20,20053|20105|20159,7 +20,20063|20101|20171|20109,8 +20,20065|20195|20051,9 +20,20069|20055,10 +20,20071|20203|20093|20075|20187,11 +20,20073|20031|20207,12 +20,20077|20095,13 +20,20083|20135|20165|20145,14 +20,20107|20121,15 +20,20117|20149,16 +20,20119|20081|20175,17 +20,20129|20067|20189,18 +20,20147|20163,19 +20,20153|20193,20 +20,20157|20029|20143,21 +20,20167|20009,22 +20,20183|20089|20123|20141,23 +20,20185|20033|20097|20047|20007|20151,24 +20,20197|20177,25 +20,20201|20027|20161,26 +20,20205|20019|20049|20125,27 +21,21007|21039,1 +21,21023|21201,2 +21,21055|21139,3 +21,21057|21053,4 +21,21063|21043,5 +21,21075|21105,6 +21,21077|21187,7 +21,21129|21189,8 +21,21143|21033,9 +21,21149|21091|21059,10 +21,21165|21237,11 +21,21169|21087,12 +21,21181|21017,13 +21,21223|21041,14 +22,22021|22073,1 +22,22023|22019,2 +22,22035|22123,3 +22,22081|22013,4 +22,22107|22041,5 +26,26003|26153,1 +26,26083|26013|26061,2 +26,26095|26097,3 +26,26119|26135,4 +26,26131|26053,5 +27,27029|27087,1 +27,27031|27075,2 +27,27051|27011|27155|27149,3 +27,27069|27089,4 +27,27073|27173,5 +27,27077|27007,6 +27,27081|27117,7 +27,27125|27113,8 +27,27133|27101|27105,9 +27,27151|27023,10 +27,27167|27107|27027,11 +28,28009|28139,1 +28,28019|28155,2 +28,28021|28063,3 +28,28037|28005,4 +28,28055|28125|28053|28163,5 +28,28069|28075,6 +28,28119|28027,7 +28,28157|28001,8 +29,29005|29087|29147,1 +29,29025|29177,2 +29,29033|29117,3 +29,29035|29181,4 +29,29041|29115,5 +29,29045|29111,6 +29,29057|29039,7 +29,29061|29081,8 +29,29075|29227|29063,9 +29,29085|29167,10 +29,29103|29199|29197,11 +29,29125|29151,12 +29,29129|29079,13 +29,29137|29205,14 +29,29153|29067,15 +29,29171|29211,16 +29,29179|29093,17 +29,29185|29083,18 +29,29203|29065,19 +30,30005|30071,1 +30,30007|30043,2 +30,30015|30041,3 +30,30023|30001|30093,4 +30,30037|30107|30097|30095,5 +30,30039|30077,6 +30,30045|30059|30013,7 +30,30051|30101|30073,8 +30,30055|30079|30011|30025|30109|30021,9 +30,30057|30031,10 +30,30061|30089,11 +30,30065|30111,12 +30,30069|30027,13 +30,30075|30017,14 +30,30099|30049,15 +30,30103|30033|30087,16 +30,30105|30091|30019|30085,17 +31,31003|31011,1 +31,31015|31009|31017|31149|31103|31115|31071|31089,2 +31,31021|31177,3 +31,31023|31037,4 +31,31027|31051,5 +31,31029|31057|31085|31087|31005|31075|31101|31135,6 +31,31031|31091|31171|31117|31113|31111,7 +31,31035|31129,8 +31,31039|31173,9 +31,31059|31169,10 +31,31063|31145,11 +31,31095|31151,12 +31,31097|31133|31131,13 +31,31107|31139,14 +31,31123|31049|31069|31033,15 +31,31125|31081|31121,16 +31,31127|31147,17 +31,31137|31065|31073|31083,18 +31,31143|31185,19 +31,31161|31045|31013,20 +31,31165|31105|31007|31157,21 +31,31167|31179,22 +31,31175|31077|31183|31093|31163,23 +31,31181|31061|31099|31001,24 +32,32009|32021|32019,1 +32,32017|32003,2 +32,32027|32011|32015|32001,3 +32,32029|32510,4 +32,32033|32007,5 +35,35003|35006,1 +35,35021|35059|35007,2 +35,35023|35017,3 +35,35033|35011|35019|35047,4 +35,35037|35009,5 +36,36041|36043,1 +37,37075|37043,1 +37,37095|37177|37187,2 +38,38005|38103,1 +38,38009|38049,2 +38,38013|38061,3 +38,38019|38071,4 +38,38021|38045|38003,5 +38,38023|38105,6 +38,38025|38007|38033|38087|38011|38001|38041|38089,7 +38,38039|38063|38091|38035,8 +38,38043|38047|38051|38027|38031|38093,9 +38,38057|38055|38065,10 +38,38067|38099,11 +38,38073|38081|38077,12 +38,38075|38101,13 +38,38083|38029|38015,14 +38,38085|38037|38059,15 +38,38095|38069|38079,16 +38,38097|38017,17 +40,40007|40059|40045,1 +40,40011|40073,2 +40,40025|40139,3 +40,40029|40005,4 +40,40043|40039,5 +40,40053|40047,6 +40,40055|40057|40065,7 +40,40067|40137,8 +40,40075|40149,9 +40,40085|40019,10 +40,40129|40009,11 +40,40141|40033|40031,12 +40,40151|40003|40093,13 +41,41021|41055|41065,1 +41,41023|41069|41049,2 +41,41025|41045,3 +41,41037|41035,4 +41,41063|41061,5 +42,42023|42105,1 +42,42053|42123,2 +42,42113|42015,3 +45,45005|45011,1 +45,45065|45047,2 +46,46007|46071|46055|46095,1 +46,46009|46067,2 +46,46015|46017|46053,3 +46,46023|46043,4 +46,46031|46041|46137,5 +46,46033|46047,6 +46,46039|46011,7 +46,46045|46089|46049|46021|46129|46107|46119,8 +46,46051|46109,9 +46,46057|46025|46037|46029,10 +46,46061|46097|46087,11 +46,46063|46019,12 +46,46077|46079,13 +46,46085|46075|46117|46059|46069|46065,14 +46,46091|46013,15 +46,46101|46099,16 +46,46105|46093,17 +46,46111|46003|46073|46035,18 +46,46115|46005,19 +46,46121|46123,20 +46,46125|46135,21 +47,47027|47087,1 +47,47067|47073,2 +47,47083|47161,3 +47,47095|47045,4 +47,47127|47003,5 +47,47135|47039,6 +47,47137|47049,7 +47,47169|47111,8 +47,47175|47185,9 +48,48009|48485,1 +48,48011|48065|48233,2 +48,48017|48079,3 +48,48023|48447|48275|48207,4 +48,48043|48377,5 +48,48045|48153|48345|48107,6 +48,48047|48247,7 +48,48069|48279,8 +48,48081|48353,9 +48,48083|48049,10 +48,48095|48327|48307,11 +48,48103|48135,12 +48,48105|48383|48235|48461,13 +48,48109|48243|48389,14 +48,48111|48205,15 +48,48119|48223,16 +48,48125|48263|48169|48415,17 +48,48137|48385|48463,18 +48,48151|48433|48253,19 +48,48173|48033|48227,20 +48,48175|48025,21 +48,48191|48101|48269|48155|48197|48075|48087,22 +48,48193|48099,23 +48,48195|48421|48341,24 +48,48229|48141,25 +48,48237|48363,26 +48,48261|48489,27 +48,48267|48319|48265,28 +48,48271|48323,29 +48,48283|48163,30 +48,48295|48357,31 +48,48301|48495|48475,32 +48,48305|48303,33 +48,48311|48297,34 +48,48317|48115,35 +48,48333|48411,36 +48,48335|48431,37 +48,48369|48359|48117,38 +48,48391|48007,39 +48,48393|48211|48483|48129|48179,40 +48,48405|48403,41 +48,48413|48435|48451,42 +48,48417|48059,43 +48,48425|48221,44 +48,48429|48133,45 +48,48437|48381,46 +48,48443|48371,47 +48,48501|48165,48 +49,49001|49021,1 +49,49009|49047,2 +49,49019|49015,3 +49,49025|49031|49017|49055|49041,4 +49,49033|49005,5 +50,50009|50005,1 +50,50013|50011,2 +51,51017|51091|51163,1 +51,51021|51197,2 +51,51036|51127,3 +51,51045|51161,4 +51,51049|51029,5 +51,51097|51101,6 +51,51115|51073,7 +51,51157|51187,8 +51,51159|51193,9 +51,51181|51095,10 +53,53013|53023|53003,1 +53,53019|53065,2 +53,53069|53049,3 +54,54013|54087,1 +54,54015|54067,2 +54,54017|54095,3 +54,54021|54007,4 +54,54073|54085,5 +54,54075|54101,6 +54,54093|54071|54023,7 +54,54105|54107,8 +55,55037|55041,1 +55,55051|55003,2 +55,55078|55115,3 +55,55091|55011,4 +56,56011|56045,1 +56,56017|56013,2 +56,56019|56033,3 +56,56031|56027|56015,4 +56,56035|56023,5 +56,56043|56003,6 From 0ef6b13dddd9cd913b8294243097f2c2f1b73788 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:34:38 -0400 Subject: [PATCH 15/18] split out single counties from fips_list field We can't rely on the component counties of a group being listed individually, so reconstruct those fields ourselves based on the concatenated `fips_list` field. Split by the separator (pipe `|`) and save each result to a new column. --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 957bc72c8..7e3fa1109 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -484,8 +484,14 @@ def derive_fips_chngfips_crosswalk(): derive_fips_state_crosswalk() assign_county_groups() - county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False - ).drop(columns = "fips_list") + county_groups = pd.read_csv(LOWPOP_COUNTY_GROUPS_FILE, dtype="string", index_col=False) + # Split list of county FIPS codes into separate columns. + county_groups = pd.concat( + [county_groups, county_groups.fips_list.str.split("|", expand=True)], + axis=1 + ).drop( + columns = "fips_list" + ) # Change to long format. county_groups = pd.melt( From f9ed4d423174b4ce5ad77ea73b6b19b1c8db9c85 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 13 Mar 2023 08:07:10 -0400 Subject: [PATCH 16/18] raise error if new groups seen --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 7e3fa1109..4f27a5ab9 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -599,6 +599,16 @@ def assign_county_groups(): # If grouping file has no new rows, no need to process again. if county_groups.empty: return + # Grouping spreadsheet contains rows not seen in old, on-disk county + # groupings file. Combining the two is delicate. While the code below + # appears to work, it has not been formally tested and could be + # invalid for even small changes to the format of the input county + # groupings file. + else: + raise NotImplementedError( + "Can't combine old and new county groupings automatically, " + "code is not tested or robust to changes in input format" + ) # Assign an incrementing integer to be the group id of each remaining # county grouping within a state using the given sort order. From 4fa39b7fecccacff340723553182f62948e55f49 Mon Sep 17 00:00:00 2001 From: Nat DeFries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:29:27 -0400 Subject: [PATCH 17/18] state_fips and group are already str; don't need to cast --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index 7aa998d05..2e4c1874b 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -502,8 +502,8 @@ def derive_fips_chngfips_crosswalk(): columns="county_num" ).dropna() - county_groups["state_fips"] = county_groups["state_fips"].str.zfill(2).astype("string") - county_groups["group"] = county_groups["group"].str.zfill(2).astype("string") + county_groups["state_fips"] = county_groups["state_fips"].str.zfill(2) + county_groups["group"] = county_groups["group"].str.zfill(2) county_groups["fips"] = county_groups["fips"].str.zfill(5).astype("string") # Combine state codes and group ids into a single FIPS code. county_groups["chng-fips"] = county_groups["state_fips"] + "g" + county_groups["group"] From dc02bb58e52d2b53dbb5b59f0d5c4b451b8a123d Mon Sep 17 00:00:00 2001 From: nmdefries <42820733+nmdefries@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:02:27 -0400 Subject: [PATCH 18/18] make error more actionable Co-authored-by: Dmitry Shemetov --- _delphi_utils_python/data_proc/geomap/geo_data_proc.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py index c93710bb1..d51f9b551 100755 --- a/_delphi_utils_python/data_proc/geomap/geo_data_proc.py +++ b/_delphi_utils_python/data_proc/geomap/geo_data_proc.py @@ -607,7 +607,9 @@ def assign_county_groups(): else: raise NotImplementedError( "Can't combine old and new county groupings automatically, " - "code is not tested or robust to changes in input format" + "code below is not tested or robust to changes in input format." + "We recommend manually working with the code below and the new" + "data in a REPL." ) # Assign an incrementing integer to be the group id of each remaining