Crate gmt_lom

Crate gmt_lom 

Source
Expand description

§Giant Magellan Telescope Linear Optical Model

Optical linear transformations applied to the rigid body motions of the primary and secondary segmented mirrors of the GMT

The optical sensitivities can be downloaded from here, or they can be recomputed with the makesens binary compiled with the crseo features and run on a computer with a NVIDIA GPU.

§Example

use std::iter::once;
use skyangle::Conversion;
use gmt_lom::LOM;

let m1_rbm = vec![vec![0f64; 6]; 7];
let mut m2_rbm = vec![vec![0f64; 6]; 7];
m2_rbm
    .iter_mut()
    .step_by(2)
    .for_each(|str| {
       str[3] = 1f64.from_arcsec();
       str[4] = 1f64.from_arcsec();
 });
m2_rbm[6][3] = 1f64.from_arcsec();
m2_rbm[6][4] = 1f64.from_arcsec();
let lom = LOM::builder()
    .into_iter_rigid_body_motions(once((m1_rbm, m2_rbm)))
    .build()
    .unwrap();
let tt = lom.tiptilt();
println!(" Tiptilt: {:.0?}mas", tt);
let stt = lom.segment_tiptilt();
println!("Segment tiptilt:");
println!(" - x: {:.0?}mas", &stt[..7]);
println!(" - y: {:.0?}mas", &stt[7..]);
let sp = lom.segment_piston();
println!("Segment piston:");
sp.chunks(7).enumerate().for_each(|(k, sp)| println!(" - S{}: {:.0?}nm", k + 1, sp) );

Re-exports§

pub use lom::LOMBuilder;
pub use lom::LOM;

Modules§

lom

Structs§

Loader
Data loader
OpticalSensitivities
Optical sensitivities
RigidBodyMotions
GMT M1 and M2 segment rigid body motions
SegmentPiston
Type holding the segment piston values
SegmentTipTilt
Type holding the segment tip-tilt values
Table
TipTilt
Type holding the tip-tilt values

Enums§

Formatting
LinearOpticalModelError
OpticalSensitivity
Optical sensitivity

Traits§

Bin
Sensitivities serialization into a bincode file
LoaderTrait
Loader loading interface
OpticalMetrics
Trait for the LOM optical metrics
Stats
Statistics on OpticalMetrics
ToPkl

Functions§

from_opticals