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


Java Index类代码示例

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


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

示例1: createAttribute

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Creates the attribute.
 * 
 * @param name the name
 * @param classType the class type
 * @param value the value
 * 
 * @return the attribute
 */
public static Attribute createAttribute(String name, Class<?> classType, Number value) {
    int[] shape = new int[1];
    shape[0] = 1;
    Array vala = Array.factory(classType, shape);
    Index ima = vala.getIndex();

    if ((classType == double.class) || (classType == Double.class)) {
        vala.setDouble(ima, value.doubleValue());
    } else if ((classType == float.class) || (classType == Float.class)) {
        vala.setFloat(ima, value.floatValue());
    } else if ((classType == long.class) || (classType == Long.class)) {
        vala.setLong(ima, value.longValue());
    } else if ((classType == int.class) || (classType == Integer.class)) {
        vala.setInt(ima, value.intValue());
    } else if ((classType == short.class) || (classType == Short.class)) {
        vala.setShort(ima, value.shortValue());
    } else if ((classType == byte.class) || (classType == Byte.class)) {
        vala.setByte(ima, value.byteValue());
    }

    return new Attribute(name, vala);
}
 
开发者ID:clstoulouse,项目名称:motu,代码行数:32,代码来源:NetCdfWriter.java

示例2: interpn

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Multidimensional interpolation on regular grids.
 *
 * @param points The points defining the regular grid in n dimensions.
 * @param values The data on the regular grid in n dimensions.
 * @param xi The coordinates to sample the gridded data at
 * @return Interpolation value
 */
