class_docstr: Scannet dataset, you will have to agree to terms and conditions by hitting enter
  so that it downloads the dataset.
  
  http://www.scan-net.org/
  
  Parameters
  ----------
  root : str
      Path to the data
  split : str, optional
      Split used (train, val or test)
  transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a transformed
      version. The data object will be transformed before every access.
  pre_transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a
      transformed version. The data object will be transformed before being saved to disk.
  pre_filter (callable, optional):
      A function that takes in an :obj:`torch_geometric.data.Data` object and returns a boolean
      value, indicating whether the data object should be included in the final dataset.
  version : str, optional
      version of scannet, by default "v2"
  use_instance_labels : bool, optional
      Wether we use instance labels or not, by default False
  use_instance_bboxes : bool, optional
      Wether we use bounding box labels or not, by default False
  donotcare_class_ids : list, optional
      Class ids to be discarded
  max_num_point : [type], optional
      Max number of points to keep during the pre processing step
  use_multiprocessing : bool, optional
      Wether we use multiprocessing or not
  process_workers : int, optional
      Number of process workers
  normalize_rgb : bool, optional
      Normalise rgb values, by default True
class_docstr_tok: ["Scannet","dataset",",","you","will","have","to","agree","to","terms","and","conditions","by","hitting","enter","so","that","it","downloads","the","dataset",".","http",":","\/\/www.scan-net.org\/","Parameters","--","--","--","--","--","root",":","str","Path","to","the","data","split",":","str",",","optional","Split","used","(","train",",","val","or","test",")","transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","every","access",".","pre_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","being","saved","to","disk",".","pre_filter","(","callable",",","optional",")",":","A","function","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","boolean","value",",","indicating","whether","the","data","object","should","be","included","in","the","final","dataset",".","version",":","str",",","optional","version","of","scannet",",","by","default","``","v2","''","use_instance_labels",":","bool",",","optional","Wether","we","use","instance","labels","or","not",",","by","default","False","use_instance_bboxes",":","bool",",","optional","Wether","we","use","bounding","box","labels","or","not",",","by","default","False","donotcare_class_ids",":","list",",","optional","Class","ids","to","be","discarded","max_num_point",":","[","type","]",",","optional","Max","number","of","points","to","keep","during","the","pre","processing","step","use_multiprocessing",":","bool",",","optional","Wether","we","use","multiprocessing","or","not","process_workers",":","int",",","optional","Number","of","process","workers","normalize_rgb",":","bool",",","optional","Normalise","rgb","values",",","by","default","True"]
code: def process(self):
      if self.is_test:
          return
      self.read_from_metadata()
  
      scannet_dir = osp.join(self.raw_dir, "scans")
      for i, (scan_names, split) in enumerate(
          zip(self.scan_names, self.SPLITS)
      ):
          if not os.path.exists(self.processed_paths[i]):
              mapping_idx_to_scan_names = getattr(
                  self,
                  "MAPPING_IDX_TO_SCAN_{}_NAMES".format(split.upper()),
              )
              scannet_dir = osp.join(
                  self.raw_dir,
                  "scans"
                  if split in ["train", "val"]
                  else "scans_test",
              )
              total = len(scan_names)
              args = [
                  (
                      id,
                      total,
                      scannet_dir,
                      scan_name,
                      self.label_map_file,
                      self.donotcare_class_ids,
                      self.max_num_point,
                      self.VALID_CLASS_IDS,
                      self.normalize_rgb,
                      split,
                  )
                  for id, scan_name in enumerate(scan_names)
              ]
              if self.use_multiprocessing:
                  with multiprocessing.get_context("spawn").Pool(
                      processes=self.process_workers
                  ) as pool:
                      datas = pool.starmap(Scannet.process_func, args)
              else:
                  datas = []
                  for arg in args:
                      data = Scannet.process_func(*arg)
                      datas.append(data)
  
              for data in datas:
                  id_scan = int(data.id_scan.item())
                  scan_name = mapping_idx_to_scan_names[id_scan]
                  path_to_raw_scan = os.path.join(
                      self.processed_raw_paths[i],
                      "{}.pt".format(scan_name),
                  )
                  torch.save(data, path_to_raw_scan)
  
              if self.pre_transform:
                  datas = [self.pre_transform(data) for data in datas]
  
              log.info("SAVING TO {}".format(self.processed_paths[i]))
              torch.save(self.collate(datas), self.processed_paths[i])
  
imports: import os
  import os.path
  import shutil
  import json
  import torch
  from glob import glob
  import sys
  import csv
  import logging
  import numpy
  from plyfile import PlyData, PlyElement
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  import torch_geometric.transforms
  import multiprocessing
  import pandas
  import tempfile
  import urllib
  from urllib.request import urlopen
  from torch_points3d.datasets.base_dataset import BaseDataset
  import torch_points3d.core.data_transform
  from .None import IGNORE_LABEL
label_desc: Use image node_id 14 for calling the Scannet obj's underlying member method code with example usage: obj.process() without return types