In [63]:
import pandas as pd
from geopandas import GeoDataFrame
import geopandas as gpd
from shapely.geometry import Point,Polygon
from geopy.geocoders import Nominatim
from sodapy import Socrata
import json
import datetime
import os
from ipyleaflet import (
    Map,
    Marker,
    TileLayer, ImageOverlay,
    Polyline, Polygon, Rectangle, Circle, CircleMarker,
    GeoJSON,
    DrawControl
)
%reload_ext autoreload
%autoreload 2

# load api_keys
with open("api_keys_kat.json") as f:
    keys = json.load(f)

with open("apikeys.json") as f:
    planet_keys = json.load(f)

PLANET_API_KEY = planet_keys["PLANET_API_KEY"]

In [64]:
LAX = keys["LAX"]

# Unauthenticated client only works with public data sets. Note 'None'
# in place of application token, and no username or password:
client = Socrata(LAX["url"], 
                 LAX["key"],
                 username=LAX["username"], 
                 password=LAX["password"])

In [65]:
start_date = datetime.datetime(2017,1,1)
end_date = datetime.datetime(2017,12,31)
cost = 1000000
query = "SELECT * WHERE issue_date > '{0}' AND issue_date < '{1}' AND valuation > {2}"
query = query.format(start_date.strftime("%Y-%m-%d"),end_date.strftime("%Y-%m-%d"),cost)
print(query)
results = client.get(LAX["resource"],query=query )
results_df = pd.DataFrame.from_records(results)


SELECT * WHERE issue_date > '2017-01-01' AND issue_date < '2017-12-31' AND valuation > 1000000

In [66]:
print(len(results_df))
print(results_df.keys())
print(results_df["location_1"])
# DROP ROWS THAT DON'T HAVE LAT OR LONG DATA
results_df = results_df.dropna(subset=["location_1"])
results_df


854
Index([u'address_end', u'address_fraction_end', u'address_fraction_start',
       u'address_start', u'applicant_address_1', u'applicant_address_2',
       u'applicant_address_3', u'applicant_business_name',
       u'applicant_first_name', u'applicant_last_name',
       u'applicant_relationship', u'assessor_book', u'assessor_page',
       u'assessor_parcel', u'block', u'census_tract', u'contractor_address',
       u'contractor_city', u'contractor_state', u'contractors_business_name',
       u'council_district', u'floor_area_l_a_building_code_definition',
       u'floor_area_l_a_zoning_code_definition', u'initiating_office',
       u'issue_date', u'latest_status', u'license', u'license_expiration_date',
       u'license_type', u'location_1', u'lot', u'occupancy',
       u'of_residential_dwelling_units', u'of_stories', u'pcis_permit',
       u'permit_category', u'permit_sub_type', u'permit_type',
       u'principal_first_name', u'principal_last_name',
       u'principal_middle_name', u'project_number', u'reference_old_permit',
       u'status_date', u'street_direction', u'street_name', u'street_suffix',
       u'suffix_direction', u'tract', u'unit_range_end', u'unit_range_start',
       u'valuation', u'work_description', u'zip_code', u'zone'],
      dtype='object')
