public static void main(String[] args) { GMTEDProvider provider = new GMTEDProvider(); System.out.println(provider.getEle(46, -20)); System.out.println(provider.getEle(49.949784, 11.57517)); System.out.println(provider.getEle(49.968668, 11.575127)); System.out.println(provider.getEle(49.968682, 11.574842)); System.out.println(provider.getEle(-22.532854, -65.110474)); System.out.println(provider.getEle(38.065392, -87.099609)); System.out.println(provider.getEle(40, -105.2277023)); System.out.println(provider.getEle(39.99999999, -105.2277023)); System.out.println(provider.getEle(39.9999999, -105.2277023)); System.out.println(provider.getEle(39.999999, -105.2277023)); System.out.println(provider.getEle(47.468668, 14.575127)); System.out.println(provider.getEle(47.467753, 14.573911)); System.out.println(provider.getEle(46.468835, 12.578777)); System.out.println(provider.getEle(48.469123, 9.576393));
@Override String getFileNameOfLocalFile(double lat, double lon) { return getFileName(lat, lon) + ".tif"; }
String getDownloadURL(double lat, double lon) { int lonInt = getMinLonForTile(lon); int latInt = getMinLatForTile(lat); String east = getEastString(lonInt); String lonString = getLonString(lonInt); return baseUrl + "/" + east + lonString + "/" + getLatString(latInt) + getNorthString(latInt) + lonString + east + FILE_NAME_END + ".tif"; }
@Test public void testFileNotFound() { File file = new File(instance.getCacheDir(), instance.getFileName(46, -20) + ".gh"); File zipFile = new File(instance.getCacheDir(), instance.getFileName(46, -20) + ".tif"); file.delete(); zipFile.delete(); instance.setDownloader(new Downloader("test GH") { @Override public void downloadFile(String url, String toFile) throws IOException { assertEquals(0, instance.getEle(46, -20), 1); assertEquals(228, file.length()); instance.setDownloader(new Downloader("test GH") { @Override public void downloadFile(String url, String toFile) throws IOException { instance.setSleep(30); instance.getEle(16, -20); assertTrue(false); } catch (Exception ex) {
@Ignore public void testGetEleVerticalBorder() { // Border between the tiles 50n000e and 70n000e assertEquals("50n000e_20101117_gmted_mea075", instance.getFileName(69.999999, 19.493)); assertEquals(268, instance.getEle(69.999999, 19.5249), precision); assertEquals("70n000e_20101117_gmted_mea075", instance.getFileName(70, 19.493)); assertEquals(298, instance.getEle(70, 19.5249), precision); // Second location at the border assertEquals("50n000e_20101117_gmted_mea075", instance.getFileName(69.999999, 19.236)); assertEquals(245, instance.getEle(69.999999, 19.236), precision); assertEquals("70n000e_20101117_gmted_mea075", instance.getFileName(70, 19.236)); assertEquals(241, instance.getEle(70, 19.236), precision); }
public MultiSourceElevationProvider(String cacheDir) { this(new CGIARProvider(cacheDir), new GMTEDProvider(cacheDir)); }
@Test public void testMinLat() { assertEquals(50, instance.getMinLatForTile(52.5)); assertEquals(10, instance.getMinLatForTile(29.9)); assertEquals(-70, instance.getMinLatForTile(-59.9)); }
@Test public void testMinLon() { assertEquals(-60, instance.getMinLonForTile(-59.9)); assertEquals(0, instance.getMinLonForTile(0.9)); }
@Ignore public void testGetEle() { assertEquals(339, instance.getEle(49.949784, 11.57517), precision); assertEquals(438, instance.getEle(49.968668, 11.575127), precision); assertEquals(432, instance.getEle(49.968682, 11.574842), precision); assertEquals(3169, instance.getEle(-22.532854, -65.110474), precision); assertEquals(124, instance.getEle(38.065392, -87.099609), precision); assertEquals(1615, instance.getEle(40, -105.2277023), precision); assertEquals(1618, instance.getEle(39.99999999, -105.2277023), precision); assertEquals(1618, instance.getEle(39.9999999, -105.2277023), precision); assertEquals(1618, instance.getEle(39.999999, -105.2277023), precision); assertEquals(1070, instance.getEle(47.468668, 14.575127), precision); assertEquals(1115, instance.getEle(47.467753, 14.573911), precision); assertEquals(1990, instance.getEle(46.468835, 12.578777), precision); assertEquals(841, instance.getEle(48.469123, 9.576393), precision); assertEquals(0, instance.getEle(56.4787319, 17.6118363), precision); assertEquals(0, instance.getEle(56.4787319, 17.6118363), precision); // Outside of SRTM covered area assertEquals(108, instance.getEle(60.0000001, 16), precision); assertEquals(0, instance.getEle(60.0000001, 19), precision); // Stor Roten assertEquals(14, instance.getEle(60.251, 18.805), precision); }
@Test public void testGetDownloadUrl() { // Created a couple of random tests and compared to https://topotools.cr.usgs.gov/gmted_viewer/viewer.htm assertTrue(instance.getDownloadURL(42.940339, 11.953125).contains("E000/30N000E_20101117_gmted_mea075.tif")); assertTrue(instance.getDownloadURL(38.548165, -77.167969).contains("W090/30N090W_20101117_gmted_mea075.tif")); assertTrue(instance.getDownloadURL(74.116047, -169.277344).contains("W180/70N180W_20101117_gmted_mea075.tif")); assertTrue(instance.getDownloadURL(-61.015725, -156.621094).contains("W180/70S180W_20101117_gmted_mea075.tif")); assertTrue(instance.getDownloadURL(74.590108, 166.640625).contains("E150/70N150E_20101117_gmted_mea075.tif")); assertTrue(instance.getDownloadURL(-61.015725, 162.949219).contains("E150/70S150E_20101117_gmted_mea075.tif")); }
@Ignore public void testGetEleHorizontalBorder() { // Border between the tiles 50n000e and 50n030e assertEquals("50n000e_20101117_gmted_mea075", instance.getFileName(53, 29.999999)); assertEquals(143, instance.getEle(53, 29.999999), precision); assertEquals("50n030e_20101117_gmted_mea075", instance.getFileName(53, 30.000001)); assertEquals(142, instance.getEle(53, 30.000001), precision); } }
public MultiSourceElevationProvider() { this(new CGIARProvider(), new GMTEDProvider()); }
String getFileName(double lat, double lon) { int lonInt = getMinLonForTile(lon); int latInt = getMinLatForTile(lat); return toLowerCase(getLatString(latInt) + getNorthString(latInt) + getLonString(lonInt) + getEastString(lonInt) + FILE_NAME_END); }
public static void main(String[] args) { GMTEDProvider provider = new GMTEDProvider(); System.out.println(provider.getEle(46, -20)); System.out.println(provider.getEle(49.949784, 11.57517)); System.out.println(provider.getEle(49.968668, 11.575127)); System.out.println(provider.getEle(49.968682, 11.574842)); System.out.println(provider.getEle(-22.532854, -65.110474)); System.out.println(provider.getEle(38.065392, -87.099609)); System.out.println(provider.getEle(40, -105.2277023)); System.out.println(provider.getEle(39.99999999, -105.2277023)); System.out.println(provider.getEle(39.9999999, -105.2277023)); System.out.println(provider.getEle(39.999999, -105.2277023)); System.out.println(provider.getEle(47.468668, 14.575127)); System.out.println(provider.getEle(47.467753, 14.573911)); System.out.println(provider.getEle(46.468835, 12.578777)); System.out.println(provider.getEle(48.469123, 9.576393));
@Before public void setUp() { instance = new GMTEDProvider(); }
@Test public void testGetFileName() { assertEquals("30n000e_20101117_gmted_mea075", instance.getFileName(42.940339, 11.953125)); assertEquals("30n090w_20101117_gmted_mea075", instance.getFileName(38.548165, -77.167969)); assertEquals("70n180w_20101117_gmted_mea075", instance.getFileName(74.116047, -169.277344)); assertEquals("70s180w_20101117_gmted_mea075", instance.getFileName(-61.015725, -156.621094)); assertEquals("70n150e_20101117_gmted_mea075", instance.getFileName(74.590108, 166.640625)); assertEquals("70s150e_20101117_gmted_mea075", instance.getFileName(-61.015725, 162.949219)); }
String getDownloadURL(double lat, double lon) { int lonInt = getMinLonForTile(lon); int latInt = getMinLatForTile(lat); String east = getEastString(lonInt); String lonString = getLonString(lonInt); return baseUrl + "/" + east + lonString + "/" + getLatString(latInt) + getNorthString(latInt) + lonString + east + FILE_NAME_END + ".tif"; }
tmpProvider = new CGIARProvider(cacheDirStr); } else if (eleProviderStr.equalsIgnoreCase("gmted")) { tmpProvider = new GMTEDProvider(cacheDirStr); } else if (eleProviderStr.equalsIgnoreCase("srtmgl1")) { tmpProvider = new SRTMGL1Provider(cacheDirStr);
@Override String getFileNameOfLocalFile(double lat, double lon) { return getFileName(lat, lon) + ".tif"; }
String getFileName(double lat, double lon) { int lonInt = getMinLonForTile(lon); int latInt = getMinLatForTile(lat); return toLowerCase(getLatString(latInt) + getNorthString(latInt) + getLonString(lonInt) + getEastString(lonInt) + FILE_NAME_END); }