Search in sources :

Example 1 with CustomAxis

use of ca.nrc.cadc.caom2.CustomAxis in project caom2db by opencadc.

the class AbstractObservationDAOTest method getTestPlane.

protected Plane getTestPlane(boolean full, String productID, int depth, boolean poly) throws Exception {
    Plane p = new Plane(productID);
    if (full) {
        p.metaProducer = URI.create("test:plane/roundrip-1.0");
        p.creatorID = URI.create("ivo://example.com/TEST?" + productID);
        p.calibrationLevel = CalibrationLevel.CALIBRATED;
        p.dataProductType = DataProductType.IMAGE;
        p.metaRelease = TEST_DATE;
        p.dataRelease = TEST_DATE;
        p.provenance = new Provenance("doit");
        p.provenance.lastExecuted = TEST_DATE;
        p.provenance.producer = "MyProducer";
        p.provenance.project = "MyProject";
        p.provenance.reference = new URI("http://www.example.com/MyProject/doit");
        p.provenance.runID = "RUNID123";
        p.provenance.version = "0.1alpha4";
        p.provenance.getKeywords().addAll(TEST_KEYWORDS);
        p.provenance.getInputs().add(new PlaneURI(new ObservationURI("FOO", "bar"), "in1"));
        p.provenance.getInputs().add(new PlaneURI(new ObservationURI("FOO", "bar"), "in2"));
        p.metrics = new Metrics();
        p.metrics.sourceNumberDensity = 100.0;
        p.metrics.background = 2.7;
        p.metrics.backgroundStddev = 0.3;
        p.metrics.fluxDensityLimit = 1.0e-5;
        p.metrics.magLimit = 28.5;
        p.metrics.sampleSNR = 11.0;
        p.quality = new DataQuality(Quality.JUNK);
        // previously was computed metadata
        p.energy = new Energy();
        p.energy.bandpassName = "V";
        p.energy.bounds = new SampledInterval(400e-6, 900e-6);
        p.energy.bounds.getSamples().add(new Interval(400e-6, 500e-6));
        p.energy.bounds.getSamples().add(new Interval(800e-6, 900e-6));
        p.energy.dimension = 2L;
        p.energy.getEnergyBands().add(EnergyBand.OPTICAL);
        p.energy.resolvingPower = 2.0;
        p.energy.resolvingPowerBounds = new Interval(1.8, 2.2);
        p.energy.restwav = 600e-9;
        p.energy.sampleSize = 100e-6;
        p.energy.transition = new EnergyTransition("H", "alpha");
        p.polarization = new Polarization();
        p.polarization.dimension = 3L;
        p.polarization.states = new TreeSet<>();
        p.polarization.states.add(PolarizationState.I);
        p.polarization.states.add(PolarizationState.Q);
        p.polarization.states.add(PolarizationState.U);
        p.position = new Position();
        if (poly) {
            MultiPolygon mp = new MultiPolygon();
            mp.getVertices().add(new Vertex(2.0, 2.0, SegmentType.MOVE));
            mp.getVertices().add(new Vertex(1.0, 4.0, SegmentType.LINE));
            mp.getVertices().add(new Vertex(3.0, 3.0, SegmentType.LINE));
            mp.getVertices().add(new Vertex(0.0, 0.0, SegmentType.CLOSE));
            List<Point> points = new ArrayList<Point>();
            for (Vertex v : mp.getVertices()) {
                if (!SegmentType.CLOSE.equals(v.getType())) {
                    points.add(new Point(v.cval1, v.cval2));
                }
            }
            p.position.bounds = new Polygon(points, mp);
        } else {
            p.position.bounds = new Circle(new Point(0.0, 89.0), 2.0);
        }
        p.position.dimension = new Dimension2D(1024, 2048);
        p.position.resolution = 0.05;
        p.position.resolutionBounds = new Interval(0.04, 0.06);
        p.position.sampleSize = 0.025;
        p.position.timeDependent = false;
        p.time = new Time();
        p.time.bounds = new SampledInterval(50000.25, 50000.75);
        p.time.bounds.getSamples().add(new Interval(50000.25, 50000.40));
        p.time.bounds.getSamples().add(new Interval(50000.50, 50000.75));
        p.time.dimension = 2L;
        p.time.exposure = 666.0;
        p.time.resolution = 0.5;
        p.time.resolutionBounds = new Interval(0.22, 0.88);
        p.time.sampleSize = 0.15;
        p.custom = new CustomAxis("FDEP");
        p.custom.bounds = new SampledInterval(100.0, 200.0);
        p.custom.bounds.getSamples().add(new Interval(100.0, 140.0));
        p.custom.bounds.getSamples().add(new Interval(160.0, 200.0));
        p.custom.bounds.validate();
        p.custom.dimension = 1024L;
        p.observable = new Observable("phot.flux");
        p.getMetaReadGroups().add(URI.create("ivo://example.net/gms?GroupA"));
        p.getMetaReadGroups().add(URI.create("ivo://example.net/gms?GroupB"));
        p.getDataReadGroups().add(URI.create("ivo://example.net/gms?GroupC"));
        p.getDataReadGroups().add(URI.create("ivo://example.net/gms?GroupD"));
    }
    if (depth <= 2)
        return p;
    p.getArtifacts().add(getTestArtifact(full, new URI("http://www.example.com/stuff/" + productID + "a"), depth));
    p.getArtifacts().add(getTestArtifact(full, new URI("http://www.example.com/stuff/" + productID + "b"), depth));
    Assert.assertEquals(2, p.getArtifacts().size());
    return p;
}
Also used : Polarization(ca.nrc.cadc.caom2.Polarization) Vertex(ca.nrc.cadc.caom2.types.Vertex) Provenance(ca.nrc.cadc.caom2.Provenance) ObservationURI(ca.nrc.cadc.caom2.ObservationURI) SampledInterval(ca.nrc.cadc.caom2.types.SampledInterval) ArrayList(java.util.ArrayList) Time(ca.nrc.cadc.caom2.Time) EnergyTransition(ca.nrc.cadc.caom2.EnergyTransition) PlaneURI(ca.nrc.cadc.caom2.PlaneURI) URI(java.net.URI) ObservationURI(ca.nrc.cadc.caom2.ObservationURI) CustomAxis(ca.nrc.cadc.caom2.CustomAxis) PlaneURI(ca.nrc.cadc.caom2.PlaneURI) Metrics(ca.nrc.cadc.caom2.Metrics) Energy(ca.nrc.cadc.caom2.Energy) MultiPolygon(ca.nrc.cadc.caom2.types.MultiPolygon) Polygon(ca.nrc.cadc.caom2.types.Polygon) Circle(ca.nrc.cadc.caom2.types.Circle) Plane(ca.nrc.cadc.caom2.Plane) DataQuality(ca.nrc.cadc.caom2.DataQuality) Position(ca.nrc.cadc.caom2.Position) TargetPosition(ca.nrc.cadc.caom2.TargetPosition) Dimension2D(ca.nrc.cadc.caom2.wcs.Dimension2D) Point(ca.nrc.cadc.caom2.types.Point) Observable(ca.nrc.cadc.caom2.Observable) MultiPolygon(ca.nrc.cadc.caom2.types.MultiPolygon) Interval(ca.nrc.cadc.caom2.types.Interval) SampledInterval(ca.nrc.cadc.caom2.types.SampledInterval)

