Пример #1
0
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()
Пример #2
0
def main(buffers_dir=None, skip=None, recalculate=False, area_level="RADIO",
         subcategory=None, omit_fields=None, by_area=None):
    skip = skip or []
    by_area = by_area or []

    for buffer_dir in iter_buffer_dirs(buffers_dir):
        print("Calculating", os.path.basename(buffer_dir), "indicators")
        sys.stdout.flush()

        buffer_indic_path = get_indicators_shp_path(
            os.path.basename(buffer_dir), "buffers")
        # print(buffer_indic_path + ".shp")
        if not os.path.isfile(buffer_indic_path + ".shp") or recalculate:
            recalculate_indicators(buffer_dir, area_level, skip,
                                   subcategory=subcategory,
                                   omit_fields=omit_fields,
                                   by_area=by_area)
Пример #3
0
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.")
Пример #4
0
def main(buffers_dir=None,
         skip=None,
         recalculate=False,
         area_level="RADIO",
         subcategory=None,
         omit_fields=None,
         by_area=None):
    skip = skip or []
    by_area = by_area or []

    for buffer_dir in iter_buffer_dirs(buffers_dir):
        print("Calculating", os.path.basename(buffer_dir), "indicators")
        sys.stdout.flush()

        buffer_indic_path = get_indicators_shp_path(
            os.path.basename(buffer_dir), "buffers")
        # print(buffer_indic_path + ".shp")
        if not os.path.isfile(buffer_indic_path + ".shp") or recalculate:
            recalculate_indicators(buffer_dir,
                                   area_level,
                                   skip,
                                   subcategory=subcategory,
                                   omit_fields=omit_fields,
                                   by_area=by_area)