UNPKG

election-helpers

Version:
2,394 lines (2,366 loc) 230 kB
<!doctype html> <html> <head> <meta name="generator" content="JSDoc 3.6.10"> <meta charset="utf-8"> <title>election-helpers 0.1.0 &raquo; Source: index.js</title> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css"> <link href="css/baseline.css" rel="stylesheet"> </head> <body onload="prettyPrint()"> <nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar"> <div id="jsdoc-navbar-container"> <div id="jsdoc-navbar-content"> <a href="index.html" class="jsdoc-navbar-package-name">election-helpers 0.<wbr>1.<wbr>0</a> </div> </div> </nav> <div id="jsdoc-body-container"> <div id="jsdoc-content"> <div id="jsdoc-content-container"> <div id="jsdoc-banner" role="banner"> </div> <div id="jsdoc-main" role="main"> <header class="page-header"> <h1>Source: index.js</h1> </header> <article> <pre class="prettyprint linenums"><code>/** * Normalizes a party name string to a standardized format. * @param {string} partyNameString - The party name string to be normalized. * @returns {string} The normalized party name. * @example * const partyName &#x3D; partyNameNormalizer(&#x27;R&#x27;) // returns &#x27;rep&#x27; * const partyName &#x3D; partyNameNormalizer(&#x27;REP&#x27;) // returns &#x27;rep&#x27; * const partyName &#x3D; partyNameNormalizer(&#x27;Republican&#x27;) // returns &#x27;rep&#x27; * const partyName &#x3D; partyNameNormalizer(&#x27;republican&#x27;) // returns &#x27;rep&#x27; */ export function partyNameNormalizer(partyNameString) { // party names can come in as &#x27;R&#x27; &#x27;REP&#x27; &#x27;Republican&#x27; &#x27;republican&#x27; // etc. so we need to normalize them to &#x27;Republican&#x27; // and so forth for the other parties // check whether partyNameString is null or undefined if (!partyNameString) return console.error( &quot;partyNameString is null or undefined&quot;, partyNameString ); // check whether partyNameString is a string if (typeof partyNameString !&#x3D;&#x3D; &quot;string&quot;) return console.error(&quot;partyNameString is not a string&quot;); // first we will make sure the party name is a string const partyName &#x3D; partyNameString.toString(); // then we will make sure it is lowercase const lowerCasePartyName &#x3D; partyName.toLowerCase(); const repStrings &#x3D; [&quot;r&quot;, &quot;rep&quot;, &quot;republican&quot;]; const demStrings &#x3D; [&quot;d&quot;, &quot;dem&quot;, &quot;democrat&quot;]; const otherStrings &#x3D; [&quot;o&quot;, &quot;other&quot;]; if (repStrings.includes(lowerCasePartyName)) return &quot;rep&quot;; else if (demStrings.includes(lowerCasePartyName)) return &quot;dem&quot;; else if (otherStrings.includes(lowerCasePartyName)) return &quot;other&quot;; else return &quot;other&quot;; } /** * @param {string} stateFips - The state fips code. * @returns {string} - The state name * @throws {Error} - If the state fips code is invalid. * @example * stateNameHash[&#x27;01&#x27;] * // returns &#x27;Alabama&#x27; * */ const stateNameHash &#x3D; { &quot;01&quot;: &quot;Alabama&quot;, &quot;02&quot;: &quot;Alaska&quot;, &quot;04&quot;: &quot;Arizona&quot;, &quot;05&quot;: &quot;Arkansas&quot;, &quot;06&quot;: &quot;California&quot;, &quot;08&quot;: &quot;Colorado&quot;, &quot;09&quot;: &quot;Connecticut&quot;, 10: &quot;Delaware&quot;, 11: &quot;District of Columbia&quot;, 12: &quot;Florida&quot;, 13: &quot;Georgia&quot;, 15: &quot;Hawaii&quot;, 16: &quot;Idaho&quot;, 17: &quot;Illinois&quot;, 18: &quot;Indiana&quot;, 19: &quot;Iowa&quot;, 20: &quot;Kansas&quot;, 21: &quot;Kentucky&quot;, 22: &quot;Louisiana&quot;, 23: &quot;Maine&quot;, 24: &quot;Maryland&quot;, 25: &quot;Massachusetts&quot;, 26: &quot;Michigan&quot;, 27: &quot;Minnesota&quot;, 28: &quot;Mississippi&quot;, 29: &quot;Missouri&quot;, 30: &quot;Montana&quot;, 31: &quot;Nebraska&quot;, 32: &quot;Nevada&quot;, 33: &quot;New Hampshire&quot;, 34: &quot;New Jersey&quot;, 35: &quot;New Mexico&quot;, 36: &quot;New York&quot;, 37: &quot;North Carolina&quot;, 38: &quot;North Dakota&quot;, 39: &quot;Ohio&quot;, 40: &quot;Oklahoma&quot;, 41: &quot;Oregon&quot;, 42: &quot;Pennsylvania&quot;, 44: &quot;Rhode Island&quot;, 45: &quot;South Carolina&quot;, 46: &quot;South Dakota&quot;, 47: &quot;Tennessee&quot;, 48: &quot;Texas&quot;, 49: &quot;Utah&quot;, 50: &quot;Vermont&quot;, 51: &quot;Virginia&quot;, 53: &quot;Washington&quot;, 54: &quot;West Virginia&quot;, 55: &quot;Wisconsin&quot;, 56: &quot;Wyoming&quot;, }; /** * * @param {string} stateAbbr - Two letter state abbreviation * @returns {string} - The state name * @throws {Error} - If the state abbreviation is invalid. * @example * getStateNameFromStateAbbr(&#x27;AL&#x27;) * // returns &#x27;Alabama&#x27; * */ export function stateAbbrToName(stateAbbr) { const stateAbbrHash &#x3D; { AL: &quot;Alabama&quot;, AK: &quot;Alaska&quot;, AS: &quot;American Samoa&quot;, AZ: &quot;Arizona&quot;, AR: &quot;Arkansas&quot;, CA: &quot;California&quot;, CO: &quot;Colorado&quot;, CT: &quot;Connecticut&quot;, DE: &quot;Delaware&quot;, DC: &quot;District Of Columbia&quot;, FM: &quot;Federated States Of Micronesia&quot;, FL: &quot;Florida&quot;, GA: &quot;Georgia&quot;, GU: &quot;Guam&quot;, HI: &quot;Hawaii&quot;, ID: &quot;Idaho&quot;, IL: &quot;Illinois&quot;, IN: &quot;Indiana&quot;, IA: &quot;Iowa&quot;, KS: &quot;Kansas&quot;, KY: &quot;Kentucky&quot;, LA: &quot;Louisiana&quot;, ME: &quot;Maine&quot;, MH: &quot;Marshall Islands&quot;, MD: &quot;Maryland&quot;, MA: &quot;Massachusetts&quot;, MI: &quot;Michigan&quot;, MN: &quot;Minnesota&quot;, MS: &quot;Mississippi&quot;, MO: &quot;Missouri&quot;, MT: &quot;Montana&quot;, NE: &quot;Nebraska&quot;, NV: &quot;Nevada&quot;, NH: &quot;New Hampshire&quot;, NJ: &quot;New Jersey&quot;, NM: &quot;New Mexico&quot;, NY: &quot;New York&quot;, NC: &quot;North Carolina&quot;, ND: &quot;North Dakota&quot;, MP: &quot;Northern Mariana Islands&quot;, OH: &quot;Ohio&quot;, OK: &quot;Oklahoma&quot;, OR: &quot;Oregon&quot;, PW: &quot;Palau&quot;, PA: &quot;Pennsylvania&quot;, PR: &quot;Puerto Rico&quot;, RI: &quot;Rhode Island&quot;, SC: &quot;South Carolina&quot;, SD: &quot;South Dakota&quot;, TN: &quot;Tennessee&quot;, TX: &quot;Texas&quot;, UT: &quot;Utah&quot;, VT: &quot;Vermont&quot;, VI: &quot;Virgin Islands&quot;, VA: &quot;Virginia&quot;, WA: &quot;Washington&quot;, WV: &quot;West Virginia&quot;, WI: &quot;Wisconsin&quot;, WY: &quot;Wyoming&quot;, }; return stateAbbrHash[stateAbbr]; } /** * * @param {string} stateFips - The state fips code. * @returns {string} - The state abbreviation * @throws {Error} - If the state fips code is invalid. * @example * getStateAbbrFromStateFips(&#x27;01&#x27;) * // returns &#x27;AL&#x27; * * @example * getStateAbbrFromStateFips(&#x27;36&#x27;) * // returns &#x27;NY&#x27; * * @example * getStateAbbrFromStateFips(&#x27;XX&#x27;) * // throws an error */ export function getStateAbbrFromStateFips(stateFips) { if (!stateFips) { throw new Error(&quot;stateFips is required&quot;); } if (stateFips.length !&#x3D;&#x3D; 2) { throw new Error(&quot;stateFips must be two characters&quot;); } if (!stateNameHash[stateFips]) { throw new Error(&quot;stateFips is invalid&quot;); } return stateFipsToAbbr(+stateFips); } export function stateFipsToAbbr(stateFips) { const stateFipsHash &#x3D; { 1: &quot;AL&quot;, 2: &quot;AK&quot;, 4: &quot;AZ&quot;, 5: &quot;AR&quot;, 0: &quot;CA&quot;, 8: &quot;CO&quot;, 9: &quot;CT&quot;, 10: &quot;DE&quot;, 11: &quot;DC&quot;, 12: &quot;FL&quot;, 13: &quot;GA&quot;, 15: &quot;HI&quot;, 16: &quot;ID&quot;, 17: &quot;IL&quot;, 18: &quot;IN&quot;, 19: &quot;IA&quot;, 20: &quot;KS&quot;, 21: &quot;KY&quot;, 22: &quot;LA&quot;, 23: &quot;ME&quot;, 24: &quot;MD&quot;, 25: &quot;MA&quot;, 26: &quot;MI&quot;, 27: &quot;MN&quot;, 28: &quot;MS&quot;, 29: &quot;MO&quot;, 30: &quot;MT&quot;, 31: &quot;NE&quot;, 32: &quot;NV&quot;, 33: &quot;NH&quot;, 34: &quot;NJ&quot;, 35: &quot;NM&quot;, 36: &quot;NY&quot;, 37: &quot;NC&quot;, 38: &quot;ND&quot;, 39: &quot;OH&quot;, 40: &quot;OK&quot;, 41: &quot;OR&quot;, 42: &quot;PA&quot;, 44: &quot;RI&quot;, 45: &quot;SC&quot;, 46: &quot;SD&quot;, 47: &quot;TN&quot;, 48: &quot;TX&quot;, 49: &quot;UT&quot;, 50: &quot;VT&quot;, 51: &quot;VA&quot;, 53: &quot;WA&quot;, 54: &quot;WV&quot;, 55: &quot;WI&quot;, 56: &quot;WY&quot;, }; return stateFipsHash[stateFips]; } /** * @description Get the state code from the county fips string * @param {string} countyFips - The county fips code. * @returns {string} - The state fips code. * @example * getStateCodeFromCountyFips(&#x27;01001&#x27;) * // returns &#x27;01&#x27; * @example * getStateCodeFromCountyFips(01000) * // throws Error * @example * getStateCodeFromCountyFips(&#x27;01&#x27;) * // throws Error * */ export function getStateCodeFromCountyFips(countyFips) { return countyFips.slice(0, 2); } /** * @desc Given the absolute number of votes a candidate has received, and the total number of votes in the election, returns the percentage of votes the candidate has received. * @param {number} candidateVote - The number of votes the candidate has received. * @param {number} totalVotes - The total number of votes in the election. * @returns {number} - The percentage of votes the candidate has received. * @example * getPercentageOfVotes(100, 200) * // returns 50 */ export function candidateVotePercentage(candidateVote, totalVote) { const rawPercentage &#x3D; (candidateVote / totalVote) * 100; return rawPercentage.toFixed(config.votePercentDecimalPlaces); } /** * @desc Given an array of candidate objects, returns a sorted array of candidate objects, sorted by the number of votes they have received with the specified sort function. * * @param {Array} candidates - An array of candidate objects. * @param {Function} sortFunction - The function to use to sort the candidates (like d3.descending) * @returns {Array} - A sorted array of candidate objects. * @throws {Error} - If the candidates array is invalid. */ export function sortCandidatesByVotes(raceCandidateArray, sortFunction) { if (!raceCandidateArray) return console.error( &quot;Trying to sort candidates but didn&#x27;t get anything to sort&quot;, { raceCandidateArray, } ); if (raceCandidateArray.length &#x3D;&#x3D;&#x3D; 0) return console.error( &quot;Trying to sort a candidate array with zero candidates&quot; ); if (raceCandidateArray.length &#x3D;&#x3D;&#x3D; 1) return console.log( &quot;Trying to sort a candidate array with only one candidate, which seems kinda weird&quot; ); if (sortFunction) { return raceCandidateArray.sort(function (x, y) { return sortFunction(+x.candidatevotes, +y.candidatevotes); }); } else { return raceCandidateArray; } } /** * * @param {string} stateFips * @returns {string} - The state name * @throws {Error} - If the state fips code is invalid. * @example * stateFipsToName(&#x27;01&#x27;) * // returns &#x27;Alabama&#x27; * */ export function stateFipsToName(stateFips) { return stateNameHash[stateFips]; } /** * @description Get the state fips code from the abbreviation, like &#x27;NY&#x27; to &#x27;36&#x27; * @param {string} stateAbbreviation - The state abbreviation. * @returns {string} - The state fips code. * @example * getStateFipsFromAbbreviation(&#x27;NY&#x27;) * // returns &#x27;36&#x27; */ export function stateAbbrToFips(stateAbbr) { const stateFips &#x3D; Object.keys(stateNameHash).find( (key) &#x3D;&gt; stateNameHash[key] &#x3D;&#x3D;&#x3D; stateAbbr ); return stateFips; } /** * * @param {string} stateName * @returns {string} - The state fips code * @throws {Error} - If the state name is invalid. * @example * getStateFipsFromStateName(&#x27;Alabama&#x27;) * // returns &#x27;01&#x27; */ export function stateNameToFips(stateName) { return Object.keys(stateNameHash).find( (key) &#x3D;&gt; stateNameHash[key] &#x3D;&#x3D;&#x3D; stateName ); } /** * @param {string} raceType * @returns {array} - An array of the available district types * @example * boundariesAvailableForRaceType(&#x27;president&#x27;) * // returns [&#x27;state&#x27;, &#x27;county&#x27;] * @example * boundariesAvailableForRaceType(&#x27;senate&#x27;) * // returns [&#x27;state&#x27;] * @example * boundariesAvailableForRaceType(&#x27;house&#x27;) * // returns [&#x27;district&#x27;] * @example * boundariesAvailableForRaceType(2016) * // returns null */ export function boundariesAvailableForRaceType(raceType) { const availableBoundaries &#x3D; []; if (raceType &#x3D;&#x3D;&#x3D; &quot;president&quot;) { availableBoundaries.push(&quot;state&quot;); availableBoundaries.push(&quot;county&quot;); } else if (raceType &#x3D;&#x3D;&#x3D; &quot;senate&quot;) { availableBoundaries.push(&quot;county&quot;); } else if (raceType &#x3D;&#x3D;&#x3D; &quot;house&quot;) { availableBoundaries.push(&quot;district&quot;); } else return null; return availableBoundaries; } /** * @param {string} raceType - The race type, like &#x27;president&#x27;, &#x27;house&#x27;, or &#x27;senate&#x27; * @param {string} boundaryType - The type of boundary, like &#x27;county&#x27;, &#x27;state&#x27;, or &#x27;district&#x27; * @example * isBoundaryAvailableForRaceType(&#x27;president&#x27;, &#x27;county&#x27;) * // returns true * @example * isBoundaryAvailableForRaceType(&#x27;president&#x27;, &#x27;state&#x27;) * // returns true * @example * isBoundaryAvailableForRaceType(&#x27;president&#x27;, &#x27;district&#x27;) * // returns false */ export function isBoundaryAvailableForRaceType(raceType, boundaryType) { const availableBoundaries &#x3D; boundariesAvailableForRaceType(raceType); if (!availableBoundaries) return false; return availableBoundaries.includes(boundaryType); } /** * Represents the bounds of the United States. * @typedef {Object} USBounds * @property {string} type - The type of the feature collection. * @property {Array&amp;lt;Object&gt;} features - The features of the collection. */ /** * The bounds of the United States. * @type {USBounds} */ export const usBounds &#x3D; { type: &quot;FeatureCollection&quot;, features: [ { type: &quot;Feature&quot;, properties: { name: &quot;us-bounds&quot;, }, geometry: { coordinates: [ [ [-131.73905162804652, 49.7608272024967], [-131.73905162804652, 24.4450570581849], [-67.3066676925451, 24.4450570581849], [-67.3066676925451, 49.7608272024967], [-131.73905162804652, 49.7608272024967], ], ], type: &quot;Polygon&quot;, }, id: 0, }, ], }; /** * Represents the state planes and bounds for every state. * @typedef {Object} StatePlaneProjections * @property {string} proj - The projection * @property {Array&amp;lt;number&gt;} rotate - The rotation of the projection. * @property {Array&amp;lt;number&gt;} bounds - The bounds of the projection. * @property {Array&amp;lt;number&gt;} parallels - The parallels of the projection. * */ export const statePlaneProjections &#x3D; { // EPSG:26729 - http://spatialreference.org/ref/epsg/26729/ AL: { proj: &quot;tmerc&quot;, rotate: [85.83333, -30.5], bounds: [ [-0.039122, -0.079084], [0.013939, 0.004511], ], }, // ESRI:102006 - http://spatialreference.org/ref/esri/102006/ AK: { proj: &quot;albers&quot;, rotate: [160, 0, -35], parallels: [55, 65], bounds: [ [0.239549, -0.48059], [0.801862, -0.198652], ], }, // EPSG:26748 - http://spatialreference.org/ref/epsg/26748/ AZ: { proj: &quot;tmerc&quot;, rotate: [110.16667, -31], bounds: [ [-0.06847, -0.105832], [0.016648, -0.005817], ], }, // EPSG:26751 - http://spatialreference.org/ref/epsg/26751/ AR: { proj: &quot;lcc&quot;, rotate: [92, -34.3333], parallels: [36.2333, 36.2333], bounds: [ [-0.043829, -0.046094], [0.039484, 0.028084], ], }, // EPSG:26741 - http://spatialreference.org/ref/epsg/26741/ CA: { proj: &quot;lcc&quot;, rotate: [122, -39.3333], parallels: [41.6666, 40], bounds: [ [-0.039842, -0.058581], [0.151483, 0.151053], ], }, // EPSG:26753 - http://spatialreference.org/ref/epsg/26753/ CO: { proj: &quot;lcc&quot;, rotate: [105.5, -39.3333], parallels: [39.71666, 40.783333], bounds: [ [-0.063611, -0.038158], [0.062054, 0.051889], ], }, // EPSG:2234 - http://spatialreference.org/ref/epsg/2234/ CT: { proj: &quot;lcc&quot;, rotate: [72.75, -40.83333], parallels: [41.86666, 41.2], bounds: [ [-0.016288, -0.026885], [0.01581, -0.003503], ], }, // EPSG:26757 - http://spatialreference.org/ref/epsg/26757/ DE: { proj: &quot;tmerc&quot;, rotate: [75.4166666, -38], bounds: [ [-0.005001, -0.032089], [0.005024, -0.007876], ], }, // EPSG:3785 - http://spatialreference.org/ref/epsg/3785/ DC: { proj: &quot;merc&quot;, bounds: [ [-1.345994, -0.740178], [-1.342325, -0.735617], ], }, // EPSG:26758 - http://spatialreference.org/ref/epsg/26758/ FL: { proj: &quot;tmerc&quot;, rotate: [81, -24.33333], bounds: [ [-0.099503, -0.119249], [0.015096, -0.003721], ], }, // EPSG:26766 - http://spatialreference.org/ref/epsg/26766/ GA: { proj: &quot;tmerc&quot;, rotate: [82.16666, -30], bounds: [ [-0.049181, -0.087844], [0.019638, -0.006248], ], }, // EPSG:102007 - http://spatialreference.org/ref/epsg/102007/ HI: { proj: &quot;albers&quot;, rotate: [160, 0], parallels: [8, 18], bounds: [ [0.005103, 0.273102], [0.094808, 0.330188], ], }, // EPSG:26768 - http://spatialreference.org/ref/epsg/26768/ ID: { proj: &quot;tmerc&quot;, rotate: [112.16666, -41.66666], bounds: [ [-0.063312, -0.129763], [0.014526, -0.005756], ], }, // EPSG:26771 - http://spatialreference.org/ref/epsg/26771/ IL: { proj: &quot;tmerc&quot;, rotate: [88.33333, -36.66666], bounds: [ [-0.04241, -0.102365], [0.011411, -0.00535], ], }, // EPSG:26773 - http://spatialreference.org/ref/epsg/26773/ IN: { proj: &quot;tmerc&quot;, rotate: [85.66666, -37.5], bounds: [ [-0.03348, -0.074457], [0.011987, -0.005087], ], }, // EPSG:26775 - http://spatialreference.org/ref/epsg/26775/ IA: { proj: &quot;lcc&quot;, rotate: [93.5, -41.5], parallels: [43.26666, 42.06666], bounds: [ [-0.050977, -0.045923], [0.055658, 0.02467], ], }, // EPSG:26777 - http://spatialreference.org/ref/epsg/26777/ KS: { proj: &quot;lcc&quot;, rotate: [98, -38.33333], parallels: [39.783333, 38.716666], bounds: [ [-0.07092, -0.038429], [0.059354, 0.029147], ], }, // EPSG:2798 - http://spatialreference.org/ref/epsg/2798/ KY: { proj: &quot;lcc&quot;, rotate: [84.25, -37.5], parallels: [37.96667, 38.96667], bounds: [ [-0.09266, -0.035142], [0.038866, 0.019769], ], }, // EPSG:26781 - http://spatialreference.org/ref/epsg/26781/ LA: { proj: &quot;lcc&quot;, rotate: [92.5, -30.66667], parallels: [31.16667, 32.66667], bounds: [ [-0.026135, -0.047393], [0.064954, 0.03398], ], }, // EPSG:26783 - http://spatialreference.org/ref/epsg/26783/ ME: { proj: &quot;tmerc&quot;, rotate: [68.5, -43.83333], bounds: [ [-0.03172, -0.063331], [0.019186, 0.014596], ], }, // EPSG:26785 - http://spatialreference.org/ref/epsg/26785/ MD: { proj: &quot;lcc&quot;, rotate: [77, -37.83333], parallels: [38.3, 39.45], bounds: [ [-0.040965, -0.041293], [0.032747, -0.001898], ], }, // EPSG:26786 - http://spatialreference.org/ref/epsg/26786/ MA: { proj: &quot;lcc&quot;, rotate: [71.5, -41], parallels: [41.71667, 42.68333], bounds: [ [-0.032858, -0.041736], [0.025983, -0.005644], ], }, // ESRI:102289 - http://spatialreference.org/ref/esri/102289/ MI: { proj: &quot;lcc&quot;, rotate: [84.36667, -43.31667], parallels: [44.18333, 45.7], bounds: [ [-0.091788, -0.111344], [0.032992, 0.037615], ], }, // EPSG:26791 - http://spatialreference.org/ref/epsg/26791/ MN: { proj: &quot;lcc&quot;, rotate: [93.1, -46.5], parallels: [47.03333, 48.63333], bounds: [ [-0.063071, -0.067919], [0.055351, 0.072679], ], }, // EPSG:26794 - http://spatialreference.org/ref/epsg/26794/ MS: { proj: &quot;tmerc&quot;, rotate: [88.83333, -29.66667], bounds: [ [-0.042095, -0.093163], [0.010526, -0.008999], ], }, // EPSG:26796 - http://spatialreference.org/ref/epsg/26796/ MO: { proj: &quot;tmerc&quot;, rotate: [90.5, -35.83333], bounds: [ [-0.06992, -0.085026], [0.019532, -0.002833], ], }, // EPSG:32001 - http://spatialreference.org/ref/epsg/32001/ MT: { proj: &quot;lcc&quot;, rotate: [109.5, -47], parallels: [48.71667, 47.85], bounds: [ [-0.102896, -0.054104], [0.094346, 0.061984], ], }, // EPSG:32005 - http://spatialreference.org/ref/epsg/32005/ NE: { proj: &quot;lcc&quot;, rotate: [100, -41.33333], parallels: [41.85, 42.81667], bounds: [ [-0.068593, -0.039585], [0.08152, 0.030025], ], }, // EPSG:32007 - http://spatialreference.org/ref/epsg/32007/ NV: { proj: &quot;tmerc&quot;, rotate: [115.58333, -34.75], bounds: [ [-0.059934, -0.127935], [0.021683, -0.004461], ], }, // EPSG:32110 - http://spatialreference.org/ref/epsg/32110/ NH: { proj: &quot;tmerc&quot;, rotate: [71.66667, -42.5], bounds: [ [-0.011394, -0.04899], [0.012276, -0.00345], ], }, // EPSG:32011 - http://spatialreference.org/ref/epsg/32011/ NJ: { proj: &quot;tmerc&quot;, rotate: [74.66667, -38.83333], bounds: [ [-0.012002, -0.044053], [0.010178, -0.001666], ], }, // EPSG:32012 - http://spatialreference.org/ref/epsg/32012/ NM: { proj: &quot;tmerc&quot;, rotate: [104.33333, -31], bounds: [ [-0.070352, -0.106333], [0.018783, -0.006839], ], }, // EPSG:32015 - http://spatialreference.org/ref/epsg/32015/ NY: { proj: &quot;tmerc&quot;, rotate: [74.33333, -40], bounds: [ [-0.070418, -0.087562], [0.032597, -0.008658], ], }, // EPSG:2264 - http://spatialreference.org/ref/epsg/2264/ NC: { proj: &quot;lcc&quot;, rotate: [79, -33.75], parallels: [36.16667, 34.33333], bounds: [ [-0.089577, -0.059364], [0.058875, -0.00211], ], }, // ESRI:102720 - http://spatialreference.org/ref/esri/102720/ ND: { proj: &quot;lcc&quot;, rotate: [100.5, -47], parallels: [47.43333, 48.73333], bounds: [ [-0.059447, -0.049054], [0.066018, 0.025336], ], }, // EPSG:32022 - http://spatialreference.org/ref/epsg/32022/ OH: { proj: &quot;lcc&quot;, rotate: [82.5, -39.66667], parallels: [40.43333, 41.7], bounds: [ [-0.039979, -0.050964], [0.032804, 0.02809], ], }, // EPSG:32024 - http://spatialreference.org/ref/epsg/32024/ OK: { proj: &quot;lcc&quot;, rotate: [98, -35], parallels: [35.56667, 36.76667], bounds: [ [-0.083112, -0.045371], [0.06233, 0.027339], ], }, // EPSG:2838 - http://spatialreference.org/ref/epsg/2838/ OR: { proj: &quot;lcc&quot;, rotate: [120.5, -43.66667], parallels: [46, 44.33333], bounds: [ [-0.069245, -0.061412], [0.063511, 0.038987], ], }, // EPSG:32028 - http://spatialreference.org/ref/epsg/32028/ PA: { proj: &quot;lcc&quot;, rotate: [77.75, -40.16667], parallels: [40.88333, 41.95], bounds: [ [-0.047398, -0.046685], [0.051227, 0.009908], ], }, // EPSG:32130 - http://spatialreference.org/ref/epsg/32130/ RI: { proj: &quot;tmerc&quot;, rotate: [71.5, -41.08333], bounds: [ [-0.004757, -0.016329], [0.00496, -0.001108], ], }, // EPSG:102733 - http://spatialreference.org/ref/epsg/102733/ SC: { proj: &quot;lcc&quot;, rotate: [81, -31.83333], parallels: [32.5, 34.83333], bounds: [ [-0.038664, -0.068629], [0.041115, -0.004133], ], }, // EPSG:102734 - http://spatialreference.org/ref/epsg/102734/ SD: { proj: &quot;lcc&quot;, rotate: [100, -43.83333], parallels: [44.41667, 45.68333], bounds: [ [-0.068863, -0.050651], [0.061307, 0.029158], ], }, // EPSG:32036 - http://spatialreference.org/ref/epsg/32036/ TN: { proj: &quot;lcc&quot;, rotate: [86, -34.66667], parallels: [35.25, 36.41667], bounds: [ [-0.073626, -0.043194], [0.071721, -0.006663], ], }, // EPSG:32037 - http://spatialreference.org/ref/epsg/32037/ TX: { proj: &quot;lcc&quot;, rotate: [101.5, -34], parallels: [34.65, 36.18333], bounds: [ [-0.093018, -0.051897], [0.146798, 0.174877], ], }, // EPSG:32042 - http://spatialreference.org/ref/epsg/32042/ UT: { proj: &quot;lcc&quot;, rotate: [111.5, -40.33333], parallels: [40.71667, 41.78333], bounds: [ [-0.046864, -0.037411], [0.045103, 0.075172], ], }, // EPSG:32045 - http://spatialreference.org/ref/epsg/32045/ VT: { proj: &quot;tmerc&quot;, rotate: [72.5, -42.5], bounds: [ [-0.011767, -0.043955], [0.012776, -0.00396], ], }, // EPSG:32046 - http://spatialreference.org/ref/epsg/32046/ VA: { proj: &quot;lcc&quot;, rotate: [78.5, -37.66667], parallels: [38.03333, 39.2], bounds: [ [-0.090317, -0.038369], [0.054986, 0.024383], ], }, // EPSG:2855 - http://spatialreference.org/ref/epsg/2855/ WA: { proj: &quot;lcc&quot;, rotate: [120.83333, -47], parallels: [48.73333, 47.5], bounds: [ [-0.060942, -0.049359], [0.06559, 0.034641], ], }, // EPSG:32050 - http://spatialreference.org/ref/epsg/32050/ WV: { proj: &quot;lcc&quot;, rotate: [79.5, -38.5], parallels: [39, 40.25], bounds: [ [-0.053928, -0.04614], [0.029681, 0.027628], ], }, // EPSG:2859 - http://spatialreference.org/ref/epsg/2859/ WI: { proj: &quot;lcc&quot;, rotate: [90, -45.16667], parallels: [46.76667, 45.56667], bounds: [ [-0.046794, -0.044049], [0.052058, 0.063177], ], }, // EPSG:32055 - http://spatialreference.org/ref/epsg/32055/ WY: { proj: &quot;tmerc&quot;, rotate: [105.16667, -40.66667], bounds: [ [-0.077474, -0.078298], [0.014664, -0.005782], ], }, }; /** * An array of county names with their corresponding FIPS codes. * @typedef {Object} County * @property {number} fips_code - The FIPS code of the county. * @property {string} name - The name of the county. */ export const countyNames &#x3D; [ { fips_code: 72011, name: &quot;Aasco&quot;, }, { fips_code: 45001, name: &quot;Abbeville&quot;, }, { fips_code: 22001, name: &quot;Acadia&quot;, }, { fips_code: 51001, name: &quot;Accomack&quot;, }, { fips_code: 16001, name: &quot;Ada&quot;, }, { fips_code: 40001, name: &quot;Adair&quot;, }, { fips_code: 29001, name: &quot;Adair&quot;, }, { fips_code: 21001, name: &quot;Adair&quot;, }, { fips_code: 19001, name: &quot;Adair&quot;, }, { fips_code: 42001, name: &quot;Adams&quot;, }, { fips_code: 19003, name: &quot;Adams&quot;, }, { fips_code: 53001, name: &quot;Adams&quot;, }, { fips_code: 31001, name: &quot;Adams&quot;, }, { fips_code: 28001, name: &quot;Adams&quot;, }, { fips_code: 17001, name: &quot;Adams&quot;, }, { fips_code: 16003, name: &quot;Adams&quot;, }, { fips_code: 38001, name: &quot;Adams&quot;, }, { fips_code: 55001, name: &quot;Adams&quot;, }, { fips_code: 18001, name: &quot;Adams&quot;, }, { fips_code: 8001, name: &quot;Adams&quot;, }, { fips_code: 39001, name: &quot;Adams&quot;, }, { fips_code: 50001, name: &quot;Addison&quot;, }, { fips_code: 72001, name: &quot;Adjuntas&quot;, }, { fips_code: 72003, name: &quot;Aguada&quot;, }, { fips_code: 72005, name: &quot;Aguadilla&quot;, }, { fips_code: 72007, name: &quot;Aguas Buenas&quot;, }, { fips_code: 72009, name: &quot;Aibonito&quot;, }, { fips_code: 45003, name: &quot;Aiken&quot;, }, { fips_code: 27001, name: &quot;Aitkin&quot;, }, { fips_code: 12001, name: &quot;Alachua&quot;, }, { fips_code: 37001, name: &quot;Alamance&quot;, }, { fips_code: 6001, name: &quot;Alameda&quot;, }, { fips_code: 8003, name: &quot;Alamosa&quot;, }, { fips_code: 56001, name: &quot;Albany&quot;, }, { fips_code: 36001, name: &quot;Albany&quot;, }, { fips_code: 51003, name: &quot;Albemarle&quot;, }, { fips_code: 26001, name: &quot;Alcona&quot;, }, { fips_code: 28003, name: &quot;Alcorn&quot;, }, { fips_code: 2013, name: &quot;Aleutians East&quot;, }, { fips_code: 2016, name: &quot;Aleutians West&quot;, }, { fips_code: 37003, name: &quot;Alexander&quot;, }, { fips_code: 17003, name: &quot;Alexander&quot;, }, { fips_code: 51510, name: &quot;Alexandria&quot;, }, { fips_code: 40003, name: &quot;Alfalfa&quot;, }, { fips_code: 26003, name: &quot;Alger&quot;, }, { fips_code: 19005, name: &quot;Allamakee&quot;, }, { fips_code: 26005, name: &quot;Allegan&quot;, }, { fips_code: 36003, name: &quot;Allegany&quot;, }, { fips_code: 24001, name: &quot;Allegany&quot;, }, { fips_code: 37005, name: &quot;Alleghany&quot;, }, { fips_code: 51005, name: &quot;Alleghany&quot;, }, { fips_code: 42003, name: &quot;Allegheny&quot;, }, { fips_code: 39003, name: &quot;Allen&quot;, }, { fips_code: 18003, name: &quot;Allen&quot;, }, { fips_code: 20001, name: &quot;Allen&quot;, }, { fips_code: 22003, name: &quot;Allen&quot;, }, { fips_code: 21003, name: &quot;Allen&quot;, }, { fips_code: 45005, name: &quot;Allendale&quot;, }, { fips_code: 26007, name: &quot;Alpena&quot;, }, { fips_code: 6003, name: &quot;Alpine&quot;, }, { fips_code: 6005, name: &quot;Amador&quot;, }, { fips_code: 51007, name: &quot;Amelia&quot;, }, { fips_code: 51009, name: &quot;Amherst&quot;, }, { fips_code: 28005, name: &quot;Amite&quot;, }, { fips_code: 2020, name: &quot;Anchorage&quot;, }, { fips_code: 47001, name: &quot;Anderson&quot;, }, { fips_code: 20003, name: &quot;Anderson&quot;, }, { fips_code: 21005, name: &quot;Anderson&quot;, }, { fips_code: 45007, name: &quot;Anderson&quot;, }, { fips_code: 48001, name: &quot;Anderson&quot;, }, { fips_code: 29003, name: &quot;Andrew&quot;, }, { fips_code: 48003, name: &quot;Andrews&quot;, }, { fips_code: 23001, name: &quot;Androscoggin&quot;, }, { fips_code: 48005, name: &quot;Angelina&quot;, }, { fips_code: 24003, name: &quot;Anne Arundel&quot;, }, { fips_code: 27003, name: &quot;Anoka&quot;, }, { fips_code: 37007, name: &quot;Anson&quot;, }, { fips_code: 31003, name: &quot;Antelope&quot;, }, { fips_code: 26009, name: &quot;Antrim&quot;, }, { fips_code: 4001, name: &quot;Apache&quot;, }, { fips_code: 19007, name: &quot;Appanoose&quot;, }, { fips_code: 13001, name: &quot;Appling&quot;, }, { fips_code: 51011, name: &quot;Appomattox&quot;, }, { fips_code: 48007, name: &quot;Aransas&quot;, }, { fips_code: 8005, name: &quot;Arapahoe&quot;, }, { fips_code: 48009, name: &quot;Archer&quot;, }, { fips_code: 8007, name: &quot;Archuleta&quot;, }, { fips_code: 72013, name: &quot;Arecibo&quot;, }, { fips_code: 26011, name: &quot;Arenac&quot;, }, { fips_code: 5001, name: &quot;Arkansas&quot;, }, { fips_code: 51013, name: &quot;Arlington&quot;, }, { fips_code: 48011, name: &quot;Armstrong&quot;, }, { fips_code: 42005, name: &quot;Armstrong&quot;, }, { fips_code: 23003, name: &quot;Aroostook&quot;, }, { fips_code: 72015, name: &quot;Arroyo&quot;, }, { fips_code: 31005, name: &quot;Arthur&quot;, }, { fips_code: 22005, name: &quot;Ascension&quot;, }, { fips_code: 37009, name: &quot;Ashe&quot;, }, { fips_code: 55003, name: &quot;Ashland&quot;, }, { fips_code: 39005, name: &quot;Ashland&quot;, }, { fips_code: 5003, name: &quot;Ashley&quot;, }, { fips_code: 39007, name: &quot;Ashtabula&quot;, }, { fips_code: 53003, name: &quot;Asotin&quot;, }, { fips_code: 22007, name: &quot;Assumption&quot;, }, { fips_code: 48013, name: &quot;Atascosa&quot;, }, { fips_code: 29005, name: &quot;Atchison&quot;, }, { fips_code: 20005, name: &quot;Atchison&quot;, }, { fips_code: 39009, name: &quot;Athens&quot;, }, { fips_code: 13003, name: &quot;Atkinson&quot;, }, { fips_code: 34001, name: &quot;Atlantic&quot;, }, { fips_code: 40005, name: &quot;Atoka&quot;, }, { fips_code: 28007, name: &quot;Attala&quot;, }, { fips_code: 29007, name: &quot;Audrain&quot;, }, { fips_code: 19009, name: &quot;Audubon&quot;, }, { fips_code: 39011, name: &quot;Auglaize&quot;, }, { fips_code: 51015, name: &quot;Augusta&quot;, }, { fips_code: 46003, name: &quot;Aurora&quot;, }, { fips_code: 48015, name: &quot;Austin&quot;, }, { fips_code: 1001, name: &quot;Autauga&quot;, }, { fips_code: 37011, name: &quot;Avery&quot;, }, { fips_code: 22009, name: &quot;Avoyelles&quot;, }, { fips_code: 8009, name: &quot;Baca&quot;, }, { fips_code: 13005, name: &quot;Bacon&quot;, }, { fips_code: 48017, name: &quot;Bailey&quot;, }, { fips_code: 12003, name: &quot;Baker&quot;, }, { fips_code: 13007, name: &quot;Baker&quot;, }, { fips_code: 41001, name: &quot;Baker&quot;, }, { fips_code: 1003, name: &quot;Baldwin&quot;, }, { fips_code: 13009, name: &quot;Baldwin&quot;, }, { fips_code: 21007, name: &quot;Ballard&quot;, }, { fips_code: 24510, name: &quot;Baltimore&quot;, }, { fips_code: 24005, name: &quot;Baltimore&quot;, }, { fips_code: 45009, name: &quot;Bamberg&quot;, }, { fips_code: 48019, name: &quot;Bandera&quot;, }, { fips_code: 13011, name: &quot;Banks&quot;, }, { fips_code: 31007, name: &quot;Banner&quot;, }, { fips_code: 16005, name: &quot;Bannock&quot;, }, { fips_code: 26013, name: &quot;Baraga&quot;, }, { fips_code: 20007, name: &quot;Barber&quot;, }, { fips_code: 54001, name: &quot;Barbour&quot;, }, { fips_code: 1005, name: &quot;Barbour&quot;, }, { fips_code: 72017, name: &quot;Barceloneta&quot;, }, { fips_code: 38003, name: &quot;Barnes&quot;, }, { fips_code: 25001, name: &quot;Barnstable&quot;, }, { fips_code: 45011, name: &quot;Barnwell&quot;, }, { fips_code: 72019, name: &quot;Barranquitas&quot;, }, { fips_code: 21009, name: &quot;Barren&quot;, }, { fips_code: 55005, name: &quot;Barron&quot;, }, { fips_code: 13013, name: &quot;Barrow&quot;, }, { fips_code: 26015, name: &quot;Barry&quot;, }, { fips_code: 29009, name: &quot;Barry&quot;, }, { fips_code: 18005, name: &quot;Bartholomew&quot;, }, { fips_code: 20009, name: &quot;Barton&quot;, }, { fips_code: 29011, name: &quot;Barton&quot;, }, { fips_code: 13015, name: &quot;Bartow&quot;, }, { fips_code: 48021, name: &quot;Bastrop&quot;, }, { fips_code: 29013, name: &quot;Bates&quot;, }, { fips_code: 51017, name: &quot;Bath&quot;, }, { fips_code: 21011, name: &quot;Bath&quot;, }, { fips_code: 5005, name: &quot;Baxter&quot;, }, { fips_code: 26017, name: &quot;Bay&quot;, }, { fips_code: 12005, name: &quot;Bay&quot;, }, { fips_code: 72021, name: &quot;Bayamn&quot;, }, { fips_code: 55007, name: &quot;Bayfield&quot;, }, { fips_code: 48023, name: &quot;Baylor&quot;, }, { fips_code: 46005, name: &quot;Beadle&quot;, }, { fips_code: 16007, name: &quot;Bear Lake&quot;, }, { fips_code: 37013, name: &quot;Beaufort&quot;, }, { fips_code: 45013, name: &quot;Beaufort&quot;, }, { fips_code: 22011, name: &quot;Beauregard&quot;, }, { fips_code: 42007, name: &quot;Beaver&quot;, }, { fips_code: 40007, name: &quot;Beaver&quot;, }, { fips_code: 49001, name: &quot;Beaver&quot;, }, { fips_code: 30001, name: &quot;Beaverhead&quot;, }, { fips_code: 27005, name: &quot;Becker&quot;, }, { fips_code: 40009, name: &quot;Beckham&quot;, }, { fips_code: 42009, name: &quot;Bedford&quot;, }, { fips_code: 51019, name: &quot;Bedford&quot;, }, { fips_code: 47003, name: &quot;Bedford&quot;, }, { fips_code: 48025, name: &quot;Bee&quot;, }, { fips_code: 33001, name: &quot;Belknap&quot;, }, { fips_code: 21013, name: &quot;Bell&quot;, }, { fips_code: 48027, name: &quot;Bell&quot;, }, { fips_code: 39013, name: &quot;Belmont&quot;, }, { fips_code: 27007, name: &quot;Beltrami&quot;, }, { fips_code: 13017, name: &quot;Ben Hill&quot;, }, { fips_code: 16009, name: &quot;Benewah&quot;, }, { fips_code: 46007, name: &quot;Bennett&quot;, }, { fips_code: 50003, name: &quot;Bennington&quot;, }, { fips_code: 38005, name: &quot;Benson&quot;, }, { fips_code: 8011, name: &quot;Bent&quot;, }, { fips_code: 19011, name: &quot;Benton&quot;, }, { fips_code: 18007, name: &quot;Benton&quot;, }, { fips_code: 29015, name: &quot;Benton&quot;, }, { fips_code: 28009, name: &quot;Benton&quot;, }, { fips_code: 27009, name: &quot;Benton&quot;, }, { fips_code: 47005, name: &quot;Benton&quot;, }, { fips_code: 41003, name: &quot;Benton&quot;, }, { fips_code: 53005, name: &quot;Benton&quot;, }, { fips_code: 5007, name: &quot;Benton&quot;, }, { fips_code: 26019, name: &quot;Benzie&quot;, }, { fips_code: 34003, name: &quot;Bergen&quot;, }, { fips_code: 54003, name: &quot;Berkeley&quot;, }, { fips_code: 45015, name: &quot;Berkeley&quot;, }, { fips_code: 42011, name: &quot;Berks&quot;, }, { fips_code: 25003, name: &quot;Berkshire&quot;, }, { fips_code: 35001, name: &quot;Bernalillo&quot;, }, { fips_code: 26021, name: &quot;Berrien&quot;, }, { fips_code: 13019, name: &quot;Berrien&quot;, }, { fips_code: 37015, name: &quot;Bertie&quot;, }, { fips_code: 2050, name: &quot;Bethel&quot;, }, { fips_code: 48029, name: &quot;Bexar&quot;, }, { fips_code: 13021, name: &quot;Bibb&quot;, }, { fips_code: 1007, name: &quot;Bibb&quot;, }, { fips_code: 22013, name: &quot;Bienville&quot;, }, { fips_code: 56003, name: &quot;Big Horn&quot;, }, { fips_code: 30003, name: &quot;Big Horn&quot;, }, { fips_code: 27011, name: &quot;Big Stone&quot;, }, { fips_code: 38007, name: &quot;Billings&quot;, }, { fips_code: 16011, name: &quot;Bingham&quot;, }, { fips_code: 19013, name: &quot;Black Hawk&quot;, }, { fips_code: 18009, name: &quot;Blackford&quot;, }, { fips_code: 37017, name: &quot;Bladen&quot;, }, { fips_code: 31009, name: &quot;Blaine&quot;, }, { fips_code: 40011, name: &quot;Blaine&quot;, }, { fips_code: 16013, name: &quot;Blaine&quot;, }, { fips_code: 30005, name: &quot;Blaine&quot;, }, { fips_code: 42013, name: &quot;Blair&quot;, }, { fips_code: 48031, name: &quot;Blanco&quot;, }, { fips_code: 51021, name: &quot;Bland&quot;, }, { fips_code: 13023, name: &quot;Bleckley&quot;, }, { fips_code: 47007, name: &quot;Bledsoe&quot;, }, { fips_code: 47009, name: &quot;Blount&quot;, }, { fips_code: 1009, name: &quot;Blount&quot;, }, { fips_code: 27013, name: &quot;Blue Earth&quot;, }, { fips_code: 16015, name: &quot;Boise&quot;, }, { fips_code: 28011, name: &quot;Bolivar&quot;, }, { fips_code: 29017, name: &quot;Bollinger&quot;, }, { fips_code: 46009, name: &quot;Bon Homme&quot;, }, { fips_code: 17005, name: &quot;Bond&quot;, }, { fips_code: 16017, name: &quot;Bonner&quot;, }, { fips_code: 16019, name: &quot;Bonneville&quot;, }, { fips_code: 31011, name: &quot;Boone&quot;, }, { fips_code: 19015, name: &quot;Boone&quot;, }, { fips_code: 18011, name: &quot;Boone&quot;, }, { fips_code: 21015, name: &quot;Boone&quot;, }, { fips_code: 17007, name: &quot;Boone&quot;, }, { fips_code: 54005, name: &quot;Boone&quot;, }, { fips_code: 5009, name: &quot;Boone&quot;, }, { fips_code: 29019, name: &quot;Boone&quot;, }, { fips_code: 48033, name: &quot;Borden&quot;, }, { fips_code: 48035, name: &quot;Bosque&quot;, }, { fips_code: 22015, name: &quot;Bossier&quot;, }, { fips_code: 51023, name: &quot;Botetourt&quot;, }, { fips_code: 38009, name: &quot;Bottineau&quot;, }, { fips_code: 8013, name: &quot;Boulder&quot;, }, { fips_code: 16021, name: &quot;Boundary&quot;, }, { fips_code: 20011, name: &quot;Bourbon&quot;, }, { fips_code: 21017, name: &quot;Bourbon&quot;, }, { fips_code: 48037, name: &quot;Bowie&quot;, }, { fips_code: 38011, name: &quot;Bowman&quot;, }, { fips_code: 31013, name: &quot;Box Butte&quot;, }, { fips_code: 49003, name: &quot;Box Elder&quot;, }, { fips_code: 31015, name: &quot;Boyd&quot;, }, { fips_code: 21019, name: &quot;Boyd&quot;, }, { fips_code: 21021, name: &quot;Boyle&quot;, }, { fips_code: 21023, name: &quot;Bracken&quot;, }, { fips_code: 12007, name: &quot;Bradford&quot;, }, { fips_code: 42015, name: &quot;Bradford&quot;, }, { fips_code: 5011, name: &quot;Bradley&quot;, }, { fips_code: 47011, name: &quot;Bradley&quot;, }, { fips_code: 26023, name: &quot;Branch&quot;, }, { fips_code: 13025, name: &quot;Brantley&quot;, }, { fips_code: 54007, name: &quot;Braxton&quot;, }, { fips_code: 48039, name: &quot;Brazoria&quot;, }, { fips_code: 48041, name: &quot;Brazos&quot;, }, { fips_code: 21025, name: &quot;Breathitt&quot;, }, { fips_code: 21027, name: &quot;Breckinridge&quot;, }, { fips_code: 19017, name: &quot;Bremer&quot;, }, { fips_code: 12009, name: &quot;Brevard&quot;, }, { fips_code: 48043, name: &quot;Brewster&quot;, }, { fips_code: 48045, name: &quot;Briscoe&quot;, }, { fips_code: 44001, name: &quot;Bristol&quot;, }, { fips_code: 25005, name: &quot;Bristol&quot;, }, { fips_code: 51520, name: &quot;Bristol&quot;, }, { fips_code: 2060, name: &quot;Bristol Bay&quot;, }, { fips_code: 30007, name: &quot;Broadwater&quot;, }, { fips_code: 36005, name: &quot;Bronx&quot;, }, { fips_code: 54009, name: &quot;Brooke&quot;, }, { fips_code: 46011, name: &quot;Brookings&quot;, }, { fips_code: 48047, name: &quot;Brooks&quot;, }, { fips_code: 13027, name: &quot;Brooks&quot;, }, { fips_code: 36007, name: &quot;Broome&quot;, }, { fips_code: 8014, name: &quot;Broomfield&quot;, }, { fips_code: 12011, name: &quot;Broward&quot;, }, { fips_code: 18013, name: &quot;Brown&quot;, }, { fips_code: 46013, name: &quot;Brown&quot;, }, { fips_code: 48049, name: &quot;Brown&quot;, }, { fips_code: 39015, name: &quot;Brown&quot;, }, { fips_code: 31017, name: &quot;Brown&quot;, }, { fips_code: 17009, name: &quot;Brown&quot;, }, { fips_code: 55009, name: &quot;Brown&quot;, }, { fips_code: 20013, name: &quot;Brown&quot;, }, { fips_code: 27015, name: &quot;Brown&quot;, }, { fips_code: 46015, name: &quot;Brule&quot;, }, { fips_code: 37019, name: &quot;Brunswick&quot;, }, { fips_code: 51025, name: &quot;Brunswick&quot;, }, { fips_code: 13029, name: &quot;Bryan&quot;, }, { fips_code: 40013, name: &quot;Bryan&quot;, }, { fips_code: 19019, name: &quot;Buchanan&quot;, }, { fips_code: 29021, name: &quot;Buchanan&quot;, }, { fips_code: 51027, name: &quot;Buchanan&quot;, }, { fips_code: 51029, name: &quot;Buckingham&quot;, }, { fips_code: 42017, name: &quot;Bucks&quot;, }, { fips_code: 51530, name: &quot;Buena Vista&quot;, }, { fips_code: 19021, name: &quot;Buena Vista&quot;, }, { fips_code: 31019, name: &quot;Buffalo&quot;, }, { fips_code: 46017, name: &quot;Buffalo&quot;, }, { fips_code: 55011, name: &quot;Buffalo&quot;, }, { fips_code: 21029, name: &quot;Bullitt&quot;, }, { fips_code: 13031, name: &quot;Bulloch&quot;, }, { fips_code: 1011, name: &quot;Bullock&quot;, }, { fips_code: 37021, name: &quot;Buncombe&quot;, }, { fips_code: 17011, name: &quot;Bureau&quot;, }, { fips_code: 38013, name: &quot;Burke&quot;, }, { fips_code: 37023, name: &quot;Burke&quot;, }, { fips_code: 13033, name: &quot;Burke&quot;, }, { fips_code: 38015, name: &quot;Burleigh&quot;, }, { fips_code: 48051, name: &quot;Burleson&quot;, }, { fips_code: 34005, name: &quot;Burlington&quot;, }, { fips_code: 48053, name: &quot;Burnet&quot;, }, { fips_code: 55013, name: &quot;Burnett&quot;, }, { fips_code: 31021, name: &quot;Burt&quot;, }, { fips_code: 29023, name: &quot;Butler&quot;, }, { fips_code: 1013, name: &quot;Butler&quot;, }, { fips_code: 20015, name: &quot;Butler&quot;, }, { fips_code: 19023, name: &quot;Butler&quot;, }, { fips_code: 42019, name: &quot;Butler&quot;, }, { fips_code: 31023, name: &quot;Butler&quot;, }, { fips_code: 39017, name: &quot;Butler&quot;, }, { fips_code: 21031, name: &quot;Butler&quot;, }, { fips_code: 16023, name: &quot;Butte&quot;, }, { fips_code: 46019, name: &quot;Butte&quot;, }, { fips_code: 6007, name: &quot;Butte&quot;, }, { fips_code: 13035, name: &quot;Butts&quot;, }, { fips_code: 37025, name: &quot;Cabarrus&quot;, }, { fips_code: 54011, name: &quot;Cabell&quot;, }, { fips_c