private DataDomain ConstructDataDomain(string variable, IGridDataSetMetaData dataSetInfo, IndexBoundingBox lonBB, IndexBoundingBox latBB, IndexBoundingBox timeBB) { int[] origin = null, shape = null; int varaibleRank = dataSetInfo.GetVariableRank(variable); if (varaibleRank > 3) { throw new InvalidOperationException("Variables with rank >3 are not supported"); } origin = new int[varaibleRank]; shape = new int[varaibleRank]; int latDimNum = dataSetInfo.GetLatitudeDim(variable); int lonDimNum = dataSetInfo.GetLongitudeDim(variable); int timeDimNum = dataSetInfo.GetTimeDim(variable); origin[latDimNum] = latBB.first; shape[latDimNum] = latBB.last - latBB.first + 1; if (latDimNum != lonDimNum) { origin[lonDimNum] = lonBB.first; shape[lonDimNum] = lonBB.last - lonBB.first + 1; } if (timeDimNum != -1) { origin[timeDimNum] = timeBB.first; shape[timeDimNum] = timeBB.last - timeBB.first + 1; } return(new DataDomain() { Origin = origin, Shape = shape }); }
public ArrayMean(IGridDataSetMetaData dataSetInfo, ITimeAxisIntegrator timeAxisIntegrator, ISpatGridIntegrator latAxisIntegrator, ISpatGridIntegrator lonAxisIntegrator, bool checkForMissingValues) { this.latAxisIntegrator = latAxisIntegrator; this.lonAxisIntegrator = lonAxisIntegrator; this.timeAxisIntegrator = timeAxisIntegrator; this.checkForMissingValues = checkForMissingValues; this.dataSetInfo = dataSetInfo; }
public ArrayMode(IGridDataSetMetaData dataSetInfo, ITimeAxisDataMaskProvider timeAxisDataMaskProvider, ISpatGridDataMaskProvider latAxisDataMaskProvider, ISpatGridDataMaskProvider lonAxisDataMaskProvider, bool checkForMissingValues) { this.timeAxisDataMaskProvider = timeAxisDataMaskProvider; this.latAxisDataMaskProvider = latAxisDataMaskProvider; this.lonAxisDataMaskProvider = lonAxisDataMaskProvider; this.checkForMissingValues = checkForMissingValues; this.dataSetInfo = dataSetInfo; }
public GridAggregator(IDataStorage context, IGridDataSetMetaData metadata, IArrayAggregator arrayAggregator, ITimeAxisBoundingBoxCalculator timeBBCalc, ISpatGridBoundingBoxCalculator latBBcalc, ISpatGridBoundingBoxCalculator lonBBcalc) { this.latBBcalc = latBBcalc; this.lonBBcalc = lonBBcalc; this.timeBBCalc = timeBBCalc; this.arrayAggregator = arrayAggregator; this.dataStorage = context; this.metadata = metadata; }