Skip to main content

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

  1. 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.

  1. 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.

  1. Sky value estimation in DriftSkysub.py

  2. 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.

  1. 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)

  1. Drift Recalibration of Astrometry WORK IN PROGRESS

Generalised Flow of Pipeline

driftIO

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

  1. Edit Dockerfile to have user account details (UID and GID) to match the user on your system. You would need to run echo $UID on your local terminal, then copy and paste the output UID into the Dockerfile.
  2. Run sh build.sh
  3. Edit load.sh to your liking, especially the source part. You may remove ~/.vimrc from the mounts
  4. Run sh load.sh
  5. 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.py -y /path/to/values/yaml

This script currently ignores GenerateCatalogue.py and uses an existing master catalogue in demo.

Expected output:

  1. demo/{your_output_path}/driftastrom-exp_{exposure_number}.csv - output of DriftAstrometry.
  2. demo/{your_output_path}/driftskysub-exp_{exposure_number}.csv - output of SkyEstimator.
  3. demo/{your_output_path}/'target-driftextract-exp_{exposure_number}.csv - output of TimeSeriesGenerator for the input target star(s).
  4. demo/{your_output_path}/{your_pdf_output_path}.pdf - plots.

Sample timeseries plot: sample_plot

To find which CCD does a pair of coordinates (ra,dec) belong to, run:

python3 src/demo_find_ccd.py

Work in Progress

  1. Parameters for drift_model function (DriftAstrom.py),
  2. Linear shift values (DriftAstrom.py),
  3. Saving new WCS (DriftAstrom.py),
  4. Adding sum functionality to cosmic ray masking function(DriftAstrom.py),
  5. Saving annulus data (DriftSkysub.py),
  6. Bug fixes for the fitting function (DriftExtract.py),
  7. 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

pydriftn-0.1.3.tar.gz (42.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydriftn-0.1.3-py3-none-any.whl (45.5 kB view details)

Uploaded Python 3

File details

Details for the file pydriftn-0.1.3.tar.gz.

File metadata

  • Download URL: pydriftn-0.1.3.tar.gz
  • Upload date:
  • Size: 42.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for pydriftn-0.1.3.tar.gz
Algorithm Hash digest
SHA256 8b8f7c911ce549e429091cd8c94864da6414e584b2ffc576a5d8fc6182b83623
MD5 b5421e1bd859f0dccbedbe3d86d5d238
BLAKE2b-256 9874572c138e60b35a50cf9bc040dda255711a262a49000f466970213dcc26de

See more details on using hashes here.

File details

Details for the file pydriftn-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pydriftn-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 45.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for pydriftn-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 62d53a956c510c5f9278e106f56e487407192e68f57576a22d5f3a595f20866d
MD5 87227e82e0e92ce198f4c64a3c0c5200
BLAKE2b-256 dea27aad5a84491b7bc02ef1b7d8727a2228bb0d983da1674c818ce32dfe519b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page