コード例 #1
0
def build_out_nodes(Config, region_node, regions, raster, raster_affine, pop_threshold, perform_split=True):
    Octtree.fid_counter = 0

    octtree_top =  build(region_node.polygon, region_node, raster, raster_affine, pop_threshold)

    if perform_split:
        print "\toriginal number zones: ", octtree_top.count_populated()
        to_merge = split(Config, octtree_top, regions, raster, raster_affine)
        merge(Config, to_merge, pop_threshold)
        print "\tafter split and merge: ", octtree_top.count_populated()
    bounding_area = get_region_boundary(regions) #need to check against boundary too.
    octtree_top.prune(bounding_area)
    # ... do something ...
    #pr.disable()
    #pr.dump_stats("data/stats")


    return octtree_top
コード例 #2
0

if __name__ == "__main__":
    Config = ConfigParser.ConfigParser(allow_no_value=True)

    if len(sys.argv) == 1 or not os.path.exists(sys.argv[1]):
        raise IOError("please supply a configuration file as a program arugment")
    Config.read(sys.argv[1])

    with rasterio.open(Config.get("Input", "combined_raster")) as r:
        raster_array = r.read(1)
        transform = r.affine
        zonesSaptialRef = r.crs.to_dict()

        regions = region_ops.load_regions(Config)
        boundary = region_ops.get_region_boundary(regions)
        envelope = region_ops.get_square_envelope(raster_array.shape, transform)

        region_octtree = octtree.OcttreeNode(envelope, None, None)

        if Config.get("Parameters", "mode") == 'Trend':
                region_octtree = iteration.model_zones_vs_threshold(Config, region_octtree, regions, raster_array, r.affine)
        else:
            if Config.get("Parameters", "mode") == 'Iterative':
                region_octtree = iteration.solve_iteratively(Config, region_octtree, regions, raster_array, r.affine)
            if Config.get("Parameters", "mode") == 'Once':
                pop_threshold =  Config.getint("Parameters", "population_threshold")
                region_octtree = octtree.build_out_nodes(Config, region_octtree, regions, raster_array, r.affine, pop_threshold)

            helper_functions.calculate_final_values(Config, region_octtree)