Source code for flusstools.lidartools.lastools_fun

"""
Description
"""


from fuzzycorr import *


[docs]def browse(root, entry, select='file', ftypes=[('All files', '*')]): """GUI button command opens browser window and adds selected file/folder to entry""" if select == 'file': filename = filedialog.askopenfilename( parent=root, title='Choose a file', filetypes=ftypes) if filename: entry.delete(0, tk.END) entry.insert(tk.END, filename) elif select == 'files': files = filedialog.askopenfilenames( parent=root, title='Choose files', filetypes=ftypes) l = root.tk.splitlist(files) entry.delete(0, tk.END) entry.insert(tk.END, l) elif select == 'folder': dirname = filedialog.askdirectory( parent=root, initialdir=entry.get(), title='Choose a directory') if len(dirname) > 0: entry.delete(0, tk.END) entry.insert(tk.END, dirname + '/')
[docs]def get_largest(directory): """returns name of largest file in directory""" largest_so_far = 0 filename = '' for name in os.listdir(directory): size = os.path.getsize(os.path.join(directory, name)) if size > largest_so_far: largest_so_far = size filename = name return os.path.join(directory, filename)
[docs]def get_las_files(directory): """returns list of all .las/.laz files in directory (at top level)""" l = [] for name in os.listdir(directory): if name.endswith('.las') or name.endswith('.laz'): l.append(directory + name) return l
[docs]def split_list(list2split, break_pts): """returns list l split up into sublists at break point indices""" act_len = len(list2split) sub_list = [] if break_pts is []: return [list2split] else: for brk in break_pts: delta_l = act_len - len(list2split) sub_list.append(list2split[:brk - delta_l]) list2split = list2split[brk - delta_l:] sub_list.append(list2split) return sub_list
[docs]def split_reaches(list_of_reaches, new_reach_pts): """splits l into sections where new_reach_pts contains the starting indices for each slice""" new_reach_pts = sorted(new_reach_pts) sub_list = [list_of_reaches[i1:i2] for i1, i2 in zip(new_reach_pts, new_reach_pts[1:])] last_index = new_reach_pts[-1] sub_list.append(list_of_reaches[last_index:]) return sub_list