PA&C Pipeline
Project description
Pipeline to both determine telescope polarization parameters and compute instrument demodulation matrices
Check out the [online documentation](https://eigenbrot.github.io/PAC_Module_Docs) for more detailed information.
Requirements
The pipeline has been tested with python 3.8
numpy
scipy
astropy
sunpy
lmfit
dkist-header-validator
Installation/Upgrade
You can install/upgrade the pipeline directly from the BitBucket repo with:
pip install git+ssh://git@bitbucket.org:dkistdc/pac-pipeline.git
If instead you want to clone and install separately the commands are:
git clone git@bitbucket.org:dkistdc/pac-pipeline.git cd pac-pipeline pip install .
All of the dependencies should be automatically installed by pip
## Usage
The PA&C Pipeline has two modes:
Fit Calibration Unit Parameters
In this mode a Set of Calibration Curves (SoCC) is used to fit parameters for the PolCal Calibration Unit. The Telescope Model is inferred from a database of past values and the telescope geometry at the time of observations. This mode is called with the pac_cu_pars binary. In its simplest form:
pac_cu_pars SOCC_DIR OUTPUT
The SOCC will be read from SOCC_DIR and a file containing the best-fit CU parameters will be saved to OUTPUT.
Try pac_cu_pars -h for information on other options.
### Compute instrument demodulation matrices
In this mode, the results of pac_cu_pars are used to determine the demodulation matrices for a specific instrument and setup. The same SoCC used to git the CU parameters is also required and the Telescope Model is inferred from a database of past values and the telescope geometry at the time of observations. This mode is called with the pac_demod binary. In its simplest form:
pac_demod SOCC_DIR CUPARFILE OUTPUT
Best fit CU parameters will be read from CUPARFILE, the SOCC will be read from SOCC_DIR, and a file containing the demodulation matrices will be saved to OUTPUT.
Try pac_demod -h for information on other options.
Compute Telescope Model parameters
In this mode, a set of multiple SoCCs is used to determine the mirror parameters for mirrors 3 - 6. The more SoCCs used in the fit the more accurate the results are thought to be, but each additional SoCC adds significantly more free parameters and fitting time. For any hope of accuracy the different SoCCs MUST be taken over a wide range of telescope geometries. Usage is:
pac_tele TOP_LEVEL_DIR OUTPUT
TOP_LEVEL_DIR should contain a set of SoCCs, each in its own subdirectory. The resulting Telescope Model will be written to OUTPUT. See pac_tele -h for information on additional parameters, in particular -u to update the telescope database and -N to control the number of SoCCs used in the fit.
Computing M12 mirror parameters
The x12 parameter is computed from I/Q cross talk during any science data reduction. To compute t12 a full stokes map of a region of the sun containing strong polarization is needed. Given such a map, t12 can be computed simply via
pac_t12 MAPFILE OUTPUT
Try pac_t12 -h for more options.
Note about spatial variations
If the input data have individual frames of shape (x, y) then the final output will have shape (x, y, 4, N), where N is the number of modulator states. Thus, by controlling how the input data are binned it is possible to compute spatially-varying parameter values.
We do not expect the Telescope Model to vary appreciably over the field of view, so in this case it makes sense for x=y=1 (i.e., average the entire frame), but it will likely be the case the x and y are (much) larger than 1 in the demodulation case. The extreme example is to not bin the input data at all and compute demodulation matrices for each pixel on the detector, although this would take a very long time.
Generating fake data
To get a quick set of PolCal data that can be used in instrument pipelines use the pac_fake_data script. For example:
pac_fake_data -I visp -C efficient_CS polcal_output
pac_fake_data has many options that can be seen with the -h option.
For more advanced fake data generation (e.g., to make multiple PolCal runs for a GroupCal), enter this repo’s top-level directory and enter a python shell:
>>> import gen_fake_data >>> gen_fake_data.SoCC_multi_day(output_dir, DHS=False)
SoCC_multi_day has a lot of options that you can check out. In particular, use nummod and numdays control the number of modulator states and number of PolCal sequences. By default this function produces a mix of fixed-polarizer and fixed-retarder CS’s, but this can be changed with only_pol or only_ret.
Generating fake map for M12 parameter fitting
To generate a stokes map file that can be used with pac_t12 enter this repo’s top-level directory and enter a python shell:
>>> import gen_fake_data >>> gen_fake_data.make_M12_data(output_dir, simdir=VISP_SIM_DIR)You will need the fake ViSP data provided by A. de Wijn in VISP_SIM_DIR.
Licensed
This project is Copyright (c) Arthur Eigenbrot and licensed under the terms of the BSD 3-Clause license. See the licenses folder for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file dkist-processing-pac-0.1.0.tar.gz
.
File metadata
- Download URL: dkist-processing-pac-0.1.0.tar.gz
- Upload date:
- Size: 498.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bef8993e254937dd14114acd17fe89993ff745708fd73e8e10b221c89d19cb1 |
|
MD5 | 742c5c331920343643d4f9412f2126bd |
|
BLAKE2b-256 | 52408aff6176a2bb483af94fc3f6e9b6827c5e06b96ce28e2fd430d75ede3c55 |