In [16]:
import GetPropertiesAPI as GP
import BuildConsolidatedFeaturesFile as BCF
import importlib
importlib.reload(GP)
importlib.reload(BCF)
import csv
import json
import pandas as pd
import folium
from folium.plugins import MarkerCluster
from folium import plugins
import statistics as s

In [ ]:
BCF.buildExifFeatureFl("../data/all_imgs_expt2.csv","../data/imgs_exif_data_expt2.json")

In [3]:
with open("../data/imgs_exif_data_expt2.json","r") as inFl:
    imgProps = json.load(inFl)

In [4]:
gidExifDf = pd.DataFrame(imgProps).transpose()
gidExifDf.reset_index(inplace=True)
gidExifDf.columns = ['GID','datetime','lat','long']
gidExifDf[['GID']] = gidExifDf[['GID']].apply(pd.to_numeric)

In [5]:
with open("../FinalResults/rankListImages_expt2.csv","r") as inFl:
    gidResultsDf = pd.DataFrame.from_csv(inFl)
    
gidResultsDf.reset_index(inplace=True)

In [6]:
df = pd.merge(gidExifDf,gidResultsDf,left_on='GID',right_on='GID')

In [7]:
d = df.to_dict()['Proportion']
bin_shr = {}
for key in d.keys():
    if d[key] <= 20:
        bin_shr[key] = 0
    elif d[key] >= 80:
        bin_shr[key] = 1
        
D = df.to_dict()
D['bin_shr'] = bin_shr
df = pd.DataFrame.from_dict(D)

unshared = df[(df['bin_shr'] == 0)]
unshared = unshared[['lat','long']]

shared = df[(df['bin_shr'] == 1)]
shared = shared[['lat','long']]

In [35]:
shared_lats = list(shared['lat'])
shared_longs = list(shared['long'])

map_loc = folium.Map(location=[-1.369212, 36.848628],tiles='Stamen Terrain',zoom_start=12)

for i in range(0,len(shared_lats)):
    folium.Marker([shared_lats[i],shared_longs[i]],
              icon=folium.Icon(color='green',icon='info-sign')
              ).add_to(map_loc)

unshared_lats = list(unshared['lat'])
unshared_longs = list(unshared['long'])

for i in range(0,len(unshared_lats)):
    folium.Marker([unshared_lats[i],unshared_longs[i]],
              icon=folium.Icon(color='red',icon='info-sign')
              ).add_to(map_loc)
    

map_loc.save(outfile='../FinalResults/ClickLocations.html')

In [34]:
# Shared Data Clusters
cluster_map = folium.Map(location=[-1.369212, 36.848628],tiles='Stamen Terrain',zoom_start=11)
marker_cluster = folium.MarkerCluster("Shares").add_to(cluster_map)

for i in range(0,len(shared_lats)):
    folium.Marker([shared_lats[i],shared_longs[i]],
                  icon=folium.Icon(color='green',icon='info-sign'),
                  popup="Shared"
                 ).add_to(marker_cluster)
    
cluster_map.save(outfile='../FinalResults/ShareLocationClusters.html')

# Not Shared Data Clusters
cluster_map2 = folium.Map(location=[-1.369212, 36.848628],tiles='Stamen Terrain',zoom_start=11)
marker_cluster2 = folium.MarkerCluster("Not Shares").add_to(cluster_map2)
for i in range(0,len(unshared_lats)):
    folium.Marker([unshared_lats[i],unshared_longs[i]],
                 icon=folium.Icon(color='red',icon='info-sign'),
                  popup="Not Shared"
                 ).add_to(marker_cluster2)
    

cluster_map2.save(outfile='../FinalResults/NotShareLocationClusters.html')

In [8]:
a,b = list(shared.lat),list(shared.long)
c,d = list(unshared.lat),list(unshared.long)
locs_shared = [[a[i],b[i]] for i in range(len(a))]
locs_unshared = [[c[i],d[i]] for i in range(len(c))]

In [32]:
heatmap_map = folium.Map(location=[-1.369212, 36.848628],tiles='Stamen Terrain', zoom_start=12)
hm = plugins.HeatMap(locs_shared)
heatmap_map.add_children(hm)

heatmap_map.save("../FinalResults/heatMap_Shared.html")

In [33]:
heatmap_map = folium.Map(location=[-1.369212, 36.848628],tiles='Stamen Terrain', zoom_start=12)
hm = plugins.HeatMap(locs_unshared)
heatmap_map.add_children(hm)

heatmap_map.save("../FinalResults/heatMap_NotShared.html")

In [ ]: