In [1]:
from planet4 import io,plotting, clustering

In [2]:
db = io.DBManager()
db


Out[2]:
Database root: /Users/klay6683/Dropbox/data/planet4
Database name: 2016-05-29_planet_four_classifications_queryable_cleaned_seasons2and3.h5

In [3]:
image_ids = db.image_ids

In [5]:
chosen = np.random.choice(image_ids, 200)

In [4]:
from pathlib import Path

In [41]:
from ipyparallel import Client
c = Client()

lbview = c.load_balanced_view()

In [47]:
savepath = Path("/Volumes/Data/planet4/pipeline_p4_scope_checks/new_dynamic_20")
savepath.mkdir(exist_ok=True)
dbname = '/Users/klay6683/Dropbox/data/planet4/2016-05-29_planet_four_classifications_queryable_cleaned_seasons2and3.h5'

In [43]:
from planet4.io import get_image_ids_in_folder

In [10]:
(savepath.parent / 'plots').glob('*.pdf')


Out[10]:
<generator object Path.glob at 0x1630573b8>

In [44]:
image_ids = get_image_ids_in_folder(savepath.parent / 'plots', '.pdf')

In [49]:
def cluster_and_plot(image_id):
    from planet4 import plotting, clustering
    cm = clustering.ClusteringManager(dbname=dbname,
                                      scope='planet4',
                                      output_dir=savepath,
                                      min_samples_factor=0.15,
                                      do_dynamic_min_samples=True,
                                      quiet=False)
    cm.cluster_image_id(image_id)
    plotting.plot_image_id_pipeline(image_id, save=True, datapath=savepath,
                                    dbname=dbname, savetitle='new_dynamic_20',
                                    figtitle="min_samples: {}".format(cm.min_samples))
    return image_id

In [23]:
all_ids = list(chosen) + image_ids

In [21]:
len(image_ids)


Out[21]:
196

In [48]:
cluster_and_plot(image_ids[0])


Reduced data to 14 fan(e)s.
Reduced data to 29 blotch(e)s.
n_classifications: 27
min_samples: 4
Out[48]:
'APF00000nf'

In [50]:
results = lbview.map_async(cluster_and_plot, image_ids)

In [51]:
display_multi_progress(results, image_ids)

In [ ]:


In [ ]:
for res in res

In [55]:
np.array(l1+l2).mean()


Out[55]:
5.5

In [23]:
from nbtools import display_multi_progress

In [47]:
chosen[:5]


Out[47]:
array(['APF0000c45', 'APF00007tk', 'APF0000d0h', 'APF0000ccg', 'APF00009hs'], dtype=object)

In [49]:
np.argwhere(chosen == 'APF0000cag')


Out[49]:
array([[170]])

In [50]:
chosen


