Depth-1

Depth-1

Depth-1 map products from the Large Aperture Telescope

Depth-1 Maps

Depth-1 maps are designed to represent a single, contiguous, observation from a telescope. More information on Depth-1 maps is available through the ACT webpages. Depth-1 maps are often used for systematic transient searches; see the linked paper below.

Accessing Maps

As we prepare for the first releases from the Simons Observatory, we are making the ACT Depth-1 maps available for download through the same system that SO plans to use. ACT's Depth-1 maps are in the same format as the SO maps will be, and are available through the SODACAN (Simons Observatory Data Access in Canada) network. Tools for selecting Depth-1 maps appropriate to your query are available through the Map Catalog (MapCat), described below.

The MapCat

The SO Map Catalog (MapCat) is a database that lists all the maps available through the SODACAN network, along with helpful metadata like the map's frequency, resolution, and importantly sky coverage. This allows you to pre-select which maps are of most use to your analysis before even downloading them. The MapCat is a SQLite database, and can be queried either directly or by using the MapCat python package.

The snippet below shows an example of how to download the map catalog and select and download all maps with time coverage in 2021. Pointing an AI agent at the MapCat repository for reference, and asking it to download a suite of maps based on a specific query is a good way to get started. Do note that for historical ACT data, not all fields are present.

import requests
import sqlite3

BUCKET_LOCATION = "https://object-arbutus.alliancecan.ca/f620008d8888477e9fc9e5dca514fbc3:sodacan-public/maps/act"
QUERY = """SELECT map_path
FROM depth_one_maps
WHERE
  start_time > "2021-01-01"
AND
  stop_time < "2022-01-01";"""

def download_file(url, local_filename):
    print("Downloading", url, "to", local_filename)
    with requests.get(url, stream=True) as r:
        r.raise_for_status()
        with open(local_filename, "wb") as f:
            for chunk in r.iter_content(chunk_size=1024 * 1024):
                f.write(chunk)

download_file(BUCKET_LOCATION + "/mapcat.db", "mapcat.db")

with sqlite3.connect("mapcat.db") as conn:
    cursor = conn.cursor()
    cursor.execute(QUERY)
    download_maps = cursor.fetchall()

for map in download_maps:
    download_file(BUCKET_LOCATION + map[0], map[0])