/** * Given a point in x,y coordinate space, find the x,y index in the coordinate system. * If outside the range, the closest point is returned, eg, 0 or n-1 depending on if the coordinate is too small or too large. * * @param x_coord position in x coordinate space. * @param y_coord position in y coordinate space. * @param result put result in here, may be null * @return int[2], 0=x,1=y indices in the coordinate system of the point. */ @Override public int[] findXYindexFromCoordBounded(double x_coord, double y_coord, int[] result) { if (result == null) result = new int[2]; if ((horizXaxis instanceof CoordinateAxis1D) && (horizYaxis instanceof CoordinateAxis1D)) { result[0] = ((CoordinateAxis1D) horizXaxis).findCoordElementBounded(x_coord); result[1] = ((CoordinateAxis1D) horizYaxis).findCoordElementBounded(y_coord); return result; } else if ((horizXaxis instanceof CoordinateAxis2D) && (horizYaxis instanceof CoordinateAxis2D)) { if (g2d == null) g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; g2d.findCoordElement(y_coord, x_coord, result2); // returns best guess result[0] = result2[1]; result[1] = result2[0]; return result; } // cant happen throw new IllegalStateException("GridCoordSystem.findXYindexFromCoord"); }
/** * Given a point in x,y coordinate space, find the x,y index in the coordinate system. * If outside the range, the closest point is returned, eg, 0 or n-1 depending on if the coordinate is too small or too large. * * @param x_coord position in x coordinate space. * @param y_coord position in y coordinate space. * @param result put result in here, may be null * @return int[2], 0=x,1=y indices in the coordinate system of the point. */ @Override public int[] findXYindexFromCoordBounded(double x_coord, double y_coord, int[] result) { if (result == null) result = new int[2]; if ((horizXaxis instanceof CoordinateAxis1D) && (horizYaxis instanceof CoordinateAxis1D)) { result[0] = ((CoordinateAxis1D) horizXaxis).findCoordElementBounded(x_coord); result[1] = ((CoordinateAxis1D) horizYaxis).findCoordElementBounded(y_coord); return result; } else if ((horizXaxis instanceof CoordinateAxis2D) && (horizYaxis instanceof CoordinateAxis2D)) { if (g2d == null) g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; g2d.findCoordElement(y_coord, x_coord, result2); // returns best guess result[0] = result2[1]; result[1] = result2[0]; return result; } // cant happen throw new IllegalStateException("GridCoordSystem.findXYindexFromCoord"); }
/** * Given a point in x,y coordinate space, find the x,y index in the coordinate system. * If outside the range, the closest point is returned, eg, 0 or n-1 depending on if the coordinate is too small or too large. * * @param x_coord position in x coordinate space. * @param y_coord position in y coordinate space. * @param result put result in here, may be null * @return int[2], 0=x,1=y indices in the coordinate system of the point. */ @Override public int[] findXYindexFromCoordBounded(double x_coord, double y_coord, int[] result) { if (result == null) result = new int[2]; if ((horizXaxis instanceof CoordinateAxis1D) && (horizYaxis instanceof CoordinateAxis1D)) { result[0] = ((CoordinateAxis1D) horizXaxis).findCoordElementBounded(x_coord); result[1] = ((CoordinateAxis1D) horizYaxis).findCoordElementBounded(y_coord); return result; } else if ((horizXaxis instanceof CoordinateAxis2D) && (horizYaxis instanceof CoordinateAxis2D)) { if (g2d == null) g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; g2d.findCoordElement(y_coord, x_coord, result2); // returns best guess result[0] = result2[1]; result[1] = result2[0]; return result; } // cant happen throw new IllegalStateException("GridCoordSystem.findXYindexFromCoord"); }
g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; boolean found = g2d.findCoordElement(y_coord, x_coord, result2);
g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; boolean found = g2d.findCoordElement(y_coord, x_coord, result2);
g2d = new GridCoordinate2D((CoordinateAxis2D) horizYaxis, (CoordinateAxis2D) horizXaxis); int[] result2 = new int[2]; boolean found = g2d.findCoordElement(y_coord, x_coord, result2);
public static void test3() throws IOException { String filename = testfilename; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("Sea_Surface_Height_Relative_to_Geoid_surface"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, -15.554099426977835, -0.7742870290336263); gds.close(); }
public static void test3() throws IOException { String filename = "Q:/cdmUnitTest/ft/fmrc/rtofs/ofs.20091122/ofs_atl.t00z.F024.grb.grib2"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("Sea_Surface_Height_Relative_to_Geoid_surface"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, -15.554099426977835, -0.7742870290336263); gds.close(); }
public static void test2() throws IOException { String filename = "C:/data/fmrc/apex_fmrc/Run_20091025_0000.nc"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("temp"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 40.166959,-73.954234); gds.close(); }
public static void test2() throws IOException { String filename = "C:/data/fmrc/apex_fmrc/Run_20091025_0000.nc"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("temp"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 40.166959,-73.954234); gds.close(); }
public static void test3() throws IOException { String filename = testfilename; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("Sea_Surface_Height_Relative_to_Geoid_surface"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, -15.554099426977835, -0.7742870290336263); gds.close(); }
public static void test2() throws IOException { String filename = "C:/data/fmrc/apex_fmrc/Run_20091025_0000.nc"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("temp"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 40.166959,-73.954234); gds.close(); }
public static void test1() throws IOException { String filename = "D:/work/asaScience/EGM200_3.ncml"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("u_wind"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 35.0, -6.0); doOne(g2d, 34.667302, -5.008376); // FAIL doOne(g2d, 34.667303, -6.394240); doOne(g2d, 36.6346, -5.0084); doOne(g2d, 36.6346, -6.394240); gds.close(); }
public static void test1() throws IOException { String filename = "D:/work/asaScience/EGM200_3.ncml"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("u_wind"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 35.0, -6.0); doOne(g2d, 34.667302, -5.008376); // FAIL doOne(g2d, 34.667303, -6.394240); doOne(g2d, 36.6346, -5.0084); doOne(g2d, 36.6346, -6.394240); gds.close(); }
public static void test1() throws IOException { String filename = "D:/work/asaScience/EGM200_3.ncml"; GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("u_wind"); GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis lonAxis = gcs.getXHorizAxis(); assert lonAxis instanceof CoordinateAxis2D; CoordinateAxis latAxis = gcs.getYHorizAxis(); assert latAxis instanceof CoordinateAxis2D; GridCoordinate2D g2d = new GridCoordinate2D((CoordinateAxis2D) latAxis, (CoordinateAxis2D) lonAxis); doOne(g2d, 35.0, -6.0); doOne(g2d, 34.667302, -5.008376); // FAIL doOne(g2d, 34.667303, -6.394240); doOne(g2d, 36.6346, -5.0084); doOne(g2d, 36.6346, -6.394240); gds.close(); }