Пример #1
0
        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
            });
        }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }