Exemple #1
0
        static void USGSTest()
        {
            Console.WriteLine("Start USGSTest.");

            // https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
            var srtmData = new SRTMData(@"srtm-cache", new USGSSource());

            int?elevationInnsbruck = srtmData.GetElevation(47.267222, 11.392778);

            Console.WriteLine("Elevation of Innsbruck: {0}m", elevationInnsbruck);

            int?elevationLaPaz = srtmData.GetElevation(-16.5, -68.15);

            Console.WriteLine("Elevation of La Paz: {0}m", elevationLaPaz);

            int?elevationKathmandu = srtmData.GetElevation(27.702983735525862f, 85.2978515625f);

            Console.WriteLine("Elevation of Kathmandu {0}m", elevationKathmandu);

            int?elevationHanoi = srtmData.GetElevation(21.030673628606102f, 105.853271484375f);

            Console.WriteLine("Elevation of Ha Noi {0}m", elevationHanoi);

            // tries to get elevation from an empty cell.
            int?elevationSomeplace1 = srtmData.GetElevation(52.02237f, 2.55853224f);

            Console.WriteLine("Elevation of nowhere returns {0}", elevationSomeplace1);

            int?elevationNamibia1 = srtmData.GetElevation(-20, 19.89597);

            Console.WriteLine("Elevation of namibia1 returns {0}", elevationNamibia1);

            Console.WriteLine("End USGSTest.");
        }
Exemple #2
0
 protected void UseDefaultValues()
 {
     distanceBetweenPoints = defaultDistanceBetweenPoints;
     ellipsoid             = defaultEllipsoid;
     srtmData             = new SRTMData(defaultSrtmCache);
     effectiveEarthRadius = defaultEffectiveEarthRadius;
 }
        public void Srtm()
        {
            string path = "srtmcache";

            if (System.IO.Directory.Exists(path))
            {
                System.IO.Directory.Delete(path, true);
            }

            System.IO.Directory.CreateDirectory(path);

            var srtmData = new SRTMData(path);

            // get elevations for some locations
            int?elevation = srtmData.GetElevation(47.267222, 11.392778);

            Console.WriteLine("Elevation of Innsbruck: {0}m", elevation);
            Assert.AreEqual(584, elevation);

            elevation = srtmData.GetElevation(-16.5, -68.15);
            Console.WriteLine("Elevation of La Paz: {0}m", elevation);
            Assert.AreEqual(3782, elevation);

            elevation = srtmData.GetElevation(27.702983735525862f, 85.2978515625f);
            Console.WriteLine("Elevation of Kathmandu {0}m", elevation);
            Assert.AreEqual(1312, elevation);

            elevation = srtmData.GetElevation(21.030673628606102f, 105.853271484375f);
            Console.WriteLine("Elevation of Ha Noi {0}m", elevation);
            Assert.AreEqual(14, elevation);
        }
        public void TestMethod1()
        {
            var srtmData = new SRTMData(@"C:\temp\srtm-cache");

            int expected = 136;

            // -33.47330 151.31728
            int?result = srtmData.GetElevation(-33.47330, 151.31728);

            Assert.AreEqual(expected, result);
        }
Exemple #5
0
        public static double ReadTerrain(double latitude, double longitude)
        {
            var srtmData = new SRTMData(@"C:\Users\Ciclicci\Desktop\SRTM_USGS", new USGSSource());

            //var credentials = new NetworkCredential("mikeyart", "Prince5498");
            //var srtmData = new SRTMData(@"C:\Users\Ciclicci\Desktop\SRTM_NASA", new NASASource(credentials));

            int?   elevation1 = srtmData.GetElevation(latitude, longitude);
            double elevation  = Convert.ToDouble(elevation1);

            return(elevation);
        }
        public void DebugHeight()
        {
            var srtmData = new SRTMData(@"C:\temp\srtm-cache");

            // -38.26192626 144.6653395
            int?DebugHeight = srtmData.GetElevation(-38.26192626, 144.6653395);


            int expected = 136;

            // -33.47330 151.31728
            int?result = srtmData.GetElevation(-33.47330, 151.31728);

            Assert.AreEqual(expected, result);
        }
