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); }
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; }
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); }
/// <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 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); }
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); }
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); } }
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); }
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 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>())); }
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); }
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); }