Add resumable all-sky 2MASS acquisition
This commit is contained in:
1 parent
388055c01e
commit
747f8eb695
6 files changed
+362
-7
No files matched your search
@@ -50,5 +50,29 @@ python3 scripts/process_2mass_psc.py \
|
||||
The resulting M44 CSV contains 7,802 sources after the documented three-band
|
||||
photometry and `rd_flg` selection.
|
||||
|
||||
## Full-sky acquisition
|
||||
|
||||
`scripts/download_2mass_psc_all_sky.py` provides a resumable full-sky
|
||||
acquisition without asking IRSA for a cone larger than 1 degree. Inspect its
|
||||
storage plan before starting the long download:
|
||||
|
||||
```sh
|
||||
python3 scripts/download_2mass_psc_all_sky.py --plan
|
||||
python3 scripts/download_2mass_psc_all_sky.py --download --workers 2
|
||||
```
|
||||
|
||||
It covers each latitude band with integer-RA cone sectors, wider at high
|
||||
latitudes, while outputs are cleaned and retained by unique 1-degree RA/Dec
|
||||
ownership cells. Cone overlap cannot create duplicate stars. Temporary raw
|
||||
tables and cleaning intermediates are stored under `/tmp/2mass_psc_all_sky/`
|
||||
and deleted after each successful cover. The generated full-sky catalogue has
|
||||
one CSV per ownership cell under `processed/all_sky/`, named
|
||||
`tile_raRRR_decDDD.csv`. `RRR` is
|
||||
`floor(RA_deg mod 360)` and `DDD` is `min(179, floor(Dec_deg + 90))`; the
|
||||
corresponding range is `[RRR, RRR+1) x [DDD-90, DDD-89)` degrees. It is
|
||||
intentionally not a single CSV because that would duplicate a roughly 15--17
|
||||
GiB result during merging.
|
||||
See that directory's README for restart and raw-retention behavior.
|
||||
|
||||
Provenance: [IRSA Gator program interface](https://irsa.ipac.caltech.edu/docs/howto/gator_prog_interface.html),
|
||||
[2MASS PSC column descriptions](https://irsa.ipac.caltech.edu/2MASS/download/allsky/format_psc.html).
|
||||
@@ -13,11 +13,14 @@ the source-sky direction.
|
||||
|
||||
## Quality selection
|
||||
|
||||
All three J/H/Ks magnitudes must be finite and every character of `rd_flg` must
|
||||
be `1`, `2`, or `3`. These are the 2MASS default-magnitude origins that
|
||||
generally indicate the best detections, photometry, and astrometry. Thus the
|
||||
script rejects nondetections/upper limits (`0`), poor aperture photometry (`4`),
|
||||
inconsistent band deblends (`6`), and missing brightness estimates (`9`).
|
||||
RA/Dec must be finite and inside their ICRS ranges; all three J/H/Ks magnitudes
|
||||
must be finite; and every character of `rd_flg` must be `1`, `2`, or `3`.
|
||||
These are the 2MASS default-magnitude origins that generally indicate the best
|
||||
detections, photometry, and astrometry. Thus the script rejects
|
||||
nondetections/upper limits (`0`), poor aperture photometry (`4`), inconsistent
|
||||
band deblends (`6`), and missing brightness estimates (`9`).
|
||||
The IPAC literal `null` is treated as a missing numeric value, the same as a
|
||||
blank field, and is therefore rejected by these finite-value checks.
|
||||
|
||||
## Two-parameter fit
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Full-sky 2MASS PSC output
|
||||
|
||||
This directory is generated, not versioned. Create it with:
|
||||
|
||||
```sh
|
||||
python3 scripts/download_2mass_psc_all_sky.py --plan
|
||||
python3 scripts/download_2mass_psc_all_sky.py --download --workers 2
|
||||
```
|
||||
|
||||
The acquisition uses fixed final integer indices: `ra_index = 0..359` and
|
||||
`dec_index = 0..179`. Each ownership cell is `[ra_index, ra_index + 1) x
|
||||
[dec_index - 90, dec_index - 89)` in ICRS degrees, except that `dec_index=179`
|
||||
also owns Dec `+90`. To avoid polar over-fetch, each latitude band is acquired
|
||||
through wider integer-RA cover sectors. A cover owns a disjoint run of final
|
||||
tiles and its one-degree cone contains every point it owns; cone overlap is
|
||||
therefore discarded by ownership rather than a whole-sky de-duplication table.
|
||||
Raw responses and cleaning intermediates are in `/tmp/2mass_psc_all_sky/` and
|
||||
are deleted after each successful cover. `.done/` makes reruns resume after
|
||||
completed final tiles.
|
||||
|
||||
Downloads stay serial to be considerate of IRSA, while `--workers N` cleans up
|
||||
to `N` already-downloaded covers in parallel. The queue is bounded to `N`, so
|
||||
temporary raw/intermediate storage cannot grow without bound. Start with
|
||||
`--workers 2`; increase it only if CPU and `/tmp` headroom remain available.
|
||||
|
||||
Each atomic output CSV uses the renderer's four-column CSV format and has a
|
||||
name such as `tile_ra129_dec109.csv`, which means RA `[129, 130)` and Dec
|
||||
`[19, 20)` degrees. For any coordinate, use
|
||||
`ra_index = floor(RA_deg mod 360)` and
|
||||
`dec_index = min(179, floor(Dec_deg + 90))` to select the filename directly.
|
||||
It applies the same three-band `rd_flg`/photometry selection and blackbody fit
|
||||
as the sample processor. The downloader fails if an IRSA response reaches
|
||||
`--outrows`, so crowded fields cannot be silently truncated. It deletes raw
|
||||
tile tables after successful cleaning unless `--keep-raw` is passed.
|
||||
|
||||
The two existing fields imply roughly 15--17 GiB of cleaned CSV for the full
|
||||
PSC. Their raw response rows imply 70--75 GiB if every source appeared once.
|
||||
The cover grid uses substantially fewer cone areas than the old fixed-grid
|
||||
fetcher, but retaining every overlapping raw response would still need roughly
|
||||
190--210 GiB. The default bounded pipeline only needs up to `--workers` raw
|
||||
responses and intermediates in addition to final output.
|
||||
Reference in new issue
Block a user