|Has owner=Oliver Chang,
|Has start date=July 31, 2017
|Has deadline=August October 4, 2017|Has project status=ActiveComplete
|Is dependent on=Enclosing Circle Algorithm,
}}
A thin-wrapper around [[Enclosing_Circle_Algorithm_(Rework)|the enclosing circle algorithm]] which allows for instance-level parallelization.
This project consists of the python files in <code>E:\McNair\Projects\OliverLovesCircles\src\python</code>.
Project directoryParallelization is implemented via Python2's [https: //docs.python.org/2/library/subprocess.html#subprocess.Popen <code>E:\McNair\Projects\OliverLovesCirclessubprocess.open()</code>] which is non-blocking and available in the standard library.
== Parameters ==
* in <code>circles.py</code>:** <code>iterations_per_kITERATIONS</code>: the number of iterations to attempt for each <code>k</code> to find minimum for that <code>k</code>* * <code>MIN_POINTS_PER_CIRCLE</code> (AKA <code>n</code>): the minimum number of data points that must be included in a circle* in <code>vc_circles.py</code>** <code>NUMBER_INSTANCES</code>: number of parallel instances to run; assume no data-races between instances** <code>SWEEP_CYCLE_SECONDS</code>: amount of time before removing completed jobs from the current job and adding new jobs if any files are left to process** <code>TIMEOUT_MINUTES</code>: maximum running time of a parallel instance of the algorithm** <code>SPLIT_THRESHOLD</code>: if a dataset has more than this threshold of data points, it will be split via k-means
== Overview Example Usage ==
TODO <nowiki>$ python vc_circles.py --infile E: explain range of k/McNair/Projects/OliverLovesCircles/CoLevelForCirclesNotRunGTE200.txt</nowiki>where <code>CoLevelForCirclesNotRunGTE200.txt</code> is a tab-separated values file with the columns<code>placestate, place, statecode, year, latitude, longitude, coname, datefirstinv, placens, geoid, city</code>
TODO: explain difficulty This command will populate (and overwrite) any files in <code>data/</code>. The format of portthe filenames in this directory are <code>{city}{sep}{state}{sep}{year}{sep}{num}.tsv</code> where <code>num</code> is a 0-indexed integer of a split city/state/year <code>infile</code> that has greater than <code>SPLIT_THRESHOLD</code>
TODO: add initial cut documentation
== Related Pages ==