[{"data":1,"prerenderedAt":46},["ShallowReactive",2],{"analysis-playbook-maxi-allskymap-products":3},{"@context":4,"@type":5,"name":6,"description":7,"proficiencyLevel":8,"dependencies":9,"programmingLanguage":13,"keywords":14,"citation":23,"about":39,"articleBody":45},"https:\u002F\u002Fschema.org","TechArticle","MAXI\u002FSSC All-Sky Map Visualization","Visualize pre-generated MAXI all-sky X-ray map products (SSC: 0.7–4 keV, GSC: 2–16 keV) provided by the MAXI team. FITS files for each energy band are read directly from DARTS URLs using astropy, and rendered as single-band or RGB composite images.","beginner",[10,11,12],"astropy","matplotlib","numpy","Python",[15,16,17,18,19,20,21,22],"MAXI","SSC","all-sky map","X-ray","visualization","FITS","HEALPix","Aitoff-Hammer",[24,28,32,35],{"@type":25,"url":26,"name":27},"WebPage","https:\u002F\u002Fdarts.isas.jaxa.jp\u002Fdatasets\u002Fdarts:maxi-ssc-allsky\u002F","MAXI\u002FSSC All-Sky Map Dataset at DARTS",{"@type":29,"url":30,"name":31},"ScholarlyArticle","https:\u002F\u002Fdoi.org\u002F10.1093\u002Fpasj\u002F61.5.999","The MAXI Mission on the ISS: Science and Instruments for Monitoring All-Sky X-Ray Images",{"@type":29,"url":33,"name":34},"https:\u002F\u002Fdoi.org\u002F10.1093\u002Fpasj\u002Fpsz139","MAXI\u002FSSC all-sky maps from 0.7 keV to 4 keV",{"@type":36,"url":37,"name":38},"SoftwareApplication","https:\u002F\u002Fwww.astropy.org\u002F","Astropy",[40,43],{"@type":41,"name":42},"Dataset","darts:maxi-ssc-allsky",{"@type":41,"name":44},"darts:maxi-gsc-allsky","## MAXI All-Sky Map Visualization\n\nThis playbook describes how to visualize the **pre-generated all-sky maps** provided by the MAXI team.\nFor generating maps from event-by-event photon data, see the separate playbook `maxi-allskymap-from-events`.\n\nMAXI provides all-sky X-ray maps from two instruments: the Solid-state Slit Camera (SSC) and the Gas Slit Camera (GSC).\nFile URLs for each energy band are listed on the dataset pages at DARTS:\n\n- SSC: https:\u002F\u002Fdarts.isas.jaxa.jp\u002Fdatasets\u002Fdarts:maxi-ssc-allsky\u002F\n- GSC: https:\u002F\u002Fdarts.isas.jaxa.jp\u002Fdatasets\u002Fdarts:maxi-gsc-allsky\u002F\n\n---\n\n### Available Energy Bands\n\n#### MAXI\u002FSSC (0.7–4.0 keV, 2009–2011)\n\nUnits: counts deg⁻² cm⁻² s⁻¹\n\n| Energy (keV) | PI Channel |\n|---|---|\n| 0.7–1.0 | 192–273 |\n| 1.0–2.0 | 274–547 |\n| 2.0–4.0 | 548–1095 |\n\n#### MAXI\u002FGSC (2–16 keV, 2009–2020)\n\nUnits: counts cm⁻² s⁻¹\n\n| Energy (keV) | PI Channel |\n|---|---|\n| 2–4  | 40–80   |\n| 4–8  | 80–160  |\n| 8–16 | 160–320 |\n\nBoth instruments share the same FITS structure:\n\n- **Primary HDU**: 2D image in Aitoff-Hammer projection (Galactic coordinates)\n- **Secondary HDU**: HEALPix table (Equatorial coordinates, NESTED, NSIDE=128); intensity column is `RATE` (SSC) or `CNTS` (GSC)\n\n---\n\n### Visualization with Python\n\n#### Requirements\n\n```\npip install astropy matplotlib numpy\n```\n\n#### Example 1: Display a single-band image\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom astropy.io import fits\n\n# Obtain the URL from the dataset page\nurl = \"https:\u002F\u002F...\"\n\nwith fits.open(url) as hdul:\n    image = hdul[0].data\n\nimage = np.where(image > 0, image, np.nan)\n\nfig, ax = plt.subplots(figsize=(12, 6))\nim = ax.imshow(np.log10(image), origin=\"lower\", cmap=\"afmhot\", aspect=\"auto\")\nfig.colorbar(im, ax=ax, label=r\"log$_{10}$ Intensity\")\nax.set_title(\"MAXI\u002FSSC All-Sky Map (Galactic, Aitoff-Hammer)\")\nax.set_xlabel(\"Galactic Longitude\")\nax.set_ylabel(\"Galactic Latitude\")\nplt.tight_layout()\nplt.close()\n```\n\n#### Example 2: Three-color (RGB) composite image\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom astropy.io import fits\n\n# Obtain the URLs from the dataset page; assign soft→R, mid→G, hard→B\nurl_r = \"https:\u002F\u002F...\"\nurl_g = \"https:\u002F\u002F...\"\nurl_b = \"https:\u002F\u002F...\"\n\nchannels = {}\nfor key, url in [(\"r\", url_r), (\"g\", url_g), (\"b\", url_b)]:\n    with fits.open(url) as hdul:\n        data = hdul[0].data\n    channels[key] = np.where(data > 0, data, 0.0)\n\ndef normalize(arr):\n    vmax = np.nanpercentile(arr[arr > 0], 99)\n    return np.clip(arr \u002F vmax, 0, 1)\n\nrgb = np.stack([normalize(channels[\"r\"]),\n                normalize(channels[\"g\"]),\n                normalize(channels[\"b\"])], axis=-1)\n\nfig, ax = plt.subplots(figsize=(12, 6))\nax.imshow(rgb, origin=\"lower\", aspect=\"auto\")\nax.set_title(\"MAXI All-Sky RGB Map\")\nax.set_xlabel(\"Galactic Longitude\")\nax.set_ylabel(\"Galactic Latitude\")\nplt.tight_layout()\nplt.close()\n```\n\n#### Example 3: Read the HEALPix data from the secondary HDU\n\n```python\nfrom astropy.io import fits\nfrom astropy.table import Table\n\n# SSC: intensity column is \"RATE\"; GSC: \"CNTS\"\nurl = \"https:\u002F\u002F...\"\n\nwith fits.open(url) as hdul:\n    table = Table(hdul[1].data)\n\nprint(table.colnames)\nprint(table[:5])\n```\n\n---\n\n### Acknowledgement\n\nWhen using this data in publications, please include:\n\n> \"This research has made use of MAXI data provided by RIKEN, JAXA and the MAXI team.\"\n\nand cite:\n\n- Matsuoka, M. et al. (2009), PASJ, 61, 999. [doi:10.1093\u002Fpasj\u002F61.5.999](https:\u002F\u002Fdoi.org\u002F10.1093\u002Fpasj\u002F61.5.999)\n- Nakahira, S. et al. (2020), PASJ, 72, 17. [doi:10.1093\u002Fpasj\u002Fpsz139](https:\u002F\u002Fdoi.org\u002F10.1093\u002Fpasj\u002Fpsz139) — for SSC maps\n- Sugizaki, M. et al. (2011), PASJ, 63, S635. [doi:10.1093\u002Fpasj\u002F63.sp3.S635](https:\u002F\u002Fdoi.org\u002F10.1093\u002Fpasj\u002F63.sp3.S635) — for GSC instrument\n",1780296758235]