Exemple #1
0
        public void ReadAscFileAndCheckDataTypeIsFloat()
        {
            string filePath = Path.GetFullPath(RasterDataPath + "Zout_Bak.asc");

            var rasterFeatureProvider = new GdalFeatureProvider {
                Path = filePath
            };

            var regularGridCoverage = rasterFeatureProvider.Grid;

            Assert.AreEqual(4, rasterFeatureProvider.GdalDataset.RasterXSize);
            Assert.AreEqual(5, rasterFeatureProvider.GdalDataset.RasterYSize);
            Assert.AreEqual(1, rasterFeatureProvider.GdalDataset.RasterCount);


            Assert.AreEqual(typeof(Single), rasterFeatureProvider.Grid.Components[0].ValueType);
        }
        public void GenerateThemeForCategorialBilFileWithLegendFile()
        {
            const string fileName = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\bodem.bil";

            var rasterLayer           = new RegularGridCoverageLayer();
            var rasterFeatureProvider = new GdalFeatureProvider {
                Path = fileName
            };

            rasterLayer.DataSource = rasterFeatureProvider;
            IRegularGridCoverage grid = rasterLayer.Grid;

            ITheme theme = DemisMapControlLegendHelper.ConvertLegendToTheme(fileName, "value", grid);

            ICollection colors = new List <string>(new string[]
            {
                "0000FF",
                "00FFFF",
                "00FF00",
                "FFFF00",
                "FF0000"
            });
            ICollection values = new List <double>(new double[] { 1, 2, 3, 4, 5 });

            Assert.IsInstanceOfType(typeof(CategorialTheme), theme);
            foreach (IThemeItem themeItem in theme.ThemeItems)
            {
                Assert.IsInstanceOfType(typeof(CategorialThemeItem), themeItem);
                Assert.IsInstanceOfType(typeof(VectorStyle), themeItem.Style);

                double value = Convert.ToDouble(((CategorialThemeItem)themeItem).Value);
                Assert.Contains(value, values);
                ((List <double>)values).Remove(value);

                string color = FromColorToBGRString(((SolidBrush)((VectorStyle)themeItem.Style).Fill).Color);
                Assert.Contains(color, colors);
                ((List <string>)colors).Remove(color);
            }

            Assert.IsTrue(colors.Count == 0);
            Assert.IsTrue(values.Count == 0);
        }
Exemple #3
0
        public void GdalRendererShouldRenderBilFileWithDefaultTheme()
        {
            const string rasterPath = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\";
            const string path       = rasterPath + "Schematisatie.bil";

            Assert.IsTrue(File.Exists(path));
            var rasterLayer = new GdalRasterLayer();

            var rasterFeatureProvider = new GdalFeatureProvider {
                Path = path
            };

            rasterLayer.CustomRenderers.Add(new GdalRenderer(rasterLayer)); // add optimized custom gdal renderer
            rasterLayer.DataSource = rasterFeatureProvider;

            Map map = new Map(new Size(200, 200));

            map.Layers.Add(rasterLayer);
            MapTestHelper.Show(map);
        }
        /// <summary>
        /// initialize a Gdal based raster layer
        /// </summary>
        /// <param name="name">Name of layer</param>
        /// <param name="path">location of image</param>
        public GdalRasterLayer(string name, string path)
        {
            base.Name = name;

            CustomRenderers.Clear();
            CustomRenderers.Add(new GdalRenderer(this)); // add optimized custom gdal renderer

            if (path == null)
            {
                return;
            }

            var rasterFeatureProvider = new GdalFeatureProvider();

            rasterFeatureProvider.Open(path);

            DataSource = rasterFeatureProvider;

            FeatureEditor = new FeatureEditor();
        }
        public void GenerateThemeForBilFileWithoutLegendFile()
        {
            const string fileName = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\SchematisatieUInt.bil";

            RegularGridCoverageLayer rasterLayer           = new RegularGridCoverageLayer();
            GdalFeatureProvider      rasterFeatureProvider = new GdalFeatureProvider();

            rasterFeatureProvider.Open(fileName);
            rasterLayer.DataSource = rasterFeatureProvider;
            IRegularGridCoverage grid = rasterLayer.Grid;

            ITheme theme = DemisMapControlLegendHelper.ConvertLegendToTheme(fileName, "value", grid);

            Assert.IsTrue(((GradientTheme)theme).Max == 9.0);
            Assert.IsTrue(((GradientTheme)theme).Min == 1.0);

            Assert.IsInstanceOfType(typeof(GradientTheme), theme);
            foreach (IThemeItem themeItem in theme.ThemeItems)
            {
                Assert.IsInstanceOfType(typeof(GradientThemeItem), themeItem);
                Assert.IsInstanceOfType(typeof(VectorStyle), themeItem.Style);
            }
        }
Exemple #6
0
        public void ReadGdalRasterLayer()
        {
            var map = new Map {
                Name = "map1"
            };

            var provider    = new DataTableFeatureProvider("LINESTRING(90 0,100 0,100 90)");
            var vectorLayer = new VectorLayer("test", provider);

            map.Layers.Add(vectorLayer);

            string fileName              = DataPath + "dvim3.tif";
            var    rasterLayer           = new RegularGridCoverageLayer();
            var    rasterFeatureProvider = new GdalFeatureProvider {
                Path = fileName
            };

            rasterLayer.DataSource = rasterFeatureProvider;
            rasterLayer.CustomRenderers.Add(new GdalRenderer(rasterLayer)); // add optimized custom gdal renderer

            map.Layers.Add(rasterLayer);
            MapTestHelper.Show(map);
        }
        public void GenerateThemeForQuantityBilFileWithLegendFile()
        {
            const string fileName = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\FloatValues.bil";

            RegularGridCoverageLayer rasterLayer           = new RegularGridCoverageLayer();
            GdalFeatureProvider      rasterFeatureProvider = new GdalFeatureProvider {
                Path = fileName
            };

            rasterLayer.DataSource = rasterFeatureProvider;
            IRegularGridCoverage grid = rasterLayer.Grid;

            ITheme theme = DemisMapControlLegendHelper.ConvertLegendToTheme(fileName, "value", grid);

            ICollection colors = new List <string>(new string[]
            {
                "000000",
                "E1E1FE",
                "DCD9FE",
                "D6D0FE",
                "D0C8FF",
                "CBC0FF",
                "C09EFF",
                "B57BFF",
                "A959FF",
                "9E36FF",
                "9314FF"
            });
            ICollection values = new List <double>(new double[]
            {
                -16.9996604919434,
                -13.5799999237061,
                -10.1499996185303,
                -6.73000001907349,
                -3.29999995231628,
                .119999997317791,
                3.54999995231628,
                6.96999979019165,
                10.3900003433228,
                13.8199996948242,
                17.2399997711182
            });

            Assert.IsInstanceOfType(typeof(QuantityTheme), theme);
            foreach (IThemeItem themeItem in theme.ThemeItems)
            {
                Assert.IsInstanceOfType(typeof(QuantityThemeItem), themeItem);
                Assert.IsInstanceOfType(typeof(VectorStyle), themeItem.Style);

                double value = ((QuantityThemeItem)themeItem).Interval.Max;
                Assert.Contains(value, values);
                ((List <double>)values).Remove(value);

                string color = FromColorToBGRString(((SolidBrush)((VectorStyle)themeItem.Style).Fill).Color);
                Assert.Contains(color, colors);
                ((List <string>)colors).Remove(color);
            }

            Assert.IsTrue(colors.Count == 0);
            Assert.IsTrue(values.Count == 0);
        }