From 922e33ec3f85ab8875b675a0d03ff7f57c3e355b Mon Sep 17 00:00:00 2001 From: Nathan Vegdahl Date: Sun, 14 May 2017 13:43:51 -0700 Subject: [PATCH] Reformat code with latest rustfmt and custom config. --- rustfmt.toml | 6 + src/accel/bvh.rs | 92 +- src/accel/bvh_base.rs | 82 +- src/accel/light_array.rs | 9 +- src/accel/light_tree.rs | 74 +- src/accel/mod.rs | 9 +- src/accel/objects_split.rs | 65 +- src/algorithm.rs | 54 +- src/bbox.rs | 43 +- src/camera.rs | 33 +- src/color.rs | 29 +- src/image.rs | 21 +- src/lerp.rs | 188 +- src/light/distant_disk_light.rs | 11 +- src/light/mod.rs | 28 +- src/light/rectangle_light.rs | 53 +- src/light/sphere_light.rs | 59 +- src/main.rs | 128 +- src/math.rs | 77 +- src/parse/data_tree.rs | 154 +- src/parse/psy.rs | 449 +- src/parse/psy_assembly.rs | 45 +- src/parse/psy_light.rs | 71 +- src/parse/psy_mesh_surface.rs | 11 +- src/renderer.rs | 448 +- src/sampling/mod.rs | 4 +- src/sampling/monte_carlo.rs | 42 +- src/scene/assembly.rs | 119 +- src/scene/scene.rs | 19 +- src/shading/surface_closure.rs | 98 +- src/surface/mod.rs | 6 +- src/surface/triangle_mesh.rs | 115 +- src/tracer.rs | 165 +- sub_crates/float4/src/lib.rs | 90 +- sub_crates/halton/build.rs | 136 +- sub_crates/halton/src/lib.rs | 2 +- sub_crates/math3d/src/matrix.rs | 494 +- sub_crates/math3d/src/normal.rs | 57 +- sub_crates/math3d/src/point.rs | 146 +- sub_crates/math3d/src/vector.rs | 91 +- sub_crates/mem_arena/src/lib.rs | 38 +- sub_crates/spectra_xyz/src/lib.rs | 19727 +++++++++++++++++++++++++++- 42 files changed, 21399 insertions(+), 2189 deletions(-) create mode 100644 rustfmt.toml diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..bd046c7 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,6 @@ +max_width = 1024 +error_on_line_overflow = false +array_layout = "Block" +chain_indent = "Block" +fn_args_layout = "Block" +fn_call_style = "Block" \ No newline at end of file diff --git a/src/accel/bvh.rs b/src/accel/bvh.rs index f7fb006..a1533f7 100644 --- a/src/accel/bvh.rs +++ b/src/accel/bvh.rs @@ -38,11 +38,7 @@ pub enum BVHNode<'a> { } impl<'a> BVH<'a> { - pub fn from_objects<'b, T, F>(arena: &'a MemArena, - objects: &mut [T], - objects_per_leaf: usize, - bounder: F) - -> BVH<'a> + pub fn from_objects<'b, T, F>(arena: &'a MemArena, objects: &mut [T], objects_per_leaf: usize, bounder: F) -> BVH<'a> where F: 'b + Fn(&T) -> &'b [BBox] { if objects.len() == 0 { @@ -74,8 +70,11 @@ impl<'a> BVH<'a> { let mut timer = Timer::new(); let mut trav_time: f64 = 0.0; - let ray_sign = - [rays[0].dir_inv.x() >= 0.0, rays[0].dir_inv.y() >= 0.0, rays[0].dir_inv.z() >= 0.0]; + let ray_sign = [ + rays[0].dir_inv.x() >= 0.0, + rays[0].dir_inv.y() >= 0.0, + rays[0].dir_inv.z() >= 0.0, + ]; // +2 of max depth for root and last child let mut node_stack = [self.root.unwrap(); BVH_MAX_DEPTH + 2]; @@ -84,12 +83,17 @@ impl<'a> BVH<'a> { while stack_ptr > 0 { match node_stack[stack_ptr] { - &BVHNode::Internal { children, bounds_start, bounds_len, split_axis } => { - let bounds = - unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }; - let part = partition(&mut rays[..ray_i_stack[stack_ptr]], |r| { - (!r.is_done()) && lerp_slice(bounds, r.time).intersect_accel_ray(r) - }); + &BVHNode::Internal { + children, + bounds_start, + bounds_len, + split_axis, + } => { + let bounds = unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }; + let part = partition( + &mut rays[..ray_i_stack[stack_ptr]], + |r| (!r.is_done()) && lerp_slice(bounds, r.time).intersect_accel_ray(r), + ); if part > 0 { ray_i_stack[stack_ptr] = part; ray_i_stack[stack_ptr + 1] = part; @@ -106,12 +110,16 @@ impl<'a> BVH<'a> { } } - &BVHNode::Leaf { object_range, bounds_start, bounds_len } => { - let bounds = - unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }; - let part = partition(&mut rays[..ray_i_stack[stack_ptr]], |r| { - (!r.is_done()) && lerp_slice(bounds, r.time).intersect_accel_ray(r) - }); + &BVHNode::Leaf { + object_range, + bounds_start, + bounds_len, + } => { + let bounds = unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }; + let part = partition( + &mut rays[..ray_i_stack[stack_ptr]], + |r| (!r.is_done()) && lerp_slice(bounds, r.time).intersect_accel_ray(r), + ); trav_time += timer.tick() as f64; @@ -129,23 +137,24 @@ impl<'a> BVH<'a> { } trav_time += timer.tick() as f64; - ACCEL_TRAV_TIME.with(|att| { - let v = att.get(); - att.set(v + trav_time); - }); + ACCEL_TRAV_TIME.with( + |att| { + let v = att.get(); + att.set(v + trav_time); + } + ); } - fn construct_from_base(arena: &'a MemArena, - base: &BVHBase, - node_index: usize) - -> &'a mut BVHNode<'a> { + fn construct_from_base(arena: &'a MemArena, base: &BVHBase, node_index: usize) -> &'a mut BVHNode<'a> { match &base.nodes[node_index] { - &BVHBaseNode::Internal { bounds_range, children_indices, split_axis } => { + &BVHBaseNode::Internal { + bounds_range, + children_indices, + split_axis, + } => { let mut node = unsafe { arena.alloc_uninitialized_with_alignment::(32) }; - let bounds = - arena.copy_slice_with_alignment(&base.bounds[bounds_range.0..bounds_range.1], - 32); + let bounds = arena.copy_slice_with_alignment(&base.bounds[bounds_range.0..bounds_range.1], 32); let child1 = BVH::construct_from_base(arena, base, children_indices.0); let child2 = BVH::construct_from_base(arena, base, children_indices.1); @@ -159,7 +168,10 @@ impl<'a> BVH<'a> { return node; } - &BVHBaseNode::Leaf { bounds_range, object_range } => { + &BVHBaseNode::Leaf { + bounds_range, + object_range, + } => { let mut node = unsafe { arena.alloc_uninitialized::() }; let bounds = arena.copy_slice(&base.bounds[bounds_range.0..bounds_range.1]); @@ -185,13 +197,17 @@ impl<'a> Boundable for BVH<'a> { None => &DEGENERATE_BOUNDS[..], Some(root) => { match root { - &BVHNode::Internal { bounds_start, bounds_len, .. } => { - unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) } - } + &BVHNode::Internal { + bounds_start, + bounds_len, + .. + } => unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }, - &BVHNode::Leaf { bounds_start, bounds_len, .. } => { - unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) } - } + &BVHNode::Leaf { + bounds_start, + bounds_len, + .. + } => unsafe { std::slice::from_raw_parts(bounds_start, bounds_len as usize) }, } } } diff --git a/src/accel/bvh_base.rs b/src/accel/bvh_base.rs index 16cc720..e1cbc5c 100644 --- a/src/accel/bvh_base.rs +++ b/src/accel/bvh_base.rs @@ -94,13 +94,7 @@ impl BVHBase { } } - fn recursive_build<'a, T, F>(&mut self, - offset: usize, - depth: usize, - objects_per_leaf: usize, - objects: &mut [T], - bounder: &F) - -> (usize, (usize, usize)) + fn recursive_build<'a, T, F>(&mut self, offset: usize, depth: usize, objects_per_leaf: usize, objects: &mut [T], bounder: &F) -> (usize, (usize, usize)) where F: 'a + Fn(&T) -> &'a [BBox] { let me = self.nodes.len(); @@ -115,10 +109,12 @@ impl BVHBase { // We make sure that it's worth having multiple time samples, and if not // we reduce to the union of the time samples. self.acc_bounds(objects, bounder); - let union_bounds = self.bounds_cache.iter().fold(BBox::new(), |b1, b2| (b1 | *b2)); - let average_area = - self.bounds_cache.iter().fold(0.0, |area, bb| area + bb.surface_area()) / - self.bounds_cache.len() as f32; + let union_bounds = self.bounds_cache + .iter() + .fold(BBox::new(), |b1, b2| (b1 | *b2)); + let average_area = self.bounds_cache + .iter() + .fold(0.0, |area, bb| area + bb.surface_area()) / self.bounds_cache.len() as f32; if union_bounds.surface_area() <= (average_area * USE_UNION_FACTOR) { self.bounds.push(union_bounds); } else { @@ -127,10 +123,13 @@ impl BVHBase { } // Create node - self.nodes.push(BVHBaseNode::Leaf { - bounds_range: (bi, self.bounds.len()), - object_range: (offset, offset + objects.len()), - }); + self.nodes + .push( + BVHBaseNode::Leaf { + bounds_range: (bi, self.bounds.len()), + object_range: (offset, offset + objects.len()), + } + ); if self.depth < depth { self.depth = depth; @@ -139,18 +138,20 @@ impl BVHBase { return (me, (bi, self.bounds.len())); } else { // Not a leaf node - self.nodes.push(BVHBaseNode::Internal { - bounds_range: (0, 0), - children_indices: (0, 0), - split_axis: 0, - }); + self.nodes + .push( + BVHBaseNode::Internal { + bounds_range: (0, 0), + children_indices: (0, 0), + split_axis: 0, + } + ); // Partition objects. // If we're too near the max depth, we do balanced building to // avoid exceeding max depth. // Otherwise we do SAH splitting to build better trees. - let (split_index, split_axis) = if (log2_64(objects.len() as u64) as usize) < - (BVH_MAX_DEPTH - depth) { + let (split_index, split_axis) = if (log2_64(objects.len() as u64) as usize) < (BVH_MAX_DEPTH - depth) { // SAH splitting, when we have room to play sah_split(objects, &bounder) } else { @@ -159,31 +160,36 @@ impl BVHBase { }; // Create child nodes - let (c1_index, c1_bounds) = self.recursive_build(offset, - depth + 1, - objects_per_leaf, - &mut objects[..split_index], - bounder); - let (c2_index, c2_bounds) = self.recursive_build(offset + split_index, - depth + 1, - objects_per_leaf, - &mut objects[split_index..], - bounder); + let (c1_index, c1_bounds) = self.recursive_build( + offset, + depth + 1, + objects_per_leaf, + &mut objects[..split_index], + bounder, + ); + let (c2_index, c2_bounds) = self.recursive_build( + offset + split_index, + depth + 1, + objects_per_leaf, + &mut objects[split_index..], + bounder, + ); // Determine bounds // TODO: do merging without the temporary vec. let bi = self.bounds.len(); { let mut merged = Vec::new(); - merge_slices_append(&self.bounds[c1_bounds.0..c1_bounds.1], - &self.bounds[c2_bounds.0..c2_bounds.1], - &mut merged, - |b1, b2| *b1 | *b2); + merge_slices_append( + &self.bounds[c1_bounds.0..c1_bounds.1], + &self.bounds[c2_bounds.0..c2_bounds.1], + &mut merged, + |b1, b2| *b1 | *b2, + ); // We make sure that it's worth having multiple time samples, and if not // we reduce to the union of the time samples. let union_bounds = merged.iter().fold(BBox::new(), |b1, b2| (b1 | *b2)); - let average_area = merged.iter().fold(0.0, |area, bb| area + bb.surface_area()) / - merged.len() as f32; + let average_area = merged.iter().fold(0.0, |area, bb| area + bb.surface_area()) / merged.len() as f32; if union_bounds.surface_area() <= (average_area * USE_UNION_FACTOR) { self.bounds.push(union_bounds); } else { diff --git a/src/accel/light_array.rs b/src/accel/light_array.rs index 1d18ae6..f78fd69 100644 --- a/src/accel/light_array.rs +++ b/src/accel/light_array.rs @@ -34,14 +34,7 @@ impl LightArray { } impl LightAccel for LightArray { - fn select(&self, - inc: Vector, - pos: Point, - nor: Normal, - sc: &SurfaceClosure, - time: f32, - n: f32) - -> Option<(usize, f32, f32)> { + fn select(&self, inc: Vector, pos: Point, nor: Normal, sc: &SurfaceClosure, time: f32, n: f32) -> Option<(usize, f32, f32)> { let _ = (inc, pos, nor, sc, time); // Not using these, silence warnings assert!(n >= 0.0 && n <= 1.0); diff --git a/src/accel/light_tree.rs b/src/accel/light_tree.rs index bf7fc43..ff2017d 100644 --- a/src/accel/light_tree.rs +++ b/src/accel/light_tree.rs @@ -26,10 +26,7 @@ struct Node { } impl<'a> LightTree<'a> { - pub fn from_objects<'b, T, F>(arena: &'a MemArena, - objects: &mut [T], - info_getter: F) - -> LightTree<'a> + pub fn from_objects<'b, T, F>(arena: &'a MemArena, objects: &mut [T], info_getter: F) -> LightTree<'a> where F: 'b + Fn(&T) -> (&'b [BBox], f32) { let mut builder = LightTreeBuilder::new(); @@ -45,14 +42,7 @@ impl<'a> LightTree<'a> { impl<'a> LightAccel for LightTree<'a> { - fn select(&self, - inc: Vector, - pos: Point, - nor: Normal, - sc: &SurfaceClosure, - time: f32, - n: f32) - -> Option<(usize, f32, f32)> { + fn select(&self, inc: Vector, pos: Point, nor: Normal, sc: &SurfaceClosure, time: f32, n: f32) -> Option<(usize, f32, f32)> { if self.nodes.len() == 0 { return None; } @@ -151,12 +141,7 @@ impl LightTreeBuilder { } } - fn recursive_build<'a, T, F>(&mut self, - offset: usize, - depth: usize, - objects: &mut [T], - info_getter: &F) - -> (usize, (usize, usize)) + fn recursive_build<'a, T, F>(&mut self, offset: usize, depth: usize, objects: &mut [T], info_getter: &F) -> (usize, (usize, usize)) where F: 'a + Fn(&T) -> (&'a [BBox], f32) { let me_index = self.nodes.len(); @@ -168,12 +153,15 @@ impl LightTreeBuilder { let bi = self.bounds.len(); let (obj_bounds, energy) = info_getter(&objects[0]); self.bounds.extend(obj_bounds); - self.nodes.push(Node { - is_leaf: true, - bounds_range: (bi, self.bounds.len()), - energy: energy, - child_index: offset, - }); + self.nodes + .push( + Node { + is_leaf: true, + bounds_range: (bi, self.bounds.len()), + energy: energy, + child_index: offset, + } + ); if self.depth < depth { self.depth = depth; @@ -182,32 +170,38 @@ impl LightTreeBuilder { return (me_index, (bi, self.bounds.len())); } else { // Not a leaf node - self.nodes.push(Node { - is_leaf: false, - bounds_range: (0, 0), - energy: 0.0, - child_index: 0, - }); + self.nodes + .push( + Node { + is_leaf: false, + bounds_range: (0, 0), + energy: 0.0, + child_index: 0, + } + ); // Partition objects. let (split_index, _) = sah_split(objects, &|obj_ref| info_getter(obj_ref).0); // Create child nodes - let (_, c1_bounds) = - self.recursive_build(offset, depth + 1, &mut objects[..split_index], info_getter); - let (c2_index, c2_bounds) = self.recursive_build(offset + split_index, - depth + 1, - &mut objects[split_index..], - info_getter); + let (_, c1_bounds) = self.recursive_build(offset, depth + 1, &mut objects[..split_index], info_getter); + let (c2_index, c2_bounds) = self.recursive_build( + offset + split_index, + depth + 1, + &mut objects[split_index..], + info_getter, + ); // Determine bounds // TODO: do merging without the temporary vec. let bi = self.bounds.len(); let mut merged = Vec::new(); - merge_slices_append(&self.bounds[c1_bounds.0..c1_bounds.1], - &self.bounds[c2_bounds.0..c2_bounds.1], - &mut merged, - |b1, b2| *b1 | *b2); + merge_slices_append( + &self.bounds[c1_bounds.0..c1_bounds.1], + &self.bounds[c2_bounds.0..c2_bounds.1], + &mut merged, + |b1, b2| *b1 | *b2, + ); self.bounds.extend(merged.drain(0..)); // Set node diff --git a/src/accel/mod.rs b/src/accel/mod.rs index f538668..8efafe8 100644 --- a/src/accel/mod.rs +++ b/src/accel/mod.rs @@ -19,14 +19,7 @@ thread_local! { pub trait LightAccel { /// Returns (index_of_light, selection_pdf, whittled_n) - fn select(&self, - inc: Vector, - pos: Point, - nor: Normal, - sc: &SurfaceClosure, - time: f32, - n: f32) - -> Option<(usize, f32, f32)>; + fn select(&self, inc: Vector, pos: Point, nor: Normal, sc: &SurfaceClosure, time: f32, n: f32) -> Option<(usize, f32, f32)>; fn approximate_energy(&self) -> f32; } diff --git a/src/accel/objects_split.rs b/src/accel/objects_split.rs index bc970f1..6a1eb88 100644 --- a/src/accel/objects_split.rs +++ b/src/accel/objects_split.rs @@ -65,8 +65,7 @@ pub fn free_sah_split<'a, T, F>(seed: u32, objects: &mut [T], bounder: &F) -> (u // Build SAH bins let sah_bins = { - let mut sah_bins = [[(BBox::new(), BBox::new(), 0, 0); SAH_BIN_COUNT - 1]; - SPLIT_PLANE_COUNT]; + let mut sah_bins = [[(BBox::new(), BBox::new(), 0, 0); SAH_BIN_COUNT - 1]; SPLIT_PLANE_COUNT]; for obj in objects.iter() { let tb = lerp_slice(bounder(obj), 0.5); let centroid = tb.center().into_vector(); @@ -132,11 +131,13 @@ pub fn free_sah_split<'a, T, F>(seed: u32, objects: &mut [T], bounder: &F) -> (u }; // Partition - let mut split_i = partition(&mut objects[..], |obj| { - let centroid = lerp_slice(bounder(obj), 0.5).center().into_vector(); - let dist = dot(centroid, plane); - dist < div - }); + let mut split_i = partition( + &mut objects[..], |obj| { + let centroid = lerp_slice(bounder(obj), 0.5).center().into_vector(); + let dist = dot(centroid, plane); + dist < div + } + ); if split_i < 1 { split_i = 1; @@ -223,11 +224,13 @@ pub fn sah_split<'a, T, F>(objects: &mut [T], bounder: &F) -> (usize, usize) }; // Partition - let mut split_i = partition(&mut objects[..], |obj| { - let tb = lerp_slice(bounder(obj), 0.5); - let centroid = (tb.min.get_n(split_axis) + tb.max.get_n(split_axis)) * 0.5; - centroid < div - }); + let mut split_i = partition( + &mut objects[..], |obj| { + let tb = lerp_slice(bounder(obj), 0.5); + let centroid = (tb.min.get_n(split_axis) + tb.max.get_n(split_axis)) * 0.5; + centroid < div + } + ); if split_i < 1 { split_i = 1; } else if split_i >= objects.len() { @@ -269,11 +272,13 @@ pub fn bounds_mean_split<'a, T, F>(objects: &mut [T], bounder: &F) -> (usize, us let div = (bounds.min.get_n(split_axis) + bounds.max.get_n(split_axis)) * 0.5; // Partition - let mut split_i = partition(&mut objects[..], |obj| { - let tb = lerp_slice(bounder(obj), 0.5); - let centroid = (tb.min.get_n(split_axis) + tb.max.get_n(split_axis)) * 0.5; - centroid < div - }); + let mut split_i = partition( + &mut objects[..], |obj| { + let tb = lerp_slice(bounder(obj), 0.5); + let centroid = (tb.min.get_n(split_axis) + tb.max.get_n(split_axis)) * 0.5; + centroid < div + } + ); if split_i < 1 { split_i = 1; } else if split_i >= objects.len() { @@ -317,20 +322,22 @@ pub fn median_split<'a, T, F>(objects: &mut [T], bounder: &F) -> (usize, usize) let place = objects.len() / 2; if place > 0 { place } else { 1 } }; - quick_select(objects, place, |a, b| { - let tb_a = lerp_slice(bounder(a), 0.5); - let tb_b = lerp_slice(bounder(b), 0.5); - let centroid_a = (tb_a.min.get_n(split_axis) + tb_a.max.get_n(split_axis)) * 0.5; - let centroid_b = (tb_b.min.get_n(split_axis) + tb_b.max.get_n(split_axis)) * 0.5; + quick_select( + objects, place, |a, b| { + let tb_a = lerp_slice(bounder(a), 0.5); + let tb_b = lerp_slice(bounder(b), 0.5); + let centroid_a = (tb_a.min.get_n(split_axis) + tb_a.max.get_n(split_axis)) * 0.5; + let centroid_b = (tb_b.min.get_n(split_axis) + tb_b.max.get_n(split_axis)) * 0.5; - if centroid_a < centroid_b { - Ordering::Less - } else if centroid_a == centroid_b { - Ordering::Equal - } else { - Ordering::Greater + if centroid_a < centroid_b { + Ordering::Less + } else if centroid_a == centroid_b { + Ordering::Equal + } else { + Ordering::Greater + } } - }); + ); (place, split_axis) } diff --git a/src/algorithm.rs b/src/algorithm.rs index 2355d48..81fe7bb 100644 --- a/src/algorithm.rs +++ b/src/algorithm.rs @@ -159,9 +159,11 @@ pub fn partition_pair(slc1: &mut [A], slc2: &mut [B], mut pred: F) -> u if a1 == b1 { return ((a1 as usize) - start) / std::mem::size_of::(); } - if !pred(((a1 as usize) - start) / std::mem::size_of::(), - &mut *a1, - &mut *a2) { + if !pred( + ((a1 as usize) - start) / std::mem::size_of::(), + &mut *a1, + &mut *a2, + ) { break; } a1 = a1.offset(1); @@ -174,9 +176,11 @@ pub fn partition_pair(slc1: &mut [A], slc2: &mut [B], mut pred: F) -> u if a1 == b1 { return ((a1 as usize) - start) / std::mem::size_of::(); } - if pred(((b1 as usize) - start) / std::mem::size_of::(), - &mut *b1, - &mut *b2) { + if pred( + ((b1 as usize) - start) / std::mem::size_of::(), + &mut *b1, + &mut *b2, + ) { break; } } @@ -205,9 +209,9 @@ pub fn quick_select(slc: &mut [T], n: usize, mut order: F) slc.swap(i, right - 1); let ii = left + { - let (val, list) = (&mut slc[left..right]).split_last_mut().unwrap(); - partition(list, |n| order(n, val) == Ordering::Less) - }; + let (val, list) = (&mut slc[left..right]).split_last_mut().unwrap(); + partition(list, |n| order(n, val) == Ordering::Less) + }; slc.swap(ii, right - 1); if ii == n { @@ -223,10 +227,7 @@ pub fn quick_select(slc: &mut [T], n: usize, mut order: F) } /// Merges two slices of things, appending the result to vec_out -pub fn merge_slices_append(slice1: &[T], - slice2: &[T], - vec_out: &mut Vec, - merge: F) +pub fn merge_slices_append(slice1: &[T], slice2: &[T], vec_out: &mut Vec, merge: F) where F: Fn(&T, &T) -> T { // Transform the bounding boxes @@ -253,10 +254,7 @@ pub fn merge_slices_append(slice1: &[T], /// Merges two slices of things, storing the result in slice_out. /// Panics if slice_out is not the right size. -pub fn merge_slices_to(slice1: &[T], - slice2: &[T], - slice_out: &mut [T], - merge: F) +pub fn merge_slices_to(slice1: &[T], slice2: &[T], slice_out: &mut [T], merge: F) where F: Fn(&T, &T) -> T { assert!(slice_out.len() == cmp::max(slice1.len(), slice2.len())); @@ -266,8 +264,10 @@ pub fn merge_slices_to(slice1: &[T], return; } else if slice1.len() == slice2.len() { for (xfo, (xf1, xf2)) in - Iterator::zip(slice_out.iter_mut(), - Iterator::zip(slice1.iter(), slice2.iter())) { + Iterator::zip( + slice_out.iter_mut(), + Iterator::zip(slice1.iter(), slice2.iter()), + ) { *xfo = merge(xf1, xf2); } } else if slice1.len() > slice2.len() { @@ -291,13 +291,15 @@ mod tests { use super::*; fn quick_select_ints(list: &mut [i32], i: usize) { - quick_select(list, i, |a, b| if a < b { - Ordering::Less - } else if a == b { - Ordering::Equal - } else { - Ordering::Greater - }); + quick_select( + list, i, |a, b| if a < b { + Ordering::Less + } else if a == b { + Ordering::Equal + } else { + Ordering::Greater + } + ); } #[test] diff --git a/src/bbox.rs b/src/bbox.rs index 0a18ac6..b3e8b11 100644 --- a/src/bbox.rs +++ b/src/bbox.rs @@ -23,19 +23,18 @@ impl BBox { pub fn new() -> BBox { BBox { min: Point::new(std::f32::INFINITY, std::f32::INFINITY, std::f32::INFINITY), - max: Point::new(std::f32::NEG_INFINITY, - std::f32::NEG_INFINITY, - std::f32::NEG_INFINITY), + max: Point::new( + std::f32::NEG_INFINITY, + std::f32::NEG_INFINITY, + std::f32::NEG_INFINITY, + ), } } /// Creates a BBox with min as the minimum extent and max as the maximum /// extent. pub fn from_points(min: Point, max: Point) -> BBox { - BBox { - min: min, - max: max, - } + BBox { min: min, max: max } } // Returns whether the given ray intersects with the bbox. @@ -59,14 +58,16 @@ impl BBox { // Creates a new BBox transformed into a different space. pub fn transformed(&self, xform: Matrix4x4) -> BBox { // BBox corners - let vs = [Point::new(self.min.x(), self.min.y(), self.min.z()), - Point::new(self.min.x(), self.min.y(), self.max.z()), - Point::new(self.min.x(), self.max.y(), self.min.z()), - Point::new(self.min.x(), self.max.y(), self.max.z()), - Point::new(self.max.x(), self.min.y(), self.min.z()), - Point::new(self.max.x(), self.min.y(), self.max.z()), - Point::new(self.max.x(), self.max.y(), self.min.z()), - Point::new(self.max.x(), self.max.y(), self.max.z())]; + let vs = [ + Point::new(self.min.x(), self.min.y(), self.min.z()), + Point::new(self.min.x(), self.min.y(), self.max.z()), + Point::new(self.min.x(), self.max.y(), self.min.z()), + Point::new(self.min.x(), self.max.y(), self.max.z()), + Point::new(self.max.x(), self.min.y(), self.min.z()), + Point::new(self.max.x(), self.min.y(), self.max.z()), + Point::new(self.max.x(), self.max.y(), self.min.z()), + Point::new(self.max.x(), self.max.y(), self.max.z()), + ]; // Transform BBox corners and make new bbox let mut b = BBox::new(); @@ -99,8 +100,10 @@ impl BitOr for BBox { type Output = BBox; fn bitor(self, rhs: BBox) -> BBox { - BBox::from_points(Point { co: self.min.co.v_min(rhs.min.co) }, - Point { co: self.max.co.v_max(rhs.max.co) }) + BBox::from_points( + Point { co: self.min.co.v_min(rhs.min.co) }, + Point { co: self.max.co.v_max(rhs.max.co) }, + ) } } @@ -115,8 +118,10 @@ impl BitOr for BBox { type Output = BBox; fn bitor(self, rhs: Point) -> BBox { - BBox::from_points(Point { co: self.min.co.v_min(rhs.co) }, - Point { co: self.max.co.v_max(rhs.co) }) + BBox::from_points( + Point { co: self.min.co.v_min(rhs.co) }, + Point { co: self.max.co.v_max(rhs.co) }, + ) } } diff --git a/src/camera.rs b/src/camera.rs index aa7aa68..eb9c587 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -18,12 +18,7 @@ pub struct Camera<'a> { } impl<'a> Camera<'a> { - pub fn new(arena: &'a MemArena, - transforms: Vec, - fovs: Vec, - mut aperture_radii: Vec, - mut focus_distances: Vec) - -> Camera<'a> { + pub fn new(arena: &'a MemArena, transforms: Vec, fovs: Vec, mut aperture_radii: Vec, mut focus_distances: Vec) -> Camera<'a> { assert!(transforms.len() != 0, "Camera has no transform(s)!"); assert!(fovs.len() != 0, "Camera has no fov(s)!"); @@ -33,11 +28,15 @@ impl<'a> Camera<'a> { focus_distances = vec![1.0]; if aperture_radii.len() == 0 && focus_distances.len() != 0 { - println!("WARNING: camera has aperture radius but no focus distance. Disabling \ - focal blur."); + println!( + "WARNING: camera has aperture radius but no focus distance. Disabling \ + focal blur." + ); } else if aperture_radii.len() != 0 && focus_distances.len() == 0 { - println!("WARNING: camera has focus distance but no aperture radius. Disabling \ - focal blur."); + println!( + "WARNING: camera has focus distance but no aperture radius. Disabling \ + focal blur." + ); } } @@ -51,7 +50,9 @@ impl<'a> Camera<'a> { } // Convert angle fov into linear fov. - let tfovs: Vec = fovs.iter().map(|n| (n / 2.0).sin() / (n / 2.0).cos()).collect(); + let tfovs: Vec = fovs.iter() + .map(|n| (n / 2.0).sin() / (n / 2.0).cos()) + .collect(); Camera { transforms: arena.copy_slice(&transforms), @@ -76,10 +77,12 @@ impl<'a> Camera<'a> { }; // Ray direction - let dir = Vector::new((x * tfov) - (orig.x() / focus_distance), - (y * tfov) - (orig.y() / focus_distance), - 1.0) - .normalized(); + let dir = Vector::new( + (x * tfov) - (orig.x() / focus_distance), + (y * tfov) - (orig.y() / focus_distance), + 1.0, + ) + .normalized(); Ray::new(orig * transform, dir * transform, time, false) } diff --git a/src/color.rs b/src/color.rs index 96d6fbc..a15af12 100644 --- a/src/color.rs +++ b/src/color.rs @@ -22,10 +22,12 @@ pub trait Color { fn to_spectral_sample(&self, hero_wavelength: f32) -> SpectralSample { SpectralSample { - e: Float4::new(self.sample_spectrum(nth_wavelength(hero_wavelength, 0)), - self.sample_spectrum(nth_wavelength(hero_wavelength, 1)), - self.sample_spectrum(nth_wavelength(hero_wavelength, 2)), - self.sample_spectrum(nth_wavelength(hero_wavelength, 3))), + e: Float4::new( + self.sample_spectrum(nth_wavelength(hero_wavelength, 0)), + self.sample_spectrum(nth_wavelength(hero_wavelength, 1)), + self.sample_spectrum(nth_wavelength(hero_wavelength, 2)), + self.sample_spectrum(nth_wavelength(hero_wavelength, 3)), + ), hero_wavelength: hero_wavelength, } @@ -260,17 +262,13 @@ impl DivAssign for XYZ { /// colorspace cannot represent all colors in the XYZ colorspace. #[allow(dead_code)] pub fn xyz_to_rec709(xyz: (f32, f32, f32)) -> (f32, f32, f32) { - ((xyz.0 * 3.2404542) + (xyz.1 * -1.5371385) + (xyz.2 * -0.4985314), - (xyz.0 * -0.9692660) + (xyz.1 * 1.8760108) + (xyz.2 * 0.0415560), - (xyz.0 * 0.0556434) + (xyz.1 * -0.2040259) + (xyz.2 * 1.0572252)) + ((xyz.0 * 3.2404542) + (xyz.1 * -1.5371385) + (xyz.2 * -0.4985314), (xyz.0 * -0.9692660) + (xyz.1 * 1.8760108) + (xyz.2 * 0.0415560), (xyz.0 * 0.0556434) + (xyz.1 * -0.2040259) + (xyz.2 * 1.0572252)) } /// Converts a color in Rec.709 colorspace to XYZ colorspace. #[allow(dead_code)] pub fn rec709_to_xyz(rec: (f32, f32, f32)) -> (f32, f32, f32) { - ((rec.0 * 0.4124564) + (rec.1 * 0.3575761) + (rec.2 * 0.1804375), - (rec.0 * 0.2126729) + (rec.1 * 0.7151522) + (rec.2 * 0.0721750), - (rec.0 * 0.0193339) + (rec.1 * 0.1191920) + (rec.2 * 0.9503041)) + ((rec.0 * 0.4124564) + (rec.1 * 0.3575761) + (rec.2 * 0.1804375), (rec.0 * 0.2126729) + (rec.1 * 0.7151522) + (rec.2 * 0.0721750), (rec.0 * 0.0193339) + (rec.1 * 0.1191920) + (rec.2 * 0.9503041)) } /// Converts a color in XYZ colorspace to an adjusted Rec.709 colorspace @@ -278,18 +276,14 @@ pub fn rec709_to_xyz(rec: (f32, f32, f32)) -> (f32, f32, f32) { /// Note: this is lossy, as negative resulting values are clamped to zero. #[allow(dead_code)] pub fn xyz_to_rec709e(xyz: (f32, f32, f32)) -> (f32, f32, f32) { - ((xyz.0 * 3.0799600) + (xyz.1 * -1.5371400) + (xyz.2 * -0.5428160), - (xyz.0 * -0.9212590) + (xyz.1 * 1.8760100) + (xyz.2 * 0.0452475), - (xyz.0 * 0.0528874) + (xyz.1 * -0.2040260) + (xyz.2 * 1.1511400)) + ((xyz.0 * 3.0799600) + (xyz.1 * -1.5371400) + (xyz.2 * -0.5428160), (xyz.0 * -0.9212590) + (xyz.1 * 1.8760100) + (xyz.2 * 0.0452475), (xyz.0 * 0.0528874) + (xyz.1 * -0.2040260) + (xyz.2 * 1.1511400)) } /// Converts a color in an adjusted Rec.709 colorspace with whitepoint E to /// XYZ colorspace. #[allow(dead_code)] pub fn rec709e_to_xyz(rec: (f32, f32, f32)) -> (f32, f32, f32) { - ((rec.0 * 0.4339499) + (rec.1 * 0.3762098) + (rec.2 * 0.1898403), - (rec.0 * 0.2126729) + (rec.1 * 0.7151522) + (rec.2 * 0.0721750), - (rec.0 * 0.0177566) + (rec.1 * 0.1094680) + (rec.2 * 0.8727755)) + ((rec.0 * 0.4339499) + (rec.1 * 0.3762098) + (rec.2 * 0.1898403), (rec.0 * 0.2126729) + (rec.1 * 0.7151522) + (rec.2 * 0.0721750), (rec.0 * 0.0177566) + (rec.1 * 0.1094680) + (rec.2 * 0.8727755)) } @@ -309,8 +303,7 @@ fn x_1931(wavelength: f32) -> f32 { let t1 = (wavelength - 442.0) * (if wavelength < 442.0 { 0.0624 } else { 0.0374 }); let t2 = (wavelength - 599.8) * (if wavelength < 599.8 { 0.0264 } else { 0.0323 }); let t3 = (wavelength - 501.1) * (if wavelength < 501.1 { 0.0490 } else { 0.0382 }); - (0.362 * faster_exp(-0.5 * t1 * t1)) + (1.056 * faster_exp(-0.5 * t2 * t2)) - - (0.065 * faster_exp(-0.5 * t3 * t3)) + (0.362 * faster_exp(-0.5 * t1 * t1)) + (1.056 * faster_exp(-0.5 * t2 * t2)) - (0.065 * faster_exp(-0.5 * t3 * t3)) } #[allow(dead_code)] diff --git a/src/image.rs b/src/image.rs index b2dd28a..7d1f32e 100644 --- a/src/image.rs +++ b/src/image.rs @@ -142,12 +142,14 @@ impl Image { } // Write file - if let Err(_) = lodepng::encode_file(path, - &image, - self.res.0, - self.res.1, - lodepng::ColorType::LCT_RGB, - 8) { + if let Err(_) = lodepng::encode_file( + path, + &image, + self.res.0, + self.res.1, + lodepng::ColorType::LCT_RGB, + 8, + ) { panic!("Couldn't write PNG file."); } @@ -222,10 +224,9 @@ impl<'a> Drop for Bucket<'a> { let mut bucket_list = tmp.borrow_mut(); // Find matching bucket and remove it - let i = bucket_list.iter().position(|bucket| { - (bucket.0).0 == self.min.0 && (bucket.0).1 == self.min.1 && - (bucket.1).0 == self.max.0 && (bucket.1).1 == self.max.1 - }); + let i = bucket_list + .iter() + .position(|bucket| (bucket.0).0 == self.min.0 && (bucket.0).1 == self.min.1 && (bucket.1).0 == self.max.0 && (bucket.1).1 == self.max.1); bucket_list.swap_remove(i.unwrap()); } } diff --git a/src/lerp.rs b/src/lerp.rs index 46c227d..553f1b4 100644 --- a/src/lerp.rs +++ b/src/lerp.rs @@ -21,7 +21,9 @@ pub fn lerp(a: T, b: T, alpha: f32) -> T { /// Interpolates a slice of data as if each adjecent pair of elements /// represent a linear segment. pub fn lerp_slice(s: &[T], alpha: f32) -> T { - debug_assert!(s.len() > 0); + debug_assert!( + s.len() > 0, + ); debug_assert!(alpha >= 0.0); debug_assert!(alpha <= 1.0); @@ -41,7 +43,9 @@ pub fn lerp_slice_with(s: &[T], alpha: f32, f: F) -> T where T: Copy, F: Fn(T, T, f32) -> T { - debug_assert!(s.len() > 0); + debug_assert!( + s.len() > 0, + ); debug_assert!(alpha >= 0.0); debug_assert!(alpha <= 1.0); @@ -86,10 +90,12 @@ impl Lerp for Matrix4x4 { fn lerp(self, other: Matrix4x4, alpha: f32) -> Matrix4x4 { let alpha_minus = 1.0 - alpha; Matrix4x4 { - values: [(self[0] * alpha_minus) + (other[0] * alpha), - (self[1] * alpha_minus) + (other[1] * alpha), - (self[2] * alpha_minus) + (other[2] * alpha), - (self[3] * alpha_minus) + (other[3] * alpha)], + values: [ + (self[0] * alpha_minus) + (other[0] * alpha), + (self[1] * alpha_minus) + (other[1] * alpha), + (self[2] * alpha_minus) + (other[2] * alpha), + (self[3] * alpha_minus) + (other[3] * alpha), + ], } } } @@ -198,87 +204,97 @@ mod tests { #[test] fn lerp_matrix() { - let a = Matrix4x4::new_from_values(0.0, - 2.0, - 2.0, - 3.0, - 4.0, - 5.0, - 6.0, - 7.0, - 8.0, - 9.0, - 10.0, - 11.0, - 12.0, - 13.0, - 14.0, - 15.0); - let b = Matrix4x4::new_from_values(-1.0, - 1.0, - 3.0, - 4.0, - 5.0, - 6.0, - 7.0, - 8.0, - 9.0, - 10.0, - 11.0, - 12.0, - 13.0, - 14.0, - 15.0, - 16.0); + let a = Matrix4x4::new_from_values( + 0.0, + 2.0, + 2.0, + 3.0, + 4.0, + 5.0, + 6.0, + 7.0, + 8.0, + 9.0, + 10.0, + 11.0, + 12.0, + 13.0, + 14.0, + 15.0, + ); + let b = Matrix4x4::new_from_values( + -1.0, + 1.0, + 3.0, + 4.0, + 5.0, + 6.0, + 7.0, + 8.0, + 9.0, + 10.0, + 11.0, + 12.0, + 13.0, + 14.0, + 15.0, + 16.0, + ); - let c1 = Matrix4x4::new_from_values(-0.25, - 1.75, - 2.25, - 3.25, - 4.25, - 5.25, - 6.25, - 7.25, - 8.25, - 9.25, - 10.25, - 11.25, - 12.25, - 13.25, - 14.25, - 15.25); - let c2 = Matrix4x4::new_from_values(-0.5, - 1.5, - 2.5, - 3.5, - 4.5, - 5.5, - 6.5, - 7.5, - 8.5, - 9.5, - 10.5, - 11.5, - 12.5, - 13.5, - 14.5, - 15.5); - let c3 = Matrix4x4::new_from_values(-0.75, - 1.25, - 2.75, - 3.75, - 4.75, - 5.75, - 6.75, - 7.75, - 8.75, - 9.75, - 10.75, - 11.75, - 12.75, - 13.75, - 14.75, - 15.75); + let c1 = Matrix4x4::new_from_values( + -0.25, + 1.75, + 2.25, + 3.25, + 4.25, + 5.25, + 6.25, + 7.25, + 8.25, + 9.25, + 10.25, + 11.25, + 12.25, + 13.25, + 14.25, + 15.25, + ); + let c2 = Matrix4x4::new_from_values( + -0.5, + 1.5, + 2.5, + 3.5, + 4.5, + 5.5, + 6.5, + 7.5, + 8.5, + 9.5, + 10.5, + 11.5, + 12.5, + 13.5, + 14.5, + 15.5, + ); + let c3 = Matrix4x4::new_from_values( + -0.75, + 1.25, + 2.75, + 3.75, + 4.75, + 5.75, + 6.75, + 7.75, + 8.75, + 9.75, + 10.75, + 11.75, + 12.75, + 13.75, + 14.75, + 15.75, + ); assert_eq!(a.lerp(b, 0.0), a); assert_eq!(a.lerp(b, 0.25), c1); diff --git a/src/light/distant_disk_light.rs b/src/light/distant_disk_light.rs index 28e3e7d..f12bffc 100644 --- a/src/light/distant_disk_light.rs +++ b/src/light/distant_disk_light.rs @@ -19,11 +19,7 @@ pub struct DistantDiskLight<'a> { } impl<'a> DistantDiskLight<'a> { - pub fn new(arena: &'a MemArena, - radii: Vec, - directions: Vec, - colors: Vec) - -> DistantDiskLight<'a> { + pub fn new(arena: &'a MemArena, radii: Vec, directions: Vec, colors: Vec) -> DistantDiskLight<'a> { DistantDiskLight { radii: arena.copy_slice(&radii), directions: arena.copy_slice(&directions), @@ -79,8 +75,9 @@ impl<'a> WorldLightSource for DistantDiskLight<'a> { } fn approximate_energy(&self) -> f32 { - let color: XYZ = self.colors.iter().fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / - self.colors.len() as f32; + let color: XYZ = self.colors + .iter() + .fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / self.colors.len() as f32; color.y } } diff --git a/src/light/mod.rs b/src/light/mod.rs index ea2c97a..ed775a6 100644 --- a/src/light/mod.rs +++ b/src/light/mod.rs @@ -26,14 +26,7 @@ pub trait LightSource: Boundable + Debug + Sync { /// /// Returns: The light arriving at the point arr, the vector to use for /// shadow testing, and the pdf of the sample. - fn sample(&self, - space: &Matrix4x4, - arr: Point, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> (SpectralSample, Vector, f32); + fn sample(&self, space: &Matrix4x4, arr: Point, u: f32, v: f32, wavelength: f32, time: f32) -> (SpectralSample, Vector, f32); /// Calculates the pdf of sampling the given @@ -44,15 +37,7 @@ pub trait LightSource: Boundable + Debug + Sync { /// are a valid sample for the light source (i.e. hits/lies on the light /// source). No guarantees are made about the correctness of the return /// value if they are not valid. - fn sample_pdf(&self, - space: &Matrix4x4, - arr: Point, - sample_dir: Vector, - sample_u: f32, - sample_v: f32, - wavelength: f32, - time: f32) - -> f32; + fn sample_pdf(&self, space: &Matrix4x4, arr: Point, sample_dir: Vector, sample_u: f32, sample_v: f32, wavelength: f32, time: f32) -> f32; /// Returns the color emitted in the given direction from the @@ -63,14 +48,7 @@ pub trait LightSource: Boundable + Debug + Sync { /// - v: Random parameter V. /// - wavelength: The hero wavelength of light to sample at. /// - time: The time to sample at. - fn outgoing(&self, - space: &Matrix4x4, - dir: Vector, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> SpectralSample; + fn outgoing(&self, space: &Matrix4x4, dir: Vector, u: f32, v: f32, wavelength: f32, time: f32) -> SpectralSample; /// Returns whether the light has a delta distribution. diff --git a/src/light/rectangle_light.rs b/src/light/rectangle_light.rs index 758bc09..6a49a4e 100644 --- a/src/light/rectangle_light.rs +++ b/src/light/rectangle_light.rs @@ -18,17 +18,17 @@ pub struct RectangleLight<'a> { } impl<'a> RectangleLight<'a> { - pub fn new<'b>(arena: &'b MemArena, - dimensions: Vec<(f32, f32)>, - colors: Vec) - -> RectangleLight<'b> { - let bbs: Vec<_> = dimensions.iter() - .map(|d| { - BBox { - min: Point::new(d.0 * -0.5, d.1 * -0.5, 0.0), - max: Point::new(d.0 * 0.5, d.1 * 0.5, 0.0), + pub fn new<'b>(arena: &'b MemArena, dimensions: Vec<(f32, f32)>, colors: Vec) -> RectangleLight<'b> { + let bbs: Vec<_> = dimensions + .iter() + .map( + |d| { + BBox { + min: Point::new(d.0 * -0.5, d.1 * -0.5, 0.0), + max: Point::new(d.0 * 0.5, d.1 * 0.5, 0.0), + } } - }) + ) .collect(); RectangleLight { dimensions: arena.copy_slice(&dimensions), @@ -39,14 +39,7 @@ impl<'a> RectangleLight<'a> { } impl<'a> LightSource for RectangleLight<'a> { - fn sample(&self, - space: &Matrix4x4, - arr: Point, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> (SpectralSample, Vector, f32) { + fn sample(&self, space: &Matrix4x4, arr: Point, u: f32, v: f32, wavelength: f32, time: f32) -> (SpectralSample, Vector, f32) { // Calculate time interpolated values let dim = lerp_slice(&self.dimensions, time); let col = lerp_slice(&self.colors, time); @@ -105,15 +98,7 @@ impl<'a> LightSource for RectangleLight<'a> { return (spectral_sample, shadow_vec, pdf as f32); } - fn sample_pdf(&self, - space: &Matrix4x4, - arr: Point, - sample_dir: Vector, - sample_u: f32, - sample_v: f32, - wavelength: f32, - time: f32) - -> f32 { + fn sample_pdf(&self, space: &Matrix4x4, arr: Point, sample_dir: Vector, sample_u: f32, sample_v: f32, wavelength: f32, time: f32) -> f32 { // We're not using these, silence warnings let _ = (sample_dir, sample_u, sample_v, wavelength); @@ -140,14 +125,7 @@ impl<'a> LightSource for RectangleLight<'a> { 1.0 / (area_1 + area_2) } - fn outgoing(&self, - space: &Matrix4x4, - dir: Vector, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> SpectralSample { + fn outgoing(&self, space: &Matrix4x4, dir: Vector, u: f32, v: f32, wavelength: f32, time: f32) -> SpectralSample { // We're not using these, silence warnings let _ = (space, dir, u, v); @@ -165,8 +143,9 @@ impl<'a> LightSource for RectangleLight<'a> { } fn approximate_energy(&self) -> f32 { - let color: XYZ = self.colors.iter().fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / - self.colors.len() as f32; + let color: XYZ = self.colors + .iter() + .fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / self.colors.len() as f32; color.y } } diff --git a/src/light/sphere_light.rs b/src/light/sphere_light.rs index cd806dd..57191f4 100644 --- a/src/light/sphere_light.rs +++ b/src/light/sphere_light.rs @@ -22,13 +22,16 @@ pub struct SphereLight<'a> { impl<'a> SphereLight<'a> { pub fn new<'b>(arena: &'b MemArena, radii: Vec, colors: Vec) -> SphereLight<'b> { - let bbs: Vec<_> = radii.iter() - .map(|r| { - BBox { - min: Point::new(-*r, -*r, -*r), - max: Point::new(*r, *r, *r), + let bbs: Vec<_> = radii + .iter() + .map( + |r| { + BBox { + min: Point::new(-*r, -*r, -*r), + max: Point::new(*r, *r, *r), + } } - }) + ) .collect(); SphereLight { radii: arena.copy_slice(&radii), @@ -39,14 +42,7 @@ impl<'a> SphereLight<'a> { } impl<'a> LightSource for SphereLight<'a> { - fn sample(&self, - space: &Matrix4x4, - arr: Point, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> (SpectralSample, Vector, f32) { + fn sample(&self, space: &Matrix4x4, arr: Point, u: f32, v: f32, wavelength: f32, time: f32) -> (SpectralSample, Vector, f32) { // TODO: track fp error due to transforms let arr = arr * *space; let pos = Point::new(0.0, 0.0, 0.0); @@ -93,13 +89,14 @@ impl<'a> LightSource for SphereLight<'a> { }; let sin_a = ((1.0 - (cos_a * cos_a)).max(0.0)).sqrt(); let phi = v as f64 * 2.0 * PI_64; - let sample = Vector::new((phi.cos() * sin_a * radius) as f32, - (phi.sin() * sin_a * radius) as f32, - (d - (cos_a * radius)) as f32); + let sample = Vector::new( + (phi.cos() * sin_a * radius) as f32, + (phi.sin() * sin_a * radius) as f32, + (d - (cos_a * radius)) as f32, + ); // Calculate the final values and return everything. - let shadow_vec = ((x * sample.x()) + (y * sample.y()) + (z * sample.z())) * - space.inverse(); + let shadow_vec = ((x * sample.x()) + (y * sample.y()) + (z * sample.z())) * space.inverse(); let pdf = uniform_sample_cone_pdf(cos_theta_max); let spectral_sample = (col * surface_area_inv as f32).to_spectral_sample(wavelength); return (spectral_sample, shadow_vec, pdf as f32); @@ -112,15 +109,7 @@ impl<'a> LightSource for SphereLight<'a> { } } - fn sample_pdf(&self, - space: &Matrix4x4, - arr: Point, - sample_dir: Vector, - sample_u: f32, - sample_v: f32, - wavelength: f32, - time: f32) - -> f32 { + fn sample_pdf(&self, space: &Matrix4x4, arr: Point, sample_dir: Vector, sample_u: f32, sample_v: f32, wavelength: f32, time: f32) -> f32 { // We're not using these, silence warnings let _ = (sample_dir, sample_u, sample_v, wavelength); @@ -143,14 +132,7 @@ impl<'a> LightSource for SphereLight<'a> { } } - fn outgoing(&self, - space: &Matrix4x4, - dir: Vector, - u: f32, - v: f32, - wavelength: f32, - time: f32) - -> SpectralSample { + fn outgoing(&self, space: &Matrix4x4, dir: Vector, u: f32, v: f32, wavelength: f32, time: f32) -> SpectralSample { // We're not using these, silence warnings let _ = (space, dir, u, v); @@ -166,8 +148,9 @@ impl<'a> LightSource for SphereLight<'a> { } fn approximate_energy(&self) -> f32 { - let color: XYZ = self.colors.iter().fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / - self.colors.len() as f32; + let color: XYZ = self.colors + .iter() + .fold(XYZ::new(0.0, 0.0, 0.0), |a, &b| a + b) / self.colors.len() as f32; color.y } } diff --git a/src/main.rs b/src/main.rs index 61ebee9..88a4ec3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,59 +70,86 @@ fn main() { let mut t = Timer::new(); // Parse command line arguments. - let args = - App::new("Psychopath") - .version(VERSION) - .about("A slightly psychotic path tracer") - .arg(Arg::with_name("input") + let args = App::new("Psychopath") + .version(VERSION) + .about("A slightly psychotic path tracer") + .arg( + Arg::with_name("input") .short("i") .long("input") .value_name("FILE") .help("Input .psy file") .takes_value(true) - .required_unless("dev")) - .arg(Arg::with_name("spp") + .required_unless("dev") + ) + .arg( + Arg::with_name("spp") .short("s") .long("spp") .value_name("N") .help("Number of samples per pixel") .takes_value(true) - .validator(|s| { - usize::from_str(&s).and(Ok(())).or(Err("must be an integer".to_string())) - })) - .arg(Arg::with_name("max_bucket_samples") + .validator( + |s| { + usize::from_str(&s) + .and(Ok(())) + .or(Err("must be an integer".to_string())) + } + ) + ) + .arg( + Arg::with_name("max_bucket_samples") .short("b") .long("spb") .value_name("N") .help("Target number of samples per bucket (determines bucket size)") .takes_value(true) - .validator(|s| { - usize::from_str(&s).and(Ok(())).or(Err("must be an integer".to_string())) - })) - .arg(Arg::with_name("threads") + .validator( + |s| { + usize::from_str(&s) + .and(Ok(())) + .or(Err("must be an integer".to_string())) + } + ) + ) + .arg( + Arg::with_name("threads") .short("t") .long("threads") .value_name("N") - .help("Number of threads to render with. Defaults to the number of logical \ - cores on the system.") + .help( + "Number of threads to render with. Defaults to the number of logical \ + cores on the system." + ) .takes_value(true) - .validator(|s| { - usize::from_str(&s).and(Ok(())).or(Err("must be an integer".to_string())) - })) - .arg(Arg::with_name("stats") + .validator( + |s| { + usize::from_str(&s) + .and(Ok(())) + .or(Err("must be an integer".to_string())) + } + ) + ) + .arg( + Arg::with_name("stats") .long("stats") - .help("Print additional statistics about rendering")) - .arg(Arg::with_name("dev") + .help("Print additional statistics about rendering") + ) + .arg( + Arg::with_name("dev") .long("dev") - .help("Show useful dev/debug info.")) - .get_matches(); + .help("Show useful dev/debug info.") + ) + .get_matches(); // Print some misc useful dev info. if args.is_present("dev") { println!("Ray size: {} bytes", mem::size_of::()); println!("AccelRay size: {} bytes", mem::size_of::()); - println!("SurfaceIntersection size: {} bytes", - mem::size_of::()); + println!( + "SurfaceIntersection size: {} bytes", + mem::size_of::() + ); println!("LightPath size: {} bytes", mem::size_of::()); println!("BBox size: {} bytes", mem::size_of::()); println!("BVHNode size: {} bytes", mem::size_of::()); @@ -130,7 +157,9 @@ fn main() { } // Parse data tree of scene file - println!("Parsing scene file..."); + println!( + "Parsing scene file...", + ); t.tick(); let mut psy_contents = String::new(); let dt = { @@ -150,18 +179,19 @@ fn main() { println!("Building scene..."); let arena = MemArena::with_min_block_size((1 << 20) * 4); - let mut r = parse_scene(&arena, child).unwrap_or_else(|e| { - e.print(&psy_contents); - panic!("Parse error."); - }); + let mut r = parse_scene(&arena, child).unwrap_or_else( + |e| { + e.print(&psy_contents); + panic!("Parse error."); + } + ); if let Some(spp) = args.value_of("spp") { println!("\tOverriding scene spp: {}", spp); r.spp = usize::from_str(&spp).unwrap(); } - let max_samples_per_bucket = if let Some(max_samples_per_bucket) = - args.value_of("max_bucket_samples") { + let max_samples_per_bucket = if let Some(max_samples_per_bucket) = args.value_of("max_bucket_samples") { u32::from_str(&max_samples_per_bucket).unwrap() } else { 4096 @@ -182,16 +212,26 @@ fn main() { let rtime = t.tick(); let ntime = rtime as f64 / rstats.total_time; println!("\tRendered scene in {:.3}s", rtime); - println!("\t\tTrace: {:.3}s", - ntime * rstats.trace_time); - println!("\t\t\tTraversal: {:.3}s", - ntime * rstats.accel_traversal_time); - println!("\t\tInitial ray generation: {:.3}s", - ntime * rstats.initial_ray_generation_time); - println!("\t\tRay generation: {:.3}s", - ntime * rstats.ray_generation_time); - println!("\t\tSample writing: {:.3}s", - ntime * rstats.sample_writing_time); + println!( + "\t\tTrace: {:.3}s", + ntime * rstats.trace_time + ); + println!( + "\t\t\tTraversal: {:.3}s", + ntime * rstats.accel_traversal_time + ); + println!( + "\t\tInitial ray generation: {:.3}s", + ntime * rstats.initial_ray_generation_time + ); + println!( + "\t\tRay generation: {:.3}s", + ntime * rstats.ray_generation_time + ); + println!( + "\t\tSample writing: {:.3}s", + ntime * rstats.sample_writing_time + ); } println!("Writing image to disk..."); diff --git a/src/math.rs b/src/math.rs index 0e11168..56ddefe 100644 --- a/src/math.rs +++ b/src/math.rs @@ -29,9 +29,7 @@ pub fn fast_pow2(p: f32) -> f32 { let w: i32 = clipp as i32; let z: f32 = clipp - w as f32 + offset; - let i: u32 = ((1 << 23) as f32 * - (clipp + 121.2740575 + 27.7280233 / (4.84252568 - z) - 1.49012907 * z)) as - u32; + let i: u32 = ((1 << 23) as f32 * (clipp + 121.2740575 + 27.7280233 / (4.84252568 - z) - 1.49012907 * z)) as u32; unsafe { transmute_copy::(&i) } } @@ -77,10 +75,72 @@ pub fn upper_power_of_two(mut v: u32) -> u32 { /// Gets the log base 2 of the given integer pub fn log2_64(value: u64) -> u64 { - const TAB64: [u64; 64] = [63, 0, 58, 1, 59, 47, 53, 2, 60, 39, 48, 27, 54, 33, 42, 3, 61, 51, - 37, 40, 49, 18, 28, 20, 55, 30, 34, 11, 43, 14, 22, 4, 62, 57, 46, - 52, 38, 26, 32, 41, 50, 36, 17, 19, 29, 10, 13, 21, 56, 45, 25, 31, - 35, 16, 9, 12, 44, 24, 15, 8, 23, 7, 6, 5]; + const TAB64: [u64; 64] = [ + 63, + 0, + 58, + 1, + 59, + 47, + 53, + 2, + 60, + 39, + 48, + 27, + 54, + 33, + 42, + 3, + 61, + 51, + 37, + 40, + 49, + 18, + 28, + 20, + 55, + 30, + 34, + 11, + 43, + 14, + 22, + 4, + 62, + 57, + 46, + 52, + 38, + 26, + 32, + 41, + 50, + 36, + 17, + 19, + 29, + 10, + 13, + 21, + 56, + 45, + 25, + 31, + 35, + 16, + 9, + 12, + 44, + 24, + 15, + 8, + 23, + 7, + 6, + 5, + ]; let value = value | value.wrapping_shr(1); let value = value | value.wrapping_shr(2); @@ -89,8 +149,7 @@ pub fn log2_64(value: u64) -> u64 { let value = value | value.wrapping_shr(16); let value = value | value.wrapping_shr(32); - TAB64[((value.wrapping_sub(value.wrapping_shr(1)) as u64).wrapping_mul(0x07EDD5E59A4E28C2)) - .wrapping_shr(58) as usize] + TAB64[((value.wrapping_sub(value.wrapping_shr(1)) as u64).wrapping_mul(0x07EDD5E59A4E28C2)).wrapping_shr(58) as usize] } diff --git a/src/parse/data_tree.rs b/src/parse/data_tree.rs index bee4485..71bca76 100644 --- a/src/parse/data_tree.rs +++ b/src/parse/data_tree.rs @@ -35,12 +35,14 @@ impl<'a> DataTree<'a> { remaining_text = skip_ws_and_comments(remaining_text); if remaining_text.1.len() == 0 { - return Ok(DataTree::Internal { - type_name: "ROOT", - ident: None, - children: items, - byte_offset: 0, - }); + return Ok( + DataTree::Internal { + type_name: "ROOT", + ident: None, + children: items, + byte_offset: 0, + } + ); } else { // If the whole text wasn't parsed, something went wrong. return Err(ParseError::Other((0, "Failed to parse the entire string."))); @@ -104,9 +106,7 @@ impl<'a> DataTree<'a> { } } - pub fn iter_internal_children_with_type(&'a self, - type_name: &'static str) - -> DataTreeFilterInternalIter<'a> { + pub fn iter_internal_children_with_type(&'a self, type_name: &'static str) -> DataTreeFilterInternalIter<'a> { if let &DataTree::Internal { ref children, .. } = self { DataTreeFilterInternalIter { type_name: type_name, @@ -120,9 +120,7 @@ impl<'a> DataTree<'a> { } } - pub fn iter_leaf_children_with_type(&'a self, - type_name: &'static str) - -> DataTreeFilterLeafIter<'a> { + pub fn iter_leaf_children_with_type(&'a self, type_name: &'static str) -> DataTreeFilterLeafIter<'a> { if let &DataTree::Internal { ref children, .. } = self { DataTreeFilterLeafIter { type_name: type_name, @@ -138,14 +136,23 @@ impl<'a> DataTree<'a> { // For unit tests fn internal_data_or_panic(&'a self) -> (&'a str, Option<&'a str>, &'a Vec>) { - if let DataTree::Internal { type_name, ident, ref children, byte_offset: _ } = *self { + if let DataTree::Internal { + type_name, + ident, + ref children, + byte_offset: _, + } = *self { (type_name, ident, children) } else { panic!("Expected DataTree::Internal, found DataTree::Leaf") } } fn leaf_data_or_panic(&'a self) -> (&'a str, &'a str) { - if let DataTree::Leaf { type_name, contents, byte_offset: _ } = *self { + if let DataTree::Leaf { + type_name, + contents, + byte_offset: _, + } = *self { (type_name, contents) } else { panic!("Expected DataTree::Leaf, found DataTree::Internal") @@ -194,7 +201,12 @@ impl<'a> Iterator for DataTreeFilterInternalIter<'a> { fn next(&mut self) -> Option<(&'a str, Option<&'a str>, &'a Vec>, usize)> { loop { match self.iter.next() { - Some(&DataTree::Internal { type_name, ident, ref children, byte_offset }) => { + Some(&DataTree::Internal { + type_name, + ident, + ref children, + byte_offset, + }) => { if type_name == self.type_name { return Some((type_name, ident, children, byte_offset)); } else { @@ -233,7 +245,11 @@ impl<'a> Iterator for DataTreeFilterLeafIter<'a> { continue; } - Some(&DataTree::Leaf { type_name, contents, byte_offset }) => { + Some(&DataTree::Leaf { + type_name, + contents, + byte_offset, + }) => { if type_name == self.type_name { return Some((type_name, contents, byte_offset)); } else { @@ -296,13 +312,17 @@ fn parse_node<'a>(source_text: (usize, &'a str)) -> ParseResult<'a> { children.push(node); } if let (Token::CloseInner, text4) = next_token(text_remaining) { - return Ok(Some((DataTree::Internal { - type_name: type_name, - ident: Some(n), - children: children, - byte_offset: text1.0, - }, - text4))); + return Ok( + Some( + (DataTree::Internal { + type_name: type_name, + ident: Some(n), + children: children, + byte_offset: text1.0, + }, + text4) + ) + ); } else { return Err(ParseError::MissingCloseInternal(text_remaining.0)); } @@ -321,13 +341,17 @@ fn parse_node<'a>(source_text: (usize, &'a str)) -> ParseResult<'a> { } if let (Token::CloseInner, text3) = next_token(text_remaining) { - return Ok(Some((DataTree::Internal { - type_name: type_name, - ident: None, - children: children, - byte_offset: text1.0, - }, - text3))); + return Ok( + Some( + (DataTree::Internal { + type_name: type_name, + ident: None, + children: children, + byte_offset: text1.0, + }, + text3) + ) + ); } else { return Err(ParseError::MissingCloseInternal(text_remaining.0)); } @@ -337,12 +361,16 @@ fn parse_node<'a>(source_text: (usize, &'a str)) -> ParseResult<'a> { (Token::OpenLeaf, text2) => { let (contents, text3) = parse_leaf_content(text2); if let (Token::CloseLeaf, text4) = next_token(text3) { - return Ok(Some((DataTree::Leaf { - type_name: type_name, - contents: contents, - byte_offset: text1.0, - }, - text4))); + return Ok( + Some( + (DataTree::Leaf { + type_name: type_name, + contents: contents, + byte_offset: text1.0, + }, + text4) + ) + ); } else { return Err(ParseError::MissingCloseLeaf(text3.0)); } @@ -586,8 +614,10 @@ mod tests { fn tokenize_5() { let input = (0, " $hi\\ t\\#he\\[re "); - assert_eq!(next_token(input), - (Token::Ident("$hi\\ t\\#he\\[re"), (15, " "))); + assert_eq!( + next_token(input), + (Token::Ident("$hi\\ t\\#he\\[re"), (15, " ")) + ); } #[test] @@ -618,14 +648,22 @@ mod tests { let (token7, input8) = next_token(input7); let (token8, input9) = next_token(input8); - assert_eq!((token1, input2), - (Token::TypeName("Thing"), (5, " $yar { # A comment\n\tThing2 []\n}"))); - assert_eq!((token2, input3), - (Token::Ident("$yar"), (10, " { # A comment\n\tThing2 []\n}"))); - assert_eq!((token3, input4), - (Token::OpenInner, (12, " # A comment\n\tThing2 []\n}"))); - assert_eq!((token4, input5), - (Token::TypeName("Thing2"), (32, " []\n}"))); + assert_eq!( + (token1, input2), + (Token::TypeName("Thing"), (5, " $yar { # A comment\n\tThing2 []\n}")) + ); + assert_eq!( + (token2, input3), + (Token::Ident("$yar"), (10, " { # A comment\n\tThing2 []\n}")) + ); + assert_eq!( + (token3, input4), + (Token::OpenInner, (12, " # A comment\n\tThing2 []\n}")) + ); + assert_eq!( + (token4, input5), + (Token::TypeName("Thing2"), (32, " []\n}")) + ); assert_eq!((token5, input6), (Token::OpenLeaf, (34, "]\n}"))); assert_eq!((token6, input7), (Token::CloseLeaf, (35, "\n}"))); assert_eq!((token7, input8), (Token::CloseInner, (37, ""))); @@ -655,14 +693,16 @@ mod tests { #[test] fn iter_1() { - let dt = DataTree::from_str(r#" + let dt = DataTree::from_str( + r#" A {} B {} A [] A {} B {} - "#) - .unwrap(); + "# + ) + .unwrap(); let i = dt.iter_children_with_type("A"); assert_eq!(i.count(), 3); @@ -670,14 +710,16 @@ mod tests { #[test] fn iter_2() { - let dt = DataTree::from_str(r#" + let dt = DataTree::from_str( + r#" A {} B {} A [] A {} B {} - "#) - .unwrap(); + "# + ) + .unwrap(); let i = dt.iter_internal_children_with_type("A"); assert_eq!(i.count(), 2); @@ -685,14 +727,16 @@ mod tests { #[test] fn iter_3() { - let dt = DataTree::from_str(r#" + let dt = DataTree::from_str( + r#" A [] B {} A {} A [] B {} - "#) - .unwrap(); + "# + ) + .unwrap(); let i = dt.iter_leaf_children_with_type("A"); assert_eq!(i.count(), 2); diff --git a/src/parse/psy.rs b/src/parse/psy.rs index bd9c1b8..8314ed8 100644 --- a/src/parse/psy.rs +++ b/src/parse/psy.rs @@ -40,9 +40,11 @@ impl PsyParseError { match self { &PsyParseError::UnknownError(offset) => { let line = line_count_to_byte_offset(psy_content, offset); - println!("Line {}: Unknown parse error. If you get this message, please report \ + println!( + "Line {}: Unknown parse error. If you get this message, please report \ it to the developers so they can improve the error messages.", - line); + line + ); } &PsyParseError::UnknownVariant(offset, error) => { @@ -89,65 +91,87 @@ fn line_count_to_byte_offset(text: &str, offset: usize) -> usize { /// Takes in a DataTree representing a Scene node and returns -pub fn parse_scene<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_scene<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { // Verify we have the right number of each section if tree.iter_children_with_type("Output").count() != 1 { let count = tree.iter_children_with_type("Output").count(); - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "Scene should have precisely one Output \ + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "Scene should have precisely one Output \ section.", - count)); + count, + ) + ); } if tree.iter_children_with_type("RenderSettings").count() != 1 { let count = tree.iter_children_with_type("RenderSettings").count(); - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "Scene should have precisely one \ + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "Scene should have precisely one \ RenderSettings section.", - count)); + count, + ) + ); } if tree.iter_children_with_type("Camera").count() != 1 { let count = tree.iter_children_with_type("Camera").count(); - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "Scene should have precisely one Camera \ + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "Scene should have precisely one Camera \ section.", - count)); + count, + ) + ); } if tree.iter_children_with_type("World").count() != 1 { let count = tree.iter_children_with_type("World").count(); - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "Scene should have precisely one World section.", - count)); + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "Scene should have precisely one World section.", + count, + ) + ); } if tree.iter_children_with_type("Assembly").count() != 1 { let count = tree.iter_children_with_type("Assembly").count(); - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "Scene should have precisely one Root Assembly \ + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "Scene should have precisely one Root Assembly \ section.", - count)); + count, + ) + ); } // Parse output info - let output_info = parse_output_info(tree.iter_children_with_type("Output") - .nth(0) - .unwrap())?; + let output_info = parse_output_info(tree.iter_children_with_type("Output").nth(0).unwrap())?; // Parse render settings - let render_settings = parse_render_settings(tree.iter_children_with_type("RenderSettings") - .nth(0) - .unwrap())?; + let render_settings = parse_render_settings( + tree.iter_children_with_type("RenderSettings") + .nth(0) + .unwrap() + )?; // Parse camera - let camera = parse_camera(arena, - tree.iter_children_with_type("Camera").nth(0).unwrap())?; + let camera = parse_camera( + arena, + tree.iter_children_with_type("Camera").nth(0).unwrap(), + )?; // Parse world let world = parse_world(arena, tree.iter_children_with_type("World").nth(0).unwrap())?; // Parse root scene assembly - let assembly = parse_assembly(arena, - tree.iter_children_with_type("Assembly").nth(0).unwrap())?; + let assembly = parse_assembly( + arena, + tree.iter_children_with_type("Assembly").nth(0).unwrap(), + )?; // Put scene together let scene_name = if let &DataTree::Internal { ident, .. } = tree { @@ -188,18 +212,30 @@ fn parse_output_info(tree: &DataTree) -> Result { for child in children { match child { - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Path" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Path" => { // Trim and validate let tc = contents.trim(); if tc.chars().count() < 2 { - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "File path format is \ - incorrect.")); + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "File path format is \ + incorrect.", + ) + ); } if tc.chars().nth(0).unwrap() != '"' || tc.chars().last().unwrap() != '"' { - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "File paths must be \ - surrounded by quotes.")); + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "File paths must be \ + surrounded by quotes.", + ) + ); } let len = tc.len(); let tc = &tc[1..len - 1]; @@ -217,13 +253,16 @@ fn parse_output_info(tree: &DataTree) -> Result { if found_path { return Ok((path)); } else { - return Err(PsyParseError::MissingNode(tree.byte_offset(), - "Output section must contain a Path.")); + return Err(PsyParseError::MissingNode(tree.byte_offset(), "Output section must contain a Path.")); } } else { - return Err(PsyParseError::ExpectedInternalNode(tree.byte_offset(), - "Output section should be an internal \ - node, containing at least a Path.")); + return Err( + PsyParseError::ExpectedInternalNode( + tree.byte_offset(), + "Output section should be an internal \ + node, containing at least a Path.", + ) + ); }; } @@ -241,45 +280,66 @@ fn parse_render_settings(tree: &DataTree) -> Result<((u32, u32), u32, u32), PsyP for child in children { match child { // Resolution - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "Resolution" => { - if let IResult::Done(_, (w, h)) = closure!(terminated!(tuple!(ws_u32, ws_u32), - nom::eof))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Resolution" => { + if let IResult::Done(_, (w, h)) = closure!(terminated!(tuple!(ws_u32, ws_u32), nom::eof))(contents.as_bytes()) { found_res = true; res = (w, h); } else { // Found Resolution, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "Resolution should be specified with two \ - integers in the form '[width height]'.")); + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "Resolution should be specified with two \ + integers in the form '[width height]'.", + ) + ); } } // SamplesPerPixel - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "SamplesPerPixel" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "SamplesPerPixel" => { if let IResult::Done(_, n) = ws_u32(contents.as_bytes()) { found_spp = true; spp = n; } else { // Found SamplesPerPixel, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "SamplesPerPixel should be \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "SamplesPerPixel should be \ an integer specified in \ - the form '[samples]'.")); + the form '[samples]'.", + ) + ); } } // Seed - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Seed" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Seed" => { if let IResult::Done(_, n) = ws_u32(contents.as_bytes()) { seed = n; } else { // Found Seed, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "Seed should be an integer \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "Seed should be an integer \ specified in the form \ - '[samples]'.")); + '[samples]'.", + ) + ); } } @@ -290,15 +350,23 @@ fn parse_render_settings(tree: &DataTree) -> Result<((u32, u32), u32, u32), PsyP if found_res && found_spp { return Ok((res, spp, seed)); } else { - return Err(PsyParseError::MissingNode(tree.byte_offset(), - "RenderSettings must have both Resolution and \ - SamplesPerPixel specified.")); + return Err( + PsyParseError::MissingNode( + tree.byte_offset(), + "RenderSettings must have both Resolution and \ + SamplesPerPixel specified.", + ) + ); } } else { - return Err(PsyParseError::ExpectedInternalNode(tree.byte_offset(), - "RenderSettings section should be an \ + return Err( + PsyParseError::ExpectedInternalNode( + tree.byte_offset(), + "RenderSettings section should be an \ internal node, containing at least \ - Resolution and SamplesPerPixel.")); + Resolution and SamplesPerPixel.", + ) + ); }; } @@ -316,49 +384,74 @@ fn parse_camera<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Fov" => { if let IResult::Done(_, fov) = ws_f32(contents.as_bytes()) { fovs.push(fov * (3.1415926536 / 180.0)); } else { // Found Fov, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "Fov should be a decimal \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "Fov should be a decimal \ number specified in the \ - form '[fov]'.")); + form '[fov]'.", + ) + ); } } // FocalDistance - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "FocalDistance" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "FocalDistance" => { if let IResult::Done(_, fd) = ws_f32(contents.as_bytes()) { focus_distances.push(fd); } else { // Found FocalDistance, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "FocalDistance should be a \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "FocalDistance should be a \ decimal number specified \ - in the form '[fov]'.")); + in the form '[fov]'.", + ) + ); } } // ApertureRadius - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "ApertureRadius" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "ApertureRadius" => { if let IResult::Done(_, ar) = ws_f32(contents.as_bytes()) { aperture_radii.push(ar); } else { // Found ApertureRadius, but its contents is not in the right format - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "ApertureRadius should be a \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "ApertureRadius should be a \ decimal number specified \ - in the form '[fov]'.")); + in the form '[fov]'.", + ) + ); } } // Transform - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "Transform" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Transform" => { if let Ok(mat) = parse_matrix(contents) { mats.push(mat); } else { @@ -373,10 +466,14 @@ fn parse_camera<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result(arena: &'a MemArena, tree: &'a DataTree) -> Result, // Parse background shader let bgs = { if tree.iter_children_with_type("BackgroundShader").count() != 1 { - return Err(PsyParseError::WrongNodeCount(tree.byte_offset(), - "World should have precisely one BackgroundShader section.", - tree.iter_children_with_type("BackgroundShader").count())); + return Err( + PsyParseError::WrongNodeCount( + tree.byte_offset(), + "World should have precisely one BackgroundShader section.", + tree.iter_children_with_type("BackgroundShader").count(), + ) + ); } - tree.iter_children_with_type("BackgroundShader").nth(0).unwrap() + tree.iter_children_with_type("BackgroundShader") + .nth(0) + .unwrap() }; let bgs_type = { if bgs.iter_children_with_type("Type").count() != 1 { - return Err(PsyParseError::WrongNodeCount(bgs.byte_offset(), - "BackgroundShader should have \ + return Err( + PsyParseError::WrongNodeCount( + bgs.byte_offset(), + "BackgroundShader should have \ precisely one Type specified.", - bgs.iter_children_with_type("Type") - .count())); + bgs.iter_children_with_type("Type").count(), + ) + ); } - if let &DataTree::Leaf { contents, .. } = - bgs.iter_children_with_type("Type") - .nth(0) - .unwrap() { + if let &DataTree::Leaf { contents, .. } = bgs.iter_children_with_type("Type").nth(0).unwrap() { contents.trim() } else { - return Err(PsyParseError::ExpectedLeafNode(bgs.byte_offset(), - "BackgroundShader's Type should be a \ - leaf node.")); + return Err( + PsyParseError::ExpectedLeafNode( + bgs.byte_offset(), + "BackgroundShader's Type should be a \ + leaf node.", + ) + ); } }; match bgs_type { "Color" => { - if let Some(&DataTree::Leaf { contents, byte_offset, .. }) = - bgs.iter_children_with_type("Color") - .nth(0) { - if let IResult::Done(_, color) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.trim() - .as_bytes()) { + if let Some(&DataTree::Leaf { + contents, + byte_offset, + .. + }) = bgs.iter_children_with_type("Color").nth(0) { + if let IResult::Done(_, color) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.trim().as_bytes()) { // TODO: proper color space management, not just assuming // rec.709. background_color = XYZ::from_tuple(rec709e_to_xyz(color)); } else { - return Err(PsyParseError::IncorrectLeafData(byte_offset, - "Color should be specified \ + return Err( + PsyParseError::IncorrectLeafData( + byte_offset, + "Color should be specified \ with three decimal numbers \ - in the form '[R G B]'.")); + in the form '[R G B]'.", + ) + ); } } else { - return Err(PsyParseError::MissingNode(bgs.byte_offset(), - "BackgroundShader's Type is Color, \ - but no Color is specified.")); + return Err( + PsyParseError::MissingNode( + bgs.byte_offset(), + "BackgroundShader's Type is Color, \ + but no Color is specified.", + ) + ); } } _ => { - return Err(PsyParseError::UnknownVariant(bgs.byte_offset(), - "The specified BackgroundShader Type \ - isn't a recognized type.")) + return Err( + PsyParseError::UnknownVariant( + bgs.byte_offset(), + "The specified BackgroundShader Type \ + isn't a recognized type.", + ) + ) } } @@ -459,15 +578,21 @@ fn parse_world<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, } // Build and return the world - return Ok(World { - background_color: background_color, - lights: arena.copy_slice(&lights), - }); + return Ok( + World { + background_color: background_color, + lights: arena.copy_slice(&lights), + } + ); } else { - return Err(PsyParseError::ExpectedInternalNode(tree.byte_offset(), - "World section should be an internal \ + return Err( + PsyParseError::ExpectedInternalNode( + tree.byte_offset(), + "World section should be an internal \ node, containing at least a \ - BackgroundShader.")); + BackgroundShader.", + ) + ); } } @@ -476,46 +601,58 @@ fn parse_world<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, pub fn parse_matrix(contents: &str) -> Result { if let IResult::Done(_, ns) = - closure!(terminated!(tuple!(ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32, - ws_f32), - nom::eof))(contents.as_bytes()) { - return Ok(Matrix4x4::new_from_values(ns.0, - ns.4, - ns.8, - ns.12, - ns.1, - ns.5, - ns.9, - ns.13, - ns.2, - ns.6, - ns.10, - ns.14, - ns.3, - ns.7, - ns.11, - ns.15)); + closure!( + terminated!( + tuple!( + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32, + ws_f32 + ), + nom::eof + ) + )(contents.as_bytes()) { + return Ok( + Matrix4x4::new_from_values( + ns.0, + ns.4, + ns.8, + ns.12, + ns.1, + ns.5, + ns.9, + ns.13, + ns.2, + ns.6, + ns.10, + ns.14, + ns.3, + ns.7, + ns.11, + ns.15, + ) + ); } else { return Err(PsyParseError::UnknownError(0)); } } pub fn make_transform_format_error(byte_offset: usize) -> PsyParseError { - return PsyParseError::IncorrectLeafData(byte_offset, - "Transform should be sixteen integers specified in \ - the form '[# # # # # # # # # # # # # # # #]'."); + return PsyParseError::IncorrectLeafData( + byte_offset, + "Transform should be sixteen integers specified in \ + the form '[# # # # # # # # # # # # # # # #]'.", + ); } diff --git a/src/parse/psy_assembly.rs b/src/parse/psy_assembly.rs index 36e3538..3a88373 100644 --- a/src/parse/psy_assembly.rs +++ b/src/parse/psy_assembly.rs @@ -12,9 +12,7 @@ use super::psy_mesh_surface::parse_mesh_surface; use super::psy::{parse_matrix, PsyParseError}; -pub fn parse_assembly<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_assembly<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { let mut builder = AssemblyBuilder::new(arena); if tree.is_internal() { @@ -54,38 +52,43 @@ pub fn parse_assembly<'a>(arena: &'a MemArena, if builder.name_exists(name) { builder.add_instance(name, Some(&xforms)); } else { - return Err(PsyParseError::InstancedMissingData( - child.iter_leaf_children_with_type("Data").nth(0).unwrap().2, - "Attempted to add \ + return Err( + PsyParseError::InstancedMissingData( + child.iter_leaf_children_with_type("Data").nth(0).unwrap().2, + "Attempted to add \ instance for data with \ a name that doesn't \ exist.", - name.to_string())); + name.to_string(), + ) + ); } } // MeshSurface "MeshSurface" => { if let &DataTree::Internal { ident: Some(ident), .. } = child { - builder.add_object(ident, - Object::Surface(arena.alloc( - parse_mesh_surface(arena, &child)? - ))); + builder.add_object( + ident, + Object::Surface(arena.alloc(parse_mesh_surface(arena, &child)?)), + ); } else { // TODO: error condition of some kind, because no ident - panic!("MeshSurface encountered that was a leaf, but MeshSurfaces cannot \ + panic!( + "MeshSurface encountered that was a leaf, but MeshSurfaces cannot \ be a leaf: {}", - child.byte_offset()); + child.byte_offset() + ); } } // Sphere Light "SphereLight" => { if let &DataTree::Internal { ident: Some(ident), .. } = child { - builder.add_object(ident, - Object::Light(arena.alloc( - parse_sphere_light(arena, &child)? - ))); + builder.add_object( + ident, + Object::Light(arena.alloc(parse_sphere_light(arena, &child)?)), + ); } else { // No ident return Err(PsyParseError::UnknownError(child.byte_offset())); @@ -95,10 +98,10 @@ pub fn parse_assembly<'a>(arena: &'a MemArena, // Rectangle Light "RectangleLight" => { if let &DataTree::Internal { ident: Some(ident), .. } = child { - builder.add_object(ident, - Object::Light(arena.alloc( - parse_rectangle_light(arena, &child)? - ))); + builder.add_object( + ident, + Object::Light(arena.alloc(parse_rectangle_light(arena, &child)?)), + ); } else { // No ident return Err(PsyParseError::UnknownError(child.byte_offset())); diff --git a/src/parse/psy_light.rs b/src/parse/psy_light.rs index dd2c90c..ad82226 100644 --- a/src/parse/psy_light.rs +++ b/src/parse/psy_light.rs @@ -15,9 +15,7 @@ use super::DataTree; use super::psy::PsyParseError; -pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { if let &DataTree::Internal { ref children, .. } = tree { let mut radii = Vec::new(); let mut directions = Vec::new(); @@ -27,7 +25,11 @@ pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, for child in children.iter() { match child { // Radius - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Radius" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Radius" => { if let IResult::Done(_, radius) = ws_f32(contents.as_bytes()) { radii.push(radius); } else { @@ -37,10 +39,12 @@ pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, } // Direction - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "Direction" => { - if let IResult::Done(_, direction) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Direction" => { + if let IResult::Done(_, direction) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { directions.push(Vector::new(direction.0, direction.1, direction.2)); } else { // Found direction, but its contents is not in the right format @@ -49,9 +53,12 @@ pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, } // Color - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Color" => { - if let IResult::Done(_, color) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Color" => { + if let IResult::Done(_, color) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { // TODO: handle color space conversions properly. // Probably will need a special color type with its // own parser...? @@ -73,9 +80,7 @@ pub fn parse_distant_disk_light<'a>(arena: &'a MemArena, } -pub fn parse_sphere_light<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_sphere_light<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { if let &DataTree::Internal { ref children, .. } = tree { let mut radii = Vec::new(); let mut colors = Vec::new(); @@ -84,7 +89,11 @@ pub fn parse_sphere_light<'a>(arena: &'a MemArena, for child in children.iter() { match child { // Radius - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Radius" => { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Radius" => { if let IResult::Done(_, radius) = ws_f32(contents.as_bytes()) { radii.push(radius); } else { @@ -94,9 +103,12 @@ pub fn parse_sphere_light<'a>(arena: &'a MemArena, } // Color - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Color" => { - if let IResult::Done(_, color) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Color" => { + if let IResult::Done(_, color) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { // TODO: handle color space conversions properly. // Probably will need a special color type with its // own parser...? @@ -117,9 +129,7 @@ pub fn parse_sphere_light<'a>(arena: &'a MemArena, } } -pub fn parse_rectangle_light<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_rectangle_light<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { if let &DataTree::Internal { ref children, .. } = tree { let mut dimensions = Vec::new(); let mut colors = Vec::new(); @@ -128,10 +138,12 @@ pub fn parse_rectangle_light<'a>(arena: &'a MemArena, for child in children.iter() { match child { // Dimensions - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == - "Dimensions" => { - if let IResult::Done(_, radius) = - closure!(tuple!(ws_f32, ws_f32))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Dimensions" => { + if let IResult::Done(_, radius) = closure!(tuple!(ws_f32, ws_f32))(contents.as_bytes()) { dimensions.push(radius); } else { // Found dimensions, but its contents is not in the right format @@ -140,9 +152,12 @@ pub fn parse_rectangle_light<'a>(arena: &'a MemArena, } // Color - &DataTree::Leaf { type_name, contents, byte_offset } if type_name == "Color" => { - if let IResult::Done(_, color) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { + &DataTree::Leaf { + type_name, + contents, + byte_offset, + } if type_name == "Color" => { + if let IResult::Done(_, color) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(contents.as_bytes()) { // TODO: handle color space conversions properly. // Probably will need a special color type with its // own parser...? diff --git a/src/parse/psy_mesh_surface.rs b/src/parse/psy_mesh_surface.rs index ae5eb97..f9d6114 100644 --- a/src/parse/psy_mesh_surface.rs +++ b/src/parse/psy_mesh_surface.rs @@ -21,9 +21,7 @@ use super::psy::PsyParseError; // accel: BVH, // } -pub fn parse_mesh_surface<'a>(arena: &'a MemArena, - tree: &'a DataTree) - -> Result, PsyParseError> { +pub fn parse_mesh_surface<'a>(arena: &'a MemArena, tree: &'a DataTree) -> Result, PsyParseError> { let mut verts = Vec::new(); let mut face_vert_counts = Vec::new(); let mut face_vert_indices = Vec::new(); @@ -39,8 +37,7 @@ pub fn parse_mesh_surface<'a>(arena: &'a MemArena, // Collect verts for this time sample let mut vert_count = 0; - while let IResult::Done(remaining, vert) = - closure!(tuple!(ws_f32, ws_f32, ws_f32))(raw_text) { + while let IResult::Done(remaining, vert) = closure!(tuple!(ws_f32, ws_f32, ws_f32))(raw_text) { raw_text = remaining; verts.push(Point::new(vert.0, vert.1, vert.2)); @@ -91,9 +88,7 @@ pub fn parse_mesh_surface<'a>(arena: &'a MemArena, // Store all the time samples of each triangle contiguously for time_sample in 0..time_samples { let start_vi = vert_count * time_sample; - triangles.push((verts[start_vi + face_vert_indices[v1]], - verts[start_vi + face_vert_indices[v1 + vi + 1]], - verts[start_vi + face_vert_indices[v1 + vi + 2]])); + triangles.push((verts[start_vi + face_vert_indices[v1]], verts[start_vi + face_vert_indices[v1 + vi + 1]], verts[start_vi + face_vert_indices[v1 + vi + 2]])); } } } else { diff --git a/src/renderer.rs b/src/renderer.rs index 91a7250..5ca45ed 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -97,196 +97,199 @@ impl<'a> Renderer<'a> { let pixrenref = &pixels_rendered; // Render - tpool.scoped(|scope| { - // Spawn worker tasks - for _ in 0..thread_count { - let jq = &job_queue; - let ajq = &all_jobs_queued; - let img = ℑ - let cstats = &collective_stats; - scope.execute(move || { - let mut stats = RenderStats::new(); - let mut timer = Timer::new(); - let mut total_timer = Timer::new(); + tpool.scoped( + |scope| { + // Spawn worker tasks + for _ in 0..thread_count { + let jq = &job_queue; + let ajq = &all_jobs_queued; + let img = ℑ + let cstats = &collective_stats; + scope.execute( + move || { + let mut stats = RenderStats::new(); + let mut timer = Timer::new(); + let mut total_timer = Timer::new(); - let mut paths = Vec::new(); - let mut rays = Vec::new(); - let mut tracer = Tracer::from_assembly(&self.scene.root); - let mut xform_stack = TransformStack::new(); + let mut paths = Vec::new(); + let mut rays = Vec::new(); + let mut tracer = Tracer::from_assembly(&self.scene.root); + let mut xform_stack = TransformStack::new(); - 'render_loop: loop { - paths.clear(); - rays.clear(); + 'render_loop: loop { + paths.clear(); + rays.clear(); - // Get bucket, or exit if no more jobs left - let bucket: BucketJob; - loop { - if let Some(b) = jq.try_pop() { - bucket = b; - break; - } else { - if *ajq.read().unwrap() == true { - break 'render_loop; + // Get bucket, or exit if no more jobs left + let bucket: BucketJob; + loop { + if let Some(b) = jq.try_pop() { + bucket = b; + break; + } else { + if *ajq.read().unwrap() == true { + break 'render_loop; + } + } + } + + timer.tick(); + // Generate light paths and initial rays + for y in bucket.y..(bucket.y + bucket.h) { + for x in bucket.x..(bucket.x + bucket.w) { + let offset = hash_u32(((x as u32) << 16) ^ (y as u32), self.seed); + for si in 0..self.spp { + // Calculate image plane x and y coordinates + let (img_x, img_y) = { + let filter_x = fast_logit(halton::sample(4, offset + si as u32), 1.5) + 0.5; + let filter_y = fast_logit(halton::sample(5, offset + si as u32), 1.5) + 0.5; + let samp_x = (filter_x + x as f32) * cmpx; + let samp_y = (filter_y + y as f32) * cmpy; + ((samp_x - 0.5) * x_extent, (0.5 - samp_y) * y_extent) + }; + + // Create the light path and initial ray for this sample + let (path, ray) = LightPath::new( + &self.scene, + (x, y), + (img_x, img_y), + (halton::sample(0, offset + si as u32), halton::sample(1, offset + si as u32)), + halton::sample(2, offset + si as u32), + map_0_1_to_wavelength(halton::sample(3, offset + si as u32)), + offset + si as u32, + ); + paths.push(path); + rays.push(ray); + } + } + } + stats.initial_ray_generation_time += timer.tick() as f64; + + // Trace the paths! + let mut pi = paths.len(); + while pi > 0 { + // Test rays against scene + let isects = tracer.trace(&rays); + stats.trace_time += timer.tick() as f64; + + // Determine next rays to shoot based on result + pi = partition_pair( + &mut paths[..pi], + &mut rays[..pi], + |i, path, ray| path.next(&mut xform_stack, &self.scene, &isects[i], &mut *ray), + ); + stats.ray_generation_time += timer.tick() as f64; + } + + // Calculate color based on ray hits and save to image + { + let min = (bucket.x, bucket.y); + let max = (bucket.x + bucket.w, bucket.y + bucket.h); + let mut img_bucket = img.get_bucket(min, max); + for path in paths.iter() { + let path_col = SpectralSample::from_parts(path.color, path.wavelength); + let mut col = img_bucket.get(path.pixel_co.0, path.pixel_co.1); + col += XYZ::from_spectral_sample(&path_col) / self.spp as f32; + img_bucket.set(path.pixel_co.0, path.pixel_co.1, col); + } + stats.sample_writing_time += timer.tick() as f64; + } + + // Print render progress + { + let guard = pixrenref.lock().unwrap(); + let mut pr = (*guard).get(); + let percentage_old = pr as f64 / total_pixels as f64 * 100.0; + + pr += bucket.w as usize * bucket.h as usize; + (*guard).set(pr); + let percentage_new = pr as f64 / total_pixels as f64 * 100.0; + + let old_string = format!("{:.2}%", percentage_old); + let new_string = format!("{:.2}%", percentage_new); + + if new_string != old_string { + print!("\r{}", new_string); + let _ = io::stdout().flush(); + } } } - } - timer.tick(); - // Generate light paths and initial rays - for y in bucket.y..(bucket.y + bucket.h) { - for x in bucket.x..(bucket.x + bucket.w) { - let offset = hash_u32(((x as u32) << 16) ^ (y as u32), self.seed); - for si in 0..self.spp { - // Calculate image plane x and y coordinates - let (img_x, img_y) = { - let filter_x = - fast_logit(halton::sample(4, offset + si as u32), 1.5) + - 0.5; - let filter_y = - fast_logit(halton::sample(5, offset + si as u32), 1.5) + - 0.5; - let samp_x = (filter_x + x as f32) * cmpx; - let samp_y = (filter_y + y as f32) * cmpy; - ((samp_x - 0.5) * x_extent, (0.5 - samp_y) * y_extent) - }; - - // Create the light path and initial ray for this sample - let (path, ray) = - LightPath::new(&self.scene, - (x, y), - (img_x, img_y), - (halton::sample(0, offset + si as u32), - halton::sample(1, offset + si as u32)), - halton::sample(2, offset + si as u32), - map_0_1_to_wavelength(halton::sample(3, - offset + - si as - u32)), - offset + si as u32); - paths.push(path); - rays.push(ray); + stats.total_time += total_timer.tick() as f64; + ACCEL_TRAV_TIME.with( + |att| { + stats.accel_traversal_time = att.get(); + att.set(0.0); } - } + ); + + // Collect stats + cstats.write().unwrap().collect(stats); } - stats.initial_ray_generation_time += timer.tick() as f64; - - // Trace the paths! - let mut pi = paths.len(); - while pi > 0 { - // Test rays against scene - let isects = tracer.trace(&rays); - stats.trace_time += timer.tick() as f64; - - // Determine next rays to shoot based on result - pi = - partition_pair(&mut paths[..pi], &mut rays[..pi], |i, path, ray| { - path.next(&mut xform_stack, &self.scene, &isects[i], &mut *ray) - }); - stats.ray_generation_time += timer.tick() as f64; - } - - // Calculate color based on ray hits and save to image - { - let min = (bucket.x, bucket.y); - let max = (bucket.x + bucket.w, bucket.y + bucket.h); - let mut img_bucket = img.get_bucket(min, max); - for path in paths.iter() { - let path_col = SpectralSample::from_parts(path.color, - path.wavelength); - let mut col = img_bucket.get(path.pixel_co.0, path.pixel_co.1); - col += XYZ::from_spectral_sample(&path_col) / self.spp as f32; - img_bucket.set(path.pixel_co.0, path.pixel_co.1, col); - } - stats.sample_writing_time += timer.tick() as f64; - } - - // Print render progress - { - let guard = pixrenref.lock().unwrap(); - let mut pr = (*guard).get(); - let percentage_old = pr as f64 / total_pixels as f64 * 100.0; - - pr += bucket.w as usize * bucket.h as usize; - (*guard).set(pr); - let percentage_new = pr as f64 / total_pixels as f64 * 100.0; - - let old_string = format!("{:.2}%", percentage_old); - let new_string = format!("{:.2}%", percentage_new); - - if new_string != old_string { - print!("\r{}", new_string); - let _ = io::stdout().flush(); - } - } - } - - stats.total_time += total_timer.tick() as f64; - ACCEL_TRAV_TIME.with(|att| { - stats.accel_traversal_time = att.get(); - att.set(0.0); - }); - - // Collect stats - cstats.write().unwrap().collect(stats); - }); - } - - // Print initial 0.00% progress - print!("0.00%"); - let _ = io::stdout().flush(); - - // Determine bucket size based on the per-thread maximum number of samples to - // calculate at a time. - let (bucket_w, bucket_h) = { - let target_pixels_per_bucket = max_samples_per_bucket as f64 / self.spp as f64; - let target_bucket_dim = if target_pixels_per_bucket.sqrt() < 1.0 { - 1usize - } else { - target_pixels_per_bucket.sqrt() as usize - }; - - (target_bucket_dim, target_bucket_dim) - }; - - // Populate job queue - let bucket_n = { - let bucket_count_x = ((img_width / bucket_w) + 1) as u32; - let bucket_count_y = ((img_height / bucket_h) + 1) as u32; - let larger = cmp::max(bucket_count_x, bucket_count_y); - let pow2 = upper_power_of_two(larger); - pow2 * pow2 - }; - for hilbert_d in 0..bucket_n { - let (bx, by) = hilbert::d2xy(hilbert_d); - - let x = bx as usize * bucket_w; - let y = by as usize * bucket_h; - let w = if img_width >= x { - min(bucket_w, img_width - x) - } else { - bucket_w - }; - let h = if img_height >= y { - min(bucket_h, img_height - y) - } else { - bucket_h - }; - if x < img_width && y < img_height && w > 0 && h > 0 { - job_queue.push(BucketJob { - x: x as u32, - y: y as u32, - w: w as u32, - h: h as u32, - }); + ); } - } - // Mark done queuing jobs - *all_jobs_queued.write().unwrap() = true; - }); + // Print initial 0.00% progress + print!("0.00%"); + let _ = io::stdout().flush(); + + // Determine bucket size based on the per-thread maximum number of samples to + // calculate at a time. + let (bucket_w, bucket_h) = { + let target_pixels_per_bucket = max_samples_per_bucket as f64 / self.spp as f64; + let target_bucket_dim = if target_pixels_per_bucket.sqrt() < 1.0 { + 1usize + } else { + target_pixels_per_bucket.sqrt() as usize + }; + + (target_bucket_dim, target_bucket_dim) + }; + + // Populate job queue + let bucket_n = { + let bucket_count_x = ((img_width / bucket_w) + 1) as u32; + let bucket_count_y = ((img_height / bucket_h) + 1) as u32; + let larger = cmp::max(bucket_count_x, bucket_count_y); + let pow2 = upper_power_of_two(larger); + pow2 * pow2 + }; + for hilbert_d in 0..bucket_n { + let (bx, by) = hilbert::d2xy(hilbert_d); + + let x = bx as usize * bucket_w; + let y = by as usize * bucket_h; + let w = if img_width >= x { + min(bucket_w, img_width - x) + } else { + bucket_w + }; + let h = if img_height >= y { + min(bucket_h, img_height - y) + } else { + bucket_h + }; + if x < img_width && y < img_height && w > 0 && h > 0 { + job_queue.push( + BucketJob { + x: x as u32, + y: y as u32, + w: w as u32, + h: h as u32, + } + ); + } + } + + // Mark done queuing jobs + *all_jobs_queued.write().unwrap() = true; + } + ); // Clear percentage progress print - print!("\r \r"); + print!( + "\r \r", + ); // Return the rendered image and stats return (image, *collective_stats.read().unwrap()); @@ -321,14 +324,7 @@ pub struct LightPath { } impl LightPath { - fn new(scene: &Scene, - pixel_co: (u32, u32), - image_plane_co: (f32, f32), - lens_uv: (f32, f32), - time: f32, - wavelength: f32, - lds_offset: u32) - -> (LightPath, Ray) { + fn new(scene: &Scene, pixel_co: (u32, u32), image_plane_co: (f32, f32), lens_uv: (f32, f32), time: f32, wavelength: f32, lds_offset: u32) -> (LightPath, Ray) { (LightPath { event: LightPathEvent::CameraRay, bounce_count: 0, @@ -347,11 +343,15 @@ impl LightPath { color: Float4::splat(0.0), }, - scene.camera.generate_ray(image_plane_co.0, - image_plane_co.1, - time, - lens_uv.0, - lens_uv.1)) + scene + .camera + .generate_ray( + image_plane_co.0, + image_plane_co.1, + time, + lens_uv.0, + lens_uv.1, + )) } fn next_lds_samp(&self) -> f32 { @@ -361,57 +361,51 @@ impl LightPath { s } - fn next(&mut self, - xform_stack: &mut TransformStack, - scene: &Scene, - isect: &surface::SurfaceIntersection, - ray: &mut Ray) - -> bool { + fn next(&mut self, xform_stack: &mut TransformStack, scene: &Scene, isect: &surface::SurfaceIntersection, ray: &mut Ray) -> bool { match self.event { //-------------------------------------------------------------------- // Result of Camera or bounce ray, prepare next bounce and light rays LightPathEvent::CameraRay | LightPathEvent::BounceRay => { - if let &surface::SurfaceIntersection::Hit { intersection_data: ref idata, - ref closure } = isect { + if let &surface::SurfaceIntersection::Hit { + intersection_data: ref idata, + ref closure, + } = isect { // Hit something! Do the stuff // Prepare light ray let light_n = self.next_lds_samp(); - let light_uvw = - (self.next_lds_samp(), self.next_lds_samp(), self.next_lds_samp()); + let light_uvw = (self.next_lds_samp(), self.next_lds_samp(), self.next_lds_samp()); xform_stack.clear(); - let found_light = if let Some((light_color, - shadow_vec, - light_pdf, - light_sel_pdf, - is_infinite)) = - scene.sample_lights(xform_stack, - light_n, - light_uvw, - self.wavelength, - self.time, - isect) { + let found_light = if let Some((light_color, shadow_vec, light_pdf, light_sel_pdf, is_infinite)) = + scene.sample_lights( + xform_stack, + light_n, + light_uvw, + self.wavelength, + self.time, + isect, + ) { // Check if pdf is zero, to avoid NaN's. if light_pdf > 0.0 { // Calculate and store the light that will be contributed // to the film plane if the light is not in shadow. self.pending_color_addition = { let material = closure.as_surface_closure(); - let la = - material.evaluate(ray.dir, shadow_vec, idata.nor, self.wavelength); - light_color.e * la.e * self.light_attenuation / - (light_pdf * light_sel_pdf) + let la = material.evaluate(ray.dir, shadow_vec, idata.nor, self.wavelength); + light_color.e * la.e * self.light_attenuation / (light_pdf * light_sel_pdf) }; // Calculate the shadow ray for testing if the light is // in shadow or not. // TODO: use proper ray offsets for avoiding self-shadowing // rather than this hacky stupid stuff. - *ray = Ray::new(idata.pos + shadow_vec.normalized() * 0.001, - shadow_vec, - self.time, - true); + *ray = Ray::new( + idata.pos + shadow_vec.normalized() * 0.001, + shadow_vec, + self.time, + true, + ); // For distant lights if is_infinite { @@ -445,11 +439,7 @@ impl LightPath { self.next_attentuation_fac = filter.e / pdf; // Calculate the ray for this bounce - self.next_bounce_ray = Some(Ray::new(idata.pos + - dir.normalized() * 0.0001, - dir, - self.time, - false)); + self.next_bounce_ray = Some(Ray::new(idata.pos + dir.normalized() * 0.0001, dir, self.time, false)); true } else { @@ -477,9 +467,11 @@ impl LightPath { } } else { // Didn't hit anything, so background color - self.color += - scene.world.background_color.to_spectral_sample(self.wavelength).e * - self.light_attenuation; + self.color += scene + .world + .background_color + .to_spectral_sample(self.wavelength) + .e * self.light_attenuation; return false; } } diff --git a/src/sampling/mod.rs b/src/sampling/mod.rs index 2bab45e..729b21a 100644 --- a/src/sampling/mod.rs +++ b/src/sampling/mod.rs @@ -1,5 +1,3 @@ mod monte_carlo; -pub use self::monte_carlo::{square_to_circle, cosine_sample_hemisphere, uniform_sample_hemisphere, - uniform_sample_sphere, uniform_sample_cone, uniform_sample_cone_pdf, - spherical_triangle_solid_angle, uniform_sample_spherical_triangle}; +pub use self::monte_carlo::{square_to_circle, cosine_sample_hemisphere, uniform_sample_hemisphere, uniform_sample_sphere, uniform_sample_cone, uniform_sample_cone_pdf, spherical_triangle_solid_angle, uniform_sample_spherical_triangle}; diff --git a/src/sampling/monte_carlo.rs b/src/sampling/monte_carlo.rs index 7257563..4dc70e0 100644 --- a/src/sampling/monte_carlo.rs +++ b/src/sampling/monte_carlo.rs @@ -68,9 +68,11 @@ pub fn uniform_sample_cone(u: f32, v: f32, cos_theta_max: f64) -> Vector { let cos_theta = (1.0 - u as f64) + (u as f64 * cos_theta_max); let sin_theta = (1.0 - (cos_theta * cos_theta)).sqrt(); let phi = v as f64 * 2.0 * PI_64; - Vector::new((phi.cos() * sin_theta) as f32, - (phi.sin() * sin_theta) as f32, - cos_theta as f32) + Vector::new( + (phi.cos() * sin_theta) as f32, + (phi.sin() * sin_theta) as f32, + cos_theta as f32, + ) } pub fn uniform_sample_cone_pdf(cos_theta_max: f64) -> f64 { @@ -97,9 +99,15 @@ pub fn spherical_triangle_solid_angle(va: Vector, vb: Vector, vc: Vector) -> f32 } // Calculate the cosine of the angles at the vertices - let cos_va = ((cos_a - (cos_b * cos_c)) / (sin_b * sin_c)).max(-1.0).min(1.0); - let cos_vb = ((cos_b - (cos_c * cos_a)) / (sin_c * sin_a)).max(-1.0).min(1.0); - let cos_vc = ((cos_c - (cos_a * cos_b)) / (sin_a * sin_b)).max(-1.0).min(1.0); + let cos_va = ((cos_a - (cos_b * cos_c)) / (sin_b * sin_c)) + .max(-1.0) + .min(1.0); + let cos_vb = ((cos_b - (cos_c * cos_a)) / (sin_c * sin_a)) + .max(-1.0) + .min(1.0); + let cos_vc = ((cos_c - (cos_a * cos_b)) / (sin_a * sin_b)) + .max(-1.0) + .min(1.0); // Calculate the angles themselves, in radians let ang_va = cos_va.acos(); @@ -112,12 +120,7 @@ pub fn spherical_triangle_solid_angle(va: Vector, vb: Vector, vc: Vector) -> f32 /// Generates a uniform sample on a spherical triangle given two uniform /// random variables i and j in [0, 1]. -pub fn uniform_sample_spherical_triangle(va: Vector, - vb: Vector, - vc: Vector, - i: f32, - j: f32) - -> Vector { +pub fn uniform_sample_spherical_triangle(va: Vector, vb: Vector, vc: Vector, i: f32, j: f32) -> Vector { // Calculate sines and cosines of the spherical triangle's edge lengths let cos_a: f64 = dot(vb, vc).max(-1.0).min(1.0) as f64; let cos_b: f64 = dot(vc, va).max(-1.0).min(1.0) as f64; @@ -135,9 +138,15 @@ pub fn uniform_sample_spherical_triangle(va: Vector, } // Calculate the cosine of the angles at the vertices - let cos_va = ((cos_a - (cos_b * cos_c)) / (sin_b * sin_c)).max(-1.0).min(1.0); - let cos_vb = ((cos_b - (cos_c * cos_a)) / (sin_c * sin_a)).max(-1.0).min(1.0); - let cos_vc = ((cos_c - (cos_a * cos_b)) / (sin_a * sin_b)).max(-1.0).min(1.0); + let cos_va = ((cos_a - (cos_b * cos_c)) / (sin_b * sin_c)) + .max(-1.0) + .min(1.0); + let cos_vb = ((cos_b - (cos_c * cos_a)) / (sin_c * sin_a)) + .max(-1.0) + .min(1.0); + let cos_vc = ((cos_c - (cos_a * cos_b)) / (sin_a * sin_b)) + .max(-1.0) + .min(1.0); // Calculate sine for A let sin_va = (1.0 - (cos_va * cos_va)).sqrt(); @@ -163,8 +172,7 @@ pub fn uniform_sample_spherical_triangle(va: Vector, let q_bottom = ((v * s) + (u * t)) * sin_va; let q = q_top / q_bottom; - let vc_2 = (va * q as f32) + - ((vc - (va * dot(vc, va))).normalized() * (1.0 - (q * q)).sqrt() as f32); + let vc_2 = (va * q as f32) + ((vc - (va * dot(vc, va))).normalized() * (1.0 - (q * q)).sqrt() as f32); let z = 1.0 - (j * (1.0 - dot(vc_2, vb))); diff --git a/src/scene/assembly.rs b/src/scene/assembly.rs index 1883640..0b112fa 100644 --- a/src/scene/assembly.rs +++ b/src/scene/assembly.rs @@ -36,15 +36,11 @@ pub struct Assembly<'a> { impl<'a> Assembly<'a> { // Returns (light_color, shadow_vector, pdf, selection_pdf) - pub fn sample_lights(&self, - xform_stack: &mut TransformStack, - n: f32, - uvw: (f32, f32, f32), - wavelength: f32, - time: f32, - intr: &SurfaceIntersection) - -> Option<(SpectralSample, Vector, f32, f32)> { - if let &SurfaceIntersection::Hit { intersection_data: idata, closure } = intr { + pub fn sample_lights(&self, xform_stack: &mut TransformStack, n: f32, uvw: (f32, f32, f32), wavelength: f32, time: f32, intr: &SurfaceIntersection) -> Option<(SpectralSample, Vector, f32, f32)> { + if let &SurfaceIntersection::Hit { + intersection_data: idata, + closure, + } = intr { let sel_xform = if xform_stack.top().len() > 0 { lerp_slice(xform_stack.top(), time) } else { @@ -52,12 +48,14 @@ impl<'a> Assembly<'a> { }; if let Some((light_i, sel_pdf, whittled_n)) = self.light_accel - .select(idata.incoming * sel_xform, - idata.pos * sel_xform, - idata.nor * sel_xform, - closure.as_surface_closure(), - time, - n) { + .select( + idata.incoming * sel_xform, + idata.pos * sel_xform, + idata.nor * sel_xform, + closure.as_surface_closure(), + time, + n, + ) { let inst = self.light_instances[light_i]; match inst.instance_type { @@ -83,8 +81,7 @@ impl<'a> Assembly<'a> { }; // Sample the light - let (color, shadow_vec, pdf) = - light.sample(&xform, idata.pos, uvw.0, uvw.1, wavelength, time); + let (color, shadow_vec, pdf) = light.sample(&xform, idata.pos, uvw.0, uvw.1, wavelength, time); return Some((color, shadow_vec, pdf, sel_pdf)); } @@ -100,8 +97,7 @@ impl<'a> Assembly<'a> { } // Sample sub-assembly lights - let sample = self.assemblies[inst.data_index] - .sample_lights(xform_stack, whittled_n, uvw, wavelength, time, intr); + let sample = self.assemblies[inst.data_index].sample_lights(xform_stack, whittled_n, uvw, wavelength, time, intr); // Pop the assembly's transforms off the transform stack. if let Some(_) = inst.transform_indices { @@ -173,12 +169,15 @@ impl<'a> AssemblyBuilder<'a> { pub fn add_assembly(&mut self, name: &str, asmb: Assembly<'a>) { // Make sure the name hasn't already been used. if self.name_exists(name) { - panic!("Attempted to add assembly to another assembly with a name that already \ - exists."); + panic!( + "Attempted to add assembly to another assembly with a name that already \ + exists." + ); } // Add assembly - self.assembly_map.insert(name.to_string(), self.assemblies.len()); + self.assembly_map + .insert(name.to_string(), self.assemblies.len()); self.assemblies.push(asmb); } @@ -201,16 +200,14 @@ impl<'a> AssemblyBuilder<'a> { instance_type: InstanceType::Object, data_index: self.object_map[name], id: self.instances.len(), - transform_indices: - xforms.map(|xf| (self.xforms.len(), self.xforms.len() + xf.len())), + transform_indices: xforms.map(|xf| (self.xforms.len(), self.xforms.len() + xf.len())), } } else { Instance { instance_type: InstanceType::Assembly, data_index: self.assembly_map[name], id: self.instances.len(), - transform_indices: - xforms.map(|xf| (self.xforms.len(), self.xforms.len() + xf.len())), + transform_indices: xforms.map(|xf| (self.xforms.len(), self.xforms.len() + xf.len())), } }; @@ -231,49 +228,59 @@ impl<'a> AssemblyBuilder<'a> { let (bis, bbs) = self.instance_bounds(); // Build object accel - let object_accel = BVH::from_objects(self.arena, - &mut self.instances[..], - 1, - |inst| &bbs[bis[inst.id]..bis[inst.id + 1]]); + let object_accel = BVH::from_objects( + self.arena, + &mut self.instances[..], + 1, + |inst| &bbs[bis[inst.id]..bis[inst.id + 1]], + ); // Get list of instances that are for light sources or assemblies that contain light // sources. let mut light_instances: Vec<_> = self.instances .iter() - .filter(|inst| match inst.instance_type { - InstanceType::Object => { - if let Object::Light(_) = self.objects[inst.data_index] { - true - } else { - false + .filter( + |inst| match inst.instance_type { + InstanceType::Object => { + if let Object::Light(_) = self.objects[inst.data_index] { + true + } else { + false + } + } + + InstanceType::Assembly => { + self.assemblies[inst.data_index] + .light_accel + .approximate_energy() > 0.0 } } - - InstanceType::Assembly => { - self.assemblies[inst.data_index].light_accel.approximate_energy() > 0.0 - } - }) + ) .map(|&a| a) .collect(); // Build light accel - let light_accel = LightTree::from_objects(self.arena, &mut light_instances[..], |inst| { - let bounds = &bbs[bis[inst.id]..bis[inst.id + 1]]; - let energy = match inst.instance_type { - InstanceType::Object => { - if let Object::Light(ref light) = self.objects[inst.data_index] { - light.approximate_energy() - } else { - 0.0 + let light_accel = LightTree::from_objects( + self.arena, &mut light_instances[..], |inst| { + let bounds = &bbs[bis[inst.id]..bis[inst.id + 1]]; + let energy = match inst.instance_type { + InstanceType::Object => { + if let Object::Light(ref light) = self.objects[inst.data_index] { + light.approximate_energy() + } else { + 0.0 + } } - } - InstanceType::Assembly => { - self.assemblies[inst.data_index].light_accel.approximate_energy() - } - }; - (bounds, energy) - }); + InstanceType::Assembly => { + self.assemblies[inst.data_index] + .light_accel + .approximate_energy() + } + }; + (bounds, energy) + } + ); Assembly { instances: self.arena.copy_slice(&self.instances), diff --git a/src/scene/scene.rs b/src/scene/scene.rs index 48fb497..a9217f6 100644 --- a/src/scene/scene.rs +++ b/src/scene/scene.rs @@ -19,14 +19,7 @@ pub struct Scene<'a> { } impl<'a> Scene<'a> { - pub fn sample_lights(&self, - xform_stack: &mut TransformStack, - n: f32, - uvw: (f32, f32, f32), - wavelength: f32, - time: f32, - intr: &SurfaceIntersection) - -> Option<(SpectralSample, Vector, f32, f32, bool)> { + pub fn sample_lights(&self, xform_stack: &mut TransformStack, n: f32, uvw: (f32, f32, f32), wavelength: f32, time: f32, intr: &SurfaceIntersection) -> Option<(SpectralSample, Vector, f32, f32, bool)> { // TODO: this just selects between world lights and local lights // with a 50/50 chance. We should do something more sophisticated // than this, accounting for the estimated impact of the lights @@ -35,10 +28,9 @@ impl<'a> Scene<'a> { // Calculate relative probabilities of traversing into world lights // or local lights. let wl_energy = if self.world - .lights - .iter() - .fold(0.0, |energy, light| energy + light.approximate_energy()) <= - 0.0 { + .lights + .iter() + .fold(0.0, |energy, light| energy + light.approximate_energy()) <= 0.0 { 0.0 } else { 1.0 @@ -67,7 +59,8 @@ impl<'a> Scene<'a> { let n = (n - wl_prob) / (1.0 - wl_prob); if let Some((ss, sv, pdf, spdf)) = - self.root.sample_lights(xform_stack, n, uvw, wavelength, time, intr) { + self.root + .sample_lights(xform_stack, n, uvw, wavelength, time, intr) { return Some((ss, sv, pdf, spdf * (1.0 - wl_prob), false)); } else { return None; diff --git a/src/shading/surface_closure.rs b/src/shading/surface_closure.rs index 851f0ca..adcbc66 100644 --- a/src/shading/surface_closure.rs +++ b/src/shading/surface_closure.rs @@ -42,12 +42,7 @@ pub trait SurfaceClosure { /// wavelength: The wavelength of light to sample at. /// /// Returns a tuple with the generated outgoing light direction, color filter, and pdf. - fn sample(&self, - inc: Vector, - nor: Normal, - uv: (f32, f32), - wavelength: f32) - -> (Vector, SpectralSample, f32); + fn sample(&self, inc: Vector, nor: Normal, uv: (f32, f32), wavelength: f32) -> (Vector, SpectralSample, f32); /// Evaluates the closure for the given incoming and outgoing rays. /// @@ -72,12 +67,7 @@ pub trait SurfaceClosure { /// This is used for importance sampling, so does not need to be exact, /// but it does need to be non-zero anywhere that an exact solution would /// be non-zero. - fn estimate_eval_over_solid_angle(&self, - inc: Vector, - out: Vector, - nor: Normal, - cos_theta: f32) - -> f32; + fn estimate_eval_over_solid_angle(&self, inc: Vector, out: Vector, nor: Normal, cos_theta: f32) -> f32; } @@ -173,12 +163,7 @@ impl SurfaceClosure for EmitClosure { false } - fn sample(&self, - inc: Vector, - nor: Normal, - uv: (f32, f32), - wavelength: f32) - -> (Vector, SpectralSample, f32) { + fn sample(&self, inc: Vector, nor: Normal, uv: (f32, f32), wavelength: f32) -> (Vector, SpectralSample, f32) { let _ = (inc, nor, uv); // Not using these, silence warning (Vector::new(0.0, 0.0, 0.0), SpectralSample::new(wavelength), 1.0) @@ -196,12 +181,7 @@ impl SurfaceClosure for EmitClosure { 1.0 } - fn estimate_eval_over_solid_angle(&self, - inc: Vector, - out: Vector, - nor: Normal, - cos_theta: f32) - -> f32 { + fn estimate_eval_over_solid_angle(&self, inc: Vector, out: Vector, nor: Normal, cos_theta: f32) -> f32 { let _ = (inc, out, nor, cos_theta); // Not using these, silence warning // TODO: what to do here? @@ -227,12 +207,7 @@ impl SurfaceClosure for LambertClosure { false } - fn sample(&self, - inc: Vector, - nor: Normal, - uv: (f32, f32), - wavelength: f32) - -> (Vector, SpectralSample, f32) { + fn sample(&self, inc: Vector, nor: Normal, uv: (f32, f32), wavelength: f32) -> (Vector, SpectralSample, f32) { let nn = if dot(nor.into_vector(), inc) <= 0.0 { nor.normalized() } else { @@ -275,12 +250,7 @@ impl SurfaceClosure for LambertClosure { dot(nn, v).max(0.0) * INV_PI } - fn estimate_eval_over_solid_angle(&self, - inc: Vector, - out: Vector, - nor: Normal, - cos_theta: f32) - -> f32 { + fn estimate_eval_over_solid_angle(&self, inc: Vector, out: Vector, nor: Normal, cos_theta: f32) -> f32 { assert!(cos_theta >= -1.0 && cos_theta <= 1.0); // Analytically calculates lambert shading from a uniform light source @@ -405,9 +375,7 @@ impl GTRClosure { let roughness2 = self.roughness * self.roughness; // Calculate top half of equation - let top = 1.0 - - ((roughness2.powf(1.0 - self.tail_shape) * (1.0 - u)) + u) - .powf(1.0 / (1.0 - self.tail_shape)); + let top = 1.0 - ((roughness2.powf(1.0 - self.tail_shape) * (1.0 - u)) + u).powf(1.0 / (1.0 - self.tail_shape)); // Calculate bottom half of equation let bottom = 1.0 - roughness2; @@ -440,12 +408,7 @@ impl SurfaceClosure for GTRClosure { } - fn sample(&self, - inc: Vector, - nor: Normal, - uv: (f32, f32), - wavelength: f32) - -> (Vector, SpectralSample, f32) { + fn sample(&self, inc: Vector, nor: Normal, uv: (f32, f32), wavelength: f32) -> (Vector, SpectralSample, f32) { // Get normalized surface normal let nn = if dot(nor.into_vector(), inc) < 0.0 { nor.normalized() @@ -499,18 +462,26 @@ impl SurfaceClosure for GTRClosure { let mut col_f = self.col.to_spectral_sample(wavelength); let rev_fresnel = 1.0 - self.fresnel; - let c0 = lerp(schlick_fresnel_from_fac(col_f.e.get_0(), hb), - col_f.e.get_0(), - rev_fresnel); - let c1 = lerp(schlick_fresnel_from_fac(col_f.e.get_1(), hb), - col_f.e.get_1(), - rev_fresnel); - let c2 = lerp(schlick_fresnel_from_fac(col_f.e.get_2(), hb), - col_f.e.get_2(), - rev_fresnel); - let c3 = lerp(schlick_fresnel_from_fac(col_f.e.get_3(), hb), - col_f.e.get_3(), - rev_fresnel); + let c0 = lerp( + schlick_fresnel_from_fac(col_f.e.get_0(), hb), + col_f.e.get_0(), + rev_fresnel, + ); + let c1 = lerp( + schlick_fresnel_from_fac(col_f.e.get_1(), hb), + col_f.e.get_1(), + rev_fresnel, + ); + let c2 = lerp( + schlick_fresnel_from_fac(col_f.e.get_2(), hb), + col_f.e.get_2(), + rev_fresnel, + ); + let c3 = lerp( + schlick_fresnel_from_fac(col_f.e.get_3(), hb), + col_f.e.get_3(), + rev_fresnel, + ); col_f.e.set_0(c0); col_f.e.set_1(c1); @@ -580,12 +551,7 @@ impl SurfaceClosure for GTRClosure { } - fn estimate_eval_over_solid_angle(&self, - inc: Vector, - out: Vector, - nor: Normal, - cos_theta: f32) - -> f32 { + fn estimate_eval_over_solid_angle(&self, inc: Vector, out: Vector, nor: Normal, cos_theta: f32) -> f32 { // TODO: all of the stuff in this function is horribly hacky. // Find a proper way to approximate the light contribution from a // solid angle. @@ -622,8 +588,10 @@ impl SurfaceClosure for GTRClosure { let theta = cos_theta.acos(); let hh = (aa + bb).normalized(); let nh = clamp(dot(nn, hh), -1.0, 1.0); - let fac = self.dist(nh, - (1.0f32).min(self.roughness.sqrt() + (2.0 * theta / PI_32))); + let fac = self.dist( + nh, + (1.0f32).min(self.roughness.sqrt() + (2.0 * theta / PI_32)), + ); return fac * (1.0f32).min(1.0 - cos_theta) * INV_PI; } diff --git a/src/surface/mod.rs b/src/surface/mod.rs index 7af04e7..52666b9 100644 --- a/src/surface/mod.rs +++ b/src/surface/mod.rs @@ -12,11 +12,7 @@ use shading::surface_closure::SurfaceClosureUnion; pub trait Surface: Boundable + Debug + Sync { - fn intersect_rays(&self, - accel_rays: &mut [AccelRay], - wrays: &[Ray], - isects: &mut [SurfaceIntersection], - space: &[Matrix4x4]); + fn intersect_rays(&self, accel_rays: &mut [AccelRay], wrays: &[Ray], isects: &mut [SurfaceIntersection], space: &[Matrix4x4]); } diff --git a/src/surface/triangle_mesh.rs b/src/surface/triangle_mesh.rs index 728486f..7b8b1e6 100644 --- a/src/surface/triangle_mesh.rs +++ b/src/surface/triangle_mesh.rs @@ -24,10 +24,7 @@ pub struct TriangleMesh<'a> { } impl<'a> TriangleMesh<'a> { - pub fn from_triangles<'b>(arena: &'b MemArena, - time_samples: usize, - triangles: Vec<(Point, Point, Point)>) - -> TriangleMesh<'b> { + pub fn from_triangles<'b>(arena: &'b MemArena, time_samples: usize, triangles: Vec<(Point, Point, Point)>) -> TriangleMesh<'b> { assert!(triangles.len() % time_samples == 0); let mut indices: Vec = (0..(triangles.len() / time_samples)) @@ -44,10 +41,12 @@ impl<'a> TriangleMesh<'a> { bounds }; - let accel = BVH::from_objects(arena, - &mut indices[..], - 3, - |tri_i| &bounds[*tri_i..(*tri_i + time_samples)]); + let accel = BVH::from_objects( + arena, + &mut indices[..], + 3, + |tri_i| &bounds[*tri_i..(*tri_i + time_samples)], + ); TriangleMesh { time_samples: time_samples, @@ -66,61 +65,57 @@ impl<'a> Boundable for TriangleMesh<'a> { impl<'a> Surface for TriangleMesh<'a> { - fn intersect_rays(&self, - accel_rays: &mut [AccelRay], - wrays: &[Ray], - isects: &mut [SurfaceIntersection], - space: &[Matrix4x4]) { - self.accel.traverse(&mut accel_rays[..], &self.indices, |tri_i, rs| { - for r in rs { - let wr = &wrays[r.id as usize]; - let tri = - lerp_slice_with(&self.geo[*tri_i..(*tri_i + self.time_samples)], - wr.time, - |a, b, t| { - (lerp(a.0, b.0, t), lerp(a.1, b.1, t), lerp(a.2, b.2, t)) - }); - // TODO: when there's no transforms, we don't have to - // transform the triangles at all. - let mat_space = if space.len() > 0 { - lerp_slice(space, wr.time) - } else { - Matrix4x4::new() - }; - let mat_inv = mat_space.inverse(); - let tri = (tri.0 * mat_inv, tri.1 * mat_inv, tri.2 * mat_inv); - if let Some((t, _, _)) = triangle::intersect_ray(wr, tri) { - if t < r.max_t { - if r.is_occlusion() { - isects[r.id as usize] = SurfaceIntersection::Occlude; - r.mark_done(); + fn intersect_rays(&self, accel_rays: &mut [AccelRay], wrays: &[Ray], isects: &mut [SurfaceIntersection], space: &[Matrix4x4]) { + self.accel + .traverse( + &mut accel_rays[..], &self.indices, |tri_i, rs| { + for r in rs { + let wr = &wrays[r.id as usize]; + let tri = lerp_slice_with( + &self.geo[*tri_i..(*tri_i + self.time_samples)], + wr.time, + |a, b, t| (lerp(a.0, b.0, t), lerp(a.1, b.1, t), lerp(a.2, b.2, t)), + ); + // TODO: when there's no transforms, we don't have to + // transform the triangles at all. + let mat_space = if space.len() > 0 { + lerp_slice(space, wr.time) } else { - isects[r.id as usize] = SurfaceIntersection::Hit { - intersection_data: SurfaceIntersectionData { - incoming: wr.dir, - t: t, - pos: wr.orig + (wr.dir * t), - nor: cross(tri.0 - tri.1, tri.0 - tri.2).into_normal(), // TODO - nor_g: cross(tri.0 - tri.1, tri.0 - tri.2).into_normal(), - uv: (0.0, 0.0), // TODO - local_space: mat_space, - }, - // TODO: get surface closure from surface shader. - closure: SurfaceClosureUnion::LambertClosure( - LambertClosure::new(XYZ::new(0.8, 0.8, 0.8)) - ), - // closure: - // SurfaceClosureUnion::GTRClosure( - // GTRClosure::new(XYZ::new(0.8, 0.8, 0.8), - // 0.1, - // 2.0, - // 1.0)), - }; - r.max_t = t; + Matrix4x4::new() + }; + let mat_inv = mat_space.inverse(); + let tri = (tri.0 * mat_inv, tri.1 * mat_inv, tri.2 * mat_inv); + if let Some((t, _, _)) = triangle::intersect_ray(wr, tri) { + if t < r.max_t { + if r.is_occlusion() { + isects[r.id as usize] = SurfaceIntersection::Occlude; + r.mark_done(); + } else { + isects[r.id as usize] = SurfaceIntersection::Hit { + intersection_data: SurfaceIntersectionData { + incoming: wr.dir, + t: t, + pos: wr.orig + (wr.dir * t), + nor: cross(tri.0 - tri.1, tri.0 - tri.2).into_normal(), // TODO + nor_g: cross(tri.0 - tri.1, tri.0 - tri.2).into_normal(), + uv: (0.0, 0.0), // TODO + local_space: mat_space, + }, + // TODO: get surface closure from surface shader. + closure: SurfaceClosureUnion::LambertClosure(LambertClosure::new(XYZ::new(0.8, 0.8, 0.8))), +// closure: +// SurfaceClosureUnion::GTRClosure( +// GTRClosure::new(XYZ::new(0.8, 0.8, 0.8), +// 0.1, +// 2.0, +// 1.0)), + }; + r.max_t = t; + } + } } } } - } - }); + ); } } diff --git a/src/tracer.rs b/src/tracer.rs index ec53176..e8d2342 100644 --- a/src/tracer.rs +++ b/src/tracer.rs @@ -29,7 +29,12 @@ impl<'a> Tracer<'a> { self.rays.clear(); self.rays.reserve(wrays.len()); let mut ids = 0..(wrays.len() as u32); - self.rays.extend(wrays.iter().map(|wr| AccelRay::new(wr, ids.next().unwrap()))); + self.rays + .extend( + wrays + .iter() + .map(|wr| AccelRay::new(wr, ids.next().unwrap())) + ); return self.inner.trace(wrays, &mut self.rays[..]); } @@ -46,7 +51,8 @@ impl<'a> TracerInner<'a> { // Ready the isects self.isects.clear(); self.isects.reserve(wrays.len()); - self.isects.extend(iter::repeat(SurfaceIntersection::Miss).take(wrays.len())); + self.isects + .extend(iter::repeat(SurfaceIntersection::Miss).take(wrays.len())); let mut ray_sets = split_rays_by_direction(&mut rays[..]); for ray_set in ray_sets.iter_mut().filter(|ray_set| ray_set.len() > 0) { @@ -56,86 +62,93 @@ impl<'a> TracerInner<'a> { return &self.isects; } - fn trace_assembly<'b>(&'b mut self, - assembly: &Assembly, - wrays: &[Ray], - accel_rays: &mut [AccelRay]) { - assembly.object_accel.traverse(&mut accel_rays[..], &assembly.instances[..], |inst, rs| { - // Transform rays if needed - if let Some((xstart, xend)) = inst.transform_indices { - // Push transforms to stack - self.xform_stack.push(&assembly.xforms[xstart..xend]); + fn trace_assembly<'b>(&'b mut self, assembly: &Assembly, wrays: &[Ray], accel_rays: &mut [AccelRay]) { + assembly + .object_accel + .traverse( + &mut accel_rays[..], &assembly.instances[..], |inst, rs| { + // Transform rays if needed + if let Some((xstart, xend)) = inst.transform_indices { + // Push transforms to stack + self.xform_stack.push(&assembly.xforms[xstart..xend]); - // Do transforms - let xforms = self.xform_stack.top(); - for ray in &mut rs[..] { - let id = ray.id; - let t = ray.time; - ray.update_from_xformed_world_ray(&wrays[id as usize], &lerp_slice(xforms, t)); - } - } - - // Trace rays - { - // This is kind of weird looking, but what we're doing here is - // splitting the rays up based on direction if they were - // transformed, and not splitting them up if they weren't - // transformed. - // But to keep the actual tracing code in one place (DRY), - // we map both cases to an array slice that contains slices of - // ray arrays. Gah... that's confusing even when explained. - // TODO: do this in a way that's less confusing. Probably split - // the tracing code out into a trace_instance() method or - // something. - let mut tmp = if let Some(_) = inst.transform_indices { - split_rays_by_direction(rs) - } else { - [&mut rs[..], &mut [], &mut [], &mut [], &mut [], &mut [], &mut [], &mut []] - }; - let mut ray_sets = if let Some(_) = inst.transform_indices { - &mut tmp[..] - } else { - &mut tmp[..1] - }; - - // Loop through the split ray slices and trace them - for ray_set in ray_sets.iter_mut().filter(|ray_set| ray_set.len() > 0) { - match inst.instance_type { - InstanceType::Object => { - self.trace_object(&assembly.objects[inst.data_index], wrays, ray_set); + // Do transforms + let xforms = self.xform_stack.top(); + for ray in &mut rs[..] { + let id = ray.id; + let t = ray.time; + ray.update_from_xformed_world_ray(&wrays[id as usize], &lerp_slice(xforms, t)); } + } - InstanceType::Assembly => { - self.trace_assembly(&assembly.assemblies[inst.data_index], - wrays, - ray_set); + // Trace rays + { + // This is kind of weird looking, but what we're doing here is + // splitting the rays up based on direction if they were + // transformed, and not splitting them up if they weren't + // transformed. + // But to keep the actual tracing code in one place (DRY), + // we map both cases to an array slice that contains slices of + // ray arrays. Gah... that's confusing even when explained. + // TODO: do this in a way that's less confusing. Probably split + // the tracing code out into a trace_instance() method or + // something. + let mut tmp = if let Some(_) = inst.transform_indices { + split_rays_by_direction(rs) + } else { + [ + &mut rs[..], + &mut [], + &mut [], + &mut [], + &mut [], + &mut [], + &mut [], + &mut [], + ] + }; + let mut ray_sets = if let Some(_) = inst.transform_indices { + &mut tmp[..] + } else { + &mut tmp[..1] + }; + + // Loop through the split ray slices and trace them + for ray_set in ray_sets.iter_mut().filter(|ray_set| ray_set.len() > 0) { + match inst.instance_type { + InstanceType::Object => { + self.trace_object(&assembly.objects[inst.data_index], wrays, ray_set); + } + + InstanceType::Assembly => { + self.trace_assembly(&assembly.assemblies[inst.data_index], wrays, ray_set); + } + } + } + } + + // Un-transform rays if needed + if let Some(_) = inst.transform_indices { + // Pop transforms off stack + self.xform_stack.pop(); + + // Undo transforms + let xforms = self.xform_stack.top(); + if xforms.len() > 0 { + for ray in &mut rs[..] { + let id = ray.id; + let t = ray.time; + ray.update_from_xformed_world_ray(&wrays[id as usize], &lerp_slice(xforms, t)); + } + } else { + for ray in &mut rs[..] { + let id = ray.id; + ray.update_from_world_ray(&wrays[id as usize]); + } } } } - } - - // Un-transform rays if needed - if let Some(_) = inst.transform_indices { - // Pop transforms off stack - self.xform_stack.pop(); - - // Undo transforms - let xforms = self.xform_stack.top(); - if xforms.len() > 0 { - for ray in &mut rs[..] { - let id = ray.id; - let t = ray.time; - ray.update_from_xformed_world_ray(&wrays[id as usize], - &lerp_slice(xforms, t)); - } - } else { - for ray in &mut rs[..] { - let id = ray.id; - ray.update_from_world_ray(&wrays[id as usize]); - } - } - } - }); + ); } fn trace_object<'b>(&'b mut self, obj: &Object, wrays: &[Ray], rays: &mut [AccelRay]) { diff --git a/sub_crates/float4/src/lib.rs b/sub_crates/float4/src/lib.rs index eb1592a..4eb0164 100644 --- a/sub_crates/float4/src/lib.rs +++ b/sub_crates/float4/src/lib.rs @@ -94,26 +94,28 @@ impl Float4 { #[cfg(not(feature = "simd_perf"))] #[inline] pub fn v_min(&self, other: Float4) -> Float4 { - Float4::new(if self.get_0() < other.get_0() { - self.get_0() - } else { - other.get_0() - }, - if self.get_1() < other.get_1() { - self.get_1() - } else { - other.get_1() - }, - if self.get_2() < other.get_2() { - self.get_2() - } else { - other.get_2() - }, - if self.get_3() < other.get_3() { - self.get_3() - } else { - other.get_3() - }) + Float4::new( + if self.get_0() < other.get_0() { + self.get_0() + } else { + other.get_0() + }, + if self.get_1() < other.get_1() { + self.get_1() + } else { + other.get_1() + }, + if self.get_2() < other.get_2() { + self.get_2() + } else { + other.get_2() + }, + if self.get_3() < other.get_3() { + self.get_3() + } else { + other.get_3() + }, + ) } @@ -125,26 +127,28 @@ impl Float4 { #[cfg(not(feature = "simd_perf"))] #[inline] pub fn v_max(&self, other: Float4) -> Float4 { - Float4::new(if self.get_0() > other.get_0() { - self.get_0() - } else { - other.get_0() - }, - if self.get_1() > other.get_1() { - self.get_1() - } else { - other.get_1() - }, - if self.get_2() > other.get_2() { - self.get_2() - } else { - other.get_2() - }, - if self.get_3() > other.get_3() { - self.get_3() - } else { - other.get_3() - }) + Float4::new( + if self.get_0() > other.get_0() { + self.get_0() + } else { + other.get_0() + }, + if self.get_1() > other.get_1() { + self.get_1() + } else { + other.get_1() + }, + if self.get_2() > other.get_2() { + self.get_2() + } else { + other.get_2() + }, + if self.get_3() > other.get_3() { + self.get_3() + } else { + other.get_3() + }, + ) } #[cfg(feature = "simd_perf")] @@ -344,8 +348,7 @@ impl Float4 { impl PartialEq for Float4 { #[inline] fn eq(&self, other: &Float4) -> bool { - self.get_0() == other.get_0() && self.get_1() == other.get_1() && - self.get_2() == other.get_2() && self.get_3() == other.get_3() + self.get_0() == other.get_0() && self.get_1() == other.get_1() && self.get_2() == other.get_2() && self.get_3() == other.get_3() } } @@ -595,8 +598,7 @@ impl Bool4 { #[inline] pub fn to_bitmask(&self) -> u8 { - (self.get_0() as u8) | ((self.get_1() as u8) << 1) | ((self.get_2() as u8) << 2) | - ((self.get_3() as u8) << 3) + (self.get_0() as u8) | ((self.get_1() as u8) << 1) | ((self.get_2() as u8) << 2) | ((self.get_3() as u8) << 3) } } diff --git a/sub_crates/halton/build.rs b/sub_crates/halton/build.rs index 61d62eb..135cff6 100644 --- a/sub_crates/halton/build.rs +++ b/sub_crates/halton/build.rs @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // -// Adapted to Rust and to generate Rust instead of C by Nathan Vegdahl +// Adapted from Python to Rust and to generate Rust instead of C by Nathan Vegdahl // Generate Rust code for evaluating Halton points with Faure-permutations for different bases. @@ -63,7 +63,9 @@ fn main() { }; // Write the beginning bits of the file - f.write_all(format!(r#" + f.write_all( + format!( + r#" // Copyright (c) 2012 Leonhard Gruenschloss (leonhard@gruenschloss.org) // // Permission is hereby granted, free of charge, to any person obtaining a copy @@ -90,38 +92,54 @@ fn main() { pub const MAX_DIMENSION: u32 = {}; "#, - NUM_DIMENSIONS) - .as_bytes()) + NUM_DIMENSIONS + ) + .as_bytes() + ) .unwrap(); // Write the sampling function - f.write_all(format!(r#" + f.write_all( + format!( + r#" #[inline] pub fn sample(dimension: u32, index: u32) -> f32 {{ - match dimension {{"#) - .as_bytes()) + match dimension {{"# + ) + .as_bytes() + ) .unwrap(); for i in 0..NUM_DIMENSIONS { - f.write_all(format!(r#" + f.write_all( + format!( + r#" {} => halton{}(index),"#, - i, - primes[i]) - .as_bytes()) + i, + primes[i] + ) + .as_bytes() + ) .unwrap(); } - f.write_all(format!(r#" + f.write_all( + format!( + r#" _ => panic!("Exceeded max dimensions."), }} }} - "#) - .as_bytes()) + "# + ) + .as_bytes() + ) .unwrap(); // Write the special-cased first dimension - f.write_all(format!(r#" + f.write_all( + format!( + r#" // Special case: radical inverse in base 2, with direct bit reversal. fn halton2(mut index: u32) -> f32 {{ index = (index << 16) | (index >> 16); @@ -131,8 +149,10 @@ fn halton2(mut index: u32) -> f32 {{ index = ((index & 0x55555555) << 1) | ((index & 0xaaaaaaaa) >> 1); return (index as f32) * (1.0 / ((1u64 << 32) as f32)); }} - "#) - .as_bytes()) + "# + ) + .as_bytes() + ) .unwrap(); for i in 1..NUM_DIMENSIONS { @@ -157,7 +177,9 @@ fn halton2(mut index: u32) -> f32 {{ } // Build the permutation table. - let perm = (0..pow_base).map(|j| invert(&faure, base, j, digits)).collect::>(); + let perm = (0..pow_base) + .map(|j| invert(&faure, base, j, digits)) + .collect::>(); let perm_string = { let mut perm_string = String::new(); for i in perm.iter() { @@ -168,22 +190,30 @@ fn halton2(mut index: u32) -> f32 {{ }; let mut power = max_power / pow_base; - f.write_all(format!(r#" + f.write_all( + format!( + r#" fn halton{}(index: u32) -> f32 {{ const PERM{}: [u16; {}] = [{}];"#, - base, - base, - perm.len(), - perm_string) - .as_bytes()) + base, + base, + perm.len(), + perm_string + ) + .as_bytes() + ) .unwrap();; - f.write_all(format!(r#" + f.write_all( + format!( + r#" return (unsafe{{*PERM{}.get_unchecked((index % {}) as usize)}} as u32 * {} +"#, - base, - pow_base, - power) - .as_bytes()) + base, + pow_base, + power + ) + .as_bytes() + ) .unwrap();; // Advance to next set of digits. @@ -191,26 +221,34 @@ fn halton{}(index: u32) -> f32 {{ while power / pow_base > 1 { div *= pow_base; power /= pow_base; - f.write_all(format!(r#" + f.write_all( + format!( + r#" unsafe{{*PERM{}.get_unchecked(((index / {}) % {}) as usize)}} as u32 * {} +"#, - base, - div, - pow_base, - power) - .as_bytes()) + base, + div, + pow_base, + power + ) + .as_bytes() + ) .unwrap();; } - f.write_all(format!(r#" + f.write_all( + format!( + r#" unsafe{{*PERM{}.get_unchecked(((index / {}) % {}) as usize)}} as u32) as f32 * (0.999999940395355224609375f32 / ({}u32 as f32)); // Results in [0,1). }} "#, - base, - div * pow_base, - pow_base, - max_power) - .as_bytes()) + base, + div * pow_base, + pow_base, + max_power + ) + .as_bytes() + ) .unwrap();; } } @@ -237,26 +275,30 @@ fn get_faure_permutation(faure: &Vec>, b: usize) -> Vec { let c = (b - 1) / 2; return (0..b) - .map(|i| { + .map( + |i| { if i == c { return c; } let f: usize = faure[b - 1][i - ((i > c) as usize)]; f + ((f >= c) as usize) - }) - .collect(); + } + ) + .collect(); } else { // even let c = b / 2; return (0..b) - .map(|i| if i < c { + .map( + |i| if i < c { 2 * faure[c][i] } else { 2 * faure[c][i - c] + 1 - }) - .collect(); + } + ) + .collect(); } } diff --git a/sub_crates/halton/src/lib.rs b/sub_crates/halton/src/lib.rs index 2c386d9..6c8d801 100644 --- a/sub_crates/halton/src/lib.rs +++ b/sub_crates/halton/src/lib.rs @@ -1,4 +1,4 @@ #![allow(dead_code)] // Include the file generated by the build.rs script -include!(concat!(env!("OUT_DIR"), "/halton.rs")); \ No newline at end of file +include!(concat!(env!("OUT_DIR"), "/halton.rs")); diff --git a/sub_crates/math3d/src/matrix.rs b/sub_crates/math3d/src/matrix.rs index c247b84..ac79d36 100644 --- a/sub_crates/math3d/src/matrix.rs +++ b/sub_crates/math3d/src/matrix.rs @@ -33,23 +33,7 @@ impl Matrix4x4 { /// i j k l /// m n o p #[inline] - pub fn new_from_values(a: f32, - b: f32, - c: f32, - d: f32, - e: f32, - f: f32, - g: f32, - h: f32, - i: f32, - j: f32, - k: f32, - l: f32, - m: f32, - n: f32, - o: f32, - p: f32) - -> Matrix4x4 { + pub fn new_from_values(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32, i: f32, j: f32, k: f32, l: f32, m: f32, n: f32, o: f32, p: f32) -> Matrix4x4 { Matrix4x4 { values: [Float4::new(a, b, c, d), Float4::new(e, f, g, h), @@ -106,22 +90,30 @@ impl Matrix4x4 { pub fn transposed(&self) -> Matrix4x4 { Matrix4x4 { values: { - [Float4::new(self[0].get_0(), - self[1].get_0(), - self[2].get_0(), - self[3].get_0()), - Float4::new(self[0].get_1(), - self[1].get_1(), - self[2].get_1(), - self[3].get_1()), - Float4::new(self[0].get_2(), - self[1].get_2(), - self[2].get_2(), - self[3].get_2()), - Float4::new(self[0].get_3(), - self[1].get_3(), - self[2].get_3(), - self[3].get_3())] + [Float4::new( + self[0].get_0(), + self[1].get_0(), + self[2].get_0(), + self[3].get_0(), + ), + Float4::new( + self[0].get_1(), + self[1].get_1(), + self[2].get_1(), + self[3].get_1(), + ), + Float4::new( + self[0].get_2(), + self[1].get_2(), + self[2].get_2(), + self[3].get_2(), + ), + Float4::new( + self[0].get_3(), + self[1].get_3(), + self[2].get_3(), + self[3].get_3(), + )] }, } } @@ -150,41 +142,33 @@ impl Matrix4x4 { Matrix4x4 { values: { - [Float4::new(((self[1].get_1() * c5) - (self[1].get_2() * c4) + - (self[1].get_3() * c3)) * invdet, - ((-self[0].get_1() * c5) + (self[0].get_2() * c4) - - (self[0].get_3() * c3)) * invdet, - ((self[3].get_1() * s5) - (self[3].get_2() * s4) + - (self[3].get_3() * s3)) * invdet, - ((-self[2].get_1() * s5) + (self[2].get_2() * s4) - - (self[2].get_3() * s3)) * invdet), + [Float4::new( + ((self[1].get_1() * c5) - (self[1].get_2() * c4) + (self[1].get_3() * c3)) * invdet, + ((-self[0].get_1() * c5) + (self[0].get_2() * c4) - (self[0].get_3() * c3)) * invdet, + ((self[3].get_1() * s5) - (self[3].get_2() * s4) + (self[3].get_3() * s3)) * invdet, + ((-self[2].get_1() * s5) + (self[2].get_2() * s4) - (self[2].get_3() * s3)) * invdet, + ), - Float4::new(((-self[1].get_0() * c5) + (self[1].get_2() * c2) - - (self[1].get_3() * c1)) * invdet, - ((self[0].get_0() * c5) - (self[0].get_2() * c2) + - (self[0].get_3() * c1)) * invdet, - ((-self[3].get_0() * s5) + (self[3].get_2() * s2) - - (self[3].get_3() * s1)) * invdet, - ((self[2].get_0() * s5) - (self[2].get_2() * s2) + - (self[2].get_3() * s1)) * invdet), + Float4::new( + ((-self[1].get_0() * c5) + (self[1].get_2() * c2) - (self[1].get_3() * c1)) * invdet, + ((self[0].get_0() * c5) - (self[0].get_2() * c2) + (self[0].get_3() * c1)) * invdet, + ((-self[3].get_0() * s5) + (self[3].get_2() * s2) - (self[3].get_3() * s1)) * invdet, + ((self[2].get_0() * s5) - (self[2].get_2() * s2) + (self[2].get_3() * s1)) * invdet, + ), - Float4::new(((self[1].get_0() * c4) - (self[1].get_1() * c2) + - (self[1].get_3() * c0)) * invdet, - ((-self[0].get_0() * c4) + (self[0].get_1() * c2) - - (self[0].get_3() * c0)) * invdet, - ((self[3].get_0() * s4) - (self[3].get_1() * s2) + - (self[3].get_3() * s0)) * invdet, - ((-self[2].get_0() * s4) + (self[2].get_1() * s2) - - (self[2].get_3() * s0)) * invdet), + Float4::new( + ((self[1].get_0() * c4) - (self[1].get_1() * c2) + (self[1].get_3() * c0)) * invdet, + ((-self[0].get_0() * c4) + (self[0].get_1() * c2) - (self[0].get_3() * c0)) * invdet, + ((self[3].get_0() * s4) - (self[3].get_1() * s2) + (self[3].get_3() * s0)) * invdet, + ((-self[2].get_0() * s4) + (self[2].get_1() * s2) - (self[2].get_3() * s0)) * invdet, + ), - Float4::new(((-self[1].get_0() * c3) + (self[1].get_1() * c1) - - (self[1].get_2() * c0)) * invdet, - ((self[0].get_0() * c3) - (self[0].get_1() * c1) + - (self[0].get_2() * c0)) * invdet, - ((-self[3].get_0() * s3) + (self[3].get_1() * s1) - - (self[3].get_2() * s0)) * invdet, - ((self[2].get_0() * s3) - (self[2].get_1() * s1) + - (self[2].get_2() * s0)) * invdet)] + Float4::new( + ((-self[1].get_0() * c3) + (self[1].get_1() * c1) - (self[1].get_2() * c0)) * invdet, + ((self[0].get_0() * c3) - (self[0].get_1() * c1) + (self[0].get_2() * c0)) * invdet, + ((-self[3].get_0() * s3) + (self[3].get_1() * s1) - (self[3].get_2() * s0)) * invdet, + ((self[2].get_0() * s3) - (self[2].get_1() * s1) + (self[2].get_2() * s0)) * invdet, + )] }, } } @@ -233,25 +217,33 @@ impl Mul for Matrix4x4 { fn mul(self, other: Matrix4x4) -> Matrix4x4 { let m = self.transposed(); Matrix4x4 { - values: [Float4::new((m[0] * other[0]).h_sum(), - (m[1] * other[0]).h_sum(), - (m[2] * other[0]).h_sum(), - (m[3] * other[0]).h_sum()), + values: [Float4::new( + (m[0] * other[0]).h_sum(), + (m[1] * other[0]).h_sum(), + (m[2] * other[0]).h_sum(), + (m[3] * other[0]).h_sum(), + ), - Float4::new((m[0] * other[1]).h_sum(), - (m[1] * other[1]).h_sum(), - (m[2] * other[1]).h_sum(), - (m[3] * other[1]).h_sum()), + Float4::new( + (m[0] * other[1]).h_sum(), + (m[1] * other[1]).h_sum(), + (m[2] * other[1]).h_sum(), + (m[3] * other[1]).h_sum(), + ), - Float4::new((m[0] * other[2]).h_sum(), - (m[1] * other[2]).h_sum(), - (m[2] * other[2]).h_sum(), - (m[3] * other[2]).h_sum()), + Float4::new( + (m[0] * other[2]).h_sum(), + (m[1] * other[2]).h_sum(), + (m[2] * other[2]).h_sum(), + (m[3] * other[2]).h_sum(), + ), - Float4::new((m[0] * other[3]).h_sum(), - (m[1] * other[3]).h_sum(), - (m[2] * other[3]).h_sum(), - (m[3] * other[3]).h_sum())], + Float4::new( + (m[0] * other[3]).h_sum(), + (m[1] * other[3]).h_sum(), + (m[2] * other[3]).h_sum(), + (m[3] * other[3]).h_sum(), + )], } } } @@ -268,22 +260,24 @@ mod tests { fn equality_test() { let a = Matrix4x4::new(); let b = Matrix4x4::new(); - let c = Matrix4x4::new_from_values(1.1, - 0.0, - 0.0, - 0.0, - 0.0, - 1.1, - 0.0, - 0.0, - 0.0, - 0.0, - 1.1, - 0.0, - 0.0, - 0.0, - 0.0, - 1.1); + let c = Matrix4x4::new_from_values( + 1.1, + 0.0, + 0.0, + 0.0, + 0.0, + 1.1, + 0.0, + 0.0, + 0.0, + 0.0, + 1.1, + 0.0, + 0.0, + 0.0, + 0.0, + 1.1, + ); assert_eq!(a, b); assert!(a != c); @@ -292,54 +286,60 @@ mod tests { #[test] fn aproximate_equality_test() { let a = Matrix4x4::new(); - let b = Matrix4x4::new_from_values(1.001, - 0.0, - 0.0, - 0.0, - 0.0, - 1.001, - 0.0, - 0.0, - 0.0, - 0.0, - 1.001, - 0.0, - 0.0, - 0.0, - 0.0, - 1.001); - let c = Matrix4x4::new_from_values(1.003, - 0.0, - 0.0, - 0.0, - 0.0, - 1.003, - 0.0, - 0.0, - 0.0, - 0.0, - 1.003, - 0.0, - 0.0, - 0.0, - 0.0, - 1.003); - let d = Matrix4x4::new_from_values(-1.001, - 0.0, - 0.0, - 0.0, - 0.0, - -1.001, - 0.0, - 0.0, - 0.0, - 0.0, - -1.001, - 0.0, - 0.0, - 0.0, - 0.0, - -1.001); + let b = Matrix4x4::new_from_values( + 1.001, + 0.0, + 0.0, + 0.0, + 0.0, + 1.001, + 0.0, + 0.0, + 0.0, + 0.0, + 1.001, + 0.0, + 0.0, + 0.0, + 0.0, + 1.001, + ); + let c = Matrix4x4::new_from_values( + 1.003, + 0.0, + 0.0, + 0.0, + 0.0, + 1.003, + 0.0, + 0.0, + 0.0, + 0.0, + 1.003, + 0.0, + 0.0, + 0.0, + 0.0, + 1.003, + ); + let d = Matrix4x4::new_from_values( + -1.001, + 0.0, + 0.0, + 0.0, + 0.0, + -1.001, + 0.0, + 0.0, + 0.0, + 0.0, + -1.001, + 0.0, + 0.0, + 0.0, + 0.0, + -1.001, + ); assert!(a.aprx_eq(b, 0.002)); assert!(!a.aprx_eq(c, 0.002)); @@ -348,76 +348,84 @@ mod tests { #[test] fn multiply_test() { - let a = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 13.0, - 7.0, - 15.0, - 3.0); - let b = Matrix4x4::new_from_values(1.0, - 5.0, - 9.0, - 13.0, - 2.0, - 6.0, - 10.0, - 14.0, - 3.0, - 7.0, - 11.0, - 15.0, - 4.0, - 8.0, - 12.0, - 16.0); - let c = Matrix4x4::new_from_values(266.0, - 141.0, - 331.0, - 188.5, - 292.0, - 158.0, - 366.0, - 213.0, - 318.0, - 175.0, - 401.0, - 237.5, - 344.0, - 192.0, - 436.0, - 262.0); + let a = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 13.0, + 7.0, + 15.0, + 3.0, + ); + let b = Matrix4x4::new_from_values( + 1.0, + 5.0, + 9.0, + 13.0, + 2.0, + 6.0, + 10.0, + 14.0, + 3.0, + 7.0, + 11.0, + 15.0, + 4.0, + 8.0, + 12.0, + 16.0, + ); + let c = Matrix4x4::new_from_values( + 266.0, + 141.0, + 331.0, + 188.5, + 292.0, + 158.0, + 366.0, + 213.0, + 318.0, + 175.0, + 401.0, + 237.5, + 344.0, + 192.0, + 436.0, + 262.0, + ); assert_eq!(a * b, c); } #[test] fn inverse_test() { - let a = Matrix4x4::new_from_values(1.0, - 0.33, - 0.0, - -2.0, - 0.0, - 1.0, - 0.0, - 0.0, - 2.1, - 0.7, - 1.3, - 0.0, - 0.0, - 0.0, - 0.0, - -1.0); + let a = Matrix4x4::new_from_values( + 1.0, + 0.33, + 0.0, + -2.0, + 0.0, + 1.0, + 0.0, + 0.0, + 2.1, + 0.7, + 1.3, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + ); let b = a.inverse(); let c = Matrix4x4::new(); @@ -426,38 +434,42 @@ mod tests { #[test] fn transpose_test() { - let a = Matrix4x4::new_from_values(1.0, - 2.0, - 3.0, - 4.0, - 5.0, - 6.0, - 7.0, - 8.0, - 9.0, - 10.0, - 11.0, - 12.0, - 13.0, - 14.0, - 15.0, - 16.0); - let b = Matrix4x4::new_from_values(1.0, - 5.0, - 9.0, - 13.0, - 2.0, - 6.0, - 10.0, - 14.0, - 3.0, - 7.0, - 11.0, - 15.0, - 4.0, - 8.0, - 12.0, - 16.0); + let a = Matrix4x4::new_from_values( + 1.0, + 2.0, + 3.0, + 4.0, + 5.0, + 6.0, + 7.0, + 8.0, + 9.0, + 10.0, + 11.0, + 12.0, + 13.0, + 14.0, + 15.0, + 16.0, + ); + let b = Matrix4x4::new_from_values( + 1.0, + 5.0, + 9.0, + 13.0, + 2.0, + 6.0, + 10.0, + 14.0, + 3.0, + 7.0, + 11.0, + 15.0, + 4.0, + 8.0, + 12.0, + 16.0, + ); let c = a.transposed(); assert_eq!(b, c); diff --git a/sub_crates/math3d/src/normal.rs b/sub_crates/math3d/src/normal.rs index 7d12980..410181a 100644 --- a/sub_crates/math3d/src/normal.rs +++ b/sub_crates/math3d/src/normal.rs @@ -127,10 +127,12 @@ impl Mul for Normal { fn mul(self, other: Matrix4x4) -> Normal { let mat = other.inverse().transposed(); Normal { - co: Float4::new((self.co * mat.values[0]).h_sum(), - (self.co * mat.values[1]).h_sum(), - (self.co * mat.values[2]).h_sum(), - 0.0), + co: Float4::new( + (self.co * mat.values[0]).h_sum(), + (self.co * mat.values[1]).h_sum(), + (self.co * mat.values[2]).h_sum(), + 0.0, + ), } } } @@ -168,13 +170,12 @@ impl CrossProduct for Normal { #[inline] fn cross(self, other: Normal) -> Normal { Normal { - co: Float4::new((self.co.get_1() * other.co.get_2()) - - (self.co.get_2() * other.co.get_1()), - (self.co.get_2() * other.co.get_0()) - - (self.co.get_0() * other.co.get_2()), - (self.co.get_0() * other.co.get_1()) - - (self.co.get_1() * other.co.get_0()), - 0.0), + co: Float4::new( + (self.co.get_1() * other.co.get_2()) - (self.co.get_2() * other.co.get_1()), + (self.co.get_2() * other.co.get_0()) - (self.co.get_0() * other.co.get_2()), + (self.co.get_0() * other.co.get_1()) - (self.co.get_1() * other.co.get_0()), + 0.0, + ), } } } @@ -215,22 +216,24 @@ mod tests { #[test] fn mul_matrix_1() { let n = Normal::new(1.0, 2.5, 4.0); - let m = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 13.0, - 7.0, - 15.0, - 3.0); + let m = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 13.0, + 7.0, + 15.0, + 3.0, + ); let nm = Normal::new(-19.258825, 5.717648, -1.770588); assert!(((n * m) - nm).length2() < 0.00001); } diff --git a/sub_crates/math3d/src/point.rs b/sub_crates/math3d/src/point.rs index ba47310..ef36321 100644 --- a/sub_crates/math3d/src/point.rs +++ b/sub_crates/math3d/src/point.rs @@ -133,10 +133,12 @@ impl Mul for Point { #[inline] fn mul(self, other: Matrix4x4) -> Point { Point { - co: Float4::new((self.co * other.values[0]).h_sum(), - (self.co * other.values[1]).h_sum(), - (self.co * other.values[2]).h_sum(), - (self.co * other.values[3]).h_sum()), + co: Float4::new( + (self.co * other.values[0]).h_sum(), + (self.co * other.values[1]).h_sum(), + (self.co * other.values[2]).h_sum(), + (self.co * other.values[3]).h_sum(), + ), } } } @@ -177,22 +179,24 @@ mod tests { #[test] fn mul_matrix_1() { let p = Point::new(1.0, 2.5, 4.0); - let m = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 0.0, - 0.0, - 0.0, - 1.0); + let m = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 0.0, + 0.0, + 0.0, + 1.0, + ); let pm = Point::new(15.5, 54.0, 70.0); assert_eq!(p * m, pm); } @@ -200,22 +204,24 @@ mod tests { #[test] fn mul_matrix_2() { let p = Point::new(1.0, 2.5, 4.0); - let m = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 2.0, - 3.0, - 1.0, - 5.0); + let m = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 2.0, + 3.0, + 1.0, + 5.0, + ); let mut pm = Point::new(15.5, 54.0, 70.0); pm.co.set_3(18.5); assert_eq!(p * m, pm); @@ -225,38 +231,42 @@ mod tests { fn mul_matrix_3() { // Make sure matrix multiplication composes the way one would expect let p = Point::new(1.0, 2.5, 4.0); - let m1 = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 13.0, - 7.0, - 15.0, - 3.0); - let m2 = Matrix4x4::new_from_values(4.0, - 1.0, - 2.0, - 3.5, - 3.0, - 6.0, - 5.0, - 2.0, - 2.0, - 2.0, - 4.0, - 12.0, - 5.0, - 7.0, - 8.0, - 11.0); + let m1 = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 13.0, + 7.0, + 15.0, + 3.0, + ); + let m2 = Matrix4x4::new_from_values( + 4.0, + 1.0, + 2.0, + 3.5, + 3.0, + 6.0, + 5.0, + 2.0, + 2.0, + 2.0, + 4.0, + 12.0, + 5.0, + 7.0, + 8.0, + 11.0, + ); println!("{:?}", m1 * m2); let pmm1 = p * (m1 * m2); diff --git a/sub_crates/math3d/src/vector.rs b/sub_crates/math3d/src/vector.rs index ee54307..9cbc856 100644 --- a/sub_crates/math3d/src/vector.rs +++ b/sub_crates/math3d/src/vector.rs @@ -127,10 +127,12 @@ impl Mul for Vector { #[inline] fn mul(self, other: Matrix4x4) -> Vector { Vector { - co: Float4::new((self.co * other.values[0]).h_sum(), - (self.co * other.values[1]).h_sum(), - (self.co * other.values[2]).h_sum(), - (self.co * other.values[3]).h_sum()), + co: Float4::new( + (self.co * other.values[0]).h_sum(), + (self.co * other.values[1]).h_sum(), + (self.co * other.values[2]).h_sum(), + (self.co * other.values[3]).h_sum(), + ), } } } @@ -168,13 +170,12 @@ impl CrossProduct for Vector { #[inline] fn cross(self, other: Vector) -> Vector { Vector { - co: Float4::new((self.co.get_1() * other.co.get_2()) - - (self.co.get_2() * other.co.get_1()), - (self.co.get_2() * other.co.get_0()) - - (self.co.get_0() * other.co.get_2()), - (self.co.get_0() * other.co.get_1()) - - (self.co.get_1() * other.co.get_0()), - 0.0), + co: Float4::new( + (self.co.get_1() * other.co.get_2()) - (self.co.get_2() * other.co.get_1()), + (self.co.get_2() * other.co.get_0()) - (self.co.get_0() * other.co.get_2()), + (self.co.get_0() * other.co.get_1()) - (self.co.get_1() * other.co.get_0()), + 0.0, + ), } } } @@ -215,22 +216,24 @@ mod tests { #[test] fn mul_matrix_1() { let v = Vector::new(1.0, 2.5, 4.0); - let m = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 13.0, - 7.0, - 15.0, - 3.0); + let m = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 13.0, + 7.0, + 15.0, + 3.0, + ); let mut vm = Vector::new(14.0, 46.0, 58.0); vm.co.set_3(90.5); assert_eq!(v * m, vm); @@ -239,22 +242,24 @@ mod tests { #[test] fn mul_matrix_2() { let v = Vector::new(1.0, 2.5, 4.0); - let m = Matrix4x4::new_from_values(1.0, - 2.0, - 2.0, - 1.5, - 3.0, - 6.0, - 7.0, - 8.0, - 9.0, - 2.0, - 11.0, - 12.0, - 0.0, - 0.0, - 0.0, - 1.0); + let m = Matrix4x4::new_from_values( + 1.0, + 2.0, + 2.0, + 1.5, + 3.0, + 6.0, + 7.0, + 8.0, + 9.0, + 2.0, + 11.0, + 12.0, + 0.0, + 0.0, + 0.0, + 1.0, + ); let vm = Vector::new(14.0, 46.0, 58.0); assert_eq!(v * m, vm); } diff --git a/sub_crates/mem_arena/src/lib.rs b/sub_crates/mem_arena/src/lib.rs index d22f711..d9c5aab 100644 --- a/sub_crates/mem_arena/src/lib.rs +++ b/sub_crates/mem_arena/src/lib.rs @@ -137,9 +137,7 @@ impl MemArena { /// the type's inherent alignment, whichever is greater. /// /// CAUTION: the memory returned is uninitialized. Make sure to initalize before using! - pub unsafe fn alloc_uninitialized_with_alignment<'a, T: Copy>(&'a self, - align: usize) - -> &'a mut T { + pub unsafe fn alloc_uninitialized_with_alignment<'a, T: Copy>(&'a self, align: usize) -> &'a mut T { assert!(size_of::() > 0); let memory = self.alloc_raw(size_of::(), max(align, align_of::())) as *mut T; @@ -164,11 +162,7 @@ impl MemArena { /// /// Additionally, the allocation will be made with the given byte alignment or /// the type's inherent alignment, whichever is greater. - pub fn alloc_array_with_alignment<'a, T: Copy>(&'a self, - len: usize, - value: T, - align: usize) - -> &'a mut [T] { + pub fn alloc_array_with_alignment<'a, T: Copy>(&'a self, len: usize, value: T, align: usize) -> &'a mut [T] { let memory = unsafe { self.alloc_array_uninitialized_with_alignment(len, align) }; for v in memory.iter_mut() { @@ -195,10 +189,7 @@ impl MemArena { /// /// Additionally, the allocation will be made with the given byte alignment or /// the type's inherent alignment, whichever is greater. - pub fn copy_slice_with_alignment<'a, T: Copy>(&'a self, - other: &[T], - align: usize) - -> &'a mut [T] { + pub fn copy_slice_with_alignment<'a, T: Copy>(&'a self, other: &[T], align: usize) -> &'a mut [T] { let memory = unsafe { self.alloc_array_uninitialized_with_alignment(other.len(), align) }; for (v, other) in memory.iter_mut().zip(other.iter()) { @@ -231,10 +222,7 @@ impl MemArena { /// the type's inherent alignment, whichever is greater. /// /// CAUTION: the memory returned is uninitialized. Make sure to initalize before using! - pub unsafe fn alloc_array_uninitialized_with_alignment<'a, T: Copy>(&'a self, - len: usize, - align: usize) - -> &'a mut [T] { + pub unsafe fn alloc_array_uninitialized_with_alignment<'a, T: Copy>(&'a self, len: usize, align: usize) -> &'a mut [T] { assert!(size_of::() > 0); let array_mem_size = { @@ -257,7 +245,8 @@ impl MemArena { unsafe fn alloc_raw(&self, size: usize, alignment: usize) -> *mut u8 { assert!(alignment > 0); - self.stat_space_allocated.set(self.stat_space_allocated.get() + size); // Update stats + self.stat_space_allocated + .set(self.stat_space_allocated.get() + size); // Update stats let mut blocks = self.blocks.borrow_mut(); @@ -295,10 +284,8 @@ impl MemArena { }; let waste_percentage = { - let w1 = ((blocks[0].capacity() - blocks[0].len()) * 100) / - blocks[0].capacity(); - let w2 = ((self.stat_space_occupied.get() - self.stat_space_allocated.get()) * - 100) / self.stat_space_occupied.get(); + let w1 = ((blocks[0].capacity() - blocks[0].len()) * 100) / blocks[0].capacity(); + let w2 = ((self.stat_space_occupied.get() - self.stat_space_allocated.get()) * 100) / self.stat_space_occupied.get(); if w1 < w2 { w1 } else { w2 } }; @@ -311,8 +298,7 @@ impl MemArena { blocks.push(Vec::with_capacity(size + alignment - 1)); blocks.last_mut().unwrap().set_len(size + alignment - 1); - let start_index = alignment_offset(blocks.last().unwrap().as_ptr() as usize, - alignment); + let start_index = alignment_offset(blocks.last().unwrap().as_ptr() as usize, alignment); let block_ptr = blocks.last_mut().unwrap().as_mut_ptr(); return block_ptr.offset(start_index as isize); @@ -320,14 +306,14 @@ impl MemArena { // Otherwise create a new shared block. else { // Update stats - self.stat_space_occupied.set(self.stat_space_occupied.get() + next_size); + self.stat_space_occupied + .set(self.stat_space_occupied.get() + next_size); blocks.push(Vec::with_capacity(next_size)); let block_count = blocks.len(); blocks.swap(0, block_count - 1); - let start_index = alignment_offset(blocks.first().unwrap().as_ptr() as usize, - alignment); + let start_index = alignment_offset(blocks.first().unwrap().as_ptr() as usize, alignment); blocks.first_mut().unwrap().set_len(start_index + size); diff --git a/sub_crates/spectra_xyz/src/lib.rs b/sub_crates/spectra_xyz/src/lib.rs index 814385d..4162941 100644 --- a/sub_crates/spectra_xyz/src/lib.rs +++ b/sub_crates/spectra_xyz/src/lib.rs @@ -6,8 +6,7 @@ use std::f32; /// Evaluate the spectrum for xyz at the given wavelength. -pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 -{ +pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 { assert!(lambda >= SPECTRUM_SAMPLE_MIN); assert!(lambda <= SPECTRUM_SAMPLE_MAX); @@ -19,12 +18,8 @@ pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 return 0.0; } }; - - let xyy = ( - xyz.0 * norm, - xyz.1 * norm, - xyz.1, - ); + + let xyy = (xyz.0 * norm, xyz.1 * norm, xyz.1); // rotate to align with grid let uv = spectrum_xy_to_uv((xyy.0, xyy.1)); @@ -35,30 +30,34 @@ pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 let uvi = (uv.0 as i32, uv.1 as i32); assert!(uvi.0 < SPECTRUM_GRID_WIDTH); assert!(uvi.1 < SPECTRUM_GRID_HEIGHT); - + let cell_idx: i32 = uvi.0 + SPECTRUM_GRID_WIDTH * uvi.1; assert!(cell_idx < SPECTRUM_GRID_WIDTH * SPECTRUM_GRID_HEIGHT); assert!(cell_idx >= 0); - + let cell = &SPECTRUM_GRID[cell_idx as usize]; let inside: bool = cell.inside; let idx = &cell.idx; let num: i32 = cell.num_points; - + // if the cell has no points, nothing we can do, so return 0 if num == 0 { return 0.0; } - + // get linearly interpolated spectral power for the corner vertices: // this clamping is only necessary if lambda is not sure to be >= SPECTRUM_SAMPLE_MIN and <= SPECTRUM_SAMPLE_MAX: let sb: f32 = /*(SPECTRUM_NUM_SAMPLES as f32 - 1e-4).min(0.0.max(*/ (lambda - SPECTRUM_SAMPLE_MIN) / (SPECTRUM_SAMPLE_MAX - SPECTRUM_SAMPLE_MIN) * (SPECTRUM_NUM_SAMPLES as f32 - 1.0)/*))*/; assert!(sb >= 0.0); assert!(sb <= SPECTRUM_NUM_SAMPLES as f32); - + let mut p = [0.0f32; 6]; let sb0: i32 = sb as i32; - let sb1: i32 = if (sb + 1.0) < SPECTRUM_NUM_SAMPLES as f32 { sb as i32 + 1 } else { SPECTRUM_NUM_SAMPLES - 1 }; + let sb1: i32 = if (sb + 1.0) < SPECTRUM_NUM_SAMPLES as f32 { + sb as i32 + 1 + } else { + SPECTRUM_NUM_SAMPLES - 1 + }; let sbf: f32 = sb as f32 - sb0 as f32; for i in 0..(num as usize) { assert!(idx[i] >= 0); @@ -67,23 +66,22 @@ pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 let spectrum = &SPECTRUM_DATA_POINTS[idx[i] as usize].spectrum; p[i] = spectrum[sb0 as usize] * (1.0 - sbf) + spectrum[sb1 as usize] * sbf; } - + let mut interpolated_p: f32 = 0.0; - - if inside { // fast path for normal inner quads: + + if inside { + // fast path for normal inner quads: let uv2 = (uv.0 - uvi.0 as f32, uv.1 - uvi.1 as f32); - + assert!(uv2.0 >= 0.0 && uv2.0 <= 1.0); assert!(uv2.1 >= 0.0 && uv2.1 <= 1.0); - + // the layout of the vertices in the quad is: // 2 3 // 0 1 - interpolated_p = p[0] * (1.0 - uv2.0) * (1.0 - uv2.1) + - p[2] * (1.0 - uv2.0) * uv2.1 + - p[3] * uv2.0 * uv2.1 + - p[1] * uv2.0 * (1.0 - uv2.1); - } else { // need to go through triangulation :( + interpolated_p = p[0] * (1.0 - uv2.0) * (1.0 - uv2.1) + p[2] * (1.0 - uv2.0) * uv2.1 + p[3] * uv2.0 * uv2.1 + p[1] * uv2.0 * (1.0 - uv2.1); + } else { + // need to go through triangulation :( // we get the indices in such an order that they form a triangle fan around idx[0]. // compute barycentric coordinates of our xy* point for all triangles in the fan: let ex: f32 = uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0; @@ -91,21 +89,20 @@ pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 let mut e0x: f32 = SPECTRUM_DATA_POINTS[idx[1] as usize].uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0; let mut e0y: f32 = SPECTRUM_DATA_POINTS[idx[1] as usize].uv.1 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.1; let mut uu: f32 = e0x * ey - ex * e0y; - + for i in 0..(num as usize - 1) { - let (e1x, e1y): (f32, f32) = if i as i32 == (num - 2) { // close the circle - (SPECTRUM_DATA_POINTS[idx[1] as usize].uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0, - SPECTRUM_DATA_POINTS[idx[1] as usize].uv.1 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.1) + let (e1x, e1y): (f32, f32) = if i as i32 == (num - 2) { + // close the circle + (SPECTRUM_DATA_POINTS[idx[1] as usize].uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0, SPECTRUM_DATA_POINTS[idx[1] as usize].uv.1 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.1) } else { - (SPECTRUM_DATA_POINTS[idx[i+2] as usize].uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0, - SPECTRUM_DATA_POINTS[idx[i+2] as usize].uv.1 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.1) + (SPECTRUM_DATA_POINTS[idx[i + 2] as usize].uv.0 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.0, SPECTRUM_DATA_POINTS[idx[i + 2] as usize].uv.1 - SPECTRUM_DATA_POINTS[idx[0] as usize].uv.1) }; - + let vv: f32 = ex * e1y - e1x * ey; - + // TODO: with some sign magic, this division could be deferred to the last iteration! let area: f32 = e0x * e1y - e1x * e0y; - // normalise + // normalise let u: f32 = uu / area; let v: f32 = vv / area; let w: f32 = 1.0 - u - v; @@ -116,13 +113,13 @@ pub fn spectrum_xyz_to_p(lambda: f32, xyz: (f32, f32, f32)) -> f32 e0y = e1y; continue; } - + // This seems to be the triangle we've been looking for. interpolated_p = p[0] * w + p[i + 1] * v + p[if i as i32 == (num - 2) { 1 } else { i + 2 }] * u; break; } } - + // now we have a spectrum which corresponds to the xy chromaticities of the input. need to scale according to the // input brightness X+Y+Z now: return interpolated_p / norm; @@ -146,26 +143,41 @@ const SPECTRUM_NUM_SAMPLES: i32 = 95; // xy* color space. const SPECTRUM_MAT_XY_TO_XYSTAR: [f32; 6] = [ - 0.9067484787957371, 0.4216719058718719, -0.44280679488920294, - -0.4216719058718719, 0.9067484787957371, -0.1616921909746217 + 0.9067484787957371, + 0.4216719058718719, + -0.44280679488920294, + -0.4216719058718719, + 0.9067484787957371, + -0.1616921909746217, ]; const SPECTRUM_MAT_XYSTAR_TO_XY: [f32; 6] = [ - 0.9067484787957371, -0.4216719058718719, 0.3333333333333333, - 0.4216719058718719, 0.9067484787957371, 0.3333333333333333 + 0.9067484787957371, + -0.4216719058718719, + 0.3333333333333333, + 0.4216719058718719, + 0.9067484787957371, + 0.3333333333333333, ]; // uv color space. const SPECTRUM_MAT_XY_TO_UV: [f32; 6] = [ - 16.730260708356887, 7.7801960340706, -2.170152247475828, - -7.530081094743006, 16.192422314095225, 1.1125529268825942 + 16.730260708356887, + 7.7801960340706, + -2.170152247475828, + -7.530081094743006, + 16.192422314095225, + 1.1125529268825942, ]; const SPECTRUM_MAT_UV_TO_XY: [f32; 6] = [ - 0.0491440520940413, -0.02361291916573777, 0.13292069743203658, - 0.022853819546830627, 0.05077639329371236, -0.0068951571224999215 + 0.0491440520940413, + -0.02361291916573777, + 0.13292069743203658, + 0.022853819546830627, + 0.05077639329371236, + -0.0068951571224999215, ]; // apply a 3x2 matrix to a 2D color. fn spectrum_apply_3x2(matrix: &[f32; 6], src: (f32, f32)) -> (f32, f32) { - (matrix[0] * src.0 + matrix[1] * src.1 + matrix[2], - matrix[3] * src.0 + matrix[4] * src.1 + matrix[5]) + (matrix[0] * src.0 + matrix[1] * src.1 + matrix[2], matrix[3] * src.0 + matrix[4] * src.1 + matrix[5]) } // Concrete conversion routines. fn spectrum_xy_to_xystar(xy: (f32, f32)) -> (f32, f32) { @@ -186,178 +198,850 @@ fn spectrum_uv_to_xy(uv: (f32, f32)) -> (f32, f32) { struct SpectrumGridCell { inside: bool, num_points: i32, - idx: [i32; 6], + idx: [i32; 6], } const SPECTRUM_GRID: [SpectrumGridCell; 168] = [ - SpectrumGridCell { inside: false, num_points: 5, idx: [148, 110, 0, 12, 111, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [0, 1, 12, 13, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [1, 2, 13, 14, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [2, 3, 14, 15, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [3, 4, 15, 16, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [4, 5, 16, 17, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [5, 6, 17, 18, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [6, 7, 18, 19, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [7, 8, 19, 20, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [8, 9, 20, 21, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [9, 10, 21, 22, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [149, 10, 11, 145, 22, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [150, 111, 12, 23, 112, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [12, 13, 23, 24, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [13, 14, 24, 25, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [14, 15, 25, 26, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [15, 16, 26, 27, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [16, 17, 27, 28, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [17, 18, 28, 29, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [18, 19, 29, 30, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [19, 20, 30, 31, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [20, 21, 31, 32, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [21, 22, 32, 33, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [151, 22, 145, 146, 33, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [152, 112, 23, 34, 113, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [23, 24, 34, 35, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [24, 25, 35, 36, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [25, 26, 36, 37, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [26, 27, 37, 38, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [27, 28, 38, 39, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [28, 29, 39, 40, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [29, 30, 40, 41, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [30, 31, 41, 42, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [31, 32, 42, 43, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [153, 32, 33, 147, 141, 43] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [154, 33, 146, 147, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [155, 113, 34, 44, 114, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [34, 35, 44, 45, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [35, 36, 45, 46, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [36, 37, 46, 47, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [37, 38, 47, 48, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [38, 39, 48, 49, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [39, 40, 49, 50, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [40, 41, 50, 51, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [41, 42, 51, 52, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [42, 43, 52, 53, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [156, 43, 141, 142, 53, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [157, 114, 44, 54, 115, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [44, 45, 54, 55, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [45, 46, 55, 56, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [46, 47, 56, 57, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [47, 48, 57, 58, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [48, 49, 58, 59, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [49, 50, 59, 60, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [50, 51, 60, 61, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [51, 52, 61, 62, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [52, 53, 62, 63, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [158, 53, 142, 143, 63, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [159, 115, 54, 116, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [160, 116, 54, 55, 64, 117] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [55, 56, 64, 65, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [56, 57, 65, 66, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [57, 58, 66, 67, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [58, 59, 67, 68, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [59, 60, 68, 69, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [60, 61, 69, 70, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [61, 62, 70, 71, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [161, 62, 63, 144, 138, 71] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [162, 63, 143, 144, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [163, 117, 64, 72, 118, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [64, 65, 72, 73, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [65, 66, 73, 74, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [66, 67, 74, 75, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [67, 68, 75, 76, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [68, 69, 76, 77, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [69, 70, 77, 78, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [70, 71, 78, 79, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [164, 71, 138, 139, 79, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [165, 118, 72, 80, 119, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [72, 73, 80, 81, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [73, 74, 81, 82, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [74, 75, 82, 83, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [75, 76, 83, 84, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [76, 77, 84, 85, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [77, 78, 85, 86, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [166, 78, 79, 140, 134, 86] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [167, 79, 139, 140, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [168, 119, 80, 120, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [169, 80, 81, 87, 121, 120] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [81, 82, 87, 88, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [82, 83, 88, 89, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [83, 84, 89, 90, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [84, 85, 90, 91, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [85, 86, 91, 92, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [170, 86, 134, 135, 92, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [171, 121, 87, 93, 122, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [87, 88, 93, 94, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [88, 89, 94, 95, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [89, 90, 95, 96, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [90, 91, 96, 97, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [91, 92, 97, 98, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [172, 92, 135, 136, 98, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [173, 122, 93, 99, 123, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [93, 94, 99, 100, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [94, 95, 100, 101, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [95, 96, 101, 102, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [96, 97, 102, 103, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [174, 97, 98, 137, 131, 103] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [175, 98, 136, 137, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [176, 123, 99, 124, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [177, 124, 99, 100, 104, 125] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [100, 101, 104, 105, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [101, 102, 105, 106, -1, -1] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [102, 103, 106, 107, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [178, 103, 131, 132, 107, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [179, 125, 104, 126, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [180, 104, 105, 108, 127, 126] }, - SpectrumGridCell { inside: true, num_points: 4, idx: [105, 106, 108, 109, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 6, idx: [181, 106, 107, 133, 129, 109] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [182, 107, 132, 133, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [183, 127, 108, 128, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 5, idx: [184, 108, 109, 130, 128, -1] }, - SpectrumGridCell { inside: false, num_points: 4, idx: [185, 109, 129, 130, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] }, - SpectrumGridCell { inside: false, num_points: 0, idx: [-1, -1, -1, -1, -1, -1] } + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [148, 110, 0, 12, 111, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [0, 1, 12, 13, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [1, 2, 13, 14, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [2, 3, 14, 15, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [3, 4, 15, 16, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [4, 5, 16, 17, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [5, 6, 17, 18, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [6, 7, 18, 19, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [7, 8, 19, 20, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [8, 9, 20, 21, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [9, 10, 21, 22, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [149, 10, 11, 145, 22, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [150, 111, 12, 23, 112, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [12, 13, 23, 24, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [13, 14, 24, 25, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [14, 15, 25, 26, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [15, 16, 26, 27, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [16, 17, 27, 28, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [17, 18, 28, 29, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [18, 19, 29, 30, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [19, 20, 30, 31, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [20, 21, 31, 32, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [21, 22, 32, 33, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [151, 22, 145, 146, 33, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [152, 112, 23, 34, 113, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [23, 24, 34, 35, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [24, 25, 35, 36, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [25, 26, 36, 37, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [26, 27, 37, 38, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [27, 28, 38, 39, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [28, 29, 39, 40, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [29, 30, 40, 41, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [30, 31, 41, 42, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [31, 32, 42, 43, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [153, 32, 33, 147, 141, 43], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [154, 33, 146, 147, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [155, 113, 34, 44, 114, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [34, 35, 44, 45, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [35, 36, 45, 46, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [36, 37, 46, 47, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [37, 38, 47, 48, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [38, 39, 48, 49, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [39, 40, 49, 50, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [40, 41, 50, 51, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [41, 42, 51, 52, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [42, 43, 52, 53, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [156, 43, 141, 142, 53, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [157, 114, 44, 54, 115, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [44, 45, 54, 55, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [45, 46, 55, 56, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [46, 47, 56, 57, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [47, 48, 57, 58, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [48, 49, 58, 59, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [49, 50, 59, 60, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [50, 51, 60, 61, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [51, 52, 61, 62, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [52, 53, 62, 63, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [158, 53, 142, 143, 63, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [159, 115, 54, 116, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [160, 116, 54, 55, 64, 117], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [55, 56, 64, 65, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [56, 57, 65, 66, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [57, 58, 66, 67, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [58, 59, 67, 68, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [59, 60, 68, 69, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [60, 61, 69, 70, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [61, 62, 70, 71, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [161, 62, 63, 144, 138, 71], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [162, 63, 143, 144, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [163, 117, 64, 72, 118, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [64, 65, 72, 73, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [65, 66, 73, 74, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [66, 67, 74, 75, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [67, 68, 75, 76, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [68, 69, 76, 77, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [69, 70, 77, 78, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [70, 71, 78, 79, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [164, 71, 138, 139, 79, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [165, 118, 72, 80, 119, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [72, 73, 80, 81, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [73, 74, 81, 82, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [74, 75, 82, 83, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [75, 76, 83, 84, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [76, 77, 84, 85, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [77, 78, 85, 86, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [166, 78, 79, 140, 134, 86], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [167, 79, 139, 140, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [168, 119, 80, 120, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [169, 80, 81, 87, 121, 120], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [81, 82, 87, 88, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [82, 83, 88, 89, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [83, 84, 89, 90, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [84, 85, 90, 91, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [85, 86, 91, 92, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [170, 86, 134, 135, 92, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [171, 121, 87, 93, 122, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [87, 88, 93, 94, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [88, 89, 94, 95, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [89, 90, 95, 96, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [90, 91, 96, 97, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [91, 92, 97, 98, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [172, 92, 135, 136, 98, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [173, 122, 93, 99, 123, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [93, 94, 99, 100, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [94, 95, 100, 101, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [95, 96, 101, 102, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [96, 97, 102, 103, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [174, 97, 98, 137, 131, 103], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [175, 98, 136, 137, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [176, 123, 99, 124, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [177, 124, 99, 100, 104, 125], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [100, 101, 104, 105, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [101, 102, 105, 106, -1, -1], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [102, 103, 106, 107, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [178, 103, 131, 132, 107, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [179, 125, 104, 126, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [180, 104, 105, 108, 127, 126], + }, + SpectrumGridCell { + inside: true, + num_points: 4, + idx: [105, 106, 108, 109, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 6, + idx: [181, 106, 107, 133, 129, 109], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [182, 107, 132, 133, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [183, 127, 108, 128, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 5, + idx: [184, 108, 109, 130, 128, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 4, + idx: [185, 109, 129, 130, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, + SpectrumGridCell { + inside: false, + num_points: 0, + idx: [-1, -1, -1, -1, -1, -1], + }, ]; // Grid data points. @@ -378,947 +1062,19179 @@ const SPECTRUM_DATA_POINTS: [SpectrumDataPoint; 186] = [ SpectrumDataPoint { xystar: (-0.27099054061447164, -0.22399328802249138), uv: (0.9999999999999991, 0.0), - spectrum: [0.023575, 0.023575, 0.023574, 0.023571, 0.023565, 0.023554, 0.023534, 0.023498, 0.023433, 0.023312, 0.023102, 0.022727, 0.022062, 0.020919, 0.019066, 0.016400, 0.013015, 0.009187, 0.005332, 0.002029, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000067, 0.000577, 0.001244, 0.001906, 0.002492, 0.002971, 0.003344, 0.003630, 0.003844, 0.004001, 0.004113, 0.004195, 0.004253, 0.004292, 0.004320, 0.004341, 0.004355, 0.004364, 0.004372, 0.004377, 0.004380, 0.004382, 0.004384, 0.004384, 0.004385, 0.004386, 0.004386, 0.004386, 0.004386, 0.004386, 0.004386, 0.004387, 0.004386, 0.004386, 0.004386, 0.004386, 0.004386, 0.004385, 0.004385, 0.004385], + spectrum: [ + 0.023575, + 0.023575, + 0.023574, + 0.023571, + 0.023565, + 0.023554, + 0.023534, + 0.023498, + 0.023433, + 0.023312, + 0.023102, + 0.022727, + 0.022062, + 0.020919, + 0.019066, + 0.016400, + 0.013015, + 0.009187, + 0.005332, + 0.002029, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000067, + 0.000577, + 0.001244, + 0.001906, + 0.002492, + 0.002971, + 0.003344, + 0.003630, + 0.003844, + 0.004001, + 0.004113, + 0.004195, + 0.004253, + 0.004292, + 0.004320, + 0.004341, + 0.004355, + 0.004364, + 0.004372, + 0.004377, + 0.004380, + 0.004382, + 0.004384, + 0.004384, + 0.004385, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004387, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004385, + 0.004385, + 0.004385, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, -0.22399328802249138), uv: (2.0, 0.0), - spectrum: [0.023280, 0.023278, 0.023276, 0.023274, 0.023269, 0.023257, 0.023234, 0.023192, 0.023117, 0.022980, 0.022742, 0.022316, 0.021562, 0.020267, 0.018190, 0.015247, 0.011585, 0.007577, 0.003781, 0.000946, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000849, 0.002453, 0.004291, 0.006055, 0.007590, 0.008848, 0.009834, 0.010583, 0.011142, 0.011555, 0.011858, 0.012073, 0.012225, 0.012334, 0.012411, 0.012465, 0.012504, 0.012530, 0.012548, 0.012561, 0.012570, 0.012578, 0.012582, 0.012584, 0.012584, 0.012585, 0.012587, 0.012588, 0.012587, 0.012585, 0.012584, 0.012585, 0.012586, 0.012586, 0.012586, 0.012587, 0.012587, 0.012588, 0.012589, 0.012590, 0.012589], + spectrum: [ + 0.023280, + 0.023278, + 0.023276, + 0.023274, + 0.023269, + 0.023257, + 0.023234, + 0.023192, + 0.023117, + 0.022980, + 0.022742, + 0.022316, + 0.021562, + 0.020267, + 0.018190, + 0.015247, + 0.011585, + 0.007577, + 0.003781, + 0.000946, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000849, + 0.002453, + 0.004291, + 0.006055, + 0.007590, + 0.008848, + 0.009834, + 0.010583, + 0.011142, + 0.011555, + 0.011858, + 0.012073, + 0.012225, + 0.012334, + 0.012411, + 0.012465, + 0.012504, + 0.012530, + 0.012548, + 0.012561, + 0.012570, + 0.012578, + 0.012582, + 0.012584, + 0.012584, + 0.012585, + 0.012587, + 0.012588, + 0.012587, + 0.012585, + 0.012584, + 0.012585, + 0.012586, + 0.012586, + 0.012586, + 0.012587, + 0.012587, + 0.012588, + 0.012589, + 0.012590, + 0.012589, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, -0.22399328802249138), uv: (3.0, 0.0), - spectrum: [0.023405, 0.023403, 0.023400, 0.023396, 0.023388, 0.023374, 0.023346, 0.023297, 0.023208, 0.023044, 0.022762, 0.022258, 0.021368, 0.019846, 0.017428, 0.014056, 0.009975, 0.005715, 0.002048, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000048, 0.002031, 0.004876, 0.007897, 0.010699, 0.013091, 0.015029, 0.016537, 0.017676, 0.018522, 0.019145, 0.019599, 0.019922, 0.020152, 0.020314, 0.020429, 0.020510, 0.020567, 0.020608, 0.020637, 0.020657, 0.020671, 0.020680, 0.020685, 0.020690, 0.020694, 0.020697, 0.020700, 0.020701, 0.020701, 0.020702, 0.020702, 0.020702, 0.020703, 0.020702, 0.020702, 0.020701, 0.020702, 0.020702, 0.020703, 0.020704, 0.020704], + spectrum: [ + 0.023405, + 0.023403, + 0.023400, + 0.023396, + 0.023388, + 0.023374, + 0.023346, + 0.023297, + 0.023208, + 0.023044, + 0.022762, + 0.022258, + 0.021368, + 0.019846, + 0.017428, + 0.014056, + 0.009975, + 0.005715, + 0.002048, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000048, + 0.002031, + 0.004876, + 0.007897, + 0.010699, + 0.013091, + 0.015029, + 0.016537, + 0.017676, + 0.018522, + 0.019145, + 0.019599, + 0.019922, + 0.020152, + 0.020314, + 0.020429, + 0.020510, + 0.020567, + 0.020608, + 0.020637, + 0.020657, + 0.020671, + 0.020680, + 0.020685, + 0.020690, + 0.020694, + 0.020697, + 0.020700, + 0.020701, + 0.020701, + 0.020702, + 0.020702, + 0.020702, + 0.020703, + 0.020702, + 0.020702, + 0.020701, + 0.020702, + 0.020702, + 0.020703, + 0.020704, + 0.020704, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, -0.22399328802249138), uv: (4.0, 0.0), - spectrum: [0.023957, 0.023957, 0.023954, 0.023950, 0.023940, 0.023922, 0.023888, 0.023825, 0.023711, 0.023506, 0.023153, 0.022523, 0.021414, 0.019529, 0.016578, 0.012563, 0.007906, 0.003431, 0.000288, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002783, 0.006879, 0.011267, 0.015355, 0.018852, 0.021687, 0.023894, 0.025564, 0.026807, 0.027722, 0.028387, 0.028862, 0.029198, 0.029436, 0.029606, 0.029726, 0.029811, 0.029872, 0.029914, 0.029943, 0.029963, 0.029977, 0.029987, 0.029994, 0.029999, 0.030002, 0.030004, 0.030004, 0.030005, 0.030007, 0.030008, 0.030009, 0.030009, 0.030009, 0.030010, 0.030010, 0.030010, 0.030010, 0.030009, 0.030009, 0.030009], + spectrum: [ + 0.023957, + 0.023957, + 0.023954, + 0.023950, + 0.023940, + 0.023922, + 0.023888, + 0.023825, + 0.023711, + 0.023506, + 0.023153, + 0.022523, + 0.021414, + 0.019529, + 0.016578, + 0.012563, + 0.007906, + 0.003431, + 0.000288, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002783, + 0.006879, + 0.011267, + 0.015355, + 0.018852, + 0.021687, + 0.023894, + 0.025564, + 0.026807, + 0.027722, + 0.028387, + 0.028862, + 0.029198, + 0.029436, + 0.029606, + 0.029726, + 0.029811, + 0.029872, + 0.029914, + 0.029943, + 0.029963, + 0.029977, + 0.029987, + 0.029994, + 0.029999, + 0.030002, + 0.030004, + 0.030004, + 0.030005, + 0.030007, + 0.030008, + 0.030009, + 0.030009, + 0.030009, + 0.030010, + 0.030010, + 0.030010, + 0.030010, + 0.030009, + 0.030009, + 0.030009, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, -0.22399328802249138), uv: (5.0, 0.0), - spectrum: [0.024728, 0.024726, 0.024723, 0.024715, 0.024702, 0.024677, 0.024633, 0.024552, 0.024405, 0.024135, 0.023669, 0.022845, 0.021408, 0.018992, 0.015295, 0.010469, 0.005302, 0.001183, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002776, 0.008050, 0.014104, 0.019921, 0.024986, 0.029137, 0.032391, 0.034861, 0.036705, 0.038067, 0.039062, 0.039773, 0.040276, 0.040634, 0.040888, 0.041069, 0.041197, 0.041286, 0.041348, 0.041392, 0.041422, 0.041442, 0.041457, 0.041467, 0.041474, 0.041480, 0.041483, 0.041485, 0.041487, 0.041489, 0.041491, 0.041491, 0.041491, 0.041491, 0.041491, 0.041491, 0.041491, 0.041490, 0.041490, 0.041490, 0.041490], + spectrum: [ + 0.024728, + 0.024726, + 0.024723, + 0.024715, + 0.024702, + 0.024677, + 0.024633, + 0.024552, + 0.024405, + 0.024135, + 0.023669, + 0.022845, + 0.021408, + 0.018992, + 0.015295, + 0.010469, + 0.005302, + 0.001183, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002776, + 0.008050, + 0.014104, + 0.019921, + 0.024986, + 0.029137, + 0.032391, + 0.034861, + 0.036705, + 0.038067, + 0.039062, + 0.039773, + 0.040276, + 0.040634, + 0.040888, + 0.041069, + 0.041197, + 0.041286, + 0.041348, + 0.041392, + 0.041422, + 0.041442, + 0.041457, + 0.041467, + 0.041474, + 0.041480, + 0.041483, + 0.041485, + 0.041487, + 0.041489, + 0.041491, + 0.041491, + 0.041491, + 0.041491, + 0.041491, + 0.041491, + 0.041491, + 0.041490, + 0.041490, + 0.041490, + 0.041490, + ], }, SpectrumDataPoint { xystar: (0.0, -0.22399328802249138), uv: (6.0, 0.0), - spectrum: [0.025078, 0.025076, 0.025072, 0.025063, 0.025045, 0.025013, 0.024956, 0.024853, 0.024667, 0.024327, 0.023739, 0.022706, 0.020912, 0.017934, 0.013498, 0.008006, 0.002777, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002130, 0.008537, 0.016516, 0.024438, 0.031454, 0.037262, 0.041845, 0.045339, 0.047956, 0.049893, 0.051309, 0.052324, 0.053043, 0.053554, 0.053918, 0.054177, 0.054359, 0.054487, 0.054577, 0.054640, 0.054684, 0.054714, 0.054736, 0.054750, 0.054761, 0.054768, 0.054773, 0.054777, 0.054779, 0.054780, 0.054781, 0.054782, 0.054783, 0.054783, 0.054783, 0.054784, 0.054784, 0.054784, 0.054784, 0.054783, 0.054784], + spectrum: [ + 0.025078, + 0.025076, + 0.025072, + 0.025063, + 0.025045, + 0.025013, + 0.024956, + 0.024853, + 0.024667, + 0.024327, + 0.023739, + 0.022706, + 0.020912, + 0.017934, + 0.013498, + 0.008006, + 0.002777, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002130, + 0.008537, + 0.016516, + 0.024438, + 0.031454, + 0.037262, + 0.041845, + 0.045339, + 0.047956, + 0.049893, + 0.051309, + 0.052324, + 0.053043, + 0.053554, + 0.053918, + 0.054177, + 0.054359, + 0.054487, + 0.054577, + 0.054640, + 0.054684, + 0.054714, + 0.054736, + 0.054750, + 0.054761, + 0.054768, + 0.054773, + 0.054777, + 0.054779, + 0.054780, + 0.054781, + 0.054782, + 0.054783, + 0.054783, + 0.054783, + 0.054784, + 0.054784, + 0.054784, + 0.054784, + 0.054783, + 0.054784, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, -0.22399328802249138), uv: (7.000000000000001, 0.0), - spectrum: [0.024931, 0.024929, 0.024924, 0.024914, 0.024893, 0.024854, 0.024784, 0.024657, 0.024429, 0.024014, 0.023300, 0.022048, 0.019887, 0.016344, 0.011221, 0.005254, 0.000451, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000935, 0.008435, 0.018559, 0.028909, 0.038207, 0.045969, 0.052127, 0.056839, 0.060376, 0.062999, 0.064919, 0.066295, 0.067272, 0.067967, 0.068462, 0.068813, 0.069061, 0.069235, 0.069358, 0.069444, 0.069503, 0.069544, 0.069573, 0.069594, 0.069607, 0.069617, 0.069624, 0.069629, 0.069633, 0.069635, 0.069637, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639, 0.069639], + spectrum: [ + 0.024931, + 0.024929, + 0.024924, + 0.024914, + 0.024893, + 0.024854, + 0.024784, + 0.024657, + 0.024429, + 0.024014, + 0.023300, + 0.022048, + 0.019887, + 0.016344, + 0.011221, + 0.005254, + 0.000451, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000935, + 0.008435, + 0.018559, + 0.028909, + 0.038207, + 0.045969, + 0.052127, + 0.056839, + 0.060376, + 0.062999, + 0.064919, + 0.066295, + 0.067272, + 0.067967, + 0.068462, + 0.068813, + 0.069061, + 0.069235, + 0.069358, + 0.069444, + 0.069503, + 0.069544, + 0.069573, + 0.069594, + 0.069607, + 0.069617, + 0.069624, + 0.069629, + 0.069633, + 0.069635, + 0.069637, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + 0.069639, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, -0.22399328802249138), uv: (8.0, 0.0), - spectrum: [0.023903, 0.023900, 0.023894, 0.023881, 0.023856, 0.023808, 0.023723, 0.023570, 0.023296, 0.022795, 0.021938, 0.020448, 0.017902, 0.013818, 0.008231, 0.002550, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.007273, 0.019410, 0.032632, 0.044862, 0.055243, 0.063561, 0.069970, 0.074804, 0.078402, 0.081043, 0.082941, 0.084288, 0.085247, 0.085931, 0.086416, 0.086758, 0.087000, 0.087169, 0.087288, 0.087370, 0.087428, 0.087467, 0.087495, 0.087514, 0.087528, 0.087538, 0.087545, 0.087550, 0.087553, 0.087555, 0.087556, 0.087556, 0.087556, 0.087556, 0.087556, 0.087557, 0.087557, 0.087557, 0.087556, 0.087557], + spectrum: [ + 0.023903, + 0.023900, + 0.023894, + 0.023881, + 0.023856, + 0.023808, + 0.023723, + 0.023570, + 0.023296, + 0.022795, + 0.021938, + 0.020448, + 0.017902, + 0.013818, + 0.008231, + 0.002550, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.007273, + 0.019410, + 0.032632, + 0.044862, + 0.055243, + 0.063561, + 0.069970, + 0.074804, + 0.078402, + 0.081043, + 0.082941, + 0.084288, + 0.085247, + 0.085931, + 0.086416, + 0.086758, + 0.087000, + 0.087169, + 0.087288, + 0.087370, + 0.087428, + 0.087467, + 0.087495, + 0.087514, + 0.087528, + 0.087538, + 0.087545, + 0.087550, + 0.087553, + 0.087555, + 0.087556, + 0.087556, + 0.087556, + 0.087556, + 0.087556, + 0.087557, + 0.087557, + 0.087557, + 0.087556, + 0.087557, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, -0.22399328802249138), uv: (9.0, 0.0), - spectrum: [0.022866, 0.022863, 0.022855, 0.022839, 0.022807, 0.022748, 0.022645, 0.022458, 0.022124, 0.021516, 0.020478, 0.018688, 0.015669, 0.010948, 0.004930, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005327, 0.019065, 0.035406, 0.051084, 0.064651, 0.075650, 0.084187, 0.090661, 0.095500, 0.099063, 0.101628, 0.103452, 0.104751, 0.105676, 0.106332, 0.106796, 0.107123, 0.107352, 0.107513, 0.107625, 0.107703, 0.107757, 0.107795, 0.107822, 0.107840, 0.107853, 0.107863, 0.107869, 0.107873, 0.107876, 0.107878, 0.107880, 0.107881, 0.107882, 0.107882, 0.107883, 0.107883, 0.107883, 0.107883, 0.107883], + spectrum: [ + 0.022866, + 0.022863, + 0.022855, + 0.022839, + 0.022807, + 0.022748, + 0.022645, + 0.022458, + 0.022124, + 0.021516, + 0.020478, + 0.018688, + 0.015669, + 0.010948, + 0.004930, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005327, + 0.019065, + 0.035406, + 0.051084, + 0.064651, + 0.075650, + 0.084187, + 0.090661, + 0.095500, + 0.099063, + 0.101628, + 0.103452, + 0.104751, + 0.105676, + 0.106332, + 0.106796, + 0.107123, + 0.107352, + 0.107513, + 0.107625, + 0.107703, + 0.107757, + 0.107795, + 0.107822, + 0.107840, + 0.107853, + 0.107863, + 0.107869, + 0.107873, + 0.107876, + 0.107878, + 0.107880, + 0.107881, + 0.107882, + 0.107882, + 0.107883, + 0.107883, + 0.107883, + 0.107883, + 0.107883, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, -0.22399328802249138), uv: (10.0, 0.0), - spectrum: [0.019140, 0.019137, 0.019128, 0.019110, 0.019076, 0.019012, 0.018899, 0.018696, 0.018337, 0.017684, 0.016577, 0.014692, 0.011577, 0.006932, 0.001819, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002556, 0.017879, 0.037710, 0.057330, 0.074579, 0.088691, 0.099708, 0.108097, 0.114386, 0.119028, 0.122375, 0.124758, 0.126455, 0.127665, 0.128523, 0.129129, 0.129556, 0.129857, 0.130067, 0.130213, 0.130314, 0.130384, 0.130434, 0.130469, 0.130494, 0.130511, 0.130524, 0.130532, 0.130538, 0.130543, 0.130545, 0.130547, 0.130548, 0.130549, 0.130549, 0.130549, 0.130549, 0.130550, 0.130550, 0.130550], + spectrum: [ + 0.019140, + 0.019137, + 0.019128, + 0.019110, + 0.019076, + 0.019012, + 0.018899, + 0.018696, + 0.018337, + 0.017684, + 0.016577, + 0.014692, + 0.011577, + 0.006932, + 0.001819, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002556, + 0.017879, + 0.037710, + 0.057330, + 0.074579, + 0.088691, + 0.099708, + 0.108097, + 0.114386, + 0.119028, + 0.122375, + 0.124758, + 0.126455, + 0.127665, + 0.128523, + 0.129129, + 0.129556, + 0.129857, + 0.130067, + 0.130213, + 0.130314, + 0.130384, + 0.130434, + 0.130469, + 0.130494, + 0.130511, + 0.130524, + 0.130532, + 0.130538, + 0.130543, + 0.130545, + 0.130547, + 0.130548, + 0.130549, + 0.130549, + 0.130549, + 0.130549, + 0.130550, + 0.130550, + 0.130550, + ], }, SpectrumDataPoint { xystar: (0.27099054061447164, -0.22399328802249138), uv: (11.0, 0.0), - spectrum: [0.013761, 0.013757, 0.013748, 0.013730, 0.013696, 0.013633, 0.013521, 0.013321, 0.012968, 0.012331, 0.011262, 0.009486, 0.006656, 0.002812, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.016185, 0.039428, 0.063213, 0.084465, 0.102012, 0.115790, 0.126325, 0.134246, 0.140107, 0.144339, 0.147353, 0.149500, 0.151032, 0.152117, 0.152885, 0.153427, 0.153806, 0.154071, 0.154256, 0.154384, 0.154473, 0.154536, 0.154581, 0.154614, 0.154636, 0.154651, 0.154662, 0.154669, 0.154674, 0.154678, 0.154681, 0.154683, 0.154684, 0.154685, 0.154684, 0.154685, 0.154685, 0.154686, 0.154687], + spectrum: [ + 0.013761, + 0.013757, + 0.013748, + 0.013730, + 0.013696, + 0.013633, + 0.013521, + 0.013321, + 0.012968, + 0.012331, + 0.011262, + 0.009486, + 0.006656, + 0.002812, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.016185, + 0.039428, + 0.063213, + 0.084465, + 0.102012, + 0.115790, + 0.126325, + 0.134246, + 0.140107, + 0.144339, + 0.147353, + 0.149500, + 0.151032, + 0.152117, + 0.152885, + 0.153427, + 0.153806, + 0.154071, + 0.154256, + 0.154384, + 0.154473, + 0.154536, + 0.154581, + 0.154614, + 0.154636, + 0.154651, + 0.154662, + 0.154669, + 0.154674, + 0.154678, + 0.154681, + 0.154683, + 0.154684, + 0.154685, + 0.154684, + 0.154685, + 0.154685, + 0.154686, + 0.154687, + ], }, SpectrumDataPoint { xystar: (0.3251886487373659, -0.22399328802249138), uv: (12.0, 0.0), - spectrum: [0.003893, 0.003891, 0.003884, 0.003870, 0.003846, 0.003800, 0.003722, 0.003585, 0.003356, 0.002951, 0.002309, 0.001377, 0.000247, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.012060, 0.037710, 0.066528, 0.093367, 0.116030, 0.134066, 0.147987, 0.158525, 0.166362, 0.172040, 0.176091, 0.178980, 0.181040, 0.182501, 0.183534, 0.184261, 0.184772, 0.185130, 0.185379, 0.185553, 0.185674, 0.185759, 0.185819, 0.185860, 0.185890, 0.185911, 0.185925, 0.185935, 0.185942, 0.185947, 0.185950, 0.185953, 0.185954, 0.185956, 0.185956, 0.185957, 0.185957, 0.185957, 0.185957], + spectrum: [ + 0.003893, + 0.003891, + 0.003884, + 0.003870, + 0.003846, + 0.003800, + 0.003722, + 0.003585, + 0.003356, + 0.002951, + 0.002309, + 0.001377, + 0.000247, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.012060, + 0.037710, + 0.066528, + 0.093367, + 0.116030, + 0.134066, + 0.147987, + 0.158525, + 0.166362, + 0.172040, + 0.176091, + 0.178980, + 0.181040, + 0.182501, + 0.183534, + 0.184261, + 0.184772, + 0.185130, + 0.185379, + 0.185553, + 0.185674, + 0.185759, + 0.185819, + 0.185860, + 0.185890, + 0.185911, + 0.185925, + 0.185935, + 0.185942, + 0.185947, + 0.185950, + 0.185953, + 0.185954, + 0.185956, + 0.185956, + 0.185957, + 0.185957, + 0.185957, + 0.185957, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, -0.16799496601686853), uv: (0.9999999999999991, 1.0), - spectrum: [0.009112, 0.009112, 0.009112, 0.009112, 0.009112, 0.009111, 0.009111, 0.009109, 0.009107, 0.009103, 0.009095, 0.009081, 0.009054, 0.009003, 0.008917, 0.008781, 0.008589, 0.008337, 0.008025, 0.007656, 0.007231, 0.006756, 0.006238, 0.005686, 0.005112, 0.004527, 0.003941, 0.003362, 0.002797, 0.002260, 0.001759, 0.001304, 0.000905, 0.000572, 0.000311, 0.000128, 0.000024, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000023, 0.000068, 0.000126, 0.000195, 0.000266, 0.000333, 0.000393, 0.000448, 0.000496, 0.000536, 0.000570, 0.000596, 0.000617, 0.000632, 0.000643, 0.000649, 0.000651, 0.000653, 0.000654, 0.000654, 0.000652, 0.000651, 0.000650, 0.000649, 0.000647, 0.000647, 0.000646, 0.000646, 0.000646, 0.000647, 0.000647, 0.000647, 0.000648, 0.000648, 0.000649, 0.000649, 0.000650, 0.000650, 0.000651, 0.000651, 0.000651, 0.000651, 0.000651, 0.000651, 0.000650, 0.000649, 0.000648, 0.000648, 0.000647], + spectrum: [ + 0.009112, + 0.009112, + 0.009112, + 0.009112, + 0.009112, + 0.009111, + 0.009111, + 0.009109, + 0.009107, + 0.009103, + 0.009095, + 0.009081, + 0.009054, + 0.009003, + 0.008917, + 0.008781, + 0.008589, + 0.008337, + 0.008025, + 0.007656, + 0.007231, + 0.006756, + 0.006238, + 0.005686, + 0.005112, + 0.004527, + 0.003941, + 0.003362, + 0.002797, + 0.002260, + 0.001759, + 0.001304, + 0.000905, + 0.000572, + 0.000311, + 0.000128, + 0.000024, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000023, + 0.000068, + 0.000126, + 0.000195, + 0.000266, + 0.000333, + 0.000393, + 0.000448, + 0.000496, + 0.000536, + 0.000570, + 0.000596, + 0.000617, + 0.000632, + 0.000643, + 0.000649, + 0.000651, + 0.000653, + 0.000654, + 0.000654, + 0.000652, + 0.000651, + 0.000650, + 0.000649, + 0.000647, + 0.000647, + 0.000646, + 0.000646, + 0.000646, + 0.000647, + 0.000647, + 0.000647, + 0.000648, + 0.000648, + 0.000649, + 0.000649, + 0.000650, + 0.000650, + 0.000651, + 0.000651, + 0.000651, + 0.000651, + 0.000651, + 0.000651, + 0.000650, + 0.000649, + 0.000648, + 0.000648, + 0.000647, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, -0.16799496601686853), uv: (2.0, 1.0), - spectrum: [0.008348, 0.008348, 0.008348, 0.008348, 0.008348, 0.008347, 0.008347, 0.008345, 0.008344, 0.008339, 0.008330, 0.008315, 0.008287, 0.008239, 0.008156, 0.008026, 0.007842, 0.007601, 0.007304, 0.006952, 0.006548, 0.006098, 0.005606, 0.005085, 0.004543, 0.003994, 0.003446, 0.002908, 0.002388, 0.001897, 0.001443, 0.001038, 0.000689, 0.000406, 0.000194, 0.000059, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000003, 0.000057, 0.000155, 0.000290, 0.000449, 0.000624, 0.000807, 0.000989, 0.001163, 0.001323, 0.001466, 0.001591, 0.001696, 0.001783, 0.001854, 0.001910, 0.001954, 0.001987, 0.002011, 0.002029, 0.002042, 0.002051, 0.002057, 0.002062, 0.002065, 0.002066, 0.002067, 0.002067, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002067, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002068, 0.002067, 0.002067, 0.002066, 0.002066, 0.002066, 0.002066, 0.002066, 0.002066], + spectrum: [ + 0.008348, + 0.008348, + 0.008348, + 0.008348, + 0.008348, + 0.008347, + 0.008347, + 0.008345, + 0.008344, + 0.008339, + 0.008330, + 0.008315, + 0.008287, + 0.008239, + 0.008156, + 0.008026, + 0.007842, + 0.007601, + 0.007304, + 0.006952, + 0.006548, + 0.006098, + 0.005606, + 0.005085, + 0.004543, + 0.003994, + 0.003446, + 0.002908, + 0.002388, + 0.001897, + 0.001443, + 0.001038, + 0.000689, + 0.000406, + 0.000194, + 0.000059, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000003, + 0.000057, + 0.000155, + 0.000290, + 0.000449, + 0.000624, + 0.000807, + 0.000989, + 0.001163, + 0.001323, + 0.001466, + 0.001591, + 0.001696, + 0.001783, + 0.001854, + 0.001910, + 0.001954, + 0.001987, + 0.002011, + 0.002029, + 0.002042, + 0.002051, + 0.002057, + 0.002062, + 0.002065, + 0.002066, + 0.002067, + 0.002067, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002067, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002068, + 0.002067, + 0.002067, + 0.002066, + 0.002066, + 0.002066, + 0.002066, + 0.002066, + 0.002066, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, -0.16799496601686853), uv: (3.0, 1.0), - spectrum: [0.007628, 0.007627, 0.007627, 0.007627, 0.007627, 0.007626, 0.007624, 0.007622, 0.007620, 0.007615, 0.007607, 0.007593, 0.007568, 0.007521, 0.007440, 0.007313, 0.007133, 0.006897, 0.006605, 0.006258, 0.005862, 0.005419, 0.004939, 0.004431, 0.003908, 0.003379, 0.002855, 0.002345, 0.001860, 0.001408, 0.001000, 0.000648, 0.000365, 0.000159, 0.000037, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000035, 0.000136, 0.000294, 0.000499, 0.000739, 0.001004, 0.001280, 0.001557, 0.001826, 0.002078, 0.002309, 0.002513, 0.002688, 0.002837, 0.002960, 0.003059, 0.003137, 0.003198, 0.003244, 0.003279, 0.003304, 0.003322, 0.003334, 0.003343, 0.003349, 0.003353, 0.003356, 0.003358, 0.003359, 0.003359, 0.003359, 0.003360, 0.003359, 0.003359, 0.003359, 0.003359, 0.003359, 0.003359, 0.003360, 0.003361, 0.003361, 0.003362, 0.003362, 0.003363, 0.003363, 0.003363, 0.003363, 0.003362, 0.003361, 0.003361, 0.003360, 0.003360, 0.003359, 0.003359, 0.003358], + spectrum: [ + 0.007628, + 0.007627, + 0.007627, + 0.007627, + 0.007627, + 0.007626, + 0.007624, + 0.007622, + 0.007620, + 0.007615, + 0.007607, + 0.007593, + 0.007568, + 0.007521, + 0.007440, + 0.007313, + 0.007133, + 0.006897, + 0.006605, + 0.006258, + 0.005862, + 0.005419, + 0.004939, + 0.004431, + 0.003908, + 0.003379, + 0.002855, + 0.002345, + 0.001860, + 0.001408, + 0.001000, + 0.000648, + 0.000365, + 0.000159, + 0.000037, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000035, + 0.000136, + 0.000294, + 0.000499, + 0.000739, + 0.001004, + 0.001280, + 0.001557, + 0.001826, + 0.002078, + 0.002309, + 0.002513, + 0.002688, + 0.002837, + 0.002960, + 0.003059, + 0.003137, + 0.003198, + 0.003244, + 0.003279, + 0.003304, + 0.003322, + 0.003334, + 0.003343, + 0.003349, + 0.003353, + 0.003356, + 0.003358, + 0.003359, + 0.003359, + 0.003359, + 0.003360, + 0.003359, + 0.003359, + 0.003359, + 0.003359, + 0.003359, + 0.003359, + 0.003360, + 0.003361, + 0.003361, + 0.003362, + 0.003362, + 0.003363, + 0.003363, + 0.003363, + 0.003363, + 0.003362, + 0.003361, + 0.003361, + 0.003360, + 0.003360, + 0.003359, + 0.003359, + 0.003358, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, -0.16799496601686853), uv: (4.0, 1.0), - spectrum: [0.006988, 0.006988, 0.006987, 0.006987, 0.006986, 0.006984, 0.006984, 0.006982, 0.006981, 0.006975, 0.006966, 0.006948, 0.006918, 0.006864, 0.006777, 0.006643, 0.006455, 0.006208, 0.005906, 0.005552, 0.005149, 0.004706, 0.004227, 0.003722, 0.003208, 0.002695, 0.002195, 0.001715, 0.001271, 0.000871, 0.000532, 0.000265, 0.000083, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000086, 0.000256, 0.000496, 0.000797, 0.001141, 0.001512, 0.001895, 0.002276, 0.002644, 0.002988, 0.003300, 0.003572, 0.003806, 0.004003, 0.004166, 0.004298, 0.004402, 0.004483, 0.004545, 0.004591, 0.004626, 0.004651, 0.004669, 0.004682, 0.004691, 0.004698, 0.004704, 0.004707, 0.004709, 0.004710, 0.004710, 0.004709, 0.004707, 0.004707, 0.004706, 0.004705, 0.004705, 0.004704, 0.004703, 0.004704, 0.004704, 0.004704, 0.004705, 0.004705, 0.004705, 0.004705, 0.004704, 0.004704, 0.004704, 0.004704, 0.004705, 0.004705, 0.004704, 0.004704, 0.004704], + spectrum: [ + 0.006988, + 0.006988, + 0.006987, + 0.006987, + 0.006986, + 0.006984, + 0.006984, + 0.006982, + 0.006981, + 0.006975, + 0.006966, + 0.006948, + 0.006918, + 0.006864, + 0.006777, + 0.006643, + 0.006455, + 0.006208, + 0.005906, + 0.005552, + 0.005149, + 0.004706, + 0.004227, + 0.003722, + 0.003208, + 0.002695, + 0.002195, + 0.001715, + 0.001271, + 0.000871, + 0.000532, + 0.000265, + 0.000083, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000086, + 0.000256, + 0.000496, + 0.000797, + 0.001141, + 0.001512, + 0.001895, + 0.002276, + 0.002644, + 0.002988, + 0.003300, + 0.003572, + 0.003806, + 0.004003, + 0.004166, + 0.004298, + 0.004402, + 0.004483, + 0.004545, + 0.004591, + 0.004626, + 0.004651, + 0.004669, + 0.004682, + 0.004691, + 0.004698, + 0.004704, + 0.004707, + 0.004709, + 0.004710, + 0.004710, + 0.004709, + 0.004707, + 0.004707, + 0.004706, + 0.004705, + 0.004705, + 0.004704, + 0.004703, + 0.004704, + 0.004704, + 0.004704, + 0.004705, + 0.004705, + 0.004705, + 0.004705, + 0.004704, + 0.004704, + 0.004704, + 0.004704, + 0.004705, + 0.004705, + 0.004704, + 0.004704, + 0.004704, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, -0.16799496601686853), uv: (5.0, 1.0), - spectrum: [0.006347, 0.006347, 0.006347, 0.006349, 0.006348, 0.006347, 0.006346, 0.006345, 0.006343, 0.006339, 0.006330, 0.006311, 0.006279, 0.006221, 0.006128, 0.005984, 0.005786, 0.005528, 0.005213, 0.004846, 0.004430, 0.003973, 0.003486, 0.002983, 0.002477, 0.001983, 0.001510, 0.001074, 0.000689, 0.000372, 0.000140, 0.000009, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000088, 0.000291, 0.000592, 0.000976, 0.001424, 0.001913, 0.002423, 0.002933, 0.003424, 0.003886, 0.004307, 0.004681, 0.005001, 0.005271, 0.005492, 0.005671, 0.005812, 0.005919, 0.006002, 0.006063, 0.006110, 0.006144, 0.006169, 0.006185, 0.006197, 0.006208, 0.006215, 0.006219, 0.006221, 0.006222, 0.006222, 0.006223, 0.006224, 0.006223, 0.006222, 0.006222, 0.006221, 0.006219, 0.006219, 0.006219, 0.006219, 0.006219, 0.006219, 0.006219, 0.006218, 0.006219, 0.006220, 0.006221, 0.006220, 0.006220, 0.006221, 0.006222, 0.006223, 0.006223, 0.006223], + spectrum: [ + 0.006347, + 0.006347, + 0.006347, + 0.006349, + 0.006348, + 0.006347, + 0.006346, + 0.006345, + 0.006343, + 0.006339, + 0.006330, + 0.006311, + 0.006279, + 0.006221, + 0.006128, + 0.005984, + 0.005786, + 0.005528, + 0.005213, + 0.004846, + 0.004430, + 0.003973, + 0.003486, + 0.002983, + 0.002477, + 0.001983, + 0.001510, + 0.001074, + 0.000689, + 0.000372, + 0.000140, + 0.000009, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000088, + 0.000291, + 0.000592, + 0.000976, + 0.001424, + 0.001913, + 0.002423, + 0.002933, + 0.003424, + 0.003886, + 0.004307, + 0.004681, + 0.005001, + 0.005271, + 0.005492, + 0.005671, + 0.005812, + 0.005919, + 0.006002, + 0.006063, + 0.006110, + 0.006144, + 0.006169, + 0.006185, + 0.006197, + 0.006208, + 0.006215, + 0.006219, + 0.006221, + 0.006222, + 0.006222, + 0.006223, + 0.006224, + 0.006223, + 0.006222, + 0.006222, + 0.006221, + 0.006219, + 0.006219, + 0.006219, + 0.006219, + 0.006219, + 0.006219, + 0.006219, + 0.006218, + 0.006219, + 0.006220, + 0.006221, + 0.006220, + 0.006220, + 0.006221, + 0.006222, + 0.006223, + 0.006223, + 0.006223, + ], }, SpectrumDataPoint { xystar: (0.0, -0.16799496601686853), uv: (6.0, 1.0), - spectrum: [0.005678, 0.005678, 0.005678, 0.005677, 0.005677, 0.005676, 0.005675, 0.005673, 0.005670, 0.005665, 0.005657, 0.005639, 0.005608, 0.005552, 0.005456, 0.005307, 0.005100, 0.004833, 0.004505, 0.004126, 0.003700, 0.003237, 0.002750, 0.002255, 0.001769, 0.001308, 0.000889, 0.000529, 0.000245, 0.000060, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000012, 0.000199, 0.000537, 0.001000, 0.001560, 0.002186, 0.002850, 0.003522, 0.004177, 0.004796, 0.005361, 0.005864, 0.006297, 0.006663, 0.006964, 0.007207, 0.007399, 0.007548, 0.007660, 0.007744, 0.007805, 0.007849, 0.007881, 0.007904, 0.007921, 0.007932, 0.007940, 0.007945, 0.007949, 0.007951, 0.007952, 0.007953, 0.007953, 0.007953, 0.007954, 0.007954, 0.007955, 0.007956, 0.007956, 0.007956, 0.007957, 0.007956, 0.007956, 0.007956, 0.007954, 0.007953, 0.007952, 0.007952, 0.007952, 0.007952, 0.007952, 0.007952, 0.007952, 0.007953, 0.007953], + spectrum: [ + 0.005678, + 0.005678, + 0.005678, + 0.005677, + 0.005677, + 0.005676, + 0.005675, + 0.005673, + 0.005670, + 0.005665, + 0.005657, + 0.005639, + 0.005608, + 0.005552, + 0.005456, + 0.005307, + 0.005100, + 0.004833, + 0.004505, + 0.004126, + 0.003700, + 0.003237, + 0.002750, + 0.002255, + 0.001769, + 0.001308, + 0.000889, + 0.000529, + 0.000245, + 0.000060, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000012, + 0.000199, + 0.000537, + 0.001000, + 0.001560, + 0.002186, + 0.002850, + 0.003522, + 0.004177, + 0.004796, + 0.005361, + 0.005864, + 0.006297, + 0.006663, + 0.006964, + 0.007207, + 0.007399, + 0.007548, + 0.007660, + 0.007744, + 0.007805, + 0.007849, + 0.007881, + 0.007904, + 0.007921, + 0.007932, + 0.007940, + 0.007945, + 0.007949, + 0.007951, + 0.007952, + 0.007953, + 0.007953, + 0.007953, + 0.007954, + 0.007954, + 0.007955, + 0.007956, + 0.007956, + 0.007956, + 0.007957, + 0.007956, + 0.007956, + 0.007956, + 0.007954, + 0.007953, + 0.007952, + 0.007952, + 0.007952, + 0.007952, + 0.007952, + 0.007952, + 0.007952, + 0.007953, + 0.007953, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, -0.16799496601686853), uv: (7.000000000000001, 1.0), - spectrum: [0.005026, 0.005026, 0.005026, 0.005026, 0.005025, 0.005024, 0.005023, 0.005021, 0.005017, 0.005011, 0.005000, 0.004981, 0.004946, 0.004884, 0.004780, 0.004620, 0.004399, 0.004115, 0.003773, 0.003378, 0.002943, 0.002478, 0.001999, 0.001526, 0.001079, 0.000681, 0.000353, 0.000118, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000078, 0.000389, 0.000894, 0.001553, 0.002323, 0.003160, 0.004024, 0.004877, 0.005688, 0.006434, 0.007100, 0.007677, 0.008166, 0.008568, 0.008894, 0.009153, 0.009353, 0.009505, 0.009619, 0.009702, 0.009762, 0.009805, 0.009835, 0.009857, 0.009872, 0.009882, 0.009890, 0.009895, 0.009898, 0.009900, 0.009902, 0.009903, 0.009904, 0.009904, 0.009905, 0.009905, 0.009906, 0.009906, 0.009906, 0.009906, 0.009906, 0.009906, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905, 0.009905], + spectrum: [ + 0.005026, + 0.005026, + 0.005026, + 0.005026, + 0.005025, + 0.005024, + 0.005023, + 0.005021, + 0.005017, + 0.005011, + 0.005000, + 0.004981, + 0.004946, + 0.004884, + 0.004780, + 0.004620, + 0.004399, + 0.004115, + 0.003773, + 0.003378, + 0.002943, + 0.002478, + 0.001999, + 0.001526, + 0.001079, + 0.000681, + 0.000353, + 0.000118, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000078, + 0.000389, + 0.000894, + 0.001553, + 0.002323, + 0.003160, + 0.004024, + 0.004877, + 0.005688, + 0.006434, + 0.007100, + 0.007677, + 0.008166, + 0.008568, + 0.008894, + 0.009153, + 0.009353, + 0.009505, + 0.009619, + 0.009702, + 0.009762, + 0.009805, + 0.009835, + 0.009857, + 0.009872, + 0.009882, + 0.009890, + 0.009895, + 0.009898, + 0.009900, + 0.009902, + 0.009903, + 0.009904, + 0.009904, + 0.009905, + 0.009905, + 0.009906, + 0.009906, + 0.009906, + 0.009906, + 0.009906, + 0.009906, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + 0.009905, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, -0.16799496601686853), uv: (8.0, 1.0), - spectrum: [0.004322, 0.004322, 0.004322, 0.004322, 0.004321, 0.004319, 0.004318, 0.004317, 0.004313, 0.004307, 0.004297, 0.004276, 0.004239, 0.004173, 0.004062, 0.003892, 0.003658, 0.003360, 0.003006, 0.002604, 0.002168, 0.001716, 0.001266, 0.000845, 0.000480, 0.000198, 0.000027, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000191, 0.000679, 0.001407, 0.002314, 0.003337, 0.004418, 0.005501, 0.006544, 0.007513, 0.008383, 0.009143, 0.009786, 0.010319, 0.010750, 0.011093, 0.011358, 0.011560, 0.011711, 0.011822, 0.011902, 0.011960, 0.012001, 0.012031, 0.012052, 0.012067, 0.012076, 0.012083, 0.012088, 0.012091, 0.012093, 0.012095, 0.012096, 0.012097, 0.012097, 0.012098, 0.012099, 0.012099, 0.012099, 0.012099, 0.012098, 0.012098, 0.012098, 0.012097, 0.012096, 0.012095, 0.012094, 0.012094, 0.012094, 0.012094, 0.012094, 0.012095, 0.012095, 0.012096], + spectrum: [ + 0.004322, + 0.004322, + 0.004322, + 0.004322, + 0.004321, + 0.004319, + 0.004318, + 0.004317, + 0.004313, + 0.004307, + 0.004297, + 0.004276, + 0.004239, + 0.004173, + 0.004062, + 0.003892, + 0.003658, + 0.003360, + 0.003006, + 0.002604, + 0.002168, + 0.001716, + 0.001266, + 0.000845, + 0.000480, + 0.000198, + 0.000027, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000191, + 0.000679, + 0.001407, + 0.002314, + 0.003337, + 0.004418, + 0.005501, + 0.006544, + 0.007513, + 0.008383, + 0.009143, + 0.009786, + 0.010319, + 0.010750, + 0.011093, + 0.011358, + 0.011560, + 0.011711, + 0.011822, + 0.011902, + 0.011960, + 0.012001, + 0.012031, + 0.012052, + 0.012067, + 0.012076, + 0.012083, + 0.012088, + 0.012091, + 0.012093, + 0.012095, + 0.012096, + 0.012097, + 0.012097, + 0.012098, + 0.012099, + 0.012099, + 0.012099, + 0.012099, + 0.012098, + 0.012098, + 0.012098, + 0.012097, + 0.012096, + 0.012095, + 0.012094, + 0.012094, + 0.012094, + 0.012094, + 0.012094, + 0.012095, + 0.012095, + 0.012096, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, -0.16799496601686853), uv: (9.0, 1.0), - spectrum: [0.003529, 0.003529, 0.003529, 0.003529, 0.003528, 0.003527, 0.003526, 0.003524, 0.003520, 0.003512, 0.003499, 0.003477, 0.003438, 0.003368, 0.003253, 0.003079, 0.002842, 0.002544, 0.002194, 0.001806, 0.001399, 0.000995, 0.000622, 0.000306, 0.000087, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000385, 0.001133, 0.002157, 0.003372, 0.004692, 0.006043, 0.007359, 0.008592, 0.009707, 0.010684, 0.011515, 0.012204, 0.012764, 0.013209, 0.013555, 0.013819, 0.014017, 0.014163, 0.014269, 0.014344, 0.014398, 0.014437, 0.014465, 0.014483, 0.014496, 0.014505, 0.014511, 0.014515, 0.014518, 0.014520, 0.014521, 0.014521, 0.014522, 0.014523, 0.014524, 0.014523, 0.014523, 0.014523, 0.014524, 0.014524, 0.014524, 0.014524, 0.014524, 0.014524, 0.014524, 0.014524, 0.014524, 0.014523, 0.014523, 0.014523, 0.014523, 0.014523], + spectrum: [ + 0.003529, + 0.003529, + 0.003529, + 0.003529, + 0.003528, + 0.003527, + 0.003526, + 0.003524, + 0.003520, + 0.003512, + 0.003499, + 0.003477, + 0.003438, + 0.003368, + 0.003253, + 0.003079, + 0.002842, + 0.002544, + 0.002194, + 0.001806, + 0.001399, + 0.000995, + 0.000622, + 0.000306, + 0.000087, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000385, + 0.001133, + 0.002157, + 0.003372, + 0.004692, + 0.006043, + 0.007359, + 0.008592, + 0.009707, + 0.010684, + 0.011515, + 0.012204, + 0.012764, + 0.013209, + 0.013555, + 0.013819, + 0.014017, + 0.014163, + 0.014269, + 0.014344, + 0.014398, + 0.014437, + 0.014465, + 0.014483, + 0.014496, + 0.014505, + 0.014511, + 0.014515, + 0.014518, + 0.014520, + 0.014521, + 0.014521, + 0.014522, + 0.014523, + 0.014524, + 0.014523, + 0.014523, + 0.014523, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014524, + 0.014523, + 0.014523, + 0.014523, + 0.014523, + 0.014523, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, -0.16799496601686853), uv: (10.0, 1.0), - spectrum: [0.002618, 0.002618, 0.002617, 0.002618, 0.002618, 0.002618, 0.002617, 0.002614, 0.002609, 0.002601, 0.002589, 0.002567, 0.002527, 0.002457, 0.002341, 0.002168, 0.001939, 0.001655, 0.001333, 0.000992, 0.000655, 0.000354, 0.000123, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000107, 0.000762, 0.001841, 0.003227, 0.004797, 0.006445, 0.008081, 0.009630, 0.011042, 0.012286, 0.013350, 0.014237, 0.014960, 0.015536, 0.015984, 0.016326, 0.016582, 0.016770, 0.016908, 0.017007, 0.017078, 0.017129, 0.017165, 0.017189, 0.017206, 0.017219, 0.017227, 0.017233, 0.017238, 0.017239, 0.017241, 0.017243, 0.017243, 0.017243, 0.017244, 0.017244, 0.017244, 0.017244, 0.017244, 0.017243, 0.017242, 0.017242, 0.017242, 0.017241, 0.017242, 0.017242, 0.017242, 0.017241, 0.017242, 0.017242, 0.017242, 0.017243], + spectrum: [ + 0.002618, + 0.002618, + 0.002617, + 0.002618, + 0.002618, + 0.002618, + 0.002617, + 0.002614, + 0.002609, + 0.002601, + 0.002589, + 0.002567, + 0.002527, + 0.002457, + 0.002341, + 0.002168, + 0.001939, + 0.001655, + 0.001333, + 0.000992, + 0.000655, + 0.000354, + 0.000123, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000107, + 0.000762, + 0.001841, + 0.003227, + 0.004797, + 0.006445, + 0.008081, + 0.009630, + 0.011042, + 0.012286, + 0.013350, + 0.014237, + 0.014960, + 0.015536, + 0.015984, + 0.016326, + 0.016582, + 0.016770, + 0.016908, + 0.017007, + 0.017078, + 0.017129, + 0.017165, + 0.017189, + 0.017206, + 0.017219, + 0.017227, + 0.017233, + 0.017238, + 0.017239, + 0.017241, + 0.017243, + 0.017243, + 0.017243, + 0.017244, + 0.017244, + 0.017244, + 0.017244, + 0.017244, + 0.017243, + 0.017242, + 0.017242, + 0.017242, + 0.017241, + 0.017242, + 0.017242, + 0.017242, + 0.017241, + 0.017242, + 0.017242, + 0.017242, + 0.017243, + ], }, SpectrumDataPoint { xystar: (0.27099054061447164, -0.16799496601686853), uv: (11.0, 1.0), - spectrum: [0.001462, 0.001462, 0.001462, 0.001461, 0.001461, 0.001460, 0.001459, 0.001456, 0.001452, 0.001446, 0.001434, 0.001412, 0.001375, 0.001314, 0.001214, 0.001070, 0.000885, 0.000671, 0.000445, 0.000235, 0.000074, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000382, 0.001410, 0.002911, 0.004721, 0.006685, 0.008678, 0.010596, 0.012363, 0.013934, 0.015285, 0.016416, 0.017342, 0.018080, 0.018656, 0.019095, 0.019425, 0.019668, 0.019844, 0.019971, 0.020062, 0.020128, 0.020173, 0.020205, 0.020228, 0.020243, 0.020255, 0.020263, 0.020269, 0.020273, 0.020276, 0.020277, 0.020278, 0.020279, 0.020279, 0.020279, 0.020280, 0.020280, 0.020279, 0.020279, 0.020279, 0.020280, 0.020280, 0.020281, 0.020281, 0.020282, 0.020282, 0.020282, 0.020282, 0.020281, 0.020281, 0.020281], + spectrum: [ + 0.001462, + 0.001462, + 0.001462, + 0.001461, + 0.001461, + 0.001460, + 0.001459, + 0.001456, + 0.001452, + 0.001446, + 0.001434, + 0.001412, + 0.001375, + 0.001314, + 0.001214, + 0.001070, + 0.000885, + 0.000671, + 0.000445, + 0.000235, + 0.000074, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000382, + 0.001410, + 0.002911, + 0.004721, + 0.006685, + 0.008678, + 0.010596, + 0.012363, + 0.013934, + 0.015285, + 0.016416, + 0.017342, + 0.018080, + 0.018656, + 0.019095, + 0.019425, + 0.019668, + 0.019844, + 0.019971, + 0.020062, + 0.020128, + 0.020173, + 0.020205, + 0.020228, + 0.020243, + 0.020255, + 0.020263, + 0.020269, + 0.020273, + 0.020276, + 0.020277, + 0.020278, + 0.020279, + 0.020279, + 0.020279, + 0.020280, + 0.020280, + 0.020279, + 0.020279, + 0.020279, + 0.020280, + 0.020280, + 0.020281, + 0.020281, + 0.020282, + 0.020282, + 0.020282, + 0.020282, + 0.020281, + 0.020281, + 0.020281, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, -0.11199664401124569), uv: (0.9999999999999991, 1.9999999999999998), - spectrum: [0.007120, 0.007121, 0.007121, 0.007121, 0.007121, 0.007122, 0.007122, 0.007121, 0.007123, 0.007125, 0.007127, 0.007131, 0.007140, 0.007155, 0.007176, 0.007204, 0.007238, 0.007274, 0.007306, 0.007324, 0.007315, 0.007274, 0.007186, 0.007042, 0.006837, 0.006572, 0.006243, 0.005850, 0.005391, 0.004869, 0.004287, 0.003647, 0.002966, 0.002273, 0.001599, 0.000985, 0.000478, 0.000131, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000], + spectrum: [ + 0.007120, + 0.007121, + 0.007121, + 0.007121, + 0.007121, + 0.007122, + 0.007122, + 0.007121, + 0.007123, + 0.007125, + 0.007127, + 0.007131, + 0.007140, + 0.007155, + 0.007176, + 0.007204, + 0.007238, + 0.007274, + 0.007306, + 0.007324, + 0.007315, + 0.007274, + 0.007186, + 0.007042, + 0.006837, + 0.006572, + 0.006243, + 0.005850, + 0.005391, + 0.004869, + 0.004287, + 0.003647, + 0.002966, + 0.002273, + 0.001599, + 0.000985, + 0.000478, + 0.000131, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, -0.11199664401124569), uv: (2.0, 1.9999999999999998), - spectrum: [0.007476, 0.007476, 0.007475, 0.007476, 0.007475, 0.007475, 0.007473, 0.007471, 0.007469, 0.007467, 0.007464, 0.007456, 0.007441, 0.007412, 0.007361, 0.007280, 0.007164, 0.007010, 0.006820, 0.006593, 0.006330, 0.006034, 0.005711, 0.005364, 0.005002, 0.004629, 0.004251, 0.003874, 0.003501, 0.003137, 0.002785, 0.002451, 0.002138, 0.001849, 0.001588, 0.001356, 0.001155, 0.000984, 0.000843, 0.000729, 0.000644, 0.000583, 0.000546, 0.000527, 0.000525, 0.000539, 0.000562, 0.000594, 0.000628, 0.000664, 0.000699, 0.000733, 0.000763, 0.000788, 0.000811, 0.000828, 0.000842, 0.000852, 0.000859, 0.000865, 0.000871, 0.000874, 0.000876, 0.000878, 0.000880, 0.000881, 0.000881, 0.000881, 0.000880, 0.000880, 0.000880, 0.000879, 0.000878, 0.000878, 0.000879, 0.000880, 0.000879, 0.000878, 0.000879, 0.000880, 0.000881, 0.000881, 0.000880, 0.000880, 0.000882, 0.000883, 0.000882, 0.000882, 0.000881, 0.000882, 0.000881, 0.000880, 0.000879, 0.000878, 0.000878], + spectrum: [ + 0.007476, + 0.007476, + 0.007475, + 0.007476, + 0.007475, + 0.007475, + 0.007473, + 0.007471, + 0.007469, + 0.007467, + 0.007464, + 0.007456, + 0.007441, + 0.007412, + 0.007361, + 0.007280, + 0.007164, + 0.007010, + 0.006820, + 0.006593, + 0.006330, + 0.006034, + 0.005711, + 0.005364, + 0.005002, + 0.004629, + 0.004251, + 0.003874, + 0.003501, + 0.003137, + 0.002785, + 0.002451, + 0.002138, + 0.001849, + 0.001588, + 0.001356, + 0.001155, + 0.000984, + 0.000843, + 0.000729, + 0.000644, + 0.000583, + 0.000546, + 0.000527, + 0.000525, + 0.000539, + 0.000562, + 0.000594, + 0.000628, + 0.000664, + 0.000699, + 0.000733, + 0.000763, + 0.000788, + 0.000811, + 0.000828, + 0.000842, + 0.000852, + 0.000859, + 0.000865, + 0.000871, + 0.000874, + 0.000876, + 0.000878, + 0.000880, + 0.000881, + 0.000881, + 0.000881, + 0.000880, + 0.000880, + 0.000880, + 0.000879, + 0.000878, + 0.000878, + 0.000879, + 0.000880, + 0.000879, + 0.000878, + 0.000879, + 0.000880, + 0.000881, + 0.000881, + 0.000880, + 0.000880, + 0.000882, + 0.000883, + 0.000882, + 0.000882, + 0.000881, + 0.000882, + 0.000881, + 0.000880, + 0.000879, + 0.000878, + 0.000878, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, -0.11199664401124569), uv: (3.0, 1.9999999999999998), - spectrum: [0.006771, 0.006771, 0.006770, 0.006769, 0.006769, 0.006768, 0.006767, 0.006766, 0.006765, 0.006763, 0.006759, 0.006750, 0.006734, 0.006703, 0.006651, 0.006568, 0.006453, 0.006302, 0.006116, 0.005894, 0.005639, 0.005354, 0.005044, 0.004715, 0.004373, 0.004022, 0.003670, 0.003321, 0.002978, 0.002648, 0.002332, 0.002036, 0.001764, 0.001524, 0.001316, 0.001145, 0.001010, 0.000910, 0.000847, 0.000817, 0.000819, 0.000849, 0.000903, 0.000976, 0.001064, 0.001163, 0.001267, 0.001372, 0.001473, 0.001568, 0.001656, 0.001733, 0.001799, 0.001855, 0.001900, 0.001937, 0.001965, 0.001989, 0.002007, 0.002021, 0.002032, 0.002041, 0.002047, 0.002050, 0.002053, 0.002055, 0.002057, 0.002058, 0.002058, 0.002059, 0.002058, 0.002058, 0.002057, 0.002057, 0.002056, 0.002055, 0.002054, 0.002054, 0.002054, 0.002054, 0.002054, 0.002054, 0.002054, 0.002053, 0.002052, 0.002051, 0.002049, 0.002048, 0.002047, 0.002047, 0.002047, 0.002048, 0.002048, 0.002049, 0.002048], + spectrum: [ + 0.006771, + 0.006771, + 0.006770, + 0.006769, + 0.006769, + 0.006768, + 0.006767, + 0.006766, + 0.006765, + 0.006763, + 0.006759, + 0.006750, + 0.006734, + 0.006703, + 0.006651, + 0.006568, + 0.006453, + 0.006302, + 0.006116, + 0.005894, + 0.005639, + 0.005354, + 0.005044, + 0.004715, + 0.004373, + 0.004022, + 0.003670, + 0.003321, + 0.002978, + 0.002648, + 0.002332, + 0.002036, + 0.001764, + 0.001524, + 0.001316, + 0.001145, + 0.001010, + 0.000910, + 0.000847, + 0.000817, + 0.000819, + 0.000849, + 0.000903, + 0.000976, + 0.001064, + 0.001163, + 0.001267, + 0.001372, + 0.001473, + 0.001568, + 0.001656, + 0.001733, + 0.001799, + 0.001855, + 0.001900, + 0.001937, + 0.001965, + 0.001989, + 0.002007, + 0.002021, + 0.002032, + 0.002041, + 0.002047, + 0.002050, + 0.002053, + 0.002055, + 0.002057, + 0.002058, + 0.002058, + 0.002059, + 0.002058, + 0.002058, + 0.002057, + 0.002057, + 0.002056, + 0.002055, + 0.002054, + 0.002054, + 0.002054, + 0.002054, + 0.002054, + 0.002054, + 0.002054, + 0.002053, + 0.002052, + 0.002051, + 0.002049, + 0.002048, + 0.002047, + 0.002047, + 0.002047, + 0.002048, + 0.002048, + 0.002049, + 0.002048, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, -0.11199664401124569), uv: (4.0, 1.9999999999999998), - spectrum: [0.006020, 0.006020, 0.006020, 0.006020, 0.006020, 0.006020, 0.006020, 0.006018, 0.006016, 0.006014, 0.006011, 0.006002, 0.005988, 0.005960, 0.005913, 0.005839, 0.005732, 0.005590, 0.005414, 0.005206, 0.004967, 0.004699, 0.004405, 0.004093, 0.003766, 0.003434, 0.003100, 0.002771, 0.002452, 0.002148, 0.001865, 0.001606, 0.001380, 0.001190, 0.001042, 0.000936, 0.000872, 0.000849, 0.000864, 0.000916, 0.001002, 0.001118, 0.001259, 0.001419, 0.001591, 0.001772, 0.001955, 0.002135, 0.002307, 0.002464, 0.002608, 0.002734, 0.002844, 0.002934, 0.003007, 0.003067, 0.003114, 0.003151, 0.003178, 0.003197, 0.003210, 0.003219, 0.003224, 0.003228, 0.003229, 0.003230, 0.003230, 0.003231, 0.003232, 0.003233, 0.003234, 0.003234, 0.003235, 0.003236, 0.003236, 0.003237, 0.003238, 0.003239, 0.003239, 0.003239, 0.003239, 0.003238, 0.003238, 0.003238, 0.003237, 0.003236, 0.003236, 0.003235, 0.003235, 0.003234, 0.003234, 0.003233, 0.003233, 0.003232, 0.003232], + spectrum: [ + 0.006020, + 0.006020, + 0.006020, + 0.006020, + 0.006020, + 0.006020, + 0.006020, + 0.006018, + 0.006016, + 0.006014, + 0.006011, + 0.006002, + 0.005988, + 0.005960, + 0.005913, + 0.005839, + 0.005732, + 0.005590, + 0.005414, + 0.005206, + 0.004967, + 0.004699, + 0.004405, + 0.004093, + 0.003766, + 0.003434, + 0.003100, + 0.002771, + 0.002452, + 0.002148, + 0.001865, + 0.001606, + 0.001380, + 0.001190, + 0.001042, + 0.000936, + 0.000872, + 0.000849, + 0.000864, + 0.000916, + 0.001002, + 0.001118, + 0.001259, + 0.001419, + 0.001591, + 0.001772, + 0.001955, + 0.002135, + 0.002307, + 0.002464, + 0.002608, + 0.002734, + 0.002844, + 0.002934, + 0.003007, + 0.003067, + 0.003114, + 0.003151, + 0.003178, + 0.003197, + 0.003210, + 0.003219, + 0.003224, + 0.003228, + 0.003229, + 0.003230, + 0.003230, + 0.003231, + 0.003232, + 0.003233, + 0.003234, + 0.003234, + 0.003235, + 0.003236, + 0.003236, + 0.003237, + 0.003238, + 0.003239, + 0.003239, + 0.003239, + 0.003239, + 0.003238, + 0.003238, + 0.003238, + 0.003237, + 0.003236, + 0.003236, + 0.003235, + 0.003235, + 0.003234, + 0.003234, + 0.003233, + 0.003233, + 0.003232, + 0.003232, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, -0.11199664401124569), uv: (5.0, 1.9999999999999998), - spectrum: [0.005330, 0.005330, 0.005330, 0.005330, 0.005329, 0.005330, 0.005330, 0.005330, 0.005329, 0.005325, 0.005319, 0.005309, 0.005293, 0.005262, 0.005212, 0.005135, 0.005026, 0.004886, 0.004714, 0.004511, 0.004278, 0.004016, 0.003732, 0.003432, 0.003121, 0.002808, 0.002495, 0.002191, 0.001901, 0.001629, 0.001384, 0.001170, 0.000995, 0.000861, 0.000773, 0.000732, 0.000739, 0.000791, 0.000886, 0.001021, 0.001192, 0.001396, 0.001625, 0.001872, 0.002131, 0.002394, 0.002655, 0.002908, 0.003145, 0.003364, 0.003557, 0.003727, 0.003873, 0.003994, 0.004093, 0.004172, 0.004234, 0.004283, 0.004319, 0.004346, 0.004364, 0.004378, 0.004387, 0.004394, 0.004398, 0.004401, 0.004404, 0.004405, 0.004406, 0.004407, 0.004408, 0.004408, 0.004407, 0.004407, 0.004407, 0.004407, 0.004407, 0.004406, 0.004407, 0.004406, 0.004405, 0.004406, 0.004406, 0.004405, 0.004405, 0.004405, 0.004405, 0.004405, 0.004406, 0.004406, 0.004406, 0.004406, 0.004405, 0.004405, 0.004405], + spectrum: [ + 0.005330, + 0.005330, + 0.005330, + 0.005330, + 0.005329, + 0.005330, + 0.005330, + 0.005330, + 0.005329, + 0.005325, + 0.005319, + 0.005309, + 0.005293, + 0.005262, + 0.005212, + 0.005135, + 0.005026, + 0.004886, + 0.004714, + 0.004511, + 0.004278, + 0.004016, + 0.003732, + 0.003432, + 0.003121, + 0.002808, + 0.002495, + 0.002191, + 0.001901, + 0.001629, + 0.001384, + 0.001170, + 0.000995, + 0.000861, + 0.000773, + 0.000732, + 0.000739, + 0.000791, + 0.000886, + 0.001021, + 0.001192, + 0.001396, + 0.001625, + 0.001872, + 0.002131, + 0.002394, + 0.002655, + 0.002908, + 0.003145, + 0.003364, + 0.003557, + 0.003727, + 0.003873, + 0.003994, + 0.004093, + 0.004172, + 0.004234, + 0.004283, + 0.004319, + 0.004346, + 0.004364, + 0.004378, + 0.004387, + 0.004394, + 0.004398, + 0.004401, + 0.004404, + 0.004405, + 0.004406, + 0.004407, + 0.004408, + 0.004408, + 0.004407, + 0.004407, + 0.004407, + 0.004407, + 0.004407, + 0.004406, + 0.004407, + 0.004406, + 0.004405, + 0.004406, + 0.004406, + 0.004405, + 0.004405, + 0.004405, + 0.004405, + 0.004405, + 0.004406, + 0.004406, + 0.004406, + 0.004406, + 0.004405, + 0.004405, + 0.004405, + ], }, SpectrumDataPoint { xystar: (0.0, -0.11199664401124569), uv: (6.0, 1.9999999999999998), - spectrum: [0.004609, 0.004609, 0.004609, 0.004609, 0.004608, 0.004607, 0.004607, 0.004606, 0.004605, 0.004603, 0.004599, 0.004591, 0.004575, 0.004546, 0.004498, 0.004425, 0.004321, 0.004186, 0.004018, 0.003818, 0.003592, 0.003339, 0.003066, 0.002780, 0.002486, 0.002190, 0.001901, 0.001623, 0.001362, 0.001123, 0.000915, 0.000743, 0.000614, 0.000531, 0.000501, 0.000525, 0.000601, 0.000729, 0.000904, 0.001122, 0.001380, 0.001670, 0.001987, 0.002322, 0.002666, 0.003012, 0.003351, 0.003678, 0.003982, 0.004259, 0.004508, 0.004723, 0.004908, 0.005061, 0.005186, 0.005286, 0.005367, 0.005427, 0.005472, 0.005506, 0.005530, 0.005547, 0.005558, 0.005567, 0.005574, 0.005579, 0.005582, 0.005585, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005586, 0.005587, 0.005587, 0.005586, 0.005586, 0.005586, 0.005585, 0.005585, 0.005584, 0.005585, 0.005586, 0.005586, 0.005586, 0.005586, 0.005585, 0.005585, 0.005585, 0.005585], + spectrum: [ + 0.004609, + 0.004609, + 0.004609, + 0.004609, + 0.004608, + 0.004607, + 0.004607, + 0.004606, + 0.004605, + 0.004603, + 0.004599, + 0.004591, + 0.004575, + 0.004546, + 0.004498, + 0.004425, + 0.004321, + 0.004186, + 0.004018, + 0.003818, + 0.003592, + 0.003339, + 0.003066, + 0.002780, + 0.002486, + 0.002190, + 0.001901, + 0.001623, + 0.001362, + 0.001123, + 0.000915, + 0.000743, + 0.000614, + 0.000531, + 0.000501, + 0.000525, + 0.000601, + 0.000729, + 0.000904, + 0.001122, + 0.001380, + 0.001670, + 0.001987, + 0.002322, + 0.002666, + 0.003012, + 0.003351, + 0.003678, + 0.003982, + 0.004259, + 0.004508, + 0.004723, + 0.004908, + 0.005061, + 0.005186, + 0.005286, + 0.005367, + 0.005427, + 0.005472, + 0.005506, + 0.005530, + 0.005547, + 0.005558, + 0.005567, + 0.005574, + 0.005579, + 0.005582, + 0.005585, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005587, + 0.005587, + 0.005586, + 0.005586, + 0.005586, + 0.005585, + 0.005585, + 0.005584, + 0.005585, + 0.005586, + 0.005586, + 0.005586, + 0.005586, + 0.005585, + 0.005585, + 0.005585, + 0.005585, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, -0.11199664401124569), uv: (7.000000000000001, 1.9999999999999998), - spectrum: [0.003895, 0.003896, 0.003896, 0.003896, 0.003896, 0.003897, 0.003896, 0.003895, 0.003894, 0.003892, 0.003887, 0.003877, 0.003860, 0.003830, 0.003783, 0.003710, 0.003608, 0.003476, 0.003314, 0.003123, 0.002906, 0.002667, 0.002408, 0.002137, 0.001860, 0.001585, 0.001318, 0.001064, 0.000829, 0.000622, 0.000448, 0.000316, 0.000232, 0.000203, 0.000231, 0.000317, 0.000462, 0.000662, 0.000916, 0.001218, 0.001561, 0.001940, 0.002346, 0.002770, 0.003203, 0.003633, 0.004051, 0.004451, 0.004822, 0.005161, 0.005462, 0.005724, 0.005946, 0.006131, 0.006280, 0.006400, 0.006493, 0.006565, 0.006619, 0.006658, 0.006687, 0.006708, 0.006723, 0.006734, 0.006742, 0.006748, 0.006751, 0.006754, 0.006756, 0.006757, 0.006758, 0.006758, 0.006758, 0.006758, 0.006758, 0.006757, 0.006757, 0.006756, 0.006755, 0.006755, 0.006755, 0.006754, 0.006754, 0.006755, 0.006755, 0.006754, 0.006754, 0.006754, 0.006754, 0.006754, 0.006754, 0.006754, 0.006754, 0.006755, 0.006755], + spectrum: [ + 0.003895, + 0.003896, + 0.003896, + 0.003896, + 0.003896, + 0.003897, + 0.003896, + 0.003895, + 0.003894, + 0.003892, + 0.003887, + 0.003877, + 0.003860, + 0.003830, + 0.003783, + 0.003710, + 0.003608, + 0.003476, + 0.003314, + 0.003123, + 0.002906, + 0.002667, + 0.002408, + 0.002137, + 0.001860, + 0.001585, + 0.001318, + 0.001064, + 0.000829, + 0.000622, + 0.000448, + 0.000316, + 0.000232, + 0.000203, + 0.000231, + 0.000317, + 0.000462, + 0.000662, + 0.000916, + 0.001218, + 0.001561, + 0.001940, + 0.002346, + 0.002770, + 0.003203, + 0.003633, + 0.004051, + 0.004451, + 0.004822, + 0.005161, + 0.005462, + 0.005724, + 0.005946, + 0.006131, + 0.006280, + 0.006400, + 0.006493, + 0.006565, + 0.006619, + 0.006658, + 0.006687, + 0.006708, + 0.006723, + 0.006734, + 0.006742, + 0.006748, + 0.006751, + 0.006754, + 0.006756, + 0.006757, + 0.006758, + 0.006758, + 0.006758, + 0.006758, + 0.006758, + 0.006757, + 0.006757, + 0.006756, + 0.006755, + 0.006755, + 0.006755, + 0.006754, + 0.006754, + 0.006755, + 0.006755, + 0.006754, + 0.006754, + 0.006754, + 0.006754, + 0.006754, + 0.006754, + 0.006754, + 0.006754, + 0.006755, + 0.006755, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, -0.11199664401124569), uv: (8.0, 1.9999999999999998), - spectrum: [0.003179, 0.003179, 0.003180, 0.003180, 0.003180, 0.003180, 0.003179, 0.003178, 0.003176, 0.003172, 0.003166, 0.003156, 0.003139, 0.003109, 0.003061, 0.002990, 0.002891, 0.002762, 0.002605, 0.002422, 0.002215, 0.001988, 0.001743, 0.001490, 0.001237, 0.000987, 0.000750, 0.000531, 0.000339, 0.000181, 0.000066, 0.000002, 0.000000, 0.000000, 0.000030, 0.000135, 0.000310, 0.000556, 0.000867, 0.001237, 0.001660, 0.002124, 0.002623, 0.003143, 0.003674, 0.004202, 0.004716, 0.005207, 0.005663, 0.006078, 0.006447, 0.006766, 0.007037, 0.007261, 0.007445, 0.007591, 0.007706, 0.007795, 0.007863, 0.007914, 0.007952, 0.007979, 0.007999, 0.008013, 0.008023, 0.008029, 0.008032, 0.008035, 0.008037, 0.008038, 0.008039, 0.008039, 0.008039, 0.008038, 0.008037, 0.008036, 0.008035, 0.008034, 0.008034, 0.008034, 0.008034, 0.008034, 0.008035, 0.008036, 0.008036, 0.008035, 0.008035, 0.008034, 0.008034, 0.008033, 0.008033, 0.008033, 0.008033, 0.008034, 0.008034], + spectrum: [ + 0.003179, + 0.003179, + 0.003180, + 0.003180, + 0.003180, + 0.003180, + 0.003179, + 0.003178, + 0.003176, + 0.003172, + 0.003166, + 0.003156, + 0.003139, + 0.003109, + 0.003061, + 0.002990, + 0.002891, + 0.002762, + 0.002605, + 0.002422, + 0.002215, + 0.001988, + 0.001743, + 0.001490, + 0.001237, + 0.000987, + 0.000750, + 0.000531, + 0.000339, + 0.000181, + 0.000066, + 0.000002, + 0.000000, + 0.000000, + 0.000030, + 0.000135, + 0.000310, + 0.000556, + 0.000867, + 0.001237, + 0.001660, + 0.002124, + 0.002623, + 0.003143, + 0.003674, + 0.004202, + 0.004716, + 0.005207, + 0.005663, + 0.006078, + 0.006447, + 0.006766, + 0.007037, + 0.007261, + 0.007445, + 0.007591, + 0.007706, + 0.007795, + 0.007863, + 0.007914, + 0.007952, + 0.007979, + 0.007999, + 0.008013, + 0.008023, + 0.008029, + 0.008032, + 0.008035, + 0.008037, + 0.008038, + 0.008039, + 0.008039, + 0.008039, + 0.008038, + 0.008037, + 0.008036, + 0.008035, + 0.008034, + 0.008034, + 0.008034, + 0.008034, + 0.008034, + 0.008035, + 0.008036, + 0.008036, + 0.008035, + 0.008035, + 0.008034, + 0.008034, + 0.008033, + 0.008033, + 0.008033, + 0.008033, + 0.008034, + 0.008034, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, -0.11199664401124569), uv: (9.0, 1.9999999999999998), - spectrum: [0.002410, 0.002410, 0.002410, 0.002410, 0.002409, 0.002409, 0.002408, 0.002407, 0.002406, 0.002404, 0.002399, 0.002391, 0.002376, 0.002348, 0.002304, 0.002236, 0.002141, 0.002019, 0.001870, 0.001698, 0.001506, 0.001299, 0.001085, 0.000869, 0.000660, 0.000465, 0.000294, 0.000154, 0.000053, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000013, 0.000130, 0.000349, 0.000663, 0.001064, 0.001543, 0.002089, 0.002687, 0.003322, 0.003980, 0.004642, 0.005293, 0.005918, 0.006501, 0.007035, 0.007510, 0.007925, 0.008278, 0.008572, 0.008811, 0.009002, 0.009151, 0.009266, 0.009354, 0.009420, 0.009468, 0.009502, 0.009526, 0.009543, 0.009556, 0.009564, 0.009569, 0.009573, 0.009576, 0.009577, 0.009579, 0.009580, 0.009580, 0.009581, 0.009581, 0.009581, 0.009581, 0.009581, 0.009581, 0.009581, 0.009581, 0.009581, 0.009580, 0.009580, 0.009579, 0.009579, 0.009579, 0.009578, 0.009577, 0.009577, 0.009577, 0.009578, 0.009579, 0.009580, 0.009581], + spectrum: [ + 0.002410, + 0.002410, + 0.002410, + 0.002410, + 0.002409, + 0.002409, + 0.002408, + 0.002407, + 0.002406, + 0.002404, + 0.002399, + 0.002391, + 0.002376, + 0.002348, + 0.002304, + 0.002236, + 0.002141, + 0.002019, + 0.001870, + 0.001698, + 0.001506, + 0.001299, + 0.001085, + 0.000869, + 0.000660, + 0.000465, + 0.000294, + 0.000154, + 0.000053, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000013, + 0.000130, + 0.000349, + 0.000663, + 0.001064, + 0.001543, + 0.002089, + 0.002687, + 0.003322, + 0.003980, + 0.004642, + 0.005293, + 0.005918, + 0.006501, + 0.007035, + 0.007510, + 0.007925, + 0.008278, + 0.008572, + 0.008811, + 0.009002, + 0.009151, + 0.009266, + 0.009354, + 0.009420, + 0.009468, + 0.009502, + 0.009526, + 0.009543, + 0.009556, + 0.009564, + 0.009569, + 0.009573, + 0.009576, + 0.009577, + 0.009579, + 0.009580, + 0.009580, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009581, + 0.009580, + 0.009580, + 0.009579, + 0.009579, + 0.009579, + 0.009578, + 0.009577, + 0.009577, + 0.009577, + 0.009578, + 0.009579, + 0.009580, + 0.009581, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, -0.11199664401124569), uv: (10.0, 1.9999999999999998), - spectrum: [0.001571, 0.001571, 0.001571, 0.001572, 0.001572, 0.001571, 0.001571, 0.001571, 0.001570, 0.001567, 0.001563, 0.001555, 0.001541, 0.001518, 0.001478, 0.001417, 0.001334, 0.001229, 0.001102, 0.000958, 0.000801, 0.000639, 0.000477, 0.000324, 0.000191, 0.000086, 0.000019, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000130, 0.000400, 0.000800, 0.001318, 0.001937, 0.002637, 0.003399, 0.004200, 0.005016, 0.005824, 0.006605, 0.007338, 0.008012, 0.008617, 0.009145, 0.009595, 0.009971, 0.010278, 0.010524, 0.010718, 0.010868, 0.010981, 0.011064, 0.011125, 0.011169, 0.011201, 0.011224, 0.011240, 0.011251, 0.011259, 0.011265, 0.011269, 0.011272, 0.011274, 0.011275, 0.011276, 0.011275, 0.011276, 0.011275, 0.011275, 0.011274, 0.011274, 0.011274, 0.011273, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011274, 0.011273, 0.011273, 0.011273, 0.011273], + spectrum: [ + 0.001571, + 0.001571, + 0.001571, + 0.001572, + 0.001572, + 0.001571, + 0.001571, + 0.001571, + 0.001570, + 0.001567, + 0.001563, + 0.001555, + 0.001541, + 0.001518, + 0.001478, + 0.001417, + 0.001334, + 0.001229, + 0.001102, + 0.000958, + 0.000801, + 0.000639, + 0.000477, + 0.000324, + 0.000191, + 0.000086, + 0.000019, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000130, + 0.000400, + 0.000800, + 0.001318, + 0.001937, + 0.002637, + 0.003399, + 0.004200, + 0.005016, + 0.005824, + 0.006605, + 0.007338, + 0.008012, + 0.008617, + 0.009145, + 0.009595, + 0.009971, + 0.010278, + 0.010524, + 0.010718, + 0.010868, + 0.010981, + 0.011064, + 0.011125, + 0.011169, + 0.011201, + 0.011224, + 0.011240, + 0.011251, + 0.011259, + 0.011265, + 0.011269, + 0.011272, + 0.011274, + 0.011275, + 0.011276, + 0.011275, + 0.011276, + 0.011275, + 0.011275, + 0.011274, + 0.011274, + 0.011274, + 0.011273, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011274, + 0.011273, + 0.011273, + 0.011273, + 0.011273, + ], }, SpectrumDataPoint { xystar: (0.27099054061447164, -0.11199664401124569), uv: (11.0, 1.9999999999999998), - spectrum: [0.000577, 0.000577, 0.000578, 0.000580, 0.000582, 0.000583, 0.000584, 0.000583, 0.000581, 0.000578, 0.000574, 0.000568, 0.000558, 0.000542, 0.000514, 0.000474, 0.000422, 0.000356, 0.000284, 0.000206, 0.000130, 0.000066, 0.000018, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000152, 0.000495, 0.001009, 0.001672, 0.002460, 0.003344, 0.004295, 0.005282, 0.006273, 0.007241, 0.008158, 0.009005, 0.009766, 0.010434, 0.011005, 0.011483, 0.011874, 0.012188, 0.012435, 0.012624, 0.012766, 0.012871, 0.012948, 0.013004, 0.013044, 0.013074, 0.013096, 0.013112, 0.013123, 0.013131, 0.013136, 0.013141, 0.013143, 0.013142, 0.013141, 0.013140, 0.013139, 0.013140, 0.013139, 0.013141, 0.013141, 0.013141, 0.013142, 0.013141, 0.013142, 0.013142, 0.013142, 0.013142, 0.013142, 0.013141, 0.013142, 0.013143, 0.013143, 0.013144, 0.013143, 0.013143, 0.013143], + spectrum: [ + 0.000577, + 0.000577, + 0.000578, + 0.000580, + 0.000582, + 0.000583, + 0.000584, + 0.000583, + 0.000581, + 0.000578, + 0.000574, + 0.000568, + 0.000558, + 0.000542, + 0.000514, + 0.000474, + 0.000422, + 0.000356, + 0.000284, + 0.000206, + 0.000130, + 0.000066, + 0.000018, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000152, + 0.000495, + 0.001009, + 0.001672, + 0.002460, + 0.003344, + 0.004295, + 0.005282, + 0.006273, + 0.007241, + 0.008158, + 0.009005, + 0.009766, + 0.010434, + 0.011005, + 0.011483, + 0.011874, + 0.012188, + 0.012435, + 0.012624, + 0.012766, + 0.012871, + 0.012948, + 0.013004, + 0.013044, + 0.013074, + 0.013096, + 0.013112, + 0.013123, + 0.013131, + 0.013136, + 0.013141, + 0.013143, + 0.013142, + 0.013141, + 0.013140, + 0.013139, + 0.013140, + 0.013139, + 0.013141, + 0.013141, + 0.013141, + 0.013142, + 0.013141, + 0.013142, + 0.013142, + 0.013142, + 0.013142, + 0.013142, + 0.013141, + 0.013142, + 0.013143, + 0.013143, + 0.013144, + 0.013143, + 0.013143, + 0.013143, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, -0.05599832200562286), uv: (0.9999999999999991, 2.999999999999999), - spectrum: [0.000957, 0.000958, 0.000957, 0.000958, 0.000959, 0.000961, 0.000967, 0.000977, 0.000994, 0.001028, 0.001083, 0.001179, 0.001346, 0.001632, 0.002099, 0.002790, 0.003714, 0.004851, 0.006154, 0.007554, 0.008965, 0.010288, 0.011420, 0.012276, 0.012792, 0.012927, 0.012661, 0.011995, 0.010942, 0.009517, 0.007762, 0.005768, 0.003708, 0.001834, 0.000469, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000], + spectrum: [ + 0.000957, + 0.000958, + 0.000957, + 0.000958, + 0.000959, + 0.000961, + 0.000967, + 0.000977, + 0.000994, + 0.001028, + 0.001083, + 0.001179, + 0.001346, + 0.001632, + 0.002099, + 0.002790, + 0.003714, + 0.004851, + 0.006154, + 0.007554, + 0.008965, + 0.010288, + 0.011420, + 0.012276, + 0.012792, + 0.012927, + 0.012661, + 0.011995, + 0.010942, + 0.009517, + 0.007762, + 0.005768, + 0.003708, + 0.001834, + 0.000469, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, -0.05599832200562286), uv: (2.0, 2.999999999999999), - spectrum: [0.006672, 0.006673, 0.006672, 0.006673, 0.006672, 0.006672, 0.006671, 0.006671, 0.006670, 0.006669, 0.006667, 0.006663, 0.006655, 0.006640, 0.006614, 0.006575, 0.006517, 0.006441, 0.006347, 0.006233, 0.006100, 0.005949, 0.005781, 0.005597, 0.005399, 0.005190, 0.004970, 0.004743, 0.004509, 0.004269, 0.004021, 0.003768, 0.003509, 0.003246, 0.002982, 0.002716, 0.002451, 0.002187, 0.001926, 0.001672, 0.001427, 0.001194, 0.000975, 0.000771, 0.000588, 0.000425, 0.000288, 0.000177, 0.000092, 0.000033, 0.000002, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.006672, + 0.006673, + 0.006672, + 0.006673, + 0.006672, + 0.006672, + 0.006671, + 0.006671, + 0.006670, + 0.006669, + 0.006667, + 0.006663, + 0.006655, + 0.006640, + 0.006614, + 0.006575, + 0.006517, + 0.006441, + 0.006347, + 0.006233, + 0.006100, + 0.005949, + 0.005781, + 0.005597, + 0.005399, + 0.005190, + 0.004970, + 0.004743, + 0.004509, + 0.004269, + 0.004021, + 0.003768, + 0.003509, + 0.003246, + 0.002982, + 0.002716, + 0.002451, + 0.002187, + 0.001926, + 0.001672, + 0.001427, + 0.001194, + 0.000975, + 0.000771, + 0.000588, + 0.000425, + 0.000288, + 0.000177, + 0.000092, + 0.000033, + 0.000002, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, -0.05599832200562286), uv: (3.0, 2.999999999999999), - spectrum: [0.006014, 0.006014, 0.006015, 0.006015, 0.006014, 0.006014, 0.006014, 0.006013, 0.006012, 0.006011, 0.006009, 0.006005, 0.005998, 0.005983, 0.005956, 0.005913, 0.005852, 0.005771, 0.005670, 0.005548, 0.005407, 0.005248, 0.005073, 0.004886, 0.004688, 0.004484, 0.004276, 0.004064, 0.003851, 0.003637, 0.003426, 0.003217, 0.003013, 0.002814, 0.002624, 0.002443, 0.002271, 0.002110, 0.001960, 0.001822, 0.001694, 0.001578, 0.001472, 0.001377, 0.001292, 0.001215, 0.001148, 0.001090, 0.001039, 0.000996, 0.000959, 0.000928, 0.000902, 0.000882, 0.000867, 0.000855, 0.000845, 0.000838, 0.000833, 0.000829, 0.000827, 0.000825, 0.000824, 0.000822, 0.000822, 0.000821, 0.000821, 0.000820, 0.000819, 0.000818, 0.000818, 0.000817, 0.000816, 0.000816, 0.000816, 0.000816, 0.000815, 0.000815, 0.000815, 0.000814, 0.000814, 0.000814, 0.000814, 0.000814, 0.000814, 0.000814, 0.000814, 0.000814, 0.000813, 0.000813, 0.000813, 0.000812, 0.000812, 0.000812, 0.000812], + spectrum: [ + 0.006014, + 0.006014, + 0.006015, + 0.006015, + 0.006014, + 0.006014, + 0.006014, + 0.006013, + 0.006012, + 0.006011, + 0.006009, + 0.006005, + 0.005998, + 0.005983, + 0.005956, + 0.005913, + 0.005852, + 0.005771, + 0.005670, + 0.005548, + 0.005407, + 0.005248, + 0.005073, + 0.004886, + 0.004688, + 0.004484, + 0.004276, + 0.004064, + 0.003851, + 0.003637, + 0.003426, + 0.003217, + 0.003013, + 0.002814, + 0.002624, + 0.002443, + 0.002271, + 0.002110, + 0.001960, + 0.001822, + 0.001694, + 0.001578, + 0.001472, + 0.001377, + 0.001292, + 0.001215, + 0.001148, + 0.001090, + 0.001039, + 0.000996, + 0.000959, + 0.000928, + 0.000902, + 0.000882, + 0.000867, + 0.000855, + 0.000845, + 0.000838, + 0.000833, + 0.000829, + 0.000827, + 0.000825, + 0.000824, + 0.000822, + 0.000822, + 0.000821, + 0.000821, + 0.000820, + 0.000819, + 0.000818, + 0.000818, + 0.000817, + 0.000816, + 0.000816, + 0.000816, + 0.000816, + 0.000815, + 0.000815, + 0.000815, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000814, + 0.000813, + 0.000813, + 0.000813, + 0.000812, + 0.000812, + 0.000812, + 0.000812, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, -0.05599832200562286), uv: (4.0, 2.999999999999999), - spectrum: [0.005300, 0.005300, 0.005299, 0.005299, 0.005299, 0.005299, 0.005299, 0.005299, 0.005298, 0.005296, 0.005292, 0.005288, 0.005279, 0.005265, 0.005239, 0.005198, 0.005141, 0.005067, 0.004972, 0.004858, 0.004726, 0.004578, 0.004414, 0.004240, 0.004057, 0.003869, 0.003680, 0.003490, 0.003304, 0.003122, 0.002947, 0.002781, 0.002625, 0.002481, 0.002351, 0.002237, 0.002138, 0.002055, 0.001985, 0.001929, 0.001887, 0.001856, 0.001837, 0.001826, 0.001825, 0.001830, 0.001840, 0.001854, 0.001872, 0.001889, 0.001906, 0.001924, 0.001939, 0.001951, 0.001962, 0.001971, 0.001979, 0.001984, 0.001988, 0.001991, 0.001994, 0.001995, 0.001996, 0.001998, 0.001998, 0.001998, 0.001999, 0.001998, 0.001998, 0.001998, 0.001998, 0.001998, 0.001998, 0.001997, 0.001996, 0.001996, 0.001995, 0.001995, 0.001995, 0.001995, 0.001995, 0.001995, 0.001995, 0.001995, 0.001995, 0.001996, 0.001996, 0.001996, 0.001996, 0.001995, 0.001995, 0.001995, 0.001994, 0.001995, 0.001995], + spectrum: [ + 0.005300, + 0.005300, + 0.005299, + 0.005299, + 0.005299, + 0.005299, + 0.005299, + 0.005299, + 0.005298, + 0.005296, + 0.005292, + 0.005288, + 0.005279, + 0.005265, + 0.005239, + 0.005198, + 0.005141, + 0.005067, + 0.004972, + 0.004858, + 0.004726, + 0.004578, + 0.004414, + 0.004240, + 0.004057, + 0.003869, + 0.003680, + 0.003490, + 0.003304, + 0.003122, + 0.002947, + 0.002781, + 0.002625, + 0.002481, + 0.002351, + 0.002237, + 0.002138, + 0.002055, + 0.001985, + 0.001929, + 0.001887, + 0.001856, + 0.001837, + 0.001826, + 0.001825, + 0.001830, + 0.001840, + 0.001854, + 0.001872, + 0.001889, + 0.001906, + 0.001924, + 0.001939, + 0.001951, + 0.001962, + 0.001971, + 0.001979, + 0.001984, + 0.001988, + 0.001991, + 0.001994, + 0.001995, + 0.001996, + 0.001998, + 0.001998, + 0.001998, + 0.001999, + 0.001998, + 0.001998, + 0.001998, + 0.001998, + 0.001998, + 0.001998, + 0.001997, + 0.001996, + 0.001996, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001995, + 0.001996, + 0.001996, + 0.001996, + 0.001996, + 0.001995, + 0.001995, + 0.001995, + 0.001994, + 0.001995, + 0.001995, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, -0.05599832200562286), uv: (5.0, 2.999999999999999), - spectrum: [0.004560, 0.004561, 0.004561, 0.004561, 0.004561, 0.004560, 0.004562, 0.004562, 0.004561, 0.004560, 0.004557, 0.004553, 0.004544, 0.004530, 0.004507, 0.004470, 0.004418, 0.004350, 0.004264, 0.004163, 0.004046, 0.003914, 0.003769, 0.003614, 0.003454, 0.003288, 0.003121, 0.002955, 0.002794, 0.002643, 0.002502, 0.002372, 0.002255, 0.002158, 0.002082, 0.002026, 0.001993, 0.001981, 0.001986, 0.002012, 0.002054, 0.002112, 0.002183, 0.002263, 0.002351, 0.002443, 0.002536, 0.002628, 0.002714, 0.002795, 0.002867, 0.002930, 0.002986, 0.003032, 0.003070, 0.003101, 0.003123, 0.003141, 0.003154, 0.003164, 0.003171, 0.003175, 0.003177, 0.003178, 0.003177, 0.003177, 0.003177, 0.003178, 0.003178, 0.003179, 0.003179, 0.003179, 0.003179, 0.003180, 0.003180, 0.003181, 0.003181, 0.003180, 0.003181, 0.003180, 0.003180, 0.003179, 0.003178, 0.003178, 0.003178, 0.003178, 0.003179, 0.003179, 0.003178, 0.003178, 0.003178, 0.003178, 0.003178, 0.003178, 0.003178], + spectrum: [ + 0.004560, + 0.004561, + 0.004561, + 0.004561, + 0.004561, + 0.004560, + 0.004562, + 0.004562, + 0.004561, + 0.004560, + 0.004557, + 0.004553, + 0.004544, + 0.004530, + 0.004507, + 0.004470, + 0.004418, + 0.004350, + 0.004264, + 0.004163, + 0.004046, + 0.003914, + 0.003769, + 0.003614, + 0.003454, + 0.003288, + 0.003121, + 0.002955, + 0.002794, + 0.002643, + 0.002502, + 0.002372, + 0.002255, + 0.002158, + 0.002082, + 0.002026, + 0.001993, + 0.001981, + 0.001986, + 0.002012, + 0.002054, + 0.002112, + 0.002183, + 0.002263, + 0.002351, + 0.002443, + 0.002536, + 0.002628, + 0.002714, + 0.002795, + 0.002867, + 0.002930, + 0.002986, + 0.003032, + 0.003070, + 0.003101, + 0.003123, + 0.003141, + 0.003154, + 0.003164, + 0.003171, + 0.003175, + 0.003177, + 0.003178, + 0.003177, + 0.003177, + 0.003177, + 0.003178, + 0.003178, + 0.003179, + 0.003179, + 0.003179, + 0.003179, + 0.003180, + 0.003180, + 0.003181, + 0.003181, + 0.003180, + 0.003181, + 0.003180, + 0.003180, + 0.003179, + 0.003178, + 0.003178, + 0.003178, + 0.003178, + 0.003179, + 0.003179, + 0.003178, + 0.003178, + 0.003178, + 0.003178, + 0.003178, + 0.003178, + 0.003178, + ], }, SpectrumDataPoint { xystar: (0.0, -0.05599832200562286), uv: (6.0, 2.999999999999999), - spectrum: [0.003867, 0.003867, 0.003867, 0.003867, 0.003867, 0.003868, 0.003868, 0.003868, 0.003867, 0.003865, 0.003862, 0.003857, 0.003849, 0.003833, 0.003809, 0.003771, 0.003719, 0.003651, 0.003568, 0.003469, 0.003354, 0.003228, 0.003092, 0.002949, 0.002802, 0.002654, 0.002510, 0.002372, 0.002241, 0.002121, 0.002017, 0.001930, 0.001866, 0.001825, 0.001810, 0.001822, 0.001859, 0.001923, 0.002011, 0.002121, 0.002251, 0.002396, 0.002553, 0.002721, 0.002894, 0.003067, 0.003237, 0.003400, 0.003552, 0.003691, 0.003814, 0.003921, 0.004012, 0.004089, 0.004152, 0.004202, 0.004240, 0.004269, 0.004292, 0.004309, 0.004321, 0.004330, 0.004336, 0.004340, 0.004343, 0.004345, 0.004346, 0.004347, 0.004348, 0.004348, 0.004348, 0.004348, 0.004348, 0.004348, 0.004347, 0.004347, 0.004346, 0.004346, 0.004346, 0.004345, 0.004345, 0.004345, 0.004345, 0.004345, 0.004344, 0.004344, 0.004344, 0.004344, 0.004344, 0.004344, 0.004344, 0.004344, 0.004343, 0.004343, 0.004343], + spectrum: [ + 0.003867, + 0.003867, + 0.003867, + 0.003867, + 0.003867, + 0.003868, + 0.003868, + 0.003868, + 0.003867, + 0.003865, + 0.003862, + 0.003857, + 0.003849, + 0.003833, + 0.003809, + 0.003771, + 0.003719, + 0.003651, + 0.003568, + 0.003469, + 0.003354, + 0.003228, + 0.003092, + 0.002949, + 0.002802, + 0.002654, + 0.002510, + 0.002372, + 0.002241, + 0.002121, + 0.002017, + 0.001930, + 0.001866, + 0.001825, + 0.001810, + 0.001822, + 0.001859, + 0.001923, + 0.002011, + 0.002121, + 0.002251, + 0.002396, + 0.002553, + 0.002721, + 0.002894, + 0.003067, + 0.003237, + 0.003400, + 0.003552, + 0.003691, + 0.003814, + 0.003921, + 0.004012, + 0.004089, + 0.004152, + 0.004202, + 0.004240, + 0.004269, + 0.004292, + 0.004309, + 0.004321, + 0.004330, + 0.004336, + 0.004340, + 0.004343, + 0.004345, + 0.004346, + 0.004347, + 0.004348, + 0.004348, + 0.004348, + 0.004348, + 0.004348, + 0.004348, + 0.004347, + 0.004347, + 0.004346, + 0.004346, + 0.004346, + 0.004345, + 0.004345, + 0.004345, + 0.004345, + 0.004345, + 0.004344, + 0.004344, + 0.004344, + 0.004344, + 0.004344, + 0.004344, + 0.004344, + 0.004344, + 0.004343, + 0.004343, + 0.004343, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, -0.05599832200562286), uv: (7.000000000000001, 2.999999999999999), - spectrum: [0.003146, 0.003146, 0.003147, 0.003147, 0.003147, 0.003148, 0.003148, 0.003148, 0.003149, 0.003150, 0.003147, 0.003144, 0.003137, 0.003124, 0.003101, 0.003065, 0.003016, 0.002951, 0.002870, 0.002774, 0.002667, 0.002549, 0.002423, 0.002292, 0.002160, 0.002031, 0.001910, 0.001799, 0.001700, 0.001616, 0.001550, 0.001506, 0.001490, 0.001502, 0.001547, 0.001622, 0.001726, 0.001863, 0.002027, 0.002218, 0.002432, 0.002664, 0.002911, 0.003166, 0.003424, 0.003681, 0.003930, 0.004168, 0.004388, 0.004589, 0.004767, 0.004921, 0.005053, 0.005162, 0.005250, 0.005320, 0.005374, 0.005415, 0.005445, 0.005467, 0.005484, 0.005496, 0.005505, 0.005512, 0.005517, 0.005520, 0.005524, 0.005525, 0.005526, 0.005527, 0.005527, 0.005528, 0.005528, 0.005527, 0.005527, 0.005527, 0.005527, 0.005526, 0.005525, 0.005525, 0.005523, 0.005523, 0.005522, 0.005522, 0.005523, 0.005522, 0.005522, 0.005522, 0.005522, 0.005522, 0.005523, 0.005522, 0.005522, 0.005522, 0.005522], + spectrum: [ + 0.003146, + 0.003146, + 0.003147, + 0.003147, + 0.003147, + 0.003148, + 0.003148, + 0.003148, + 0.003149, + 0.003150, + 0.003147, + 0.003144, + 0.003137, + 0.003124, + 0.003101, + 0.003065, + 0.003016, + 0.002951, + 0.002870, + 0.002774, + 0.002667, + 0.002549, + 0.002423, + 0.002292, + 0.002160, + 0.002031, + 0.001910, + 0.001799, + 0.001700, + 0.001616, + 0.001550, + 0.001506, + 0.001490, + 0.001502, + 0.001547, + 0.001622, + 0.001726, + 0.001863, + 0.002027, + 0.002218, + 0.002432, + 0.002664, + 0.002911, + 0.003166, + 0.003424, + 0.003681, + 0.003930, + 0.004168, + 0.004388, + 0.004589, + 0.004767, + 0.004921, + 0.005053, + 0.005162, + 0.005250, + 0.005320, + 0.005374, + 0.005415, + 0.005445, + 0.005467, + 0.005484, + 0.005496, + 0.005505, + 0.005512, + 0.005517, + 0.005520, + 0.005524, + 0.005525, + 0.005526, + 0.005527, + 0.005527, + 0.005528, + 0.005528, + 0.005527, + 0.005527, + 0.005527, + 0.005527, + 0.005526, + 0.005525, + 0.005525, + 0.005523, + 0.005523, + 0.005522, + 0.005522, + 0.005523, + 0.005522, + 0.005522, + 0.005522, + 0.005522, + 0.005522, + 0.005523, + 0.005522, + 0.005522, + 0.005522, + 0.005522, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, -0.05599832200562286), uv: (8.0, 2.999999999999999), - spectrum: [0.002426, 0.002428, 0.002429, 0.002430, 0.002427, 0.002430, 0.002432, 0.002431, 0.002427, 0.002426, 0.002424, 0.002418, 0.002410, 0.002396, 0.002373, 0.002341, 0.002299, 0.002239, 0.002164, 0.002078, 0.001986, 0.001884, 0.001772, 0.001661, 0.001549, 0.001443, 0.001343, 0.001252, 0.001176, 0.001117, 0.001083, 0.001073, 0.001099, 0.001163, 0.001260, 0.001401, 0.001578, 0.001792, 0.002042, 0.002319, 0.002621, 0.002943, 0.003279, 0.003622, 0.003966, 0.004306, 0.004633, 0.004943, 0.005230, 0.005487, 0.005716, 0.005917, 0.006084, 0.006225, 0.006341, 0.006430, 0.006499, 0.006555, 0.006594, 0.006624, 0.006649, 0.006661, 0.006668, 0.006677, 0.006681, 0.006683, 0.006686, 0.006688, 0.006687, 0.006690, 0.006694, 0.006695, 0.006696, 0.006695, 0.006693, 0.006692, 0.006691, 0.006691, 0.006691, 0.006689, 0.006688, 0.006690, 0.006691, 0.006692, 0.006694, 0.006692, 0.006692, 0.006694, 0.006693, 0.006692, 0.006692, 0.006692, 0.006691, 0.006692, 0.006692], + spectrum: [ + 0.002426, + 0.002428, + 0.002429, + 0.002430, + 0.002427, + 0.002430, + 0.002432, + 0.002431, + 0.002427, + 0.002426, + 0.002424, + 0.002418, + 0.002410, + 0.002396, + 0.002373, + 0.002341, + 0.002299, + 0.002239, + 0.002164, + 0.002078, + 0.001986, + 0.001884, + 0.001772, + 0.001661, + 0.001549, + 0.001443, + 0.001343, + 0.001252, + 0.001176, + 0.001117, + 0.001083, + 0.001073, + 0.001099, + 0.001163, + 0.001260, + 0.001401, + 0.001578, + 0.001792, + 0.002042, + 0.002319, + 0.002621, + 0.002943, + 0.003279, + 0.003622, + 0.003966, + 0.004306, + 0.004633, + 0.004943, + 0.005230, + 0.005487, + 0.005716, + 0.005917, + 0.006084, + 0.006225, + 0.006341, + 0.006430, + 0.006499, + 0.006555, + 0.006594, + 0.006624, + 0.006649, + 0.006661, + 0.006668, + 0.006677, + 0.006681, + 0.006683, + 0.006686, + 0.006688, + 0.006687, + 0.006690, + 0.006694, + 0.006695, + 0.006696, + 0.006695, + 0.006693, + 0.006692, + 0.006691, + 0.006691, + 0.006691, + 0.006689, + 0.006688, + 0.006690, + 0.006691, + 0.006692, + 0.006694, + 0.006692, + 0.006692, + 0.006694, + 0.006693, + 0.006692, + 0.006692, + 0.006692, + 0.006691, + 0.006692, + 0.006692, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, -0.05599832200562286), uv: (9.0, 2.999999999999999), - spectrum: [0.001712, 0.001712, 0.001712, 0.001712, 0.001712, 0.001711, 0.001711, 0.001711, 0.001711, 0.001711, 0.001710, 0.001707, 0.001701, 0.001691, 0.001670, 0.001636, 0.001591, 0.001533, 0.001465, 0.001386, 0.001296, 0.001202, 0.001103, 0.001004, 0.000910, 0.000824, 0.000746, 0.000683, 0.000637, 0.000614, 0.000617, 0.000654, 0.000727, 0.000842, 0.001000, 0.001201, 0.001446, 0.001732, 0.002055, 0.002412, 0.002798, 0.003207, 0.003630, 0.004063, 0.004495, 0.004919, 0.005327, 0.005712, 0.006068, 0.006390, 0.006674, 0.006920, 0.007128, 0.007300, 0.007438, 0.007548, 0.007634, 0.007698, 0.007746, 0.007782, 0.007806, 0.007824, 0.007837, 0.007846, 0.007852, 0.007857, 0.007860, 0.007862, 0.007864, 0.007865, 0.007866, 0.007867, 0.007868, 0.007868, 0.007869, 0.007869, 0.007869, 0.007870, 0.007870, 0.007870, 0.007870, 0.007869, 0.007869, 0.007869, 0.007868, 0.007868, 0.007868, 0.007867, 0.007867, 0.007868, 0.007868, 0.007868, 0.007868, 0.007869, 0.007869], + spectrum: [ + 0.001712, + 0.001712, + 0.001712, + 0.001712, + 0.001712, + 0.001711, + 0.001711, + 0.001711, + 0.001711, + 0.001711, + 0.001710, + 0.001707, + 0.001701, + 0.001691, + 0.001670, + 0.001636, + 0.001591, + 0.001533, + 0.001465, + 0.001386, + 0.001296, + 0.001202, + 0.001103, + 0.001004, + 0.000910, + 0.000824, + 0.000746, + 0.000683, + 0.000637, + 0.000614, + 0.000617, + 0.000654, + 0.000727, + 0.000842, + 0.001000, + 0.001201, + 0.001446, + 0.001732, + 0.002055, + 0.002412, + 0.002798, + 0.003207, + 0.003630, + 0.004063, + 0.004495, + 0.004919, + 0.005327, + 0.005712, + 0.006068, + 0.006390, + 0.006674, + 0.006920, + 0.007128, + 0.007300, + 0.007438, + 0.007548, + 0.007634, + 0.007698, + 0.007746, + 0.007782, + 0.007806, + 0.007824, + 0.007837, + 0.007846, + 0.007852, + 0.007857, + 0.007860, + 0.007862, + 0.007864, + 0.007865, + 0.007866, + 0.007867, + 0.007868, + 0.007868, + 0.007869, + 0.007869, + 0.007869, + 0.007870, + 0.007870, + 0.007870, + 0.007870, + 0.007869, + 0.007869, + 0.007869, + 0.007868, + 0.007868, + 0.007868, + 0.007867, + 0.007867, + 0.007868, + 0.007868, + 0.007868, + 0.007868, + 0.007869, + 0.007869, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, -0.05599832200562286), uv: (10.0, 2.999999999999999), - spectrum: [0.001022, 0.001024, 0.001025, 0.001025, 0.001027, 0.001024, 0.001024, 0.001023, 0.001021, 0.001013, 0.001012, 0.001003, 0.000991, 0.000972, 0.000948, 0.000920, 0.000877, 0.000822, 0.000756, 0.000687, 0.000610, 0.000531, 0.000449, 0.000363, 0.000286, 0.000219, 0.000164, 0.000127, 0.000108, 0.000116, 0.000155, 0.000230, 0.000351, 0.000517, 0.000732, 0.000997, 0.001312, 0.001672, 0.002072, 0.002511, 0.002983, 0.003478, 0.003990, 0.004506, 0.005021, 0.005522, 0.006006, 0.006466, 0.006887, 0.007275, 0.007609, 0.007907, 0.008161, 0.008372, 0.008548, 0.008686, 0.008800, 0.008885, 0.008953, 0.009000, 0.009038, 0.009066, 0.009087, 0.009099, 0.009106, 0.009110, 0.009116, 0.009119, 0.009119, 0.009119, 0.009119, 0.009119, 0.009115, 0.009115, 0.009112, 0.009112, 0.009111, 0.009111, 0.009110, 0.009108, 0.009109, 0.009108, 0.009106, 0.009107, 0.009106, 0.009105, 0.009105, 0.009103, 0.009103, 0.009102, 0.009102, 0.009102, 0.009102, 0.009101, 0.009102], + spectrum: [ + 0.001022, + 0.001024, + 0.001025, + 0.001025, + 0.001027, + 0.001024, + 0.001024, + 0.001023, + 0.001021, + 0.001013, + 0.001012, + 0.001003, + 0.000991, + 0.000972, + 0.000948, + 0.000920, + 0.000877, + 0.000822, + 0.000756, + 0.000687, + 0.000610, + 0.000531, + 0.000449, + 0.000363, + 0.000286, + 0.000219, + 0.000164, + 0.000127, + 0.000108, + 0.000116, + 0.000155, + 0.000230, + 0.000351, + 0.000517, + 0.000732, + 0.000997, + 0.001312, + 0.001672, + 0.002072, + 0.002511, + 0.002983, + 0.003478, + 0.003990, + 0.004506, + 0.005021, + 0.005522, + 0.006006, + 0.006466, + 0.006887, + 0.007275, + 0.007609, + 0.007907, + 0.008161, + 0.008372, + 0.008548, + 0.008686, + 0.008800, + 0.008885, + 0.008953, + 0.009000, + 0.009038, + 0.009066, + 0.009087, + 0.009099, + 0.009106, + 0.009110, + 0.009116, + 0.009119, + 0.009119, + 0.009119, + 0.009119, + 0.009119, + 0.009115, + 0.009115, + 0.009112, + 0.009112, + 0.009111, + 0.009111, + 0.009110, + 0.009108, + 0.009109, + 0.009108, + 0.009106, + 0.009107, + 0.009106, + 0.009105, + 0.009105, + 0.009103, + 0.009103, + 0.009102, + 0.009102, + 0.009102, + 0.009102, + 0.009101, + 0.009102, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, 0.0), uv: (0.9999999999999991, 3.9999999999999996), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000071, 0.001598, 0.004288, 0.007769, 0.011604, 0.015331, 0.018511, 0.020803, 0.021982, 0.021926, 0.020638, 0.018184, 0.014704, 0.010461, 0.005968, 0.002079, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000071, + 0.001598, + 0.004288, + 0.007769, + 0.011604, + 0.015331, + 0.018511, + 0.020803, + 0.021982, + 0.021926, + 0.020638, + 0.018184, + 0.014704, + 0.010461, + 0.005968, + 0.002079, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.0), uv: (2.0, 3.9999999999999996), - spectrum: [0.004842, 0.004842, 0.004843, 0.004843, 0.004843, 0.004844, 0.004845, 0.004846, 0.004849, 0.004852, 0.004859, 0.004872, 0.004893, 0.004933, 0.005000, 0.005100, 0.005236, 0.005408, 0.005613, 0.005842, 0.006084, 0.006328, 0.006566, 0.006782, 0.006964, 0.007102, 0.007186, 0.007210, 0.007163, 0.007035, 0.006815, 0.006496, 0.006070, 0.005541, 0.004920, 0.004228, 0.003491, 0.002736, 0.001995, 0.001306, 0.000715, 0.000268, 0.000013, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.004842, + 0.004842, + 0.004843, + 0.004843, + 0.004843, + 0.004844, + 0.004845, + 0.004846, + 0.004849, + 0.004852, + 0.004859, + 0.004872, + 0.004893, + 0.004933, + 0.005000, + 0.005100, + 0.005236, + 0.005408, + 0.005613, + 0.005842, + 0.006084, + 0.006328, + 0.006566, + 0.006782, + 0.006964, + 0.007102, + 0.007186, + 0.007210, + 0.007163, + 0.007035, + 0.006815, + 0.006496, + 0.006070, + 0.005541, + 0.004920, + 0.004228, + 0.003491, + 0.002736, + 0.001995, + 0.001306, + 0.000715, + 0.000268, + 0.000013, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.0), uv: (3.0, 3.9999999999999996), - spectrum: [0.005225, 0.005225, 0.005225, 0.005225, 0.005226, 0.005227, 0.005226, 0.005227, 0.005227, 0.005228, 0.005227, 0.005228, 0.005227, 0.005228, 0.005226, 0.005224, 0.005220, 0.005213, 0.005204, 0.005192, 0.005177, 0.005157, 0.005132, 0.005099, 0.005060, 0.005012, 0.004957, 0.004893, 0.004816, 0.004725, 0.004620, 0.004496, 0.004351, 0.004188, 0.004001, 0.003794, 0.003567, 0.003321, 0.003060, 0.002789, 0.002510, 0.002226, 0.001942, 0.001663, 0.001394, 0.001140, 0.000904, 0.000690, 0.000503, 0.000347, 0.000219, 0.000123, 0.000055, 0.000015, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002], + spectrum: [ + 0.005225, + 0.005225, + 0.005225, + 0.005225, + 0.005226, + 0.005227, + 0.005226, + 0.005227, + 0.005227, + 0.005228, + 0.005227, + 0.005228, + 0.005227, + 0.005228, + 0.005226, + 0.005224, + 0.005220, + 0.005213, + 0.005204, + 0.005192, + 0.005177, + 0.005157, + 0.005132, + 0.005099, + 0.005060, + 0.005012, + 0.004957, + 0.004893, + 0.004816, + 0.004725, + 0.004620, + 0.004496, + 0.004351, + 0.004188, + 0.004001, + 0.003794, + 0.003567, + 0.003321, + 0.003060, + 0.002789, + 0.002510, + 0.002226, + 0.001942, + 0.001663, + 0.001394, + 0.001140, + 0.000904, + 0.000690, + 0.000503, + 0.000347, + 0.000219, + 0.000123, + 0.000055, + 0.000015, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.0), uv: (4.0, 3.9999999999999996), - spectrum: [0.004583, 0.004582, 0.004582, 0.004582, 0.004582, 0.004582, 0.004582, 0.004582, 0.004582, 0.004581, 0.004578, 0.004574, 0.004571, 0.004565, 0.004558, 0.004550, 0.004541, 0.004530, 0.004517, 0.004500, 0.004481, 0.004460, 0.004436, 0.004407, 0.004372, 0.004331, 0.004286, 0.004235, 0.004178, 0.004115, 0.004043, 0.003963, 0.003873, 0.003770, 0.003657, 0.003534, 0.003397, 0.003251, 0.003094, 0.002929, 0.002759, 0.002584, 0.002408, 0.002232, 0.002059, 0.001892, 0.001732, 0.001582, 0.001445, 0.001321, 0.001212, 0.001117, 0.001038, 0.000973, 0.000920, 0.000877, 0.000844, 0.000818, 0.000798, 0.000783, 0.000773, 0.000765, 0.000760, 0.000757, 0.000755, 0.000754, 0.000752, 0.000751, 0.000750, 0.000749, 0.000748, 0.000747, 0.000746, 0.000745, 0.000745, 0.000744, 0.000743, 0.000742, 0.000741, 0.000740, 0.000739, 0.000739, 0.000739, 0.000739, 0.000739, 0.000741, 0.000741, 0.000741, 0.000742, 0.000742, 0.000741, 0.000741, 0.000740, 0.000740, 0.000740], + spectrum: [ + 0.004583, + 0.004582, + 0.004582, + 0.004582, + 0.004582, + 0.004582, + 0.004582, + 0.004582, + 0.004582, + 0.004581, + 0.004578, + 0.004574, + 0.004571, + 0.004565, + 0.004558, + 0.004550, + 0.004541, + 0.004530, + 0.004517, + 0.004500, + 0.004481, + 0.004460, + 0.004436, + 0.004407, + 0.004372, + 0.004331, + 0.004286, + 0.004235, + 0.004178, + 0.004115, + 0.004043, + 0.003963, + 0.003873, + 0.003770, + 0.003657, + 0.003534, + 0.003397, + 0.003251, + 0.003094, + 0.002929, + 0.002759, + 0.002584, + 0.002408, + 0.002232, + 0.002059, + 0.001892, + 0.001732, + 0.001582, + 0.001445, + 0.001321, + 0.001212, + 0.001117, + 0.001038, + 0.000973, + 0.000920, + 0.000877, + 0.000844, + 0.000818, + 0.000798, + 0.000783, + 0.000773, + 0.000765, + 0.000760, + 0.000757, + 0.000755, + 0.000754, + 0.000752, + 0.000751, + 0.000750, + 0.000749, + 0.000748, + 0.000747, + 0.000746, + 0.000745, + 0.000745, + 0.000744, + 0.000743, + 0.000742, + 0.000741, + 0.000740, + 0.000739, + 0.000739, + 0.000739, + 0.000739, + 0.000739, + 0.000741, + 0.000741, + 0.000741, + 0.000742, + 0.000742, + 0.000741, + 0.000741, + 0.000740, + 0.000740, + 0.000740, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.0), uv: (5.0, 3.9999999999999996), - spectrum: [0.003833, 0.003833, 0.003833, 0.003833, 0.003834, 0.003834, 0.003835, 0.003835, 0.003835, 0.003835, 0.003835, 0.003835, 0.003835, 0.003834, 0.003832, 0.003829, 0.003825, 0.003821, 0.003816, 0.003810, 0.003803, 0.003794, 0.003783, 0.003769, 0.003752, 0.003734, 0.003713, 0.003689, 0.003661, 0.003628, 0.003592, 0.003551, 0.003504, 0.003451, 0.003391, 0.003326, 0.003255, 0.003180, 0.003100, 0.003017, 0.002931, 0.002843, 0.002756, 0.002669, 0.002584, 0.002502, 0.002424, 0.002351, 0.002284, 0.002225, 0.002171, 0.002125, 0.002086, 0.002053, 0.002026, 0.002004, 0.001987, 0.001973, 0.001962, 0.001955, 0.001949, 0.001945, 0.001942, 0.001940, 0.001938, 0.001936, 0.001935, 0.001934, 0.001933, 0.001932, 0.001932, 0.001931, 0.001931, 0.001930, 0.001930, 0.001929, 0.001929, 0.001928, 0.001928, 0.001927, 0.001926, 0.001926, 0.001926, 0.001926, 0.001926, 0.001925, 0.001925, 0.001925, 0.001926, 0.001926, 0.001926, 0.001926, 0.001926, 0.001926, 0.001926], + spectrum: [ + 0.003833, + 0.003833, + 0.003833, + 0.003833, + 0.003834, + 0.003834, + 0.003835, + 0.003835, + 0.003835, + 0.003835, + 0.003835, + 0.003835, + 0.003835, + 0.003834, + 0.003832, + 0.003829, + 0.003825, + 0.003821, + 0.003816, + 0.003810, + 0.003803, + 0.003794, + 0.003783, + 0.003769, + 0.003752, + 0.003734, + 0.003713, + 0.003689, + 0.003661, + 0.003628, + 0.003592, + 0.003551, + 0.003504, + 0.003451, + 0.003391, + 0.003326, + 0.003255, + 0.003180, + 0.003100, + 0.003017, + 0.002931, + 0.002843, + 0.002756, + 0.002669, + 0.002584, + 0.002502, + 0.002424, + 0.002351, + 0.002284, + 0.002225, + 0.002171, + 0.002125, + 0.002086, + 0.002053, + 0.002026, + 0.002004, + 0.001987, + 0.001973, + 0.001962, + 0.001955, + 0.001949, + 0.001945, + 0.001942, + 0.001940, + 0.001938, + 0.001936, + 0.001935, + 0.001934, + 0.001933, + 0.001932, + 0.001932, + 0.001931, + 0.001931, + 0.001930, + 0.001930, + 0.001929, + 0.001929, + 0.001928, + 0.001928, + 0.001927, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + 0.001925, + 0.001925, + 0.001925, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + 0.001926, + ], }, SpectrumDataPoint { xystar: (0.0, 0.0), uv: (6.0, 3.9999999999999996), - spectrum: [0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119, 0.003119], + spectrum: [ + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + 0.003119, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.0), uv: (7.000000000000001, 3.9999999999999996), - spectrum: [0.002415, 0.002415, 0.002415, 0.002415, 0.002414, 0.002413, 0.002413, 0.002413, 0.002413, 0.002413, 0.002413, 0.002414, 0.002413, 0.002411, 0.002410, 0.002408, 0.002410, 0.002411, 0.002414, 0.002420, 0.002428, 0.002438, 0.002451, 0.002468, 0.002487, 0.002508, 0.002531, 0.002558, 0.002587, 0.002620, 0.002657, 0.002696, 0.002740, 0.002790, 0.002847, 0.002910, 0.002979, 0.003053, 0.003133, 0.003217, 0.003303, 0.003392, 0.003480, 0.003569, 0.003656, 0.003739, 0.003818, 0.003891, 0.003958, 0.004020, 0.004073, 0.004119, 0.004157, 0.004189, 0.004213, 0.004232, 0.004247, 0.004259, 0.004267, 0.004273, 0.004277, 0.004279, 0.004281, 0.004282, 0.004282, 0.004283, 0.004283, 0.004283, 0.004284, 0.004284, 0.004284, 0.004284, 0.004285, 0.004284, 0.004284, 0.004284, 0.004283, 0.004283, 0.004282, 0.004282, 0.004281, 0.004280, 0.004280, 0.004279, 0.004279, 0.004279, 0.004278, 0.004278, 0.004278, 0.004278, 0.004277, 0.004277, 0.004277, 0.004277, 0.004277], + spectrum: [ + 0.002415, + 0.002415, + 0.002415, + 0.002415, + 0.002414, + 0.002413, + 0.002413, + 0.002413, + 0.002413, + 0.002413, + 0.002413, + 0.002414, + 0.002413, + 0.002411, + 0.002410, + 0.002408, + 0.002410, + 0.002411, + 0.002414, + 0.002420, + 0.002428, + 0.002438, + 0.002451, + 0.002468, + 0.002487, + 0.002508, + 0.002531, + 0.002558, + 0.002587, + 0.002620, + 0.002657, + 0.002696, + 0.002740, + 0.002790, + 0.002847, + 0.002910, + 0.002979, + 0.003053, + 0.003133, + 0.003217, + 0.003303, + 0.003392, + 0.003480, + 0.003569, + 0.003656, + 0.003739, + 0.003818, + 0.003891, + 0.003958, + 0.004020, + 0.004073, + 0.004119, + 0.004157, + 0.004189, + 0.004213, + 0.004232, + 0.004247, + 0.004259, + 0.004267, + 0.004273, + 0.004277, + 0.004279, + 0.004281, + 0.004282, + 0.004282, + 0.004283, + 0.004283, + 0.004283, + 0.004284, + 0.004284, + 0.004284, + 0.004284, + 0.004285, + 0.004284, + 0.004284, + 0.004284, + 0.004283, + 0.004283, + 0.004282, + 0.004282, + 0.004281, + 0.004280, + 0.004280, + 0.004279, + 0.004279, + 0.004279, + 0.004278, + 0.004278, + 0.004278, + 0.004278, + 0.004277, + 0.004277, + 0.004277, + 0.004277, + 0.004277, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.0), uv: (8.0, 3.9999999999999996), - spectrum: [0.001684, 0.001684, 0.001683, 0.001684, 0.001684, 0.001684, 0.001685, 0.001685, 0.001684, 0.001683, 0.001684, 0.001684, 0.001685, 0.001686, 0.001688, 0.001693, 0.001699, 0.001708, 0.001719, 0.001732, 0.001749, 0.001769, 0.001794, 0.001823, 0.001857, 0.001896, 0.001941, 0.001990, 0.002046, 0.002109, 0.002181, 0.002263, 0.002354, 0.002459, 0.002575, 0.002704, 0.002844, 0.002994, 0.003152, 0.003319, 0.003491, 0.003666, 0.003843, 0.004018, 0.004190, 0.004356, 0.004514, 0.004662, 0.004797, 0.004919, 0.005025, 0.005115, 0.005191, 0.005254, 0.005304, 0.005345, 0.005376, 0.005399, 0.005418, 0.005432, 0.005443, 0.005451, 0.005456, 0.005460, 0.005463, 0.005464, 0.005465, 0.005465, 0.005465, 0.005466, 0.005465, 0.005465, 0.005464, 0.005464, 0.005464, 0.005463, 0.005462, 0.005462, 0.005462, 0.005461, 0.005461, 0.005461, 0.005461, 0.005461, 0.005460, 0.005459, 0.005459, 0.005458, 0.005458, 0.005457, 0.005457, 0.005457, 0.005457, 0.005457, 0.005457], + spectrum: [ + 0.001684, + 0.001684, + 0.001683, + 0.001684, + 0.001684, + 0.001684, + 0.001685, + 0.001685, + 0.001684, + 0.001683, + 0.001684, + 0.001684, + 0.001685, + 0.001686, + 0.001688, + 0.001693, + 0.001699, + 0.001708, + 0.001719, + 0.001732, + 0.001749, + 0.001769, + 0.001794, + 0.001823, + 0.001857, + 0.001896, + 0.001941, + 0.001990, + 0.002046, + 0.002109, + 0.002181, + 0.002263, + 0.002354, + 0.002459, + 0.002575, + 0.002704, + 0.002844, + 0.002994, + 0.003152, + 0.003319, + 0.003491, + 0.003666, + 0.003843, + 0.004018, + 0.004190, + 0.004356, + 0.004514, + 0.004662, + 0.004797, + 0.004919, + 0.005025, + 0.005115, + 0.005191, + 0.005254, + 0.005304, + 0.005345, + 0.005376, + 0.005399, + 0.005418, + 0.005432, + 0.005443, + 0.005451, + 0.005456, + 0.005460, + 0.005463, + 0.005464, + 0.005465, + 0.005465, + 0.005465, + 0.005466, + 0.005465, + 0.005465, + 0.005464, + 0.005464, + 0.005464, + 0.005463, + 0.005462, + 0.005462, + 0.005462, + 0.005461, + 0.005461, + 0.005461, + 0.005461, + 0.005461, + 0.005460, + 0.005459, + 0.005459, + 0.005458, + 0.005458, + 0.005457, + 0.005457, + 0.005457, + 0.005457, + 0.005457, + 0.005457, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, 0.0), uv: (9.0, 3.9999999999999996), - spectrum: [0.000960, 0.000959, 0.000960, 0.000960, 0.000960, 0.000961, 0.000961, 0.000961, 0.000961, 0.000959, 0.000959, 0.000960, 0.000962, 0.000965, 0.000970, 0.000978, 0.000989, 0.001002, 0.001021, 0.001043, 0.001069, 0.001099, 0.001135, 0.001177, 0.001227, 0.001284, 0.001350, 0.001425, 0.001509, 0.001603, 0.001712, 0.001835, 0.001975, 0.002129, 0.002303, 0.002494, 0.002703, 0.002927, 0.003166, 0.003415, 0.003675, 0.003940, 0.004206, 0.004471, 0.004730, 0.004979, 0.005215, 0.005435, 0.005636, 0.005815, 0.005973, 0.006110, 0.006224, 0.006320, 0.006397, 0.006458, 0.006505, 0.006542, 0.006571, 0.006591, 0.006606, 0.006616, 0.006624, 0.006630, 0.006634, 0.006636, 0.006638, 0.006639, 0.006639, 0.006640, 0.006640, 0.006640, 0.006639, 0.006639, 0.006639, 0.006638, 0.006637, 0.006637, 0.006637, 0.006637, 0.006637, 0.006637, 0.006637, 0.006637, 0.006636, 0.006635, 0.006636, 0.006635, 0.006635, 0.006634, 0.006634, 0.006634, 0.006635, 0.006635, 0.006636], + spectrum: [ + 0.000960, + 0.000959, + 0.000960, + 0.000960, + 0.000960, + 0.000961, + 0.000961, + 0.000961, + 0.000961, + 0.000959, + 0.000959, + 0.000960, + 0.000962, + 0.000965, + 0.000970, + 0.000978, + 0.000989, + 0.001002, + 0.001021, + 0.001043, + 0.001069, + 0.001099, + 0.001135, + 0.001177, + 0.001227, + 0.001284, + 0.001350, + 0.001425, + 0.001509, + 0.001603, + 0.001712, + 0.001835, + 0.001975, + 0.002129, + 0.002303, + 0.002494, + 0.002703, + 0.002927, + 0.003166, + 0.003415, + 0.003675, + 0.003940, + 0.004206, + 0.004471, + 0.004730, + 0.004979, + 0.005215, + 0.005435, + 0.005636, + 0.005815, + 0.005973, + 0.006110, + 0.006224, + 0.006320, + 0.006397, + 0.006458, + 0.006505, + 0.006542, + 0.006571, + 0.006591, + 0.006606, + 0.006616, + 0.006624, + 0.006630, + 0.006634, + 0.006636, + 0.006638, + 0.006639, + 0.006639, + 0.006640, + 0.006640, + 0.006640, + 0.006639, + 0.006639, + 0.006639, + 0.006638, + 0.006637, + 0.006637, + 0.006637, + 0.006637, + 0.006637, + 0.006637, + 0.006637, + 0.006637, + 0.006636, + 0.006635, + 0.006636, + 0.006635, + 0.006635, + 0.006634, + 0.006634, + 0.006634, + 0.006635, + 0.006635, + 0.006636, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, 0.0), uv: (10.0, 3.9999999999999996), - spectrum: [0.000240, 0.000240, 0.000241, 0.000241, 0.000242, 0.000244, 0.000246, 0.000248, 0.000249, 0.000250, 0.000249, 0.000251, 0.000254, 0.000256, 0.000259, 0.000265, 0.000278, 0.000296, 0.000317, 0.000345, 0.000380, 0.000422, 0.000472, 0.000531, 0.000599, 0.000676, 0.000763, 0.000862, 0.000973, 0.001099, 0.001241, 0.001404, 0.001589, 0.001798, 0.002031, 0.002287, 0.002566, 0.002866, 0.003184, 0.003517, 0.003862, 0.004212, 0.004566, 0.004918, 0.005263, 0.005595, 0.005911, 0.006205, 0.006475, 0.006717, 0.006929, 0.007112, 0.007265, 0.007391, 0.007493, 0.007574, 0.007635, 0.007681, 0.007714, 0.007737, 0.007753, 0.007763, 0.007771, 0.007777, 0.007782, 0.007786, 0.007791, 0.007795, 0.007796, 0.007798, 0.007800, 0.007801, 0.007800, 0.007799, 0.007797, 0.007796, 0.007796, 0.007797, 0.007797, 0.007798, 0.007798, 0.007798, 0.007798, 0.007798, 0.007799, 0.007800, 0.007800, 0.007801, 0.007802, 0.007802, 0.007802, 0.007803, 0.007803, 0.007803, 0.007804], + spectrum: [ + 0.000240, + 0.000240, + 0.000241, + 0.000241, + 0.000242, + 0.000244, + 0.000246, + 0.000248, + 0.000249, + 0.000250, + 0.000249, + 0.000251, + 0.000254, + 0.000256, + 0.000259, + 0.000265, + 0.000278, + 0.000296, + 0.000317, + 0.000345, + 0.000380, + 0.000422, + 0.000472, + 0.000531, + 0.000599, + 0.000676, + 0.000763, + 0.000862, + 0.000973, + 0.001099, + 0.001241, + 0.001404, + 0.001589, + 0.001798, + 0.002031, + 0.002287, + 0.002566, + 0.002866, + 0.003184, + 0.003517, + 0.003862, + 0.004212, + 0.004566, + 0.004918, + 0.005263, + 0.005595, + 0.005911, + 0.006205, + 0.006475, + 0.006717, + 0.006929, + 0.007112, + 0.007265, + 0.007391, + 0.007493, + 0.007574, + 0.007635, + 0.007681, + 0.007714, + 0.007737, + 0.007753, + 0.007763, + 0.007771, + 0.007777, + 0.007782, + 0.007786, + 0.007791, + 0.007795, + 0.007796, + 0.007798, + 0.007800, + 0.007801, + 0.007800, + 0.007799, + 0.007797, + 0.007796, + 0.007796, + 0.007797, + 0.007797, + 0.007798, + 0.007798, + 0.007798, + 0.007798, + 0.007798, + 0.007799, + 0.007800, + 0.007800, + 0.007801, + 0.007802, + 0.007802, + 0.007802, + 0.007803, + 0.007803, + 0.007803, + 0.007804, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, 0.05599832200562286), uv: (0.9999999999999991, 5.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001414, 0.010027, 0.021396, 0.031903, 0.038994, 0.041104, 0.037951, 0.030090, 0.018983, 0.007336, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001414, + 0.010027, + 0.021396, + 0.031903, + 0.038994, + 0.041104, + 0.037951, + 0.030090, + 0.018983, + 0.007336, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.05599832200562286), uv: (2.0, 5.0), - spectrum: [0.001605, 0.001606, 0.001606, 0.001607, 0.001608, 0.001609, 0.001613, 0.001620, 0.001628, 0.001642, 0.001666, 0.001712, 0.001799, 0.001953, 0.002210, 0.002600, 0.003134, 0.003811, 0.004615, 0.005517, 0.006485, 0.007476, 0.008442, 0.009335, 0.010115, 0.010748, 0.011205, 0.011458, 0.011481, 0.011258, 0.010760, 0.009968, 0.008898, 0.007585, 0.006092, 0.004523, 0.002996, 0.001636, 0.000583, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000002, 0.000000, 0.000000, 0.000001, 0.000000, 0.000002, 0.000002, 0.000002, 0.000003, 0.000002, 0.000004, 0.000003], + spectrum: [ + 0.001605, + 0.001606, + 0.001606, + 0.001607, + 0.001608, + 0.001609, + 0.001613, + 0.001620, + 0.001628, + 0.001642, + 0.001666, + 0.001712, + 0.001799, + 0.001953, + 0.002210, + 0.002600, + 0.003134, + 0.003811, + 0.004615, + 0.005517, + 0.006485, + 0.007476, + 0.008442, + 0.009335, + 0.010115, + 0.010748, + 0.011205, + 0.011458, + 0.011481, + 0.011258, + 0.010760, + 0.009968, + 0.008898, + 0.007585, + 0.006092, + 0.004523, + 0.002996, + 0.001636, + 0.000583, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000002, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000002, + 0.000002, + 0.000002, + 0.000003, + 0.000002, + 0.000004, + 0.000003, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.05599832200562286), uv: (3.0, 5.0), - spectrum: [0.003983, 0.003984, 0.003984, 0.003985, 0.003986, 0.003987, 0.003987, 0.003988, 0.003989, 0.003994, 0.004001, 0.004010, 0.004027, 0.004058, 0.004111, 0.004191, 0.004301, 0.004443, 0.004613, 0.004807, 0.005022, 0.005251, 0.005489, 0.005724, 0.005948, 0.006154, 0.006332, 0.006478, 0.006582, 0.006637, 0.006630, 0.006552, 0.006395, 0.006157, 0.005836, 0.005438, 0.004971, 0.004446, 0.003877, 0.003279, 0.002672, 0.002074, 0.001508, 0.000999, 0.000572, 0.000249, 0.000052, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002], + spectrum: [ + 0.003983, + 0.003984, + 0.003984, + 0.003985, + 0.003986, + 0.003987, + 0.003987, + 0.003988, + 0.003989, + 0.003994, + 0.004001, + 0.004010, + 0.004027, + 0.004058, + 0.004111, + 0.004191, + 0.004301, + 0.004443, + 0.004613, + 0.004807, + 0.005022, + 0.005251, + 0.005489, + 0.005724, + 0.005948, + 0.006154, + 0.006332, + 0.006478, + 0.006582, + 0.006637, + 0.006630, + 0.006552, + 0.006395, + 0.006157, + 0.005836, + 0.005438, + 0.004971, + 0.004446, + 0.003877, + 0.003279, + 0.002672, + 0.002074, + 0.001508, + 0.000999, + 0.000572, + 0.000249, + 0.000052, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.05599832200562286), uv: (4.0, 5.0), - spectrum: [0.003745, 0.003746, 0.003746, 0.003746, 0.003746, 0.003746, 0.003747, 0.003747, 0.003748, 0.003750, 0.003754, 0.003759, 0.003769, 0.003784, 0.003811, 0.003850, 0.003904, 0.003974, 0.004058, 0.004154, 0.004263, 0.004380, 0.004504, 0.004630, 0.004754, 0.004872, 0.004981, 0.005077, 0.005157, 0.005216, 0.005250, 0.005252, 0.005219, 0.005147, 0.005033, 0.004880, 0.004685, 0.004454, 0.004186, 0.003890, 0.003568, 0.003227, 0.002874, 0.002515, 0.002159, 0.001814, 0.001486, 0.001184, 0.000912, 0.000674, 0.000473, 0.000311, 0.000185, 0.000095, 0.000037, 0.000007, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.003745, + 0.003746, + 0.003746, + 0.003746, + 0.003746, + 0.003746, + 0.003747, + 0.003747, + 0.003748, + 0.003750, + 0.003754, + 0.003759, + 0.003769, + 0.003784, + 0.003811, + 0.003850, + 0.003904, + 0.003974, + 0.004058, + 0.004154, + 0.004263, + 0.004380, + 0.004504, + 0.004630, + 0.004754, + 0.004872, + 0.004981, + 0.005077, + 0.005157, + 0.005216, + 0.005250, + 0.005252, + 0.005219, + 0.005147, + 0.005033, + 0.004880, + 0.004685, + 0.004454, + 0.004186, + 0.003890, + 0.003568, + 0.003227, + 0.002874, + 0.002515, + 0.002159, + 0.001814, + 0.001486, + 0.001184, + 0.000912, + 0.000674, + 0.000473, + 0.000311, + 0.000185, + 0.000095, + 0.000037, + 0.000007, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.05599832200562286), uv: (5.0, 5.0), - spectrum: [0.003086, 0.003086, 0.003086, 0.003086, 0.003085, 0.003085, 0.003085, 0.003086, 0.003087, 0.003088, 0.003091, 0.003096, 0.003103, 0.003118, 0.003141, 0.003176, 0.003226, 0.003290, 0.003368, 0.003461, 0.003566, 0.003682, 0.003807, 0.003937, 0.004068, 0.004197, 0.004321, 0.004437, 0.004541, 0.004630, 0.004699, 0.004743, 0.004760, 0.004749, 0.004702, 0.004625, 0.004515, 0.004374, 0.004206, 0.004012, 0.003797, 0.003565, 0.003320, 0.003066, 0.002809, 0.002555, 0.002308, 0.002074, 0.001856, 0.001657, 0.001480, 0.001325, 0.001194, 0.001085, 0.000993, 0.000920, 0.000863, 0.000819, 0.000785, 0.000760, 0.000741, 0.000728, 0.000718, 0.000710, 0.000704, 0.000700, 0.000696, 0.000694, 0.000693, 0.000690, 0.000689, 0.000688, 0.000688, 0.000688, 0.000688, 0.000688, 0.000687, 0.000686, 0.000686, 0.000686, 0.000686, 0.000686, 0.000686, 0.000686, 0.000685, 0.000685, 0.000685, 0.000685, 0.000684, 0.000684, 0.000684, 0.000684, 0.000684, 0.000684, 0.000684], + spectrum: [ + 0.003086, + 0.003086, + 0.003086, + 0.003086, + 0.003085, + 0.003085, + 0.003085, + 0.003086, + 0.003087, + 0.003088, + 0.003091, + 0.003096, + 0.003103, + 0.003118, + 0.003141, + 0.003176, + 0.003226, + 0.003290, + 0.003368, + 0.003461, + 0.003566, + 0.003682, + 0.003807, + 0.003937, + 0.004068, + 0.004197, + 0.004321, + 0.004437, + 0.004541, + 0.004630, + 0.004699, + 0.004743, + 0.004760, + 0.004749, + 0.004702, + 0.004625, + 0.004515, + 0.004374, + 0.004206, + 0.004012, + 0.003797, + 0.003565, + 0.003320, + 0.003066, + 0.002809, + 0.002555, + 0.002308, + 0.002074, + 0.001856, + 0.001657, + 0.001480, + 0.001325, + 0.001194, + 0.001085, + 0.000993, + 0.000920, + 0.000863, + 0.000819, + 0.000785, + 0.000760, + 0.000741, + 0.000728, + 0.000718, + 0.000710, + 0.000704, + 0.000700, + 0.000696, + 0.000694, + 0.000693, + 0.000690, + 0.000689, + 0.000688, + 0.000688, + 0.000688, + 0.000688, + 0.000688, + 0.000687, + 0.000686, + 0.000686, + 0.000686, + 0.000686, + 0.000686, + 0.000686, + 0.000686, + 0.000685, + 0.000685, + 0.000685, + 0.000685, + 0.000684, + 0.000684, + 0.000684, + 0.000684, + 0.000684, + 0.000684, + 0.000684, + ], }, SpectrumDataPoint { xystar: (0.0, 0.05599832200562286), uv: (6.0, 5.0), - spectrum: [0.002356, 0.002354, 0.002355, 0.002355, 0.002355, 0.002354, 0.002354, 0.002354, 0.002356, 0.002358, 0.002363, 0.002370, 0.002382, 0.002399, 0.002428, 0.002469, 0.002521, 0.002589, 0.002675, 0.002773, 0.002883, 0.003006, 0.003142, 0.003285, 0.003431, 0.003577, 0.003723, 0.003865, 0.003996, 0.004116, 0.004221, 0.004307, 0.004371, 0.004412, 0.004428, 0.004418, 0.004380, 0.004316, 0.004230, 0.004121, 0.003991, 0.003846, 0.003687, 0.003520, 0.003348, 0.003173, 0.003003, 0.002838, 0.002687, 0.002548, 0.002424, 0.002316, 0.002222, 0.002148, 0.002085, 0.002036, 0.001997, 0.001966, 0.001945, 0.001928, 0.001914, 0.001904, 0.001896, 0.001890, 0.001888, 0.001884, 0.001882, 0.001880, 0.001879, 0.001877, 0.001878, 0.001878, 0.001878, 0.001878, 0.001878, 0.001878, 0.001878, 0.001879, 0.001878, 0.001879, 0.001879, 0.001879, 0.001880, 0.001879, 0.001878, 0.001878, 0.001877, 0.001877, 0.001876, 0.001876, 0.001876, 0.001876, 0.001876, 0.001877, 0.001877], + spectrum: [ + 0.002356, + 0.002354, + 0.002355, + 0.002355, + 0.002355, + 0.002354, + 0.002354, + 0.002354, + 0.002356, + 0.002358, + 0.002363, + 0.002370, + 0.002382, + 0.002399, + 0.002428, + 0.002469, + 0.002521, + 0.002589, + 0.002675, + 0.002773, + 0.002883, + 0.003006, + 0.003142, + 0.003285, + 0.003431, + 0.003577, + 0.003723, + 0.003865, + 0.003996, + 0.004116, + 0.004221, + 0.004307, + 0.004371, + 0.004412, + 0.004428, + 0.004418, + 0.004380, + 0.004316, + 0.004230, + 0.004121, + 0.003991, + 0.003846, + 0.003687, + 0.003520, + 0.003348, + 0.003173, + 0.003003, + 0.002838, + 0.002687, + 0.002548, + 0.002424, + 0.002316, + 0.002222, + 0.002148, + 0.002085, + 0.002036, + 0.001997, + 0.001966, + 0.001945, + 0.001928, + 0.001914, + 0.001904, + 0.001896, + 0.001890, + 0.001888, + 0.001884, + 0.001882, + 0.001880, + 0.001879, + 0.001877, + 0.001878, + 0.001878, + 0.001878, + 0.001878, + 0.001878, + 0.001878, + 0.001878, + 0.001879, + 0.001878, + 0.001879, + 0.001879, + 0.001879, + 0.001880, + 0.001879, + 0.001878, + 0.001878, + 0.001877, + 0.001877, + 0.001876, + 0.001876, + 0.001876, + 0.001876, + 0.001876, + 0.001877, + 0.001877, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.05599832200562286), uv: (7.000000000000001, 5.0), - spectrum: [0.001660, 0.001659, 0.001659, 0.001659, 0.001659, 0.001659, 0.001659, 0.001658, 0.001658, 0.001659, 0.001660, 0.001665, 0.001672, 0.001686, 0.001712, 0.001751, 0.001806, 0.001880, 0.001969, 0.002075, 0.002196, 0.002334, 0.002483, 0.002642, 0.002808, 0.002975, 0.003142, 0.003305, 0.003463, 0.003613, 0.003753, 0.003879, 0.003988, 0.004081, 0.004155, 0.004209, 0.004242, 0.004255, 0.004247, 0.004219, 0.004175, 0.004117, 0.004045, 0.003965, 0.003878, 0.003788, 0.003698, 0.003610, 0.003527, 0.003448, 0.003379, 0.003316, 0.003262, 0.003217, 0.003180, 0.003150, 0.003127, 0.003110, 0.003098, 0.003088, 0.003081, 0.003076, 0.003071, 0.003067, 0.003064, 0.003061, 0.003059, 0.003057, 0.003056, 0.003054, 0.003054, 0.003053, 0.003052, 0.003052, 0.003051, 0.003050, 0.003051, 0.003050, 0.003051, 0.003051, 0.003051, 0.003053, 0.003054, 0.003054, 0.003054, 0.003054, 0.003054, 0.003053, 0.003054, 0.003053, 0.003054, 0.003054, 0.003054, 0.003054, 0.003054], + spectrum: [ + 0.001660, + 0.001659, + 0.001659, + 0.001659, + 0.001659, + 0.001659, + 0.001659, + 0.001658, + 0.001658, + 0.001659, + 0.001660, + 0.001665, + 0.001672, + 0.001686, + 0.001712, + 0.001751, + 0.001806, + 0.001880, + 0.001969, + 0.002075, + 0.002196, + 0.002334, + 0.002483, + 0.002642, + 0.002808, + 0.002975, + 0.003142, + 0.003305, + 0.003463, + 0.003613, + 0.003753, + 0.003879, + 0.003988, + 0.004081, + 0.004155, + 0.004209, + 0.004242, + 0.004255, + 0.004247, + 0.004219, + 0.004175, + 0.004117, + 0.004045, + 0.003965, + 0.003878, + 0.003788, + 0.003698, + 0.003610, + 0.003527, + 0.003448, + 0.003379, + 0.003316, + 0.003262, + 0.003217, + 0.003180, + 0.003150, + 0.003127, + 0.003110, + 0.003098, + 0.003088, + 0.003081, + 0.003076, + 0.003071, + 0.003067, + 0.003064, + 0.003061, + 0.003059, + 0.003057, + 0.003056, + 0.003054, + 0.003054, + 0.003053, + 0.003052, + 0.003052, + 0.003051, + 0.003050, + 0.003051, + 0.003050, + 0.003051, + 0.003051, + 0.003051, + 0.003053, + 0.003054, + 0.003054, + 0.003054, + 0.003054, + 0.003054, + 0.003053, + 0.003054, + 0.003053, + 0.003054, + 0.003054, + 0.003054, + 0.003054, + 0.003054, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.05599832200562286), uv: (8.0, 5.0), - spectrum: [0.000930, 0.000931, 0.000931, 0.000931, 0.000932, 0.000933, 0.000933, 0.000934, 0.000934, 0.000936, 0.000938, 0.000942, 0.000950, 0.000965, 0.000993, 0.001035, 0.001095, 0.001173, 0.001270, 0.001385, 0.001517, 0.001665, 0.001826, 0.001999, 0.002178, 0.002362, 0.002549, 0.002736, 0.002922, 0.003103, 0.003279, 0.003447, 0.003604, 0.003751, 0.003883, 0.004000, 0.004102, 0.004189, 0.004261, 0.004319, 0.004363, 0.004393, 0.004412, 0.004421, 0.004420, 0.004413, 0.004400, 0.004383, 0.004365, 0.004346, 0.004326, 0.004308, 0.004293, 0.004279, 0.004269, 0.004261, 0.004254, 0.004249, 0.004245, 0.004243, 0.004241, 0.004240, 0.004238, 0.004237, 0.004236, 0.004235, 0.004235, 0.004234, 0.004234, 0.004234, 0.004234, 0.004234, 0.004233, 0.004232, 0.004231, 0.004230, 0.004229, 0.004228, 0.004228, 0.004227, 0.004227, 0.004227, 0.004227, 0.004228, 0.004228, 0.004228, 0.004228, 0.004228, 0.004228, 0.004227, 0.004226, 0.004226, 0.004226, 0.004226, 0.004226], + spectrum: [ + 0.000930, + 0.000931, + 0.000931, + 0.000931, + 0.000932, + 0.000933, + 0.000933, + 0.000934, + 0.000934, + 0.000936, + 0.000938, + 0.000942, + 0.000950, + 0.000965, + 0.000993, + 0.001035, + 0.001095, + 0.001173, + 0.001270, + 0.001385, + 0.001517, + 0.001665, + 0.001826, + 0.001999, + 0.002178, + 0.002362, + 0.002549, + 0.002736, + 0.002922, + 0.003103, + 0.003279, + 0.003447, + 0.003604, + 0.003751, + 0.003883, + 0.004000, + 0.004102, + 0.004189, + 0.004261, + 0.004319, + 0.004363, + 0.004393, + 0.004412, + 0.004421, + 0.004420, + 0.004413, + 0.004400, + 0.004383, + 0.004365, + 0.004346, + 0.004326, + 0.004308, + 0.004293, + 0.004279, + 0.004269, + 0.004261, + 0.004254, + 0.004249, + 0.004245, + 0.004243, + 0.004241, + 0.004240, + 0.004238, + 0.004237, + 0.004236, + 0.004235, + 0.004235, + 0.004234, + 0.004234, + 0.004234, + 0.004234, + 0.004234, + 0.004233, + 0.004232, + 0.004231, + 0.004230, + 0.004229, + 0.004228, + 0.004228, + 0.004227, + 0.004227, + 0.004227, + 0.004227, + 0.004228, + 0.004228, + 0.004228, + 0.004228, + 0.004228, + 0.004228, + 0.004227, + 0.004226, + 0.004226, + 0.004226, + 0.004226, + 0.004226, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, 0.05599832200562286), uv: (9.0, 5.0), - spectrum: [0.000215, 0.000214, 0.000214, 0.000215, 0.000215, 0.000215, 0.000215, 0.000215, 0.000214, 0.000214, 0.000216, 0.000221, 0.000231, 0.000249, 0.000279, 0.000325, 0.000388, 0.000471, 0.000572, 0.000694, 0.000833, 0.000989, 0.001161, 0.001346, 0.001542, 0.001746, 0.001956, 0.002170, 0.002386, 0.002602, 0.002815, 0.003026, 0.003230, 0.003428, 0.003618, 0.003798, 0.003968, 0.004127, 0.004276, 0.004414, 0.004541, 0.004659, 0.004767, 0.004864, 0.004950, 0.005026, 0.005093, 0.005152, 0.005203, 0.005244, 0.005280, 0.005309, 0.005332, 0.005351, 0.005367, 0.005380, 0.005389, 0.005398, 0.005405, 0.005411, 0.005415, 0.005418, 0.005420, 0.005421, 0.005423, 0.005423, 0.005423, 0.005422, 0.005422, 0.005421, 0.005420, 0.005419, 0.005419, 0.005418, 0.005417, 0.005416, 0.005416, 0.005415, 0.005414, 0.005415, 0.005415, 0.005414, 0.005414, 0.005413, 0.005413, 0.005413, 0.005412, 0.005412, 0.005412, 0.005411, 0.005411, 0.005410, 0.005410, 0.005410, 0.005410], + spectrum: [ + 0.000215, + 0.000214, + 0.000214, + 0.000215, + 0.000215, + 0.000215, + 0.000215, + 0.000215, + 0.000214, + 0.000214, + 0.000216, + 0.000221, + 0.000231, + 0.000249, + 0.000279, + 0.000325, + 0.000388, + 0.000471, + 0.000572, + 0.000694, + 0.000833, + 0.000989, + 0.001161, + 0.001346, + 0.001542, + 0.001746, + 0.001956, + 0.002170, + 0.002386, + 0.002602, + 0.002815, + 0.003026, + 0.003230, + 0.003428, + 0.003618, + 0.003798, + 0.003968, + 0.004127, + 0.004276, + 0.004414, + 0.004541, + 0.004659, + 0.004767, + 0.004864, + 0.004950, + 0.005026, + 0.005093, + 0.005152, + 0.005203, + 0.005244, + 0.005280, + 0.005309, + 0.005332, + 0.005351, + 0.005367, + 0.005380, + 0.005389, + 0.005398, + 0.005405, + 0.005411, + 0.005415, + 0.005418, + 0.005420, + 0.005421, + 0.005423, + 0.005423, + 0.005423, + 0.005422, + 0.005422, + 0.005421, + 0.005420, + 0.005419, + 0.005419, + 0.005418, + 0.005417, + 0.005416, + 0.005416, + 0.005415, + 0.005414, + 0.005415, + 0.005415, + 0.005414, + 0.005414, + 0.005413, + 0.005413, + 0.005413, + 0.005412, + 0.005412, + 0.005412, + 0.005411, + 0.005411, + 0.005410, + 0.005410, + 0.005410, + 0.005410, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, 0.05599832200562286), uv: (10.0, 5.0), - spectrum: [0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000002, 0.000097, 0.000268, 0.000494, 0.000763, 0.001062, 0.001380, 0.001714, 0.002056, 0.002400, 0.002740, 0.003071, 0.003389, 0.003693, 0.003981, 0.004252, 0.004504, 0.004737, 0.004950, 0.005142, 0.005316, 0.005471, 0.005609, 0.005729, 0.005834, 0.005924, 0.006000, 0.006065, 0.006118, 0.006161, 0.006197, 0.006225, 0.006247, 0.006264, 0.006276, 0.006286, 0.006294, 0.006299, 0.006303, 0.006305, 0.006306, 0.006307, 0.006307, 0.006308, 0.006308, 0.006308, 0.006308, 0.006308, 0.006308, 0.006308, 0.006308, 0.006308, 0.006307, 0.006307, 0.006306, 0.006306, 0.006306, 0.006306, 0.006306, 0.006306, 0.006305, 0.006305, 0.006304, 0.006304, 0.006304, 0.006304, 0.006303, 0.006303, 0.006303, 0.006304, 0.006304, 0.006304, 0.006304], + spectrum: [ + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000002, + 0.000097, + 0.000268, + 0.000494, + 0.000763, + 0.001062, + 0.001380, + 0.001714, + 0.002056, + 0.002400, + 0.002740, + 0.003071, + 0.003389, + 0.003693, + 0.003981, + 0.004252, + 0.004504, + 0.004737, + 0.004950, + 0.005142, + 0.005316, + 0.005471, + 0.005609, + 0.005729, + 0.005834, + 0.005924, + 0.006000, + 0.006065, + 0.006118, + 0.006161, + 0.006197, + 0.006225, + 0.006247, + 0.006264, + 0.006276, + 0.006286, + 0.006294, + 0.006299, + 0.006303, + 0.006305, + 0.006306, + 0.006307, + 0.006307, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006308, + 0.006307, + 0.006307, + 0.006306, + 0.006306, + 0.006306, + 0.006306, + 0.006306, + 0.006306, + 0.006305, + 0.006305, + 0.006304, + 0.006304, + 0.006304, + 0.006304, + 0.006303, + 0.006303, + 0.006303, + 0.006304, + 0.006304, + 0.006304, + 0.006304, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.11199664401124566), uv: (2.0, 5.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000376, 0.001245, 0.002562, 0.004250, 0.006211, 0.008324, 0.010458, 0.012472, 0.014244, 0.015672, 0.016680, 0.017213, 0.017218, 0.016651, 0.015470, 0.013683, 0.011364, 0.008668, 0.005845, 0.003215, 0.001131, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000376, + 0.001245, + 0.002562, + 0.004250, + 0.006211, + 0.008324, + 0.010458, + 0.012472, + 0.014244, + 0.015672, + 0.016680, + 0.017213, + 0.017218, + 0.016651, + 0.015470, + 0.013683, + 0.011364, + 0.008668, + 0.005845, + 0.003215, + 0.001131, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.11199664401124566), uv: (3.0, 5.999999999999999), - spectrum: [0.002087, 0.002087, 0.002087, 0.002087, 0.002087, 0.002089, 0.002090, 0.002093, 0.002098, 0.002107, 0.002122, 0.002150, 0.002199, 0.002288, 0.002437, 0.002662, 0.002974, 0.003375, 0.003856, 0.004407, 0.005015, 0.005662, 0.006322, 0.006976, 0.007600, 0.008169, 0.008662, 0.009068, 0.009367, 0.009536, 0.009553, 0.009399, 0.009060, 0.008533, 0.007829, 0.006976, 0.006000, 0.004942, 0.003850, 0.002781, 0.001790, 0.000948, 0.000328, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000002, 0.000001, 0.000001, 0.000002, 0.000002, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.002087, + 0.002087, + 0.002087, + 0.002087, + 0.002087, + 0.002089, + 0.002090, + 0.002093, + 0.002098, + 0.002107, + 0.002122, + 0.002150, + 0.002199, + 0.002288, + 0.002437, + 0.002662, + 0.002974, + 0.003375, + 0.003856, + 0.004407, + 0.005015, + 0.005662, + 0.006322, + 0.006976, + 0.007600, + 0.008169, + 0.008662, + 0.009068, + 0.009367, + 0.009536, + 0.009553, + 0.009399, + 0.009060, + 0.008533, + 0.007829, + 0.006976, + 0.006000, + 0.004942, + 0.003850, + 0.002781, + 0.001790, + 0.000948, + 0.000328, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.11199664401124566), uv: (4.0, 5.999999999999999), - spectrum: [0.002692, 0.002692, 0.002692, 0.002692, 0.002693, 0.002695, 0.002697, 0.002698, 0.002700, 0.002701, 0.002707, 0.002719, 0.002742, 0.002780, 0.002848, 0.002952, 0.003093, 0.003280, 0.003507, 0.003772, 0.004070, 0.004394, 0.004739, 0.005093, 0.005443, 0.005781, 0.006100, 0.006391, 0.006644, 0.006845, 0.006987, 0.007058, 0.007048, 0.006947, 0.006754, 0.006474, 0.006110, 0.005671, 0.005161, 0.004598, 0.004000, 0.003378, 0.002751, 0.002144, 0.001578, 0.001069, 0.000641, 0.000310, 0.000095, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000002, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000002, 0.000002, 0.000000, 0.000000, 0.000001, 0.000001, 0.000002, 0.000003], + spectrum: [ + 0.002692, + 0.002692, + 0.002692, + 0.002692, + 0.002693, + 0.002695, + 0.002697, + 0.002698, + 0.002700, + 0.002701, + 0.002707, + 0.002719, + 0.002742, + 0.002780, + 0.002848, + 0.002952, + 0.003093, + 0.003280, + 0.003507, + 0.003772, + 0.004070, + 0.004394, + 0.004739, + 0.005093, + 0.005443, + 0.005781, + 0.006100, + 0.006391, + 0.006644, + 0.006845, + 0.006987, + 0.007058, + 0.007048, + 0.006947, + 0.006754, + 0.006474, + 0.006110, + 0.005671, + 0.005161, + 0.004598, + 0.004000, + 0.003378, + 0.002751, + 0.002144, + 0.001578, + 0.001069, + 0.000641, + 0.000310, + 0.000095, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + 0.000002, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000002, + 0.000003, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.11199664401124566), uv: (5.0, 5.999999999999999), - spectrum: [0.002321, 0.002322, 0.002321, 0.002321, 0.002322, 0.002324, 0.002325, 0.002325, 0.002325, 0.002326, 0.002329, 0.002336, 0.002350, 0.002376, 0.002422, 0.002494, 0.002597, 0.002733, 0.002903, 0.003104, 0.003333, 0.003586, 0.003858, 0.004142, 0.004428, 0.004712, 0.004987, 0.005247, 0.005486, 0.005697, 0.005872, 0.006004, 0.006085, 0.006108, 0.006071, 0.005972, 0.005812, 0.005594, 0.005322, 0.004999, 0.004632, 0.004231, 0.003808, 0.003368, 0.002924, 0.002486, 0.002065, 0.001670, 0.001312, 0.000993, 0.000719, 0.000492, 0.000311, 0.000177, 0.000083, 0.000027, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.002321, + 0.002322, + 0.002321, + 0.002321, + 0.002322, + 0.002324, + 0.002325, + 0.002325, + 0.002325, + 0.002326, + 0.002329, + 0.002336, + 0.002350, + 0.002376, + 0.002422, + 0.002494, + 0.002597, + 0.002733, + 0.002903, + 0.003104, + 0.003333, + 0.003586, + 0.003858, + 0.004142, + 0.004428, + 0.004712, + 0.004987, + 0.005247, + 0.005486, + 0.005697, + 0.005872, + 0.006004, + 0.006085, + 0.006108, + 0.006071, + 0.005972, + 0.005812, + 0.005594, + 0.005322, + 0.004999, + 0.004632, + 0.004231, + 0.003808, + 0.003368, + 0.002924, + 0.002486, + 0.002065, + 0.001670, + 0.001312, + 0.000993, + 0.000719, + 0.000492, + 0.000311, + 0.000177, + 0.000083, + 0.000027, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.11199664401124566), uv: (6.0, 5.999999999999999), - spectrum: [0.001610, 0.001610, 0.001610, 0.001610, 0.001610, 0.001610, 0.001611, 0.001612, 0.001614, 0.001617, 0.001624, 0.001635, 0.001653, 0.001685, 0.001736, 0.001813, 0.001919, 0.002057, 0.002227, 0.002425, 0.002651, 0.002900, 0.003170, 0.003453, 0.003744, 0.004036, 0.004325, 0.004603, 0.004866, 0.005106, 0.005316, 0.005490, 0.005621, 0.005705, 0.005738, 0.005717, 0.005642, 0.005516, 0.005342, 0.005125, 0.004868, 0.004576, 0.004257, 0.003920, 0.003573, 0.003223, 0.002883, 0.002557, 0.002252, 0.001973, 0.001727, 0.001512, 0.001329, 0.001177, 0.001053, 0.000955, 0.000876, 0.000815, 0.000769, 0.000735, 0.000710, 0.000692, 0.000678, 0.000668, 0.000660, 0.000654, 0.000650, 0.000647, 0.000645, 0.000643, 0.000642, 0.000640, 0.000639, 0.000639, 0.000639, 0.000638, 0.000638, 0.000638, 0.000638, 0.000638, 0.000637, 0.000636, 0.000636, 0.000635, 0.000634, 0.000634, 0.000633, 0.000633, 0.000632, 0.000632, 0.000631, 0.000631, 0.000631, 0.000631, 0.000631], + spectrum: [ + 0.001610, + 0.001610, + 0.001610, + 0.001610, + 0.001610, + 0.001610, + 0.001611, + 0.001612, + 0.001614, + 0.001617, + 0.001624, + 0.001635, + 0.001653, + 0.001685, + 0.001736, + 0.001813, + 0.001919, + 0.002057, + 0.002227, + 0.002425, + 0.002651, + 0.002900, + 0.003170, + 0.003453, + 0.003744, + 0.004036, + 0.004325, + 0.004603, + 0.004866, + 0.005106, + 0.005316, + 0.005490, + 0.005621, + 0.005705, + 0.005738, + 0.005717, + 0.005642, + 0.005516, + 0.005342, + 0.005125, + 0.004868, + 0.004576, + 0.004257, + 0.003920, + 0.003573, + 0.003223, + 0.002883, + 0.002557, + 0.002252, + 0.001973, + 0.001727, + 0.001512, + 0.001329, + 0.001177, + 0.001053, + 0.000955, + 0.000876, + 0.000815, + 0.000769, + 0.000735, + 0.000710, + 0.000692, + 0.000678, + 0.000668, + 0.000660, + 0.000654, + 0.000650, + 0.000647, + 0.000645, + 0.000643, + 0.000642, + 0.000640, + 0.000639, + 0.000639, + 0.000639, + 0.000638, + 0.000638, + 0.000638, + 0.000638, + 0.000638, + 0.000637, + 0.000636, + 0.000636, + 0.000635, + 0.000634, + 0.000634, + 0.000633, + 0.000633, + 0.000632, + 0.000632, + 0.000631, + 0.000631, + 0.000631, + 0.000631, + 0.000631, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.11199664401124566), uv: (7.000000000000001, 5.999999999999999), - spectrum: [0.000878, 0.000877, 0.000876, 0.000875, 0.000874, 0.000873, 0.000873, 0.000874, 0.000877, 0.000883, 0.000890, 0.000902, 0.000922, 0.000955, 0.001008, 0.001087, 0.001198, 0.001342, 0.001521, 0.001730, 0.001971, 0.002237, 0.002523, 0.002826, 0.003136, 0.003449, 0.003759, 0.004059, 0.004346, 0.004614, 0.004859, 0.005073, 0.005249, 0.005383, 0.005470, 0.005510, 0.005503, 0.005449, 0.005351, 0.005213, 0.005038, 0.004833, 0.004603, 0.004356, 0.004098, 0.003837, 0.003578, 0.003328, 0.003093, 0.002877, 0.002686, 0.002518, 0.002375, 0.002257, 0.002159, 0.002081, 0.002019, 0.001972, 0.001934, 0.001905, 0.001883, 0.001865, 0.001852, 0.001843, 0.001836, 0.001831, 0.001828, 0.001825, 0.001823, 0.001822, 0.001821, 0.001820, 0.001819, 0.001819, 0.001820, 0.001821, 0.001822, 0.001824, 0.001824, 0.001825, 0.001825, 0.001824, 0.001824, 0.001823, 0.001823, 0.001824, 0.001825, 0.001826, 0.001827, 0.001827, 0.001828, 0.001828, 0.001828, 0.001828, 0.001828], + spectrum: [ + 0.000878, + 0.000877, + 0.000876, + 0.000875, + 0.000874, + 0.000873, + 0.000873, + 0.000874, + 0.000877, + 0.000883, + 0.000890, + 0.000902, + 0.000922, + 0.000955, + 0.001008, + 0.001087, + 0.001198, + 0.001342, + 0.001521, + 0.001730, + 0.001971, + 0.002237, + 0.002523, + 0.002826, + 0.003136, + 0.003449, + 0.003759, + 0.004059, + 0.004346, + 0.004614, + 0.004859, + 0.005073, + 0.005249, + 0.005383, + 0.005470, + 0.005510, + 0.005503, + 0.005449, + 0.005351, + 0.005213, + 0.005038, + 0.004833, + 0.004603, + 0.004356, + 0.004098, + 0.003837, + 0.003578, + 0.003328, + 0.003093, + 0.002877, + 0.002686, + 0.002518, + 0.002375, + 0.002257, + 0.002159, + 0.002081, + 0.002019, + 0.001972, + 0.001934, + 0.001905, + 0.001883, + 0.001865, + 0.001852, + 0.001843, + 0.001836, + 0.001831, + 0.001828, + 0.001825, + 0.001823, + 0.001822, + 0.001821, + 0.001820, + 0.001819, + 0.001819, + 0.001820, + 0.001821, + 0.001822, + 0.001824, + 0.001824, + 0.001825, + 0.001825, + 0.001824, + 0.001824, + 0.001823, + 0.001823, + 0.001824, + 0.001825, + 0.001826, + 0.001827, + 0.001827, + 0.001828, + 0.001828, + 0.001828, + 0.001828, + 0.001828, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.11199664401124566), uv: (8.0, 5.999999999999999), - spectrum: [0.000179, 0.000179, 0.000179, 0.000178, 0.000179, 0.000180, 0.000180, 0.000180, 0.000182, 0.000185, 0.000191, 0.000201, 0.000219, 0.000249, 0.000302, 0.000382, 0.000495, 0.000644, 0.000823, 0.001036, 0.001281, 0.001555, 0.001852, 0.002166, 0.002491, 0.002823, 0.003155, 0.003482, 0.003800, 0.004101, 0.004382, 0.004636, 0.004858, 0.005044, 0.005190, 0.005295, 0.005360, 0.005384, 0.005370, 0.005319, 0.005235, 0.005121, 0.004981, 0.004822, 0.004648, 0.004466, 0.004282, 0.004102, 0.003931, 0.003773, 0.003631, 0.003507, 0.003400, 0.003312, 0.003238, 0.003179, 0.003133, 0.003096, 0.003067, 0.003045, 0.003030, 0.003018, 0.003010, 0.003004, 0.003000, 0.002996, 0.002993, 0.002992, 0.002990, 0.002988, 0.002987, 0.002986, 0.002986, 0.002985, 0.002986, 0.002985, 0.002985, 0.002985, 0.002985, 0.002985, 0.002985, 0.002984, 0.002984, 0.002984, 0.002984, 0.002984, 0.002985, 0.002985, 0.002984, 0.002984, 0.002984, 0.002984, 0.002985, 0.002985, 0.002985], + spectrum: [ + 0.000179, + 0.000179, + 0.000179, + 0.000178, + 0.000179, + 0.000180, + 0.000180, + 0.000180, + 0.000182, + 0.000185, + 0.000191, + 0.000201, + 0.000219, + 0.000249, + 0.000302, + 0.000382, + 0.000495, + 0.000644, + 0.000823, + 0.001036, + 0.001281, + 0.001555, + 0.001852, + 0.002166, + 0.002491, + 0.002823, + 0.003155, + 0.003482, + 0.003800, + 0.004101, + 0.004382, + 0.004636, + 0.004858, + 0.005044, + 0.005190, + 0.005295, + 0.005360, + 0.005384, + 0.005370, + 0.005319, + 0.005235, + 0.005121, + 0.004981, + 0.004822, + 0.004648, + 0.004466, + 0.004282, + 0.004102, + 0.003931, + 0.003773, + 0.003631, + 0.003507, + 0.003400, + 0.003312, + 0.003238, + 0.003179, + 0.003133, + 0.003096, + 0.003067, + 0.003045, + 0.003030, + 0.003018, + 0.003010, + 0.003004, + 0.003000, + 0.002996, + 0.002993, + 0.002992, + 0.002990, + 0.002988, + 0.002987, + 0.002986, + 0.002986, + 0.002985, + 0.002986, + 0.002985, + 0.002985, + 0.002985, + 0.002985, + 0.002985, + 0.002985, + 0.002984, + 0.002984, + 0.002984, + 0.002984, + 0.002984, + 0.002985, + 0.002985, + 0.002984, + 0.002984, + 0.002984, + 0.002984, + 0.002985, + 0.002985, + 0.002985, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, 0.11199664401124566), uv: (9.0, 5.999999999999999), - spectrum: [0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000052, 0.000168, 0.000346, 0.000577, 0.000862, 0.001185, 0.001538, 0.001913, 0.002298, 0.002686, 0.003071, 0.003447, 0.003805, 0.004142, 0.004450, 0.004722, 0.004957, 0.005149, 0.005300, 0.005409, 0.005482, 0.005514, 0.005511, 0.005477, 0.005414, 0.005330, 0.005227, 0.005113, 0.004993, 0.004871, 0.004750, 0.004636, 0.004532, 0.004439, 0.004359, 0.004292, 0.004236, 0.004190, 0.004153, 0.004126, 0.004106, 0.004089, 0.004076, 0.004068, 0.004062, 0.004058, 0.004054, 0.004051, 0.004049, 0.004048, 0.004047, 0.004046, 0.004045, 0.004045, 0.004045, 0.004044, 0.004044, 0.004044, 0.004044, 0.004044, 0.004044, 0.004043, 0.004043, 0.004043, 0.004043, 0.004043, 0.004043, 0.004043, 0.004042, 0.004042, 0.004042, 0.004042, 0.004042, 0.004042, 0.004042, 0.004041, 0.004042], + spectrum: [ + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000052, + 0.000168, + 0.000346, + 0.000577, + 0.000862, + 0.001185, + 0.001538, + 0.001913, + 0.002298, + 0.002686, + 0.003071, + 0.003447, + 0.003805, + 0.004142, + 0.004450, + 0.004722, + 0.004957, + 0.005149, + 0.005300, + 0.005409, + 0.005482, + 0.005514, + 0.005511, + 0.005477, + 0.005414, + 0.005330, + 0.005227, + 0.005113, + 0.004993, + 0.004871, + 0.004750, + 0.004636, + 0.004532, + 0.004439, + 0.004359, + 0.004292, + 0.004236, + 0.004190, + 0.004153, + 0.004126, + 0.004106, + 0.004089, + 0.004076, + 0.004068, + 0.004062, + 0.004058, + 0.004054, + 0.004051, + 0.004049, + 0.004048, + 0.004047, + 0.004046, + 0.004045, + 0.004045, + 0.004045, + 0.004044, + 0.004044, + 0.004044, + 0.004044, + 0.004044, + 0.004044, + 0.004043, + 0.004043, + 0.004043, + 0.004043, + 0.004043, + 0.004043, + 0.004043, + 0.004042, + 0.004042, + 0.004042, + 0.004042, + 0.004042, + 0.004042, + 0.004042, + 0.004041, + 0.004042, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.16799496601686853), uv: (2.0, 6.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000219, 0.002207, 0.005534, 0.009696, 0.014123, 0.018315, 0.021870, 0.024468, 0.025906, 0.026029, 0.024730, 0.021964, 0.017858, 0.012795, 0.007451, 0.002788, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000002, 0.000001, 0.000002, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000002], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000219, + 0.002207, + 0.005534, + 0.009696, + 0.014123, + 0.018315, + 0.021870, + 0.024468, + 0.025906, + 0.026029, + 0.024730, + 0.021964, + 0.017858, + 0.012795, + 0.007451, + 0.002788, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000002, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.16799496601686853), uv: (3.0, 6.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000065, 0.000263, 0.000629, 0.001181, 0.001925, 0.002844, 0.003912, 0.005094, 0.006351, 0.007633, 0.008886, 0.010062, 0.011113, 0.012001, 0.012696, 0.013162, 0.013362, 0.013258, 0.012817, 0.012028, 0.010910, 0.009506, 0.007889, 0.006154, 0.004406, 0.002769, 0.001384, 0.000405, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000065, + 0.000263, + 0.000629, + 0.001181, + 0.001925, + 0.002844, + 0.003912, + 0.005094, + 0.006351, + 0.007633, + 0.008886, + 0.010062, + 0.011113, + 0.012001, + 0.012696, + 0.013162, + 0.013362, + 0.013258, + 0.012817, + 0.012028, + 0.010910, + 0.009506, + 0.007889, + 0.006154, + 0.004406, + 0.002769, + 0.001384, + 0.000405, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.16799496601686853), uv: (4.0, 6.999999999999999), - spectrum: [0.001212, 0.001213, 0.001213, 0.001214, 0.001213, 0.001214, 0.001215, 0.001218, 0.001224, 0.001233, 0.001248, 0.001274, 0.001321, 0.001403, 0.001541, 0.001744, 0.002034, 0.002407, 0.002856, 0.003381, 0.003960, 0.004592, 0.005255, 0.005929, 0.006594, 0.007229, 0.007815, 0.008337, 0.008783, 0.009129, 0.009355, 0.009441, 0.009366, 0.009127, 0.008722, 0.008159, 0.007458, 0.006641, 0.005729, 0.004761, 0.003770, 0.002808, 0.001916, 0.001135, 0.000525, 0.000130, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000002, 0.000001, 0.000001], + spectrum: [ + 0.001212, + 0.001213, + 0.001213, + 0.001214, + 0.001213, + 0.001214, + 0.001215, + 0.001218, + 0.001224, + 0.001233, + 0.001248, + 0.001274, + 0.001321, + 0.001403, + 0.001541, + 0.001744, + 0.002034, + 0.002407, + 0.002856, + 0.003381, + 0.003960, + 0.004592, + 0.005255, + 0.005929, + 0.006594, + 0.007229, + 0.007815, + 0.008337, + 0.008783, + 0.009129, + 0.009355, + 0.009441, + 0.009366, + 0.009127, + 0.008722, + 0.008159, + 0.007458, + 0.006641, + 0.005729, + 0.004761, + 0.003770, + 0.002808, + 0.001916, + 0.001135, + 0.000525, + 0.000130, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.16799496601686853), uv: (5.0, 6.999999999999999), - spectrum: [0.001278, 0.001277, 0.001277, 0.001277, 0.001278, 0.001279, 0.001279, 0.001281, 0.001285, 0.001291, 0.001300, 0.001318, 0.001350, 0.001405, 0.001496, 0.001634, 0.001826, 0.002076, 0.002382, 0.002740, 0.003144, 0.003588, 0.004061, 0.004552, 0.005049, 0.005540, 0.006011, 0.006454, 0.006857, 0.007207, 0.007493, 0.007699, 0.007813, 0.007825, 0.007730, 0.007530, 0.007226, 0.006826, 0.006341, 0.005782, 0.005164, 0.004504, 0.003821, 0.003139, 0.002477, 0.001857, 0.001301, 0.000825, 0.000449, 0.000184, 0.000033, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.001278, + 0.001277, + 0.001277, + 0.001277, + 0.001278, + 0.001279, + 0.001279, + 0.001281, + 0.001285, + 0.001291, + 0.001300, + 0.001318, + 0.001350, + 0.001405, + 0.001496, + 0.001634, + 0.001826, + 0.002076, + 0.002382, + 0.002740, + 0.003144, + 0.003588, + 0.004061, + 0.004552, + 0.005049, + 0.005540, + 0.006011, + 0.006454, + 0.006857, + 0.007207, + 0.007493, + 0.007699, + 0.007813, + 0.007825, + 0.007730, + 0.007530, + 0.007226, + 0.006826, + 0.006341, + 0.005782, + 0.005164, + 0.004504, + 0.003821, + 0.003139, + 0.002477, + 0.001857, + 0.001301, + 0.000825, + 0.000449, + 0.000184, + 0.000033, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.16799496601686853), uv: (6.0, 6.999999999999999), - spectrum: [0.000820, 0.000820, 0.000820, 0.000820, 0.000820, 0.000820, 0.000820, 0.000822, 0.000826, 0.000831, 0.000841, 0.000855, 0.000881, 0.000928, 0.001006, 0.001124, 0.001288, 0.001501, 0.001763, 0.002070, 0.002421, 0.002809, 0.003228, 0.003666, 0.004114, 0.004563, 0.005004, 0.005429, 0.005826, 0.006190, 0.006507, 0.006767, 0.006960, 0.007078, 0.007115, 0.007067, 0.006938, 0.006729, 0.006447, 0.006096, 0.005686, 0.005227, 0.004730, 0.004210, 0.003678, 0.003149, 0.002636, 0.002152, 0.001709, 0.001313, 0.000971, 0.000685, 0.000456, 0.000279, 0.000152, 0.000067, 0.000018, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000003, 0.000002, 0.000003, 0.000003, 0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000820, + 0.000820, + 0.000820, + 0.000820, + 0.000820, + 0.000820, + 0.000820, + 0.000822, + 0.000826, + 0.000831, + 0.000841, + 0.000855, + 0.000881, + 0.000928, + 0.001006, + 0.001124, + 0.001288, + 0.001501, + 0.001763, + 0.002070, + 0.002421, + 0.002809, + 0.003228, + 0.003666, + 0.004114, + 0.004563, + 0.005004, + 0.005429, + 0.005826, + 0.006190, + 0.006507, + 0.006767, + 0.006960, + 0.007078, + 0.007115, + 0.007067, + 0.006938, + 0.006729, + 0.006447, + 0.006096, + 0.005686, + 0.005227, + 0.004730, + 0.004210, + 0.003678, + 0.003149, + 0.002636, + 0.002152, + 0.001709, + 0.001313, + 0.000971, + 0.000685, + 0.000456, + 0.000279, + 0.000152, + 0.000067, + 0.000018, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000003, + 0.000002, + 0.000003, + 0.000003, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.16799496601686853), uv: (7.000000000000001, 6.999999999999999), - spectrum: [0.000159, 0.000160, 0.000161, 0.000163, 0.000164, 0.000165, 0.000168, 0.000170, 0.000172, 0.000174, 0.000180, 0.000192, 0.000215, 0.000256, 0.000328, 0.000441, 0.000600, 0.000810, 0.001070, 0.001376, 0.001727, 0.002117, 0.002539, 0.002984, 0.003443, 0.003904, 0.004359, 0.004799, 0.005218, 0.005607, 0.005957, 0.006256, 0.006497, 0.006672, 0.006775, 0.006805, 0.006761, 0.006646, 0.006463, 0.006218, 0.005918, 0.005569, 0.005182, 0.004766, 0.004333, 0.003894, 0.003460, 0.003042, 0.002652, 0.002295, 0.001977, 0.001701, 0.001467, 0.001274, 0.001118, 0.000994, 0.000899, 0.000826, 0.000771, 0.000732, 0.000705, 0.000685, 0.000672, 0.000664, 0.000659, 0.000656, 0.000654, 0.000652, 0.000650, 0.000647, 0.000644, 0.000643, 0.000642, 0.000640, 0.000637, 0.000634, 0.000633, 0.000632, 0.000629, 0.000627, 0.000626, 0.000624, 0.000622, 0.000620, 0.000617, 0.000616, 0.000614, 0.000612, 0.000609, 0.000608, 0.000607, 0.000605, 0.000605, 0.000603, 0.000603], + spectrum: [ + 0.000159, + 0.000160, + 0.000161, + 0.000163, + 0.000164, + 0.000165, + 0.000168, + 0.000170, + 0.000172, + 0.000174, + 0.000180, + 0.000192, + 0.000215, + 0.000256, + 0.000328, + 0.000441, + 0.000600, + 0.000810, + 0.001070, + 0.001376, + 0.001727, + 0.002117, + 0.002539, + 0.002984, + 0.003443, + 0.003904, + 0.004359, + 0.004799, + 0.005218, + 0.005607, + 0.005957, + 0.006256, + 0.006497, + 0.006672, + 0.006775, + 0.006805, + 0.006761, + 0.006646, + 0.006463, + 0.006218, + 0.005918, + 0.005569, + 0.005182, + 0.004766, + 0.004333, + 0.003894, + 0.003460, + 0.003042, + 0.002652, + 0.002295, + 0.001977, + 0.001701, + 0.001467, + 0.001274, + 0.001118, + 0.000994, + 0.000899, + 0.000826, + 0.000771, + 0.000732, + 0.000705, + 0.000685, + 0.000672, + 0.000664, + 0.000659, + 0.000656, + 0.000654, + 0.000652, + 0.000650, + 0.000647, + 0.000644, + 0.000643, + 0.000642, + 0.000640, + 0.000637, + 0.000634, + 0.000633, + 0.000632, + 0.000629, + 0.000627, + 0.000626, + 0.000624, + 0.000622, + 0.000620, + 0.000617, + 0.000616, + 0.000614, + 0.000612, + 0.000609, + 0.000608, + 0.000607, + 0.000605, + 0.000605, + 0.000603, + 0.000603, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.16799496601686853), uv: (8.0, 6.999999999999999), - spectrum: [0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000024, 0.000118, 0.000284, 0.000519, 0.000821, 0.001184, 0.001600, 0.002057, 0.002541, 0.003040, 0.003543, 0.004039, 0.004522, 0.004979, 0.005400, 0.005776, 0.006094, 0.006349, 0.006533, 0.006646, 0.006686, 0.006655, 0.006557, 0.006396, 0.006177, 0.005911, 0.005603, 0.005266, 0.004908, 0.004540, 0.004173, 0.003818, 0.003482, 0.003173, 0.002896, 0.002653, 0.002445, 0.002271, 0.002128, 0.002014, 0.001923, 0.001853, 0.001800, 0.001759, 0.001729, 0.001708, 0.001693, 0.001681, 0.001673, 0.001668, 0.001663, 0.001660, 0.001657, 0.001656, 0.001654, 0.001653, 0.001652, 0.001652, 0.001651, 0.001650, 0.001650, 0.001650, 0.001649, 0.001649, 0.001649, 0.001648, 0.001648, 0.001648, 0.001648, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647, 0.001647], + spectrum: [ + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000024, + 0.000118, + 0.000284, + 0.000519, + 0.000821, + 0.001184, + 0.001600, + 0.002057, + 0.002541, + 0.003040, + 0.003543, + 0.004039, + 0.004522, + 0.004979, + 0.005400, + 0.005776, + 0.006094, + 0.006349, + 0.006533, + 0.006646, + 0.006686, + 0.006655, + 0.006557, + 0.006396, + 0.006177, + 0.005911, + 0.005603, + 0.005266, + 0.004908, + 0.004540, + 0.004173, + 0.003818, + 0.003482, + 0.003173, + 0.002896, + 0.002653, + 0.002445, + 0.002271, + 0.002128, + 0.002014, + 0.001923, + 0.001853, + 0.001800, + 0.001759, + 0.001729, + 0.001708, + 0.001693, + 0.001681, + 0.001673, + 0.001668, + 0.001663, + 0.001660, + 0.001657, + 0.001656, + 0.001654, + 0.001653, + 0.001652, + 0.001652, + 0.001651, + 0.001650, + 0.001650, + 0.001650, + 0.001649, + 0.001649, + 0.001649, + 0.001648, + 0.001648, + 0.001648, + 0.001648, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + 0.001647, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, 0.16799496601686853), uv: (9.0, 6.999999999999999), - spectrum: [0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000161, 0.000512, 0.001001, 0.001585, 0.002230, 0.002905, 0.003587, 0.004252, 0.004879, 0.005447, 0.005940, 0.006348, 0.006664, 0.006886, 0.007013, 0.007048, 0.006996, 0.006863, 0.006659, 0.006393, 0.006079, 0.005728, 0.005354, 0.004972, 0.004594, 0.004231, 0.003895, 0.003590, 0.003322, 0.003092, 0.002899, 0.002742, 0.002617, 0.002517, 0.002439, 0.002379, 0.002334, 0.002301, 0.002277, 0.002260, 0.002247, 0.002237, 0.002231, 0.002227, 0.002224, 0.002222, 0.002221, 0.002219, 0.002218, 0.002216, 0.002215, 0.002214, 0.002214, 0.002214, 0.002214, 0.002213, 0.002213, 0.002213, 0.002213, 0.002213, 0.002212, 0.002212, 0.002212, 0.002212, 0.002213, 0.002213, 0.002213, 0.002214, 0.002214, 0.002214, 0.002214, 0.002215], + spectrum: [ + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000161, + 0.000512, + 0.001001, + 0.001585, + 0.002230, + 0.002905, + 0.003587, + 0.004252, + 0.004879, + 0.005447, + 0.005940, + 0.006348, + 0.006664, + 0.006886, + 0.007013, + 0.007048, + 0.006996, + 0.006863, + 0.006659, + 0.006393, + 0.006079, + 0.005728, + 0.005354, + 0.004972, + 0.004594, + 0.004231, + 0.003895, + 0.003590, + 0.003322, + 0.003092, + 0.002899, + 0.002742, + 0.002617, + 0.002517, + 0.002439, + 0.002379, + 0.002334, + 0.002301, + 0.002277, + 0.002260, + 0.002247, + 0.002237, + 0.002231, + 0.002227, + 0.002224, + 0.002222, + 0.002221, + 0.002219, + 0.002218, + 0.002216, + 0.002215, + 0.002214, + 0.002214, + 0.002214, + 0.002214, + 0.002213, + 0.002213, + 0.002213, + 0.002213, + 0.002213, + 0.002212, + 0.002212, + 0.002212, + 0.002212, + 0.002213, + 0.002213, + 0.002213, + 0.002214, + 0.002214, + 0.002214, + 0.002214, + 0.002215, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.22399328802249138), uv: (2.0, 7.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001663, 0.008895, 0.018646, 0.028404, 0.036236, 0.040926, 0.041705, 0.038211, 0.030549, 0.019783, 0.008306, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001663, + 0.008895, + 0.018646, + 0.028404, + 0.036236, + 0.040926, + 0.041705, + 0.038211, + 0.030549, + 0.019783, + 0.008306, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.22399328802249138), uv: (3.0, 7.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000620, 0.001807, 0.003472, 0.005503, 0.007763, 0.010094, 0.012348, 0.014397, 0.016134, 0.017473, 0.018333, 0.018638, 0.018310, 0.017304, 0.015627, 0.013359, 0.010661, 0.007758, 0.004916, 0.002440, 0.000674, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000620, + 0.001807, + 0.003472, + 0.005503, + 0.007763, + 0.010094, + 0.012348, + 0.014397, + 0.016134, + 0.017473, + 0.018333, + 0.018638, + 0.018310, + 0.017304, + 0.015627, + 0.013359, + 0.010661, + 0.007758, + 0.004916, + 0.002440, + 0.000674, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.22399328802249138), uv: (4.0, 7.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000092, 0.000326, 0.000716, 0.001264, 0.001969, 0.002808, 0.003762, 0.004814, 0.005914, 0.007033, 0.008130, 0.009166, 0.010113, 0.010936, 0.011610, 0.012100, 0.012371, 0.012388, 0.012135, 0.011595, 0.010787, 0.009742, 0.008499, 0.007113, 0.005650, 0.004182, 0.002795, 0.001581, 0.000640, 0.000078, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000092, + 0.000326, + 0.000716, + 0.001264, + 0.001969, + 0.002808, + 0.003762, + 0.004814, + 0.005914, + 0.007033, + 0.008130, + 0.009166, + 0.010113, + 0.010936, + 0.011610, + 0.012100, + 0.012371, + 0.012388, + 0.012135, + 0.011595, + 0.010787, + 0.009742, + 0.008499, + 0.007113, + 0.005650, + 0.004182, + 0.002795, + 0.001581, + 0.000640, + 0.000078, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.22399328802249138), uv: (5.0, 7.999999999999999), - spectrum: [0.000011, 0.000011, 0.000011, 0.000011, 0.000012, 0.000013, 0.000015, 0.000018, 0.000023, 0.000032, 0.000048, 0.000076, 0.000125, 0.000213, 0.000359, 0.000581, 0.000890, 0.001291, 0.001779, 0.002348, 0.002989, 0.003689, 0.004435, 0.005202, 0.005971, 0.006722, 0.007437, 0.008098, 0.008686, 0.009184, 0.009569, 0.009819, 0.009916, 0.009845, 0.009605, 0.009201, 0.008645, 0.007949, 0.007137, 0.006235, 0.005273, 0.004285, 0.003309, 0.002387, 0.001561, 0.000872, 0.000360, 0.000059, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000011, + 0.000011, + 0.000011, + 0.000011, + 0.000012, + 0.000013, + 0.000015, + 0.000018, + 0.000023, + 0.000032, + 0.000048, + 0.000076, + 0.000125, + 0.000213, + 0.000359, + 0.000581, + 0.000890, + 0.001291, + 0.001779, + 0.002348, + 0.002989, + 0.003689, + 0.004435, + 0.005202, + 0.005971, + 0.006722, + 0.007437, + 0.008098, + 0.008686, + 0.009184, + 0.009569, + 0.009819, + 0.009916, + 0.009845, + 0.009605, + 0.009201, + 0.008645, + 0.007949, + 0.007137, + 0.006235, + 0.005273, + 0.004285, + 0.003309, + 0.002387, + 0.001561, + 0.000872, + 0.000360, + 0.000059, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.22399328802249138), uv: (6.0, 7.999999999999999), - spectrum: [0.000000, 0.000002, 0.000000, 0.000002, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000016, 0.000064, 0.000159, 0.000318, 0.000546, 0.000851, 0.001228, 0.001674, 0.002190, 0.002757, 0.003370, 0.004011, 0.004665, 0.005316, 0.005950, 0.006556, 0.007119, 0.007621, 0.008052, 0.008390, 0.008624, 0.008739, 0.008733, 0.008600, 0.008347, 0.007976, 0.007502, 0.006933, 0.006286, 0.005581, 0.004833, 0.004074, 0.003320, 0.002599, 0.001931, 0.001339, 0.000845, 0.000459, 0.000189, 0.000037, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000002, 0.000000, 0.000001, 0.000002, 0.000000, 0.000002, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000002, + 0.000000, + 0.000002, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000016, + 0.000064, + 0.000159, + 0.000318, + 0.000546, + 0.000851, + 0.001228, + 0.001674, + 0.002190, + 0.002757, + 0.003370, + 0.004011, + 0.004665, + 0.005316, + 0.005950, + 0.006556, + 0.007119, + 0.007621, + 0.008052, + 0.008390, + 0.008624, + 0.008739, + 0.008733, + 0.008600, + 0.008347, + 0.007976, + 0.007502, + 0.006933, + 0.006286, + 0.005581, + 0.004833, + 0.004074, + 0.003320, + 0.002599, + 0.001931, + 0.001339, + 0.000845, + 0.000459, + 0.000189, + 0.000037, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000002, + 0.000000, + 0.000001, + 0.000002, + 0.000000, + 0.000002, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.22399328802249138), uv: (7.000000000000001, 7.999999999999999), - spectrum: [0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000079, 0.000245, 0.000501, 0.000843, 0.001264, 0.001760, 0.002317, 0.002918, 0.003549, 0.004191, 0.004831, 0.005454, 0.006048, 0.006598, 0.007090, 0.007510, 0.007841, 0.008073, 0.008200, 0.008218, 0.008127, 0.007934, 0.007642, 0.007260, 0.006800, 0.006273, 0.005692, 0.005078, 0.004445, 0.003811, 0.003193, 0.002606, 0.002067, 0.001585, 0.001166, 0.000818, 0.000538, 0.000324, 0.000170, 0.000071, 0.000016, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001, 0.000001, 0.000002, 0.000001, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000079, + 0.000245, + 0.000501, + 0.000843, + 0.001264, + 0.001760, + 0.002317, + 0.002918, + 0.003549, + 0.004191, + 0.004831, + 0.005454, + 0.006048, + 0.006598, + 0.007090, + 0.007510, + 0.007841, + 0.008073, + 0.008200, + 0.008218, + 0.008127, + 0.007934, + 0.007642, + 0.007260, + 0.006800, + 0.006273, + 0.005692, + 0.005078, + 0.004445, + 0.003811, + 0.003193, + 0.002606, + 0.002067, + 0.001585, + 0.001166, + 0.000818, + 0.000538, + 0.000324, + 0.000170, + 0.000071, + 0.000016, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.22399328802249138), uv: (8.0, 7.999999999999999), - spectrum: [0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000129, 0.000421, 0.000855, 0.001404, 0.002036, 0.002724, 0.003441, 0.004166, 0.004880, 0.005562, 0.006197, 0.006764, 0.007247, 0.007631, 0.007909, 0.008076, 0.008130, 0.008073, 0.007912, 0.007653, 0.007303, 0.006878, 0.006388, 0.005847, 0.005274, 0.004686, 0.004101, 0.003532, 0.002996, 0.002503, 0.002059, 0.001672, 0.001342, 0.001066, 0.000841, 0.000660, 0.000518, 0.000409, 0.000325, 0.000263, 0.000217, 0.000184, 0.000161, 0.000145, 0.000133, 0.000124, 0.000118, 0.000113, 0.000110, 0.000108, 0.000106, 0.000104, 0.000104, 0.000103, 0.000102, 0.000102, 0.000102, 0.000102, 0.000102, 0.000102, 0.000101, 0.000100, 0.000099, 0.000099, 0.000099, 0.000099, 0.000099, 0.000098, 0.000099, 0.000098, 0.000098, 0.000098, 0.000098, 0.000098, 0.000098], + spectrum: [ + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000129, + 0.000421, + 0.000855, + 0.001404, + 0.002036, + 0.002724, + 0.003441, + 0.004166, + 0.004880, + 0.005562, + 0.006197, + 0.006764, + 0.007247, + 0.007631, + 0.007909, + 0.008076, + 0.008130, + 0.008073, + 0.007912, + 0.007653, + 0.007303, + 0.006878, + 0.006388, + 0.005847, + 0.005274, + 0.004686, + 0.004101, + 0.003532, + 0.002996, + 0.002503, + 0.002059, + 0.001672, + 0.001342, + 0.001066, + 0.000841, + 0.000660, + 0.000518, + 0.000409, + 0.000325, + 0.000263, + 0.000217, + 0.000184, + 0.000161, + 0.000145, + 0.000133, + 0.000124, + 0.000118, + 0.000113, + 0.000110, + 0.000108, + 0.000106, + 0.000104, + 0.000104, + 0.000103, + 0.000102, + 0.000102, + 0.000102, + 0.000102, + 0.000102, + 0.000102, + 0.000101, + 0.000100, + 0.000099, + 0.000099, + 0.000099, + 0.000099, + 0.000099, + 0.000098, + 0.000099, + 0.000098, + 0.000098, + 0.000098, + 0.000098, + 0.000098, + 0.000098, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.27999161002811424), uv: (3.0, 8.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000190, 0.002115, 0.005345, 0.009341, 0.013603, 0.017694, 0.021257, 0.024023, 0.025768, 0.026299, 0.025451, 0.023170, 0.019569, 0.014974, 0.009937, 0.005187, 0.001564, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000002, 0.000002, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000003, 0.000003, 0.000003], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000190, + 0.002115, + 0.005345, + 0.009341, + 0.013603, + 0.017694, + 0.021257, + 0.024023, + 0.025768, + 0.026299, + 0.025451, + 0.023170, + 0.019569, + 0.014974, + 0.009937, + 0.005187, + 0.001564, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000003, + 0.000003, + 0.000003, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.27999161002811424), uv: (4.0, 8.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000403, 0.001222, 0.002407, 0.003898, 0.005611, 0.007442, 0.009292, 0.011069, 0.012696, 0.014107, 0.015237, 0.016023, 0.016395, 0.016298, 0.015698, 0.014601, 0.013057, 0.011152, 0.009001, 0.006737, 0.004517, 0.002524, 0.000959, 0.000038, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000403, + 0.001222, + 0.002407, + 0.003898, + 0.005611, + 0.007442, + 0.009292, + 0.011069, + 0.012696, + 0.014107, + 0.015237, + 0.016023, + 0.016395, + 0.016298, + 0.015698, + 0.014601, + 0.013057, + 0.011152, + 0.009001, + 0.006737, + 0.004517, + 0.002524, + 0.000959, + 0.000038, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.27999161002811424), uv: (5.0, 8.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000040, 0.000290, 0.000749, 0.001404, 0.002233, 0.003211, 0.004304, 0.005468, 0.006658, 0.007830, 0.008948, 0.009977, 0.010885, 0.011635, 0.012188, 0.012510, 0.012570, 0.012351, 0.011858, 0.011105, 0.010118, 0.008939, 0.007617, 0.006206, 0.004771, 0.003386, 0.002132, 0.001092, 0.000355, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000040, + 0.000290, + 0.000749, + 0.001404, + 0.002233, + 0.003211, + 0.004304, + 0.005468, + 0.006658, + 0.007830, + 0.008948, + 0.009977, + 0.010885, + 0.011635, + 0.012188, + 0.012510, + 0.012570, + 0.012351, + 0.011858, + 0.011105, + 0.010118, + 0.008939, + 0.007617, + 0.006206, + 0.004771, + 0.003386, + 0.002132, + 0.001092, + 0.000355, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.27999161002811424), uv: (6.0, 8.999999999999998), - spectrum: [0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000126, 0.000417, 0.000868, 0.001464, 0.002193, 0.003028, 0.003939, 0.004892, 0.005855, 0.006801, 0.007706, 0.008544, 0.009289, 0.009915, 0.010392, 0.010698, 0.010810, 0.010727, 0.010448, 0.009980, 0.009340, 0.008548, 0.007633, 0.006625, 0.005558, 0.004474, 0.003416, 0.002430, 0.001558, 0.000844, 0.000327, 0.000038, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000003, 0.000004, 0.000004, 0.000004, 0.000005, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006], + spectrum: [ + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000126, + 0.000417, + 0.000868, + 0.001464, + 0.002193, + 0.003028, + 0.003939, + 0.004892, + 0.005855, + 0.006801, + 0.007706, + 0.008544, + 0.009289, + 0.009915, + 0.010392, + 0.010698, + 0.010810, + 0.010727, + 0.010448, + 0.009980, + 0.009340, + 0.008548, + 0.007633, + 0.006625, + 0.005558, + 0.004474, + 0.003416, + 0.002430, + 0.001558, + 0.000844, + 0.000327, + 0.000038, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000003, + 0.000004, + 0.000004, + 0.000004, + 0.000005, + 0.000006, + 0.000006, + 0.000006, + 0.000006, + 0.000006, + 0.000006, + 0.000006, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.27999161002811424), uv: (7.000000000000001, 8.999999999999998), - spectrum: [0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000125, 0.000447, 0.000950, 0.001610, 0.002391, 0.003254, 0.004165, 0.005093, 0.006008, 0.006887, 0.007704, 0.008433, 0.009048, 0.009525, 0.009844, 0.009996, 0.009980, 0.009795, 0.009450, 0.008957, 0.008332, 0.007596, 0.006772, 0.005887, 0.004970, 0.004056, 0.003174, 0.002356, 0.001629, 0.001019, 0.000543, 0.000213, 0.000033, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000125, + 0.000447, + 0.000950, + 0.001610, + 0.002391, + 0.003254, + 0.004165, + 0.005093, + 0.006008, + 0.006887, + 0.007704, + 0.008433, + 0.009048, + 0.009525, + 0.009844, + 0.009996, + 0.009980, + 0.009795, + 0.009450, + 0.008957, + 0.008332, + 0.007596, + 0.006772, + 0.005887, + 0.004970, + 0.004056, + 0.003174, + 0.002356, + 0.001629, + 0.001019, + 0.000543, + 0.000213, + 0.000033, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.27999161002811424), uv: (8.0, 8.999999999999998), - spectrum: [0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000139, 0.000650, 0.001426, 0.002377, 0.003433, 0.004542, 0.005650, 0.006710, 0.007679, 0.008516, 0.009187, 0.009675, 0.009969, 0.010064, 0.009969, 0.009693, 0.009245, 0.008648, 0.007923, 0.007105, 0.006218, 0.005292, 0.004367, 0.003476, 0.002649, 0.001905, 0.001272, 0.000762, 0.000384, 0.000134, 0.000010, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000139, + 0.000650, + 0.001426, + 0.002377, + 0.003433, + 0.004542, + 0.005650, + 0.006710, + 0.007679, + 0.008516, + 0.009187, + 0.009675, + 0.009969, + 0.010064, + 0.009969, + 0.009693, + 0.009245, + 0.008648, + 0.007923, + 0.007105, + 0.006218, + 0.005292, + 0.004367, + 0.003476, + 0.002649, + 0.001905, + 0.001272, + 0.000762, + 0.000384, + 0.000134, + 0.000010, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.3359899320337371), uv: (3.0, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003207, 0.010021, 0.018352, 0.026499, 0.033223, 0.037591, 0.038902, 0.036687, 0.030958, 0.022441, 0.012719, 0.004211, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003207, + 0.010021, + 0.018352, + 0.026499, + 0.033223, + 0.037591, + 0.038902, + 0.036687, + 0.030958, + 0.022441, + 0.012719, + 0.004211, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.3359899320337371), uv: (4.0, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000188, 0.001488, 0.003670, 0.006439, 0.009503, 0.012602, 0.015516, 0.018066, 0.020093, 0.021449, 0.021991, 0.021616, 0.020282, 0.018049, 0.015084, 0.011641, 0.008032, 0.004621, 0.001825, 0.000112, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000188, + 0.001488, + 0.003670, + 0.006439, + 0.009503, + 0.012602, + 0.015516, + 0.018066, + 0.020093, + 0.021449, + 0.021991, + 0.021616, + 0.020282, + 0.018049, + 0.015084, + 0.011641, + 0.008032, + 0.004621, + 0.001825, + 0.000112, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.3359899320337371), uv: (5.0, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000127, 0.000760, 0.001840, 0.003281, 0.004972, 0.006801, 0.008664, 0.010471, 0.012144, 0.013612, 0.014804, 0.015645, 0.016072, 0.016035, 0.015515, 0.014533, 0.013141, 0.011410, 0.009435, 0.007329, 0.005223, 0.003267, 0.001624, 0.000473, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000127, + 0.000760, + 0.001840, + 0.003281, + 0.004972, + 0.006801, + 0.008664, + 0.010471, + 0.012144, + 0.013612, + 0.014804, + 0.015645, + 0.016072, + 0.016035, + 0.015515, + 0.014533, + 0.013141, + 0.011410, + 0.009435, + 0.007329, + 0.005223, + 0.003267, + 0.001624, + 0.000473, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.3359899320337371), uv: (6.0, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000340, 0.001033, 0.002025, 0.003239, 0.004602, 0.006037, 0.007478, 0.008871, 0.010167, 0.011315, 0.012262, 0.012959, 0.013364, 0.013449, 0.013208, 0.012654, 0.011809, 0.010710, 0.009401, 0.007942, 0.006402, 0.004851, 0.003374, 0.002061, 0.001003, 0.000286, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000340, + 0.001033, + 0.002025, + 0.003239, + 0.004602, + 0.006037, + 0.007478, + 0.008871, + 0.010167, + 0.011315, + 0.012262, + 0.012959, + 0.013364, + 0.013449, + 0.013208, + 0.012654, + 0.011809, + 0.010710, + 0.009401, + 0.007942, + 0.006402, + 0.004851, + 0.003374, + 0.002061, + 0.001003, + 0.000286, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.3359899320337371), uv: (7.000000000000001, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000362, 0.001116, 0.002160, 0.003399, 0.004749, 0.006137, 0.007504, 0.008795, 0.009954, 0.010929, 0.011673, 0.012150, 0.012345, 0.012257, 0.011892, 0.011270, 0.010417, 0.009370, 0.008171, 0.006871, 0.005527, 0.004200, 0.002953, 0.001853, 0.000959, 0.000324, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000362, + 0.001116, + 0.002160, + 0.003399, + 0.004749, + 0.006137, + 0.007504, + 0.008795, + 0.009954, + 0.010929, + 0.011673, + 0.012150, + 0.012345, + 0.012257, + 0.011892, + 0.011270, + 0.010417, + 0.009370, + 0.008171, + 0.006871, + 0.005527, + 0.004200, + 0.002953, + 0.001853, + 0.000959, + 0.000324, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.3359899320337371), uv: (8.0, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000781, 0.002423, 0.004576, 0.006912, 0.009148, 0.011074, 0.012569, 0.013567, 0.014036, 0.013966, 0.013384, 0.012350, 0.010939, 0.009246, 0.007389, 0.005493, 0.003691, 0.002113, 0.000897, 0.000161, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000781, + 0.002423, + 0.004576, + 0.006912, + 0.009148, + 0.011074, + 0.012569, + 0.013567, + 0.014036, + 0.013966, + 0.013384, + 0.012350, + 0.010939, + 0.009246, + 0.007389, + 0.005493, + 0.003691, + 0.002113, + 0.000897, + 0.000161, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.39198825403935994), uv: (3.0, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000774, 0.020476, 0.044616, 0.062955, 0.068902, 0.059372, 0.036659, 0.010641, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000774, + 0.020476, + 0.044616, + 0.062955, + 0.068902, + 0.059372, + 0.036659, + 0.010641, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.39198825403935994), uv: (4.0, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002385, 0.006713, 0.012032, 0.017536, 0.022603, 0.026720, 0.029451, 0.030420, 0.029389, 0.026340, 0.021555, 0.015636, 0.009438, 0.003969, 0.000388, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002385, + 0.006713, + 0.012032, + 0.017536, + 0.022603, + 0.026720, + 0.029451, + 0.030420, + 0.029389, + 0.026340, + 0.021555, + 0.015636, + 0.009438, + 0.003969, + 0.000388, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.39198825403935994), uv: (5.0, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000985, 0.002940, 0.005535, 0.008470, 0.011484, 0.014360, 0.016916, 0.018981, 0.020393, 0.021014, 0.020758, 0.019611, 0.017654, 0.015041, 0.011974, 0.008702, 0.005513, 0.002746, 0.000771, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000985, + 0.002940, + 0.005535, + 0.008470, + 0.011484, + 0.014360, + 0.016916, + 0.018981, + 0.020393, + 0.021014, + 0.020758, + 0.019611, + 0.017654, + 0.015041, + 0.011974, + 0.008702, + 0.005513, + 0.002746, + 0.000771, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.39198825403935994), uv: (6.0, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000283, 0.001378, 0.003057, 0.005104, 0.007334, 0.009591, 0.011744, 0.013674, 0.015264, 0.016407, 0.017017, 0.017045, 0.016494, 0.015405, 0.013845, 0.011904, 0.009699, 0.007369, 0.005073, 0.002989, 0.001312, 0.000246, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000283, + 0.001378, + 0.003057, + 0.005104, + 0.007334, + 0.009591, + 0.011744, + 0.013674, + 0.015264, + 0.016407, + 0.017017, + 0.017045, + 0.016494, + 0.015405, + 0.013845, + 0.011904, + 0.009699, + 0.007369, + 0.005073, + 0.002989, + 0.001312, + 0.000246, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.39198825403935994), uv: (7.000000000000001, 10.999999999999998), - spectrum: [0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000867, 0.002473, 0.004533, 0.006818, 0.009136, 0.011318, 0.013202, 0.014652, 0.015575, 0.015933, 0.015725, 0.014981, 0.013753, 0.012120, 0.010181, 0.008060, 0.005895, 0.003839, 0.002058, 0.000722, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002], + spectrum: [ + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000867, + 0.002473, + 0.004533, + 0.006818, + 0.009136, + 0.011318, + 0.013202, + 0.014652, + 0.015575, + 0.015933, + 0.015725, + 0.014981, + 0.013753, + 0.012120, + 0.010181, + 0.008060, + 0.005895, + 0.003839, + 0.002058, + 0.000722, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000002, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.4479865760449827), uv: (4.0, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003473, 0.012890, 0.024467, 0.035265, 0.043015, 0.045962, 0.043133, 0.034720, 0.022428, 0.009488, 0.000315, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003473, + 0.012890, + 0.024467, + 0.035265, + 0.043015, + 0.045962, + 0.043133, + 0.034720, + 0.022428, + 0.009488, + 0.000315, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.4479865760449827), uv: (5.0, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001267, 0.004901, 0.009826, 0.015193, 0.020312, 0.024607, 0.027567, 0.028789, 0.028045, 0.025373, 0.021104, 0.015791, 0.010131, 0.004951, 0.001213, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001267, + 0.004901, + 0.009826, + 0.015193, + 0.020312, + 0.024607, + 0.027567, + 0.028789, + 0.028045, + 0.025373, + 0.021104, + 0.015791, + 0.010131, + 0.004951, + 0.001213, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.4479865760449827), uv: (6.0, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001557, 0.004498, 0.008198, 0.012149, 0.015929, 0.019160, 0.021509, 0.022720, 0.022675, 0.021409, 0.019070, 0.015884, 0.012148, 0.008230, 0.004562, 0.001637, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001557, + 0.004498, + 0.008198, + 0.012149, + 0.015929, + 0.019160, + 0.021509, + 0.022720, + 0.022675, + 0.021409, + 0.019070, + 0.015884, + 0.012148, + 0.008230, + 0.004562, + 0.001637, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.4479865760449827), uv: (7.000000000000001, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002626, 0.007837, 0.013870, 0.019250, 0.023008, 0.024733, 0.024362, 0.022048, 0.018145, 0.013206, 0.007968, 0.003318, 0.000286, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002626, + 0.007837, + 0.013870, + 0.019250, + 0.023008, + 0.024733, + 0.024362, + 0.022048, + 0.018145, + 0.013206, + 0.007968, + 0.003318, + 0.000286, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.5039848980506056), uv: (5.0, 13.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.007297, 0.018940, 0.031009, 0.040349, 0.044554, 0.042370, 0.034184, 0.022108, 0.009515, 0.000531, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.007297, + 0.018940, + 0.031009, + 0.040349, + 0.044554, + 0.042370, + 0.034184, + 0.022108, + 0.009515, + 0.000531, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.5039848980506056), uv: (6.0, 13.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003623, 0.012173, 0.022215, 0.030785, 0.035662, 0.035813, 0.031493, 0.023829, 0.014490, 0.005653, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003623, + 0.012173, + 0.022215, + 0.030785, + 0.035662, + 0.035813, + 0.031493, + 0.023829, + 0.014490, + 0.005653, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.2709906464701516, -0.22399328802249138), uv: (0.9999980468749987, 0.0), - spectrum: [0.023575, 0.023575, 0.023573, 0.023571, 0.023565, 0.023554, 0.023534, 0.023498, 0.023433, 0.023312, 0.023102, 0.022727, 0.022062, 0.020919, 0.019066, 0.016400, 0.013015, 0.009187, 0.005332, 0.002029, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000067, 0.000577, 0.001244, 0.001906, 0.002492, 0.002971, 0.003344, 0.003630, 0.003844, 0.004001, 0.004113, 0.004195, 0.004253, 0.004292, 0.004320, 0.004342, 0.004355, 0.004365, 0.004372, 0.004377, 0.004380, 0.004382, 0.004384, 0.004384, 0.004385, 0.004386, 0.004386, 0.004386, 0.004387, 0.004386, 0.004386, 0.004387, 0.004387, 0.004386, 0.004386, 0.004386, 0.004386, 0.004385, 0.004385, 0.004385], + spectrum: [ + 0.023575, + 0.023575, + 0.023573, + 0.023571, + 0.023565, + 0.023554, + 0.023534, + 0.023498, + 0.023433, + 0.023312, + 0.023102, + 0.022727, + 0.022062, + 0.020919, + 0.019066, + 0.016400, + 0.013015, + 0.009187, + 0.005332, + 0.002029, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000067, + 0.000577, + 0.001244, + 0.001906, + 0.002492, + 0.002971, + 0.003344, + 0.003630, + 0.003844, + 0.004001, + 0.004113, + 0.004195, + 0.004253, + 0.004292, + 0.004320, + 0.004342, + 0.004355, + 0.004365, + 0.004372, + 0.004377, + 0.004380, + 0.004382, + 0.004384, + 0.004384, + 0.004385, + 0.004386, + 0.004386, + 0.004386, + 0.004387, + 0.004386, + 0.004386, + 0.004387, + 0.004387, + 0.004386, + 0.004386, + 0.004386, + 0.004386, + 0.004385, + 0.004385, + 0.004385, + ], }, SpectrumDataPoint { xystar: (-0.2952315971735554, -0.16799496601686853), uv: (0.5527324218750005, 1.0), - spectrum: [0.002755, 0.002755, 0.002756, 0.002757, 0.002759, 0.002763, 0.002770, 0.002784, 0.002809, 0.002852, 0.002925, 0.003051, 0.003269, 0.003636, 0.004222, 0.005062, 0.006140, 0.007403, 0.008747, 0.010037, 0.011103, 0.011761, 0.011858, 0.011318, 0.010148, 0.008438, 0.006340, 0.004093, 0.002002, 0.000458, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.002755, + 0.002755, + 0.002756, + 0.002757, + 0.002759, + 0.002763, + 0.002770, + 0.002784, + 0.002809, + 0.002852, + 0.002925, + 0.003051, + 0.003269, + 0.003636, + 0.004222, + 0.005062, + 0.006140, + 0.007403, + 0.008747, + 0.010037, + 0.011103, + 0.011761, + 0.011858, + 0.011318, + 0.010148, + 0.008438, + 0.006340, + 0.004093, + 0.002002, + 0.000458, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.29681943237246833, -0.11199664401124569), uv: (0.5234355468750005, 1.9999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000644, 0.003307, 0.007382, 0.012106, 0.016609, 0.020063, 0.021845, 0.021638, 0.019453, 0.015563, 0.010596, 0.005450, 0.001342, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000644, + 0.003307, + 0.007382, + 0.012106, + 0.016609, + 0.020063, + 0.021845, + 0.021638, + 0.019453, + 0.015563, + 0.010596, + 0.005450, + 0.001342, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.29242642165547594, -0.05599832200562286), uv: (0.6044902343749996, 2.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.004514, 0.012223, 0.020649, 0.027526, 0.031288, 0.031190, 0.027174, 0.020110, 0.011515, 0.003670, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.004514, + 0.012223, + 0.020649, + 0.027526, + 0.031288, + 0.031190, + 0.027174, + 0.020110, + 0.011515, + 0.003670, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.28533409110033164, 0.0), uv: (0.7353496093749987, 3.9999999999999996), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002017, 0.013202, 0.026877, 0.037910, 0.043095, 0.040934, 0.032211, 0.019299, 0.006340, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002017, + 0.013202, + 0.026877, + 0.037910, + 0.043095, + 0.040934, + 0.032211, + 0.019299, + 0.006340, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.2743780282278324, 0.05599832200562286), uv: (0.9374980468749996, 5.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.004900, 0.019327, 0.035095, 0.046403, 0.049670, 0.044252, 0.031492, 0.014845, 0.000659, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.004900, + 0.019327, + 0.035095, + 0.046403, + 0.049670, + 0.044252, + 0.031492, + 0.014845, + 0.000659, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.27099054061447164, 0.07355259286543629), uv: (0.9999999999999991, 5.3134785156249995), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001600, 0.016345, 0.034217, 0.047985, 0.053062, 0.048335, 0.035048, 0.016928, 0.001058, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001600, + 0.016345, + 0.034217, + 0.047985, + 0.053062, + 0.048335, + 0.035048, + 0.016928, + 0.001058, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.2617282744764928, 0.11199664401124566), uv: (1.1708964843750005, 5.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.009734, 0.028769, 0.046634, 0.056239, 0.054914, 0.042978, 0.023819, 0.004833, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.009734, + 0.028769, + 0.046634, + 0.056239, + 0.054914, + 0.042978, + 0.023819, + 0.004833, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.24738482984631277, 0.16799496601686853), uv: (1.4355449218750005, 6.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000277, 0.019442, 0.042522, 0.058819, 0.063242, 0.054463, 0.034926, 0.011788, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000277, + 0.019442, + 0.042522, + 0.058819, + 0.063242, + 0.054463, + 0.034926, + 0.011788, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.23113598297743726, 0.22399328802249138), uv: (1.7353496093749996, 7.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.006807, 0.031020, 0.054932, 0.068424, 0.066501, 0.049084, 0.021876, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.006807, + 0.031020, + 0.054932, + 0.068424, + 0.066501, + 0.049084, + 0.021876, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.21679243249157729, 0.2681795733517758), uv: (2.0, 8.789064453124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.021923, 0.049140, 0.068549, 0.072642, 0.059125, 0.031591, 0.003161, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.021923, + 0.049140, + 0.068549, + 0.072642, + 0.059125, + 0.031591, + 0.003161, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.2129288060299024, 0.27999161002811424), uv: (2.0712871093750005, 8.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.017621, 0.045984, 0.068510, 0.075341, 0.062821, 0.034150, 0.003487, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.017621, + 0.045984, + 0.068510, + 0.075341, + 0.062821, + 0.034150, + 0.003487, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.1925515876438533, 0.3359899320337371), uv: (2.447263671875, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001791, 0.031646, 0.063609, 0.081019, 0.075572, 0.047743, 0.011608, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001791, + 0.031646, + 0.063609, + 0.081019, + 0.075572, + 0.047743, + 0.011608, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16899869885997837, 0.39198825403935994), uv: (2.881833984374999, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.009856, 0.045649, 0.077287, 0.086458, 0.066290, 0.026512, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.009856, + 0.045649, + 0.077287, + 0.086458, + 0.066290, + 0.026512, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16259432436868296, 0.40730040458449507), uv: (3.0, 11.273439453124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003203, 0.040349, 0.076519, 0.089963, 0.071555, 0.030200, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003203, + 0.040349, + 0.076519, + 0.089963, + 0.071555, + 0.030200, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.13999424255983572, 0.4479865760449827), uv: (3.4169902343749987, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.020613, 0.058369, 0.084682, 0.082562, 0.050245, 0.007521, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.020613, + 0.058369, + 0.084682, + 0.082562, + 0.050245, + 0.007521, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.10839621624578864, 0.49922733748630377), uv: (4.0, 12.915041015625), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.023420, 0.071224, 0.096062, 0.075741, 0.024085, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.023420, + 0.071224, + 0.096062, + 0.075741, + 0.024085, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.10331524946494723, 0.5039848980506056), uv: (4.093748046875, 13.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.021532, 0.065142, 0.090615, 0.077320, 0.032759, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.021532, + 0.065142, + 0.090615, + 0.077320, + 0.032759, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.05419810812289431, 0.542483853801194), uv: (5.0, 13.687501953124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.014494, 0.055320, 0.081441, 0.071778, 0.033095, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.014494, + 0.055320, + 0.081441, + 0.071778, + 0.033095, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.02397641735926503, 0.5039848980506056), uv: (6.442384765625, 13.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005204, 0.020626, 0.035192, 0.042422, 0.040706, 0.031487, 0.018026, 0.005302, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005204, + 0.020626, + 0.035192, + 0.042422, + 0.040706, + 0.031487, + 0.018026, + 0.005302, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.0, 0.5294686188037934), uv: (6.0, 13.455080078124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.010722, 0.035142, 0.053289, 0.055233, 0.041528, 0.019537, 0.000631, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.010722, + 0.035142, + 0.053289, + 0.055233, + 0.041528, + 0.019537, + 0.000631, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.09077135139353519, 0.39198825403935994), uv: (7.674806640625, 10.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000604, 0.004426, 0.009453, 0.014267, 0.018085, 0.020476, 0.021221, 0.020297, 0.017879, 0.014312, 0.010088, 0.005816, 0.002196, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000604, + 0.004426, + 0.009453, + 0.014267, + 0.018085, + 0.020476, + 0.021221, + 0.020297, + 0.017879, + 0.014312, + 0.010088, + 0.005816, + 0.002196, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.06181982293335631, 0.4479865760449827), uv: (7.140626953125001, 11.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001255, 0.008284, 0.016733, 0.023695, 0.027786, 0.028524, 0.025969, 0.020688, 0.013747, 0.006665, 0.001339, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000002], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001255, + 0.008284, + 0.016733, + 0.023695, + 0.027786, + 0.028524, + 0.025969, + 0.020688, + 0.013747, + 0.006665, + 0.001339, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + ], }, SpectrumDataPoint { xystar: (0.05419810812289436, 0.46050974766210345), uv: (7.000000000000001, 12.223634765624999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001972, 0.010154, 0.019515, 0.026750, 0.030390, 0.030062, 0.026050, 0.019258, 0.011200, 0.003936, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001972, + 0.010154, + 0.019515, + 0.026750, + 0.030390, + 0.030062, + 0.026050, + 0.019258, + 0.011200, + 0.003936, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.16000096606613853, 0.22399328802249138), uv: (8.952150390625002, 7.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000381, 0.001385, 0.002759, 0.004279, 0.005778, 0.007149, 0.008320, 0.009241, 0.009883, 0.010233, 0.010293, 0.010076, 0.009613, 0.008941, 0.008102, 0.007142, 0.006113, 0.005065, 0.004044, 0.003092, 0.002242, 0.001519, 0.000937, 0.000500, 0.000205, 0.000043, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000381, + 0.001385, + 0.002759, + 0.004279, + 0.005778, + 0.007149, + 0.008320, + 0.009241, + 0.009883, + 0.010233, + 0.010293, + 0.010076, + 0.009613, + 0.008941, + 0.008102, + 0.007142, + 0.006113, + 0.005065, + 0.004044, + 0.003092, + 0.002242, + 0.001519, + 0.000937, + 0.000500, + 0.000205, + 0.000043, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.13845933520088657, 0.27999161002811424), uv: (8.554689453125, 8.999999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001012, 0.002836, 0.005008, 0.007185, 0.009158, 0.010791, 0.011986, 0.012686, 0.012879, 0.012580, 0.011833, 0.010710, 0.009297, 0.007691, 0.006001, 0.004346, 0.002835, 0.001568, 0.000630, 0.000090, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001012, + 0.002836, + 0.005008, + 0.007185, + 0.009158, + 0.010791, + 0.011986, + 0.012686, + 0.012879, + 0.012580, + 0.011833, + 0.010710, + 0.009297, + 0.007691, + 0.006001, + 0.004346, + 0.002835, + 0.001568, + 0.000630, + 0.000090, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.1157532918564318, 0.3359899320337371), uv: (8.135744140625, 10.0), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000632, 0.003065, 0.006282, 0.009544, 0.012415, 0.014622, 0.015992, 0.016441, 0.015975, 0.014677, 0.012696, 0.010232, 0.007530, 0.004863, 0.002525, 0.000809, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000632, + 0.003065, + 0.006282, + 0.009544, + 0.012415, + 0.014622, + 0.015992, + 0.016441, + 0.015975, + 0.014677, + 0.012696, + 0.010232, + 0.007530, + 0.004863, + 0.002525, + 0.000809, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.10839621624578867, 0.35316140186421524), uv: (8.0, 10.306642578125), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000571, 0.003318, 0.006986, 0.010670, 0.013840, 0.016178, 0.017488, 0.017686, 0.016806, 0.014979, 0.012419, 0.009407, 0.006277, 0.003401, 0.001175, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000571, + 0.003318, + 0.006986, + 0.010670, + 0.013840, + 0.016178, + 0.017488, + 0.017686, + 0.016806, + 0.014979, + 0.012419, + 0.009407, + 0.006277, + 0.003401, + 0.001175, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.2017081039575845, 0.11199664401124566), uv: (9.721681640625, 5.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000121, 0.000506, 0.001076, 0.001767, 0.002517, 0.003271, 0.003991, 0.004651, 0.005234, 0.005724, 0.006115, 0.006403, 0.006593, 0.006686, 0.006690, 0.006615, 0.006473, 0.006278, 0.006045, 0.005787, 0.005517, 0.005248, 0.004990, 0.004753, 0.004542, 0.004357, 0.004200, 0.004070, 0.003966, 0.003883, 0.003819, 0.003770, 0.003733, 0.003706, 0.003687, 0.003671, 0.003661, 0.003654, 0.003648, 0.003643, 0.003640, 0.003637, 0.003636, 0.003635, 0.003634, 0.003633, 0.003633, 0.003632, 0.003632, 0.003632, 0.003632, 0.003632, 0.003631, 0.003631, 0.003631, 0.003630, 0.003630, 0.003630, 0.003630, 0.003630, 0.003629, 0.003629, 0.003629, 0.003629, 0.003629, 0.003629, 0.003629, 0.003629], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000121, + 0.000506, + 0.001076, + 0.001767, + 0.002517, + 0.003271, + 0.003991, + 0.004651, + 0.005234, + 0.005724, + 0.006115, + 0.006403, + 0.006593, + 0.006686, + 0.006690, + 0.006615, + 0.006473, + 0.006278, + 0.006045, + 0.005787, + 0.005517, + 0.005248, + 0.004990, + 0.004753, + 0.004542, + 0.004357, + 0.004200, + 0.004070, + 0.003966, + 0.003883, + 0.003819, + 0.003770, + 0.003733, + 0.003706, + 0.003687, + 0.003671, + 0.003661, + 0.003654, + 0.003648, + 0.003643, + 0.003640, + 0.003637, + 0.003636, + 0.003635, + 0.003634, + 0.003633, + 0.003633, + 0.003632, + 0.003632, + 0.003632, + 0.003632, + 0.003632, + 0.003631, + 0.003631, + 0.003631, + 0.003630, + 0.003630, + 0.003630, + 0.003630, + 0.003630, + 0.003629, + 0.003629, + 0.003629, + 0.003629, + 0.003629, + 0.003629, + 0.003629, + 0.003629, + ], }, SpectrumDataPoint { xystar: (0.18101331853175281, 0.16799496601686853), uv: (9.339845703125, 6.999999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000152, 0.000746, 0.001631, 0.002685, 0.003791, 0.004856, 0.005829, 0.006671, 0.007357, 0.007869, 0.008199, 0.008348, 0.008324, 0.008146, 0.007828, 0.007396, 0.006874, 0.006289, 0.005673, 0.005048, 0.004438, 0.003864, 0.003339, 0.002873, 0.002472, 0.002136, 0.001856, 0.001631, 0.001454, 0.001317, 0.001213, 0.001133, 0.001074, 0.001032, 0.001003, 0.000983, 0.000966, 0.000952, 0.000946, 0.000941, 0.000937, 0.000934, 0.000931, 0.000928, 0.000928, 0.000926, 0.000925, 0.000926, 0.000925, 0.000925, 0.000924, 0.000924, 0.000924, 0.000924, 0.000924, 0.000924, 0.000923, 0.000923, 0.000924, 0.000923, 0.000924, 0.000924, 0.000923, 0.000923, 0.000923, 0.000923, 0.000923], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000152, + 0.000746, + 0.001631, + 0.002685, + 0.003791, + 0.004856, + 0.005829, + 0.006671, + 0.007357, + 0.007869, + 0.008199, + 0.008348, + 0.008324, + 0.008146, + 0.007828, + 0.007396, + 0.006874, + 0.006289, + 0.005673, + 0.005048, + 0.004438, + 0.003864, + 0.003339, + 0.002873, + 0.002472, + 0.002136, + 0.001856, + 0.001631, + 0.001454, + 0.001317, + 0.001213, + 0.001133, + 0.001074, + 0.001032, + 0.001003, + 0.000983, + 0.000966, + 0.000952, + 0.000946, + 0.000941, + 0.000937, + 0.000934, + 0.000931, + 0.000928, + 0.000928, + 0.000926, + 0.000925, + 0.000926, + 0.000925, + 0.000925, + 0.000924, + 0.000924, + 0.000924, + 0.000924, + 0.000924, + 0.000924, + 0.000923, + 0.000923, + 0.000924, + 0.000923, + 0.000924, + 0.000924, + 0.000923, + 0.000923, + 0.000923, + 0.000923, + 0.000923, + ], }, SpectrumDataPoint { xystar: (0.162594324368683, 0.21715766472751205), uv: (9.0, 7.877931640624999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000430, 0.001426, 0.002756, 0.004211, 0.005644, 0.006955, 0.008079, 0.008968, 0.009596, 0.009950, 0.010031, 0.009854, 0.009445, 0.008834, 0.008061, 0.007171, 0.006210, 0.005222, 0.004251, 0.003335, 0.002507, 0.001787, 0.001190, 0.000723, 0.000380, 0.000153, 0.000032, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000430, + 0.001426, + 0.002756, + 0.004211, + 0.005644, + 0.006955, + 0.008079, + 0.008968, + 0.009596, + 0.009950, + 0.010031, + 0.009854, + 0.009445, + 0.008834, + 0.008061, + 0.007171, + 0.006210, + 0.005222, + 0.004251, + 0.003335, + 0.002507, + 0.001787, + 0.001190, + 0.000723, + 0.000380, + 0.000153, + 0.000032, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.26342196535533324, -0.05599832200562286), uv: (10.860353515625, 2.999999999999999), - spectrum: [0.000196, 0.000197, 0.000197, 0.000197, 0.000198, 0.000199, 0.000200, 0.000200, 0.000199, 0.000200, 0.000200, 0.000199, 0.000196, 0.000190, 0.000180, 0.000166, 0.000147, 0.000123, 0.000096, 0.000068, 0.000041, 0.000019, 0.000004, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000030, 0.000115, 0.000261, 0.000472, 0.000748, 0.001087, 0.001486, 0.001941, 0.002446, 0.002993, 0.003573, 0.004177, 0.004793, 0.005409, 0.006013, 0.006594, 0.007142, 0.007649, 0.008107, 0.008513, 0.008864, 0.009162, 0.009408, 0.009609, 0.009769, 0.009895, 0.009990, 0.010062, 0.010116, 0.010155, 0.010183, 0.010203, 0.010218, 0.010228, 0.010236, 0.010241, 0.010244, 0.010247, 0.010248, 0.010249, 0.010249, 0.010248, 0.010249, 0.010249, 0.010249, 0.010249, 0.010248, 0.010249, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010248, 0.010247, 0.010247], + spectrum: [ + 0.000196, + 0.000197, + 0.000197, + 0.000197, + 0.000198, + 0.000199, + 0.000200, + 0.000200, + 0.000199, + 0.000200, + 0.000200, + 0.000199, + 0.000196, + 0.000190, + 0.000180, + 0.000166, + 0.000147, + 0.000123, + 0.000096, + 0.000068, + 0.000041, + 0.000019, + 0.000004, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000030, + 0.000115, + 0.000261, + 0.000472, + 0.000748, + 0.001087, + 0.001486, + 0.001941, + 0.002446, + 0.002993, + 0.003573, + 0.004177, + 0.004793, + 0.005409, + 0.006013, + 0.006594, + 0.007142, + 0.007649, + 0.008107, + 0.008513, + 0.008864, + 0.009162, + 0.009408, + 0.009609, + 0.009769, + 0.009895, + 0.009990, + 0.010062, + 0.010116, + 0.010155, + 0.010183, + 0.010203, + 0.010218, + 0.010228, + 0.010236, + 0.010241, + 0.010244, + 0.010247, + 0.010248, + 0.010249, + 0.010249, + 0.010248, + 0.010249, + 0.010249, + 0.010249, + 0.010249, + 0.010248, + 0.010249, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010248, + 0.010247, + 0.010247, + ], }, SpectrumDataPoint { xystar: (0.24288596344939292, 0.0), uv: (10.481447265625, 3.9999999999999996), - spectrum: [0.000000, 0.000001, 0.000000, 0.000001, 0.000002, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000018, 0.000056, 0.000116, 0.000195, 0.000285, 0.000387, 0.000513, 0.000652, 0.000808, 0.000985, 0.001176, 0.001396, 0.001642, 0.001910, 0.002206, 0.002525, 0.002863, 0.003221, 0.003595, 0.003977, 0.004370, 0.004765, 0.005153, 0.005536, 0.005903, 0.006250, 0.006572, 0.006867, 0.007133, 0.007368, 0.007568, 0.007736, 0.007876, 0.007990, 0.008079, 0.008151, 0.008206, 0.008245, 0.008276, 0.008297, 0.008312, 0.008325, 0.008333, 0.008338, 0.008341, 0.008346, 0.008346, 0.008346, 0.008348, 0.008348, 0.008349, 0.008350, 0.008350, 0.008350, 0.008350, 0.008349, 0.008348, 0.008348, 0.008348, 0.008349, 0.008349, 0.008349, 0.008348, 0.008347, 0.008348, 0.008349, 0.008349, 0.008348, 0.008348, 0.008347, 0.008348, 0.008348, 0.008348, 0.008348], + spectrum: [ + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000002, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000018, + 0.000056, + 0.000116, + 0.000195, + 0.000285, + 0.000387, + 0.000513, + 0.000652, + 0.000808, + 0.000985, + 0.001176, + 0.001396, + 0.001642, + 0.001910, + 0.002206, + 0.002525, + 0.002863, + 0.003221, + 0.003595, + 0.003977, + 0.004370, + 0.004765, + 0.005153, + 0.005536, + 0.005903, + 0.006250, + 0.006572, + 0.006867, + 0.007133, + 0.007368, + 0.007568, + 0.007736, + 0.007876, + 0.007990, + 0.008079, + 0.008151, + 0.008206, + 0.008245, + 0.008276, + 0.008297, + 0.008312, + 0.008325, + 0.008333, + 0.008338, + 0.008341, + 0.008346, + 0.008346, + 0.008346, + 0.008348, + 0.008348, + 0.008349, + 0.008350, + 0.008350, + 0.008350, + 0.008350, + 0.008349, + 0.008348, + 0.008348, + 0.008348, + 0.008349, + 0.008349, + 0.008349, + 0.008348, + 0.008347, + 0.008348, + 0.008349, + 0.008349, + 0.008348, + 0.008348, + 0.008347, + 0.008348, + 0.008348, + 0.008348, + 0.008348, + ], }, SpectrumDataPoint { xystar: (0.22224410586352497, 0.05599832200562286), uv: (10.100587890625, 5.0), - spectrum: [0.000005, 0.000005, 0.000004, 0.000003, 0.000002, 0.000002, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000036, 0.000207, 0.000479, 0.000820, 0.001210, 0.001632, 0.002069, 0.002507, 0.002934, 0.003344, 0.003730, 0.004088, 0.004414, 0.004707, 0.004968, 0.005196, 0.005392, 0.005556, 0.005693, 0.005805, 0.005896, 0.005967, 0.006021, 0.006062, 0.006092, 0.006113, 0.006128, 0.006139, 0.006146, 0.006150, 0.006151, 0.006152, 0.006154, 0.006155, 0.006156, 0.006156, 0.006156, 0.006156, 0.006155, 0.006155, 0.006154, 0.006153, 0.006152, 0.006153, 0.006152, 0.006152, 0.006151, 0.006151, 0.006151, 0.006151, 0.006151, 0.006151, 0.006151, 0.006151, 0.006151, 0.006150, 0.006149, 0.006149, 0.006148, 0.006149, 0.006149, 0.006149, 0.006149, 0.006149, 0.006149, 0.006149, 0.006148, 0.006148, 0.006147, 0.006148], + spectrum: [ + 0.000005, + 0.000005, + 0.000004, + 0.000003, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000036, + 0.000207, + 0.000479, + 0.000820, + 0.001210, + 0.001632, + 0.002069, + 0.002507, + 0.002934, + 0.003344, + 0.003730, + 0.004088, + 0.004414, + 0.004707, + 0.004968, + 0.005196, + 0.005392, + 0.005556, + 0.005693, + 0.005805, + 0.005896, + 0.005967, + 0.006021, + 0.006062, + 0.006092, + 0.006113, + 0.006128, + 0.006139, + 0.006146, + 0.006150, + 0.006151, + 0.006152, + 0.006154, + 0.006155, + 0.006156, + 0.006156, + 0.006156, + 0.006156, + 0.006155, + 0.006155, + 0.006154, + 0.006153, + 0.006152, + 0.006153, + 0.006152, + 0.006152, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006151, + 0.006150, + 0.006149, + 0.006149, + 0.006148, + 0.006149, + 0.006149, + 0.006149, + 0.006149, + 0.006149, + 0.006149, + 0.006149, + 0.006148, + 0.006148, + 0.006147, + 0.006148, + ], }, SpectrumDataPoint { xystar: (0.21679243249157734, 0.07092767152142272), uv: (10.0, 5.266603515625), - spectrum: [0.000002, 0.000002, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000117, 0.000384, 0.000759, 0.001208, 0.001704, 0.002222, 0.002739, 0.003237, 0.003705, 0.004134, 0.004520, 0.004858, 0.005147, 0.005385, 0.005575, 0.005719, 0.005821, 0.005886, 0.005919, 0.005925, 0.005910, 0.005882, 0.005844, 0.005801, 0.005756, 0.005714, 0.005676, 0.005642, 0.005613, 0.005589, 0.005570, 0.005554, 0.005542, 0.005533, 0.005526, 0.005520, 0.005517, 0.005514, 0.005512, 0.005510, 0.005509, 0.005508, 0.005507, 0.005507, 0.005506, 0.005506, 0.005505, 0.005505, 0.005504, 0.005504, 0.005503, 0.005503, 0.005503, 0.005503, 0.005503, 0.005502, 0.005502, 0.005502, 0.005502, 0.005502, 0.005501, 0.005501, 0.005501, 0.005501, 0.005501, 0.005501, 0.005501, 0.005501, 0.005501], + spectrum: [ + 0.000002, + 0.000002, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000117, + 0.000384, + 0.000759, + 0.001208, + 0.001704, + 0.002222, + 0.002739, + 0.003237, + 0.003705, + 0.004134, + 0.004520, + 0.004858, + 0.005147, + 0.005385, + 0.005575, + 0.005719, + 0.005821, + 0.005886, + 0.005919, + 0.005925, + 0.005910, + 0.005882, + 0.005844, + 0.005801, + 0.005756, + 0.005714, + 0.005676, + 0.005642, + 0.005613, + 0.005589, + 0.005570, + 0.005554, + 0.005542, + 0.005533, + 0.005526, + 0.005520, + 0.005517, + 0.005514, + 0.005512, + 0.005510, + 0.005509, + 0.005508, + 0.005507, + 0.005507, + 0.005506, + 0.005506, + 0.005505, + 0.005505, + 0.005504, + 0.005504, + 0.005503, + 0.005503, + 0.005503, + 0.005503, + 0.005503, + 0.005502, + 0.005502, + 0.005502, + 0.005502, + 0.005502, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + 0.005501, + ], }, SpectrumDataPoint { xystar: (0.3045998248471417, -0.16799496601686853), uv: (11.620119140625, 1.0), - spectrum: [0.000432, 0.000432, 0.000432, 0.000433, 0.000433, 0.000433, 0.000434, 0.000433, 0.000431, 0.000427, 0.000420, 0.000407, 0.000384, 0.000346, 0.000289, 0.000212, 0.000126, 0.000047, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000137, 0.001087, 0.002640, 0.004596, 0.006770, 0.009006, 0.011176, 0.013187, 0.014983, 0.016531, 0.017831, 0.018895, 0.019746, 0.020411, 0.020918, 0.021298, 0.021578, 0.021782, 0.021929, 0.022035, 0.022112, 0.022165, 0.022203, 0.022229, 0.022248, 0.022260, 0.022269, 0.022275, 0.022279, 0.022282, 0.022283, 0.022285, 0.022286, 0.022286, 0.022287, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022288, 0.022287, 0.022287, 0.022287, 0.022288], + spectrum: [ + 0.000432, + 0.000432, + 0.000432, + 0.000433, + 0.000433, + 0.000433, + 0.000434, + 0.000433, + 0.000431, + 0.000427, + 0.000420, + 0.000407, + 0.000384, + 0.000346, + 0.000289, + 0.000212, + 0.000126, + 0.000047, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000137, + 0.001087, + 0.002640, + 0.004596, + 0.006770, + 0.009006, + 0.011176, + 0.013187, + 0.014983, + 0.016531, + 0.017831, + 0.018895, + 0.019746, + 0.020411, + 0.020918, + 0.021298, + 0.021578, + 0.021782, + 0.021929, + 0.022035, + 0.022112, + 0.022165, + 0.022203, + 0.022229, + 0.022248, + 0.022260, + 0.022269, + 0.022275, + 0.022279, + 0.022282, + 0.022283, + 0.022285, + 0.022286, + 0.022286, + 0.022287, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022288, + 0.022287, + 0.022287, + 0.022287, + 0.022288, + ], }, SpectrumDataPoint { xystar: (0.28401089510123756, -0.11199664401124569), uv: (11.240236328125002, 1.9999999999999998), - spectrum: [0.000269, 0.000269, 0.000270, 0.000270, 0.000271, 0.000272, 0.000274, 0.000275, 0.000277, 0.000277, 0.000276, 0.000271, 0.000263, 0.000249, 0.000228, 0.000199, 0.000162, 0.000120, 0.000074, 0.000035, 0.000008, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000106, 0.000420, 0.000922, 0.001589, 0.002395, 0.003309, 0.004298, 0.005328, 0.006368, 0.007384, 0.008349, 0.009242, 0.010046, 0.010753, 0.011357, 0.011864, 0.012279, 0.012613, 0.012874, 0.013077, 0.013230, 0.013342, 0.013425, 0.013485, 0.013529, 0.013560, 0.013582, 0.013598, 0.013609, 0.013617, 0.013623, 0.013626, 0.013629, 0.013630, 0.013630, 0.013630, 0.013630, 0.013631, 0.013630, 0.013631, 0.013631, 0.013631, 0.013631, 0.013631, 0.013632, 0.013631, 0.013632, 0.013631, 0.013631, 0.013631, 0.013631, 0.013631, 0.013631, 0.013631, 0.013631, 0.013630, 0.013630], + spectrum: [ + 0.000269, + 0.000269, + 0.000270, + 0.000270, + 0.000271, + 0.000272, + 0.000274, + 0.000275, + 0.000277, + 0.000277, + 0.000276, + 0.000271, + 0.000263, + 0.000249, + 0.000228, + 0.000199, + 0.000162, + 0.000120, + 0.000074, + 0.000035, + 0.000008, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000106, + 0.000420, + 0.000922, + 0.001589, + 0.002395, + 0.003309, + 0.004298, + 0.005328, + 0.006368, + 0.007384, + 0.008349, + 0.009242, + 0.010046, + 0.010753, + 0.011357, + 0.011864, + 0.012279, + 0.012613, + 0.012874, + 0.013077, + 0.013230, + 0.013342, + 0.013425, + 0.013485, + 0.013529, + 0.013560, + 0.013582, + 0.013598, + 0.013609, + 0.013617, + 0.013623, + 0.013626, + 0.013629, + 0.013630, + 0.013630, + 0.013630, + 0.013630, + 0.013631, + 0.013630, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013632, + 0.013631, + 0.013632, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013631, + 0.013630, + 0.013630, + ], }, SpectrumDataPoint { xystar: (0.27099054061447164, -0.07661478235667343), uv: (11.0, 2.6318378906249995), - spectrum: [0.000217, 0.000218, 0.000219, 0.000219, 0.000219, 0.000220, 0.000222, 0.000223, 0.000223, 0.000223, 0.000223, 0.000221, 0.000217, 0.000209, 0.000197, 0.000179, 0.000156, 0.000127, 0.000095, 0.000064, 0.000036, 0.000012, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000061, 0.000223, 0.000482, 0.000835, 0.001277, 0.001797, 0.002389, 0.003040, 0.003734, 0.004457, 0.005193, 0.005926, 0.006639, 0.007316, 0.007945, 0.008519, 0.009029, 0.009471, 0.009848, 0.010160, 0.010415, 0.010620, 0.010781, 0.010903, 0.010995, 0.011063, 0.011113, 0.011149, 0.011175, 0.011194, 0.011208, 0.011217, 0.011224, 0.011228, 0.011231, 0.011233, 0.011234, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011236, 0.011236, 0.011236, 0.011236, 0.011236, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011235, 0.011234, 0.011235, 0.011234, 0.011235, 0.011235], + spectrum: [ + 0.000217, + 0.000218, + 0.000219, + 0.000219, + 0.000219, + 0.000220, + 0.000222, + 0.000223, + 0.000223, + 0.000223, + 0.000223, + 0.000221, + 0.000217, + 0.000209, + 0.000197, + 0.000179, + 0.000156, + 0.000127, + 0.000095, + 0.000064, + 0.000036, + 0.000012, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000061, + 0.000223, + 0.000482, + 0.000835, + 0.001277, + 0.001797, + 0.002389, + 0.003040, + 0.003734, + 0.004457, + 0.005193, + 0.005926, + 0.006639, + 0.007316, + 0.007945, + 0.008519, + 0.009029, + 0.009471, + 0.009848, + 0.010160, + 0.010415, + 0.010620, + 0.010781, + 0.010903, + 0.010995, + 0.011063, + 0.011113, + 0.011149, + 0.011175, + 0.011194, + 0.011208, + 0.011217, + 0.011224, + 0.011228, + 0.011231, + 0.011233, + 0.011234, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011236, + 0.011236, + 0.011236, + 0.011236, + 0.011236, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011235, + 0.011234, + 0.011235, + 0.011234, + 0.011235, + 0.011235, + ], }, SpectrumDataPoint { xystar: (-0.27705083121816254, -0.19599412701967994), uv: (0.8881826171874998, 0.5000000000000004), - spectrum: [0.010364, 0.010365, 0.010364, 0.010364, 0.010364, 0.010363, 0.010362, 0.010360, 0.010355, 0.010347, 0.010332, 0.010304, 0.010254, 0.010166, 0.010018, 0.009790, 0.009470, 0.009054, 0.008545, 0.007947, 0.007269, 0.006521, 0.005719, 0.004886, 0.004046, 0.003221, 0.002435, 0.001712, 0.001075, 0.000554, 0.000183, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000010, 0.000072, 0.000164, 0.000270, 0.000377, 0.000477, 0.000566, 0.000644, 0.000708, 0.000758, 0.000798, 0.000828, 0.000851, 0.000867, 0.000879, 0.000887, 0.000893, 0.000895, 0.000898, 0.000900, 0.000902, 0.000903, 0.000904, 0.000904, 0.000904, 0.000904, 0.000904, 0.000904, 0.000903, 0.000903, 0.000903, 0.000903, 0.000904, 0.000904, 0.000903, 0.000903, 0.000903, 0.000903, 0.000902, 0.000903, 0.000903, 0.000903, 0.000903, 0.000902, 0.000903, 0.000903, 0.000903], + spectrum: [ + 0.010364, + 0.010365, + 0.010364, + 0.010364, + 0.010364, + 0.010363, + 0.010362, + 0.010360, + 0.010355, + 0.010347, + 0.010332, + 0.010304, + 0.010254, + 0.010166, + 0.010018, + 0.009790, + 0.009470, + 0.009054, + 0.008545, + 0.007947, + 0.007269, + 0.006521, + 0.005719, + 0.004886, + 0.004046, + 0.003221, + 0.002435, + 0.001712, + 0.001075, + 0.000554, + 0.000183, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000010, + 0.000072, + 0.000164, + 0.000270, + 0.000377, + 0.000477, + 0.000566, + 0.000644, + 0.000708, + 0.000758, + 0.000798, + 0.000828, + 0.000851, + 0.000867, + 0.000879, + 0.000887, + 0.000893, + 0.000895, + 0.000898, + 0.000900, + 0.000902, + 0.000903, + 0.000904, + 0.000904, + 0.000904, + 0.000904, + 0.000904, + 0.000904, + 0.000903, + 0.000903, + 0.000903, + 0.000903, + 0.000904, + 0.000904, + 0.000903, + 0.000903, + 0.000903, + 0.000903, + 0.000902, + 0.000903, + 0.000903, + 0.000903, + 0.000903, + 0.000902, + 0.000903, + 0.000903, + 0.000903, + ], }, SpectrumDataPoint { xystar: (0.29294238870336275, -0.19599412701967994), uv: (11.405029785156252, 0.5000000000000004), - spectrum: [0.001850, 0.001850, 0.001849, 0.001849, 0.001849, 0.001847, 0.001843, 0.001837, 0.001826, 0.001806, 0.001773, 0.001712, 0.001606, 0.001429, 0.001158, 0.000804, 0.000422, 0.000109, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000753, 0.003311, 0.006908, 0.010950, 0.015008, 0.018799, 0.022162, 0.025033, 0.027397, 0.029286, 0.030753, 0.031867, 0.032696, 0.033302, 0.033742, 0.034060, 0.034288, 0.034449, 0.034562, 0.034642, 0.034699, 0.034740, 0.034768, 0.034788, 0.034801, 0.034811, 0.034817, 0.034822, 0.034825, 0.034827, 0.034829, 0.034830, 0.034830, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831, 0.034831], + spectrum: [ + 0.001850, + 0.001850, + 0.001849, + 0.001849, + 0.001849, + 0.001847, + 0.001843, + 0.001837, + 0.001826, + 0.001806, + 0.001773, + 0.001712, + 0.001606, + 0.001429, + 0.001158, + 0.000804, + 0.000422, + 0.000109, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000753, + 0.003311, + 0.006908, + 0.010950, + 0.015008, + 0.018799, + 0.022162, + 0.025033, + 0.027397, + 0.029286, + 0.030753, + 0.031867, + 0.032696, + 0.033302, + 0.033742, + 0.034060, + 0.034288, + 0.034449, + 0.034562, + 0.034642, + 0.034699, + 0.034740, + 0.034768, + 0.034788, + 0.034801, + 0.034811, + 0.034817, + 0.034822, + 0.034825, + 0.034827, + 0.034829, + 0.034830, + 0.034830, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + 0.034831, + ], }, SpectrumDataPoint { xystar: (-0.2835080276937417, -0.13999580501405712), uv: (0.7690419921874998, 1.5), - spectrum: [0.006873, 0.006873, 0.006873, 0.006873, 0.006874, 0.006875, 0.006877, 0.006880, 0.006882, 0.006887, 0.006895, 0.006915, 0.006949, 0.007001, 0.007082, 0.007199, 0.007349, 0.007518, 0.007697, 0.007860, 0.007985, 0.008034, 0.007989, 0.007829, 0.007538, 0.007119, 0.006569, 0.005900, 0.005122, 0.004258, 0.003321, 0.002359, 0.001441, 0.000665, 0.000138, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000002, 0.000001, 0.000002, 0.000001, 0.000000, 0.000003, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.006873, + 0.006873, + 0.006873, + 0.006873, + 0.006874, + 0.006875, + 0.006877, + 0.006880, + 0.006882, + 0.006887, + 0.006895, + 0.006915, + 0.006949, + 0.007001, + 0.007082, + 0.007199, + 0.007349, + 0.007518, + 0.007697, + 0.007860, + 0.007985, + 0.008034, + 0.007989, + 0.007829, + 0.007538, + 0.007119, + 0.006569, + 0.005900, + 0.005122, + 0.004258, + 0.003321, + 0.002359, + 0.001441, + 0.000665, + 0.000138, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000002, + 0.000001, + 0.000002, + 0.000001, + 0.000000, + 0.000003, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.28264795029433065, -0.13999580501405712), uv: (11.2150888671875, 1.5), - spectrum: [0.000658, 0.000658, 0.000658, 0.000658, 0.000658, 0.000658, 0.000658, 0.000657, 0.000656, 0.000653, 0.000647, 0.000640, 0.000625, 0.000597, 0.000554, 0.000493, 0.000413, 0.000320, 0.000219, 0.000123, 0.000046, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000219, 0.000791, 0.001656, 0.002753, 0.004015, 0.005375, 0.006768, 0.008138, 0.009438, 0.010631, 0.011696, 0.012617, 0.013393, 0.014035, 0.014554, 0.014963, 0.015280, 0.015522, 0.015702, 0.015834, 0.015929, 0.015997, 0.016047, 0.016082, 0.016107, 0.016124, 0.016136, 0.016145, 0.016151, 0.016155, 0.016157, 0.016159, 0.016160, 0.016160, 0.016161, 0.016161, 0.016162, 0.016162, 0.016162, 0.016162, 0.016162, 0.016162, 0.016161, 0.016162, 0.016162, 0.016162, 0.016162, 0.016162, 0.016161, 0.016161, 0.016161, 0.016161, 0.016161, 0.016161], + spectrum: [ + 0.000658, + 0.000658, + 0.000658, + 0.000658, + 0.000658, + 0.000658, + 0.000658, + 0.000657, + 0.000656, + 0.000653, + 0.000647, + 0.000640, + 0.000625, + 0.000597, + 0.000554, + 0.000493, + 0.000413, + 0.000320, + 0.000219, + 0.000123, + 0.000046, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000219, + 0.000791, + 0.001656, + 0.002753, + 0.004015, + 0.005375, + 0.006768, + 0.008138, + 0.009438, + 0.010631, + 0.011696, + 0.012617, + 0.013393, + 0.014035, + 0.014554, + 0.014963, + 0.015280, + 0.015522, + 0.015702, + 0.015834, + 0.015929, + 0.015997, + 0.016047, + 0.016082, + 0.016107, + 0.016124, + 0.016136, + 0.016145, + 0.016151, + 0.016155, + 0.016157, + 0.016159, + 0.016160, + 0.016160, + 0.016161, + 0.016161, + 0.016162, + 0.016162, + 0.016162, + 0.016162, + 0.016162, + 0.016162, + 0.016161, + 0.016162, + 0.016162, + 0.016162, + 0.016162, + 0.016162, + 0.016161, + 0.016161, + 0.016161, + 0.016161, + 0.016161, + 0.016161, + ], }, SpectrumDataPoint { xystar: (-0.2828067338142219, -0.08399748300843428), uv: (0.7819814453124998, 2.4999999999999996), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000034, 0.000173, 0.000488, 0.001070, 0.001979, 0.003225, 0.004773, 0.006546, 0.008433, 0.010292, 0.011964, 0.013297, 0.014166, 0.014492, 0.014239, 0.013408, 0.012042, 0.010207, 0.007997, 0.005554, 0.003125, 0.001099, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000034, + 0.000173, + 0.000488, + 0.001070, + 0.001979, + 0.003225, + 0.004773, + 0.006546, + 0.008433, + 0.010292, + 0.011964, + 0.013297, + 0.014166, + 0.014492, + 0.014239, + 0.013408, + 0.012042, + 0.010207, + 0.007997, + 0.005554, + 0.003125, + 0.001099, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.24779758231348623, -0.08252094287808212), uv: (10.572070703125, 2.5263675781249995), - spectrum: [0.000739, 0.000739, 0.000739, 0.000738, 0.000737, 0.000737, 0.000737, 0.000737, 0.000738, 0.000737, 0.000734, 0.000730, 0.000723, 0.000710, 0.000688, 0.000653, 0.000606, 0.000548, 0.000479, 0.000406, 0.000327, 0.000245, 0.000167, 0.000099, 0.000044, 0.000009, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000058, 0.000211, 0.000457, 0.000794, 0.001214, 0.001712, 0.002279, 0.002901, 0.003568, 0.004263, 0.004972, 0.005677, 0.006364, 0.007017, 0.007625, 0.008177, 0.008666, 0.009090, 0.009450, 0.009750, 0.009994, 0.010190, 0.010345, 0.010463, 0.010553, 0.010620, 0.010669, 0.010704, 0.010729, 0.010746, 0.010757, 0.010765, 0.010770, 0.010773, 0.010776, 0.010778, 0.010779, 0.010780, 0.010781, 0.010781, 0.010782, 0.010782, 0.010782, 0.010781, 0.010781, 0.010780, 0.010780, 0.010779, 0.010778, 0.010778, 0.010777, 0.010777, 0.010777, 0.010777, 0.010777, 0.010776, 0.010776, 0.010774, 0.010773, 0.010773, 0.010772], + spectrum: [ + 0.000739, + 0.000739, + 0.000739, + 0.000738, + 0.000737, + 0.000737, + 0.000737, + 0.000737, + 0.000738, + 0.000737, + 0.000734, + 0.000730, + 0.000723, + 0.000710, + 0.000688, + 0.000653, + 0.000606, + 0.000548, + 0.000479, + 0.000406, + 0.000327, + 0.000245, + 0.000167, + 0.000099, + 0.000044, + 0.000009, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000058, + 0.000211, + 0.000457, + 0.000794, + 0.001214, + 0.001712, + 0.002279, + 0.002901, + 0.003568, + 0.004263, + 0.004972, + 0.005677, + 0.006364, + 0.007017, + 0.007625, + 0.008177, + 0.008666, + 0.009090, + 0.009450, + 0.009750, + 0.009994, + 0.010190, + 0.010345, + 0.010463, + 0.010553, + 0.010620, + 0.010669, + 0.010704, + 0.010729, + 0.010746, + 0.010757, + 0.010765, + 0.010770, + 0.010773, + 0.010776, + 0.010778, + 0.010779, + 0.010780, + 0.010781, + 0.010781, + 0.010782, + 0.010782, + 0.010782, + 0.010781, + 0.010781, + 0.010780, + 0.010780, + 0.010779, + 0.010778, + 0.010778, + 0.010777, + 0.010777, + 0.010777, + 0.010777, + 0.010777, + 0.010776, + 0.010776, + 0.010774, + 0.010773, + 0.010773, + 0.010772, + ], }, SpectrumDataPoint { xystar: (0.27533065877672697, -0.10020269012638827), uv: (11.080078776041669, 2.210612630208333), - spectrum: [0.000362, 0.000362, 0.000362, 0.000362, 0.000361, 0.000360, 0.000359, 0.000358, 0.000356, 0.000353, 0.000350, 0.000346, 0.000340, 0.000328, 0.000310, 0.000284, 0.000248, 0.000206, 0.000158, 0.000107, 0.000060, 0.000022, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000155, 0.000462, 0.000913, 0.001492, 0.002182, 0.002961, 0.003806, 0.004695, 0.005600, 0.006498, 0.007365, 0.008180, 0.008928, 0.009598, 0.010184, 0.010683, 0.011100, 0.011440, 0.011712, 0.011927, 0.012093, 0.012219, 0.012312, 0.012380, 0.012430, 0.012465, 0.012490, 0.012508, 0.012520, 0.012529, 0.012534, 0.012538, 0.012541, 0.012543, 0.012544, 0.012545, 0.012546, 0.012547, 0.012547, 0.012547, 0.012547, 0.012547, 0.012547, 0.012547, 0.012547, 0.012546, 0.012546, 0.012546, 0.012545, 0.012545, 0.012545, 0.012545, 0.012545, 0.012545, 0.012544, 0.012544, 0.012544, 0.012544], + spectrum: [ + 0.000362, + 0.000362, + 0.000362, + 0.000362, + 0.000361, + 0.000360, + 0.000359, + 0.000358, + 0.000356, + 0.000353, + 0.000350, + 0.000346, + 0.000340, + 0.000328, + 0.000310, + 0.000284, + 0.000248, + 0.000206, + 0.000158, + 0.000107, + 0.000060, + 0.000022, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000155, + 0.000462, + 0.000913, + 0.001492, + 0.002182, + 0.002961, + 0.003806, + 0.004695, + 0.005600, + 0.006498, + 0.007365, + 0.008180, + 0.008928, + 0.009598, + 0.010184, + 0.010683, + 0.011100, + 0.011440, + 0.011712, + 0.011927, + 0.012093, + 0.012219, + 0.012312, + 0.012380, + 0.012430, + 0.012465, + 0.012490, + 0.012508, + 0.012520, + 0.012529, + 0.012534, + 0.012538, + 0.012541, + 0.012543, + 0.012544, + 0.012545, + 0.012546, + 0.012547, + 0.012547, + 0.012547, + 0.012547, + 0.012547, + 0.012547, + 0.012547, + 0.012547, + 0.012546, + 0.012546, + 0.012546, + 0.012545, + 0.012545, + 0.012545, + 0.012545, + 0.012545, + 0.012545, + 0.012544, + 0.012544, + 0.012544, + 0.012544, + ], }, SpectrumDataPoint { xystar: (-0.2799353984961877, -0.02799916100281143), uv: (0.8349599609374989, 3.4999999999999996), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001439, 0.004357, 0.008262, 0.012568, 0.016679, 0.020035, 0.022223, 0.023000, 0.022257, 0.020070, 0.016618, 0.012202, 0.007311, 0.002797, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001439, + 0.004357, + 0.008262, + 0.012568, + 0.016679, + 0.020035, + 0.022223, + 0.023000, + 0.022257, + 0.020070, + 0.016618, + 0.012202, + 0.007311, + 0.002797, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.23497319844697023, -0.02799916100281143), uv: (10.3354501953125, 3.4999999999999996), - spectrum: [0.000379, 0.000379, 0.000379, 0.000379, 0.000380, 0.000381, 0.000381, 0.000381, 0.000380, 0.000379, 0.000377, 0.000375, 0.000373, 0.000369, 0.000362, 0.000352, 0.000339, 0.000324, 0.000306, 0.000287, 0.000268, 0.000252, 0.000240, 0.000232, 0.000231, 0.000242, 0.000266, 0.000304, 0.000361, 0.000437, 0.000539, 0.000673, 0.000841, 0.001047, 0.001290, 0.001573, 0.001892, 0.002247, 0.002633, 0.003046, 0.003482, 0.003934, 0.004396, 0.004861, 0.005321, 0.005770, 0.006198, 0.006600, 0.006971, 0.007304, 0.007598, 0.007852, 0.008065, 0.008241, 0.008383, 0.008496, 0.008583, 0.008649, 0.008698, 0.008735, 0.008762, 0.008781, 0.008795, 0.008806, 0.008814, 0.008820, 0.008823, 0.008826, 0.008828, 0.008829, 0.008829, 0.008829, 0.008829, 0.008828, 0.008828, 0.008827, 0.008827, 0.008827, 0.008827, 0.008827, 0.008827, 0.008826, 0.008826, 0.008826, 0.008826, 0.008826, 0.008826, 0.008827, 0.008827, 0.008828, 0.008828, 0.008829, 0.008829, 0.008830, 0.008830], + spectrum: [ + 0.000379, + 0.000379, + 0.000379, + 0.000379, + 0.000380, + 0.000381, + 0.000381, + 0.000381, + 0.000380, + 0.000379, + 0.000377, + 0.000375, + 0.000373, + 0.000369, + 0.000362, + 0.000352, + 0.000339, + 0.000324, + 0.000306, + 0.000287, + 0.000268, + 0.000252, + 0.000240, + 0.000232, + 0.000231, + 0.000242, + 0.000266, + 0.000304, + 0.000361, + 0.000437, + 0.000539, + 0.000673, + 0.000841, + 0.001047, + 0.001290, + 0.001573, + 0.001892, + 0.002247, + 0.002633, + 0.003046, + 0.003482, + 0.003934, + 0.004396, + 0.004861, + 0.005321, + 0.005770, + 0.006198, + 0.006600, + 0.006971, + 0.007304, + 0.007598, + 0.007852, + 0.008065, + 0.008241, + 0.008383, + 0.008496, + 0.008583, + 0.008649, + 0.008698, + 0.008735, + 0.008762, + 0.008781, + 0.008795, + 0.008806, + 0.008814, + 0.008820, + 0.008823, + 0.008826, + 0.008828, + 0.008829, + 0.008829, + 0.008829, + 0.008829, + 0.008828, + 0.008828, + 0.008827, + 0.008827, + 0.008827, + 0.008827, + 0.008827, + 0.008827, + 0.008826, + 0.008826, + 0.008826, + 0.008826, + 0.008826, + 0.008826, + 0.008827, + 0.008827, + 0.008828, + 0.008828, + 0.008829, + 0.008829, + 0.008830, + 0.008830, + ], }, SpectrumDataPoint { xystar: (-0.27542330013927685, 0.02799916100281143), uv: (0.9182119140624989, 4.5), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000232, 0.005811, 0.014294, 0.023164, 0.030417, 0.034696, 0.035224, 0.031977, 0.025412, 0.016514, 0.007021, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000232, + 0.005811, + 0.014294, + 0.023164, + 0.030417, + 0.034696, + 0.035224, + 0.031977, + 0.025412, + 0.016514, + 0.007021, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.22467873357401813, 0.02799916100281143), uv: (10.1455087890625, 4.5), - spectrum: [0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000005, 0.000042, 0.000109, 0.000206, 0.000331, 0.000476, 0.000641, 0.000822, 0.001012, 0.001217, 0.001434, 0.001657, 0.001892, 0.002139, 0.002397, 0.002664, 0.002939, 0.003220, 0.003507, 0.003797, 0.004088, 0.004380, 0.004667, 0.004949, 0.005224, 0.005485, 0.005731, 0.005964, 0.006177, 0.006367, 0.006538, 0.006687, 0.006813, 0.006919, 0.007007, 0.007076, 0.007131, 0.007174, 0.007208, 0.007230, 0.007247, 0.007262, 0.007272, 0.007278, 0.007282, 0.007286, 0.007288, 0.007289, 0.007290, 0.007291, 0.007291, 0.007292, 0.007291, 0.007291, 0.007292, 0.007292, 0.007292, 0.007293, 0.007293, 0.007295, 0.007296, 0.007296, 0.007296, 0.007295, 0.007295, 0.007295, 0.007296, 0.007296, 0.007295, 0.007295, 0.007294, 0.007294, 0.007294, 0.007293, 0.007293, 0.007294], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000005, + 0.000042, + 0.000109, + 0.000206, + 0.000331, + 0.000476, + 0.000641, + 0.000822, + 0.001012, + 0.001217, + 0.001434, + 0.001657, + 0.001892, + 0.002139, + 0.002397, + 0.002664, + 0.002939, + 0.003220, + 0.003507, + 0.003797, + 0.004088, + 0.004380, + 0.004667, + 0.004949, + 0.005224, + 0.005485, + 0.005731, + 0.005964, + 0.006177, + 0.006367, + 0.006538, + 0.006687, + 0.006813, + 0.006919, + 0.007007, + 0.007076, + 0.007131, + 0.007174, + 0.007208, + 0.007230, + 0.007247, + 0.007262, + 0.007272, + 0.007278, + 0.007282, + 0.007286, + 0.007288, + 0.007289, + 0.007290, + 0.007291, + 0.007291, + 0.007292, + 0.007291, + 0.007291, + 0.007292, + 0.007292, + 0.007292, + 0.007293, + 0.007293, + 0.007295, + 0.007296, + 0.007296, + 0.007296, + 0.007295, + 0.007295, + 0.007295, + 0.007296, + 0.007296, + 0.007295, + 0.007295, + 0.007294, + 0.007294, + 0.007294, + 0.007293, + 0.007293, + 0.007294, + ], }, SpectrumDataPoint { xystar: (-0.2721197031522586, 0.06184974562556067), uv: (0.9791660156249993, 5.104492838541667), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005774, 0.019422, 0.033963, 0.044428, 0.047728, 0.043253, 0.032054, 0.016954, 0.003193, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005774, + 0.019422, + 0.033963, + 0.044428, + 0.047728, + 0.043253, + 0.032054, + 0.016954, + 0.003193, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.24745884413771813, 0.08190850497983466), uv: (1.4341792968749996, 5.462695703124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000077, 0.001801, 0.004814, 0.008664, 0.012863, 0.016896, 0.020328, 0.022837, 0.024195, 0.024286, 0.023057, 0.020511, 0.016733, 0.012028, 0.007001, 0.002584, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000077, + 0.001801, + 0.004814, + 0.008664, + 0.012863, + 0.016896, + 0.020328, + 0.022837, + 0.024195, + 0.024286, + 0.023057, + 0.020511, + 0.016733, + 0.012028, + 0.007001, + 0.002584, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.19209632353562106, 0.08138352071103196), uv: (9.544336328125002, 5.453320703125), - spectrum: [0.000004, 0.000004, 0.000002, 0.000002, 0.000002, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000009, 0.000083, 0.000221, 0.000415, 0.000658, 0.000937, 0.001241, 0.001564, 0.001897, 0.002233, 0.002573, 0.002906, 0.003230, 0.003540, 0.003830, 0.004099, 0.004342, 0.004559, 0.004750, 0.004914, 0.005052, 0.005166, 0.005257, 0.005327, 0.005378, 0.005412, 0.005431, 0.005439, 0.005438, 0.005432, 0.005423, 0.005410, 0.005398, 0.005385, 0.005375, 0.005366, 0.005360, 0.005357, 0.005354, 0.005354, 0.005354, 0.005352, 0.005354, 0.005354, 0.005355, 0.005355, 0.005354, 0.005353, 0.005350, 0.005349, 0.005348, 0.005346, 0.005346, 0.005345, 0.005344, 0.005344, 0.005344, 0.005343, 0.005343, 0.005343, 0.005344, 0.005344, 0.005344, 0.005344, 0.005343, 0.005342, 0.005342, 0.005341, 0.005339, 0.005339, 0.005338, 0.005337, 0.005336, 0.005337, 0.005337, 0.005337], + spectrum: [ + 0.000004, + 0.000004, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000009, + 0.000083, + 0.000221, + 0.000415, + 0.000658, + 0.000937, + 0.001241, + 0.001564, + 0.001897, + 0.002233, + 0.002573, + 0.002906, + 0.003230, + 0.003540, + 0.003830, + 0.004099, + 0.004342, + 0.004559, + 0.004750, + 0.004914, + 0.005052, + 0.005166, + 0.005257, + 0.005327, + 0.005378, + 0.005412, + 0.005431, + 0.005439, + 0.005438, + 0.005432, + 0.005423, + 0.005410, + 0.005398, + 0.005385, + 0.005375, + 0.005366, + 0.005360, + 0.005357, + 0.005354, + 0.005354, + 0.005354, + 0.005352, + 0.005354, + 0.005354, + 0.005355, + 0.005355, + 0.005354, + 0.005353, + 0.005350, + 0.005349, + 0.005348, + 0.005346, + 0.005346, + 0.005345, + 0.005344, + 0.005344, + 0.005344, + 0.005343, + 0.005343, + 0.005343, + 0.005344, + 0.005344, + 0.005344, + 0.005344, + 0.005343, + 0.005342, + 0.005342, + 0.005341, + 0.005339, + 0.005339, + 0.005338, + 0.005337, + 0.005336, + 0.005337, + 0.005337, + 0.005337, + ], }, SpectrumDataPoint { xystar: (0.21860965694889323, 0.060974771844222814), uv: (10.033529296875003, 5.088867838541667), - spectrum: [0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000013, 0.000157, 0.000402, 0.000712, 0.001070, 0.001464, 0.001876, 0.002296, 0.002711, 0.003113, 0.003495, 0.003852, 0.004182, 0.004483, 0.004753, 0.004991, 0.005199, 0.005376, 0.005526, 0.005649, 0.005748, 0.005827, 0.005888, 0.005935, 0.005970, 0.005995, 0.006012, 0.006024, 0.006032, 0.006037, 0.006040, 0.006042, 0.006043, 0.006043, 0.006043, 0.006043, 0.006043, 0.006043, 0.006042, 0.006041, 0.006041, 0.006040, 0.006040, 0.006040, 0.006040, 0.006039, 0.006039, 0.006039, 0.006039, 0.006038, 0.006038, 0.006037, 0.006037, 0.006037, 0.006036, 0.006036, 0.006036, 0.006036, 0.006035, 0.006035, 0.006035, 0.006035, 0.006035, 0.006034, 0.006034, 0.006034, 0.006034, 0.006034, 0.006034, 0.006034, 0.006034], + spectrum: [ + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000013, + 0.000157, + 0.000402, + 0.000712, + 0.001070, + 0.001464, + 0.001876, + 0.002296, + 0.002711, + 0.003113, + 0.003495, + 0.003852, + 0.004182, + 0.004483, + 0.004753, + 0.004991, + 0.005199, + 0.005376, + 0.005526, + 0.005649, + 0.005748, + 0.005827, + 0.005888, + 0.005935, + 0.005970, + 0.005995, + 0.006012, + 0.006024, + 0.006032, + 0.006037, + 0.006040, + 0.006042, + 0.006043, + 0.006043, + 0.006043, + 0.006043, + 0.006043, + 0.006043, + 0.006042, + 0.006041, + 0.006041, + 0.006040, + 0.006040, + 0.006040, + 0.006040, + 0.006039, + 0.006039, + 0.006039, + 0.006039, + 0.006038, + 0.006038, + 0.006037, + 0.006037, + 0.006037, + 0.006036, + 0.006036, + 0.006036, + 0.006036, + 0.006035, + 0.006035, + 0.006035, + 0.006035, + 0.006035, + 0.006034, + 0.006034, + 0.006034, + 0.006034, + 0.006034, + 0.006034, + 0.006034, + 0.006034, + ], }, SpectrumDataPoint { xystar: (-0.23567449232649001, 0.1399958050140571), uv: (1.6516103515625007, 6.499999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000797, 0.004422, 0.009859, 0.015976, 0.021790, 0.026531, 0.029634, 0.030784, 0.029806, 0.026660, 0.021483, 0.014816, 0.007770, 0.002072, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000797, + 0.004422, + 0.009859, + 0.015976, + 0.021790, + 0.026531, + 0.029634, + 0.030784, + 0.029806, + 0.026660, + 0.021483, + 0.014816, + 0.007770, + 0.002072, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.17697751780667584, 0.1399958050140571), uv: (9.2653818359375, 6.499999999999998), - spectrum: [0.000002, 0.000002, 0.000002, 0.000002, 0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000111, 0.000395, 0.000807, 0.001310, 0.001869, 0.002460, 0.003063, 0.003657, 0.004226, 0.004748, 0.005211, 0.005607, 0.005930, 0.006175, 0.006343, 0.006436, 0.006456, 0.006411, 0.006305, 0.006148, 0.005947, 0.005715, 0.005463, 0.005200, 0.004937, 0.004684, 0.004446, 0.004229, 0.004038, 0.003872, 0.003733, 0.003618, 0.003524, 0.003450, 0.003392, 0.003346, 0.003312, 0.003287, 0.003268, 0.003255, 0.003245, 0.003238, 0.003233, 0.003231, 0.003229, 0.003227, 0.003227, 0.003225, 0.003225, 0.003224, 0.003223, 0.003222, 0.003222, 0.003222, 0.003222, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003221, 0.003222, 0.003222, 0.003222, 0.003223, 0.003223, 0.003223], + spectrum: [ + 0.000002, + 0.000002, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000111, + 0.000395, + 0.000807, + 0.001310, + 0.001869, + 0.002460, + 0.003063, + 0.003657, + 0.004226, + 0.004748, + 0.005211, + 0.005607, + 0.005930, + 0.006175, + 0.006343, + 0.006436, + 0.006456, + 0.006411, + 0.006305, + 0.006148, + 0.005947, + 0.005715, + 0.005463, + 0.005200, + 0.004937, + 0.004684, + 0.004446, + 0.004229, + 0.004038, + 0.003872, + 0.003733, + 0.003618, + 0.003524, + 0.003450, + 0.003392, + 0.003346, + 0.003312, + 0.003287, + 0.003268, + 0.003255, + 0.003245, + 0.003238, + 0.003233, + 0.003231, + 0.003229, + 0.003227, + 0.003227, + 0.003225, + 0.003225, + 0.003224, + 0.003223, + 0.003222, + 0.003222, + 0.003222, + 0.003222, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003221, + 0.003222, + 0.003222, + 0.003222, + 0.003223, + 0.003223, + 0.003223, + ], }, SpectrumDataPoint { xystar: (-0.22802641945172614, 0.19599412701967997), uv: (1.7927236328124998, 7.499999999999999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002041, 0.010218, 0.020912, 0.031206, 0.038913, 0.042767, 0.042066, 0.036661, 0.027065, 0.015069, 0.004227, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002041, + 0.010218, + 0.020912, + 0.031206, + 0.038913, + 0.042767, + 0.042066, + 0.036661, + 0.027065, + 0.015069, + 0.004227, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.14039640945901638, 0.2002268345612464), uv: (8.590430078125001, 7.5755863281249995), - spectrum: [0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000143, 0.000491, 0.000993, 0.001601, 0.002283, 0.003006, 0.003742, 0.004473, 0.005169, 0.005807, 0.006372, 0.006849, 0.007223, 0.007492, 0.007649, 0.007696, 0.007640, 0.007490, 0.007245, 0.006919, 0.006527, 0.006082, 0.005603, 0.005104, 0.004605, 0.004110, 0.003639, 0.003207, 0.002818, 0.002479, 0.002188, 0.001941, 0.001740, 0.001579, 0.001451, 0.001355, 0.001281, 0.001226, 0.001184, 0.001156, 0.001135, 0.001119, 0.001108, 0.001101, 0.001096, 0.001089, 0.001086, 0.001083, 0.001081, 0.001081, 0.001080, 0.001078, 0.001079, 0.001077, 0.001076, 0.001077, 0.001076, 0.001076, 0.001075, 0.001075, 0.001075, 0.001073, 0.001072, 0.001073, 0.001073, 0.001072, 0.001073, 0.001071, 0.001071, 0.001071, 0.001071, 0.001071, 0.001071], + spectrum: [ + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000143, + 0.000491, + 0.000993, + 0.001601, + 0.002283, + 0.003006, + 0.003742, + 0.004473, + 0.005169, + 0.005807, + 0.006372, + 0.006849, + 0.007223, + 0.007492, + 0.007649, + 0.007696, + 0.007640, + 0.007490, + 0.007245, + 0.006919, + 0.006527, + 0.006082, + 0.005603, + 0.005104, + 0.004605, + 0.004110, + 0.003639, + 0.003207, + 0.002818, + 0.002479, + 0.002188, + 0.001941, + 0.001740, + 0.001579, + 0.001451, + 0.001355, + 0.001281, + 0.001226, + 0.001184, + 0.001156, + 0.001135, + 0.001119, + 0.001108, + 0.001101, + 0.001096, + 0.001089, + 0.001086, + 0.001083, + 0.001081, + 0.001081, + 0.001080, + 0.001078, + 0.001079, + 0.001077, + 0.001076, + 0.001077, + 0.001076, + 0.001076, + 0.001075, + 0.001075, + 0.001075, + 0.001073, + 0.001072, + 0.001073, + 0.001073, + 0.001072, + 0.001073, + 0.001071, + 0.001071, + 0.001071, + 0.001071, + 0.001071, + 0.001071, + ], }, SpectrumDataPoint { xystar: (0.16873398908970627, 0.1843825322537497), uv: (9.113281901041667, 7.292643880208333), - spectrum: [0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000206, 0.000724, 0.001454, 0.002319, 0.003255, 0.004201, 0.005103, 0.005918, 0.006620, 0.007190, 0.007619, 0.007901, 0.008036, 0.008031, 0.007895, 0.007640, 0.007282, 0.006841, 0.006337, 0.005793, 0.005230, 0.004669, 0.004128, 0.003622, 0.003163, 0.002758, 0.002410, 0.002118, 0.001878, 0.001684, 0.001531, 0.001412, 0.001321, 0.001252, 0.001202, 0.001165, 0.001138, 0.001119, 0.001105, 0.001094, 0.001087, 0.001084, 0.001081, 0.001078, 0.001076, 0.001075, 0.001073, 0.001072, 0.001071, 0.001071, 0.001070, 0.001070, 0.001070, 0.001070, 0.001069, 0.001069, 0.001069, 0.001069, 0.001069, 0.001069, 0.001069, 0.001069, 0.001070, 0.001070, 0.001070, 0.001070, 0.001069, 0.001070, 0.001069], + spectrum: [ + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000206, + 0.000724, + 0.001454, + 0.002319, + 0.003255, + 0.004201, + 0.005103, + 0.005918, + 0.006620, + 0.007190, + 0.007619, + 0.007901, + 0.008036, + 0.008031, + 0.007895, + 0.007640, + 0.007282, + 0.006841, + 0.006337, + 0.005793, + 0.005230, + 0.004669, + 0.004128, + 0.003622, + 0.003163, + 0.002758, + 0.002410, + 0.002118, + 0.001878, + 0.001684, + 0.001531, + 0.001412, + 0.001321, + 0.001252, + 0.001202, + 0.001165, + 0.001138, + 0.001119, + 0.001105, + 0.001094, + 0.001087, + 0.001084, + 0.001081, + 0.001078, + 0.001076, + 0.001075, + 0.001073, + 0.001072, + 0.001071, + 0.001071, + 0.001070, + 0.001070, + 0.001070, + 0.001070, + 0.001069, + 0.001069, + 0.001069, + 0.001069, + 0.001069, + 0.001069, + 0.001069, + 0.001069, + 0.001070, + 0.001070, + 0.001070, + 0.001070, + 0.001069, + 0.001070, + 0.001069, + ], }, SpectrumDataPoint { xystar: (-0.22157361598686395, 0.23872204979891953), uv: (1.9117832031249993, 8.263021484374999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.012982, 0.030813, 0.046441, 0.055671, 0.056186, 0.047435, 0.030933, 0.011783, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.012982, + 0.030813, + 0.046441, + 0.055671, + 0.056186, + 0.047435, + 0.030933, + 0.011783, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.19434046395008459, 0.2552298738905974), uv: (2.414257421875, 8.557812890625), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003610, 0.009609, 0.016594, 0.023384, 0.029045, 0.032940, 0.034601, 0.033707, 0.030102, 0.024014, 0.016229, 0.008185, 0.001926, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003610, + 0.009609, + 0.016594, + 0.023384, + 0.029045, + 0.032940, + 0.034601, + 0.033707, + 0.030102, + 0.024014, + 0.016229, + 0.008185, + 0.001926, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.12881318343965062, 0.2519924490253028), uv: (8.3767099609375, 8.5), - spectrum: [0.000001, 0.000001, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000223, 0.000771, 0.001548, 0.002474, 0.003482, 0.004523, 0.005548, 0.006511, 0.007370, 0.008094, 0.008660, 0.009056, 0.009280, 0.009329, 0.009211, 0.008936, 0.008519, 0.007977, 0.007332, 0.006610, 0.005837, 0.005042, 0.004250, 0.003487, 0.002776, 0.002133, 0.001574, 0.001103, 0.000725, 0.000436, 0.000227, 0.000092, 0.000019, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000002, 0.000001, 0.000001, 0.000002, 0.000002, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000223, + 0.000771, + 0.001548, + 0.002474, + 0.003482, + 0.004523, + 0.005548, + 0.006511, + 0.007370, + 0.008094, + 0.008660, + 0.009056, + 0.009280, + 0.009329, + 0.009211, + 0.008936, + 0.008519, + 0.007977, + 0.007332, + 0.006610, + 0.005837, + 0.005042, + 0.004250, + 0.003487, + 0.002776, + 0.002133, + 0.001574, + 0.001103, + 0.000725, + 0.000436, + 0.000227, + 0.000092, + 0.000019, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000002, + 0.000001, + 0.000001, + 0.000002, + 0.000002, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.1826672606027804, 0.30799077103092565), uv: (2.6296376953125, 9.499999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002962, 0.011153, 0.021421, 0.031233, 0.038841, 0.042985, 0.042828, 0.037973, 0.028876, 0.017218, 0.006112, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002962, + 0.011153, + 0.021421, + 0.031233, + 0.038841, + 0.042985, + 0.042828, + 0.037973, + 0.028876, + 0.017218, + 0.006112, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.11775126488722393, 0.30799077103092565), uv: (8.1726083984375, 9.499999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000475, 0.001595, 0.003128, 0.004882, 0.006678, 0.008357, 0.009801, 0.010941, 0.011735, 0.012161, 0.012216, 0.011913, 0.011282, 0.010366, 0.009216, 0.007898, 0.006484, 0.005049, 0.003670, 0.002426, 0.001386, 0.000607, 0.000135, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000001, 0.000000, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000475, + 0.001595, + 0.003128, + 0.004882, + 0.006678, + 0.008357, + 0.009801, + 0.010941, + 0.011735, + 0.012161, + 0.012216, + 0.011913, + 0.011282, + 0.010366, + 0.009216, + 0.007898, + 0.006484, + 0.005049, + 0.003670, + 0.002426, + 0.001386, + 0.000607, + 0.000135, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.17168473381029942, 0.36398909303654853), uv: (2.8322744140624994, 10.5), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.009996, 0.028024, 0.045931, 0.057966, 0.060467, 0.051817, 0.033707, 0.012510, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.009996, + 0.028024, + 0.045931, + 0.057966, + 0.060467, + 0.051817, + 0.033707, + 0.012510, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.08319200002618024, 0.3618235548020819), uv: (7.534961328125, 10.461328515625), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000791, 0.002248, 0.004114, 0.006181, 0.008270, 0.010216, 0.011870, 0.013125, 0.013927, 0.014253, 0.014106, 0.013510, 0.012508, 0.011164, 0.009558, 0.007783, 0.005948, 0.004167, 0.002563, 0.001259, 0.000370, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000791, + 0.002248, + 0.004114, + 0.006181, + 0.008270, + 0.010216, + 0.011870, + 0.013125, + 0.013927, + 0.014253, + 0.014106, + 0.013510, + 0.012508, + 0.011164, + 0.009558, + 0.007783, + 0.005948, + 0.004167, + 0.002563, + 0.001259, + 0.000370, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.1108485747826697, 0.34171375531056314), uv: (8.045248046875, 10.102214192708333), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000363, 0.002276, 0.005030, 0.008008, 0.010757, 0.013016, 0.014633, 0.015515, 0.015626, 0.014996, 0.013707, 0.011880, 0.009672, 0.007274, 0.004894, 0.002759, 0.001090, 0.000105, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000363, + 0.002276, + 0.005030, + 0.008008, + 0.010757, + 0.013016, + 0.014633, + 0.015515, + 0.015626, + 0.014996, + 0.013707, + 0.011880, + 0.009672, + 0.007274, + 0.004894, + 0.002759, + 0.001090, + 0.000105, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.16472911586578143, 0.39709230422107167), uv: (2.9606113281249997, 11.091146484374999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.013110, 0.043196, 0.069841, 0.079880, 0.067008, 0.034892, 0.001225, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.013110, + 0.043196, + 0.069841, + 0.079880, + 0.067008, + 0.034892, + 0.001225, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.13639506475775579, 0.41745001295063605), uv: (3.4833980468749997, 11.454687890624998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005873, 0.018390, 0.032485, 0.044329, 0.051106, 0.050858, 0.043004, 0.028959, 0.012614, 0.000245, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005873, + 0.018390, + 0.032485, + 0.044329, + 0.051106, + 0.050858, + 0.043004, + 0.028959, + 0.012614, + 0.000245, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.06524684764317006, 0.4199874150421713), uv: (7.203858398437501, 11.499999999999998), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.001350, 0.004395, 0.008317, 0.012364, 0.015896, 0.018472, 0.019892, 0.020103, 0.019145, 0.017144, 0.014311, 0.010938, 0.007382, 0.004059, 0.001434, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000000, 0.000001, 0.000002, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.001350, + 0.004395, + 0.008317, + 0.012364, + 0.015896, + 0.018472, + 0.019892, + 0.020103, + 0.019145, + 0.017144, + 0.014311, + 0.010938, + 0.007382, + 0.004059, + 0.001434, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000001, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000002, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (-0.11892889168380434, 0.4650668298587564), uv: (3.8056634114583328, 12.305013671874999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.002157, 0.021387, 0.044337, 0.061319, 0.065705, 0.054910, 0.032189, 0.008070, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.002157, + 0.021387, + 0.044337, + 0.061319, + 0.065705, + 0.054910, + 0.032189, + 0.008070, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.08570077964046263, 0.480634057135496), uv: (4.418749609375, 12.583008203124997), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005126, 0.016493, 0.029500, 0.040588, 0.046974, 0.046832, 0.039777, 0.027361, 0.013107, 0.002029, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005126, + 0.016493, + 0.029500, + 0.040588, + 0.046974, + 0.046832, + 0.039777, + 0.027361, + 0.013107, + 0.002029, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + ], }, SpectrumDataPoint { xystar: (0.02647452672101075, 0.47289053917065604), uv: (6.488476953125001, 12.444726953124999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003506, 0.009139, 0.015455, 0.021171, 0.025254, 0.027108, 0.026619, 0.024002, 0.019671, 0.014239, 0.008506, 0.003444, 0.000186, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003506, + 0.009139, + 0.015455, + 0.021171, + 0.025254, + 0.027108, + 0.026619, + 0.024002, + 0.019671, + 0.014239, + 0.008506, + 0.003444, + 0.000186, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.056738679726381684, 0.45216096658402294), uv: (7.046875651041668, 12.074544921874997), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.004328, 0.011605, 0.018940, 0.024427, 0.027217, 0.027102, 0.024261, 0.019237, 0.012936, 0.006584, 0.001689, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.004328, + 0.011605, + 0.018940, + 0.024427, + 0.027217, + 0.027102, + 0.024261, + 0.019237, + 0.012936, + 0.006584, + 0.001689, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.07057048857024528, 0.5168178833008018), uv: (4.697916015625, 13.229167317708333), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000195, 0.017901, 0.040081, 0.056786, 0.061148, 0.050847, 0.029751, 0.007922, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000195, + 0.017901, + 0.040081, + 0.056786, + 0.061148, + 0.050847, + 0.029751, + 0.007922, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (-0.027099054061447154, 0.5199805671765496), uv: (5.5, 13.285645507812498), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.005899, 0.019086, 0.033309, 0.043457, 0.046146, 0.040597, 0.028764, 0.014526, 0.002900, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.005899, + 0.019086, + 0.033309, + 0.043457, + 0.046146, + 0.040597, + 0.028764, + 0.014526, + 0.002900, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + ], }, SpectrumDataPoint { xystar: (0.00799213911975501, 0.5124794716350015), uv: (6.147461588541667, 13.151693359374999), - spectrum: [0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.003433, 0.016112, 0.030274, 0.039955, 0.042108, 0.036770, 0.026016, 0.013147, 0.002607, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000000, 0.000000, 0.000002, 0.000000], - } + spectrum: [ + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.003433, + 0.016112, + 0.030274, + 0.039955, + 0.042108, + 0.036770, + 0.026016, + 0.013147, + 0.002607, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000000, + 0.000001, + 0.000000, + 0.000000, + 0.000002, + 0.000000, + ], + }, ]; // Color matching functions. const CMF_WAVELENGTH: [f32; 95] = [ - 360.0, 365.0, 370.0, 375.0, 380.0, 385.0, 390.0, 395.0, 400.0, 405.0, 410.0, 415.0, 420.0, 425.0, 430.0, 435.0, 440.0, 445.0, 450.0, 455.0, 460.0, 465.0, 470.0, 475.0, 480.0, 485.0, 490.0, 495.0, 500.0, 505.0, 510.0, 515.0, 520.0, 525.0, 530.0, 535.0, 540.0, 545.0, 550.0, 555.0, 560.0, 565.0, 570.0, 575.0, 580.0, 585.0, 590.0, 595.0, 600.0, 605.0, 610.0, 615.0, 620.0, 625.0, 630.0, 635.0, 640.0, 645.0, 650.0, 655.0, 660.0, 665.0, 670.0, 675.0, 680.0, 685.0, 690.0, 695.0, 700.0, 705.0, 710.0, 715.0, 720.0, 725.0, 730.0, 735.0, 740.0, 745.0, 750.0, 755.0, 760.0, 765.0, 770.0, 775.0, 780.0, 785.0, 790.0, 795.0, 800.0, 805.0, 810.0, 815.0, 820.0, 825.0, 830.0 + 360.0, + 365.0, + 370.0, + 375.0, + 380.0, + 385.0, + 390.0, + 395.0, + 400.0, + 405.0, + 410.0, + 415.0, + 420.0, + 425.0, + 430.0, + 435.0, + 440.0, + 445.0, + 450.0, + 455.0, + 460.0, + 465.0, + 470.0, + 475.0, + 480.0, + 485.0, + 490.0, + 495.0, + 500.0, + 505.0, + 510.0, + 515.0, + 520.0, + 525.0, + 530.0, + 535.0, + 540.0, + 545.0, + 550.0, + 555.0, + 560.0, + 565.0, + 570.0, + 575.0, + 580.0, + 585.0, + 590.0, + 595.0, + 600.0, + 605.0, + 610.0, + 615.0, + 620.0, + 625.0, + 630.0, + 635.0, + 640.0, + 645.0, + 650.0, + 655.0, + 660.0, + 665.0, + 670.0, + 675.0, + 680.0, + 685.0, + 690.0, + 695.0, + 700.0, + 705.0, + 710.0, + 715.0, + 720.0, + 725.0, + 730.0, + 735.0, + 740.0, + 745.0, + 750.0, + 755.0, + 760.0, + 765.0, + 770.0, + 775.0, + 780.0, + 785.0, + 790.0, + 795.0, + 800.0, + 805.0, + 810.0, + 815.0, + 820.0, + 825.0, + 830.0, ]; const CMF_X: [f32; 95] = [ - 0.0001299, 0.0002321, 0.0004149, 0.0007416, 0.001368, 0.002236, 0.004243, 0.00765, 0.01431, 0.02319, 0.04351, 0.07763, 0.13438, 0.21477, 0.2839, 0.3285, 0.34828, 0.34806, 0.3362, 0.3187, 0.2908, 0.2511, 0.19536, 0.1421, 0.09564, 0.05795001, 0.03201, 0.0147, 0.0049, 0.0024, 0.0093, 0.0291, 0.06327, 0.1096, 0.1655, 0.2257499, 0.2904, 0.3597, 0.4334499, 0.5120501, 0.5945, 0.6784, 0.7621, 0.8425, 0.9163, 0.9786, 1.0263, 1.0567, 1.0622, 1.0456, 1.0026, 0.9384, 0.8544499, 0.7514, 0.6424, 0.5419, 0.4479, 0.3608, 0.2835, 0.2187, 0.1649, 0.1212, 0.0874, 0.0636, 0.04677, 0.0329, 0.0227, 0.01584, 0.01135916, 0.008110916, 0.005790346, 0.004109457, 0.002899327, 0.00204919, 0.001439971, 0.0009999493, 0.0006900786, 0.0004760213, 0.0003323011, 0.0002348261, 0.0001661505, 0.000117413, 8.307527e-05, 5.870652e-05, 4.150994e-05, 2.935326e-05, 2.067383e-05, 1.455977e-05, 1.025398e-05, 7.221456e-06, 5.085868e-06, 3.581652e-06, 2.522525e-06, 1.776509e-06, 1.251141e-06 + 0.0001299, + 0.0002321, + 0.0004149, + 0.0007416, + 0.001368, + 0.002236, + 0.004243, + 0.00765, + 0.01431, + 0.02319, + 0.04351, + 0.07763, + 0.13438, + 0.21477, + 0.2839, + 0.3285, + 0.34828, + 0.34806, + 0.3362, + 0.3187, + 0.2908, + 0.2511, + 0.19536, + 0.1421, + 0.09564, + 0.05795001, + 0.03201, + 0.0147, + 0.0049, + 0.0024, + 0.0093, + 0.0291, + 0.06327, + 0.1096, + 0.1655, + 0.2257499, + 0.2904, + 0.3597, + 0.4334499, + 0.5120501, + 0.5945, + 0.6784, + 0.7621, + 0.8425, + 0.9163, + 0.9786, + 1.0263, + 1.0567, + 1.0622, + 1.0456, + 1.0026, + 0.9384, + 0.8544499, + 0.7514, + 0.6424, + 0.5419, + 0.4479, + 0.3608, + 0.2835, + 0.2187, + 0.1649, + 0.1212, + 0.0874, + 0.0636, + 0.04677, + 0.0329, + 0.0227, + 0.01584, + 0.01135916, + 0.008110916, + 0.005790346, + 0.004109457, + 0.002899327, + 0.00204919, + 0.001439971, + 0.0009999493, + 0.0006900786, + 0.0004760213, + 0.0003323011, + 0.0002348261, + 0.0001661505, + 0.000117413, + 8.307527e-05, + 5.870652e-05, + 4.150994e-05, + 2.935326e-05, + 2.067383e-05, + 1.455977e-05, + 1.025398e-05, + 7.221456e-06, + 5.085868e-06, + 3.581652e-06, + 2.522525e-06, + 1.776509e-06, + 1.251141e-06, ]; const CMF_Y: [f32; 95] = [ - 3.917e-06, 6.965e-06, 1.239e-05, 2.202e-05, 3.9e-05, 6.4e-05, 0.00012, 0.000217, 0.000396, 0.00064, 0.00121, 0.00218, 0.004, 0.0073, 0.0116, 0.01684, 0.023, 0.0298, 0.038, 0.048, 0.06, 0.0739, 0.09098, 0.1126, 0.13902, 0.1693, 0.20802, 0.2586, 0.323, 0.4073, 0.503, 0.6082, 0.71, 0.7932, 0.862, 0.9148501, 0.954, 0.9803, 0.9949501, 1.0, 0.995, 0.9786, 0.952, 0.9154, 0.87, 0.8163, 0.757, 0.6949, 0.631, 0.5668, 0.503, 0.4412, 0.381, 0.321, 0.265, 0.217, 0.175, 0.1382, 0.107, 0.0816, 0.061, 0.04458, 0.032, 0.0232, 0.017, 0.01192, 0.00821, 0.005723, 0.004102, 0.002929, 0.002091, 0.001484, 0.001047, 0.00074, 0.00052, 0.0003611, 0.0002492, 0.0001719, 0.00012, 8.48e-05, 6e-05, 4.24e-05, 3e-05, 2.12e-05, 1.499e-05, 1.06e-05, 7.4657e-06, 5.2578e-06, 3.7029e-06, 2.6078e-06, 1.8366e-06, 1.2934e-06, 9.1093e-07, 6.4153e-07, 4.5181e-07 + 3.917e-06, + 6.965e-06, + 1.239e-05, + 2.202e-05, + 3.9e-05, + 6.4e-05, + 0.00012, + 0.000217, + 0.000396, + 0.00064, + 0.00121, + 0.00218, + 0.004, + 0.0073, + 0.0116, + 0.01684, + 0.023, + 0.0298, + 0.038, + 0.048, + 0.06, + 0.0739, + 0.09098, + 0.1126, + 0.13902, + 0.1693, + 0.20802, + 0.2586, + 0.323, + 0.4073, + 0.503, + 0.6082, + 0.71, + 0.7932, + 0.862, + 0.9148501, + 0.954, + 0.9803, + 0.9949501, + 1.0, + 0.995, + 0.9786, + 0.952, + 0.9154, + 0.87, + 0.8163, + 0.757, + 0.6949, + 0.631, + 0.5668, + 0.503, + 0.4412, + 0.381, + 0.321, + 0.265, + 0.217, + 0.175, + 0.1382, + 0.107, + 0.0816, + 0.061, + 0.04458, + 0.032, + 0.0232, + 0.017, + 0.01192, + 0.00821, + 0.005723, + 0.004102, + 0.002929, + 0.002091, + 0.001484, + 0.001047, + 0.00074, + 0.00052, + 0.0003611, + 0.0002492, + 0.0001719, + 0.00012, + 8.48e-05, + 6e-05, + 4.24e-05, + 3e-05, + 2.12e-05, + 1.499e-05, + 1.06e-05, + 7.4657e-06, + 5.2578e-06, + 3.7029e-06, + 2.6078e-06, + 1.8366e-06, + 1.2934e-06, + 9.1093e-07, + 6.4153e-07, + 4.5181e-07, ]; const CMF_Z: [f32; 95] = [ - 0.0006061, 0.001086, 0.001946, 0.003486, 0.006450001, 0.01054999, 0.02005001, 0.03621, 0.06785001, 0.1102, 0.2074, 0.3713, 0.6456, 1.0390501, 1.3856, 1.62296, 1.74706, 1.7826, 1.77211, 1.7441, 1.6692, 1.5281, 1.28764, 1.0419, 0.8129501, 0.6162, 0.46518, 0.3533, 0.272, 0.2123, 0.1582, 0.1117, 0.07824999, 0.05725001, 0.04216, 0.02984, 0.0203, 0.0134, 0.008749999, 0.005749999, 0.0039, 0.002749999, 0.0021, 0.0018, 0.001650001, 0.0014, 0.0011, 0.001, 0.0008, 0.0006, 0.00034, 0.00024, 0.00019, 0.0001, 4.999999e-05, 3e-05, 2e-05, 1e-05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + 0.0006061, + 0.001086, + 0.001946, + 0.003486, + 0.006450001, + 0.01054999, + 0.02005001, + 0.03621, + 0.06785001, + 0.1102, + 0.2074, + 0.3713, + 0.6456, + 1.0390501, + 1.3856, + 1.62296, + 1.74706, + 1.7826, + 1.77211, + 1.7441, + 1.6692, + 1.5281, + 1.28764, + 1.0419, + 0.8129501, + 0.6162, + 0.46518, + 0.3533, + 0.272, + 0.2123, + 0.1582, + 0.1117, + 0.07824999, + 0.05725001, + 0.04216, + 0.02984, + 0.0203, + 0.0134, + 0.008749999, + 0.005749999, + 0.0039, + 0.002749999, + 0.0021, + 0.0018, + 0.001650001, + 0.0014, + 0.0011, + 0.001, + 0.0008, + 0.0006, + 0.00034, + 0.00024, + 0.00019, + 0.0001, + 4.999999e-05, + 3e-05, + 2e-05, + 1e-05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, ]; fn xyz_from_spectrum(spectrum: &[f32]) -> (f32, f32, f32) { @@ -1333,4 +20249,3 @@ fn xyz_from_spectrum(spectrum: &[f32]) -> (f32, f32, f32) { xyz.2 *= SPECTRUM_BIN_SIZE; return xyz; } -