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);
        }
Exemplo n.º 2
0
        public void ShowWsiearthTif()
        {
            var path = rasterDataPath + @"\..\wsiearth.tif";
            var gdalFeatureProvider = new GdalFeatureProvider {Path = path};
            var map = new Map { Layers = { new GdalRasterLayer { DataSource = gdalFeatureProvider } } };

            Assert.AreEqual("WGS 84", gdalFeatureProvider.CoordinateSystem.Name);

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

            var rasterFeatureProvider = new GdalFeatureProvider();

            if (path != null)
            {
                rasterFeatureProvider.Open(path);
            }
            CustomRenderers.Clear();

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

            DataSource = rasterFeatureProvider;
        }
Exemplo n.º 4
0
        public void GdalRendererShouldRenderTifFileWithDefaultThemeIssue7483()
        {
            const string rasterPath = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\";
            const string path = rasterPath + "achtergrond.tif";
            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.ShowModal(map);
        }
Exemplo n.º 5
0
        /// <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();
        }
Exemplo n.º 6
0
        public override bool Render(IFeature feature, Graphics g, ILayer layer)
        {
            gdalFeatureFeatureProvider = (GdalFeatureProvider)layer.DataSource;

            if (!gdalFeatureFeatureProvider.IsOpen)
            {
                log.WarnFormat("Can not render raster layer, file is not opened");
                return(false);
            }

            if (layer.CoordinateTransformation != null)
            {
                throw new NotImplementedException();
            }

            map        = layer.Map;
            this.layer = layer;
            Draw(gdalFeatureFeatureProvider.GdalDataset, map.Size, g, map.Envelope, gdalFeatureFeatureProvider.GetExtents());

            return(true);
        }
Exemplo n.º 7
0
        public void RenderBilFileAsCoverage()
        {
            var map = new Map(new Size(400, 200)) {Name = "map1"};

            const string fileName = RasterDataPath + "SchematisatieInt.bil";
            var rasterFeatureProvider = new GdalFeatureProvider { Path = fileName };

            var rasterLayer = new RegularGridCoverageLayer();

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

            map.Layers.Add(rasterLayer);

            IRegularGridCoverage grid = rasterFeatureProvider.Grid;
            IList<int> values = grid.GetValues<int>();
            Assert.AreEqual(9, values.Count);

            MapTestHelper.ShowModal(map);
        }
        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);
        }
Exemplo n.º 9
0
        public void ReadBinaryRasterFile()
        {
            string fileName = RasterDataPath + "SchematisatieInt.bil";
            var rasterLayer = new RegularGridCoverageLayer();

            var rasterFeatureProvider = new GdalFeatureProvider();
            rasterFeatureProvider.Open(fileName);
            IRegularGridCoverage grid = rasterFeatureProvider.Grid;
            IList<int> values = grid.GetValues<int>();
            Assert.AreEqual(9, values.Count);

            IList<int> values2 = grid.GetValues<int>(
                new VariableValueFilter<double>(grid.X, grid.X.Values[0]),
                new VariableValueFilter<double>(grid.Y, grid.Y.Values[0])
                );
            Assert.AreEqual(1, values2.Count);
            Assert.AreEqual(7, values2[0]);

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


            IRegularGridCoverage regularGridCoverage = rasterFeatureProvider.Grid;
        }
        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);
            }
         }
Exemplo n.º 11
0
        public void RenderAscFileAsCoverage()
        {
            var map = new Map(new Size(10, 20)) {Name = "map1"};

            string fileName = RasterDataPath + "test.ASC";
           // const string fileName = @"D:\habitat\boomkikker_a_huidig.asc";

            var newFileName = Path.GetFullPath(Path.GetFileName(fileName));
            File.Copy(Path.GetFullPath(fileName), newFileName, true);
            var fileInfo = new FileInfo(newFileName);
            if (fileInfo.IsReadOnly)
            {
                fileInfo.IsReadOnly = false;
            }

            var rasterLayer = new RegularGridCoverageLayer();

            var rasterFeatureProvider = new GdalFeatureProvider {Path = fileName};

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

            map.Layers.Add(rasterLayer);
  
            MapTestHelper.ShowModal(map);
        }
Exemplo n.º 12
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);
        }
Exemplo n.º 13
0
        public void CreateNewRasterLayer()
        {
            // read source grid
            string filePath = RasterDataPath + "Schematisatie.bil";
            var sourceProvider = new GdalFeatureProvider {Path = filePath};
            IRegularGridCoverage sourceGrid = sourceProvider.Grid;

            // create a new grid 
            //const string targetFilePath = @"..\..\..\..\data\RasterData\SchematisatieTest.asc";
            const string targetFilePath = "GdalProviderTest.CreateNewRasterLayer.asc";
            var targetProvider = new GdalFeatureProvider();
            targetProvider.CreateNew(targetFilePath);

            Assert.AreEqual(0, targetProvider.Features.Count);

            targetProvider.Features.Add(sourceGrid);
            
            // provider will write a source grid into .asc file and will add a new grid
            Assert.AreEqual(1, targetProvider.Features.Count);

            Assert.AreEqual(sourceGrid.SizeX, targetProvider.Grid.SizeX);
            Assert.AreEqual(sourceGrid.SizeY, targetProvider.Grid.SizeY);
            Assert.AreEqual(sourceGrid.DeltaX, targetProvider.Grid.DeltaX);
            Assert.AreEqual(sourceGrid.DeltaY, targetProvider.Grid.DeltaY);

            Assert.IsTrue(sourceGrid.X.Values.SequenceEqual(targetProvider.Grid.X.Values));
            Assert.IsTrue(sourceGrid.GetValues<float>().SequenceEqual(targetProvider.Grid.GetValues<float>()));
        }
Exemplo n.º 14
0
        public void OpenTif()
        {
            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

            var cellCount = rasterLayer.Grid.SizeX*rasterLayer.Grid.SizeY;
            Assert.AreEqual(cellCount, rasterLayer.Grid.Components[0].Values.Count);
        }
Exemplo n.º 15
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 + "wsiearth.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.ShowModal(map);
        }