Microlensing Driftscan Project
Project description
pydriftn - The Microlensing Driftscan Project
Driftscan techniques have not been widely used so far for fast photometry, and a fair amount of development of new techniques has been required to extract photometric time series with sub-arcsecond sampling from photometric data. The functions presented in this repository are designed to accomplish the drift scan time series extraction, and work on a single selected field of interest without dithering patterns.
For this science case, the input to the pipeline is two pointed optical colour images of a field (in this case DECam g and r-band images) and a series of 20 second rapid-cadence (VR) images of the field with a constant drift rate in Declination. The output is a catalogue of light curves for stars across the field, with brightness measurements subsampled along the drifted image, producing an effective candence much shorter than the exposure duration. The driftscan image, or DSI, can be searched for sub-second transient signals. The Driftscan techique is especially powerful in searching for very short duration microlensing signals produced by a population of asteroid-mas primordial black holes.
Other science applications include the ability to screen for milli-second optical transient phenomena (e.g counterparts to GRBs, FRBs) by distinguishing between DSI trails from field stars, and point sources from out-of-nowhere signals.
Contents
- Main Catalogue Generation in GenerateCatalogue.py
Generates a deep catalogue from pointed g, r images from the sky. Use is for linking coordinates of DSIs, WCS corrections across the detector plane. Finds a number of bright, isolated reference stars per CCD chip. Use is for WCS corrections and measuring DSI singal-to-noise contamination from atmospheric seeing.
- DSI centroiding in DriftAstrom.py
Locates the centroids of DSI on CCD chip by convolution with a DSI template and centroiding function. Centroids are matched to reference stars to WCS correct each exposure for tangent plane distortions.
-
Sky value estimation in DriftSkysub.py
-
DSI extraction in DriftExtract.py
Extraction function is run on all located DSI, and then matched to reference star with the most similar drift patten. The best match reference star is used to normalise out atmospheric seeing pattens in the DSI.
- Point Source detection in DriftClassify.py WORK IN PROGRESS
Uses the reference catalgoue and the DSI shape to distinguish between drifted stars, millisecond optical transients and other phenomena (like satellites)
- Drift Recalibration of Astrometry WORK IN PROGRESS
Generalised Flow of Pipeline
Getting Started
Python 3.x is needed to run the pipeline. To install the required packages, run:
python3 -m build
Alternatively, run:
pip3 install -r requirements.txt
Data
The 10-night DECam data is stored in Data Central and NOIRLab. Access to data is TBD.
Docker development environment
- Edit Dockerfile to have user account details (UID and GID) to match the user on your system. You would need to run
echo $UIDon your local terminal, then copy and paste the output UID into the Dockerfile. - Run
sh build.sh - Edit
load.shto your liking, especially thesourcepart. You may remove ~/.vimrc from the mounts - Run
sh load.sh - Develop as usual.
Building the documentation
- Requires sphinx
- In the Docker environment run:
pip install . --break-system-packages
cd docs
make html
Demo
Example parameters are stored in demo/demo_values.yaml.
You can create and use a different one that suits your purpose.
To run:
cd src
python3 demo_with_targets.py -y /path/to/values/yaml
This script currently ignores GenerateCatalogue.py and uses an existing master catalogue in demo.
Expected output:
demo/{your_output_path}/driftastrom-exp_{exposure_number}.csv- output of DriftAstrometry.demo/{your_output_path}/driftskysub-exp_{exposure_number}.csv- output of SkyEstimator.demo/{your_output_path}/'target-driftextract-exp_{exposure_number}.csv- output of TimeSeriesGenerator for the input target star(s).demo/{your_output_path}/{your_pdf_output_path}.pdf- plots.
Sample timeseries plot:
To find which CCD does a pair of coordinates (ra,dec) belong to, run:
python3 src/demo_find_ccd.py
Work in Progress
- Parameters for drift_model function (DriftAstrom.py),
- Linear shift values (DriftAstrom.py),
- Saving new WCS (DriftAstrom.py),
- Adding sum functionality to cosmic ray masking function(DriftAstrom.py),
- Saving annulus data (DriftSkysub.py),
- Bug fixes for the fitting function (DriftExtract.py),
- Zero pointing.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydriftn-0.1.2.tar.gz.
File metadata
- Download URL: pydriftn-0.1.2.tar.gz
- Upload date:
- Size: 46.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93a2025159a2bd18cfe18dadb161695bb80e32981d31c58226c9fd013e5020ed
|
|
| MD5 |
ba7a0029f16a77b2703375f8653de4ac
|
|
| BLAKE2b-256 |
f803d57bed32cf6809ae7b94d130152235b75fd45310465da7e99c608fd3b646
|
File details
Details for the file pydriftn-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pydriftn-0.1.2-py3-none-any.whl
- Upload date:
- Size: 53.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d727a33bf2f55a81ac621e33b09b0920b1dc5b5211ae8ba446d3eb916a8dfe28
|
|
| MD5 |
8ae6326d3393c5889682d5c6f15dc5eb
|
|
| BLAKE2b-256 |
17be9ebe6dc64d7f2d120042a0786ec29ddfb5035e5542268a1cda20a52325d9
|