public void setUp() {
    System.err.println("TestBufferInterpolation running...");
    int[] drawableBands = {0, 1, 2};
    try {
      f = RasterDataset.open(null, path);
    } catch (NotSupportedExtensionException e) {
      e.printStackTrace();
      return;
    } catch (RasterDriverException e) {
      e.printStackTrace();
      return;
    }
    ds = new BufferFactory(f);
    ds.setDrawableBands(drawableBands);
    try {
      ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
    } catch (InvalidSetViewException e1) {
      e1.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    }
    RasterBuffer buf = (RasterBuffer) ds.getRasterBuf();

    try {
      IBuffer b1 =
          buf.getAdjustedWindow(size, size, BufferInterpolation.INTERPOLATION_NearestNeighbour);
      convertBufferToTif(fileNeighbour, f.getAffineTransform(), b1);
      b1 = buf.getAdjustedWindow(size, size, BufferInterpolation.INTERPOLATION_Bilinear);
      convertBufferToTif(fileBilinear, f.getAffineTransform(), b1);
      b1 = buf.getAdjustedWindow(size, size, BufferInterpolation.INTERPOLATION_InverseDistance);
      convertBufferToTif(fileInverseDistance, f.getAffineTransform(), b1);
      b1 = buf.getAdjustedWindow(size, size, BufferInterpolation.INTERPOLATION_BSpline);
      convertBufferToTif(fileBSpline, f.getAffineTransform(), b1);
      b1 = buf.getAdjustedWindow(size, size, BufferInterpolation.INTERPOLATION_BicubicSpline);
      convertBufferToTif(fileBicubicSpline, f.getAffineTransform(), b1);
    } catch (IOException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    }
  }
  public void testStack() {
    int[] drawableBands = {0, 1, 2};
    try {
      f = RasterDataset.open(null, path);
    } catch (NotSupportedExtensionException e) {
      e.printStackTrace();
      return;
    } catch (RasterDriverException e) {
      e.printStackTrace();
      return;
    }
    ds = new BufferFactory(f);
    ds.setDrawableBands(drawableBands);
    try {
      ds.setAreaOfInterest(645817.0, 4923851.0, 40, 40);
      dataTest1();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    } catch (InvalidSetViewException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    // print();

    try {
      ds.setAreaOfInterest(645829.8, 4923840.4, 2, 2);
      dataTest2();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    } catch (InvalidSetViewException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    // print();
  }
 private void dataTest2() throws InterruptedException {
   IBuffer raster = ds.getRasterBuf();
   // Upper Left
   assertEquals((int) (raster.getElemByte(0, 0, 0) & 0xff), 64);
   assertEquals((int) (raster.getElemByte(0, 0, 1) & 0xff), 81);
   assertEquals((int) (raster.getElemByte(0, 0, 2) & 0xff), 39);
   // Upper Right
   assertEquals((int) (raster.getElemByte(0, 1, 0) & 0xff), 64);
   assertEquals((int) (raster.getElemByte(0, 1, 1) & 0xff), 81);
   assertEquals((int) (raster.getElemByte(0, 1, 2) & 0xff), 39);
   // Lower Left
   assertEquals((int) (raster.getElemByte(1, 0, 0) & 0xff), 64);
   assertEquals((int) (raster.getElemByte(1, 0, 1) & 0xff), 81);
   assertEquals((int) (raster.getElemByte(1, 0, 2) & 0xff), 39);
   // Lower Right
   assertEquals((int) (raster.getElemByte(1, 1, 0) & 0xff), 64);
   assertEquals((int) (raster.getElemByte(1, 1, 1) & 0xff), 81);
   assertEquals((int) (raster.getElemByte(1, 1, 2) & 0xff), 39);
 }
  /**
   * Constructs a new VecBuffer with the specified vector size, number of vectors, and buffer
   * factory.
   *
   * @param coordsPerVec the number of coordinates per logical vector.
   * @param size the number of vectors.
   * @param factory the factory used to a backing BufferWrapper of the appropriate size.
   * @throws IllegalArgumentException if coordsPerElem is 0 or negative, if size is negative, or if
   *     the factory is null.
   */
  public VecBuffer(int coordsPerVec, int size, BufferFactory factory) {
    if (coordsPerVec < 1) {
      String message = Logging.getMessage("generic.ArgumentOutOfRange", "coordsPerVec < 1");
      Logging.logger().severe(message);
      throw new IllegalArgumentException(message);
    }

    if (size < 0) {
      String message = Logging.getMessage("generic.SizeOutOfRange", size);
      Logging.logger().severe(message);
      throw new IllegalArgumentException(message);
    }

    if (factory == null) {
      String message = Logging.getMessage("nullValue.FactoryIsNull");
      Logging.logger().severe(message);
      throw new IllegalArgumentException(message);
    }

    this.coordsPerVec = coordsPerVec;
    this.buffer = factory.newBuffer(coordsPerVec * size);
  }
  private void dataTest1() throws InterruptedException {
    IBuffer raster = ds.getRasterBuf();
    // Upper Left
    assertEquals((int) (raster.getElemByte(0, 0, 0) & 0xff), 14);
    assertEquals((int) (raster.getElemByte(0, 0, 1) & 0xff), 14);
    assertEquals((int) (raster.getElemByte(0, 0, 2) & 0xff), 0);
    // Upper Right
    assertEquals((int) (raster.getElemByte(0, 24, 0) & 0xff), 68);
    assertEquals((int) (raster.getElemByte(0, 24, 1) & 0xff), 90);
    assertEquals((int) (raster.getElemByte(0, 24, 2) & 0xff), 52);
    // Lower Left
    assertEquals((int) (raster.getElemByte(23, 0, 0) & 0xff), 129);
    assertEquals((int) (raster.getElemByte(23, 0, 1) & 0xff), 122);
    assertEquals((int) (raster.getElemByte(23, 0, 2) & 0xff), 106);
    // Lower Right
    assertEquals((int) (raster.getElemByte(23, 24, 0) & 0xff), 145);
    assertEquals((int) (raster.getElemByte(23, 24, 1) & 0xff), 140);
    assertEquals((int) (raster.getElemByte(23, 24, 2) & 0xff), 134);

    assertEquals((int) (raster.getElemByte(6, 6, 0) & 0xff), 21);
    assertEquals((int) (raster.getElemByte(6, 6, 1) & 0xff), 37);
    assertEquals((int) (raster.getElemByte(6, 6, 2) & 0xff), 10);

    assertEquals((int) (raster.getElemByte(6, 23, 0) & 0xff), 91);
    assertEquals((int) (raster.getElemByte(6, 23, 1) & 0xff), 105);
    assertEquals((int) (raster.getElemByte(6, 23, 2) & 0xff), 92);

    assertEquals((int) (raster.getElemByte(23, 6, 0) & 0xff), 153);
    assertEquals((int) (raster.getElemByte(23, 6, 1) & 0xff), 133);
    assertEquals((int) (raster.getElemByte(23, 6, 2) & 0xff), 122);

    assertEquals((int) (raster.getElemByte(9, 14, 0) & 0xff), 63);
    assertEquals((int) (raster.getElemByte(9, 14, 1) & 0xff), 69);
    assertEquals((int) (raster.getElemByte(9, 14, 2) & 0xff), 55);

    assertEquals((int) (raster.getElemByte(6, 13, 0) & 0xff), 70);
    assertEquals((int) (raster.getElemByte(6, 13, 1) & 0xff), 78);
    assertEquals((int) (raster.getElemByte(6, 13, 2) & 0xff), 55);
  }
  /**
   * Compara dos ficheros raster
   *
   * @param f1
   * @param f2
   * @throws InterruptedException
   */
  private void compareResult(String f1, String f2) throws InterruptedException {
    int[] drawableBands = {0, 1, 2};
    RasterDataset d1 = null;
    RasterDataset d2 = null;
    try {
      d1 = RasterDataset.open(null, f1);
      d2 = RasterDataset.open(null, f2);
    } catch (NotSupportedExtensionException e) {
      e.printStackTrace();
      return;
    } catch (RasterDriverException e) {
      e.printStackTrace();
      return;
    }
    BufferFactory ds = new BufferFactory(d1);
    ds.setDrawableBands(drawableBands);
    try {
      ds.setAreaOfInterest(0, 0, d1.getWidth(), d1.getHeight());
    } catch (InvalidSetViewException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    }
    IBuffer b1 = ds.getRasterBuf();

    ds = new BufferFactory(d2);
    ds.setDrawableBands(drawableBands);
    try {
      ds.setAreaOfInterest(0, 0, d1.getWidth(), d1.getHeight());
    } catch (InvalidSetViewException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (RasterDriverException e) {
      e.printStackTrace();
    }
    IBuffer b2 = ds.getRasterBuf();

    for (int k = 0; k < b1.getBandCount(); k++) {
      for (int i = 0; i < b1.getHeight(); i++) {
        for (int j = 0; j < b1.getWidth(); j++) {
          switch (b1.getDataType()) {
            case IBuffer.TYPE_BYTE:
              assertEquals(b1.getElemByte(i, j, k), b2.getElemByte(i, j, k));
              break;
            case IBuffer.TYPE_SHORT:
              assertEquals(b1.getElemShort(i, j, k), b2.getElemShort(i, j, k));
              break;

            case IBuffer.TYPE_INT:
              assertEquals(b1.getElemInt(i, j, k), b2.getElemInt(i, j, k));
              break;

            case IBuffer.TYPE_FLOAT:
              assertEquals((int) b1.getElemFloat(i, j, k), (int) b2.getElemFloat(i, j, k));
              break;

            case IBuffer.TYPE_DOUBLE:
              assertEquals((int) b1.getElemDouble(i, j, k), (int) b2.getElemDouble(i, j, k));
              break;
          }
        }
      }
    }
  }
Example #7
0
  public Ssend(String args[]) throws Exception {
    /*
     * args[0]=0
     * args[1]=http://148.197.150.3:15000/mpjdev.conf
     * args[2]=mxdev
     */
    int DATA_SIZE = 2;
    Object[] source = new Object[5];
    // xdev.Device device = xdev.Device.newInstance("mxdev");
    xdev.Device device = MPJDev.init(new String[] {"", "", "mxdev"});
    ProcessID[] ids = device.init(args);
    int sendOverhead = device.getSendOverhead();
    int recvOverhead = device.getRecvOverhead();

    int intArray[] = new int[DATA_SIZE];
    int intReadArray[] = new int[DATA_SIZE];

    for (int i = 0; i < intArray.length; i++) {
      intArray[i] = i + 1;
      intReadArray[i] = 3;
    }

    Vector vector1 = null;
    Vector vector = new Vector();

    for (int i = 0; i < 10; i++) {
      vector.add(i + "");
    }

    Object[] objArray = new Object[5];
    source[2] = null;
    source[3] = null;
    source[4] = null;

    if (Integer.parseInt(args[0]) == 0) {
      source[0] = vector;
      source[1] = vector;
      RawBuffer rawBuffer = BufferFactory.create(100);
      mpjbuf.Buffer sbuf = new mpjbuf.Buffer(rawBuffer, sendOverhead, sendOverhead + 100);

      // simple case ..
      sbuf.putSectionHeader(Type.INT);
      sbuf.write(intArray, 0, intArray.length);
      sbuf.commit();
      device.ssend(sbuf, ids[1], 10, 10);
      sbuf.clear();

      // Java object case ..
      sbuf.putSectionHeader(Type.OBJECT);
      sbuf.write(source, 0, 1);
      sbuf.commit();
      device.ssend(sbuf, ids[1], 11, 11);
      sbuf.clear();

      // ANY_TAG case ..
      sbuf.putSectionHeader(Type.OBJECT);
      sbuf.write(source, 0, 1);
      sbuf.commit();
      device.isend(sbuf, ids[1], 13, 13);
      // request.iwait();
      sbuf.clear();

      // ANY_SRC case
      sbuf.putSectionHeader(Type.OBJECT);
      sbuf.write(source, 0, 1);
      sbuf.commit();
      device.ssend(sbuf, ids[1], 12, 12);
      // request.iwait();
      sbuf.clear();

      // ANY_TAG and ANY_SRC case ...
      sbuf.putSectionHeader(Type.OBJECT);
      sbuf.write(source, 0, 1);
      sbuf.commit();
      device.ssend(sbuf, ids[1], 14, 14);
      // request.iwait();
      sbuf.clear();

      // .. ..

      BufferFactory.destroy(rawBuffer);

    } else if (Integer.parseInt(args[0]) == 1) {
      source[0] = null;
      source[1] = null;
      RawBuffer rawBuffer = BufferFactory.create(100);
      mpjbuf.Buffer rbuf = new mpjbuf.Buffer(rawBuffer, recvOverhead, recvOverhead + 100);
      mpjdev.Status status = new mpjdev.Status();
      Type sectionHeader = null;
      int sectionSize;

      // simple case ..
      status = device.recv(rbuf, ids[0], 10, 10);
      System.out.println("status.srcID " + status.srcID);
      System.out.println("status.tag " + status.tag);
      rbuf.commit();
      sectionHeader = rbuf.getSectionHeader();
      sectionSize = rbuf.getSectionSize();
      rbuf.read(intReadArray, 0, intArray.length);
      rbuf.clear();

      if (Arrays.equals(intArray, intReadArray)) {
        System.out.println("\n#################" + "\n <<<<PASSED>>>> " + "\n################");
      } else {
        System.out.println("\n#################" + "\n <<<<FAILED>>>> " + "\n################");
      }

      // Java object case ..
      status = device.recv(rbuf, ids[0], 11, 11);
      System.out.println("status.srcID " + status.srcID);
      System.out.println("status.tag " + status.tag);
      rbuf.commit();
      rbuf.getSectionHeader();
      sectionSize = rbuf.getSectionSize();
      // System.out.println("sectionSize "+sectionSize);

      rbuf.read(source, 0, 1);

      vector1 = (java.util.Vector) source[0];

      if (vector1.equals(vector)) {
        System.out.println("Object case passed");
      } else {
        System.out.println("Object case failed");
      }

      // .. ..
      mpjdev.Status status3 = new mpjdev.Status();
      status3 = device.recv(rbuf, ids[0], Device.ANY_TAG, 13);
      // mpjdev.Status ret_status3 = request.iwait();
      System.out.println("status.srcID " + status3.srcID);
      System.out.println("status.tag " + status3.tag);
      rbuf.commit();
      rbuf.getSectionHeader();
      sectionSize = rbuf.getSectionSize();
      rbuf.read(source, 0, 1);

      vector1 = (java.util.Vector) source[0];

      if (vector1.equals(vector)) {
        System.out.println("**************************");
        System.out.println("Object case passed ANY_TAG ");
        System.out.println("**************************");
      } else {
        System.out.println("Object case failed");
      }

      mpjdev.Status status2 = new mpjdev.Status();
      status2 = device.recv(rbuf, Device.ANY_SRC, 12, 12);
      // mpjdev.Status ret_status2 = request.iwait();
      System.out.println("status.srcID " + status2.srcID);
      System.out.println("status.tag " + status2.tag);
      rbuf.commit();
      rbuf.getSectionHeader();
      sectionSize = rbuf.getSectionSize();
      rbuf.read(source, 0, 1);

      vector1 = (java.util.Vector) source[0];

      if (vector1.equals(vector)) {
        System.out.println("**************************");
        System.out.println("Object case passed ANY_SRC ");
        System.out.println("**************************");
      } else {
        System.out.println("Object case failed");
      }

      mpjdev.Status status4 = new mpjdev.Status();
      status4 = device.recv(rbuf, Device.ANY_SRC, Device.ANY_TAG, 14);
      // mpjdev.Status ret_status4 = request.iwait();
      System.out.println("status.srcID " + status4.srcID);
      System.out.println("status.tag " + status4.tag);
      rbuf.commit();
      rbuf.getSectionHeader();
      sectionSize = rbuf.getSectionSize();
      rbuf.read(source, 0, 1);

      vector1 = (java.util.Vector) source[0];

      if (vector1.equals(vector)) {
        System.out.println("**************************");
        System.out.println("Object case passed ANY_TAG && ANY_SRC ");
        System.out.println("**************************");
      } else {
        System.out.println("Object case failed");
      }

      // .. ..

      BufferFactory.destroy(rawBuffer);
    }

    device.finish();
  }