Repository: sunpy/sunpy

Issue:
Add an example gallery entry for querying SHARP data and constructing a Map
The SHARP data series is frequently used, but we do not have an example showing how to query the data or how to construct a Map for the data.

~~Currently, our `JSOCClient` does not support this, but~~ it can be done through `drms` directly, e.g. adapting the [example here](https://docs.sunpy.org/projects/drms/en/stable/generated/gallery/plot_synoptic_mr.html)

```python
import astropy.time
import drms

c = drms.Client()
sharp_num = 377
ts = astropy.time.Time('2011-02-10 22:00:00',scale='tai')
ds = f'hmi.sharp_cea_720s[{sharp_num}][{ts.tai.isot}_TAI/10h@1h]'
results, filenames = c.query(ds, key=drms.const.all, seg=['Bp','Br','Bt'])
```

Then, to download the first file for the phi component of the field ('Bp'),

```python
import astropy.io.fits

data = astropy.io.fits.getdata(f'http://jsoc.stanford.edu{filenames["Bp"][0]}')
header = dict(results.iloc[0])
m = sunpy.map.Map(data, header)
m.peek()
```

<img width="590" alt="image" src="https://user-images.githubusercontent.com/8676141/208489503-5719b77a-0af2-48c8-bf88-d17002b89cde.png">


It may be worth looking into adding support through our JSOC client for this kind of query as well as adding support for these types of maps, either through a standalone map class or through the existing HMIMap class.


Discussion:
Is this not something we should add to DRMS gallery since it doesn't use Fido at all?
We could. There is already an example of how to use drms to query the HARP series which is the thing I linked above. It would be nice to also show how to construct a map from the file and the header. My reasoning for not putting this issue under drms is that I don't think we use Map in any of the drms examples.
Fido supports this:

```python
from sunpy.net import Fido, attrs as a
import astropy.units as u
import sunpy.map

results = Fido.search(a.Time("2011-02-10 22:00:00", "2011-02-10 22:30:00"),
                      a.Sample(1*u.hour),
                      a.jsoc.Series("hmi.sharp_cea_720s"), 
                      a.jsoc.PrimeKey("HARPNUM", 377),
                      a.jsoc.Notify("..."),
                      a.jsoc.Segment("Bp"))

files = Fido.fetch(results)
```
```
Export request pending. [id=JSOC_20221220_354, status=2]
Waiting for 0 seconds...
1 URLs found for download. Full request totalling 1MB
Files Downloaded: 100%|█████████████| 1/1 [00:00<00:00,  2.86file/s]
```
```python
sharp_bp = sunpy.map.Map(files)
sharp_bp.peek()
```
![Figure_1](https://user-images.githubusercontent.com/1391051/208667404-ed3b0d0a-c473-4256-9b4c-0dbadf88434b.png)

this would go in the `plotting` section instead of `acquiring_data`, right?
I think it would go in `acquiring_data`

Resolving patch:
diff --git a/examples/acquiring_data/querying_and_loading_SHARP_data.py b/examples/acquiring_data/querying_and_loading_SHARP_data.py
new file mode 100644
--- /dev/null
+++ b/examples/acquiring_data/querying_and_loading_SHARP_data.py
@@ -0,0 +1,48 @@
+"""
+===============================
+Querying and loading SHARP data
+===============================
+
+In this example we will demonstrate how to acquire `Spaceweather HMI Active Region Patch (SHARP) <http://jsoc.stanford.edu/doc/data/hmi/sharp/sharp.htm>`__ data and load it into a `sunpy.map.Map`.
+"""
+import os
+
+import matplotlib.pyplot as plt
+
+import astropy.units as u
+
+import sunpy.map
+from sunpy.net import Fido
+from sunpy.net import attrs as a
+
+###################################################################
+# To search for SHARP data, we will need to query the `JSOC <http://jsoc.stanford.edu/>`__.
+# We will use `Fido <sunpy.net.fido_factory.UnifiedDownloaderFactory>`
+# and make use of the search attributes in `sunpy.net.jsoc` that allow us to query the JSOC.
+#
+# Exporting data from the JSOC requires registering your email first.
+# Please replace this with your email address once you have registered.
+# See `this page <http://jsoc.stanford.edu/ajax/register_email.html>`__ for more details.
+jsoc_email = os.environ["JSOC_EMAIL"]
+
+result = Fido.search(a.Time("2011-03-09 23:20:00", "2011-03-09 23:30:00"),
+                     a.Sample(1*u.hour),
+                     a.jsoc.Series("hmi.sharp_cea_720s"),
+                     a.jsoc.PrimeKey("HARPNUM", 401),
+                     a.jsoc.Notify(jsoc_email),
+                     a.jsoc.Segment("Bp"))
+print(result)
+
+###################################################################
+# Next, we can download the file.
+
+file = Fido.fetch(result)
+
+###################################################################
+# Now that we have the file, we can construct a `~sunpy.map.Map` and plot it.
+
+sharp_map = sunpy.map.Map(file)
+plt.figure()
+sharp_map.plot(vmin=-1500, vmax=1500)
+
+plt.show()


Test patch: