We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
`HMISynopticMap` is missing a docstring
`HMISynopticMap` has no docstring.  At minimum, it should at least have something analogous to what `MDISynopticMap` has:
https://github.com/sunpy/sunpy/blob/824f72026403001c65e23f24ced3ff5eb7d13a68/sunpy/map/sources/soho.py#L227-L229

However, it'd be better if it had more meat to it (e.g., explanation and references).

--- 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/sdo.py`
Content:
```
1 """SDO Map subclass definitions"""
2 
3 import numpy as np
4 
5 import astropy.units as u
6 from astropy.coordinates import CartesianRepresentation, HeliocentricMeanEcliptic
7 from astropy.visualization import AsinhStretch
8 from astropy.visualization.mpl_normalize import ImageNormalize
9 
10 from sunpy import log
11 from sunpy.map import GenericMap
12 from sunpy.map.sources.source_type import source_stretch
13 
14 __all__ = ['AIAMap', 'HMIMap', 'HMISynopticMap']
15 
16 
17 class AIAMap(GenericMap):
18     """AIA Image Map.
19 
20     The Atmospheric Imaging Assembly is a set of four telescopes that employ
21     normal-incidence, multi-layer coated optics to provide narrow-band imaging
22     of the Sun. It provides high resolution full-disk images of the corona and
23     transition region up to 0.5 solar radii above the solar limb with 1.5
24     arcsecond angular resolution and 12-second temporal resolution. It observes
25     the Sun in the following seven extreme ultraviolet bandpasses: 94 A
26     (Fe XVIII), 131 A (Fe VIII, XXI), 171 A (Fe IX), 193 A (Fe XII, XXIV),
27     211 A (Fe XIV), 304 A (He II), 335 A (Fe XVI). One telescope observes
28     in the visible 1600 A (C IV) and the nearby continuum (1700 A).
29 
30     Notes
31     -----
32     Observer location: The standard AIA FITS header provides the spacecraft location in multiple
33     coordinate systems, including Heliocentric Aries Ecliptic (HAE) and Heliographic Stonyhurst
34     (HGS).  SunPy uses the provided HAE coordinates due to accuracy concerns with the provided
35     HGS coordinates, but other software packages may make different choices.
36 
37     References
38     ----------
39     * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_
40     * `Instrument Page <https://aia.lmsal.com>`_
41     * `Fits Header keywords <http://jsoc.stanford.edu/doc/keywords/AIA/AIA02840_A_AIA-SDO_FITS_Keyword_Documents.pdf>`_
42     * `Analysis Guide <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/>`_
43     * `Instrument Paper <https://doi.org/10.1007/s11207-011-9776-8>`_
44     * `wavelengths and temperature response reference <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/figures/aia_tel_resp.png>`_
45     """
46 
47     def __init__(self, data, header, **kwargs):
48         if 'bunit' not in header and 'pixlunit' in header:
49             # PIXLUNIT is not a FITS standard keyword
50             header['bunit'] = header['pixlunit']
51 
52         super().__init__(data, header, **kwargs)
53 
54         # Fill in some missing info
55         self.meta['detector'] = self.meta.get('detector', "AIA")
56         self._nickname = self.detector
57         self.plot_settings['cmap'] = self._get_cmap_name()
58         self.plot_settings['norm'] = ImageNormalize(
59             stretch=source_stretch(self.meta, AsinhStretch(0.01)), clip=False)
60 
61     @property
62     def _supported_observer_coordinates(self):
63         return [(('haex_obs', 'haey_obs', 'haez_obs'), {'x': self.meta.get('haex_obs'),
64                                                         'y': self.meta.get('haey_obs'),
65                                                         'z': self.meta.get('haez_obs'),
66                                                         'unit': u.m,
67                                                         'representation_type': CartesianRepresentation,
68                                                         'frame': HeliocentricMeanEcliptic})
69                 ] + super()._supported_observer_coordinates
70 
71     @property
72     def observatory(self):
73         """
74         Returns the observatory.
75         """
76         return self.meta.get('telescop', '').split('/')[0]
77 
78     @classmethod
79     def is_datasource_for(cls, data, header, **kwargs):
80         """Determines if header corresponds to an AIA image"""
81         return str(header.get('instrume', '')).startswith('AIA')
82 
83 
84 class HMIMap(GenericMap):
85     """HMI Image Map.
86 
87     HMI consists of a refracting telescope, a polarization selector,
88     an image stabilization system, a narrow band tunable filter
89     and two 4096 pixel CCD cameras. It observes the full solar disk in the Fe I
90     absorption line at 6173 Angstrom with a resolution of 1 arc-second.
91     HMI takes images in a sequence of tuning and polarizations at a 4-second
92     cadence for each camera. One camera is dedicated to a 45 s Doppler and
93     line-of-sight field sequence while the other to a 90 s vector field
94     sequence.
95 
96     References
97     ----------
98     * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_
99     * `Instrument Page <http://hmi.stanford.edu>`_
100     * `Analysis Guide <http://hmi.stanford.edu/doc/magnetic/guide.pdf>`_
101     """
102 
103     def __init__(self, data, header, **kwargs):
104 
105         super().__init__(data, header, **kwargs)
106 
107         self.meta['detector'] = self.meta.get('detector', "HMI")
108         self._nickname = self.detector
109 
110     @property
111     def measurement(self):
112         """
113         Returns the measurement type.
114         """
115         return self.meta.get('content', '').split(" ")[0].lower()
116 
117     @property
118     def observatory(self):
119         """
120         Returns the observatory.
121         """
122         return self.meta.get('telescop', '').split('/')[0]
123 
124     @classmethod
125     def is_datasource_for(cls, data, header, **kwargs):
126         """Determines if header corresponds to an HMI image"""
127         return (str(header.get('TELESCOP', '')).endswith('HMI') and
128                 not HMISynopticMap.is_datasource_for(data, header))
129 
130 
131 class HMISynopticMap(HMIMap):
132 
133     def __init__(self, data, header, **kwargs):
134         super().__init__(data, header, **kwargs)
135 
136         if self.meta['cunit1'] == 'Degree':
137             self.meta['cunit1'] = 'deg'
138 
139         if self.meta['cunit2'] == 'Sine Latitude':
140             log.debug("Editing CUNIT2, CDELT1, CDLET2 keywords to the correct "
141                       "values for a CEA projection.")
142             self.meta['cunit2'] = 'deg'
143 
144             # Since, this map uses the cylindrical equal-area (CEA) projection,
145             # the spacing should be modified to 180/pi times the original value
146             # Reference: Section 5.5, Thompson 2006
147             self.meta['cdelt2'] = 180 / np.pi * self.meta['cdelt2']
148             self.meta['cdelt1'] = np.abs(self.meta['cdelt1'])
149 
150         if 'date-obs' not in self.meta and 't_obs' in self.meta:
151             log.debug('Setting "DATE-OBS" keyword from "T_OBS"')
152             self.meta['date-obs'] = self.meta['t_obs']
153 
154     @classmethod
155     def is_datasource_for(cls, data, header, **kwargs):
156         """
157         Determines if header corresponds to an HMI synoptic map.
158         """
159         return (str(header.get('TELESCOP', '')).endswith('HMI') and
160                 str(header.get('CONTENT', '')) ==
161                 'Carrington Synoptic Chart Of Br Field')
162
```
--- 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/sdo.py b/sunpy/map/sources/sdo.py
--- a/sunpy/map/sources/sdo.py
+++ b/sunpy/map/sources/sdo.py
@@ -129,7 +129,19 @@
 
 
 class HMISynopticMap(HMIMap):
+    """
+    SDO/HMI Synoptic Map.
+
+    Synoptic maps are constructed from HMI 720s line-of-sight magnetograms
+    collected over a 27-day solar rotation.
+
+    See `~sunpy.map.sources.sdo.HMIMap` for information on the HMI instrument.
 
+    References
+    ----------
+    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`__
+    * `JSOC's HMI Synoptic Charts <http://jsoc.stanford.edu/HMI/LOS_Synoptic_charts.html>`__
+    """
     def __init__(self, data, header, **kwargs):
         super().__init__(data, header, **kwargs)

{"golden_diff": "diff --git a/sunpy/map/sources/sdo.py b/sunpy/map/sources/sdo.py\n--- a/sunpy/map/sources/sdo.py\n+++ b/sunpy/map/sources/sdo.py\n@@ -129,7 +129,19 @@\n \n \n class HMISynopticMap(HMIMap):\n+    \"\"\"\n+    SDO/HMI Synoptic Map.\n+\n+    Synoptic maps are constructed from HMI 720s line-of-sight magnetograms\n+    collected over a 27-day solar rotation.\n+\n+    See `~sunpy.map.sources.sdo.HMIMap` for information on the HMI instrument.\n \n+    References\n+    ----------\n+    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`__\n+    * `JSOC's HMI Synoptic Charts <http://jsoc.stanford.edu/HMI/LOS_Synoptic_charts.html>`__\n+    \"\"\"\n     def __init__(self, data, header, **kwargs):\n         super().__init__(data, header, **kwargs)\n", "issue": "`HMISynopticMap` is missing a docstring\n`HMISynopticMap` has no docstring.  At minimum, it should at least have something analogous to what `MDISynopticMap` has:\r\nhttps://github.com/sunpy/sunpy/blob/824f72026403001c65e23f24ced3ff5eb7d13a68/sunpy/map/sources/soho.py#L227-L229\r\n\r\nHowever, it'd be better if it had more meat to it (e.g., explanation and references).\n", "before_files": [{"content": "\"\"\"SDO Map subclass definitions\"\"\"\n\nimport numpy as np\n\nimport astropy.units as u\nfrom astropy.coordinates import CartesianRepresentation, HeliocentricMeanEcliptic\nfrom astropy.visualization import AsinhStretch\nfrom astropy.visualization.mpl_normalize import ImageNormalize\n\nfrom sunpy import log\nfrom sunpy.map import GenericMap\nfrom sunpy.map.sources.source_type import source_stretch\n\n__all__ = ['AIAMap', 'HMIMap', 'HMISynopticMap']\n\n\nclass AIAMap(GenericMap):\n    \"\"\"AIA Image Map.\n\n    The Atmospheric Imaging Assembly is a set of four telescopes that employ\n    normal-incidence, multi-layer coated optics to provide narrow-band imaging\n    of the Sun. It provides high resolution full-disk images of the corona and\n    transition region up to 0.5 solar radii above the solar limb with 1.5\n    arcsecond angular resolution and 12-second temporal resolution. It observes\n    the Sun in the following seven extreme ultraviolet bandpasses: 94 A\n    (Fe XVIII), 131 A (Fe VIII, XXI), 171 A (Fe IX), 193 A (Fe XII, XXIV),\n    211 A (Fe XIV), 304 A (He II), 335 A (Fe XVI). One telescope observes\n    in the visible 1600 A (C IV) and the nearby continuum (1700 A).\n\n    Notes\n    -----\n    Observer location: The standard AIA FITS header provides the spacecraft location in multiple\n    coordinate systems, including Heliocentric Aries Ecliptic (HAE) and Heliographic Stonyhurst\n    (HGS).  SunPy uses the provided HAE coordinates due to accuracy concerns with the provided\n    HGS coordinates, but other software packages may make different choices.\n\n    References\n    ----------\n    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_\n    * `Instrument Page <https://aia.lmsal.com>`_\n    * `Fits Header keywords <http://jsoc.stanford.edu/doc/keywords/AIA/AIA02840_A_AIA-SDO_FITS_Keyword_Documents.pdf>`_\n    * `Analysis Guide <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/>`_\n    * `Instrument Paper <https://doi.org/10.1007/s11207-011-9776-8>`_\n    * `wavelengths and temperature response reference <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/figures/aia_tel_resp.png>`_\n    \"\"\"\n\n    def __init__(self, data, header, **kwargs):\n        if 'bunit' not in header and 'pixlunit' in header:\n            # PIXLUNIT is not a FITS standard keyword\n            header['bunit'] = header['pixlunit']\n\n        super().__init__(data, header, **kwargs)\n\n        # Fill in some missing info\n        self.meta['detector'] = self.meta.get('detector', \"AIA\")\n        self._nickname = self.detector\n        self.plot_settings['cmap'] = self._get_cmap_name()\n        self.plot_settings['norm'] = ImageNormalize(\n            stretch=source_stretch(self.meta, AsinhStretch(0.01)), clip=False)\n\n    @property\n    def _supported_observer_coordinates(self):\n        return [(('haex_obs', 'haey_obs', 'haez_obs'), {'x': self.meta.get('haex_obs'),\n                                                        'y': self.meta.get('haey_obs'),\n                                                        'z': self.meta.get('haez_obs'),\n                                                        'unit': u.m,\n                                                        'representation_type': CartesianRepresentation,\n                                                        'frame': HeliocentricMeanEcliptic})\n                ] + super()._supported_observer_coordinates\n\n    @property\n    def observatory(self):\n        \"\"\"\n        Returns the observatory.\n        \"\"\"\n        return self.meta.get('telescop', '').split('/')[0]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an AIA image\"\"\"\n        return str(header.get('instrume', '')).startswith('AIA')\n\n\nclass HMIMap(GenericMap):\n    \"\"\"HMI Image Map.\n\n    HMI consists of a refracting telescope, a polarization selector,\n    an image stabilization system, a narrow band tunable filter\n    and two 4096 pixel CCD cameras. It observes the full solar disk in the Fe I\n    absorption line at 6173 Angstrom with a resolution of 1 arc-second.\n    HMI takes images in a sequence of tuning and polarizations at a 4-second\n    cadence for each camera. One camera is dedicated to a 45 s Doppler and\n    line-of-sight field sequence while the other to a 90 s vector field\n    sequence.\n\n    References\n    ----------\n    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_\n    * `Instrument Page <http://hmi.stanford.edu>`_\n    * `Analysis Guide <http://hmi.stanford.edu/doc/magnetic/guide.pdf>`_\n    \"\"\"\n\n    def __init__(self, data, header, **kwargs):\n\n        super().__init__(data, header, **kwargs)\n\n        self.meta['detector'] = self.meta.get('detector', \"HMI\")\n        self._nickname = self.detector\n\n    @property\n    def measurement(self):\n        \"\"\"\n        Returns the measurement type.\n        \"\"\"\n        return self.meta.get('content', '').split(\" \")[0].lower()\n\n    @property\n    def observatory(self):\n        \"\"\"\n        Returns the observatory.\n        \"\"\"\n        return self.meta.get('telescop', '').split('/')[0]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an HMI image\"\"\"\n        return (str(header.get('TELESCOP', '')).endswith('HMI') and\n                not HMISynopticMap.is_datasource_for(data, header))\n\n\nclass HMISynopticMap(HMIMap):\n\n    def __init__(self, data, header, **kwargs):\n        super().__init__(data, header, **kwargs)\n\n        if self.meta['cunit1'] == 'Degree':\n            self.meta['cunit1'] = 'deg'\n\n        if self.meta['cunit2'] == 'Sine Latitude':\n            log.debug(\"Editing CUNIT2, CDELT1, CDLET2 keywords to the correct \"\n                      \"values for a CEA projection.\")\n            self.meta['cunit2'] = 'deg'\n\n            # Since, this map uses the cylindrical equal-area (CEA) projection,\n            # the spacing should be modified to 180/pi times the original value\n            # Reference: Section 5.5, Thompson 2006\n            self.meta['cdelt2'] = 180 / np.pi * self.meta['cdelt2']\n            self.meta['cdelt1'] = np.abs(self.meta['cdelt1'])\n\n        if 'date-obs' not in self.meta and 't_obs' in self.meta:\n            log.debug('Setting \"DATE-OBS\" keyword from \"T_OBS\"')\n            self.meta['date-obs'] = self.meta['t_obs']\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"\n        Determines if header corresponds to an HMI synoptic map.\n        \"\"\"\n        return (str(header.get('TELESCOP', '')).endswith('HMI') and\n                str(header.get('CONTENT', '')) ==\n                'Carrington Synoptic Chart Of Br Field')\n", "path": "sunpy/map/sources/sdo.py"}], "after_files": [{"content": "\"\"\"SDO Map subclass definitions\"\"\"\n\nimport numpy as np\n\nimport astropy.units as u\nfrom astropy.coordinates import CartesianRepresentation, HeliocentricMeanEcliptic\nfrom astropy.visualization import AsinhStretch\nfrom astropy.visualization.mpl_normalize import ImageNormalize\n\nfrom sunpy import log\nfrom sunpy.map import GenericMap\nfrom sunpy.map.sources.source_type import source_stretch\n\n__all__ = ['AIAMap', 'HMIMap', 'HMISynopticMap']\n\n\nclass AIAMap(GenericMap):\n    \"\"\"AIA Image Map.\n\n    The Atmospheric Imaging Assembly is a set of four telescopes that employ\n    normal-incidence, multi-layer coated optics to provide narrow-band imaging\n    of the Sun. It provides high resolution full-disk images of the corona and\n    transition region up to 0.5 solar radii above the solar limb with 1.5\n    arcsecond angular resolution and 12-second temporal resolution. It observes\n    the Sun in the following seven extreme ultraviolet bandpasses: 94 A\n    (Fe XVIII), 131 A (Fe VIII, XXI), 171 A (Fe IX), 193 A (Fe XII, XXIV),\n    211 A (Fe XIV), 304 A (He II), 335 A (Fe XVI). One telescope observes\n    in the visible 1600 A (C IV) and the nearby continuum (1700 A).\n\n    Notes\n    -----\n    Observer location: The standard AIA FITS header provides the spacecraft location in multiple\n    coordinate systems, including Heliocentric Aries Ecliptic (HAE) and Heliographic Stonyhurst\n    (HGS).  SunPy uses the provided HAE coordinates due to accuracy concerns with the provided\n    HGS coordinates, but other software packages may make different choices.\n\n    References\n    ----------\n    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_\n    * `Instrument Page <https://aia.lmsal.com>`_\n    * `Fits Header keywords <http://jsoc.stanford.edu/doc/keywords/AIA/AIA02840_A_AIA-SDO_FITS_Keyword_Documents.pdf>`_\n    * `Analysis Guide <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/>`_\n    * `Instrument Paper <https://doi.org/10.1007/s11207-011-9776-8>`_\n    * `wavelengths and temperature response reference <https://www.lmsal.com/sdodocs/doc/dcur/SDOD0060.zip/zip/entry/figures/aia_tel_resp.png>`_\n    \"\"\"\n\n    def __init__(self, data, header, **kwargs):\n        if 'bunit' not in header and 'pixlunit' in header:\n            # PIXLUNIT is not a FITS standard keyword\n            header['bunit'] = header['pixlunit']\n\n        super().__init__(data, header, **kwargs)\n\n        # Fill in some missing info\n        self.meta['detector'] = self.meta.get('detector', \"AIA\")\n        self._nickname = self.detector\n        self.plot_settings['cmap'] = self._get_cmap_name()\n        self.plot_settings['norm'] = ImageNormalize(\n            stretch=source_stretch(self.meta, AsinhStretch(0.01)), clip=False)\n\n    @property\n    def _supported_observer_coordinates(self):\n        return [(('haex_obs', 'haey_obs', 'haez_obs'), {'x': self.meta.get('haex_obs'),\n                                                        'y': self.meta.get('haey_obs'),\n                                                        'z': self.meta.get('haez_obs'),\n                                                        'unit': u.m,\n                                                        'representation_type': CartesianRepresentation,\n                                                        'frame': HeliocentricMeanEcliptic})\n                ] + super()._supported_observer_coordinates\n\n    @property\n    def observatory(self):\n        \"\"\"\n        Returns the observatory.\n        \"\"\"\n        return self.meta.get('telescop', '').split('/')[0]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an AIA image\"\"\"\n        return str(header.get('instrume', '')).startswith('AIA')\n\n\nclass HMIMap(GenericMap):\n    \"\"\"HMI Image Map.\n\n    HMI consists of a refracting telescope, a polarization selector,\n    an image stabilization system, a narrow band tunable filter\n    and two 4096 pixel CCD cameras. It observes the full solar disk in the Fe I\n    absorption line at 6173 Angstrom with a resolution of 1 arc-second.\n    HMI takes images in a sequence of tuning and polarizations at a 4-second\n    cadence for each camera. One camera is dedicated to a 45 s Doppler and\n    line-of-sight field sequence while the other to a 90 s vector field\n    sequence.\n\n    References\n    ----------\n    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`_\n    * `Instrument Page <http://hmi.stanford.edu>`_\n    * `Analysis Guide <http://hmi.stanford.edu/doc/magnetic/guide.pdf>`_\n    \"\"\"\n\n    def __init__(self, data, header, **kwargs):\n\n        super().__init__(data, header, **kwargs)\n\n        self.meta['detector'] = self.meta.get('detector', \"HMI\")\n        self._nickname = self.detector\n\n    @property\n    def measurement(self):\n        \"\"\"\n        Returns the measurement type.\n        \"\"\"\n        return self.meta.get('content', '').split(\" \")[0].lower()\n\n    @property\n    def observatory(self):\n        \"\"\"\n        Returns the observatory.\n        \"\"\"\n        return self.meta.get('telescop', '').split('/')[0]\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"Determines if header corresponds to an HMI image\"\"\"\n        return (str(header.get('TELESCOP', '')).endswith('HMI') and\n                not HMISynopticMap.is_datasource_for(data, header))\n\n\nclass HMISynopticMap(HMIMap):\n    \"\"\"\n    SDO/HMI Synoptic Map.\n\n    Synoptic maps are constructed from HMI 720s line-of-sight magnetograms\n    collected over a 27-day solar rotation.\n\n    See `~sunpy.map.sources.sdo.HMIMap` for information on the HMI instrument.\n\n    References\n    ----------\n    * `SDO Mission Page <https://sdo.gsfc.nasa.gov/>`__\n    * `JSOC's HMI Synoptic Charts <http://jsoc.stanford.edu/HMI/LOS_Synoptic_charts.html>`__\n    \"\"\"\n    def __init__(self, data, header, **kwargs):\n        super().__init__(data, header, **kwargs)\n\n        if self.meta['cunit1'] == 'Degree':\n            self.meta['cunit1'] = 'deg'\n\n        if self.meta['cunit2'] == 'Sine Latitude':\n            log.debug(\"Editing CUNIT2, CDELT1, CDLET2 keywords to the correct \"\n                      \"values for a CEA projection.\")\n            self.meta['cunit2'] = 'deg'\n\n            # Since, this map uses the cylindrical equal-area (CEA) projection,\n            # the spacing should be modified to 180/pi times the original value\n            # Reference: Section 5.5, Thompson 2006\n            self.meta['cdelt2'] = 180 / np.pi * self.meta['cdelt2']\n            self.meta['cdelt1'] = np.abs(self.meta['cdelt1'])\n\n        if 'date-obs' not in self.meta and 't_obs' in self.meta:\n            log.debug('Setting \"DATE-OBS\" keyword from \"T_OBS\"')\n            self.meta['date-obs'] = self.meta['t_obs']\n\n    @classmethod\n    def is_datasource_for(cls, data, header, **kwargs):\n        \"\"\"\n        Determines if header corresponds to an HMI synoptic map.\n        \"\"\"\n        return (str(header.get('TELESCOP', '')).endswith('HMI') and\n                str(header.get('CONTENT', '')) ==\n                'Carrington Synoptic Chart Of Br Field')\n", "path": "sunpy/map/sources/sdo.py"}]}