/** * Get the total number of dimensions from all sub-strategies * * @return the number of dimensions */ public int getNumberOfDimensions() { final NumericDimensionDefinition[] dimensions = subStrategy2.getOrderedDimensionDefinitions(); if (dimensions == null) { return 0; } return dimensions.length; }
@Override public NumericDimensionDefinition[] getOrderedDimensionDefinitions() { return subStrategy2.getOrderedDimensionDefinitions(); }
@Override public NumericDimensionDefinition[] getOrderedDimensionDefinitions() { return indexStrategy.getOrderedDimensionDefinitions(); }
public static boolean isTemporal(final NumericIndexStrategy indexStrategy) { if ((indexStrategy == null) || (indexStrategy.getOrderedDimensionDefinitions() == null)) { return false; } final NumericDimensionDefinition[] dimensions = indexStrategy.getOrderedDimensionDefinitions(); if (dimensions.length < 1) { return false; } for (final NumericDimensionDefinition definition : dimensions) { if (definition instanceof TimeDefinition) { return true; } } return false; } }
public static boolean isSpatial(final NumericIndexStrategy indexStrategy) { if ((indexStrategy == null) || (indexStrategy.getOrderedDimensionDefinitions() == null)) { return false; } final NumericDimensionDefinition[] dimensions = indexStrategy.getOrderedDimensionDefinitions(); if (dimensions.length != 2) { return false; } boolean hasLat = false, hasLon = false; for (final NumericDimensionDefinition definition : dimensions) { if ((definition instanceof LatitudeDefinition) || (definition instanceof CustomCRSUnboundedSpatialDimensionY)) { hasLat = true; } else if ((definition instanceof LongitudeDefinition) || (definition instanceof CustomCRSUnboundedSpatialDimensionX)) { hasLon = true; } } return hasLat && hasLon; } }
public static boolean isSpatialTemporal(final NumericIndexStrategy indexStrategy) { if ((indexStrategy == null) || (indexStrategy.getOrderedDimensionDefinitions() == null)) { return false; } final NumericDimensionDefinition[] dimensions = indexStrategy.getOrderedDimensionDefinitions(); if (dimensions.length < 3) { return false; } boolean hasLat = false, hasLon = false, hasTime = false; for (final NumericDimensionDefinition definition : dimensions) { if (definition instanceof TimeDefinition) { hasTime = true; } else if (definition instanceof LatitudeDefinition) { hasLat = true; } else if (definition instanceof LongitudeDefinition) { hasLon = true; } } return hasTime && hasLat && hasLon; } }
public static MultiDimensionalNumericData getFullBounds( final NumericIndexStrategy indexStrategy) { return getFullBounds(indexStrategy.getOrderedDimensionDefinitions()); }
protected static boolean hasTime(final Index index) { if ((index == null) || (index.getIndexStrategy() == null) || (index.getIndexStrategy().getOrderedDimensionDefinitions() == null)) { return false; } for (final NumericDimensionDefinition dimension : index.getIndexStrategy().getOrderedDimensionDefinitions()) { if (dimension instanceof TimeDefinition) { return true; } } return false; }
private static final double[] getBitsPerDimension( final NumericIndexStrategy indexStrategy, final double[] rangePerDimension) { final NumericDimensionDefinition dim[] = indexStrategy.getOrderedDimensionDefinitions(); final double result[] = new double[rangePerDimension.length]; for (int d = 0; d < rangePerDimension.length; d++) { result[d] += Math.ceil(log2((dim[d].getRange() / rangePerDimension[d]))); } return result; }
private static final BinRange[][] getBinsPerDimension( final NumericIndexStrategy indexStrategy, final double[] rangePerDimension) { final NumericDimensionDefinition dim[] = indexStrategy.getOrderedDimensionDefinitions(); final BinRange[][] result = new BinRange[rangePerDimension.length][]; for (int d = 0; d < rangePerDimension.length; d++) { final BinRange[] ranges = dim[d].getNormalizedRanges(new NumericRange(0, rangePerDimension[d])); result[d] = ranges; } return result; }
protected static boolean hasAtLeastSpatial(final Index index) { if ((index == null) || (index.getIndexStrategy() == null) || (index.getIndexStrategy().getOrderedDimensionDefinitions() == null)) { return false; } boolean hasLatitude = false; boolean hasLongitude = false; for (final NumericDimensionDefinition dimension : index.getIndexStrategy().getOrderedDimensionDefinitions()) { if (dimension instanceof LatitudeDefinition) { hasLatitude = true; } if (dimension instanceof LatitudeDefinition) { hasLongitude = true; } } return hasLatitude && hasLongitude; }
public MultiDimensionalNumericData getIndexConstraints( final NumericIndexStrategy indexStrategy) { if (constraintsPerTypeOfDimensionDefinition.isEmpty()) { return new BasicNumericDataset(); } final NumericDimensionDefinition[] dimensionDefinitions = indexStrategy.getOrderedDimensionDefinitions(); final NumericData[] dataPerDimension = new NumericData[dimensionDefinitions.length]; // all or nothing...for now for (int d = 0; d < dimensionDefinitions.length; d++) { final ConstraintData dimConstraint = constraintsPerTypeOfDimensionDefinition.get(dimensionDefinitions[d].getClass()); if (dimConstraint == null) { return new BasicNumericDataset(); } dataPerDimension[d] = dimConstraint.range; } return new BasicNumericDataset(dataPerDimension); }
protected boolean overlaps(final NumericData[] insertTileRange, final Index index) { @SuppressWarnings("rawtypes") final NumericDimensionDefinition[] dimensions = index.getIndexStrategy().getOrderedDimensionDefinitions(); final NumericDimensionField[] fields = index.getIndexModel().getDimensions(); final Map<Class, NumericDimensionField> dimensionTypeToFieldMap = new HashMap<>();
SubStrategy targetIndexStrategy = null; if ((targetResolutionPerDimensionForHierarchicalIndex != null) && (targetResolutionPerDimensionForHierarchicalIndex.length == indexStrategy.getOrderedDimensionDefinitions().length)) {
index.getIndexStrategy().getRangeForId(partitionKey, sortKey); final NumericDimensionDefinition[] orderedDimensions = index.getIndexStrategy().getOrderedDimensionDefinitions();
while (!done && (i < indices.length)) { nextIdx = indices[i++]; if (nextIdx.getIndexStrategy().getOrderedDimensionDefinitions().length == 0) { continue; nextIdx.getIndexStrategy().getOrderedDimensionDefinitions().length; if (IndexUtils.isFullTableScan(queryRanges) || !queryRangeDimensionsMatch(currentDimensionCount, queryRanges)) {
private void addSkipFilter(final RangeReaderParams<T> params, final FilterList filterList) { // Add skipping filter if requested if (params.getMaxResolutionSubsamplingPerDimension() != null) { if (params.getMaxResolutionSubsamplingPerDimension().length != params.getIndex().getIndexStrategy().getOrderedDimensionDefinitions().length) { LOGGER.warn( "Unable to subsample for table '" + params.getIndex().getName() + "'. Subsample dimensions = " + params.getMaxResolutionSubsamplingPerDimension().length + " when indexed dimensions = " + params.getIndex().getIndexStrategy().getOrderedDimensionDefinitions().length); } else { final int cardinalityToSubsample = IndexUtils.getBitPositionFromSubsamplingArray( params.getIndex().getIndexStrategy(), params.getMaxResolutionSubsamplingPerDimension()); final FixedCardinalitySkippingFilter skippingFilter = new FixedCardinalitySkippingFilter(cardinalityToSubsample); filterList.addFilter(skippingFilter); } } }
if (nextIdx.getIndexStrategy().getOrderedDimensionDefinitions().length == 0) { continue;
while (!done && (i < indices.length)) { nextIdx = indices[i++]; if (nextIdx.getIndexStrategy().getOrderedDimensionDefinitions().length == 0) { continue;
insertionId.getRight()); final NumericDimensionDefinition[] dimensions = pyramidLevel.getIndexStrategy().getOrderedDimensionDefinitions(); int longitudeIndex = 0, latitudeIndex = 1; final double[] minDP = new double[2];