def main(buffers_dir=None, divisions=DIVISIONS, division_names=DIVISION_NAMES, divisions_dir=None, empty_shps_dir=EMPTY_SHPS_DIR, recalculate=False): p_counter = 0 for buffer_dir in iter_buffer_dirs(buffers_dir): for division, division_name in zip(divisions, division_names): weights_path = get_weights_path(buffer_dir, division_name) if not os.path.isfile(weights_path) or recalculate: division_dir = get_division_dir(division, divisions_dir) p = Process(target=calculate_intersect_weights, args=(division_dir, buffer_dir, weights_path, empty_shps_dir)) print("Start process of calculating intersections between", os.path.basename(division_dir), "and", os.path.basename(buffer_dir), "...") p.start() if p_counter % 5 == 0: p.join()
def main( buffers_dir=None, divisions=DIVISIONS, division_names=DIVISION_NAMES, divisions_dir=pf.DIVISIONS_DIR, empty_shps_dir=EMPTY_SHPS_DIR, recalculate=False, ): p = None p_counter = 0 for buffer_dir in pf.iter_buffer_dirs(buffers_dir): for division, division_name in zip(divisions, division_names): weights_path = pf.get_weights_path(buffer_dir, division_name) if not os.path.isfile(weights_path) or recalculate: division_path = pf.get_shp(division) p = Process( target=calculate_intersect_weights, args=(division_path, buffer_dir, weights_path, empty_shps_dir) ) print( "Start process of calculating intersections between", os.path.basename(division_path), "and", os.path.basename(buffer_dir), "...", ) p.start() p_counter += 1 if p_counter >= 5 and p_counter % 5 == 0: p.join() if p: p.join() print("Intersections calculation complete.")
def get_weights(buffer_dir, area_level): with open(get_weights_path(buffer_dir, AREA_LEVEL_NAMES[area_level]), "rb") as f: return json.load(f)