class_docstr: Test VIRR L1B Reader.
class_docstr_tok: ["Test","VIRR","L1B","Reader","."]
docstr: Load channels and test accurate metadata.
docstr_tok: ["Load","channels","and","test","accurate","metadata","."]
code: def _fy3_helper(self, platform_name, reader, Emissive_units):
      """Load channels and test accurate metadata."""
      import datetime
  
      band_values = {
          "1": 22.0,
          "2": 22.0,
          "6": 22.0,
          "7": 22.0,
          "8": 22.0,
          "9": 22.0,
          "10": 22.0,
          "3": 496.542155,
          "4": 297.444511,
          "5": 288.956557,
          "solar_zenith_angle": 0.1,
          "satellite_zenith_angle": 0.1,
          "solar_azimuth_angle": 0.1,
          "satellite_azimuth_angle": 0.1,
          "longitude": 10,
      }
      if platform_name == "FY3B":
          # updated 2015 coefficients
          band_values["1"] = -0.168
          band_values["2"] = -0.2706
          band_values["6"] = -1.5631
          band_values["7"] = -0.2114
          band_values["8"] = -0.171
          band_values["9"] = -0.1606
          band_values["10"] = -0.1328
      datasets = reader.load([band for band in band_values])
      for dataset in datasets:
          # Object returned by get_dataset.
          ds = datasets[dataset["name"]]
          attributes = ds.attrs
          assert isinstance(ds.data, da.Array)
          assert "virr" == attributes["sensor"]
          assert platform_name == attributes["platform_name"]
          assert (
              datetime.datetime(2018, 12, 25, 21, 41, 47, 90000)
              == attributes["start_time"]
          )
          assert (
              datetime.datetime(2018, 12, 25, 21, 47, 28, 254000)
              == attributes["end_time"]
          )
          assert (19, 20) == datasets[dataset["name"]].shape
          assert ("y", "x") == datasets[dataset["name"]].dims
          if dataset["name"] in ["1", "2", "6", "7", "8", "9", "10"]:
              self._band_helper(
                  attributes,
                  "%",
                  "reflectance",
                  "toa_bidirectional_reflectance",
                  "virr_l1b",
                  7,
                  1000,
              )
          elif dataset["name"] in ["3", "4", "5"]:
              self._band_helper(
                  attributes,
                  Emissive_units,
                  "brightness_temperature",
                  "toa_brightness_temperature",
                  "virr_l1b",
                  3,
                  1000,
              )
          elif dataset["name"] in ["longitude", "latitude"]:
              assert "degrees" == attributes["units"]
              assert (
                  attributes["standard_name"]
                  in ["longitude", "latitude"]
              ) is True
              assert ["virr_l1b", "virr_geoxx"] == attributes[
                  "file_type"
              ]
              assert 1000 == attributes["resolution"]
          else:
              assert "degrees" == attributes["units"]
              assert attributes["standard_name"] in [
                  "solar_zenith_angle",
                  "sensor_zenith_angle",
                  "solar_azimuth_angle",
                  "sensor_azimuth_angle",
              ]
              assert ["virr_geoxx", "virr_l1b"] == attributes[
                  "file_type"
              ]
              assert ("longitude", "latitude") == attributes[
                  "coordinates"
              ]
          np.testing.assert_allclose(
              band_values[dataset["name"]],
              ds[ds.shape[0] // 2][ds.shape[1] // 2],
              rtol=1e-6,
          )
          assert "valid_range" not in ds.attrs
  
imports: import os
  import unittest
  from unittest import mock
  import dask.array
  import numpy
  import xarray
  from satpy.tests.reader_tests.test_hdf5_utils import FakeHDF5FileHandler
label_desc: Use image node_id 4 for calling the TestVIRRL1BReader obj's underlying member method code with example usage: obj._fy3_helper(platform_name, reader, Emissive_units) without return types