Out[50]:
array(['APF0000c45', 'APF00007tk', 'APF0000d0h', 'APF0000ccg',
       'APF00009hs', 'APF0000aeo', 'APF0000e62', 'APF0000squ',
       'APF00009hn', 'APF0000s2e', 'APF0000ecv', 'APF0000t36',
       'APF0000kr6', 'APF00006f6', 'APF0000ob5', 'APF00004tj',
       'APF00002ff', 'APF0000bvc', 'APF0000361', 'APF0000gkl',
       'APF0000prh', 'APF000096g', 'APF000055l', 'APF0000x2c',
       'APF0000qrf', 'APF0000rdg', 'APF0000jby', 'APF0000r7x',
       'APF0000pur', 'APF0000tu1', 'APF0000p14', 'APF0000pr4',
       'APF00001xr', 'APF0000nfw', 'APF00004fi', 'APF0000eal',
       'APF00005n4', 'APF0000scj', 'APF000011s', 'APF00004hy',
       'APF0000uyd', 'APF0000why', 'APF000067l', 'APF0000mzi',
       'APF0000k78', 'APF0000npu', 'APF00005yo', 'APF00006v9',
       'APF0000kqx', 'APF0000406', 'APF0000ixc', 'APF0000hvy',
       'APF0000p3o', 'APF00004pu', 'APF00001qd', 'APF0000c3r',
       'APF0000abe', 'APF00008gt', 'APF0000w2v', 'APF00003ue',
       'APF00009bt', 'APF0000n8m', 'APF00002hl', 'APF0000rtu',
       'APF00008t5', 'APF00006e4', 'APF00001l7', 'APF0000v4u',
       'APF0000rac', 'APF000061b', 'APF0000hoo', 'APF0000kwu',
       'APF00009bz', 'APF0000lic', 'APF0000euv', 'APF00001f5',
       'APF0000b4c', 'APF00009bv', 'APF0000meo', 'APF000059s',
       'APF0000258', 'APF0000hes', 'APF0000sio', 'APF0000bnn',
       'APF0000vip', 'APF0000qxp', 'APF0000v2f', 'APF0000gdl',
       'APF0000re4', 'APF0000h3k', 'APF0000eui', 'APF0000jv0',
       'APF00000mu', 'APF0000nye', 'APF0000qx3', 'APF0000ve6',
       'APF0000hsg', 'APF0000h1z', 'APF000093h', 'APF0000dj5',
       'APF0000jrd', 'APF000035a', 'APF0000e53', 'APF0000sqh',
       'APF00002xd', 'APF0000wg0', 'APF0000tem', 'APF0000hk3',
       'APF0000n9j', 'APF0000g74', 'APF00007we', 'APF00001pq',
       'APF0000su1', 'APF0000n2h', 'APF0000of3', 'APF00006ll',
       'APF0000n6y', 'APF00000a3', 'APF00003sk', 'APF00000ur',
       'APF00009jy', 'APF0000a7g', 'APF00002dt', 'APF00006w6',
       'APF0000r6c', 'APF0000jnw', 'APF00006qj', 'APF000089j',
       'APF0000481', 'APF0000t1e', 'APF0000krt', 'APF0000kx2',
       'APF0000aop', 'APF0000d36', 'APF0000nd0', 'APF0000c7y',
       'APF0000qrn', 'APF0000guq', 'APF0000h3a', 'APF0000kru',
       'APF0000by8', 'APF0000tc5', 'APF0000hzy', 'APF00009jd',
       'APF0000dch', 'APF0000mj2', 'APF0000gvo', 'APF00000xf',
       'APF0000q5i', 'APF0000hf2', 'APF0000lxd', 'APF0000ewo',
       'APF00008j2', 'APF0000k2f', 'APF0000n08', 'APF0000v4q',
       'APF0000ikg', 'APF0000g4r', 'APF0000pzm', 'APF0000h80',
       'APF0000he2', 'APF00005cq', 'APF0000nvc', 'APF0000cmf',
       'APF0000c4d', 'APF0000sr2', 'APF00000vz', 'APF0000t58',
       'APF000000b', 'APF0000haf', 'APF0000cag', 'APF0000kto',
       'APF0000jur', 'APF0000azd', 'APF0000s40', 'APF0000t3t',
       'APF0000on4', 'APF0000lu2', 'APF0000kst', 'APF00001sp',
       'APF0000tl1', 'APF00000o4', 'APF0000rfo', 'APF0000kdl',
       'APF00005bt', 'APF0000d0r', 'APF0000ugh', 'APF00007o1',
       'APF00004jn', 'APF0000odb', 'APF00007yg', 'APF00007uo',
       'APF00009vn', 'APF0000nfd', 'APF0000kdw', 'APF0000eeq',
       'APF00000uu', 'APF0000436', 'APF0000ds3', 'APF0000jk0'], dtype=object)

In [46]:
display_multi_progress(results, chosen)


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-46-a61374fec67d> in <module>()
----> 1 display_multi_progress(results, chosen)

/Users/klay6683/Dropbox/src/nbtools/nbtools/progressbars.py in display_multi_progress(results, objectlist, sleep)
     20     while not results.ready():
     21         prog.value = results.progress
---> 22         time.sleep(sleep)
     23 
     24 

KeyboardInterrupt: 

In [18]:
from planet4 import stats

In [17]:
db


Out[17]:
Database root: /Users/klay6683/Dropbox/data/planet4
Database name: 2016-05-29_planet_four_classifications_queryable_cleaned_seasons2and3.h5

In [ ]:
i

In [19]:
stats.get_fb_to_all_ratio(db.get_image_id_markings('0nf'))


Out[19]:
0.3375

In [20]:
data = db.get_image_id_markings('0nf')

In [ ]:
data[data.marking=='fan']