本文整理汇总了Java中ucar.ma2.Index.setDim方法的典型用法代码示例。如果您正苦于以下问题:Java Index.setDim方法的具体用法?Java Index.setDim怎么用?Java Index.setDim使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ucar.ma2.Index
的用法示例。
在下文中一共展示了Index.setDim方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: iterIndex
import ucar.ma2.Index; //导入方法依赖的package包/类
private static void iterIndex(List<Index> ii, Index index, int[] indices, int idx) {
int n = indices.length;
if (idx < n - 1) {
index.setDim(idx, indices[idx]);
iterIndex(ii, index, indices, idx + 1);
index.setDim(idx, indices[idx] + 1);
iterIndex(ii, index, indices, idx + 1);
} else {
index.setDim(idx, indices[idx]);
ii.add((Index) index.clone());
//System.out.println(index);
index.setDim(idx, indices[idx] + 1);
ii.add((Index) index.clone());
//System.out.println(index);
}
}
示例2: 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]);
}
}
}
}
}
示例3: readData
import ucar.ma2.Index; //导入方法依赖的package包/类
/**
* Lee una capa del archiv NetCDF y actualiza los valores mínimos y
* máximos de la variable a renderizar
*
* @param ranges
* rangos de datos que se leerán del archiv NetCDF
* @param latMax
* cantidad máxima de valores de latitud
* @param lonMax
* cantidad máxima de valores de longitud
*
* @throws IOException
* error de entrada salida
* @throws InvalidRangeException
* formato de archivo NetCDF no soportado
*/
private void readData(ArrayList<Range> ranges, int latMax, int lonMax)
throws IOException, InvalidRangeException {
// Lee los valores desde el archivo NetCDF
Array arr = dataVar.read(ranges);
Index idx = arr.getIndex();
// Si existe la dimensión de tiempo establece el índice como 0
if (idxTime != -1)
idx.setDim(idxTime, 0);
// Recorre la dimensión correspondiente a la latitud
for (int i = 0; i < latMax; ++i) {
idx.setDim(idxLat, i);
// Recorre la dimensión correspondiente a la longitud
for (int j = 0; j < lonMax; ++j) {
idx.setDim(idxLon, j);
// Lee el valor correspondiente
Object val = readData(arr, idx);
// Verifica si no es un valor de relleno y compara con el mínimo
// y el máximo
if (!isDataFillValue(val)) {
compareDataMin(val);
compareDataMax(val);
}
}
}
}
示例4: broadcast
import ucar.ma2.Index; //导入方法依赖的package包/类
/**
* Broadcast array to a new shape
*
* @param a Array a
* @param shape Shape
* @return Result array
*/
public static Array broadcast(Array a, int[] shape) {
int[] bshape = a.getShape();
if (bshape.length > shape.length) {
return null;
}
if (bshape.length < shape.length) {
int miss = shape.length - a.getRank();
bshape = new int[shape.length];
for (int i = 0; i < shape.length; i++) {
if (i < miss) {
bshape[i] = 1;
} else {
bshape[i] = a.getShape()[i - miss];
}
}
a = a.reshape(bshape);
}
//Check
boolean pass = true;
for (int i = 0; i < shape.length; i++) {
if (shape[i] != bshape[i] && bshape[i] != 1) {
pass = false;
break;
}
}
if (!pass) {
return null;
}
//Broadcast
Index aindex = a.getIndex();
Array r = Array.factory(a.getDataType(), shape);
Index index = r.getIndex();
int[] current;
for (int i = 0; i < r.getSize(); i++) {
current = index.getCurrentCounter();
for (int j = 0; j < shape.length; j++) {
if (bshape[j] == 1) {
aindex.setDim(j, 0);
} else {
aindex.setDim(j, current[j]);
}
}
r.setObject(index, a.getObject(aindex));
index.incr();
}
return r;
}
示例5: get
import ucar.ma2.Index; //导入方法依赖的package包/类
@Override
public Number get(int... coords) {
/*
* The convention is that the x coordinate varies fastest
*/
int x = coords[3];
int y = coords[2];
int z = coords[1];
int t = coords[0];
/*
* Create a new index
*/
Index index = arr.getIndex();
/*
* Set the index values
*/
if (tAxisIndex >= 0)
index.setDim(tAxisIndex, t);
if (zAxisIndex >= 0)
index.setDim(zAxisIndex, z);
if (yAxisIndex >= 0)
index.setDim(yAxisIndex, y);
if (xAxisIndex >= 0)
index.setDim(xAxisIndex, x);
Number val = null;
switch (arr.getDataType()) {
case BYTE:
val = arr.getByte(index);
break;
case DOUBLE:
val = arr.getDouble(index);
break;
case FLOAT:
val = arr.getFloat(index);
break;
case INT:
val = arr.getInt(index);
break;
case LONG:
val = arr.getLong(index);
break;
case SHORT:
val = arr.getShort(index);
break;
default:
break;
}
if (isMissing(val)) {
return null;
} else {
return val;
}
}