All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.ac.rdg.resc.edal.coverage.impl.GridCoverage2DWrappedGridSeriesCoverage Maven / Gradle / Ivy

The newest version!
package uk.ac.rdg.resc.edal.coverage.impl;

import java.util.Set;

import uk.ac.rdg.resc.edal.coverage.GridCoverage2D;
import uk.ac.rdg.resc.edal.coverage.GridSeriesCoverage;
import uk.ac.rdg.resc.edal.coverage.Record;
import uk.ac.rdg.resc.edal.coverage.grid.GridCell2D;
import uk.ac.rdg.resc.edal.coverage.grid.HorizontalGrid;
import uk.ac.rdg.resc.edal.position.HorizontalPosition;
import uk.ac.rdg.resc.edal.position.TimePosition;
import uk.ac.rdg.resc.edal.position.VerticalPosition;
import uk.ac.rdg.resc.edal.position.impl.GeoPositionImpl;

/**
 * This class allows us to treat a {@link GridSeriesCoverage} as a
 * {@link GridCoverage2D} by providing a fixed {@link VerticalPosition} and
 * {@link TimePosition}
 * 
 * @author guy
 * 
 */
public class GridCoverage2DWrappedGridSeriesCoverage extends
        AbstractMultimemberDiscreteGridCoverage
        implements GridCoverage2D {

    private GridSeriesCoverage gridSeriesCoverage;
    private VerticalPosition vPos;
    private TimePosition tPos;

    public GridCoverage2DWrappedGridSeriesCoverage(GridSeriesCoverage gridSeriesCoverage,
            VerticalPosition vPos, TimePosition tPos) {
        super(gridSeriesCoverage.getDescription(), gridSeriesCoverage.getDomain()
                .getHorizontalGrid());
        this.gridSeriesCoverage = gridSeriesCoverage;
        this.vPos = vPos;
        this.tPos = tPos;
    }

    @Override
    public Record evaluate(HorizontalPosition pos, Set memberNames) {
        return gridSeriesCoverage.evaluate(new GeoPositionImpl(pos, vPos, tPos), memberNames);
    }

    @Override
    public Record evaluate(HorizontalPosition pos) {
        return gridSeriesCoverage.evaluate(new GeoPositionImpl(pos, vPos, tPos));
    }

    @Override
    public Object evaluate(HorizontalPosition pos, String memberName) {
        return gridSeriesCoverage.evaluate(new GeoPositionImpl(pos, vPos, tPos), memberName);
    }

    @Override
    public boolean isDefinedAt(HorizontalPosition val) {
        return gridSeriesCoverage.isDefinedAt(new GeoPositionImpl(val, vPos, tPos));
    }

    @Override
    public GridCoverage2D extractGridCoverage(HorizontalGrid targetGrid, Set memberNames) {
        return gridSeriesCoverage.extractGridCoverage(targetGrid, vPos, tPos, memberNames);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy