Search in sources :

Example 21 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project imageio-ext by geosolutions-it.

the class NetCDFConverterUtilities method isFillValueOutsideValidRange.

public static boolean isFillValueOutsideValidRange(Attribute validRange, Attribute fillValue, DataType dataType) {
    Array range = validRange.getValues();
    Index index = range.getIndex();
    if (dataType == DataType.FLOAT) {
        final float min = range.getFloat(index.set(0));
        final float max = range.getFloat(index.set(1));
        final float fill = fillValue.getNumericValue().floatValue();
        if (fill == min || fill == max)
            return false;
        else
            return true;
    } else if (dataType == DataType.DOUBLE) {
        final double min = range.getDouble(index.set(0));
        final double max = range.getDouble(index.set(1));
        final double fill = fillValue.getNumericValue().doubleValue();
        if (fill == min || fill == max)
            return false;
        else
            return true;
    } else if (dataType == DataType.BYTE) {
        final byte min = range.getByte(index.set(0));
        final byte max = range.getByte(index.set(1));
        final byte fill = fillValue.getNumericValue().byteValue();
        if (fill == min || fill == max)
            return false;
        else
            return true;
    } else if (dataType == DataType.SHORT) {
        final short min = range.getShort(index.set(0));
        final short max = range.getShort(index.set(1));
        final short fill = fillValue.getNumericValue().shortValue();
        if (fill == min || fill == max)
            return false;
        else
            return true;
    } else if (dataType == DataType.INT) {
        final int min = range.getInt(index.set(0));
        final int max = range.getInt(index.set(1));
        final int fill = fillValue.getNumericValue().intValue();
        if (fill == min || fill == max)
            return false;
        else
            return true;
    }
    throw new IllegalArgumentException("Actually unsupported Datatype");
}
Also used : Array(ucar.ma2.Array) Index(ucar.ma2.Index)

Example 22 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project imageio-ext by geosolutions-it.

the class NetCDFConverterUtilities method setData1D.

public static void setData1D(Array originalData, Array destinationData, final DataType navLatDataType, final int maxIndex, final boolean flipData) {
    Index originalDataIndex = originalData.getIndex();
    Index destinationDataIndex = flipData ? destinationData.getIndex() : originalDataIndex;
    if (navLatDataType == DataType.FLOAT) {
        for (int pos = 0; pos < maxIndex; pos++) {
            float f = originalData.getFloat(originalDataIndex.set(pos));
            // Flipping latitudes
            if (flipData) {
                destinationDataIndex.set(maxIndex - pos - 1);
            }
            destinationData.setFloat(destinationDataIndex, f);
        }
    } else if (navLatDataType == DataType.DOUBLE) {
        for (int pos = 0; pos < maxIndex; pos++) {
            double d = originalData.getDouble(originalDataIndex.set(pos));
            // Flipping latitudes
            if (flipData) {
                destinationDataIndex.set(maxIndex - pos - 1);
            }
            destinationData.setDouble(destinationDataIndex, d);
        }
    } else if (navLatDataType == DataType.BYTE) {
        for (int pos = 0; pos < maxIndex; pos++) {
            byte b = originalData.getByte(originalDataIndex.set(pos));
            // Flipping latitudes
            if (flipData) {
                destinationDataIndex.set(maxIndex - pos - 1);
            }
            destinationData.setByte(destinationDataIndex, b);
        }
    } else if (navLatDataType == DataType.SHORT) {
        for (int pos = 0; pos < maxIndex; pos++) {
            short s = originalData.getShort(originalDataIndex.set(pos));
            // Flipping latitudes
            if (flipData) {
                destinationDataIndex.set(maxIndex - pos - 1);
            }
            destinationData.setShort(destinationDataIndex, s);
        }
    } else if (navLatDataType == DataType.INT) {
        for (int pos = 0; pos < maxIndex; pos++) {
            int i = originalData.getInt(originalDataIndex.set(pos));
            // Flipping latitudes
            if (flipData) {
                destinationDataIndex.set(maxIndex - pos - 1);
            }
            destinationData.setInt(destinationDataIndex, i);
        }
    }
}
Also used : Index(ucar.ma2.Index)

Example 23 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project imageio-ext by geosolutions-it.

the class SWANConverter method run.

