private XYZDataset createDataSet(HashBasedTable<String, String, Double> data) { MatrixSeries series = new MatrixSeries( "DataTable", roomToCodeMapping.keySet().size(), roomToCodeMapping.keySet().size()); for (String source : roomToCodeMapping.keySet()) { Integer sourceId = roomToCodeMapping.get(source); for (String destination : roomToCodeMapping.keySet()) { Integer destinationId = roomToCodeMapping.get(destination); if (!data.contains(source, destination)) { series.update(sourceId, destinationId, -1.0); } else { double value; if (type == MarkovDataDialog.HeatMapType.COMPARISON) value = (data.get(source, destination) + 1.0) / 2; // Scale to 0 to 1 for comparison else value = data.get(source, destination); if (value < 0 || value > 1) { System.out.println( "***********Problem in value=" + value + "(" + source + "," + destination + ")"); } series.update(sourceId, destinationId, value); } } } System.out.println("Room size = " + roomToCodeMapping.keySet().size()); return new MatrixSeriesCollection(series); }
private static ArrayList<String> printData(HashBasedTable<String, String, Double> tbl1) { // lstOut = output data // sbl1 = current line // rgs1 = list of row ids // rgs2 = list of headers ArrayList<String> lstOut; StringBuilder sbl1; String rgs1[]; String rgs2[]; lstOut = new ArrayList<String>(); rgs1 = tbl1.rowKeySet().toArray(new String[tbl1.rowKeySet().size()]); rgs2 = new String[rgs1.length]; for (int i = 0; i < rgs1.length; i++) { rgs2[i] = (new File(rgs1[i])).getName(); } lstOut.add("SampleID" + "," + Joiner.on(",").join(rgs2)); for (String s : tbl1.columnKeySet()) { sbl1 = new StringBuilder(); sbl1.append(s); for (int i = 0; i < rgs1.length; i++) { sbl1.append("," + tbl1.get(rgs1[i], s)); } lstOut.add(sbl1.toString()); } return lstOut; }
@Test public void calculateWeight_WeightsCalculated_WeightsCorrect() { for (Integer i : tblWeight.rowKeySet()) { for (Integer j : tblWeight.columnKeySet()) { assertEquals(tblWeight.get(i, j), spw1.getWeight(spw1.getEdge(i, j)), 0.0000001); } } }
private void handleIncomingConfirmableCoapRequest(ChannelHandlerContext ctx, MessageEvent me) { InetSocketAddress remoteEndpoint = (InetSocketAddress) me.getRemoteAddress(); CoapMessage coapMessage = (CoapMessage) me.getMessage(); IncomingReliableMessageExchange newMessageExchange = new IncomingReliableMessageExchange(remoteEndpoint, coapMessage.getMessageID()); IncomingMessageExchange oldMessageExchange = ongoingMessageExchanges.get(remoteEndpoint, coapMessage.getMessageID()); // Check if there is an ongoing if (oldMessageExchange != null) { if (oldMessageExchange instanceof IncomingReliableMessageExchange) { // if the old message exchange is reliable and the empty ACK was already sent send another // empty ACK if (((IncomingReliableMessageExchange) oldMessageExchange).isAcknowledgementSent()) writeEmptyAcknowledgement(remoteEndpoint, coapMessage.getMessageID()); } // if the old message was unreliable and the duplicate message is confirmable send empty ACK else writeEmptyAcknowledgement(remoteEndpoint, coapMessage.getMessageID()); // As the message is already being processed there is nothing more to do return; } // try to add new reliable message exchange boolean added = false; synchronized (monitor) { Long time = System.currentTimeMillis() + MIN_EMPTY_ACK_DELAY_MILLIS; // Add message exchange to set of ongoing exchanges to detect duplicates if (!ongoingMessageExchanges.contains(remoteEndpoint, coapMessage.getMessageID())) { ongoingMessageExchanges.put(remoteEndpoint, coapMessage.getMessageID(), newMessageExchange); added = true; } // If the scheduling of the empty ACK does not work then it was already scheduled if (!emptyAcknowledgementSchedule.put(time, newMessageExchange)) { log.error("Could not schedule empty ACK for message: {}", coapMessage); ongoingMessageExchanges.remove(remoteEndpoint, coapMessage.getMessageID()); added = false; } } // everything is fine, so further process message if (added) ctx.sendUpstream(me); }
private void initialize() { // ert1 = earth geometry object // dThreshold = threshold distance // ranDist = distances range // ranTime = time range // ranDirect = directions range // i1 = counter // rgdSum = row sums double dThreshold; EarthGeometry ert1; Range<Double> ranDist; Range<Double> ranTime; Range<Double> ranDirect; int i1; double rgdSum[]; // initializing mocked data rgdLat = new double[] {45., 46., 47., 48.}; rgdLon = new double[] {-110., -109., -108., -107.}; rgdPoints = new double[rgdLat.length * rgdLat.length][2]; i1 = 0; for (int i = 0; i < rgdLat.length; i++) { for (int j = 0; j < rgdLat.length; j++) { rgdPoints[i1][0] = rgdLat[i]; rgdPoints[i1][1] = rgdLon[j]; i1++; } } rgdAbund = new double[2][rgdPoints.length]; tblWeight = HashBasedTable.create(4, 4); dThreshold = 150.; ert1 = new EarthGeometry(); rgdSum = new double[rgdPoints.length]; for (int i = 0; i < rgdPoints.length; i++) { for (int j = 0; j < rgdPoints.length; j++) { if (i != j && ert1.orthodromicDistanceWGS84( rgdPoints[i][0], rgdPoints[i][1], rgdPoints[j][0], rgdPoints[j][1]) < dThreshold) { tblWeight.put(i, j, 1.); rgdSum[i] += 1.; } else { tblWeight.put(i, j, 0.); } } rgdAbund[0][i] = ((double) i) / 20.; rgdAbund[1][i] = (((double) i) % 4.) / 4.; } for (int i = 0; i < rgdPoints.length; i++) { for (int j = 0; j < rgdPoints.length; j++) { if (rgdSum[i] > 0) { tblWeight.put(i, j, tblWeight.get(i, j) / rgdSum[i]); } } } // loading spatial weights object from file ranDist = Range.closed(0., dThreshold); ranTime = Range.closed(0., 12.); ranDirect = Range.closed(0., 360.); bio1 = new BiomIO( "/home/jladau/Desktop/Data/Microbial_Community_Samples/ValidationData.NA.NA.Ladau.biom"); try { spw1 = new SpatialWeightsMatrix( bio1, ranDist, ranDirect, ranTime, "binary", "latitude-longitude", false); } catch (Exception e) { e.printStackTrace(); } }
/** * Returns the permitted option occurrence within a message with the given code * * @param optionNumber the options number * @param messageCode the number corresponding to a message code * @return the permitted option occurrence within a message with the given code */ public static Occurence getPermittedOccurrence(int optionNumber, int messageCode) { Occurence result = OCCURENCE_CONSTRAINTS.get(messageCode, optionNumber); return result == null ? NONE : result; }
public void addCrossFeature(int i, int j, String f) { if (!crossFactors.contains(i, j)) { crossFactors.put(i, j, new Factor()); } crossFactors.get(i, j).add(f); }