0                                                    NaN
1      {u'type': u'Point', u'coordinates': [-118.3998...
2      {u'type': u'Point', u'coordinates': [-118.4126...
3      {u'type': u'Point', u'coordinates': [-118.2141...
4      {u'type': u'Point', u'coordinates': [-118.3723...
5      {u'type': u'Point', u'coordinates': [-118.4592...
6      {u'type': u'Point', u'coordinates': [-118.3034...
7      {u'type': u'Point', u'coordinates': [-118.3531...
8      {u'type': u'Point', u'coordinates': [-118.3738...
9      {u'type': u'Point', u'coordinates': [-118.3719...
10                                                   NaN
11                                                   NaN
12     {u'type': u'Point', u'coordinates': [-118.3390...
13                                                   NaN
14     {u'type': u'Point', u'coordinates': [-118.3575...
15     {u'type': u'Point', u'coordinates': [-118.4485...
16     {u'type': u'Point', u'coordinates': [-118.2549...
17     {u'type': u'Point', u'coordinates': [-118.3922...
18     {u'type': u'Point', u'coordinates': [-118.2763...
19     {u'type': u'Point', u'coordinates': [-118.3738...
20     {u'type': u'Point', u'coordinates': [-118.5041...
21     {u'type': u'Point', u'coordinates': [-118.4183...
22     {u'type': u'Point', u'coordinates': [-118.4882...
23     {u'type': u'Point', u'coordinates': [-118.5844...
24     {u'type': u'Point', u'coordinates': [-118.3388...
25     {u'type': u'Point', u'coordinates': [-118.354,...
26     {u'type': u'Point', u'coordinates': [-118.2596...
27     {u'type': u'Point', u'coordinates': [-118.4195...
28     {u'type': u'Point', u'coordinates': [-118.2405...
29     {u'type': u'Point', u'coordinates': [-118.3189...
                             ...                        
824    {u'type': u'Point', u'coordinates': [-118.2701...
825    {u'type': u'Point', u'coordinates': [-118.4602...
826    {u'type': u'Point', u'coordinates': [-118.2649...
827    {u'type': u'Point', u'coordinates': [-118.4808...
828    {u'type': u'Point', u'coordinates': [-118.2893...
829    {u'type': u'Point', u'coordinates': [-118.4106...
830                                                  NaN
831    {u'type': u'Point', u'coordinates': [-118.3679...
832    {u'type': u'Point', u'coordinates': [-118.3758...
833    {u'type': u'Point', u'coordinates': [-118.3864...
834    {u'type': u'Point', u'coordinates': [-118.5552...
835    {u'type': u'Point', u'coordinates': [-118.2829...
836    {u'type': u'Point', u'coordinates': [-118.4848...
837    {u'type': u'Point', u'coordinates': [-118.2863...
838    {u'type': u'Point', u'coordinates': [-118.5552...
839    {u'type': u'Point', u'coordinates': [-118.2538...
840    {u'type': u'Point', u'coordinates': [-118.2829...
841    {u'type': u'Point', u'coordinates': [-118.2418...
842                                                  NaN
843    {u'type': u'Point', u'coordinates': [-118.2585...
844    {u'type': u'Point', u'coordinates': [-118.4871...
845    {u'type': u'Point', u'coordinates': [-118.2705...
846    {u'type': u'Point', u'coordinates': [-118.3065...
847                                                  NaN
848                                                  NaN
849    {u'type': u'Point', u'coordinates': [-118.4169...
850    {u'type': u'Point', u'coordinates': [-118.5552...
851    {u'type': u'Point', u'coordinates': [-118.4132...
852    {u'type': u'Point', u'coordinates': [-118.2523...
853    {u'type': u'Point', u'coordinates': [-118.3540...
Name: location_1, Length: 854, dtype: object
Out[66]:
address_end address_fraction_end address_fraction_start address_start applicant_address_1 applicant_address_2 applicant_address_3 applicant_business_name applicant_first_name applicant_last_name ... street_name street_suffix suffix_direction tract unit_range_end unit_range_start valuation work_description zip_code zone
1 700 NaN NaN 700 1715 W. 135TH NaN GARDDENA, CA NaN JOSE GUDIEL ... WORLD WAY NaN RANCHO SAUSAL REDONDO NaN NaN 1379815 SUPPLEMENTAL PERMIT TO 15016-10000-08908. DE... 90045 LAX
2 12828 NaN NaN 12828 23660 STRATHERN NaN WEST HILLS,CA NaN DOMINIC HONG ... RIVERSIDE DR NaN TR 2590 NaN NaN 10500000 (N) HOTEL W/ SUBTERANEAN GARAGE BELOW 91607 (T)(Q)RAS4-1VL-RIO
3 1600 NaN NaN 1600 NaN NaN NaN NaN OCCIDENTAL NaN ... CAMPUS ROAD NaN TR 607 NaN NaN 2000000 FOUNDATION EARLY START PERMIT ONLY. THIS APPLI... 90032 R1-1
4 11050 NaN NaN 11050 1453 CLUB VIEW DR NaN LA,CA NaN FRANK AFARI ... HARTSOOK ST NaN HARTSOOK TRACT 48 1 6008535 NEW 3-STORY TYPE V-A, 48-UNIT APARTMENT BUILDI... 91601 R4-1VL
5 11000 NaN NaN 11000 1636 WESTWOOD BL #201 L.A., CA NaN JASON MASSABAND ... CHALON ROAD NaN BEL-AIR NaN NaN 1600000 New irregular shape 2- story over 1- level of ... 90077 RE20-1-H
6 1522 NaN NaN 1522 3456 GOLDEN POPPY WAY NaN YORBA LINDA, CA NaN SHEHZAD KHALIQ ... LOMITA BLVD NaN TR 1589 NaN 1-14 2000000 NEW 14 UNIT APARTMENT BUILDING 90710 [Q]R3-1VL
7 5135 NaN NaN 5135 3834 WILLAT AVE NaN CULVER CITY, CA NaN STD LEMONS ... ADAMS BLVD NaN TR 1566 10 1 1925000 PROPOSED 3-STORY, 10-UNIT MIXED USE BUILDING W... 90016 C2-1
8 5101 NaN NaN 5101 232 N LAKE AVE STE 217 PASADENA, CA JAYCOCAL ENGINEERING MARIA CHEN ... LANKERSHIM BLVD NaN TR 2170 NaN NaN 40000000 INSTALLATION OF NEW PLUMBING SYSTEM FOR (2) MI... 91601 C4-1-CA
9 11051 NaN NaN 11051 NaN NaN NaN NaN MARCUS PARIS ... PENDLETON ST NaN LOS ANGELES LAND AND WATER CO'S SUBDIVISION OF... NaN NaN 1200000 TI to existing Warehouse to build out accessor... 91352 [Q]M2-1-G-CUGU
12 6801 NaN NaN 6801 NaN NaN NaN NaN ALEX NaN ... HOLLYWOOD BLVD NaN TR 52496 NaN C5-525 1800000 TI at restaurant on the 5th floor. ENCLOS... 90028 C4-2D-SN
14 5263 NaN NaN 5263 4700 WILSHIRE BL. NaN LA CA NaN BRAM JANANTS ... ADAMS BLVD NaN TR 1566 NaN NaN 3237681 NEW 3 STORY MIXED USE, 14 UNIT APARTEMENT B... 90016 [Q]C2-1VL
15 11916 NaN NaN 11916 NaN NaN NaN BMA KIRA MILLER ... PICO BLVD NaN TR 7861 100 1 16188702 PROPOSED 5-STORY, 100 UNIT MIXED USE (97 UNITS... 90064 [Q]C2-1VL-CDO
16 410 NaN NaN 410 8970 WASHINGTON BL. NaN CULVER CITY, CA NaN JEFFREY WARREN ... 7TH ST NaN MUELLER SUBDIVISION OF THE NORTH 1/2 OF BLOCK ... NaN NaN 3300000 SEISMIC UPGRADE OF 3 STORY CAST-IN-PLACE CONCR... 90014 C5-4D
17 9005 NaN NaN 9005 401 S. WESTGATE AVE. NaN LOS ANGELES, CA. NaN JAVAD NIA ... EXPOSITION BLVD NaN TR 625 NaN NaN 1363658.4 New 4-story office building with parking on th... 90034 M1-1
18 2601 NaN NaN 2601 1330 OLYMPIC BL. NaN SANTA MONICA, CA NaN JOHN DODSON ... FIGUEROA ST NaN TR 10196 NaN 1st floor 1235000 Interior TI in existing ground floor office bu... 90007 P-1-O
19 5101 NaN NaN 5101 232 N LAKE AVE STE 217 PASADENA, CA JAYCOCAL ENGINEERING MARIA CHEN ... LANKERSHIM BLVD NaN TR 2170 NaN NaN 40000000 INSTALLATION OF NEW HVAC SYSTEM FOR (2) MIXED ... 91601 C4-1-CA
20 1555 NaN NaN 1555 NaN NaN NaN NaN DAMIAN LEMONS ... AMALFI DR NaN THE RIVIERA NaN NaN 1400000 new 2 story + basement s.f.r. 90272 RE15-1-H
21 11830 NaN NaN 11830 NaN NaN NaN NaN PETER WILSON ... COURTLEIGH DR NaN TR 1971 NaN NaN 5000000 new 29 unit apartment building 4 levels of res... 90066 R3-1
22 144 NaN NaN 144 NaN NaN NaN NaN JASON UNGAR ... BRISTOL AVE NaN BRENTWOOD PARK NaN NaN 1900000 new 2-story SFD with attached garage and basement 90049 RE20-1
23 20701 NaN NaN 20701 26901 CAMINO DE ESTRELLA #A CAPISTRANO BCH, CA NaN JAMES GOODMAN ... PLUMMER ST NaN TR 23435 NaN NaN 1615500 INSTALL 9 FIRE SPRINKLERS IN NEW 1-HR HALLWAY ... 91311 MR2-1
24 1233 NaN NaN 1233 833 S SPRING #208 LA, CA NaN KEVIN TSAI ... HIGHLAND AVE NaN TR 3569 NaN NaN 18953537 72 UNITS AFFORDABLE APARTMENTS OVER RETAIL AND... 90038 C2-1D-SN
25 10241 NaN NaN 10241 5320 YOLANDA AVE NaN TARZANA,CA NaN ANDREA SHAPIRO ... VALLEY SPRING LANE NaN LANKERSHIM RANCH LAND AND WATER CO. NaN NaN 1144000 (N) SFD W/ ATT GARAGE 91602 RE11-1-H-RIO
26 900 NaN NaN 900 515 S. FIGUEROA 1275 LA CA NaN JUSTIN MANALO ... WILSHIRE BLVD NaN TR 71141-01 NaN 11th floor 2000000 INTERIOR TI ON 11TH FLOOR INCLUDING NEW PARTI... 90017 C2-4D-SN
27 7157 NaN NaN 7157 765 THE CITY DRIVE NaN ORANGE, CA NaN MICHAEL STANEK ... WORLD WAY WEST RANCHO SAUSAL REDONDO NaN NaN 5241000 REPLACE 8" COMBINED DOMESTIC / FIRE SERVICE L... 90045 LAX
28 1318 NaN NaN 1318 8 MILLS PLACE NaN PASADENA, CA NaN SHAWNA UPP ... 7TH ST NaN P M 6524 NaN STE 260 1573000 TENANT IMPROVEMENT TO EXISTING OFFICE SPACE ON... 90021 M2-2D
29 1310 NaN NaN 1310 126 E OLIVE AVE 204 BURBANK, CA NaN SHAHIK BAGHDASIAN ... TAMARIND AVE NaN GRIDER AND HAMILTONS HOLLYWOOD TRACT NaN NaN 6300000 NEW 4 STORY TYPE V-A 32 UNIT APARTMENT BUILDI... 90028 [Q]R4-2
30 10250 NaN NaN 10250 8370 WILSHIRE NaN BEVERLY HILLS NaN JULIA AUST ... SANTA MONICA BLVD NaN P M 3784 NaN UNIT 2540 1428341 T.I. FOR EXISTING RETAIL STORE (UNIT #2540 ); ... 90067 C2-1L-O
31 1446 NaN NaN 1446 830 S. GLENDALE AVE NaN GLENDALE, CA URIU & ASSOCIATES NaN NaN ... DETROIT ST NaN TR 3238 1-60 1-60 12120505 PROPOSED 5 STORY, MIXED USE BUILDING CONSIST... 90046 R3-1
32 350 NaN NaN 350 588 S FREMONT AVE #803 NaN LA, CA NaN BRUCE MILLER & ASSOC ... GRAND AVE NaN TR 30780 2,4,5,6,7 LEVEL 6290625 TENANT IMPROVEMENT OF 5 LEVELS. EACH LEVEL IS... 90071 C2-4D
33 4824 NaN NaN 4824 11315 WASHINGTON PLACE NaN LOS ANGELES, CA NaN DAVID FRUCHTMAN ... SUNNYSLOPE AVE NaN TR 1000 NaN 4D 7883566 NEW 26 UNIT, 3-STORY APARTMENT BUILDING. PLAN ... 91423 [Q]RD1.5-1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
820 13741 NaN NaN 13741 11558 KLING ST. NaN N. HOLLYWOOD CA NaN FRED HOFFMAN ... MULHOLLAND DR NaN TR 1000 NaN NaN 1500000 NEW 2-STORY SFD WITH ATT. GARAGE & BASEMENT. ... 90210 RE40-1-H
821 16144 NaN NaN 16144 15230 BURBANK BLVD #106 SHERMAN OAKS,CA NaN CAMILLA OLIVEISE ... HIGH VALLEY PL NaN TR 13400 NaN NaN 1437675 97'-0" x 107'-0" TWO STORY SINGLE FAMILY DWELL... 91436 RE15-1-H
822 241 NaN NaN 241 NaN NaN NaN NaN GEORGE SEPANOSSIAN ... LAKE ST NaN HARBERT AND BUTTERWORTH'S CUMBERLAND TRACT NaN NaN 5000000 NEW HVAC SYSTEM FOR APARTMENT BUILDING. INCLU... 90026 R4-1
823 4522 NaN NaN 4522 3200 PEAK ROAD NaN EL MONTE, CA NaN MATTHEW FOSS ... LEXINGTON AVE NaN CITY BOUNDARY TRACT NaN NaN 1500000 NEW 9-UNIT APARTMENT BUILDING 2 STORY OVER BAS... 90029 RD1.5-1XL
824 241 NaN NaN 241 3699 WILSHIRE BLVD #660 LOS ANGELES, CA JS ENGINEERING CHONG LEE ... LAKE ST NaN HARBERT AND BUTTERWORTH'S CUMBERLAND TRACT NaN NaN 5000000 NEW POTABLE WATER AND WASTE/VENT SYSTEM FOR FO... 90026 R4-1
825 11100 NaN NaN 11100 NaN NaN NaN MSH DESIGN INC MEHRAN SHAHVERDI ... CHALON ROAD NaN SANTA MONICA LAND AND WATER CO. TRACT NaN NaN 5600000 (N) 2 story SFD with basement and attached gar... 90049 RE20-1-H
826 6130 NaN NaN 6130 18201 VON KARMAN AVE 120 IRVINE, CA SHLEMMER ALGAZE ASSOCIATES MICHAEL SYNDER ... AVALON BLVD NaN NaN NaN BLDG.A 1500000 <URM>CHANGE OF USE FROM "STORAGE" TO "FOOD MAN... 90003 M2-1
827 15970 NaN NaN 15970 5320 YOLANDA AVE NaN TARZANA, CA NaN ANDREA SHAPIRO ... ROYAL OAK ROAD NaN TR 13400 NaN NaN 1180000 (N) 2-STORY SFD W/ ATTACHED GARAGE (NFPA-13D F... 91436 RE15-1-H
828 1342 NaN NaN 1314 1623 THOMPSON AVE NaN GLENDALE, CA G&M ENGINEERING GEORGE MARKOV ... ADAMS BLVD NaN ELLENDALE PLACE NaN NaN 1500000 INSTALLATION OF ONE DUPLEX SUMP PUMP SYSTEM FO... 90007 R4-1L-O
829 3550 NaN NaN 3550 1544 20TH ST. NaN SANTA MONICA, CA NaN SANDRA LOZANO ... OVERLAND AVE NaN CURTIS RESUB. OF BLK. P NaN NaN 9332001 New 5-story 60-unit apartment (6-unit very low... 90034 C2-1
831 6399 NaN NaN 6399 3334 EAST COAST HWY #410 NaN CORONA DEL MAR, CA NaN HANNAH GREENBERG ... WILSHIRE BLVD NaN TR 7555 NaN NaN 12000000 NON-DUCTILE SEISMIC RETROFIT PER CHAPTER 95. C... 90048 [Q]C4-2D-O
832 8517 NaN NaN 8517 241 SOUTH FIGUEROA STREET 370 LOS ANGELES, CA KIMBERLINA WHETTAM & ASSOCIATE KARA NaN ... FRANKLIN AVE NaN TR 8500 NaN NaN 1200000 SINGLE FAMILY DWELLING. INSTALL SUMP PUMP AND ... 90069 R1-1
833 1561 NaN NaN 1561 11150 W OLYMPIC BLVD#700 NaN NaN NaN CHRISTINE MAALOUF ... BLUE JAY WAY NaN TR 19229 NaN NaN 1560000 NEW 1-STORY S.F.D. WITH BASEMENT. 90069 RE15-1-H
834 17320 NaN NaN 17320 8447 WILSHIRE BL 400 BEVERLY HILLS, CA ETCO HOMES E NaN ... TRAMONTO DR NaN TR 29827-C NaN 1-3 2462574 BUILDING 9 (PLAN C) 3 UNITS 4 STORY TYPE IIA A... 90272 RD2-1
835 12919 NaN NaN 12919 717 N HIGHLAND AVE NaN LOS ANGELES, CA NaN MATT EOKBERG ... FIGUEROA ST NaN TR 45085 NaN NaN 2757900 CONVERT WAREHOUSE TO OFFICE AND MANUFACTURING,... 90248 M2-1VL-O
836 4467 NaN NaN 4467 13547 VENTURA BLVD 283 SHERMAN OAKS, CA NaN CHARLENE MARTIN ... WOODLEY AVE NaN P M 2458 NaN NaN 1650000 New 2- story irregular shape single family dwe... 91436 RE15-1-H
837 3976 NaN NaN 3966 1619 W TEMPLE ST NaN LOS ANGELES, CA NaN KRYSTLE REYES ... MELROSE AVE NaN TR 525 NaN NaN 5794555 24 UNIT MIXED USED RESIDENTIAL BUILDING. TWO L... 90029 C2-1
838 17314 NaN NaN 17314 8447 WILSHIRE BLVD #400 NaN BEVERLY HILLS, CA NaN ETCO HOMES ... TRAMONTO DR NaN TR 29827-C NaN 1-2 1296796 BUILDING 8 (PLAN B2) 2 UNITS AND 2 STORY TYP... 90272 RD2-1
839 601 NaN NaN 601 639 N LARCHMONT BLVD NaN LA, CA NaN ANDY LANTZ ... 5TH ST NaN NORMAL TRACT NaN FLR 4&11 1750000 REMOVAL FIVE EXISTING GREENHOUSE ENCLOSURES ON... 90071 C2-4D
840 3939 NaN NaN 3939 NaN NaN NaN NaN MARK JOSTEN ... FIGUEROA ST NaN TR 4719 NaN NaN 16000000 NEW TWO STORIES ANCILLARY BUILDING WITH ROOF D... 90037 OS-1XL
841 118 NaN NaN 118 9560 WILSHIRE BLVD. NaN BEVERLY HILLS, CA NaN MATT HANSON ... ASTRONAUT ELLISON S ONIZUKA ST NaN TR 1666 NaN NaN 2000000 PROPOSE 471'-0" LONG WITH MAX. 33'-0" HEIGHT T... 90012 [Q]C2-4D-CDO
843 2600 NaN NaN 2600 11878 LA GRANGE AVE NaN LOS ANGELES, CA GMPA ARCHITECTS INC GMPA ARCHITECTS INC ... RIVERSIDE DR NaN IVANHOE 120 1 2515428 Temporary shoring (piles only) for new 4-story... 90039 RD2-1VL-RIO
844 601 NaN NaN 601 21777 VENTURA BLVD 234 WOODLAND HILLS NaN RJ TORBATI ... HANLEY WAY NaN TR 13362 NaN NaN 1700000 new 2 story + basement Single Family dwelling 90049 RE15-1-H
845 4501 NaN NaN 4501 650 CALIFORNIA ST 8TH FLR LOS ANGELES, CA NaN FLAD& ASSOC ... COLORADO BLVD NaN P M 2631 NaN 5th FL 1329570 CHANGE OF USE FROM OFFICE TO CONTROL TEST LAB;... 90039 M3-1-RIO
846 1011 NaN NaN 1011 2932 WILSHIRE BLVD. # 210 SANTA MONICA, CA NaN DARYOUS SAFAI ... SERRANO AVE NaN PELLISSIER TRACT NaN NaN 15928730 PROPOSED 5-STORY, 104-UNIT APARTMENT WITH (9) ... 90006 C2-1
849 10100 NaN NaN 10100 9530 JEFFERSON BLVD NaN CULVER CITY, CA NaN BOB CULL ... SANTA MONICA BLVD NaN P M 3247 NaN 1500 1245240 TENANT IMPROVEMENT OF FULL FLOOR LEVEL-15 WITH... 90067 C2-2-O
850 17330 NaN NaN 17330 6087 TRIANGLE DRIVE NaN LOS ANGELES, CA THYSSEN KRUPP ELEVATOR MARICELA ESTRADA ... TRAMONTO DR NaN TR 29827-C NaN 1-8 14400204 INSTALL HYDRAULIC ELEVATORS. 90272 RD2-1
851 4513 NaN NaN 4505 578 WASHINGTON BLVD #941 NaN MARINA DEL REY, CA OWNER-BUILDER HUNTER KENIHAN ... SLAUSON AVE NaN TR 10200 NaN NaN 3900000 (N) 23 UNIT (21 MARKET RATE, 2 VLI AFFORDABLE)... 90230 R3-1
852 620 NaN NaN 620 8370 WILSHIRE BLVD SUITE 330 BEVERLY HILLS, CA NaN MARTHA DIAZ ... BROADWAY NaN NaN VICTOR DOL PROPERTY NaN NaN 3800000 Core and shell only. Structural upgrade to ex... 90014 [Q]C5-4D-CDO-SN
853 1333 NaN NaN 1333 1545 VICTORY BLVD. #102 GLENDALE, CA NaN MOHEB GORGY ... SIERRA BONITA AVE NaN TR 461 NaN NaN 2400000 NEW 4 STORY TYPE V-A , 6-UNIT APARTMENT BUILD... 90046 R3-1

741 rows × 55 columns


In [69]:
def point_to_box(lon,lat,sz=[350,350]):
    # stack overflow copy pasta on lat/lon to meters.
    m_per_deg_lat = 111132.954 - 559.822 * math.cos( 2 * lat) + 1.175 * math.cos( 4 * lat)
    m_per_deg_lon = 111132.954 * math.cos( lat )
    m_per_deg_lat_1 = 1.0 / m_per_deg_lat
    m_per_deg_lon_1 = 1.0 / m_per_deg_lon
    dx = (sz[0]/2.0)*m_per_deg_lon_1
    dy = (sz[1]/2.0)*m_per_deg_lat_1
    geom = {"geometry": {
            "type": "Polygon",
            "coordinates": []  }}   
    dummy = [[-1.0,-1.0],[-1.0,1.0],[1.0,1.0],[1.0,-1.0],[-1.0,-1.0]]
    corners = [[(d[0]*dx)+lon,(d[1]*dy)+lat] for d in dummy]
    geom["geometry"]["coordinates"].append(corners)
    return geom
  
polys = []
shapes = [] 
print 
for point in results_df["location_1"].tolist():
    p = point["coordinates"]
    box = point_to_box(p[0],p[1])
    polys.append(box)
    s = Polygon(shell=box["geometry"]["coordinates"][0])    
    shapes.append(s)
results_df.insert(loc=0, column='AOI', value=polys)
results_df.insert(loc=0, column='shapes', value=polys)

results_df.head()
len(results_df)



---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-69-10afa9a4d8f4> in <module>()
     25     s = Polygon(shell=box["geometry"]["coordinates"][0])
     26     shapes.append(s)
---> 27 results_df.insert(loc=0, column='AOI', value=polys)
     28 results_df.insert(loc=0, column='shapes', value=polys)
     29 

/usr/local/lib/python2.7/dist-packages/pandas/core/frame.pyc in insert(self, loc, column, value, allow_duplicates)
   2519         value = self._sanitize_column(column, value, broadcast=False)
   2520         self._data.insert(loc, column, value,
-> 2521                           allow_duplicates=allow_duplicates)
   2522 
   2523     def assign(self, **kwargs):

/usr/local/lib/python2.7/dist-packages/pandas/core/internals.pyc in insert(self, loc, item, value, allow_duplicates)
   3808         if not allow_duplicates and item in self.items:
   3809             # Should this be a different kind of error??
-> 3810             raise ValueError('cannot insert {}, already exists'.format(item))
   3811 
   3812         if not isinstance(loc, int):

ValueError: cannot insert AOI, already exists

In [70]:
# Basemap Mosaic (v1 API)
mosaicsSeries = 'global_quarterly_2017q1_mosaic'
# Planet tile server base URL (Planet Explorer Mosaics Tiles)
mosaicsTilesURL_base = 'https://tiles0.planet.com/experimental/mosaics/planet-tiles/' + mosaicsSeries + '/gmap/{z}/{x}/{y}.png'
# Planet tile server url
mosaicsTilesURL = mosaicsTilesURL_base + '?api_key=' + PLANET_API_KEY
# Map Settings 
# Define colors
colors = {'blue': "#009da5"}
# Define initial map center lat/long
center = [34.0522, -118.2437]
# Define initial map zoom level
zoom = 9
# Set Map Tiles URL
planetMapTiles = TileLayer(url= mosaicsTilesURL)
# Create the map
m = Map(
    center=center, 
    zoom=zoom,
    default_tiles = planetMapTiles # Uncomment to use Planet.com basemap
)
# Define the draw tool type options
polygon = {'shapeOptions': {'color': colors['blue']}}
rectangle = {'shapeOptions': {'color': colors['blue']}} 

# Create the draw controls
# @see https://github.com/ellisonbg/ipyleaflet/blob/master/ipyleaflet/leaflet.py#L293
dc = DrawControl(
    polygon = polygon,
    rectangle = rectangle
)
# Initialize an action counter variable
actionCount = 0
AOIs = {}

# Register the draw controls handler
def handle_draw(self, action, geo_json):
    # Increment the action counter
    global actionCount
    actionCount += 1
    # Remove the `style` property from the GeoJSON
    geo_json['properties'] = {}
    # Convert geo_json output to a string and prettify (indent & replace ' with ")
    geojsonStr = json.dumps(geo_json, indent=2).replace("'", '"')
    AOIs[actionCount] = json.loads(geojsonStr)
    

    
    
# Attach the draw handler to the draw controls `on_draw` event
dc.on_draw(handle_draw)
m.add_control(dc)
m

for p in polys:
    feat = {'geometry':p["geometry"],"properties":{
            'style':{'color': "#00FF00",'fillColor': "#00FF00",'fillOpacity': 0.5,'weight': 1}},
            'type':u"Feature"}
    # convert to geojson
    gjson = GeoJSON(data=feat)
    # add it our map
    m.add_layer(gjson)
m



In [ ]: