예제 #1
0
        public void PopulateEquirectangular()
        {
            var options = new EquirectangularOptions
            {
                AutoCrop          = true,
                Tint              = "ff0000",
                SpatialResolution = Constants.Satellite.SpatialResolution.FourKm,
                InterpolationType = InterpolationOptions.B,
                IntervalMinutes   = 30,
                Brightness        = 1.2f,
                Saturation        = 0.5f,
                Force             = true,
                Verbose           = true
            };

            var renderOptions = OptionsParser.Populate(options);

            Assert.NotNull(renderOptions.EquirectangularRender);

            renderOptions.EquirectangularRender.AutoCrop.Should().BeTrue();
            renderOptions.SpatialResolution.Should().Be(Constants.Satellite.SpatialResolution.FourKm);
            renderOptions.Tint.Should().Be(Color.FromRgb(255, 0, 0));
            renderOptions.InterpolationType.Should().Be(InterpolationType.Bilinear);
            renderOptions.ImageSize.Should().Be(Constants.Satellite.ImageSize.FourKm);
            renderOptions.ImageOffset.Should().Be(Constants.Satellite.Offset.FourKm);
            renderOptions.Interval.Should().Be(TimeSpan.FromMinutes(30));
            renderOptions.Brightness.Should().Be(1.2f);
            renderOptions.Saturation.Should().Be(0.5f);
            renderOptions.Force.Should().BeTrue();
            renderOptions.Verbose.Should().BeTrue();
        }
예제 #2
0
        public void PopulateGeostationary()
        {
            var options = new GeostationaryOptions
            {
                HazeAmount        = 0.5f,
                Longitude         = 147,
                Tint              = "ff0000",
                SpatialResolution = Constants.Satellite.SpatialResolution.TwoKm,
                InterpolationType = InterpolationOptions.N,
                Force             = false,
                Verbose           = false,
                Quiet             = true
            };

            var renderOptions = OptionsParser.Populate(options);

            Assert.NotNull(renderOptions.GeostationaryRender);

            renderOptions.GeostationaryRender.Longitude.Should().Be(147);
            renderOptions.GeostationaryRender.HazeAmount.Should().Be(0.5f);
            renderOptions.InterpolationType.Should().Be(InterpolationType.NearestNeighbour);
            renderOptions.ImageSize.Should().Be(Constants.Satellite.ImageSize.TwoKm);
            renderOptions.ImageOffset.Should().Be(Constants.Satellite.Offset.TwoKm);
            renderOptions.Force.Should().BeFalse();
            renderOptions.Verbose.Should().BeFalse();
            renderOptions.Quiet.Should().BeTrue();
        }
예제 #3
0
        private static RenderOptions ParseReprojectOptions(EquirectangularOptions options)
        {
            var validation = new EquirectangularOptionsValidator().Validate(options);

            if (validation.IsValid)
            {
                return(OptionsParser.Populate(options));
            }

            throw new ValidationException(validation.Errors);
        }
예제 #4
0
        private static RenderOptions ParseGeostationaryOptions(GeostationaryOptions options)
        {
            var validation = new GeostationaryOptionsValidator().Validate(options);

            if (validation.IsValid)
            {
                return(OptionsParser.Populate(options));
            }

            throw new ValidationException(validation.Errors);
        }
예제 #5
0
        public void OneTimeSetUp()
        {
            var options = OptionsParser.Populate(new GeostationaryOptions
            {
                Tint = "ff0000",
                InterpolationType = InterpolationOptions.B,
                SpatialResolution = Constants.Satellite.SpatialResolution.TwoKm,
                DefinitionsPath   = DefinitionsPath,
                HazeAmount        = 1.0f
            });

            // Build DI container
            ServiceProvider = ServiceProviderFactory.ConfigureServices(options);

            UnderlayCacheRepository.DeleteCache();
            UnderlayCacheRepository.Initialise();
        }
예제 #6
0
        public void PopulateEquirectangular()
        {
            var options = new EquirectangularOptions
            {
                AutoCrop          = true,
                Tint              = "ff0000",
                SpatialResolution = Constants.Satellite.SpatialResolution.FourKm,
                InterpolationType = InterpolationOptions.B,
                IntervalMinutes   = 30,
                Brightness        = 1.2f,
                Saturation        = 0.5f,
                Force             = true,
                Verbose           = true,
                LongitudeRange    = "-180:180",
                LatitudeRange     = "-50:50"
            };

            var renderOptions = OptionsParser.Populate(options);

            Assert.NotNull(renderOptions.EquirectangularRender);

            renderOptions.EquirectangularRender !.AutoCrop.Should().BeTrue();

            Assert.NotNull(renderOptions.EquirectangularRender.LatitudeRange);
            Assert.NotNull(renderOptions.EquirectangularRender.LongitudeRange);

            renderOptions.EquirectangularRender.LatitudeRange !.Value.Start.Should().Be(Angle.FromDegrees(-50).Radians);
            renderOptions.EquirectangularRender.LatitudeRange !.Value.End.Should().Be(Angle.FromDegrees(50).Radians);

            renderOptions.EquirectangularRender.LongitudeRange !.Value.Start.Should().Be(Angle.FromDegrees(-180).Radians);
            renderOptions.EquirectangularRender.LongitudeRange !.Value.End.Should().Be(Angle.FromDegrees(180).Radians);

            renderOptions.SpatialResolution.Should().Be(Constants.Satellite.SpatialResolution.FourKm);
            renderOptions.Tint.Should().Be(Color.FromRgb(255, 0, 0));
            renderOptions.InterpolationType.Should().Be(InterpolationType.Bilinear);
            renderOptions.ImageSize.Should().Be(Constants.Satellite.ImageSize.FourKm);
            renderOptions.ImageOffset.Should().Be(Constants.Satellite.Offset.FourKm);
            renderOptions.Interval.Should().Be(TimeSpan.FromMinutes(30));
            renderOptions.Brightness.Should().Be(1.2f);
            renderOptions.Saturation.Should().Be(0.5f);
            renderOptions.Force.Should().BeTrue();
            renderOptions.Verbose.Should().BeTrue();
        }