All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
lucuma.itc.input.OptimizedSpectroscopyGraphInput.scala Maven / Gradle / Ivy
// Copyright (c) 2016-2023 Association of Universities for Research in Astronomy, Inc. (AURA)
// For license information see LICENSE or https://opensource.org/licenses/BSD-3-Clause
package lucuma.itc.input
import cats.syntax.parallel.*
import eu.timepit.refined.types.numeric.PosInt
import lucuma.core.enums.Band
import lucuma.core.math.RadialVelocity
import lucuma.core.math.Wavelength
import lucuma.core.model.SourceProfile
import lucuma.core.util.TimeSpan
import lucuma.itc.SignificantFigures
import lucuma.odb.graphql.binding.*
import lucuma.odb.graphql.input.*
import lucuma.odb.graphql.input.sourceprofile.*
case class OptimizedSpectroscopyGraphInput(
wavelength: Wavelength,
signalToNoiseAt: Option[Wavelength],
exposureTime: TimeSpan,
exposures: PosInt,
sourceProfile: SourceProfile,
band: Band,
radialVelocity: RadialVelocity,
constraints: ConstraintSetInput,
mode: InstrumentModesInput,
significantFigures: Option[SignificantFigures]
)
object OptimizedSpectroscopyGraphInput {
def binding: Matcher[OptimizedSpectroscopyGraphInput] =
ObjectFieldsBinding.rmap {
case List(
WavelengthInput.Binding("wavelength", wavelength),
WavelengthInput.Binding.Option("signalToNoiseAt", signalToNoiseAt),
TimeSpanInput.Binding("exposureTime", exposureTime),
PosIntBinding("exposures", exposures),
SourceProfileInput.CreateBinding("sourceProfile", sourceProfile),
BandBinding("band", band),
RadialVelocityInput.Binding("radialVelocity", radialVelocity),
ConstraintSetInput.Binding("constraints", constraints),
InstrumentModesInput.binding("mode", mode),
SignificantFiguresInput.binding.Option("significantFigures", significantFigures)
) =>
(wavelength,
signalToNoiseAt,
exposureTime,
exposures,
sourceProfile,
band,
radialVelocity,
constraints,
mode,
significantFigures
).parMapN(apply)
}
}