"""Single entry point: regenerates every table and figure of the seti_meta study. python3 code/run_all.py # uses cached raw downloads if present python3 code/run_all.py --offline # never touch the network (fails if the raw cache is missing) Steps 1. fetch_data download Technosearch, VizieR, CDS XMatch and Gaia tables into the raw directory (fermi_raw/seti_meta, override with SETI_META_RAW); cached 2. make_compilation write data/surveys_compilation.csv (hand-transcribed literature table) and check every arXiv identifier in it against the arXiv API (data/arxiv_verification.csv) 3. coverage N_cov(L, nu) per survey component, Galaxy-model validation 4. analysis limits, behaviour scenarios, robustness variants, posteriors, Dyson limits 5. figures figures/*.png 6. seti_likelihood self-test of the integrator function 7. make_report report.md, with every number filled in from the tables written above Runtime: about 5 minutes on one core once the raw files are cached. """ import os import runpy import sys import time HERE = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, HERE) os.chdir(HERE) def main(): t0 = time.time() import fetch_data if "--offline" not in sys.argv: fetch_data.main() runpy.run_path(os.path.join(HERE, "make_compilation.py"), run_name="__main__") fetch_data.verify_arxiv(offline="--offline" in sys.argv) import coverage print("\n[coverage]"); coverage.main() import analysis V, *_ = analysis.main() import figures figures.main(V) print("\n[seti_likelihood self-test]") runpy.run_path(os.path.join(HERE, "seti_likelihood.py"), run_name="__main__") import make_report print(); make_report.main() print("\n[run_all] done in %.0f s" % (time.time() - t0)) if __name__ == "__main__": main()