示例#1
0
        private IExtractResult ISOTAlgorithm()
        {
            int    FarInfraredCH   = (int)_curArguments.GetArg("FarInfrared");
            double FarInfraredZoom = (double)_curArguments.GetArg("FarInfrared_Zoom");
            int    smaping         = (int)_curArguments.GetArg("Smaping");
            int    tempratureMin   = (int)(((int)_curArguments.GetArg("TempratureMin") + 273) * FarInfraredZoom);
            int    tempratureMax   = (int)(((int)_curArguments.GetArg("TempratureMax") + 273) * FarInfraredZoom);
            int    interval        = (int)((int)_curArguments.GetArg("IntervalMax") * FarInfraredZoom);

            if (FarInfraredCH == -1)
            {
                PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误。");
                return(null);
            }
            if (_argumentProvider.DataProvider == null)
            {
                PrintInfo("获取文件错误,可能是没有打开影像文件。");
                return(null);
            }
            try
            {
                string shpFile           = @"C:\Users\Administrator\Desktop\1.shp";
                GenerateContourLines gcl = new GenerateContourLines(_progressTracker, _contextMessage);
                gcl.DoGenerateContourLines(_argumentProvider.DataProvider, FarInfraredCH, _argumentProvider.AOI, interval, tempratureMin, tempratureMax, smaping, shpFile);
                _curArguments.SetArg("SelectedPrimaryFiles", new string[] { shpFile });
                return(ThemeGraphyResult(null));
            }
            finally
            {
                _curArguments.SetArg("SelectedPrimaryFiles", null);
            }
        }
示例#2
0
        private IExtractResult AEDGAlgorithm()
        {
            int smaping, contourValue;

            if (!Int32.TryParse(_argumentProvider.GetArg("Smaping").ToString(), out smaping))
            {
                return(null);
            }
            if (!Int32.TryParse(_argumentProvider.GetArg("contourValue").ToString(), out contourValue))
            {
                return(null);
            }
            double[] contourValues = new double[] { contourValue };
            string[] files         = GetStringArray("SelectedPrimaryFiles");
            if (files == null || files.Length == 0)
            {
                PrintInfo("获取文件错误,可能是没有选择判识结果文件。");
                return(null);
            }

            IRasterDataProvider provider = null;

            try
            {
                provider = GeoDataDriver.Open(files[0], enumDataProviderAccess.ReadOnly, null) as IRasterDataProvider;
                if (provider == null)
                {
                    PrintInfo("获取文件错误,可能是系统不支持当前文件。");
                    return(null);
                }

                string shpFile           = GenFiename(files[0]);
                GenerateContourLines gcl = new GenerateContourLines(_progressTracker, _contextMessage);
                gcl.DoGenerateContourLines(provider, 1, _argumentProvider.AOI, contourValues, smaping, shpFile);
                if (!File.Exists(shpFile))
                {
                    PrintInfo("生成等值线数据失败。");
                    return(null);
                }
                CreateLegendItems(shpFile);
                CreateMcd(shpFile);
                _argumentProvider.SetArg("SelectedPrimaryFiles", shpFile);
                _shpFile = shpFile;
                IExtractResult er = ThemeGraphyResult(null);
                _gxdFile = (er as FileExtractResult).FileName;
                AddShpToGxd();
                return(er);
            }
            finally
            {
                provider.Dispose();
            }
        }
示例#3
0
        private IExtractResult ISOTAlgorithm()
        {
            int    FarInfraredCH       = (int)_argumentProvider.GetArg("FarInfrared");
            double FarInfraredZoom     = (double)_argumentProvider.GetArg("FarInfrared_Zoom");
            int    smaping             = (int)_argumentProvider.GetArg("Smaping");
            int    tempratureMin       = (int)(((int)_argumentProvider.GetArg("TempratureMin") + 273) * FarInfraredZoom);
            int    tempratureMax       = (int)(((int)_argumentProvider.GetArg("TempratureMax") + 273) * FarInfraredZoom);
            int    interval            = (int)((int)_argumentProvider.GetArg("IntervalMax") * FarInfraredZoom);
            bool   isOutputUncompleted = (bool)_argumentProvider.GetArg("IsOutputUncompleted");

            string filename = _argumentProvider.GetArg("CurrentRasterFile") as string;

            using (IRasterDataProvider rasterProvider = RasterDataDriver.Open(filename) as IRasterDataProvider)
            {
                if (rasterProvider != null)
                {
                    IBandNameRaster bandNameRaster = rasterProvider as IBandNameRaster;
                    FarInfraredCH = TryGetBandNo(bandNameRaster, "FarInfrared");
                }
            }

            if (FarInfraredCH == -1)
            {
                PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误。");
                return(null);
            }
            if (_argumentProvider.DataProvider == null)
            {
                PrintInfo("获取文件错误,可能是没有打开影像文件。");
                return(null);
            }
            try
            {
                //生成等值线shp文件
                string shpFile = GenISOTFiename(filename);
                //bool isOutputUncompleted = true;
                GenerateContourLines gcl = new GenerateContourLines(_progressTracker, _contextMessage);
                gcl.DoGenerateContourLines(_argumentProvider.DataProvider, FarInfraredCH, _argumentProvider.AOI, interval, tempratureMin, tempratureMax, smaping, shpFile, isOutputUncompleted);
                if (!File.Exists(shpFile))
                {
                    PrintInfo("生成等值线数据失败。");
                    return(null);
                }
                //根据等值线的配色表,生成等值线shp付色方案mcd文件,_legendItems
                CreateLegendItems(shpFile);
                CreateMcd(shpFile);
                return(new FileExtractResult(_subProductDef.Identify, shpFile, true));
            }
            finally
            {
            }
        }