public static void main(String[] args) { CGIARProvider provider = new CGIARProvider(); System.out.println(provider.getEle(46, -20)); // 337.0 System.out.println(provider.getEle(49.949784, 11.57517)); // 466.0 System.out.println(provider.getEle(49.968668, 11.575127)); // 455.0 System.out.println(provider.getEle(49.968682, 11.574842)); // 3134 System.out.println(provider.getEle(-22.532854, -65.110474)); // 120 System.out.println(provider.getEle(38.065392, -87.099609)); // 1615 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)); // 1616 System.out.println(provider.getEle(39.999999, -105.2277023)); // 0 System.out.println(provider.getEle(29.840644, -42.890625)); // 841 System.out.println(provider.getEle(48.469123, 9.576393)); }
@Override int getMinLonForTile(double lon) { return down(lon); }
@Ignore public void testGetEleHorizontalBorder() { // Border between the tiles N42E011 and N42E012 assertEquals("srtm_38_04", instance.getFileName(44.94, 9.999999)); assertEquals(48, instance.getEle(44.94, 9.999999), precision); assertEquals("srtm_39_04", instance.getFileName(44.94, 10.000001)); assertEquals(48, instance.getEle(44.94, 10.000001), precision); } }
@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) + ".zip"); 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) {
String name = getFileName(lat, lon); HeightTile demProvider = cacheData.get(name); if (demProvider == null) { cacheDir.mkdirs(); int minLat = down(lat); int minLon = down(lon); DataAccess heights = getDirectory().find(name + ".gh"); demProvider.setHeights(heights); boolean loadExisting = false;
public MultiSourceElevationProvider(String cacheDir) { this(new CGIARProvider(cacheDir), new GMTEDProvider(cacheDir)); }
tmpProvider = new SRTMProvider(); } else if (eleProviderStr.equalsIgnoreCase("cgiar")) { CGIARProvider cgiarProvider = new CGIARProvider(); cgiarProvider.setAutoRemoveTemporaryFiles(args.getBool("graph.elevation.cgiar.clear", true)); tmpProvider = cgiarProvider;
@Override String getDownloadURL(double lat, double lon) { return baseUrl + "/" + getFileName(lat, lon) + ".zip"; }
@Ignore public void testGetEle() { assertEquals(337, instance.getEle(49.949784, 11.57517), precision); assertEquals(466, instance.getEle(49.968668, 11.575127), precision); assertEquals(455, instance.getEle(49.968682, 11.574842), precision); assertEquals(3134, instance.getEle(-22.532854, -65.110474), precision); assertEquals(120, instance.getEle(38.065392, -87.099609), precision); assertEquals(1615, instance.getEle(40, -105.2277023), precision); assertEquals(1615, instance.getEle(39.99999999, -105.2277023), precision); assertEquals(1615, instance.getEle(39.9999999, -105.2277023), precision); assertEquals(1616, instance.getEle(39.999999, -105.2277023), precision); assertEquals(986, instance.getEle(47.468668, 14.575127), precision); assertEquals(1091, instance.getEle(47.467753, 14.573911), precision); assertEquals(1951, instance.getEle(46.468835, 12.578777), precision); assertEquals(841, instance.getEle(48.469123, 9.576393), precision); assertEquals(Double.NaN, instance.getEle(56.4787319, 17.6118363), precision); // Outside of SRTM covered area assertEquals(0, instance.getEle(60.0000001, 16), precision); assertEquals(0, instance.getEle(60.0000001, 16), precision); assertEquals(0, instance.getEle(60.0000001, 19), precision); assertEquals(0, instance.getEle(60.251, 18.805), precision); }
private Directory getDirectory() { if (dir != null) return dir; logger.info(this.toString() + " Elevation Provider, from: " + baseUrl + ", to: " + cacheDir + ", as: " + daType); return dir = new GHDirectory(cacheDir.getAbsolutePath(), daType); }
String name = getFileName(lat, lon); HeightTile demProvider = cacheData.get(name); if (demProvider == null) cacheDir.mkdirs(); int minLat = down(lat); int minLon = down(lon); DataAccess heights = getDirectory().find(name + ".gh"); demProvider.setHeights(heights); boolean loadExisting = false;
public MultiSourceElevationProvider() { this(new CGIARProvider(), new GMTEDProvider()); }
} else if (eleProviderStr.equalsIgnoreCase("cgiar")) CGIARProvider cgiarProvider = new CGIARProvider(); cgiarProvider.setAutoRemoveTemporaryFiles(args.getBool("graph.elevation.cgiar.clear", true)); tmpProvider = cgiarProvider;
@Test public void testFileName() { assertEquals("srtm_36_02", instance.getFileName(52, -0.1)); assertEquals("srtm_35_02", instance.getFileName(50, -10)); assertEquals("srtm_36_23", instance.getFileName(-52, -0.1)); assertEquals("srtm_35_22", instance.getFileName(-50, -10)); assertEquals("srtm_39_03", instance.getFileName(49.9, 11.5)); assertEquals("srtm_34_08", instance.getFileName(20, -11)); assertEquals("srtm_34_08", instance.getFileName(20, -14)); assertEquals("srtm_34_08", instance.getFileName(20, -15)); assertEquals("srtm_37_02", instance.getFileName(52.1943832, 0.1363176)); }
private Directory getDirectory() { if (dir != null) return dir; logger.info(this.toString() + " Elevation Provider, from: " + baseUrl + ", to: " + cacheDir + ", as: " + daType); return dir = new GHDirectory(cacheDir.getAbsolutePath(), daType); } }
public static void main( String[] args ) { CGIARProvider provider = new CGIARProvider(); System.out.println(provider.getEle(46, -20)); // 337.0 System.out.println(provider.getEle(49.949784, 11.57517)); // 453.0 System.out.println(provider.getEle(49.968668, 11.575127)); // 447.0 System.out.println(provider.getEle(49.968682, 11.574842)); // 3131 System.out.println(provider.getEle(-22.532854, -65.110474)); // 123 System.out.println(provider.getEle(38.065392, -87.099609)); // 1615 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)); // 1617 System.out.println(provider.getEle(39.999999, -105.2277023)); // 0 System.out.println(provider.getEle(29.840644, -42.890625)); } }
@Ignore public void testGetEleVerticalBorder() { // Border between the tiles srtm_39_04 and srtm_39_03 assertEquals("srtm_39_04", instance.getFileName(44.999999, 11.5)); assertEquals(5, instance.getEle(44.999999, 11.5), precision); assertEquals("srtm_39_03", instance.getFileName(45.000001, 11.5)); assertEquals(6, instance.getEle(45.000001, 11.5), precision); }
@Before public void setUp() { instance = new CGIARProvider(); }
@Override int getMinLatForTile(double lat) { return down(lat); }
@Override String getDownloadURL(double lat, double lon) { return baseUrl + "/" + getFileName(lat, lon) + ".zip"; }