Aggregations

CustomAxis (ca.nrc.cadc.caom2.CustomAxis)1 DataQuality (ca.nrc.cadc.caom2.DataQuality)1 Energy (ca.nrc.cadc.caom2.Energy)1 EnergyTransition (ca.nrc.cadc.caom2.EnergyTransition)1 Metrics (ca.nrc.cadc.caom2.Metrics)1 Observable (ca.nrc.cadc.caom2.Observable)1 ObservationURI (ca.nrc.cadc.caom2.ObservationURI)1 Plane (ca.nrc.cadc.caom2.Plane)1 PlaneURI (ca.nrc.cadc.caom2.PlaneURI)1 Polarization (ca.nrc.cadc.caom2.Polarization)1 Position (ca.nrc.cadc.caom2.Position)1 Provenance (ca.nrc.cadc.caom2.Provenance)1 TargetPosition (ca.nrc.cadc.caom2.TargetPosition)1 Time (ca.nrc.cadc.caom2.Time)1 Circle (ca.nrc.cadc.caom2.types.Circle)1 Interval (ca.nrc.cadc.caom2.types.Interval)1 MultiPolygon (ca.nrc.cadc.caom2.types.MultiPolygon)1 Point (ca.nrc.cadc.caom2.types.Point)1 Polygon (ca.nrc.cadc.caom2.types.Polygon)1 SampledInterval (ca.nrc.cadc.caom2.types.SampledInterval)1