Exemple #7
0
        static void Main(string[] args)
        {
            var log = new LoggerConfiguration()
                      .WriteTo.ColoredConsole(outputTemplate: "{Timestamp:HH:mm} [{Level}] ({Name:l}) {Message}{NewLine}{Exception}")
                      .CreateLogger();

            Log.Logger = log;

            // https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
            var srtmData = new SRTMData(@"srtm-cache");

            int?elevationUlm = srtmData.GetElevation(48.197845, 9.954862);

            int?elevationInnsbruck = srtmData.GetElevation(47.267222, 11.392778);

            Console.WriteLine("Elevation of Innsbruck: {0}m", elevationInnsbruck);

            int?elevationLaPaz = srtmData.GetElevation(-16.5, -68.15);

            Console.WriteLine("Elevation of La Paz: {0}m", elevationLaPaz);

            int?elevationKathmandu = srtmData.GetElevation(27.702983735525862f, 85.2978515625f);

            Console.WriteLine("Elevation of Kathmandu {0}m", elevationLaPaz);

            int?elevationHanoi = srtmData.GetElevation(21.030673628606102f, 105.853271484375f);

            Console.WriteLine("Elevation of Ha Noi {0}m", elevationHanoi);

            // tries to get elevation from an empty cell.
            int?elevationSomeplace1 = srtmData.GetElevation(52.02237f, 2.55853224f);

            Console.WriteLine("Elevation of nowhere returns {0}", elevationSomeplace1);

            int?elevationNamibia1 = srtmData.GetElevation(-20, 19.89597);

            Console.WriteLine("Elevation of namibia1 returns {0}", elevationNamibia1);

            int?elevationRostock = srtmData.GetElevation(54.1298258, 12.0630578);

            Console.WriteLine("Elevation of Rostock returns {0}", elevationRostock);

            elevationRostock = srtmData.GetElevation(54.1238326, 12.0641476);
            Console.WriteLine("Elevation of Rostock returns {0}", elevationRostock);

            Console.WriteLine("Testing finished.");
            Console.ReadLine();
        }
Exemple #8
0
        static void Main(string[] args)
        {
            // enable logging.
            OsmSharp.Logging.Logger.LogAction = (o, level, message, parameters) =>
            {
                Console.WriteLine(string.Format("[{0}] {1} - {2}", o, level, message));
            };
            Itinero.Logging.Logger.LogAction = (o, level, message, parameters) =>
            {
                Console.WriteLine(string.Format("[{0}] {1} - {2}", o, level, message));
            };

            Download.ToFile("http://files.itinero.tech/data/OSM/planet/europe/luxembourg-latest.osm.pbf", "luxembourg-latest.osm.pbf").Wait();

            // load some routing data and create a router.
            var routerDb = new RouterDb();
            var router   = new Router(routerDb);

            using (var stream = File.OpenRead("luxembourg-latest.osm.pbf"))
            {
                routerDb.LoadOsmData(stream, Vehicle.Car);
            }

            // create a new srtm data instance.
            // it accepts a folder to download and cache data into.
            var srtmCache = new DirectoryInfo("srtm-cache");

            if (!srtmCache.Exists)
            {
                srtmCache.Create();
            }
            var srtmData = new SRTMData("srtm-cache");

            ElevationHandler.GetElevation = (lat, lon) =>
            {
                return((short)srtmData.GetElevation(lat, lon));
            };

            // add elevation.
            routerDb.AddElevation();

            // calculate route.
            // this should be the result: http://geojson.io/#id=gist:anonymous/c944cb9741f1fd511c8213b2dd83d58d&map=17/49.75454/6.09571
            var route = router.Calculate(Vehicle.Car.Fastest(), new Coordinate(49.75635954613685f, 6.095362901687622f),
                                         new Coordinate(49.75263039062888f, 6.098860502243042f));
            var routeGeoJson = route.ToGeoJson();
        }
