当前位置: 首页>>代码示例>>Java>>正文


Java Index.set方法代码示例

本文整理汇总了Java中ucar.ma2.Index.set方法的典型用法代码示例。如果您正苦于以下问题:Java Index.set方法的具体用法?Java Index.set怎么用?Java Index.set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ucar.ma2.Index的用法示例。


在下文中一共展示了Index.set方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setIndex

import ucar.ma2.Index; //导入方法依赖的package包/类
private static void setIndex(int broadcast, Index aindex, Index bindex, int[] current, int n, int na, int nb) {
    if (broadcast == 0) {
        aindex.set(current);
        bindex.set(current);
    } else {
        int ia, ib;
        for (int j = 0; j < n; j++) {
            ia = na - j - 1;
            if (ia >= 0) {
                if (aindex.getShape(ia) == 1) {
                    aindex.setDim(ia, 0);
                } else {
                    aindex.setDim(ia, current[n - j - 1]);
                }
            }
            ib = nb - j - 1;
            if (ib >= 0) {
                if (bindex.getShape(ib) == 1) {
                    bindex.setDim(ib, 0);
                } else {
                    bindex.setDim(ib, current[n - j - 1]);
                }
            }
        }
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:27,代码来源:ArrayMath.java

示例2: writeArrayDataValues

import ucar.ma2.Index; //导入方法依赖的package包/类
private void writeArrayDataValues(int[] shape, Array arrayDataIdArray, int[] valuesOrigin, int[] arrayIdOrigin,
        ArrayData arrayData) throws IOException, InvalidRangeException {
    valuesOrigin[0] = getArrayDataOffset(arrayData);
    if (!getArrayDataOffsets().containsKey(arrayData.getId())) {
        arrayIdOrigin[0] = getArrayDataOffset(arrayData);
        arrayDataIdArray.setLong(arrayDataIdArray.getIndex(), arrayData.getId());
        writer.write(ARRAY_DATA_IDS_VARIABLE, arrayIdOrigin, arrayDataIdArray);
    }
    for (ArrayDataValueType valueType : values.getTypes()) {
        Array valuesArray = Array.factory(valueType.getTypeClass(), shape);
        Index valuesIndex = valuesArray.getIndex();
        for (AbstractReporter reporter : values.getReporters()) {
            valuesIndex.set(0, reporter.getDataStorageIndex());
            setValue(valuesArray, valuesIndex, arrayData, reporter, valueType);
        }
        writer.write(valueType.name(), valuesOrigin, valuesArray);
    }
}
 
开发者ID:NCIP,项目名称:caintegrator,代码行数:19,代码来源:NetCDFWriter.java

示例3: concatenate

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Concatenate two arrays to one array along a axis
 *
 * @param a Array a
 * @param b Array b
 * @param axis The axis
 * @return Concatenated array
 * @throws ucar.ma2.InvalidRangeException
 */
public static Array concatenate(Array a, Array b, Integer axis) throws InvalidRangeException {
    int n = a.getRank();
    int[] shape = a.getShape();
    if (axis == -1) {
        axis = n - 1;
    }
    int nn = shape[axis];
    int[] bshape = b.getShape();
    int[] nshape = new int[n];
    for (int i = 0; i < n; i++) {
        if (i == axis) {
            nshape[i] = shape[i] + bshape[i];
        } else {
            nshape[i] = shape[i];
        }
    }
    Array r = Array.factory(a.getDataType(), nshape);
    Index indexr = r.getIndex();
    Index indexa = a.getIndex();
    Index indexb = b.getIndex();
    int[] current;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        if (current[axis] < nn) {
            indexa.set(current);
            r.setObject(indexr, a.getObject(indexa));
        } else {
            current[axis] = current[axis - nn];
            indexb.set(current);
            r.setObject(indexr, b.getObject(indexb));
        }
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:46,代码来源:ArrayUtil.java

示例4: take

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Take elements from an array along an axis.
 *
 * @param a The array
 * @param ranges The indices of the values to extract.
 * @return The returned array has the same type as a.
 */
public static Array take(Array a, List<Object> ranges) {
    int n = a.getRank();
    int[] shape = new int[n];
    List<List<Integer>> indexlist = new ArrayList<>();
    List<Integer> list;
    for (int i = 0; i < n; i++) {
        Object k = ranges.get(i);
        if (k instanceof Range) {
            Range kr = (Range) k;
            shape[i] = kr.length();
            list = new ArrayList<>();
            for (int j = kr.first(); j <= kr.last(); j += kr.stride()) {
                list.add(j);
            }
            indexlist.add(list);
        } else {
            List<Integer> kl = (List<Integer>) k;
            shape[i] = kl.size();
            indexlist.add(kl);
        }
    }

    Array r = Array.factory(a.getDataType(), shape);
    IndexIterator ii = r.getIndexIterator();
    int[] current, acurrent = new int[n];
    Index index = a.getIndex();
    while (ii.hasNext()) {
        ii.next();
        current = ii.getCurrentCounter();
        for (int i = 0; i < n; i++) {
            acurrent[i] = indexlist.get(i).get(current[i]);
        }
        index.set(acurrent);
        ii.setObjectCurrent(a.getObject(index));
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:46,代码来源:ArrayMath.java

示例5: cdiff

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Performs a centered difference operation on a grid data along one
 * dimension direction
 *
 * @param data The grid data
 * @param dimIdx Direction dimension index
 * @return Result grid data
 */
public static Array cdiff(Array data, int dimIdx) {
    Array r = Array.factory(DataType.DOUBLE, data.getShape());
    Index index = data.getIndex();
    Index indexr = r.getIndex();
    int[] shape = data.getShape();
    int[] current, cc;
    double a, b;
    for (int i = 0; i < r.getSize(); i++) {
        current = indexr.getCurrentCounter();
        if (current[dimIdx] == 0 || current[dimIdx] == shape[dimIdx] - 1) {
            r.setDouble(indexr, Double.NaN);
        } else {
            cc = Arrays.copyOf(current, current.length);
            cc[dimIdx] = cc[dimIdx] - 1;
            index.set(cc);
            a = data.getDouble(index);
            cc[dimIdx] = cc[dimIdx] + 2;
            index.set(cc);
            b = data.getDouble(index);
            if (Double.isNaN(a) || Double.isNaN(b)) {
                r.setDouble(indexr, Double.NaN);
            } else {
                r.setDouble(indexr, a - b);
            }
        }
        indexr.incr();
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:39,代码来源:ArrayMath.java

示例6: mapAnalyze

import ucar.ma2.Index; //导入方法依赖的package包/类
protected Double mapAnalyze(NetcdfFile nexradNetCDF) {
	
	Array dataArray;
	Index dataIndex;
	byte dataByte = -1;
	
	// SHAPE is 3, 360, 324

	try {
		dataArray = nexradNetCDF.findVariable("Reflectivity").read();


		dataIndex = dataArray.getIndex();
		dataIndex.set(0,0,0);
		dataByte = dataArray.getByte(dataIndex);
		
	} catch (IOException e) {
		// TODO Auto-generated catch block
		System.out.println(ExceptionUtils.getStackTrace(e));
		System.exit(1);
	}
	
	return (double) dataByte;

}
 
开发者ID:stephenlienharrell,项目名称:WeatherPipe,代码行数:26,代码来源:ResearcherMapReduceAnalysisScalarAverageExample.java

示例7: rot90

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Rotate an array by 90 degrees in counter-clockwise direction.
 *
 * @param a The array
 * @param k Rotate times
 * @return Rotated array
 */
public static Array rot90(Array a, int k) {
    int[] shape = new int[a.getRank()];
    if (Math.abs(k) % 2 == 1) {
        shape[0] = a.getShape()[1];
        shape[1] = a.getShape()[0];
    } else {
        shape[0] = a.getShape()[0];
        shape[1] = a.getShape()[1];
    }
    if (a.getRank() > 2) {
        for (int i = 2; i < a.getRank(); i++) {
            shape[i] = a.getShape()[i];
        }
    }
    Array r = Array.factory(a.getDataType(), shape);
    Index indexa = a.getIndex();
    Index indexr = r.getIndex();
    int[] countera, counterr;
    switch (k) {
        case 1:
        case -3:
            for (int i = 0; i < r.getSize(); i++) {
                countera = indexa.getCurrentCounter();
                counterr = indexa.getCurrentCounter();
                counterr[0] = shape[0] - countera[1] - 1;
                counterr[1] = countera[0];
                indexr.set(counterr);
                r.setObject(indexr, a.getObject(indexa));
                indexa.incr();
            }
            break;
        case 2:
        case -2:
            for (int i = 0; i < r.getSize(); i++) {
                countera = indexa.getCurrentCounter();
                counterr = indexa.getCurrentCounter();
                counterr[0] = shape[0] - countera[0] - 1;
                counterr[1] = shape[1] - countera[1] - 1;
                indexr.set(counterr);
                r.setObject(indexr, a.getObject(indexa));
                indexa.incr();
            }
            break;
        case 3:
        case -1:
            for (int i = 0; i < r.getSize(); i++) {
                countera = indexa.getCurrentCounter();
                counterr = indexa.getCurrentCounter();
                counterr[0] = countera[1];
                counterr[1] = shape[1] - countera[0] - 1;
                indexr.set(counterr);
                r.setObject(indexr, a.getObject(indexa));
                indexa.incr();
            }
            break;
        default:
            r = null;
    }

    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:69,代码来源:ArrayMath.java

示例8: isLand

import ucar.ma2.Index; //导入方法依赖的package包/类
private static boolean isLand(int x, int y, int z, Array landMaskData) {
    Index lmIndex = landMaskData.getIndex();
    lmIndex.set(z, y, x);
    return landMaskData.getByte(lmIndex) == 1;
}
 
开发者ID:Reading-eScience-Centre,项目名称:edal-java,代码行数:6,代码来源:CreateSyntheticData.java


注:本文中的ucar.ma2.Index.set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。