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


Java Index.setDim方法代码示例

本文整理汇总了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);
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:17,代码来源:ArrayUtil.java

示例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]);
                }
            }
        }
    }
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:27,代码来源:ArrayMath.java

示例3: readData

import ucar.ma2.Index; //导入方法依赖的package包/类
/**
 * Lee una capa del archiv NetCDF y actualiza los valores m&iacute;nimos y
 * m&aacute;ximos de la variable a renderizar
 * 
 * @param ranges
 *            rangos de datos que se leer&aacute;n del archiv NetCDF
 * @param latMax
 *            cantidad m&aacute;xima de valores de latitud
 * @param lonMax
 *            cantidad m&aacute;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);
            }
        }
    }
}
 
开发者ID:rmillo,项目名称:extsdf,代码行数:44,代码来源:NetCDFController.java

示例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;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:59,代码来源:ArrayUtil.java

示例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;
    }
}
 
开发者ID:Reading-eScience-Centre,项目名称:edal-java,代码行数:57,代码来源:CdmGridDataSource.java


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