def main():
    """Read the file, build the tree. Write a Binary."""
    start_time = bu.timer()
    parser = bu.parser_args("*.asc / *.xyz / *.txt")
    parser = bu.add_reverse(parser)
    args = parser.parse_args()

    # Parse directories or filenames, whichever you want!
    if os.path.isdir(args.input):
        filenames = glob.glob(os.path.join(args.input, '*.xyz'))
        filenames.extend(glob.glob(os.path.join(args.input, '*.asc')))
        filenames.extend(glob.glob(os.path.join(args.input, '*.txt')))
    else:
        filenames = glob.glob(args.input)

    print("processing: ", ' '.join(filenames))
    for filename in filenames:
        if args.dense:
            outfilename = bu.sub(filename, "dvol")
        else:
            outfilename = bu.sub(filename, "vol")
        if os.path.isfile(outfilename):
            print("File already exists!")
            continue

        print("converting", filename, "to", outfilename)
        bbox, points, pointsdata = parse_xyz(filename, args.nbits)

        if args.reverse_zy:
            points = np.array([points[:, 0], points[:, 2], points[:, 1]]).transpose()

        # work out how many chunks are required for the data
        if args.nbits:
            print("nbits set, adding metadata to occupancy grid")
            div, mod = divmod(len(pointsdata[0]), 8)
            if mod > 0:
                nbits = div + 1
            else:
                nbits = div
        else:
            print("Only occupancy data being set! Use -n flag to add metadata")
            nbits = 0

        if len(points) > 0:
            volatree = VolaTree(args.depth, bbox, args.crs,
                                args.dense, nbits)
            volatree.cubify(points, pointsdata)
            volatree.countlevels()
            volatree.writebin(outfilename)

            bu.print_ratio(filename, outfilename)
        else:
            print("The points file is empty!")
    bu.timer(start_time)
Exemplo n.º 2
0
def save_file(filename, header, coords, data):
    """CHECK IF BOUNDING BOXES MATCH."""
    bbox = [[header['minx'], header['miny'], header['minz']],
            [header['maxx'], header['maxy'], header['maxz']]]

    volatree = VolaTree(header['depth'], bbox, header['crs'], False,
                        header['nbits'])
    volatree.cubify(coords, data)
    volatree.writebin(filename)
def main():
    """Read the file, build the tree. Write a Binary."""
    start_time = bu.timer()
    parser = bu.parser_args("*.asc / *.xyz")
    args = parser.parse_args()

    # Parse directories or filenames, whichever you want!
    if os.path.isdir(args.input):
        filenames = glob.glob(os.path.join(args.input, '*.txt'))
        filenames.extend(glob.glob(os.path.join(args.input, '*.asc')))
    else:
        filenames = glob.glob(args.input)

    print("processing: ", ' '.join(filenames))
    for filename in filenames:
        if args.dense:
            outfilename = bu.sub(filename, "dvol")
        else:
            outfilename = bu.sub(filename, "vol")
        if os.path.isfile(outfilename):
            print("File already exists!")
            continue

        print("converting", filename, "to", outfilename)
        bbox, points, pointsdata = parse_xyz(filename, args.nbits)
        # work out how many chunks are required for the data
        if args.nbits:
            div, mod = divmod(len(pointsdata[0]), 8)
            if mod > 0:
                nbits = div + 1
            else:
                nbits = div
        else:
            nbits = 0

        if len(points) > 0:
            volatree = VolaTree(args.depth, bbox, args.crs, args.dense, nbits)
            volatree.cubify(points, pointsdata)
            volatree.countlevels()
            volatree.writebin(outfilename)

            bu.print_ratio(filename, outfilename)
        else:
            print("The points file is empty!")
    bu.timer(start_time)
Exemplo n.º 4
0
def main():
    """Read the file, build the tree. Write a Binary."""
    start_time = bu.timer()
    parser = bu.parser_args("*.ply")
    parser = bu.add_reverse(parser)
    args = parser.parse_args()

    # Parse directories or filenames, whichever you want!
    if os.path.isdir(args.input):
        filenames = glob.glob(os.path.join(args.input, '*.ply'))
    else:
        filenames = glob.glob(args.input)

    print("processing: ", ' '.join(filenames))
    for filename in filenames:
        if args.dense:
            outfilename = bu.sub(filename, "dvol")
        else:
            outfilename = bu.sub(filename, "vol")
        if os.path.isfile(outfilename):
            print("File already exists!")
            continue

        print("converting", filename, "to", outfilename)
        bbox, points, pointsdata = parse_ply(filename, args.nbits)

        if args.reverse_zy:
            points = np.array([points[:, 0], points[:, 2],
                               points[:, 1]]).transpose()

        # work out how many chunks are required for the data
        print("PLY only has occupancy data," +
              " no additional data is being added")
        nbits = 0

        volatree = VolaTree(args.depth, bbox, args.crs, args.dense, nbits)
        volatree.cubify(points)
        volatree.countlevels()
        volatree.writebin(outfilename)

        bu.print_ratio(filename, outfilename)

    bu.timer(start_time)
def main():
    """Read the file, build the tree. Write a Binary."""
    start_time = bu.timer()
    parser = bu.parser_args("*.pcd")
    args = parser.parse_args()

    # Parse directories or filenames, whichever you want!
    if os.path.isdir(args.input):
        filenames = glob.glob(os.path.join(args.input, '*.pcd'))
    else:
        filenames = glob.glob(args.input)

    print("processing: ", ' '.join(filenames))
    for filename in filenames:
        if args.dense:
            outfilename = bu.sub(filename, "dvol")
        else:
            outfilename = bu.sub(filename, "vol")
        if os.path.isfile(outfilename):
            print("File already exists!")
            continue

        print("converting", filename, "to", outfilename)
        bbox, points, pointsdata = parse_pcd(filename, args.nbits)
        print("PCD only has occupancy data," +
              " no additional data is being added")

        if len(points) > 0:
            volatree = VolaTree(args.depth, bbox, args.crs,
                                args.dense, 0)
            volatree.cubify(points, pointsdata)
            volatree.countlevels()
            volatree.writebin(outfilename)

            bu.print_ratio(filename, outfilename)
        else:
            print("The points file is empty!")
    bu.timer(start_time)