We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
XRT Map ScaleValueError
Hello, 
I am getting an error when trying to plot the HinodeXRT.fits file using: 
```
m = sunpy.map.Map('HinodeXRT.fits')
m.plot()
```
The error is:  `ScaleValueError: Scale 'utc (tbr)' is not in the allowed scales ['local', 'tai', 'tcb', 'tcg', 'tdb', 'tt', 'ut1', 'utc']`


 A similar fix was implemented for this issue but it was only match uppercase ‘UTC (TBR)’

https://github.com/sunpy/sunpy/blob/71b09358db2a08fa2aec34a9798c1cc7ed6368ac/sunpy/map/sources/hinode.py#L49-L51


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `sunpy/map/sources/hinode.py`
Content:
```
1 """Hinode XRT and SOT Map subclass definitions"""
2 
3 __author__ = ["Jack Ireland, Jose Ivan Campos-Rozo, David Perez-Suarez"]
4 __email__ = "jack.ireland@nasa.gov"
5 
6 from sunpy import log
7 from sunpy.map import GenericMap
8 
9 __all__ = ['XRTMap', 'SOTMap']
10 
11 # the following values comes from xrt_prep.pro
12 # search for saturation in
13 # http://darts.jaxa.jp/pub/ssw/hinode/xrt/idl/util/xrt_prep.pro
14 # SATURATION_LIMIT = 2500
15 
16 
17 def _lower_list(l):
18     return [item.lower() for item in l]
19 
20 
21 class XRTMap(GenericMap):
22     """Hinode XRT map definition.
23 
24     The X-Ray Telescope (XRT) is a high resolution grazing incidence telescope,
25     which is a succsessor to Yohkoh. It provides 2-arcsecond resolution images
26     of the highest temperature solar coronal material,
27     from 1,000,000 to 10,000,000 Kelvin.
28 
29     Hinode was launched on 22 September 2006 into a sun-synchronous orbit.
30 
31     References
32     ----------
33     * `Hinode Mission Page <https://solarb.msfc.nasa.gov/index.html>`_
34     * `XRT Instrument Page <http://xrt.cfa.harvard.edu>`_
35     * `Fits header reference <http://hinode.nao.ac.jp/uploads/2016/04/22/SB_MW_Key13.pdf>`_
36     * `Hinode User Guide <http://hinode.nao.ac.jp/en/for-researchers/analysis-guide/>`_
37     * `XRT Analysis Guide <http://xrt.cfa.harvard.edu/science/tutorials.php>`_
38     * `Coronal Temperature Diagnostic Capability of the Hinode/X-Ray Telescope Based on Self-Consistent Calibration <https://arxiv.org/abs/1011.2867>`_
39     """
40     filter_wheel1_measurements = ["Al_med", "Al_poly", "Be_med",
41                                   "Be_thin", "C_poly", "Open"]
42     filter_wheel2_measurements = ["Open", "Al_mesh", "Al_thick",
43                                   "Be_thick", "Gband", "Ti_poly"]
44 
45     def __init__(self, data, header, **kwargs):
46 
47         super().__init__(data, header, **kwargs)
48 
49         if self.meta.get('timesys', '') == 'UTC (TBR)':
50             log.debug('Modifying TIMESYS keyword from "UTC (TBR)" to "UTC"')
51             self.meta['timesys'] = 'UTC'
52 
53         # converting data array to masked array
54         # self.data = ma.masked_where(self.data > SATURATION_LIMIT, self.data)
55 
56         fw1 = header.get('EC_FW1_')
57         if fw1.lower() not in _lower_list(self.filter_wheel1_measurements):
58             raise ValueError('Unpexpected filter wheel 1 in header.')
59         fw1 = fw1.replace("_", " ")
60 
61         fw2 = header.get('EC_FW2_')
62         if fw2.lower() not in _lower_list(self.filter_wheel2_measurements):
63             raise ValueError('Unpexpected filter wheel 2 in header.')
64         fw2 = fw2.replace("_", " ")
65 
66         self.meta['detector'] = "XRT"
67 #        self.meta['instrume'] = "XRT"
68         self.meta['telescop'] = "Hinode"
69         self.plot_settings['cmap'] = 'hinodexrt'
70 
71     @property
72     def measurement(self):
73         fw1 = self.meta.get('EC_FW1_').replace("_", " ")
74         fw2 = self.meta.get('EC_FW2_').replace("_", " ")
75         return f"{fw1}-{fw2}"
76 
77     @classmethod
78     def is_datasource_for(cls, data, header, **kwargs):
79         """Determines if header corresponds to an XRT image"""
80         return header.get('instrume') == 'XRT'
81 
82 
83 class SOTMap(GenericMap):
84     """Hinode SOT Image Map definition.
85 
86     The Hinode Solar Optical Telescope (SOT) consists of a 50 cm
87     diffraction-limited Gregorian telescope. It is optimized for
88     accurate measurement of the vector magnetic
89     field in the photosphere and dynamics of both the photosphere and
90     chromosphere associated with the magnetic fields.
91 
92     Hinode was launched on 22 September 2006 into a sun-synchronous orbit.
93 
94     References
95     ----------
96     * `Hinode Mission Page <http://solarb.msfc.nasa.gov/index.html>`_
97     * `Hinode SOT Instrument Page <http://sot.lmsal.com>`_
98     * `Hinode SOT Instrument Paper <https://arxiv.org/abs/0711.1715>`_
99     * `Data Analsis Guide <https://sot.lmsal.com/doc/rep/sot254/fid366/SOT00042_33_SOT_Analysis_Guide_SAG.pdf>`_
100     """
101     # TODO: get a link for the SOT FITS headers
102     # Add in some information about the the possible instrument, observation
103     # type, observable ion and wavelength
104 
105     Instruments = ['SOT/WB', 'SOT/NB', 'SOT/SP', 'SOT/CT']
106 
107     Waves = ['6302A', 'BFI no move', 'CN bandhead 3883',
108              'Ca II H line', 'G band 4305', 'NFI no move',
109              'TF Fe I 6302', 'TF Mg I 5172', 'TF Na I 5896',
110              'blue cont 4504', 'green cont 5550', 'red cont 6684']
111 
112     Observation_Type = ['FG (simple)', 'FG focus scan',
113                         'FG shuttered I and V', 'FG shutterless I and V',
114                         'FG shutterless I and V with 0.2s intervals',
115                         'FG shutterless Stokes', 'SP IQUV 4D array']
116 
117     def __init__(self, data, header, **kwargs):
118         super().__init__(data, header, **kwargs)
119 
120         self.meta['detector'] = "SOT"
121         self.meta['telescop'] = "Hinode"
122         self._nickname = self.detector
123 
124         # TODO (add other options, Now all threated as intensity. This follows
125         # Hinode SDC archive) StokesQUV -> grey, Velocity -> EIS, Width -> EIS,
126         # Mag Field Azi -> IDL 5 (STD gamma II)
127         # 'WB' -> red
128         # 'NB'(0 = red); (>0 = gray), # nb has 1 stokes I, the rest quv
129         # 'SP' (<=1 = red); (>1 = gray) #sp has 2 stokes I, the rest quv
130         color = {'SOT/WB': 'intensity',
131                  'SOT/NB': 'intensity',  # For the 1st dimension
132                  'SOT/SP': 'intensity',  # For the 1st 2 dimensions
133                  }
134 
135         self.plot_settings['cmap'] = 'hinodesot' + color[self.instrument]
136 
137     @classmethod
138     def is_datasource_for(cls, data, header, **kwargs):
139         """Determines if header corresponds to an SOT image."""
140         return header.get('instrume') in cls.Instruments
141
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/sunpy/map/sources/hinode.py b/sunpy/map/sources/hinode.py
--- a/sunpy/map/sources/hinode.py
+++ b/sunpy/map/sources/hinode.py
@@ -1,18 +1,12 @@
 """Hinode XRT and SOT Map subclass definitions"""
+from sunpy import log
+from sunpy.map import GenericMap
 
 __author__ = ["Jack Ireland, Jose Ivan Campos-Rozo, David Perez-Suarez"]
 __email__ = "jack.ireland@nasa.gov"
 
-from sunpy import log
-from sunpy.map import GenericMap
-
 __all__ = ['XRTMap', 'SOTMap']
 
-# the following values comes from xrt_prep.pro
-# search for saturation in
-# http://darts.jaxa.jp/pub/ssw/hinode/xrt/idl/util/xrt_prep.pro
-# SATURATION_LIMIT = 2500
-
 
 def _lower_list(l):
     return [item.lower() for item in l]
@@ -46,13 +40,10 @@
 
         super().__init__(data, header, **kwargs)
 
-        if self.meta.get('timesys', '') == 'UTC (TBR)':
+        if self.meta.get('timesys', '').upper() == 'UTC (TBR)':
             log.debug('Modifying TIMESYS keyword from "UTC (TBR)" to "UTC"')
             self.meta['timesys'] = 'UTC'
 
-        # converting data array to masked array
-        # self.data = ma.masked_where(self.data > SATURATION_LIMIT, self.data)
-
         fw1 = header.get('EC_FW1_')
         if fw1.lower() not in _lower_list(self.filter_wheel1_measurements):
             raise ValueError('Unpexpected filter wheel 1 in header.')
@@ -64,7 +55,6 @@
         fw2 = fw2.replace("_", " ")
 
         self.meta['detector'] = "XRT"
-#        self.meta['instrume'] = "XRT"
         self.meta['telescop'] = "Hinode"
         self.plot_settings['cmap'] = 'hinodexrt'

{"golden_diff": "diff --git a/sunpy/map/sources/hinode.py b/sunpy/map/sources/hinode.py\n--- a/sunpy/map/sources/hinode.py\n+++ b/sunpy/map/sources/hinode.py\n@@ -1,18 +1,12 @@\n \"\"\"Hinode XRT and SOT Map subclass definitions\"\"\"\n+from sunpy import log\n+from sunpy.map import GenericMap\n \n __author__ = [\"Jack Ireland, Jose Ivan Campos-Rozo, David Perez-Suarez\"]\n __email__ = \"jack.ireland@nasa.gov\"\n \n-from sunpy import log\n-from sunpy.map import GenericMap\n-\n __all__ = ['XRTMap', 'SOTMap']\n \n-# the following values comes from xrt_prep.pro\n-# search for saturation in\n-# http://darts.jaxa.jp/pub/ssw/hinode/xrt/idl/util/xrt_prep.pro\n-# SATURATION_LIMIT = 2500\n-\n \n def _lower_list(l):\n     return [item.lower() for item in l]\n@@ -46,13 +40,10 @@\n \n         super().__init__(data, header, **kwargs)\n \n-        if self.meta.get('timesys', '') == 'UTC (TBR)':\n+        if self.meta.get('timesys', '').upper() == 'UTC (TBR)':\n             log.debug('Modifying TIMESYS keyword from \"UTC (TBR)\" to \"UTC\"')\n             self.meta['timesys'] = 'UTC'\n \n-        # converting data array to masked array\n-        # self.data = ma.masked_where(self.data > SATURATION_LIMIT, self.data)\n-\n         fw1 = header.get('EC_FW1_')\n         if fw1.lower() not in _lower_list(self.filter_wheel1_measurements):\n             raise ValueError('Unpexpected filter wheel 1 in header.')\n@@ -64,7 +55,6 @@\n         fw2 = fw2.replace(\"_\", \" \")\n \n         self.meta['detector'] = \"XRT\"\n-#        self.meta['instrume'] = \"XRT\"\n         self.meta['telescop'] = \"Hinode\"\n         self.plot_settings['cmap'] = 'hinodexrt'\n", "issue": "XRT Map ScaleValueError\nHello, \r\nI am getting an error when trying to plot the HinodeXRT.fits file using: \r\n```\r\nm = sunpy.map.Map('HinodeXRT.fits')\r\nm.plot()\r\n```\r\nThe error is:  `ScaleValueError: Scale 'utc (tbr)' is not in the allowed scales ['local', 'tai', 'tcb', 'tcg', 'tdb', 'tt', 'ut1', 'utc']`\r\n\r\n\r\n A similar fix was implemented for this issue but it was only match uppercase \u2018UTC (TBR)\u2019\r\n\r\nhttps://github.com/sunpy/sunpy/blob/71b09358db2a08fa2aec34a9798c1cc7ed6368ac/sunpy/map/sources/hinode.py#L49-L51\r\n\n", "before_files": [{"content": "\"\"\"Hinode XRT and SOT Map subclass definitions\"\"\"\n\n__author__ = [\"Jack Ireland, Jose Ivan Campos-Rozo, David Perez-Suarez\"]\n__email__ = \"jack.ireland@nasa.gov\"\n\nfrom sunpy import log\nfrom sunpy.map import GenericMap\n\n__all__ = ['XRTMap', 'SOTMap']\n\n# the following values comes from xrt_prep.pro\n# search for saturation in\n# http://darts.jaxa.jp/pub/ssw/hinode/xrt/idl/util/xrt_prep.pro\n# SATURATION_LIMIT = 2500\n\n\ndef _lower_list(l):\n    return [item.lower() for item in l]\n\n\nclass XRTMap(GenericMap):\n    \"\"\"Hinode XRT map definition.\n\n    The X-Ray Telescope (XRT) is a high resolution grazing incidence telescope,\n    which is a succsessor to Yohkoh. It provides 2-arcsecond resolution images\n    of the highest temperature solar coronal material,\n    from 1,000,000 to 10,000,000 Kelvin.\n\n    Hinode was launched on 22 September 2006 into a sun-synchronous orbit.\n\n    References\n    ----------\n    * `Hinode Mission Page <https://solarb.msfc.nasa.gov/index.html>`_\n    * `XRT Instrument Page <http://xrt.cfa.harvard.edu>`_\n    * `Fits header reference <http://hinode.nao.ac.jp/uploads/2016/04/22/SB_MW_Key13.pdf>`_\n    * `Hinode User Guide <http://hinode.nao.ac.jp/en/for-researchers/analysis-guide/>`_\n    * `XRT Analysis Guide <http://xrt.cfa.harvard.edu/science/tutorials.php>`_\n    * `Coronal Temperature Diagnostic Capability of the Hinode/X-Ray Telescope Based on Self-Consistent Calibration <https://arxiv.org/abs/1011.2867>`_\n    \"\"\"\n    filter_wheel1_measurements = [\"Al_med\", \"Al_poly\", \"Be_med\",\n                                  \"Be_thin\", \"C_poly\", \"Open\"]\n    filter_wheel2_measurements = [\"Open\", \"Al_mesh\", \"Al_thick\",\n                                  \"Be_thick\", \"Gband\", \"Ti_poly\"]\n\n    def __init__(self, data, header, **kwargs):\n\n        super().__init__(data, header, **kwargs)\n\n        if self.meta.get('timesys', '') == 'UTC (TBR)':\n            log.debug('Modifying TIMESYS keyword from \"UTC (TBR)\" to \"UTC\"')\n            self.meta['timesys'] = 'UTC'\n\n        # converting data array to masked array\n        # self.data = ma.masked_where(self.data > SATURATION_LIMIT, self.data)\n\n        fw1 = header.get('EC_FW1_')\n        if fw1.lower() not in _lower_list(self.filter_wheel1_measurements):\n            raise ValueError('Unpexpected filter wheel 1 in header.')\n        fw1 = fw1.replace(\"_\", \" \")\n\n        fw2 = header.get('EC_FW2_')\n        if fw2.lower() not in _lower_list(self.filter_wheel2_measurements):\n            raise ValueError('Unpexpected filter wheel 2 in header.')\n        fw2 = fw2.replace(\"_\", \" \")\n\n        self.meta['detector'] = \"XRT\"\n#        self.meta['instrume'] = \"XRT\"\n        self.meta['telescop'] = \"Hinode\"\n        self.plot_settings['cmap'] = 'hinodexrt'\n\n    @property\n    def measurement(self):\n        fw1 = self.meta.get('EC_FW1_').replace(\"_\", \" \")\n        fw2 = self.meta.get('EC_FW2_').replace(\"_\", \" \")\n        return f\"{fw1}-{fw2}\"\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an XRT image\"\"\"\n        return header.get('instrume') == 'XRT'\n\n\nclass SOTMap(GenericMap):\n    \"\"\"Hinode SOT Image Map definition.\n\n    The Hinode Solar Optical Telescope (SOT) consists of a 50 cm\n    diffraction-limited Gregorian telescope. It is optimized for\n    accurate measurement of the vector magnetic\n    field in the photosphere and dynamics of both the photosphere and\n    chromosphere associated with the magnetic fields.\n\n    Hinode was launched on 22 September 2006 into a sun-synchronous orbit.\n\n    References\n    ----------\n    * `Hinode Mission Page <http://solarb.msfc.nasa.gov/index.html>`_\n    * `Hinode SOT Instrument Page <http://sot.lmsal.com>`_\n    * `Hinode SOT Instrument Paper <https://arxiv.org/abs/0711.1715>`_\n    * `Data Analsis Guide <https://sot.lmsal.com/doc/rep/sot254/fid366/SOT00042_33_SOT_Analysis_Guide_SAG.pdf>`_\n    \"\"\"\n    # TODO: get a link for the SOT FITS headers\n    # Add in some information about the the possible instrument, observation\n    # type, observable ion and wavelength\n\n    Instruments = ['SOT/WB', 'SOT/NB', 'SOT/SP', 'SOT/CT']\n\n    Waves = ['6302A', 'BFI no move', 'CN bandhead 3883',\n             'Ca II H line', 'G band 4305', 'NFI no move',\n             'TF Fe I 6302', 'TF Mg I 5172', 'TF Na I 5896',\n             'blue cont 4504', 'green cont 5550', 'red cont 6684']\n\n    Observation_Type = ['FG (simple)', 'FG focus scan',\n                        'FG shuttered I and V', 'FG shutterless I and V',\n                        'FG shutterless I and V with 0.2s intervals',\n                        'FG shutterless Stokes', 'SP IQUV 4D array']\n\n    def __init__(self, data, header, **kwargs):\n        super().__init__(data, header, **kwargs)\n\n        self.meta['detector'] = \"SOT\"\n        self.meta['telescop'] = \"Hinode\"\n        self._nickname = self.detector\n\n        # TODO (add other options, Now all threated as intensity. This follows\n        # Hinode SDC archive) StokesQUV -> grey, Velocity -> EIS, Width -> EIS,\n        # Mag Field Azi -> IDL 5 (STD gamma II)\n        # 'WB' -> red\n        # 'NB'(0 = red); (>0 = gray), # nb has 1 stokes I, the rest quv\n        # 'SP' (<=1 = red); (>1 = gray) #sp has 2 stokes I, the rest quv\n        color = {'SOT/WB': 'intensity',\n                 'SOT/NB': 'intensity',  # For the 1st dimension\n                 'SOT/SP': 'intensity',  # For the 1st 2 dimensions\n                 }\n\n        self.plot_settings['cmap'] = 'hinodesot' + color[self.instrument]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an SOT image.\"\"\"\n        return header.get('instrume') in cls.Instruments\n", "path": "sunpy/map/sources/hinode.py"}], "after_files": [{"content": "\"\"\"Hinode XRT and SOT Map subclass definitions\"\"\"\nfrom sunpy import log\nfrom sunpy.map import GenericMap\n\n__author__ = [\"Jack Ireland, Jose Ivan Campos-Rozo, David Perez-Suarez\"]\n__email__ = \"jack.ireland@nasa.gov\"\n\n__all__ = ['XRTMap', 'SOTMap']\n\n\ndef _lower_list(l):\n    return [item.lower() for item in l]\n\n\nclass XRTMap(GenericMap):\n    \"\"\"Hinode XRT map definition.\n\n    The X-Ray Telescope (XRT) is a high resolution grazing incidence telescope,\n    which is a succsessor to Yohkoh. It provides 2-arcsecond resolution images\n    of the highest temperature solar coronal material,\n    from 1,000,000 to 10,000,000 Kelvin.\n\n    Hinode was launched on 22 September 2006 into a sun-synchronous orbit.\n\n    References\n    ----------\n    * `Hinode Mission Page <https://solarb.msfc.nasa.gov/index.html>`_\n    * `XRT Instrument Page <http://xrt.cfa.harvard.edu>`_\n    * `Fits header reference <http://hinode.nao.ac.jp/uploads/2016/04/22/SB_MW_Key13.pdf>`_\n    * `Hinode User Guide <http://hinode.nao.ac.jp/en/for-researchers/analysis-guide/>`_\n    * `XRT Analysis Guide <http://xrt.cfa.harvard.edu/science/tutorials.php>`_\n    * `Coronal Temperature Diagnostic Capability of the Hinode/X-Ray Telescope Based on Self-Consistent Calibration <https://arxiv.org/abs/1011.2867>`_\n    \"\"\"\n    filter_wheel1_measurements = [\"Al_med\", \"Al_poly\", \"Be_med\",\n                                  \"Be_thin\", \"C_poly\", \"Open\"]\n    filter_wheel2_measurements = [\"Open\", \"Al_mesh\", \"Al_thick\",\n                                  \"Be_thick\", \"Gband\", \"Ti_poly\"]\n\n    def __init__(self, data, header, **kwargs):\n\n        super().__init__(data, header, **kwargs)\n\n        if self.meta.get('timesys', '').upper() == 'UTC (TBR)':\n            log.debug('Modifying TIMESYS keyword from \"UTC (TBR)\" to \"UTC\"')\n            self.meta['timesys'] = 'UTC'\n\n        fw1 = header.get('EC_FW1_')\n        if fw1.lower() not in _lower_list(self.filter_wheel1_measurements):\n            raise ValueError('Unpexpected filter wheel 1 in header.')\n        fw1 = fw1.replace(\"_\", \" \")\n\n        fw2 = header.get('EC_FW2_')\n        if fw2.lower() not in _lower_list(self.filter_wheel2_measurements):\n            raise ValueError('Unpexpected filter wheel 2 in header.')\n        fw2 = fw2.replace(\"_\", \" \")\n\n        self.meta['detector'] = \"XRT\"\n        self.meta['telescop'] = \"Hinode\"\n        self.plot_settings['cmap'] = 'hinodexrt'\n\n    @property\n    def measurement(self):\n        fw1 = self.meta.get('EC_FW1_').replace(\"_\", \" \")\n        fw2 = self.meta.get('EC_FW2_').replace(\"_\", \" \")\n        return f\"{fw1}-{fw2}\"\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an XRT image\"\"\"\n        return header.get('instrume') == 'XRT'\n\n\nclass SOTMap(GenericMap):\n    \"\"\"Hinode SOT Image Map definition.\n\n    The Hinode Solar Optical Telescope (SOT) consists of a 50 cm\n    diffraction-limited Gregorian telescope. It is optimized for\n    accurate measurement of the vector magnetic\n    field in the photosphere and dynamics of both the photosphere and\n    chromosphere associated with the magnetic fields.\n\n    Hinode was launched on 22 September 2006 into a sun-synchronous orbit.\n\n    References\n    ----------\n    * `Hinode Mission Page <http://solarb.msfc.nasa.gov/index.html>`_\n    * `Hinode SOT Instrument Page <http://sot.lmsal.com>`_\n    * `Hinode SOT Instrument Paper <https://arxiv.org/abs/0711.1715>`_\n    * `Data Analsis Guide <https://sot.lmsal.com/doc/rep/sot254/fid366/SOT00042_33_SOT_Analysis_Guide_SAG.pdf>`_\n    \"\"\"\n    # TODO: get a link for the SOT FITS headers\n    # Add in some information about the the possible instrument, observation\n    # type, observable ion and wavelength\n\n    Instruments = ['SOT/WB', 'SOT/NB', 'SOT/SP', 'SOT/CT']\n\n    Waves = ['6302A', 'BFI no move', 'CN bandhead 3883',\n             'Ca II H line', 'G band 4305', 'NFI no move',\n             'TF Fe I 6302', 'TF Mg I 5172', 'TF Na I 5896',\n             'blue cont 4504', 'green cont 5550', 'red cont 6684']\n\n    Observation_Type = ['FG (simple)', 'FG focus scan',\n                        'FG shuttered I and V', 'FG shutterless I and V',\n                        'FG shutterless I and V with 0.2s intervals',\n                        'FG shutterless Stokes', 'SP IQUV 4D array']\n\n    def __init__(self, data, header, **kwargs):\n        super().__init__(data, header, **kwargs)\n\n        self.meta['detector'] = \"SOT\"\n        self.meta['telescop'] = \"Hinode\"\n        self._nickname = self.detector\n\n        # TODO (add other options, Now all threated as intensity. This follows\n        # Hinode SDC archive) StokesQUV -> grey, Velocity -> EIS, Width -> EIS,\n        # Mag Field Azi -> IDL 5 (STD gamma II)\n        # 'WB' -> red\n        # 'NB'(0 = red); (>0 = gray), # nb has 1 stokes I, the rest quv\n        # 'SP' (<=1 = red); (>1 = gray) #sp has 2 stokes I, the rest quv\n        color = {'SOT/WB': 'intensity',\n                 'SOT/NB': 'intensity',  # For the 1st dimension\n                 'SOT/SP': 'intensity',  # For the 1st 2 dimensions\n                 }\n\n        self.plot_settings['cmap'] = 'hinodesot' + color[self.instrument]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an SOT image.\"\"\"\n        return header.get('instrume') in cls.Instruments\n", "path": "sunpy/map/sources/hinode.py"}]}