Untitled Note

By: Anonymous1/11/202217 views Public Note
import os import numpy as np import json import argparse from pathlib import Path def extract_points_info(json_file): f1 = open(json_file) data = json.load(f1) raw_pts = data['points'] dev_loc = data['device_position'] points_list = [] for pnt in raw_pts: pntx = pnt['x'] - dev_loc['x'] pnty = pnt['y'] - dev_loc['y'] pntz = pnt['z'] - dev_loc['z'] pnt_str = str(pntx) ' ' str(pnty) ' ' str(pntz) points_list.append(pnt_str) return points_list def write_pcd(filename, points_list): num_pts_str = str(len(points_list)) header_content = ['# .PCD v0.7 - Point Cloud Data file format','VERSION 0.7','FIELDS x y z','SIZE 4 4 4','TYPE F F F','COUNT 1 1 1', 'WIDTH ' num_pts_str,'HEIGHT 1','VIEWPOINT 0 0 0 1 0 0 0','POINTS ' num_pts_str,'DATA ascii'] with open(filename, "w") as f2: f2.write('\n'.join(header_content)) f2.write('\n') f2.write('\n'.join(points_list)) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('--path', type=str, required=True) args = parser.parse_args() jsons_fol_path = args.path pcds_path = os.path.join(jsons_fol_path, 'pcd') Path(pcds_path).mkdir(parents=True, exist_ok=True) print_iter = 0 for file in os.listdir(jsons_fol_path): if file.endswith(".json"): json_file = os.path.join(jsons_fol_path, file) pcd_file = file.split('.')[0] '.pcd' save_pcd_path = os.path.join(pcds_path, pcd_file) points_list = extract_points_info(json_file) write_pcd(save_pcd_path,points_list) print_iter = 1 if print_iter ==0: print('Completed ' str(print_iter) ' items') print('Conversion Complete')

Want to create your own notes?

Join thousands of users writing securely on ProNotepad.