private void run(String fileNameIn, String fileNameOut) {
    try {
        final File fileIn = new File(fileNameIn);
        final NetcdfFile ncFileIn = NetcdfFile.open(fileNameIn);
        final File fileOut = new File(fileNameOut);
        // keep original name
        final File outputFile = File.createTempFile(fileIn.getName(), ".tmp");
        final NetcdfFileWriteable ncFileOut = NetcdfFileWriteable.createNew(outputFile.getAbsolutePath());
        boolean hasZeta = false;
        // input dimensions
        final Dimension timeDim0 = ncFileIn.findDimension("time");
        final int nTimes = timeDim0.getLength();
        final Dimension latDim0 = ncFileIn.findDimension(NetCDFUtilities.LATITUDE);
        final int nLat = latDim0.getLength();
        final Dimension lonDim0 = ncFileIn.findDimension(NetCDFUtilities.LONGITUDE);
        final int nLon = lonDim0.getLength();
        // input VARIABLES
        final Variable timeOriginalVar = ncFileIn.findVariable("time");
        final Array timeOriginalData = timeOriginalVar.read();
        final Index timeOriginalIndex = timeOriginalData.getIndex();
        final DataType timeDataType = timeOriginalVar.getDataType();
        final Variable lonOriginalVar = ncFileIn.findVariable(NetCDFUtilities.LONGITUDE);
        final DataType lonDataType = lonOriginalVar.getDataType();
        final Variable latOriginalVar = ncFileIn.findVariable(NetCDFUtilities.LATITUDE);
        final DataType latDataType = latOriginalVar.getDataType();
        final Array latOriginalData = latOriginalVar.read();
        final Array lonOriginalData = lonOriginalVar.read();
        // //
        // 
        // Depth related vars
        // 
        // //
        Array levelOriginalData = null;
        int nZeta = 0;
        Array zeta1Data = null;
        Dimension zDim = null;
        DataType zetaDataType = null;
        // Depth
        final Variable levelOriginalVar = ncFileIn.findVariable("z");
        if (levelOriginalVar != null) {
            nZeta = levelOriginalVar.getDimension(0).getLength();
            levelOriginalData = levelOriginalVar.read();
            zetaDataType = levelOriginalVar.getDataType();
            hasZeta = true;
        }
        Dimension timeDim = ncFileOut.addDimension("time", nTimes);
        Dimension latDim = ncFileOut.addDimension(NetCDFUtilities.LAT, nLat);
        Dimension lonDim = ncFileOut.addDimension(NetCDFUtilities.LON, nLon);
        if (hasZeta)
            zDim = ncFileOut.addDimension(NetCDFUtilities.HEIGHT, nZeta);
        NetCDFConverterUtilities.copyGlobalAttributes(ncFileOut, ncFileIn.getGlobalAttributes());
        // Dimensions
        Variable timeVar = ncFileOut.addVariable("time", timeDataType, new Dimension[] { timeDim });
        NetCDFConverterUtilities.setVariableAttributes(timeOriginalVar, ncFileOut, new String[] { "long_name" });
        ncFileOut.addVariableAttribute("time", "long_name", "time");
        ncFileOut.addVariable(NetCDFUtilities.LAT, latDataType, new Dimension[] { latDim });
        NetCDFConverterUtilities.setVariableAttributes(latOriginalVar, ncFileOut, NetCDFUtilities.LAT);
        ncFileOut.addVariable(NetCDFUtilities.LON, lonDataType, new Dimension[] { lonDim });
        NetCDFConverterUtilities.setVariableAttributes(lonOriginalVar, ncFileOut, NetCDFUtilities.LON);
        if (hasZeta) {
            ncFileOut.addVariable(NetCDFUtilities.HEIGHT, zetaDataType, new Dimension[] { zDim });
            NetCDFConverterUtilities.setVariableAttributes(levelOriginalVar, ncFileOut, NetCDFUtilities.HEIGHT, new String[] { "long_name" });
            ncFileOut.addVariableAttribute(NetCDFUtilities.HEIGHT, "positive", "up");
            ncFileOut.addVariableAttribute(NetCDFUtilities.HEIGHT, "long_name", NetCDFUtilities.HEIGHT);
        }
        // lat Variable
        Array lat1Data = NetCDFConverterUtilities.getArray(nLat, latDataType);
        NetCDFConverterUtilities.setData1D(latOriginalData, lat1Data, latDataType, nLat, true);
        // lon Variable
        Array lon1Data = NetCDFConverterUtilities.getArray(nLon, lonDataType);
        NetCDFConverterUtilities.setData1D(lonOriginalData, lon1Data, lonDataType, nLon, false);
        if (hasZeta) {
            // depth level Variable
            zeta1Data = NetCDFConverterUtilities.getArray(nZeta, zetaDataType);
            NetCDFConverterUtilities.setData1D(levelOriginalData, zeta1Data, zetaDataType, nZeta, false);
        }
        // {} Variables
        final ArrayList<String> variables = new ArrayList<String>(5);
        int numVars = 0;
        List<Variable> findVariables = ncFileIn.getVariables();
        for (Variable var : findVariables) {
            if (var != null) {
                String varName = var.getName();
                if (varName.equalsIgnoreCase(NetCDFUtilities.LATITUDE) || varName.equalsIgnoreCase(NetCDFUtilities.LONGITUDE) || varName.equalsIgnoreCase(NetCDFUtilities.TIME) || varName.equalsIgnoreCase(NetCDFUtilities.ZETA))
                    continue;
                variables.add(varName);
                List<Dimension> dims = var.getDimensions();
                boolean hasLocalZeta = false;
                for (Dimension dim : dims) {
                    if (dim.getName().equalsIgnoreCase(NetCDFUtilities.ZETA)) {
                        hasLocalZeta = true;
                        break;
                    }
                }
                if (hasZeta && hasLocalZeta)
                    ncFileOut.addVariable(varName, var.getDataType(), new Dimension[] { timeDim, zDim, latDim, lonDim });
                else
                    ncFileOut.addVariable(varName, var.getDataType(), new Dimension[] { timeDim, latDim, lonDim });
                NetCDFConverterUtilities.setVariableAttributes(var, ncFileOut, new String[] { "missing_value" });
                numVars++;
            }
        }
        // writing bin data ...
        ncFileOut.create();
        ArrayFloat timeData = new ArrayFloat(new int[] { timeDim.getLength() });
        Index timeIndex = timeData.getIndex();
        for (int t = 0; t < timeDim.getLength(); t++) {
            timeData.setFloat(timeIndex.set(t), timeOriginalData.getFloat(timeOriginalIndex.set(t)));
        }
        ncFileOut.write("time", timeData);
        timeVar = ncFileOut.findVariable("time");
        timeDim.addCoordinateVariable(timeVar);
        ncFileOut.write(NetCDFUtilities.LAT, lat1Data);
        ncFileOut.write(NetCDFUtilities.LON, lon1Data);
        if (hasZeta) {
            Variable heightVar = ncFileOut.findVariable(NetCDFUtilities.HEIGHT);
            zDim.addCoordinateVariable(heightVar);
            ncFileOut.write(NetCDFUtilities.HEIGHT, zeta1Data);
        }
        for (int i = 0; i < numVars; i++) {
            String varName = (String) variables.get(i);
            Variable var = ncFileIn.findVariable(varName);
            boolean hasLocalZeta = NetCDFConverterUtilities.hasThisDimension(var, NetCDFUtilities.ZETA);
            Array originalVarArray = var.read();
            DataType varDataType = var.getDataType();
            Array destArray = null;
            int[] dimensions = null;
            if (hasZeta && hasLocalZeta) {
                dimensions = new int[] { timeDim.getLength(), zDim.getLength(), latDim.getLength(), lonDim.getLength() };
            } else {
                dimensions = new int[] { timeDim.getLength(), latDim.getLength(), lonDim.getLength() };
            }
            destArray = NetCDFConverterUtilities.getArray(dimensions, varDataType);
            final boolean setZeta = hasZeta && hasLocalZeta;
            final int[] loopLengths;
            if (setZeta)
                loopLengths = new int[] { nTimes, nZeta, nLat, nLon };
            else
                loopLengths = new int[] { nTimes, nLat, nLon };
            NetCDFConverterUtilities.writeData(ncFileOut, varName, var, originalVarArray, destArray, false, false, loopLengths, true);
        }
        ncFileOut.close();
        outputFile.renameTo(fileOut);
    } catch (Exception e) {
        // something bad happened
        if (NetCDFConverterUtilities.LOGGER.isLoggable(Level.INFO))
            NetCDFConverterUtilities.LOGGER.log(Level.INFO, e.getLocalizedMessage(), e);
        JAI.getDefaultInstance().getTileCache().flush();
    }
}
Also used : NetcdfFileWriteable(ucar.nc2.NetcdfFileWriteable) Variable(ucar.nc2.Variable) ArrayList(java.util.ArrayList) Index(ucar.ma2.Index) ArrayFloat(ucar.ma2.ArrayFloat) Dimension(ucar.nc2.Dimension) IOException(java.io.IOException) NetcdfFile(ucar.nc2.NetcdfFile) Array(ucar.ma2.Array) DataType(ucar.ma2.DataType) File(java.io.File) NetcdfFile(ucar.nc2.NetcdfFile)

