本文整理汇总了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]);
}
}
}
}
}
示例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);
}
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}