def dropfields(input_path, output_path, todrop): input_file = tables.open_file(input_path, mode="r") input_root = input_file.root output_file = tables.open_file(output_path, mode="w") output_globals = output_file.create_group("/", "globals", "Globals") print(" * copying globals ...", end=' ') copy_table(input_root.globals.periodic, output_globals) print("done.") output_entities = output_file.create_group("/", "entities", "Entities") for table in input_file.iterNodes(input_root.entities): table_fields = get_fields(table) table_fields = [(fname, ftype) for fname, ftype in table_fields if fname not in todrop] size = (len(table) * table.dtype.itemsize) / 1024.0 / 1024.0 #noinspection PyProtectedMember print(" * copying table %s (%.2f Mb) ..." % (table._v_name, size), end=' ') copy_table(table, output_entities, table_fields) print("done.") input_file.close() output_file.close()
def dropfields(input_path, output_path, todrop): input_file = tables.open_file(input_path, mode="r") input_root = input_file.root output_file = tables.open_file(output_path, mode="w") output_globals = output_file.create_group("/", "globals", "Globals") print(" * copying globals ...", end=' ') copy_table(input_root.globals.periodic, output_globals) print("done.") output_entities = output_file.create_group("/", "entities", "Entities") for table in input_file.iterNodes(input_root.entities): table_fields = get_fields(table) output_dtype = np.dtype([(fname, ftype) for fname, ftype in table_fields if fname not in todrop]) size = (len(table) * table.dtype.itemsize) / 1024.0 / 1024.0 # noinspection PyProtectedMember print(" * copying table %s (%.2f Mb) ..." % (table._v_name, size), end=' ') copy_table(table, output_entities, output_dtype) print("done.") input_file.close() output_file.close()
def filter_h5(input_path, output_path, condition): print("filtering for '%s'" % condition) input_file = tables.open_file(input_path, mode="r") output_file = tables.open_file(output_path, mode="w") # copy globals #noinspection PyProtectedMember input_file.root.globals._f_copy(output_file.root, recursive=True) output_entities = output_file.create_group("/", "entities", "Entities") for table in input_file.iterNodes(input_file.root.entities): #noinspection PyProtectedMember print(table._v_name, "...") copy_table(table, output_entities, condition=condition) input_file.close() output_file.close()
def filter_h5(input_path, output_path, condition, copy_globals=True): print("filtering for '%s'" % condition) input_file = tables.open_file(input_path) output_file = tables.open_file(output_path, mode="w") # copy globals if copy_globals: # noinspection PyProtectedMember input_file.root.globals._f_copy(output_file.root, recursive=True) output_entities = output_file.create_group("/", "entities", "Entities") for table in input_file.iterNodes(input_file.root.entities): # noinspection PyProtectedMember print(table._v_name, "...") copy_table(table, output_entities, condition=condition) input_file.close() output_file.close()
def map_file(input_file, output_file, entities_map): # copy globals if hasattr(input_file.root, 'globals'): #noinspection PyProtectedMember input_file.root.globals._f_copy(output_file.root, recursive=True) print(" * copying tables") output_entities = output_file.createGroup("/", "entities", "Entities") for table in input_file.iterNodes(input_file.root.entities): #noinspection PyProtectedMember ent_name = table._v_name print(ent_name, "...") if ent_name in entities_map: output_table = output_file.createTable(output_entities, table.name, table.dtype, title=table._v_title) map_rows(table, output_table, entities_map[ent_name]) else: copy_table(table, output_entities)
def map_file(input_file, output_file, entities_map): # copy globals if hasattr(input_file.root, 'globals'): # noinspection PyProtectedMember input_file.root.globals._f_copy(output_file.root, recursive=True) print(" * copying tables") output_entities = output_file.create_group("/", "entities", "Entities") for table in input_file.iterNodes(input_file.root.entities): # noinspection PyProtectedMember ent_name = table._v_name print(ent_name, "...") if ent_name in entities_map: # noinspection PyProtectedMember output_table = output_file.create_table(output_entities, table.name, table.dtype, title=table._v_title) map_rows(table, output_table, entities_map[ent_name]) else: copy_table(table, output_entities)