public static double interpn(List<List<Number>> points, Array values, List<Number> xi) {
    Object[] r = findIndices(points, xi);
    boolean outBounds = (boolean) r[2];
    if (outBounds) {
        return Double.NaN;
    } else {
        double v, weight;
        Index index = values.getIndex();
        int[] indices = (int[]) r[0];
        double[] distances = (double[]) r[1];
        v = 0;
        List<Index> ii = new ArrayList<>();
        iterIndex(ii, index, indices, 0);
        int n = indices.length;
        for (Index idx : ii) {
            weight = 1;
            for (int i = 0; i < n; i++) {
                weight *= idx.getCurrentCounter()[i] == indices[i] ? 1 - distances[i] : distances[i];
            }
            v += values.getDouble(idx) * weight;
        }

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

示例3: 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

示例4: 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

示例5: setSection

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Set section
 *
 * @param a Array a
 * @param ranges Ranges
 * @param v Array value
 * @return Result array
 * @throws InvalidRangeException
 */
public static Array setSection(Array a, List<Range> ranges, Array v) throws InvalidRangeException {
    Array r = a.section(ranges);
    IndexIterator iter = r.getIndexIterator();
    //int[] current;
    Index index = v.getIndex();
    while (iter.hasNext()) {
        iter.next();
        //current = iter.getCurrentCounter();
        //index.set(current);
        iter.setObjectCurrent(v.getObject(index));
        index.incr();
    }
    r = Array.factory(a.getDataType(), a.getShape(), r.getStorage());
    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:25,代码来源:ArrayMath.java

示例6: hcurl

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Calculates the vertical component of the curl (ie, vorticity)
 *
 * @param uData U component
 * @param vData V component
 * @param xx X dimension value
 * @param yy Y dimension value
 * @return Curl
 */
public static Array hcurl(Array uData, Array vData, List<Number> xx, List<Number> yy) {
    int rank = uData.getRank();
    int[] shape = uData.getShape();
    Array lonData = Array.factory(DataType.DOUBLE, shape);
    Array latData = Array.factory(DataType.DOUBLE, shape);
    Index index = lonData.getIndex();
    int[] current;
    for (int i = 0; i < lonData.getSize(); i++) {
        current = index.getCurrentCounter();
        lonData.setDouble(index, xx.get(current[rank - 1]).doubleValue());
        latData.setDouble(index, yy.get(current[rank - 2]).doubleValue());
        index.incr();
    }

    Array dv = cdiff(vData, rank - 1);
    Array dx = mul(cdiff(lonData, rank - 1), Math.PI / 180);
    Array du = cdiff(mul(uData, cos(mul(latData, Math.PI / 180))), rank - 2);
    Array dy = mul(cdiff(latData, rank - 2), Math.PI / 180);
    Array gData = div(sub(div(dv, dx), div(du, dy)), mul(cos(mul(latData, Math.PI / 180)), 6.37e6));

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

示例7: hdivg

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Calculates the horizontal divergence using finite differencing
 *
 * @param uData U component
 * @param vData V component
 * @param xx X dimension value
 * @param yy Y dimension value
 * @return Divergence
 */
public static Array hdivg(Array uData, Array vData, List<Number> xx, List<Number> yy) {
    int rank = uData.getRank();
    int[] shape = uData.getShape();
    Array lonData = Array.factory(DataType.DOUBLE, shape);
    Array latData = Array.factory(DataType.DOUBLE, shape);
    Index index = lonData.getIndex();
    int[] current;
    for (int i = 0; i < lonData.getSize(); i++) {
        current = index.getCurrentCounter();
        lonData.setDouble(index, xx.get(current[rank - 1]).doubleValue());
        latData.setDouble(index, yy.get(current[rank - 2]).doubleValue());
        index.incr();
    }

    Array du = cdiff(uData, rank - 1);
    Array dx = mul(cdiff(lonData, rank - 1), Math.PI / 180);
    Array dv = cdiff(mul(vData, cos(mul(latData, Math.PI / 180))), rank - 2);
    Array dy = mul(cdiff(latData, rank - 2), Math.PI / 180);
    Array gData = div(add(div(du, dx), div(dv, dy)), mul(cos(mul(latData, Math.PI / 180)), 6.37e6));

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

示例8: imageRead

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * Read RGB array data from image
 * @param image Image
 * @return RGB array data
 */
public static Array imageRead(BufferedImage image){
    int xn = image.getWidth();
    int yn = image.getHeight();
    Array r = Array.factory(DataType.INT, new int[]{yn, xn, 3});
    Index index = r.getIndex();
    int rgb;
    Color color;
    for (int i = 0; i < yn; i++){
        for (int j = 0; j < xn; j++){
            rgb = image.getRGB(j, yn - i - 1);
            color = new Color(rgb);
            r.setInt(index.set(i, j, 0), color.getRed());
            r.setInt(index.set(i, j, 1), color.getGreen());
            r.setInt(index.set(i, j, 2), color.getBlue());
        }
    }
    return r;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:24,代码来源:ImageUtil.java

示例9: getRGBImage

import ucar.ma2.Index; //导入依赖的package包/类
private BufferedImage getRGBImage(GridArray gdata) {
    int width, height, r, g, b;
    width = gdata.getXNum();
    height = gdata.getYNum();
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    Index index = gdata.data.getIndex();
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            r = gdata.data.getInt(index);
            index.incr();
            g = gdata.data.getInt(index);
            index.incr();
            b = gdata.data.getInt(index);
            index.incr();
            image.setRGB(j, height - i - 1, new Color(r, g, b).getRGB());
        }
    }

    return image;
}
 
开发者ID:meteoinfo,项目名称:MeteoInfoLib,代码行数:21,代码来源:RasterLayer.java

示例10: readNumber

import ucar.ma2.Index; //导入依赖的package包/类
private Number readNumber(Array arr, Index index) {
    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;
    }
    return val;
}
 
开发者ID:Reading-eScience-Centre,项目名称:edal-java,代码行数:27,代码来源:CdmMeshDataSource.java

示例11: readData

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * <p>
 * Lee un valor del archivo NetCDF seg&uacute;n el tipo de dato
 * </p>
 * 
 * @param arr
 *            Array del NetCDF desde donde se leen los datos
 * @param idx
 *            &Iacute;ndice del Array que se debe leer
 * 
 * @return el dato leido
 */
private Object readData(Array arr, Index idx) {
    int type = getDataType();
    switch (type) {
        case IBuffer.TYPE_DOUBLE:
            return arr.getDouble(idx);
        case IBuffer.TYPE_FLOAT:
            return arr.getFloat(idx);
        case IBuffer.TYPE_INT:
            return arr.getInt(idx);
        case IBuffer.TYPE_SHORT:
            return arr.getShort(idx);
        default:
            return arr.getByte(idx);
    }
}
 
开发者ID:rmillo,项目名称:extsdf,代码行数:28,代码来源:NetCDFController.java

示例12: 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

示例13: getLatValueFromYX

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * @param y y
 * @param x x
 * @return lat value
 */
public double getLatValueFromYX(int y, int x) {
    int[] shape = latArray.getShape();

    int countY = shape[0];
    int countX = shape[1];

    if ((y >= countY) || (x >= countX)) {
        return Double.MAX_VALUE;
    }
    Index ima = latArray.getIndex();
    return latArray.getDouble(ima.set(y, x));
}
 
开发者ID:clstoulouse,项目名称:motu,代码行数:18,代码来源:DatasetGridXYLatLonManager.java

示例14: getLonValueFromYX

import ucar.ma2.Index; //导入依赖的package包/类
/**
 * @param y y
 * @param x x
 * @return lon value
 */
public double getLonValueFromYX(int y, int x) {
    int[] shape = latArray.getShape();

    int countY = shape[0];
    int countX = shape[1];

    if ((y >= countY) || (x >= countX)) {
        return Double.MAX_VALUE;
    }
    Index ima = latArray.getIndex();
    return latArray.getDouble(ima.set(y, x));
}
 
开发者ID:clstoulouse,项目名称:motu,代码行数:18,代码来源:DatasetGridXYLatLonManager.java

示例15: mapAnalyze

import ucar.ma2.Index; //导入依赖的package包/类
protected double[] mapAnalyze(NetcdfFile nexradNetCDF) {
	Array dataArray;
	Index dataIndex;
	double[] retArray = null;
	
	// SHAPE is 3, 360, 324

	try {
		Variable netcdf = nexradNetCDF.findVariable("Reflectivity");
		if(netcdf == null) return null;
		dataArray = netcdf.read();
    	dataIndex = dataArray.getIndex();
    	// get shape
    	int[] shape = dataArray.getShape();	
    	
    	retArray = new double[shape[2]];
    	for(int i = 0; i < shape[2]; i++) {
        	
        	retArray[i] = dataArray.getDouble(dataIndex.set(0,0,i));

    	}
    	
		System.out.println("Array from map: " + Arrays.toString(retArray));
    	
    	
		
	} catch (IOException e) {
		// TODO Auto-generated catch block
		System.out.println(ExceptionUtils.getStackTrace(e));
		System.exit(1);
	}
	
	return retArray;

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


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