Example 24 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project firebase-android-sdk by firebase.

the class LocalSerializer method decodeFieldIndexSegments.

public List<FieldIndex.Segment> decodeFieldIndexSegments(Index index) {
    List<FieldIndex.Segment> result = new ArrayList<>();
    for (Index.IndexField field : index.getFieldsList()) {
        FieldPath fieldPath = FieldPath.fromServerFormat(field.getFieldPath());
        FieldIndex.Segment.Kind kind = field.getValueModeCase().equals(Index.IndexField.ValueModeCase.ARRAY_CONFIG) ? FieldIndex.Segment.Kind.CONTAINS : (field.getOrder().equals(Index.IndexField.Order.ASCENDING) ? FieldIndex.Segment.Kind.ASCENDING : FieldIndex.Segment.Kind.DESCENDING);
        result.add(FieldIndex.Segment.create(fieldPath, kind));
    }
    return result;
}
Also used : FieldPath(com.google.firebase.firestore.model.FieldPath) ArrayList(java.util.ArrayList) Index(com.google.firestore.admin.v1.Index) FieldIndex(com.google.firebase.firestore.model.FieldIndex)

Example 25 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project java-datastore by googleapis.

the class DatastoreAdminClientTest method createIndexTest.

@Test
public void createIndexTest() throws Exception {
    Index expectedResponse = Index.newBuilder().setProjectId("projectId-894832108").setIndexId("indexId1943291277").setKind("kind3292052").addAllProperties(new ArrayList<Index.IndexedProperty>()).build();
    Operation resultOperation = Operation.newBuilder().setName("createIndexTest").setDone(true).setResponse(Any.pack(expectedResponse)).build();
    mockDatastoreAdmin.addResponse(resultOperation);
    CreateIndexRequest request = CreateIndexRequest.newBuilder().setProjectId("projectId-894832108").setIndex(Index.newBuilder().build()).build();
    Index actualResponse = client.createIndexAsync(request).get();
    Assert.assertEquals(expectedResponse, actualResponse);
    List<AbstractMessage> actualRequests = mockDatastoreAdmin.getRequests();
    Assert.assertEquals(1, actualRequests.size());
    CreateIndexRequest actualRequest = ((CreateIndexRequest) actualRequests.get(0));
    Assert.assertEquals(request.getProjectId(), actualRequest.getProjectId());
    Assert.assertEquals(request.getIndex(), actualRequest.getIndex());
    Assert.assertTrue(channelProvider.isHeaderSent(ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
}
Also used : AbstractMessage(com.google.protobuf.AbstractMessage) ArrayList(java.util.ArrayList) Index(com.google.datastore.admin.v1.Index) Operation(com.google.longrunning.Operation) CreateIndexRequest(com.google.datastore.admin.v1.CreateIndexRequest) Test(org.junit.Test)

Aggregations

Index (ucar.ma2.Index)30 ArrayList (java.util.ArrayList)21 Array (ucar.ma2.Array)20 Test (org.junit.Test)12 IOException (java.io.IOException)11 Attribute (ucar.nc2.Attribute)11 AbstractMessage (com.google.protobuf.AbstractMessage)10 WritableRaster (java.awt.image.WritableRaster)10 ArrayFloat (ucar.ma2.ArrayFloat)10 Index (com.google.firestore.admin.v1.Index)9 Dimension (ucar.nc2.Dimension)9 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint)8 NetcdfFileWriteable (ucar.nc2.NetcdfFileWriteable)8 Variable (ucar.nc2.Variable)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column)7 File (java.io.File)5 List (java.util.List)5 ArrayDouble (ucar.ma2.ArrayDouble)5