/// <summary> /// Prompts user or automatically creates raster overviews if needed. /// </summary> private bool UpdateOverviews(IRasterSource raster) { if (!raster.NeedsOverviews) { return(true); } var config = _configService.Config; if (!config.ShowPyramidDialog && config.CreatePyramidsOnOpening) { if (raster.ImageFormat == ImageFormat.Vrt) { Logger.Current.Info("Automatic creation of pyramids for .vrt dataset is skipped."); return(true); } raster.BuildDefaultOverviews(config.PyramidSampling, config.PyramidCompression); return(true); } var presenter = _context.Container.GetInstance <CreatePyramidsPresenter>(); if (!presenter.Run(raster)) { return(false); } config.ShowPyramidDialog = !presenter.DontShowAgain; config.CreatePyramidsOnOpening = presenter.Result == DialogResult.Yes; config.PyramidCompression = presenter.View.Compression; config.PyramidSampling = presenter.View.Sampling; return(true); }
private NodeData GetBandsInfo(IRasterSource raster) { var root = new NodeData("Bands"); var bands = raster.Bands; for (int i = 1; i <= bands.Count; i++) { var band = bands[i]; var bandNode = new NodeData("Band " + i); bandNode.AddSubItem("Data type", band.DataType.ToString()); bandNode.AddSubItem("Unit type", band.UnitType); // TODO: restore; temporarily commented //bandNode.AddSubItem("Minimum", band.Minimum); //bandNode.AddSubItem("Maximum", band.Maximum); bandNode.AddSubItem("No data value", band.NoDataValue.ToString(CultureInfo.InvariantCulture)); bandNode.AddSubItem("Color interpretation", band.ColorInterpretation.ToString()); bandNode.AddSubItem("Overview count", band.Overviews.Count); var metadata = GetMetadata(band); if (metadata != null) { bandNode.AddSubItem(metadata); } root.AddSubItem(bandNode); } return(root); }
public static void AddRasterBands(this ComboBoxAdv combo, IRasterSource raster, bool withNone = false) { if (combo == null) { return; } combo.Items.Clear(); if (withNone) { combo.Items.Add("<none>"); } int bandCount = raster.Bands.Count; for (int i = 1; i <= bandCount; i++) { string bandName = raster.GetBandFullName(i); combo.Items.Add(bandName); } int index = raster.ActiveBandIndex; combo.SelectedIndex = index > 0 && index <= bandCount ? index - 1 : 0; }
public RasterInput(IRasterSource raster) : base(raster) { if (raster == null) { throw new ArgumentNullException("raster"); } Datasource = raster; }
public void ConfigureWindsor() { IRasterSource source = windsorContainer.Resolve <IRasterSource> (); Srtm3IndexFetcher indexFetcher = windsorContainer.Resolve <Srtm3IndexFetcher> (); Srtm3Source srtm3Source = (Srtm3Source)source; // todo new //Assert.AreEqual( // "http://dds.cr.usgs.gov/srtm/version2_1/", // ((DefaultSrtmServerClient) srtm3Source.SrtmServerClient).SrtmServerUrl); string[] args = new string[0]; ConsoleApp consoleApp = CreateConsoleApp(args); }
public void Initialize(IRasterSource raster) { if (raster == null) { return; } Nodes.Clear(); var root = PopulateTree(raster); var node = AddSubItems(Nodes, root); node.ExpandAll(); }
public void Initialize(IAppContext context, IRasterSource raster) { if (raster == null) { throw new ArgumentNullException("raster"); } if (context == null) { throw new ArgumentNullException("raster"); } _context = context; _raster = raster; InitComboBoxes(); }
private void AddBounds(NodeData root, IRasterSource raster) { var bounds = new NodeData("Bounds"); bounds.AddSubItem("Cell size", string.Format("{0}×{1}", raster.Dx, raster.Dy)); bounds.AddSubItem("Lower left corner", string.Format("{0};{1}", raster.XllCenter, raster.YllCenter)); root.AddSubItem(bounds); var buffer = new NodeData("Buffer"); buffer.AddSubItem("Width", raster.BufferWidth); buffer.AddSubItem("Height", raster.BufferHeight); buffer.AddSubItem("Cell size", string.Format("{0}×{1}", raster.BufferDx, raster.BufferDy)); buffer.AddSubItem("Lower left corner", string.Format("{0};{1}", raster.BufferXllCenter, raster.BufferYllCenter)); root.AddSubItem(buffer); }
private void DisplayPixelInfo(IRasterSource raster, NodeData nodePixel, SelectionItem pixel) { int bufferX, bufferY; raster.ImageToBuffer(pixel.Column, pixel.Row, out bufferX, out bufferY); if (raster.RenderingType != RasterRendering.Rgb) { var band = raster.ActiveBand; if (band != null) { var nodeBand = nodePixel.AddSubItem("Band", raster.ActiveBandIndex); double value; nodeBand.AddSubItem("Value", band.GetValue(pixel.Column, pixel.Row, out value) ? value.ToString(CultureInfo.InvariantCulture) : "Failed to retrieve"); ShowRasterCellInfo(nodeBand, raster); nodeBand.AddSubItem("Interpretation", band.ColorInterpretation.EnumToString()); ShowLocalStatistics(nodePixel, band, pixel); } } else { var nodeInfo = nodePixel.AddSubItem("Info", " "); ShowRasterCellInfo(nodeInfo, raster); } AddColor(nodePixel, raster.GetPixel(bufferY, bufferX)); if (raster.RenderingType == RasterRendering.Rgb) { if (raster.UseRgbBandMapping) { NodeData nodeRgb = nodePixel.AddSubItem("RGB mapping", " "); DisplayRgbMapping(nodeRgb, raster, pixel); } } DisplayPixelPosition(nodePixel, pixel, raster); }
private void DisplayRgbMapping(NodeData nodeRgb, IRasterSource raster, SelectionItem pixel) { var indices = new List <int>(); if (!raster.UseRgbBandMapping) { for (int i = 1; i <= Math.Max(4, raster.NumBands); i++) { indices.Add(i); } } else { indices.Add(raster.RedBandIndex); indices.Add(raster.GreenBandIndex); indices.Add(raster.BlueBandIndex); indices.Add(raster.AlphaBandIndex); } for (int i = 0; i < indices.Count; i++) { if (indices[i] <= 0 || indices[i] > raster.NumBands) { continue; } string channel = ((RgbChannel)i).EnumToString(); var nodeBand = nodeRgb.AddSubItem("Band " + (i + 1), channel); var band = raster.Bands[indices[i]]; if (band != null) { double value; nodeBand.AddSubItem("Value", band.GetValue(pixel.Column, pixel.Row, out value) ? value.ToString(CultureInfo.InvariantCulture) : "Failed to retrieve"); if (raster.UseRgbBandMapping) { nodeBand.AddSubItem("Original index", indices[i]); } } } }
private void DisplayPixelPosition(NodeData nodePixel, SelectionItem pixel, IRasterSource raster) { var nodeBuffer = nodePixel.AddSubItem("Position", " "); double projX, projY; raster.ImageToProjection(pixel.Column, pixel.Row, out projX, out projY); double degX, degY; if (_context.Map.ProjToDegrees(projX, projY, out degX, out degY)) { nodeBuffer.AddSubItem("Latitude", GeoAngle.FromDouble(degY).ToString()); nodeBuffer.AddSubItem("Longitude", GeoAngle.FromDouble(degX).ToString()); } nodeBuffer.AddSubItem("Projected X", projX.ToString("0.0")); nodeBuffer.AddSubItem("Projected Y", projY.ToString("0.0")); }
private NodeData PopulateTree(IRasterSource raster) { var root = new NodeData(" "); var general = new NodeData("General"); general.AddSubItem("Size", string.Format("{0}×{1}", raster.Width, raster.Height)); general.AddSubItem("Palette", raster.PaletteInterpretation.ToString()); general.AddSubItem("Bands", raster.NumBands); general.AddSubItem("Driver", raster.Driver.Name); root.AddSubItem(general); var bandsData = GetBandsInfo(raster); root.AddSubItem(bandsData); AddBounds(root, raster); return(root); }
public void Initialize(IApplicationContainer container, IRasterSource raster) { if (raster == null) { return; } if (container == null) { throw new ArgumentNullException("container"); } _container = container; _raster = raster; cboBand.AddRasterBands(raster); var band = ActiveBand; if (band != null) { SetHistogram(band.GetDefaultHistogram()); } }
private void ShowRasterCellInfo(NodeData node, IRasterSource raster) { node.AddSubItem("Data type", raster.DataType.EnumToString()); node.AddSubItem("Cell size", string.Format("{0:g5} × {1:g5}", raster.BufferDx, raster.BufferDy)); }
private void MainForm_Load(object sender, System.EventArgs e) { // 初始化RenderControl控件 IPropertySet ps = new PropertySet(); ps.SetProperty("RenderSystem", gviRenderSystem.gviRenderOpenGL); this.axRenderControl1.Initialize(true, ps); rootId = this.axRenderControl1.ObjectManager.GetProjectTree().RootID; // 设置天空盒 if (System.IO.Directory.Exists(strMediaPath)) { string tmpSkyboxPath = strMediaPath + @"\skybox"; ISkyBox skybox = this.axRenderControl1.ObjectManager.GetSkyBox(0); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageBack, tmpSkyboxPath + "\\1_BK.jpg"); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageBottom, tmpSkyboxPath + "\\1_DN.jpg"); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageFront, tmpSkyboxPath + "\\1_FR.jpg"); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageLeft, tmpSkyboxPath + "\\1_LF.jpg"); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageRight, tmpSkyboxPath + "\\1_RT.jpg"); skybox.SetImagePath(gviSkyboxImageIndex.gviSkyboxImageTop, tmpSkyboxPath + "\\1_UP.jpg"); } else { MessageBox.Show("请不要随意更改SDK目录名"); return; } this.axRenderControl1.Camera.FlyTime = 0; // 注册地形 string tmpTedPath = (strMediaPath + @"\terrain\world.ted"); this.axRenderControl1.Terrain.RegisterTerrain(tmpTedPath, ""); this.axRenderControl1.Terrain.FlyTo(gviTerrainActionCode.gviFlyToTerrain); // 添加节点到界面控件上 myListNode item = new myListNode("world", TreeNodeType.NT_TERRAINLAYER, this.axRenderControl1.Terrain); item.Checked = true; listView1.Items.Add(item); // 创建影像图层 string tmpImageryPath = (strMediaPath + @"\imagery\jk1.tif"); IImageryLayer imagelayer = this.axRenderControl1.ObjectManager.CreateImageryLayer(tmpImageryPath, rootId); this.axRenderControl1.Camera.FlyToObject(imagelayer.Guid, gviActionCode.gviActionFlyTo); // 添加节点到界面控件上 item = new myListNode("jk1", TreeNodeType.NT_IMAGELAYER, imagelayer); item.Checked = true; listView1.Items.Add(item); IRasterSourceFactory rasFac = new RasterSourceFactory(); IRasterSource source = rasFac.OpenRasterSource(@"http://192.168.2.254:6163/igs/rest/ogc/WMTSServer/1.0.0/WMTSCapabilities.xml", gviRasterConnectionType.gviRasterConnectionWMTS); if (source != null) { string[] names = source.GetRasterNames(); for (int n = 0; n < names.Length; n++) { IRaster raster = source.OpenRaster(names[n]); IImageryLayer imagelayer2 = this.axRenderControl1.ObjectManager.CreateImageryLayer(raster.ConnStr, rootId); // 添加节点到界面控件上 item = new myListNode(raster.Name, TreeNodeType.NT_IMAGELAYER, imagelayer2); item.Checked = true; listView1.Items.Add(item); } } { this.helpProvider1.SetShowHelp(this.axRenderControl1, true); this.helpProvider1.SetHelpString(this.axRenderControl1, ""); this.helpProvider1.HelpNamespace = "ImageryLayer.html"; } }
protected override void Initialize() { _raster = Model.ImageSource as IRasterSource; }
public void Initialize(IRasterSource raster) { _raster = raster; ShowOverviews(); }
public DefaultContoursGenerator(IRasterSource demSource) { this.demSource = demSource; }