Exemple #9
0
        static void BilinearInterpolationTest()
        {
            Console.WriteLine("Start BilinearInterpolationTest.");

            // https://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
            var srtmData = new SRTMData(@"srtm-cache", new USGSSource());

            double?elevationInnsbruck = srtmData.GetElevationBilinear(47.267222, 11.392778);

            Console.WriteLine("Bilinear elevation of Innsbruck: {0}m", elevationInnsbruck);

            double?elevationLaPaz = srtmData.GetElevationBilinear(-16.5, -68.15);

            Console.WriteLine("Elevation of La Paz: {0}m", elevationLaPaz);

            double?elevationKathmandu = srtmData.GetElevationBilinear(27.702983735525862f, 85.2978515625f);

            Console.WriteLine("Elevation of Kathmandu {0}m", elevationKathmandu);

            double?elevationHanoi = srtmData.GetElevationBilinear(21.030673628606102f, 105.853271484375f);

            Console.WriteLine("Elevation of Ha Noi {0}m", elevationHanoi);

            // tries to get elevation from an empty cell.
            double?elevationSomeplace1 = srtmData.GetElevationBilinear(52.02237f, 2.55853224f);

            Console.WriteLine("Elevation of nowhere returns {0}", elevationSomeplace1);

            double?elevationNamibia1 = srtmData.GetElevationBilinear(-20, 19.89597);

            Console.WriteLine("Elevation of namibia1 returns {0}", elevationNamibia1);

            //Testing interpolation across cell edges
            double?elevationOxted = srtmData.GetElevationBilinear(51.2525, 0.00001);

            Console.WriteLine("Elevation of Oxted {0}m", elevationOxted);

            Console.WriteLine("End BilinearInterpolationTest.");
        }
Exemple #10
0
        /// <summary>
        /// Tests adding elevation data.
        /// </summary>
        public static Action GetTestAddElevation(RouterDb routerDb)
        {
            // create a new srtm data instance.
            // it accepts a folder to download and cache data into.
            var srtmCache = new DirectoryInfo("srtm-cache");

            if (!srtmCache.Exists)
            {
                srtmCache.Create();
            }
            var srtmData = new SRTMData("srtm-cache");

            LocalGeo.Elevation.ElevationHandler.GetElevation = (lat, lon) =>
            {
                return((short)srtmData.GetElevation(lat, lon));
            };

            return(() =>
            {
                routerDb.AddElevation();
            });
        }
Exemple #11
0
        public DiffractionLossCalculator()
        {
            geoCalc = new GeodeticCalculator();

            try
            {
                config = ConfigurationManager.OpenExeConfiguration(this.GetType().Assembly.Location);
            }
            catch (Exception ex)
            {
                UseDefaultValues();
                throw ex;
            }

            if (config != null)
            {
                KeyValueConfigurationElement element;

                element = config.AppSettings.Settings["distanceBetweenPoints"];
                if (element != null)
                {
                    try
                    {
                        distanceBetweenPoints = double.Parse(element.Value);
                    }
                    catch
                    {
                        distanceBetweenPoints = defaultDistanceBetweenPoints;
                    }
                }

                element = config.AppSettings.Settings["srtmCache"];
                if (element != null)
                {
                    try
                    {
                        srtmData = new SRTMData(element.Value);
                    }
                    catch
                    {
                        srtmData = new SRTMData(defaultSrtmCache);
                    }
                }

                element = config.AppSettings.Settings["ellipsoid"];
                if (element != null)
                {
                    try
                    {
                        switch (element.Value)
                        {
                        case "WGS84":
                            ellipsoid = Ellipsoid.WGS84;
                            break;

                        case "GRS80":
                            ellipsoid = Ellipsoid.GRS80;
                            break;

                        case "GRS67":
                            ellipsoid = Ellipsoid.GRS67;
                            break;

                        case "ANS":
                            ellipsoid = Ellipsoid.ANS;
                            break;

                        case "WGS72":
                            ellipsoid = Ellipsoid.WGS72;
                            break;

                        case "Clarke1858":
                            ellipsoid = Ellipsoid.Clarke1858;
                            break;

                        case "Clarke1880":
                            ellipsoid = Ellipsoid.Clarke1880;
                            break;

                        case "Sphere":
                            ellipsoid = Ellipsoid.Sphere;
                            break;

                        default:
                            ellipsoid = defaultEllipsoid;
                            break;
                        }
                    }
                    catch
                    {
                        ellipsoid = defaultEllipsoid;
                    }
                }

                element = config.AppSettings.Settings["effectiveEarthRadius"];
                if (element != null)
                {
                    try
                    {
                        effectiveEarthRadius = double.Parse(element.Value);
                    }
                    catch
                    {
                        effectiveEarthRadius = defaultEffectiveEarthRadius;
                    }
                }
            }
            else
            {
                UseDefaultValues();
            }
        }
Exemple #12
0
        public static int GetHeight(double lat, double lon, string path)
        {
            var srtmData = new SRTMData(path);

            return(srtmData.GetElevation(lat, lon) ?? -1);
        }