Skip to content

Instantly share code, notes, and snippets.

@ajturner
Created May 1, 2009 04:07
Show Gist options
  • Save ajturner/104867 to your computer and use it in GitHub Desktop.
Save ajturner/104867 to your computer and use it in GitHub Desktop.
Parses the data from http://lacounty.solarmap.org/ and exports as KML. It's ugly - it works.
zipMarkers = {
93536 => {'zipcode' => 93536, 'name' => 'Lancaster/Quartz Hill', 'number of installations' => '17', 'size' => '77.406', 'cost' => '670991.4', 'incentives' => '187572.39', 'lat' => 34.77131, 'lng' => -118.47496},
93534 => {'zipcode' => 93534, 'name' => 'Lancaster', 'number of installations' => '3', 'size' => '15.176', 'cost' => '149260', 'incentives' => '37486.56', 'lat' => 34.73728, 'lng' => -118.15001},
93523 => {'zipcode' => 93523, 'name' => 'Edwards AFB', 'number of installations' => '1', 'size' => '2.075', 'cost' => '21000', 'incentives' => '4563', 'lat' => 34.80315, 'lng' => -117.95937},
93535 => {'zipcode' => 93535, 'name' => 'Hi Vista', 'number of installations' => '9', 'size' => '42.582', 'cost' => '381678.07', 'incentives' => '98170.06', 'lat' => 34.69016, 'lng' => -117.88353},
91384 => {'zipcode' => 91384, 'name' => 'Castaic', 'number of installations' => '13', 'size' => '80.314', 'cost' => '737545.1', 'incentives' => '188829.17', 'lat' => 34.53395, 'lng' => -118.67296},
93552 => {'zipcode' => 93552, 'name' => 'Palmdale', 'number of installations' => '2', 'size' => '8.38', 'cost' => '71927.57', 'incentives' => '20923.55', 'lat' => 34.48401, 'lng' => -118.01676},
93591 => {'zipcode' => 93591, 'name' => 'Palmdale/Lake Los Angeles', 'number of installations' => '1', 'size' => '7.962', 'cost' => '67000', 'incentives' => '19853', 'lat' => 34.59469, 'lng' => -117.80704},
93550 => {'zipcode' => 93550, 'name' => 'Palmdale/Lake Los Angeles', 'number of installations' => '8', 'size' => '34.27', 'cost' => '349135.25', 'incentives' => '87320.6', 'lat' => 34.35122, 'lng' => -118.05677},
93551 => {'zipcode' => 93551, 'name' => 'Palmdale', 'number of installations' => '18', 'size' => '115.744', 'cost' => '1042291.28', 'incentives' => '375734.79', 'lat' => 34.61161, 'lng' => -118.26471},
91390 => {'zipcode' => 91390, 'name' => 'Santa Clarita', 'number of installations' => '34', 'size' => '208.919', 'cost' => '1976013.95', 'incentives' => '493629.55', 'lat' => 34.55807, 'lng' => -118.42457},
93543 => {'zipcode' => 93543, 'name' => 'Littlerock/Juniper Hills', 'number of installations' => '1', 'size' => '4.093', 'cost' => '29319.22', 'incentives' => '10230', 'lat' => 34.46926, 'lng' => -117.96238},
93510 => {'zipcode' => 93510, 'name' => 'Acton', 'number of installations' => '7', 'size' => '43.11', 'cost' => '397223', 'incentives' => '111766.18', 'lat' => 34.4576, 'lng' => -118.20799},
93553 => {'zipcode' => 93553, 'name' => 'Pearblossom', 'number of installations' => '3', 'size' => '15.748', 'cost' => '130967', 'incentives' => '44066', 'lat' => 34.37204, 'lng' => -117.89723},
91354 => {'zipcode' => 91354, 'name' => 'Santa Clarita (Valencia)', 'number of installations' => '13', 'size' => '68.467', 'cost' => '625789.73', 'incentives' => '160470.09', 'lat' => 34.45173, 'lng' => -118.55378},
91351 => {'zipcode' => 91351, 'name' => 'Santa Clarita (Canyon Country)', 'number of installations' => '11', 'size' => '60.986', 'cost' => '583483.83', 'incentives' => '141138.3', 'lat' => 34.43011, 'lng' => -118.46523},
91387 => {'zipcode' => 91387, 'name' => 'Canyon Country', 'number of installations' => '21', 'size' => '158.359', 'cost' => '1479238.72', 'incentives' => '369532.5', 'lat' => 34.35, 'lng' => -118.40631},
91350 => {'zipcode' => 91350, 'name' => 'Agua Dulce/Saugus', 'number of installations' => '23', 'size' => '106.146', 'cost' => '1027200.23', 'incentives' => '246716.74', 'lat' => 34.4076, 'lng' => -118.50788},
91355 => {'zipcode' => 91355, 'name' => 'Santa Clarita (Valencia)', 'number of installations' => '9', 'size' => '46.168', 'cost' => '361880.01', 'incentives' => '104357.23', 'lat' => 34.42214, 'lng' => -118.60386},
91381 => {'zipcode' => 91381, 'name' => 'Stevenson Ranch', 'number of installations' => '13', 'size' => '79.902', 'cost' => '832370.04', 'incentives' => '181967.08', 'lat' => 34.36976, 'lng' => -118.59531},
91321 => {'zipcode' => 91321, 'name' => 'Santa Clarita (Newhall)', 'number of installations' => '10', 'size' => '60.582', 'cost' => '548077.61', 'incentives' => '136356.67', 'lat' => 34.34799, 'lng' => -118.4937},
91342 => {'zipcode' => 91342, 'name' => 'Lake View Terrace (City of LA)/Sylmar (City of LA)', 'number of installations' => '12', 'size' => '262.062', 'cost' => '103290.8', 'incentives' => '21110', 'lat' => 34.30807, 'lng' => -118.39839},
91042 => {'zipcode' => 91042, 'name' => 'Tujunga (City of LA)', 'number of installations' => '24', 'size' => '88.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.32183, 'lng' => -118.22652},
91750 => {'zipcode' => 91750, 'name' => 'La Verne', 'number of installations' => '12', 'size' => '47.308', 'cost' => '450702.72', 'incentives' => '108259', 'lat' => 34.22696, 'lng' => -117.73044},
91311 => {'zipcode' => 91311, 'name' => 'Chatsworth (City of LA)', 'number of installations' => '32', 'size' => '707.244', 'cost' => '89617.58', 'incentives' => '19893', 'lat' => 34.27973, 'lng' => -118.612},
91326 => {'zipcode' => 91326, 'name' => 'Porter Ranch (City of LA)', 'number of installations' => '24', 'size' => '170.463', 'cost' => '36591', 'incentives' => '10110.66', 'lat' => 34.2887, 'lng' => -118.55655},
91344 => {'zipcode' => 91344, 'name' => 'Granada Hills (City of LA)', 'number of installations' => '49', 'size' => '195.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.28784, 'lng' => -118.50667},
91024 => {'zipcode' => 91024, 'name' => 'Sierra Madre', 'number of installations' => '11', 'size' => '58.886', 'cost' => '579593.67', 'incentives' => '128371.76', 'lat' => 34.246, 'lng' => -118.00361},
91340 => {'zipcode' => 91340, 'name' => 'San Fernando', 'number of installations' => '2', 'size' => '5.175', 'cost' => '49240.18', 'incentives' => '11743.05', 'lat' => 34.28944, 'lng' => -118.43339},
91702 => {'zipcode' => 91702, 'name' => 'Azusa', 'number of installations' => '1', 'size' => '7.675', 'cost' => '64765.05', 'incentives' => '18492', 'lat' => 34.24535, 'lng' => -117.85106},
91011 => {'zipcode' => 91011, 'name' => 'La Canada-Flintridge', 'number of installations' => '50', 'size' => '253.808', 'cost' => '2474564.66', 'incentives' => '574887.27', 'lat' => 34.26442, 'lng' => -118.13827},
91040 => {'zipcode' => 91040, 'name' => 'Shadow Hills (City of LA)/Sunland (City of LA)', 'number of installations' => '19', 'size' => '93.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.25507, 'lng' => -118.34574},
91331 => {'zipcode' => 91331, 'name' => 'Arleta (City of LA)/Pacoima (City of LA)', 'number of installations' => '5', 'size' => '327.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.25446, 'lng' => -118.42199},
91345 => {'zipcode' => 91345, 'name' => 'Mission Hills (City of LA)', 'number of installations' => '4', 'size' => '23.4', 'cost' => '0', 'incentives' => '0', 'lat' => 34.26569, 'lng' => -118.45665},
91214 => {'zipcode' => 91214, 'name' => 'La Crescenta', 'number of installations' => '2', 'size' => '6.688', 'cost' => '60626.82', 'incentives' => '16554', 'lat' => 34.24278, 'lng' => -118.24372},
91304 => {'zipcode' => 91304, 'name' => 'Canoga Park (City of LA)', 'number of installations' => '19', 'size' => '391', 'cost' => '0', 'incentives' => '0', 'lat' => 34.22388, 'lng' => -118.64673},
91001 => {'zipcode' => 91001, 'name' => 'Altadena', 'number of installations' => '28', 'size' => '123.638', 'cost' => '1181402.69', 'incentives' => '284211.63', 'lat' => 34.2166, 'lng' => -118.10638},
91325 => {'zipcode' => 91325, 'name' => 'Northridge (City of LA)', 'number of installations' => '21', 'size' => '139', 'cost' => '0', 'incentives' => '0', 'lat' => 34.23323, 'lng' => -118.51824},
91324 => {'zipcode' => 91324, 'name' => 'Northridge (City of LA)', 'number of installations' => '7', 'size' => '55.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.23874, 'lng' => -118.55261},
91343 => {'zipcode' => 91343, 'name' => 'North Hills (City of LA)', 'number of installations' => '25', 'size' => '82.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.23921, 'lng' => -118.47722},
91330 => {'zipcode' => 91330, 'name' => 'Northridge (City of LA), California State University', 'number of installations' => '2', 'size' => '577.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.24003, 'lng' => -118.52826},
91352 => {'zipcode' => 91352, 'name' => 'Sun Valley (City of LA)', 'number of installations' => '6', 'size' => '12.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.22822, 'lng' => -118.34438},
91402 => {'zipcode' => 91402, 'name' => 'Panorama City (City of LA)', 'number of installations' => '3', 'size' => '68', 'cost' => '0', 'incentives' => '0', 'lat' => 34.22549, 'lng' => -118.4442},
91016 => {'zipcode' => 91016, 'name' => 'Monrovia', 'number of installations' => '9', 'size' => '38.49', 'cost' => '392725.15', 'incentives' => '87971', 'lat' => 34.205, 'lng' => -117.95939},
91306 => {'zipcode' => 91306, 'name' => 'Winnetka (City of LA)', 'number of installations' => '20', 'size' => '194.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.20999, 'lng' => -118.57538},
91406 => {'zipcode' => 91406, 'name' => 'Van Nuys (City of LA)', 'number of installations' => '12', 'size' => '279.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.20369, 'lng' => -118.49233},
91605 => {'zipcode' => 91605, 'name' => 'North Hollywood', 'number of installations' => '6', 'size' => '66.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.20777, 'lng' => -118.39548},
91335 => {'zipcode' => 91335, 'name' => 'Reseda (City of LA)', 'number of installations' => '14', 'size' => '71.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.20044, 'lng' => -118.54041},
91020 => {'zipcode' => 91020, 'name' => 'Montrose', 'number of installations' => '2', 'size' => '8.162', 'cost' => '64768', 'incentives' => '19088', 'lat' => 34.21184, 'lng' => -118.23013},
91711 => {'zipcode' => 91711, 'name' => 'Claremont', 'number of installations' => '32', 'size' => '144.258', 'cost' => '1408212.17', 'incentives' => '325078.95', 'lat' => 34.13266, 'lng' => -117.70497},
91405 => {'zipcode' => 91405, 'name' => 'Van Nuys (City of LA)', 'number of installations' => '9', 'size' => '29', 'cost' => '0', 'incentives' => '0', 'lat' => 34.20071, 'lng' => -118.44458},
91307 => {'zipcode' => 91307, 'name' => 'West Hills (City of LA)', 'number of installations' => '20', 'size' => '108.768', 'cost' => '297195.54', 'incentives' => '75063', 'lat' => 34.19599, 'lng' => -118.64082},
91303 => {'zipcode' => 91303, 'name' => 'Canoga Park (City of LA)', 'number of installations' => '9', 'size' => '81', 'cost' => '0', 'incentives' => '0', 'lat' => 34.19799, 'lng' => -118.60141},
91741 => {'zipcode' => 91741, 'name' => 'Glendora', 'number of installations' => '11', 'size' => '82.805', 'cost' => '758983.57', 'incentives' => '196308', 'lat' => 34.16623, 'lng' => -117.83607},
91411 => {'zipcode' => 91411, 'name' => 'Van Nuys (City of LA)', 'number of installations' => '3', 'size' => '81.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.17758, 'lng' => -118.46132},
91401 => {'zipcode' => 91401, 'name' => 'Van Nuys (City of LA)', 'number of installations' => '13', 'size' => '60.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.17939, 'lng' => -118.43128},
91606 => {'zipcode' => 91606, 'name' => 'North Hollywood', 'number of installations' => '2', 'size' => '4.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.18648, 'lng' => -118.39066},
91367 => {'zipcode' => 91367, 'name' => 'Woodland Hills (City of LA)', 'number of installations' => '42', 'size' => '185.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.17767, 'lng' => -118.61515},
91010 => {'zipcode' => 91010, 'name' => 'Bradbury', 'number of installations' => '4', 'size' => '25.04', 'cost' => '232341.73', 'incentives' => '55762', 'lat' => 34.15951, 'lng' => -117.95262},
91302 => {'zipcode' => 91302, 'name' => 'Calabasas/Hidden Hills', 'number of installations' => '19', 'size' => '150.085', 'cost' => '1208910.47', 'incentives' => '291796.29', 'lat' => 34.13261, 'lng' => -118.67745},
91316 => {'zipcode' => 91316, 'name' => 'Encino (City of LA)', 'number of installations' => '19', 'size' => '107.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.15856, 'lng' => -118.51642},
91436 => {'zipcode' => 91436, 'name' => 'Encino (City of LA)', 'number of installations' => '12', 'size' => '100', 'cost' => '0', 'incentives' => '0', 'lat' => 34.13265, 'lng' => -118.4872},
91107 => {'zipcode' => 91107, 'name' => 'Pasadena', 'number of installations' => '8', 'size' => '37.774', 'cost' => '392215.29', 'incentives' => '88422', 'lat' => 34.15614, 'lng' => -118.08931},
91356 => {'zipcode' => 91356, 'name' => 'Tarzana (City of LA)', 'number of installations' => '15', 'size' => '71.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.15292, 'lng' => -118.55001},
91104 => {'zipcode' => 91104, 'name' => 'Pasadena', 'number of installations' => '1', 'size' => '3.181', 'cost' => '33400', 'incentives' => '6998', 'lat' => 34.16762, 'lng' => -118.12223},
91607 => {'zipcode' => 91607, 'name' => 'North Hollywood (City of LA)/Valley Village (City of LA)', 'number of installations' => '13', 'size' => '42.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.1668, 'lng' => -118.40092},
91601 => {'zipcode' => 91601, 'name' => 'North Hollywood (City of LA)', 'number of installations' => '8', 'size' => '23.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.16859, 'lng' => -118.36999},
91006 => {'zipcode' => 91006, 'name' => 'Arcadia', 'number of installations' => '17', 'size' => '94.248', 'cost' => '887657.91', 'incentives' => '210225.99', 'lat' => 34.13535, 'lng' => -118.02983},
91364 => {'zipcode' => 91364, 'name' => 'Woodland Hills (City of LA)', 'number of installations' => '36', 'size' => '236.882', 'cost' => '32694.35', 'incentives' => '10201.94', 'lat' => 34.15424, 'lng' => -118.59977},
91361 => {'zipcode' => 91361, 'name' => 'Westlake Village', 'number of installations' => '23', 'size' => '154.715', 'cost' => '1523015.7', 'incentives' => '392920.88', 'lat' => 34.13202, 'lng' => -118.82893},
91362 => {'zipcode' => 91362, 'name' => 'Westlake Village', 'number of installations' => '22', 'size' => '120.261', 'cost' => '1160098.12', 'incentives' => '277708.7', 'lat' => 34.15589, 'lng' => -118.79994},
91301 => {'zipcode' => 91301, 'name' => 'Agoura/Oak Park', 'number of installations' => '24', 'size' => '140.067', 'cost' => '1355793.16', 'incentives' => '320977.25', 'lat' => 34.13004, 'lng' => -118.77541},
91773 => {'zipcode' => 91773, 'name' => 'San Dimas', 'number of installations' => '7', 'size' => '32.703', 'cost' => '324864.45', 'incentives' => '70614', 'lat' => 34.10458, 'lng' => -117.8088},
91423 => {'zipcode' => 91423, 'name' => 'Sherman Oaks (City of LA)/Van Nuys (City of LA)', 'number of installations' => '18', 'size' => '216.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.15047, 'lng' => -118.43444},
91403 => {'zipcode' => 91403, 'name' => 'Sherman Oaks (City of LA)/Van Nuys (City of LA)', 'number of installations' => '22', 'size' => '100.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.14792, 'lng' => -118.46746},
90027 => {'zipcode' => 90027, 'name' => 'Griffith Park (City of LA)/Los Feliz (City of LA)', 'number of installations' => '32', 'size' => '143', 'cost' => '0', 'incentives' => '0', 'lat' => 34.12572, 'lng' => -118.28906},
91602 => {'zipcode' => 91602, 'name' => 'North Hollywood (City of LA)/Toluca Lake (City of LA)', 'number of installations' => '7', 'size' => '26.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.15086, 'lng' => -118.36649},
91101 => {'zipcode' => 91101, 'name' => 'Pasadena', 'number of installations' => '3', 'size' => '8.655', 'cost' => '77804.18', 'incentives' => '20259', 'lat' => 34.14671, 'lng' => -118.13887},
91604 => {'zipcode' => 91604, 'name' => 'North Hollywood (City of LA)/Studio City (City of LA)', 'number of installations' => '19', 'size' => '97.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.13678, 'lng' => -118.39097},
90068 => {'zipcode' => 90068, 'name' => 'Hollywood (City of LA)', 'number of installations' => '42', 'size' => '236.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.12593, 'lng' => -118.33593},
90039 => {'zipcode' => 90039, 'name' => 'Atwater Village (City of LA)', 'number of installations' => '25', 'size' => '84.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.10775, 'lng' => -118.26048},
90265 => {'zipcode' => 90265, 'name' => 'Malibu', 'number of installations' => '40', 'size' => '261.574', 'cost' => '3523983.06', 'incentives' => '595826.64', 'lat' => 34.03346, 'lng' => -118.76487},
90041 => {'zipcode' => 90041, 'name' => 'Eagle Rock (City of LA)', 'number of installations' => '18', 'size' => '52.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.13798, 'lng' => -118.20485},
91007 => {'zipcode' => 91007, 'name' => 'Arcadia', 'number of installations' => '10', 'size' => '68.908', 'cost' => '629927.01', 'incentives' => '153217.04', 'lat' => 34.12651, 'lng' => -118.05003},
90290 => {'zipcode' => 90290, 'name' => 'Topanga', 'number of installations' => '17', 'size' => '118.64', 'cost' => '1189793.74', 'incentives' => '286310.3', 'lat' => 34.089, 'lng' => -118.61155},
90210 => {'zipcode' => 90210, 'name' => 'Beverly Hills/Beverly Glen (City of LA)', 'number of installations' => '25', 'size' => '165.907', 'cost' => '1070886.32', 'incentives' => '261162.49', 'lat' => 34.09847, 'lng' => -118.4151},
90272 => {'zipcode' => 90272, 'name' => 'Castellemare (City of LA)/Pacific Highlands (City of LA)/Pacifi', 'number of installations' => '50', 'size' => '227.8', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06421, 'lng' => -118.54151},
90065 => {'zipcode' => 90065, 'name' => 'Cypress Park (City of LA)/Glassell Park (City of LA)/Mt. Washin', 'number of installations' => '28', 'size' => '90.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.11244, 'lng' => -118.22886},
91108 => {'zipcode' => 91108, 'name' => 'San Marino', 'number of installations' => '11', 'size' => '68.217', 'cost' => '654665.44', 'incentives' => '145768', 'lat' => 34.12285, 'lng' => -118.11619},
90077 => {'zipcode' => 90077, 'name' => 'Bel Air Estates & Beverly Glen (City of LA)', 'number of installations' => '12', 'size' => '62.8', 'cost' => '0', 'incentives' => '0', 'lat' => 34.10439, 'lng' => -118.45252},
90049 => {'zipcode' => 90049, 'name' => 'Bel Air Estates (City of LA)/Brentwood (City of LA)', 'number of installations' => '56', 'size' => '336.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.08683, 'lng' => -118.4849},
91706 => {'zipcode' => 91706, 'name' => 'Baldwin Park/Irwindale', 'number of installations' => '2', 'size' => '11.453', 'cost' => '107402', 'incentives' => '24886', 'lat' => 34.06249, 'lng' => -117.96662},
90042 => {'zipcode' => 90042, 'name' => 'Highland Park (City of LA)', 'number of installations' => '9', 'size' => '29.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.11528, 'lng' => -118.19133},
90046 => {'zipcode' => 90046, 'name' => 'Mount Olympus (City of LA)', 'number of installations' => '33', 'size' => '153.921', 'cost' => '61711.58', 'incentives' => '13881', 'lat' => 34.09056, 'lng' => -118.36898},
91775 => {'zipcode' => 91775, 'name' => 'San Gabriel', 'number of installations' => '6', 'size' => '18.896', 'cost' => '203897.58', 'incentives' => '43858.79', 'lat' => 34.1102, 'lng' => -118.09421},
91740 => {'zipcode' => 91740, 'name' => 'Glendora', 'number of installations' => '5', 'size' => '23.535', 'cost' => '215378.07', 'incentives' => '54464', 'lat' => 34.11815, 'lng' => -117.85137},
91030 => {'zipcode' => 91030, 'name' => 'South Pasadena', 'number of installations' => '20', 'size' => '91.368', 'cost' => '836113.17', 'incentives' => '210551.74', 'lat' => 34.11131, 'lng' => -118.15653},
91780 => {'zipcode' => 91780, 'name' => 'Temple City', 'number of installations' => '2', 'size' => '11.199', 'cost' => '99388.34', 'incentives' => '25042', 'lat' => 34.09742, 'lng' => -118.05085},
91722 => {'zipcode' => 91722, 'name' => 'Covina', 'number of installations' => '3', 'size' => '8.832', 'cost' => '87539.89', 'incentives' => '18159', 'lat' => 34.09656, 'lng' => -117.90727},
91767 => {'zipcode' => 91767, 'name' => 'Pomona', 'number of installations' => '5', 'size' => '20.97', 'cost' => '181855', 'incentives' => '48361', 'lat' => 34.079, 'lng' => -117.73452},
91801 => {'zipcode' => 91801, 'name' => 'Alhambra', 'number of installations' => '4', 'size' => '12.46', 'cost' => '117824.8', 'incentives' => '28887.58', 'lat' => 34.08613, 'lng' => -118.13459},
90069 => {'zipcode' => 90069, 'name' => 'West Hollywood', 'number of installations' => '14', 'size' => '55.02', 'cost' => '67490', 'incentives' => '15102', 'lat' => 34.09345, 'lng' => -118.38099},
90028 => {'zipcode' => 90028, 'name' => 'Hollywood (City of LA)', 'number of installations' => '5', 'size' => '79.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.09985, 'lng' => -118.32741},
91724 => {'zipcode' => 91724, 'name' => 'Covina', 'number of installations' => '8', 'size' => '42.099', 'cost' => '395873.87', 'incentives' => '93425.44', 'lat' => 34.07287, 'lng' => -117.84926},
91776 => {'zipcode' => 91776, 'name' => 'San Gabriel', 'number of installations' => '1', 'size' => '2.579', 'cost' => '21750', 'incentives' => '5672', 'lat' => 34.08801, 'lng' => -118.09314},
90032 => {'zipcode' => 90032, 'name' => 'El Sereno (City of LA)/Monterey Hills (City of LA)', 'number of installations' => '3', 'size' => '6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.07992, 'lng' => -118.17753},
90031 => {'zipcode' => 90031, 'name' => 'Montecito Heights (City of LA)', 'number of installations' => '5', 'size' => '127.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.07152, 'lng' => -118.21889},
91732 => {'zipcode' => 91732, 'name' => 'El Monte', 'number of installations' => '1', 'size' => '5.27', 'cost' => '51063.96', 'incentives' => '12549', 'lat' => 34.07095, 'lng' => -118.01395},
91731 => {'zipcode' => 91731, 'name' => 'El Monte', 'number of installations' => '1', 'size' => '1.896', 'cost' => '11921.2', 'incentives' => '4171', 'lat' => 34.08043, 'lng' => -118.04643},
90029 => {'zipcode' => 90029, 'name' => 'Downtown Los Angeles (City of LA)', 'number of installations' => '4', 'size' => '8.3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.08958, 'lng' => -118.29313},
90026 => {'zipcode' => 90026, 'name' => 'Echo Park/Silverlake (City of LA)', 'number of installations' => '50', 'size' => '146.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.07502, 'lng' => -118.26258},
90038 => {'zipcode' => 90038, 'name' => 'Hollywood (City of LA)', 'number of installations' => '5', 'size' => '119.336', 'cost' => '24501.08', 'incentives' => '5665', 'lat' => 34.08879, 'lng' => -118.32715},
91770 => {'zipcode' => 91770, 'name' => 'Rosemead', 'number of installations' => '2', 'size' => '6.668', 'cost' => '54655.47', 'incentives' => '15032', 'lat' => 34.06535, 'lng' => -118.08197},
91768 => {'zipcode' => 91768, 'name' => 'Pomona', 'number of installations' => '2', 'size' => '4.347', 'cost' => '44742', 'incentives' => '111151', 'lat' => 34.06368, 'lng' => -117.79297},
90012 => {'zipcode' => 90012, 'name' => 'Civic Center (City of LA)/Chinatown (City of LA)', 'number of installations' => '3', 'size' => '308.4', 'cost' => '0', 'incentives' => '0', 'lat' => 34.0678, 'lng' => -118.24099},
91790 => {'zipcode' => 91790, 'name' => 'West Covina', 'number of installations' => '3', 'size' => '10.717', 'cost' => '91582.96', 'incentives' => '25328.24', 'lat' => 34.06878, 'lng' => -117.9418},
91803 => {'zipcode' => 91803, 'name' => 'Alhambra', 'number of installations' => '2', 'size' => '4.113', 'cost' => '34022', 'incentives' => '9485.39', 'lat' => 34.07415, 'lng' => -118.14391},
91791 => {'zipcode' => 91791, 'name' => 'West Covina', 'number of installations' => '4', 'size' => '19.507', 'cost' => '197398.64', 'incentives' => '46980.1', 'lat' => 34.06012, 'lng' => -117.88766},
90048 => {'zipcode' => 90048, 'name' => 'West Beverly (City of LA)', 'number of installations' => '10', 'size' => '30.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.05965, 'lng' => -118.3758},
90036 => {'zipcode' => 90036, 'name' => 'Park La Brea (City of LA)', 'number of installations' => '15', 'size' => '110.4', 'cost' => '0', 'incentives' => '0', 'lat' => 34.07031, 'lng' => -118.35082},
90004 => {'zipcode' => 90004, 'name' => 'Hancock Park (City of LA)', 'number of installations' => '18', 'size' => '67.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.07629, 'lng' => -118.3106},
90024 => {'zipcode' => 90024, 'name' => 'Westwood (City of LA)', 'number of installations' => '7', 'size' => '44.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06515, 'lng' => -118.43623},
90057 => {'zipcode' => 90057, 'name' => 'Westlake (City of LA)', 'number of installations' => '2', 'size' => '36.8', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06048, 'lng' => -118.27541},
90211 => {'zipcode' => 90211, 'name' => 'Beverly Hills', 'number of installations' => '1', 'size' => '30.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06632, 'lng' => -118.38114},
91755 => {'zipcode' => 91755, 'name' => 'Monterey Park', 'number of installations' => '3', 'size' => '10.243', 'cost' => '101774.69', 'incentives' => '23192.39', 'lat' => 34.05053, 'lng' => -118.11169},
91733 => {'zipcode' => 91733, 'name' => 'South El Monte', 'number of installations' => '1', 'size' => '2.024', 'cost' => '22143', 'incentives' => '5301.08', 'lat' => 34.05148, 'lng' => -118.04675},
90020 => {'zipcode' => 90020, 'name' => 'Hancock Park (City of LA)', 'number of installations' => '2', 'size' => '13.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06631, 'lng' => -118.31119},
91754 => {'zipcode' => 91754, 'name' => 'Monterey Park', 'number of installations' => '4', 'size' => '17.967', 'cost' => '145759.94', 'incentives' => '40792', 'lat' => 34.04695, 'lng' => -118.14643},
90212 => {'zipcode' => 90212, 'name' => 'Beverly Hills', 'number of installations' => '3', 'size' => '11.524', 'cost' => '106269.56', 'incentives' => '27281.17', 'lat' => 34.06218, 'lng' => -118.402},
90033 => {'zipcode' => 90033, 'name' => 'Boyle Heights (City of LA)', 'number of installations' => '1', 'size' => '2.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.04961, 'lng' => -118.2116},
90063 => {'zipcode' => 90063, 'name' => 'City Terrace', 'number of installations' => '4', 'size' => '7.375', 'cost' => '79400', 'incentives' => '16876', 'lat' => 34.0454, 'lng' => -118.18751},
90035 => {'zipcode' => 90035, 'name' => 'West Fairfax (City of LA)', 'number of installations' => '13', 'size' => '46.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.05089, 'lng' => -118.38537},
91789 => {'zipcode' => 91789, 'name' => 'Diamond Bar/City of Industry/Walnut', 'number of installations' => '13', 'size' => '44.736', 'cost' => '438000.87', 'incentives' => '105226.2', 'lat' => 33.96682, 'lng' => -117.85504},
90005 => {'zipcode' => 90005, 'name' => 'Koreatown (City of LA)', 'number of installations' => '7', 'size' => '31.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.05878, 'lng' => -118.31158},
90025 => {'zipcode' => 90025, 'name' => 'Sawtelle (City of LA)/West Los Angeles (City of LA)', 'number of installations' => '14', 'size' => '56.4', 'cost' => '0', 'incentives' => '0', 'lat' => 34.04439, 'lng' => -118.44395},
91766 => {'zipcode' => 91766, 'name' => 'Phillips Ranch/Pomoona', 'number of installations' => '2', 'size' => '10.772', 'cost' => '106563.63', 'incentives' => '23587', 'lat' => 34.04134, 'lng' => -117.75486},
90019 => {'zipcode' => 90019, 'name' => 'Country Club Park (City of LA)/Mid City (City of LA)', 'number of installations' => '18', 'size' => '64.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.04864, 'lng' => -118.33971},
90006 => {'zipcode' => 90006, 'name' => 'Pico Heights (City of LA)', 'number of installations' => '2', 'size' => '3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.04802, 'lng' => -118.29238},
90064 => {'zipcode' => 90064, 'name' => 'Cheviot Hills (City of LA)/Rancho Park (City of LA)', 'number of installations' => '18', 'size' => '88.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.0359, 'lng' => -118.43009},
90015 => {'zipcode' => 90015, 'name' => 'Downtown Los Angeles (City of LA)', 'number of installations' => '3', 'size' => '35.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.03979, 'lng' => -118.26655},
90402 => {'zipcode' => 90402, 'name' => 'Santa Monica', 'number of installations' => '36', 'size' => '179.581', 'cost' => '1205693.77', 'incentives' => '300362.82', 'lat' => 34.03587, 'lng' => -118.50174},
90022 => {'zipcode' => 90022, 'name' => 'East Los Angeles', 'number of installations' => '18', 'size' => '34.014', 'cost' => '369032.01', 'incentives' => '79522', 'lat' => 34.02198, 'lng' => -118.15057},
90403 => {'zipcode' => 90403, 'name' => 'Santa Monica', 'number of installations' => '15', 'size' => '40.465', 'cost' => '350921.3', 'incentives' => '77019.25', 'lat' => 34.03281, 'lng' => -118.48846},
91792 => {'zipcode' => 91792, 'name' => 'West Covina', 'number of installations' => '1', 'size' => '2.835', 'cost' => '26441', 'incentives' => '7071', 'lat' => 34.02744, 'lng' => -117.89724},
90263 => {'zipcode' => 90263, 'name' => 'Pepperdine University (Malibu)', 'number of installations' => '1', 'size' => '3.501', 'cost' => '29400', 'incentives' => '8089', 'lat' => 34.03771, 'lng' => -118.70785},
90034 => {'zipcode' => 90034, 'name' => 'Palms (City of LA)', 'number of installations' => '19', 'size' => '171.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.02951, 'lng' => -118.39953},
90601 => {'zipcode' => 90601, 'name' => 'Whittier', 'number of installations' => '4', 'size' => '17.304', 'cost' => '165566.08', 'incentives' => '43033.86', 'lat' => 34.00701, 'lng' => -118.03311},
90640 => {'zipcode' => 90640, 'name' => 'Montebello', 'number of installations' => '2', 'size' => '3.718', 'cost' => '41352.18', 'incentives' => '8558', 'lat' => 34.01271, 'lng' => -118.10603},
91765 => {'zipcode' => 91765, 'name' => 'Diamond Bar', 'number of installations' => '8', 'size' => '36.232', 'cost' => '342854.53', 'incentives' => '81897', 'lat' => 34.00362, 'lng' => -117.81425},
90016 => {'zipcode' => 90016, 'name' => 'West Adams (City of LA)', 'number of installations' => '3', 'size' => '322.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.02978, 'lng' => -118.35792},
90021 => {'zipcode' => 90021, 'name' => 'Downtown Los Angeles (City of LA)', 'number of installations' => '3', 'size' => '1392.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.02979, 'lng' => -118.2405},
90404 => {'zipcode' => 90404, 'name' => 'Santa Monica', 'number of installations' => '5', 'size' => '14.465', 'cost' => '135136.37', 'incentives' => '34861.78', 'lat' => 34.02965, 'lng' => -118.47152},
90018 => {'zipcode' => 90018, 'name' => 'Jefferson Park (City of LA)', 'number of installations' => '1', 'size' => '5.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.02905, 'lng' => -118.31767},
90007 => {'zipcode' => 90007, 'name' => 'South Central (City of LA)', 'number of installations' => '5', 'size' => '151.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.01707, 'lng' => -118.28259},
90023 => {'zipcode' => 90023, 'name' => 'East Los Angeles (City of LA)', 'number of installations' => '8', 'size' => '18.708', 'cost' => '94249.95', 'incentives' => '22248', 'lat' => 34.01914, 'lng' => -118.20049},
90232 => {'zipcode' => 90232, 'name' => 'Culver City', 'number of installations' => '10', 'size' => '36.919', 'cost' => '330977.91', 'incentives' => '84106', 'lat' => 34.01542, 'lng' => -118.3933},
90660 => {'zipcode' => 90660, 'name' => 'Pico Rivera', 'number of installations' => '2', 'size' => '3.832', 'cost' => '41495', 'incentives' => '8648', 'lat' => 33.99956, 'lng' => -118.0814},
91745 => {'zipcode' => 91745, 'name' => 'La Puente (Hacienda Heights)', 'number of installations' => '8', 'size' => '44.093', 'cost' => '426150.86', 'incentives' => '95945', 'lat' => 33.99659, 'lng' => -117.97298},
90011 => {'zipcode' => 90011, 'name' => 'South Central (City of LA)', 'number of installations' => '13', 'size' => '32.7', 'cost' => '0', 'incentives' => '0', 'lat' => 34.00776, 'lng' => -118.25858},
90405 => {'zipcode' => 90405, 'name' => 'Santa Monica', 'number of installations' => '30', 'size' => '98.579', 'cost' => '951031.97', 'incentives' => '227546.95', 'lat' => 34.01297, 'lng' => -118.46761},
90066 => {'zipcode' => 90066, 'name' => 'Mar Vista (City of LA)', 'number of installations' => '35', 'size' => '134.39', 'cost' => '58980.33', 'incentives' => '13147', 'lat' => 33.97779, 'lng' => -118.43258},
90401 => {'zipcode' => 90401, 'name' => 'Santa Monica', 'number of installations' => '5', 'size' => '23.658', 'cost' => '238025.86', 'incentives' => '53560.14', 'lat' => 34.0167, 'lng' => -118.49292},
90008 => {'zipcode' => 90008, 'name' => 'Baldwin Hills/Crenshaw (City of LA)/Leimert Park (City of LA)', 'number of installations' => '1', 'size' => '2.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.00947, 'lng' => -118.34768},
90037 => {'zipcode' => 90037, 'name' => 'South Central (City of LA)', 'number of installations' => '1', 'size' => '6.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.00072, 'lng' => -118.28698},
90062 => {'zipcode' => 90062, 'name' => 'South Central (City of LA)', 'number of installations' => '5', 'size' => '13.1', 'cost' => '0', 'incentives' => '0', 'lat' => 34.00362, 'lng' => -118.30909},
90230 => {'zipcode' => 90230, 'name' => 'Culver City', 'number of installations' => '13', 'size' => '45.902', 'cost' => '456945.25', 'incentives' => '98953.27', 'lat' => 33.99537, 'lng' => -118.39683},
90291 => {'zipcode' => 90291, 'name' => 'Venice (City of LA)', 'number of installations' => '92', 'size' => '345.2', 'cost' => '0', 'incentives' => '0', 'lat' => 33.98505, 'lng' => -118.47836},
91748 => {'zipcode' => 91748, 'name' => 'Rowland Heights', 'number of installations' => '5', 'size' => '19.912', 'cost' => '186735.73', 'incentives' => '47695.885', 'lat' => 33.95767, 'lng' => -117.90349},
90606 => {'zipcode' => 90606, 'name' => 'Los Nietos', 'number of installations' => '1', 'size' => '5.085', 'cost' => '46343.43', 'incentives' => '12264', 'lat' => 33.98305, 'lng' => -118.06522},
90043 => {'zipcode' => 90043, 'name' => 'Hyde Park (City of LA)/View Park/Windsor Hills', 'number of installations' => '2', 'size' => '10.072', 'cost' => '73892', 'incentives' => '18610.15', 'lat' => 33.99195, 'lng' => -118.33796},
90056 => {'zipcode' => 90056, 'name' => 'Ladera Heights (City of LA)', 'number of installations' => '3', 'size' => '11.028', 'cost' => '70260.13', 'incentives' => '17806', 'lat' => 33.9882, 'lng' => -118.37133},
90292 => {'zipcode' => 90292, 'name' => 'Marina del Rey', 'number of installations' => '5', 'size' => '14.7', 'cost' => '0', 'incentives' => '0', 'lat' => 33.9706, 'lng' => -118.46205},
90047 => {'zipcode' => 90047, 'name' => 'South Central (City of LA)', 'number of installations' => '6', 'size' => '60.7', 'cost' => '0', 'incentives' => '0', 'lat' => 33.95316, 'lng' => -118.30905},
90044 => {'zipcode' => 90044, 'name' => 'Athens', 'number of installations' => '19', 'size' => '35.8', 'cost' => '0', 'incentives' => '0', 'lat' => 33.95292, 'lng' => -118.29173},
90003 => {'zipcode' => 90003, 'name' => 'South Central (City of LA)', 'number of installations' => '7', 'size' => '16.6', 'cost' => '0', 'incentives' => '0', 'lat' => 33.96444, 'lng' => -118.27399},
90001 => {'zipcode' => 90001, 'name' => 'Florence/South Central (City of LA)', 'number of installations' => '4', 'size' => '292.3', 'cost' => '0', 'incentives' => '0', 'lat' => 33.97435, 'lng' => -118.24716},
90602 => {'zipcode' => 90602, 'name' => 'Whittier', 'number of installations' => '3', 'size' => '17.664', 'cost' => '166049', 'incentives' => '40202.04', 'lat' => 33.9741, 'lng' => -118.025},
90045 => {'zipcode' => 90045, 'name' => 'LAX Area (City of LA)/Westchester (City of LA)', 'number of installations' => '30', 'size' => '1358.2', 'cost' => '0', 'incentives' => '0', 'lat' => 33.9563, 'lng' => -118.4016},
90302 => {'zipcode' => 90302, 'name' => 'Inglewood', 'number of installations' => '1', 'size' => '4.763', 'cost' => '48165.11', 'incentives' => '10922', 'lat' => 33.97385, 'lng' => -118.35275},
90240 => {'zipcode' => 90240, 'name' => 'Downey', 'number of installations' => '3', 'size' => '10.314', 'cost' => '101848', 'incentives' => '24223.18', 'lat' => 33.95918, 'lng' => -118.11865},
90605 => {'zipcode' => 90605, 'name' => 'Whittier/South Whittier', 'number of installations' => '6', 'size' => '28.842', 'cost' => '253098.13', 'incentives' => '66152', 'lat' => 33.95754, 'lng' => -118.01606},
90670 => {'zipcode' => 90670, 'name' => 'Santa Fe Springs', 'number of installations' => '1', 'size' => '2.034', 'cost' => '21658.25', 'incentives' => '5085', 'lat' => 33.89905, 'lng' => -118.06362},
90293 => {'zipcode' => 90293, 'name' => 'Playa del Rey (City of LA)', 'number of installations' => '12', 'size' => '44.6', 'cost' => '0', 'incentives' => '0', 'lat' => 33.93958, 'lng' => -118.45336},
90603 => {'zipcode' => 90603, 'name' => 'Whittier', 'number of installations' => '3', 'size' => '18.218', 'cost' => '168576.74', 'incentives' => '40827', 'lat' => 33.94443, 'lng' => -117.99491},
90280 => {'zipcode' => 90280, 'name' => 'South Gate', 'number of installations' => '2', 'size' => '9.662', 'cost' => '90680', 'incentives' => '21825', 'lat' => 33.94854, 'lng' => -118.19402},
90241 => {'zipcode' => 90241, 'name' => 'Downey', 'number of installations' => '2', 'size' => '11.628', 'cost' => '66066.19', 'incentives' => '12857', 'lat' => 33.93953, 'lng' => -118.1258},
90604 => {'zipcode' => 90604, 'name' => 'Whittier', 'number of installations' => '3', 'size' => '12.32', 'cost' => '114910', 'incentives' => '32567', 'lat' => 33.93417, 'lng' => -118.00917},
90304 => {'zipcode' => 90304, 'name' => 'Lennox', 'number of installations' => '1', 'size' => '1.742', 'cost' => '14077.17', 'incentives' => '4317', 'lat' => 33.93822, 'lng' => -118.35697},
90242 => {'zipcode' => 90242, 'name' => 'Downey', 'number of installations' => '2', 'size' => '6.596', 'cost' => '58796.5', 'incentives' => '21138.6', 'lat' => 33.92066, 'lng' => -118.13935},
90061 => {'zipcode' => 90061, 'name' => 'South Central (City of LA)', 'number of installations' => '1', 'size' => '2.4', 'cost' => '0', 'incentives' => '0', 'lat' => 33.92061, 'lng' => -118.27389},
90059 => {'zipcode' => 90059, 'name' => 'Watts (City of LA)/Willowbrook', 'number of installations' => '1', 'size' => '2.4', 'cost' => '0', 'incentives' => '0', 'lat' => 33.92932, 'lng' => -118.24545},
90245 => {'zipcode' => 90245, 'name' => 'El Segundo', 'number of installations' => '4', 'size' => '14.726', 'cost' => '151330.86', 'incentives' => '33573', 'lat' => 33.91672, 'lng' => -118.39819},
90250 => {'zipcode' => 90250, 'name' => 'Hawthorne (Holly Park)', 'number of installations' => '7', 'size' => '22.139', 'cost' => '217856.73', 'incentives' => '51752.67', 'lat' => 33.91622, 'lng' => -118.34607},
90638 => {'zipcode' => 90638, 'name' => 'La Mirada', 'number of installations' => '6', 'size' => '28.043', 'cost' => '275159.12', 'incentives' => '61815', 'lat' => 33.90438, 'lng' => -118.00722},
90249 => {'zipcode' => 90249, 'name' => 'Gardena', 'number of installations' => '1', 'size' => '2.376', 'cost' => '23851.3', 'incentives' => '5882.47', 'lat' => 33.90193, 'lng' => -118.31748},
90247 => {'zipcode' => 90247, 'name' => 'Gardena', 'number of installations' => '4', 'size' => '8.881', 'cost' => '119223.19', 'incentives' => '20159', 'lat' => 33.89511, 'lng' => -118.29968},
90706 => {'zipcode' => 90706, 'name' => 'Bellflower', 'number of installations' => '3', 'size' => '13.925', 'cost' => '125145.67', 'incentives' => '31259', 'lat' => 33.88939, 'lng' => -118.12917},
90266 => {'zipcode' => 90266, 'name' => 'Manhattan Beach', 'number of installations' => '35', 'size' => '186.929', 'cost' => '1845112.07', 'incentives' => '422320.207', 'lat' => 33.88928, 'lng' => -118.39686},
90278 => {'zipcode' => 90278, 'name' => 'Redondo Beach/Torrance', 'number of installations' => '8', 'size' => '29.025', 'cost' => '295365.89', 'incentives' => '62195', 'lat' => 33.87647, 'lng' => -118.37195},
90703 => {'zipcode' => 90703, 'name' => 'Cerritos', 'number of installations' => '10', 'size' => '43.991', 'cost' => '401893.25', 'incentives' => '104438.71', 'lat' => 33.86606, 'lng' => -118.06864},
90504 => {'zipcode' => 90504, 'name' => 'Torrance', 'number of installations' => '3', 'size' => '10.617', 'cost' => '107630', 'incentives' => '24445.67', 'lat' => 33.86944, 'lng' => -118.33249},
90746 => {'zipcode' => 90746, 'name' => 'Carson', 'number of installations' => '2', 'size' => '6.368', 'cost' => '76991', 'incentives' => '13515', 'lat' => 33.84876, 'lng' => -118.25655},
90805 => {'zipcode' => 90805, 'name' => 'North Long Beach (Long Beach)', 'number of installations' => '3', 'size' => '21.005', 'cost' => '215504.4', 'incentives' => '47871.66', 'lat' => 33.86718, 'lng' => -118.17763},
90254 => {'zipcode' => 90254, 'name' => 'Hermosa Beach', 'number of installations' => '15', 'size' => '53.01', 'cost' => '544055.29', 'incentives' => '119723', 'lat' => 33.86388, 'lng' => -118.39537},
90713 => {'zipcode' => 90713, 'name' => 'Lakewood', 'number of installations' => '5', 'size' => '12.786', 'cost' => '132860.53', 'incentives' => '28286.04', 'lat' => 33.84895, 'lng' => -118.10962},
90712 => {'zipcode' => 90712, 'name' => 'Lakewood', 'number of installations' => '5', 'size' => '15.562', 'cost' => '139678.02', 'incentives' => '33762', 'lat' => 33.85065, 'lng' => -118.14635},
90503 => {'zipcode' => 90503, 'name' => 'Torrance', 'number of installations' => '5', 'size' => '16.2', 'cost' => '143486.12', 'incentives' => '36780', 'lat' => 33.84209, 'lng' => -118.35334},
90277 => {'zipcode' => 90277, 'name' => 'Redondo Beach/Torrance', 'number of installations' => '11', 'size' => '34.737', 'cost' => '367189.69', 'incentives' => '77263', 'lat' => 33.82975, 'lng' => -118.38367},
90501 => {'zipcode' => 90501, 'name' => 'Torrance', 'number of installations' => '4', 'size' => '110.64', 'cost' => '76383', 'incentives' => '17948.41', 'lat' => 33.83259, 'lng' => -118.31493},
90745 => {'zipcode' => 90745, 'name' => 'Carson', 'number of installations' => '3', 'size' => '13.986', 'cost' => '124929.12', 'incentives' => '34328.53', 'lat' => 33.82194, 'lng' => -118.25942},
90807 => {'zipcode' => 90807, 'name' => 'Long Beach', 'number of installations' => '28', 'size' => '87.953', 'cost' => '851491.67', 'incentives' => '203141.92', 'lat' => 33.8332, 'lng' => -118.18097},
90715 => {'zipcode' => 90715, 'name' => 'Lakewood', 'number of installations' => '3', 'size' => '10.685', 'cost' => '104342.82', 'incentives' => '24383', 'lat' => 33.84154, 'lng' => -118.0791},
90808 => {'zipcode' => 90808, 'name' => 'Long Beach', 'number of installations' => '20', 'size' => '71.921', 'cost' => '682923.31', 'incentives' => '164144.71', 'lat' => 33.82139, 'lng' => -118.10316},
90810 => {'zipcode' => 90810, 'name' => 'Carson/Long Beach', 'number of installations' => '2', 'size' => '7.032', 'cost' => '60524.09', 'incentives' => '16990', 'lat' => 33.81804, 'lng' => -118.22226},
90505 => {'zipcode' => 90505, 'name' => 'Torrance', 'number of installations' => '4', 'size' => '12.194', 'cost' => '121976.82', 'incentives' => '26229', 'lat' => 33.81004, 'lng' => -118.35027},
90755 => {'zipcode' => 90755, 'name' => 'Signal Hill', 'number of installations' => '1', 'size' => '3.279', 'cost' => '31642', 'incentives' => '7095', 'lat' => 33.80144, 'lng' => -118.16721},
90710 => {'zipcode' => 90710, 'name' => 'Harbor City (City of LA)', 'number of installations' => '1', 'size' => '5', 'cost' => '0', 'incentives' => '0', 'lat' => 33.79727, 'lng' => -118.29591},
90806 => {'zipcode' => 90806, 'name' => 'Long Beach', 'number of installations' => '3', 'size' => '10.717', 'cost' => '119624.29', 'incentives' => '23746.09', 'lat' => 33.81237, 'lng' => -118.17413},
90815 => {'zipcode' => 90815, 'name' => 'Long Beach', 'number of installations' => '36', 'size' => '122.591', 'cost' => '1208810.12', 'incentives' => '283466.45', 'lat' => 33.79957, 'lng' => -118.11591},
90717 => {'zipcode' => 90717, 'name' => 'Lomita/Rancho Palos Verdes', 'number of installations' => '7', 'size' => '42.044', 'cost' => '391950.91', 'incentives' => '96780', 'lat' => 33.77553, 'lng' => -118.31798},
90274 => {'zipcode' => 90274, 'name' => 'Palos Verdes Estates/Rolling Hills/Rolling Hills Estates', 'number of installations' => '22', 'size' => '118.092', 'cost' => '1186016.31', 'incentives' => '268034.67', 'lat' => 33.78258, 'lng' => -118.35084},
90744 => {'zipcode' => 90744, 'name' => 'Wilmington (City of LA)', 'number of installations' => '2', 'size' => '5.6', 'cost' => '0', 'incentives' => '0', 'lat' => 33.78218, 'lng' => -118.25866},
90275 => {'zipcode' => 90275, 'name' => 'Rancho Palos Verdes', 'number of installations' => '40', 'size' => '183.774', 'cost' => '1812091.44', 'incentives' => '409152.9', 'lat' => 33.75134, 'lng' => -118.37179},
90804 => {'zipcode' => 90804, 'name' => 'Long Beach', 'number of installations' => '4', 'size' => '14.226', 'cost' => '134810.86', 'incentives' => '29913', 'lat' => 33.78247, 'lng' => -118.14447},
90813 => {'zipcode' => 90813, 'name' => 'Long Beach', 'number of installations' => '1', 'size' => '2.765', 'cost' => '21507.36', 'incentives' => '6879', 'lat' => 33.78234, 'lng' => -118.19618},
90731 => {'zipcode' => 90731, 'name' => 'San Pedro (City of LA)/Terminal Island (City of LA)', 'number of installations' => '26', 'size' => '60.5', 'cost' => '0', 'incentives' => '0', 'lat' => 33.72733, 'lng' => -118.28005},
90802 => {'zipcode' => 90802, 'name' => 'Long Beach', 'number of installations' => '1', 'size' => '5.299', 'cost' => '45376.32', 'incentives' => '12483', 'lat' => 33.76684, 'lng' => -118.18715},
90803 => {'zipcode' => 90803, 'name' => 'Long Beach', 'number of installations' => '20', 'size' => '75.955', 'cost' => '732612.5', 'incentives' => '174457.03', 'lat' => 33.7614, 'lng' => -118.13262},
90814 => {'zipcode' => 90814, 'name' => 'Long Beach', 'number of installations' => '13', 'size' => '42.395', 'cost' => '394337.86', 'incentives' => '103108.74', 'lat' => 33.77152, 'lng' => -118.14241},
90732 => {'zipcode' => 90732, 'name' => 'Rancho Palos Verdes', 'number of installations' => '6', 'size' => '17.1', 'cost' => '0', 'incentives' => '0', 'lat' => 33.72662, 'lng' => -118.32058},
90704 => {'zipcode' => 90704, 'name' => 'Avalon', 'number of installations' => '10', 'size' => '27.967', 'cost' => '248837.5', 'incentives' => '63100', 'lat' => 33.13635, 'lng' => -118.45573},
91310 => {'zipcode' => 91310, 'name' => 'Castaic', 'number of installations' => '5', 'size' => '21.926', 'cost' => '232567', 'incentives' => '50416.38', 'lat' => 34.49464, 'lng' => -118.61446},
91327 => {'zipcode' => 91327, 'name' => 'Northridge', 'number of installations' => '1', 'size' => '2.6', 'cost' => '0', 'incentives' => '0', 'lat' => 34.27302, 'lng' => -118.55143},
91043 => {'zipcode' => 91043, 'name' => 'Tujunga (City of LA)', 'number of installations' => '1', 'size' => '3', 'cost' => '0', 'incentives' => '0', 'lat' => 34.25201, 'lng' => -118.29279},
90801 => {'zipcode' => 90801, 'name' => 'Long Beach', 'number of installations' => '1', 'size' => '2.336', 'cost' => '20300', 'incentives' => '4939', 'lat' => 33.77378, 'lng' => -118.18631},
90711 => {'zipcode' => 90711, 'name' => 'Lakewood', 'number of installations' => '1', 'size' => '3.578', 'cost' => '32804', 'incentives' => '10916', 'lat' => 33.84894, 'lng' => -118.14677},
90406 => {'zipcode' => 90406, 'name' => 'Santa Monica', 'number of installations' => '1', 'size' => '3.579', 'cost' => '39244', 'incentives' => '8892', 'lat' => 34.01817, 'lng' => -118.4972},
90213 => {'zipcode' => 90213, 'name' => 'Beverly Hills', 'number of installations' => '1', 'size' => '8.893', 'cost' => '81802', 'incentives' => '21388', 'lat' => 34.05481, 'lng' => -118.40416},
90209 => {'zipcode' => 90209, 'name' => 'Beverly Hills', 'number of installations' => '2', 'size' => '20.172', 'cost' => '203761.78', 'incentives' => '48214', 'lat' => 34.072, 'lng' => -118.39142},
90311 => {'zipcode' => 90311, 'name' => 'Inglewood', 'number of installations' => '1', 'size' => '106.5', 'cost' => '0', 'incentives' => '0', 'lat' => 33.95731, 'lng' => -118.35838},
91769 => {'zipcode' => 91769, 'name' => 'Pomona', 'number of installations' => '1', 'size' => '6.269', 'cost' => '56815', 'incentives' => '14922.07', 'lat' => 34.06136, 'lng' => -117.75682},
90086 => {'zipcode' => 90086, 'name' => 'Los Angeles', 'number of installations' => '1', 'size' => '2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.06636, 'lng' => -118.23972},
90060 => {'zipcode' => 90060, 'name' => 'Los Angeles', 'number of installations' => '1', 'size' => '3.8', 'cost' => '0', 'incentives' => '0', 'lat' => 33.99574, 'lng' => -118.42202},
90055 => {'zipcode' => 90055, 'name' => 'Los Angeles', 'number of installations' => '1', 'size' => '3.2', 'cost' => '0', 'incentives' => '0', 'lat' => 34.04754, 'lng' => -118.25656},
91371 => {'zipcode' => 91371, 'name' => 'Woodland Hills', 'number of installations' => '1', 'size' => '149.9', 'cost' => '0', 'incentives' => '0', 'lat' => 34.18114, 'lng' => -118.57061},
0 => {'zipcode' => 0, 'name' => 'Pasadena (all)', 'number of installations' => '92', 'size' => '560.5', 'cost' => '0', 'incentives' => '0', 'lat' => 34.14777, 'lng' => -118.14355}
}
pasadena_zips = [91101,91102,91103,91104,91105,91106,91107,91109,91110,91114,91115,91116,91117,91121,91123,91124,91125,91126,91129,91131,91175,91182,91184,91185,91186,91187,91188,91189,91191]
pasadena_shapes = []
%w{ rubygems geo_ruby }.each {|gem| require gem}
kml = %Q{<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>LA County Solar Arrays</name>
<open>1</open>
}
include GeoRuby::Shp4r
ShpFile.open("/Users/ajturner/Downloads/zt06_d00_shp/zt06_d00") do |shp|
shp.each do |shape|
pasadena_shapes << shape.geometry if pasadena_zips.include?(shape.data["ZCTA"].to_i)
if zipMarkers.keys.include?(shape.data["ZCTA"].to_i)
item = zipMarkers[shape.data["ZCTA"].to_i]
kml << %Q{<Placemark id="#{item["zipcode"]}">
<name>#{(item["name"] || "").gsub(/&/,'&amp;')}</name>
<description><![CDATA[#{(item["name"] || "").gsub(/&/,'&amp;')}]]></description>
#{shape.geometry.as_kml}
<ExtendedData>}
# 90806 => {'zipcode' => 90806, 'name' => 'Long Beach', 'number of installations' => '3', 'size' => '10.717', 'cost' => '119624.29', 'incentives' => '23746.09', 'lat' => 33.81237, 'lng' => -118.17413},
["zipcode", "name", "number of installations", "size", "cost", "incentives"].each do |attribute|
kml << %Q{
<Data name="#{attribute}">
<value>#{item[attribute]}</value>
</Data>}
end
kml << %Q{</ExtendedData>
<address>#{item["name"]}</address>
</Placemark>
}
end
end
end
item = zipMarkers[0] # all of Pasadena
kml << %Q{<Placemark id="#{item["zipcode"]}">
<name>#{(item["name"] || "").gsub(/&/,'&amp;')}</name>
<description><![CDATA[#{(item["name"] || "").gsub(/&/,'&amp;')}]]></description>
#{GeoRuby::SimpleFeatures::MultiPolygon.from_polygons(pasadena_shapes).as_kml}
<ExtendedData>}
# 90806 => {'zipcode' => 90806, 'name' => 'Long Beach', 'number of installations' => '3', 'size' => '10.717', 'cost' => '119624.29', 'incentives' => '23746.09', 'lat' => 33.81237, 'lng' => -118.17413},
["zipcode", "name", "number of installations", "size", "cost", "incentives"].each do |attribute|
kml << %Q{
<Data name="#{attribute}">
<value>#{item[attribute]}</value>
</Data>}
end
kml << %Q{</ExtendedData>
<address>#{item["name"]}</address>
</Placemark>
}
kml << %Q{</Document>
</kml>}
File.open("lacountysolar.kml","w") {|f| f << kml}
# Individual
# /**
# id => unique id of the install
# typ => type of installation
# 0 => Government
# 1 => Residential
# 2 => School/Library
# 3 => Non-profit
# 4 => Commercial
# cs => case study
# name => name of the location
# s => size
# out; electricity generated
# sav => savings
# inst => installer name
# url => installer url
# q => quote
# e => emissions
# lat => latitude
# lng => longitude
# */
indivInstalls= [
{'id' => 1, 'lng' => -118.257581, 'lat' => 34.23347, 'typ' => 1, 'case study' => '0', 'name' => '', 'size' => '0', 'electricity generated' => '', 'savings' => '', 'emissions' => '', 'installer name' => 'Phat Energy', 'url' => 'http://www.phatenergy.com', 'quote' => ''},
{'id' => 2, 'lng' => -118.233537, 'lat' => 34.205743, 'typ' => 1, 'case study' => '0', 'name' => '', 'size' => '1.35', 'electricity generated' => '2,012', 'savings' => '302', 'emissions' => '1,456', 'installer name' => 'Phat Energy', 'url' => 'http://www.phatenergy.com', 'quote' => 'My concern about the climate change and the ability to save money at the same time meant that as soon as I could afford to put in solar I did'},
{'id' => 3, 'lng' => -118.182305, 'lat' => 34.208123, 'typ' => 1, 'case study' => '0', 'name' => '', 'size' => '3.51', 'electricity generated' => '5,230', 'savings' => '784', 'emissions' => '3,786', 'installer name' => 'Phat Energy', 'url' => 'http://www.phatenergy.com', 'quote' => 'I believe in solar so much that I got a job at a local solar company. Global warming, national security, and sky rocketing future energy costs convinced me solar was the way to go. The utility rebate and federal tax credit made it a no brainer'},
{'id' => 4, 'lng' => -118.48989, 'lat' => 34.011523, 'typ' => 0, 'case study' => '0', 'name' => 'Civic Center Parking Structure', 'size' => '181', 'electricity generated' => '269,690', 'savings' => '40,454', 'emissions' => '195,256', 'installer name' => 'R.W.E Schott', 'url' => '', 'quote' => ''},
{'id' => 5, 'lng' => -118.448345, 'lat' => 34.014624, 'typ' => 0, 'case study' => '0', 'name' => '', 'size' => '52', 'electricity generated' => '77,480', 'savings' => '11,622', 'emissions' => '56,096', 'installer name' => 'Kyocera', 'url' => '', 'quote' => ''},
{'id' => 6, 'lng' => -118.497582, 'lat' => 34.008498, 'typ' => 0, 'case study' => '0', 'name' => 'Solar Ferris Wheel - Pacific Ocean Park', 'size' => '30', 'electricity generated' => '44,700', 'savings' => '6,705', 'emissions' => '32,363', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 7, 'lng' => -118.489826, 'lat' => 34.008874, 'typ' => 0, 'case study' => '0', 'name' => 'SolarPort', 'size' => '35', 'electricity generated' => '52,150', 'savings' => '7,823', 'emissions' => '37,757', 'installer name' => 'Unisolar', 'url' => '', 'quote' => ''},
{'id' => 8, 'lng' => -118.493345, 'lat' => 34.018076, 'typ' => 2, 'case study' => '0', 'name' => 'Santa Monica Public Library', 'size' => '10', 'electricity generated' => '14,900', 'savings' => '2,235', 'emissions' => '10,788', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 9, 'lng' => -118.475025, 'lat' => 34.024436, 'typ' => 3, 'case study' => '0', 'name' => 'Olympic Studios', 'size' => '30', 'electricity generated' => '44,700', 'savings' => '6,705', 'emissions' => '32,363', 'installer name' => 'Sharp', 'url' => '', 'quote' => ''},
{'id' => 10, 'lng' => -118.490603, 'lat' => 34.014444, 'typ' => 3, 'case study' => '0', 'name' => 'CCSM Colorado Court', 'size' => '28', 'electricity generated' => '41,720', 'savings' => '6,258', 'emissions' => '30,205', 'installer name' => 'BP Solar', 'url' => '', 'quote' => ''},
{'id' => 11, 'lng' => -118.493592, 'lat' => 34.023315, 'typ' => 4, 'case study' => '0', 'name' => 'The Phelps Group', 'size' => '50', 'electricity generated' => '74,500', 'savings' => '11,175', 'emissions' => '53,938', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 12, 'lng' => -118.498505, 'lat' => 34.015671, 'typ' => 4, 'case study' => '0', 'name' => 'NRDC Building', 'size' => '7.5', 'electricity generated' => '11,175', 'savings' => '1,676', 'emissions' => '8,091', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 13, 'lng' => -118.476979, 'lat' => 34.02407, 'typ' => 4, 'case study' => '0', 'name' => 'Michael Lee, Inc.', 'size' => '9', 'electricity generated' => '13,410', 'savings' => '2,012', 'emissions' => '9,709', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 14, 'lng' => -118.474963, 'lat' => 34.023901, 'typ' => 4, 'case study' => '0', 'name' => 'Studio of Environmental Architecture', 'size' => '13.5', 'electricity generated' => '20,115', 'savings' => '3,017', 'emissions' => '14,563', 'installer name' => '', 'url' => '', 'quote' => ''},
{'id' => 15, 'lng' => -118.1224, 'lat' => 34.139459, 'typ' => 2, 'case study' => '1', 'name' => 'CalTech', 'size' => '199', 'electricity generated' => '296,510', 'savings' => '44,477', 'emissions' => '214,673', 'installer name' => '', 'url' => 'http://sustainability.caltech.edu/utilities/CaltechSolar', 'quote' => ''},
{'id' => 16, 'lng' => -118.33335, 'lat' => 34.159863, 'typ' => 1, 'case study' => '0', 'name' => '', 'size' => '2.8', 'electricity generated' => '4,172', 'savings' => '876', 'emissions' => '3,021', 'installer name' => 'Solar Electrical Systems', 'url' => 'http://www.solarelectricalsystems.com/', 'quote' => 'One reason that I made the investement in solar power is that my price for electricity won\'t go up for the next 25 years'}
]
kml = %Q{<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>LA County Solar Installations</name>
<open>1</open>
}
indivInstalls.each do |item|
kml << %Q{<Placemark id="#{item["zipcode"]}">
<name>#{(item["name"] || "").gsub(/&/,'&amp;')}</name>
<description><![CDATA[#{(item["name"] || "").gsub(/&/,'&amp;')}]]></description>
<Point>
<coordinates>#{item["lng"]},#{item["lat"]},0</coordinates>
</Point>
<ExtendedData>}
["id", "name", "installer name", "url", "quote", "save", 'emissions', 'electricity generated', 'savings','case study', 'size'].each do |attribute|
kml << %Q{
<Data name="#{attribute}">
<value>#{item[attribute].gsub(/&/,'&amp;')}</value>
</Data>}
end
kml << %Q{</ExtendedData>
<address>#{item["name"]}</address>
</Placemark>
}
end
kml << %Q{</Document>
</kml>}
File.open("lasolarinstallations.kml","w") {|f| f << kml}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment