class_docstr: Raw object from a Nihon Kohden EEG file.
  
  Parameters
  ----------
  fname : path-like
      Path to the Nihon Kohden data ``.eeg`` file.
  preload : bool
      If True, all data are loaded at initialization.
  %(verbose)s
  
  See Also
  --------
  mne.io.Raw : Documentation of attributes and methods.
class_docstr_tok: ["Raw","object","from","a","Nihon","Kohden","EEG","file",".","Parameters","--","--","--","--","--","fname",":","path-like","Path","to","the","Nihon","Kohden","data","``",".eeg","``","file",".","preload",":","bool","If","True",",","all","data","are","loaded","at","initialization",".","%","(","verbose",")","s","See","Also","--","--","--","--","mne.io.Raw",":","Documentation","of","attributes","and","methods","."]
code: def __init__(self, fname, preload=False, verbose=None):
      fname = _check_fname(fname, "read", True, "fname")
      data_name = fname.name
      logger.info("Loading %s" % data_name)
  
      header = _read_nihon_header(fname)
      metadata = _read_nihon_metadata(fname)
  
      # n_chan = len(header['ch_names']) + 1
      sfreq = header["sfreq"]
      # data are multiplexed int16
      ch_names = header["ch_names"]
      ch_types = [_map_ch_to_type(x) for x in ch_names]
  
      info = create_info(ch_names, sfreq, ch_types)
      n_samples = header["n_samples"]
  
      if "meas_date" in metadata:
          with info._unlock():
              info["meas_date"] = metadata["meas_date"]
      chs = {x: _map_ch_to_specs(x) for x in info["ch_names"]}
  
      cal = np.array([chs[x]["cal"] for x in info["ch_names"]], float)[
          :, np.newaxis
      ]
      offsets = np.array(
          [chs[x]["offset"] for x in info["ch_names"]], float
      )[:, np.newaxis]
      gains = np.array(
          [chs[x]["unit"] for x in info["ch_names"]], float
      )[:, np.newaxis]
  
      raw_extras = dict(
          cal=cal, offsets=offsets, gains=gains, header=header
      )
      for i_ch, ch_name in enumerate(info["ch_names"]):
          t_range = chs[ch_name]["phys_max"] - chs[ch_name]["phys_min"]
          info["chs"][i_ch]["range"] = t_range
          info["chs"][i_ch]["cal"] = 1 / t_range
  
      super().__init__(
          info,
          preload=preload,
          last_samps=(n_samples - 1,),
          filenames=[fname.as_posix()],
          orig_format="short",
          raw_extras=[raw_extras],
      )
  
      # Get annotations from LOG file
      annots = _read_nihon_annotations(fname)
  
      # Annotate acquisition skips
      controlblock = header["controlblocks"][0]
      cur_sample = 0
      if controlblock["n_datablocks"] > 1:
          for i_block in range(controlblock["n_datablocks"] - 1):
              t_block = controlblock["datablocks"][i_block]
              cur_sample = cur_sample + t_block["n_samples"]
              cur_tpoint = (cur_sample - 0.5) / t_block["sfreq"]
              # Add annotations as in append raw
              annots["onset"].append(cur_tpoint)
              annots["duration"].append(0.0)
              annots["description"].append("BAD boundary")
              annots["onset"].append(cur_tpoint)
              annots["duration"].append(0.0)
              annots["description"].append("EDGE boundary")
  
      annotations = Annotations(**annots, orig_time=info["meas_date"])
      self.set_annotations(annotations)
  
imports: from collections import OrderedDict
  from datetime import datetime, timezone
  from pathlib import Path
  import numpy
  from ..._fiff.meas_info import create_info
  from ..._fiff.utils import _mult_cal_one
  from ...annotations import Annotations
  from ...utils import _check_fname, fill_doc, logger, verbose, warn
  from ..base import BaseRaw
label_desc: Use image node_id 1 to create a new RawNihon object from inherited base classes: BaseRaw with example: obj = RawNihon(fname, preload, verbose)