public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { if (_argumentProvider.GetArg("SelectedPrimaryFiles") == null) { return(null); } string[] binWater = _argumentProvider.GetArg("SelectedPrimaryFiles") as string[]; for (int i = 0; i < binWater.Length; i++) { if (!File.Exists(binWater[i])) { return(null); } } _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } IFileExtractResult[] flodFiles = null; IExtractResult fldsFile = null; if (_argumentProvider.GetArg("AlgorithmName").ToString() == "DayFLDSAlgorithm") { flodFiles = GreateFLODFile(binWater, progressTracker); if (flodFiles == null || flodFiles.Length == 0 || string.IsNullOrEmpty(flodFiles[0].FileName)) { return(null); } List <string> toFLDSFiles = new List <string>(); foreach (IFileExtractResult item in flodFiles) { toFLDSFiles.Add(item.FileName); } fldsFile = FLODLastFiles(toFLDSFiles.ToArray(), progressTracker); } else if (_argumentProvider.GetArg("AlgorithmName").ToString() == "FloodFLDSAlgorithm") { fldsFile = FLODLastFiles(binWater, progressTracker); } if (fldsFile != null) { IExtractResultArray array = new ExtractResultArray("洪涝持续天数"); if (flodFiles != null && flodFiles.Length != 0) { foreach (IFileExtractResult item in flodFiles) { (item as IFileExtractResult).SetDispaly(false); array.Add(item as IExtractResultBase); } } array.Add(fldsFile as IExtractResultBase); return(array); } return(null); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null || _argumentProvider.DataProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } if (_argumentProvider.GetArg("AlgorithmName").ToString() == "NOAA16Algorithm" || _argumentProvider.GetArg("AlgorithmName").ToString() == "NOAA18Algorithm" || _argumentProvider.GetArg("AlgorithmName").ToString() == "FY3Algorithm") { return(ExtractLST()); } else if (_argumentProvider.GetArg("AlgorithmName").ToString() == "CMAAlgorithm") { return(ExtractCMA()); } else { PrintInfo("指定的算法没有实现。"); return(null); } }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName").ToString() == "0IMGAlgorithm") { string instanceIdentify = _argumentProvider.GetArg("OutFileIdentify") as string; if (instanceIdentify == "ISOI")// { return(ISOIIMGAlgorithm()); } else { return(IMGAlgorithm()); } } return(null); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { if (_argumentProvider.DataProvider == null) { return(null); } _contextMessage = contextMessage; string algorithmName = Obj2String(_argumentProvider.GetArg("AlgorithmName")); if (string.IsNullOrEmpty(algorithmName)) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } switch (algorithmName) { case "EasyAlgorithm": return(DoMakeUseEasyAlgorithm(progressTracker)); case "NightAlgorithm": return(DoMakeUseNightAlgorithm(progressTracker)); case "ExactAlgorithm": return(DoMakeUseAdvanceAlgorithm(progressTracker)); case "ImportAlgorithm": return(DoMakeUseImportAlgorithm(progressTracker)); default: PrintInfo("指定的算法\"" + algorithmName + "\"没有实现。"); return(null); } }
private void Execute(List <IMonitoringSubProduct> waitingSubProducts, IContextMessage contextMessage, IArgumentMissProcessor argumentMissProcessor, string executeGroup, Action <int, string> processTracker) { if (waitingSubProducts == null || waitingSubProducts.Count == 0) { if (contextMessage != null) { contextMessage.PrintMessage("待批量生成的子产品(定量产品\\专题图产品\\统计分析表格等)为空,批量生成进程退出。"); } return; } int step = 100 / waitingSubProducts.Count; int i = 0; foreach (IMonitoringSubProduct subprd in waitingSubProducts) { if (processTracker != null) { processTracker((i++) * step, "正在生成\"" + subprd.Name + "\"......"); } if (contextMessage != null) { contextMessage.PrintMessage("开始生成\"" + subprd.Name + "\"......"); } MakeSubProduct(" ", subprd, contextMessage, argumentMissProcessor, executeGroup, processTracker); if (contextMessage != null) { contextMessage.PrintMessage("\"" + subprd.Name + "\"生成完成。"); } } }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider != null) { _curArguments = _argumentProvider; } if (_curArguments == null) { return(null); } if (_curArguments.GetArg("AlgorithmName") == null) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } if (_curArguments.GetArg("AlgorithmName").ToString() == "CLMAlgorithm") { return(CLMAlgorithm()); } //蓝藻云判识入口,其他采用统一方法 if (_curArguments.GetArg("AlgorithmName").ToString() == "BAGCLMAlgorithm") { return(BAGAlgorithm()); } else { PrintInfo("指定的算法没有实现。"); return(null); } }
protected override bool ConditionsIsEnough(IContextMessage contextMessage) { if (_dbConnection == null) { contextMessage.AddError("数据库连接对象为空。"); return(false); } try { _dbConnection.Open(); } catch (Exception ex) { contextMessage.AddError(ex.Message); return(false); } try { _metadata = new BudGISMetadata(); } catch (Exception ex) { contextMessage.AddError(ex.Message); return(false); } return(true); }
public void CopyFileToCopyFolder() { if (string.IsNullOrEmpty(FolderOfCopyTo) || GeneratedFileNames == null || GeneratedFileNames.Count == 0) { return; } IContextMessage msg = Session.SmartWindowManager.SmartToolWindowFactory.GetSmartToolWindow(9006) as IContextMessage; if (msg != null) { msg.PrintMessage("开始拷贝文件......"); } string fileName; foreach (string fname in GeneratedFileNames) { try { fileName = Path.GetFileName(fname); File.Copy(fname, Path.Combine(FolderOfCopyTo, fileName)); msg.PrintMessage("拷贝文件\"" + fileName + "\" 到 " + FolderOfCopyTo); } catch (Exception ex) { if (msg != null) { msg.PrintMessage(ex.Message); } } } if (msg != null) { msg.PrintMessage("开始拷贝文件结束。"); } }
private ComputeArgument GetComputeArguments(IContextMessage contextMessage) { int bandV = (int)_argumentProvider.GetArg("Visible"); int bandNear = (int)_argumentProvider.GetArg("NearInfrared"); if (bandV == -1 || bandNear == -1) { PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误!"); return(null); } if (bandV < 1) { PrintInfo("无法正确获取可见光波段序号!"); return(null); } if (bandNear < 1) { PrintInfo("无法正确获取近红外波段序号!"); return(null); } int[] bandNos = new int[] { bandV, bandNear }; double visibleZoom = (double)_argumentProvider.GetArg("Visible_Zoom"); double nearInfrared = (double)_argumentProvider.GetArg("NearInfrared_Zoom"); string express = "(band" + bandNos[1] + "+band" + bandNos[0] + ")==0?(Int16)0:(Int16)((float)(band" + bandNos[1] + "/" + nearInfrared + "-band" + bandNos[0] + "/" + visibleZoom + ")/(band" + bandNos[1] + "/" + nearInfrared + "+band" + bandNos[0] + "/" + visibleZoom + ") * " + _argumentProvider.GetArg("resultZoom") + ")"; return(new ComputeArgument(bandNos, express)); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } string algorith = _argumentProvider.GetArg("AlgorithmName").ToString(); if (_argumentProvider.GetArg("AlgorithmName").ToString() != "CYCIAlgorithm") { PrintInfo("指定的算法\"" + algorith + "\"没有实现。"); return(null); } string[] files = GetStringArray("SelectedPrimaryFiles"); if (files == null || files.Length == 0) { PrintInfo("请选择需要进行统计的文件!"); return(null); } return(CYCIAlgorithm(progressTracker)); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _progressTracker = progressTracker; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } //产品制作 if (_argumentProvider.GetArg("AlgorithmName").ToString() == "LAISWIR") { return(DoCalLAIfromHDF()); } else if (_argumentProvider.GetArg("AlgorithmName").ToString() == "LAIPrj") { return(DoCalLAIfromHDFPrj()); } else { return(null); } }
public Producter() { frmMainForm mainForm = new frmMainForm(new StartProgress()); _session = mainForm.Session; _context = new ContentText(); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; IRasterDataProvider currPrd = _argumentProvider.DataProvider; if (currPrd == null) { return(null); } string algorithmName = _argumentProvider.GetArg("AlgorithmName").ToString(); if (string.IsNullOrEmpty(algorithmName)) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } switch (algorithmName) { case "FIRFAlgorithm": return(FIRFMack(progressTracker)); default: PrintInfo("指定的算法\"" + algorithmName + "\"没有实现。"); return(null); } }
public IExtractResult Extracting(IArgumentProvider argProvider, out Dictionary <int, PixelFeature> features, IContextMessage contextMessage, Action <int, string> progressTracker) { _contextMessage = contextMessage; CreateMapper(argProvider); features = null; DoFilters(argProvider, out features, progressTracker); return(_candidateFirPixels); //return GetOtherExtractResult.GetExtractResult(argProvider, features, _candidateFirPixels, contextMessage, progressTracker); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null || _argumentProvider.DataProvider == null) { return(null); } string algname = _argumentProvider.GetArg("AlgorithmName").ToString(); if (string.IsNullOrEmpty(algname)) { PrintInfo("参数\"AlgorithmName\"为空。"); return(null); } if (algname == "SNWExtract") { IBandNameRaster bandNameRaster = _argumentProvider.DataProvider as IBandNameRaster; int visiBandNo = TryGetBandNo(bandNameRaster, "Visible"); int sIBandNo = TryGetBandNo(bandNameRaster, "ShortInfrared"); int fIBandNo = TryGetBandNo(bandNameRaster, "FarInfrared"); double visiBandZoom = (double)_argumentProvider.GetArg("Visible_Zoom"); double siBandZoom = (double)_argumentProvider.GetArg("ShortInfrared_Zoom"); double fiBandZoom = (double)_argumentProvider.GetArg("FarInfrared_Zoom"); if (visiBandNo <= 0 || sIBandNo <= 0 || fIBandNo <= 0 || visiBandZoom <= 0 || siBandZoom <= 0 || fiBandZoom <= 0) { PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误。"); return(null); } string express = string.Format(@"(band{1}/{4}f > var_ShortInfraredMin) && (band{1}/{4}f< var_ShortInfraredMax) && (band{2}/{5}f< var_FarInfraredMax) && (band{2}/{5}f > var_FarInfraredMin) && (band{0}/{3}f> var_VisibleMin) && ((float)(band{0}/{3}f-band{1}/{4}f)/(band{0}/{3}f+band{1}/{4}f)> var_NDSIMin) && ((float)(band{0}/{3}f-band{1}/{4}f)/(band{0}/{3}f+band{1}/{4}f)< var_NDSIMax)&& (band{0}/{3}f< var_VisibleMax)", visiBandNo, sIBandNo, fIBandNo, visiBandZoom, siBandZoom, fiBandZoom); int[] bandNos = new int[] { visiBandNo, sIBandNo, fIBandNo }; IThresholdExtracter <UInt16> extracter = new SimpleThresholdExtracter <UInt16>(); extracter.Reset(_argumentProvider, bandNos, express); int width = _argumentProvider.DataProvider.Width; int height = _argumentProvider.DataProvider.Height; IPixelIndexMapper result = PixelIndexMapperFactory.CreatePixelIndexMapper("SNW", width, height, _argumentProvider.DataProvider.CoordEnvelope, _argumentProvider.DataProvider.SpatialRef); try { SnwFeatureCollection featureInfo = SnwDisplayInfo.GetDisplayInfo(_argumentProvider, visiBandNo, sIBandNo, fIBandNo); result.Tag = featureInfo; } catch { result.Tag = new SnwFeatureCollection("积雪辅助信息计算失败", null); } extracter.Extract(result); return(result); } else { PrintInfo("指定的算法\"" + algname + "\"没有实现。"); return(null); } }
public MultiFileComputer(IArgumentProvider argumentProvider, string defaultDirPath, IContextMessage contextMessage, string identify, ComputeArgument arg) { _argumentProvider = argumentProvider; _orbitFilesDirPath = defaultDirPath; _contextMessage = contextMessage; _identify = identify; _arg = arg; }
public void Execute(string beginSubProduct, IContextMessage contextMessage, IArgumentMissProcessor argumentMissProcessor, string executeGroup, Action <int, string> processTracker) { try { SubProductDef firstSubProduct = _monitoringProduct.Definition.GetSubProductDefByIdentify(beginSubProduct); List <IMonitoringSubProduct> waitingSubProducts = new List <IMonitoringSubProduct>(); bool isBefore = true; if (string.IsNullOrEmpty(executeGroup)) { foreach (IMonitoringSubProduct subprd in _monitoringProduct.SubProducts) { if (firstSubProduct.Identify != subprd.Definition.Identify && isBefore) { continue; } if (!subprd.Definition.IsAutoGenerate) { continue; } isBefore = false; waitingSubProducts.Add(subprd); } Execute(waitingSubProducts, contextMessage, argumentMissProcessor, null, processTracker); } else { foreach (IMonitoringSubProduct subprd in _monitoringProduct.SubProducts) { if (firstSubProduct.Identify != subprd.Definition.Identify && isBefore) { continue; } if (!subprd.Definition.IsAutoGenerate) { continue; } if (subprd.Definition.AutoGenerateGroup != null) { if (!subprd.Definition.AutoGenerateGroup.Contains(executeGroup)) { continue; } } isBefore = false; waitingSubProducts.Add(subprd); } Execute(waitingSubProducts, contextMessage, argumentMissProcessor, executeGroup, processTracker); } } catch (Exception ex) { if (contextMessage != null) { contextMessage.PrintMessage(ex.Message); } } }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } return(ICETFRI()); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { IArgumentProvider argPrd = _argumentProvider; ArgumentDef def = argPrd.GetArgDef("ImageFile"); if (def.RefIdentify == "CurrentImage" && def.Defaultvalue == null) { } return(null); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _progressTracker = progressTracker; _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } //Initialize Argument string[] arguments = _argumentProvider.GetArg("CoverageArguments") as string[]; if (arguments == null || arguments.Length < 2) { return(null); } if (!File.Exists(arguments[0]) || string.IsNullOrEmpty(arguments[1])) { return(null); } _fileName = arguments[0]; _fileOpenArgs = arguments[1]; if (arguments[1].Contains("south")) { _outFileIdentify = "SICI"; _aoiFileName = _southAOIName; } else { _outFileIdentify = "NICI"; _aoiFileName = _northAOIName; } //产品制作 IExtractResult result = null; if (_argumentProvider.GetArg("AlgorithmName").ToString() == "IceConverageAlgorithm") { _isUseAOIToClear = (bool)_argumentProvider.GetArg("BoolCustomAOI"); if (_isUseAOIToClear) { TryCreateNewAoiFile(); } if (_isUseAOIToClear && AOIFileExist()) { result = IceConverageAlgorithmWithAOI(progressTracker); } else { result = IceConverageAlgorithm(progressTracker); } } return(result); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName").ToString() == "FLDC") { if (_argumentProvider.GetArg("SelectedPrimaryFiles") == null) { return(null); } string[] binWater = _argumentProvider.GetArg("SelectedPrimaryFiles") as string[]; if (_argumentProvider.GetArg("BackWaterFile") == null) { return(null); } string backWaterPath = _argumentProvider.GetArg("BackWaterFile").ToString(); if (!File.Exists(backWaterPath)) { return(null); } for (int i = 0; i < binWater.Length; i++) { if (!File.Exists(binWater[i])) { return(null); } } if (string.IsNullOrEmpty(backWaterPath) || string.Equals(binWater, backWaterPath)) { return(null); } //生成判识结果数据统计数据集 FileExtractResult dblvCount = GreateDBLVCount(binWater, progressTracker); //背景水体可能为DAT/MVG/SHP格式文件 switch (Path.GetExtension(backWaterPath).ToUpper()) { case ".DAT": return(CompareDATFile(backWaterPath, dblvCount, progressTracker)); case ".SHP": return(CompareSHPFile(backWaterPath, dblvCount, progressTracker)); case ".MVG": return(null); } } return(null); }
private static void PrintInfo(IContextMessage contextMessage, string info) { if (contextMessage != null) { contextMessage.PrintMessage(info); } else { Console.WriteLine(info); } }
private ComputeArgument GetComputeArguments(IContextMessage contextMessage) { //排除因为计算生成的*.dat文件生成的错误 int bandCount = _argumentProvider.DataProvider.BandCount; if (bandCount == 0 || bandCount == 1) { PrintInfo("请选择正确的局地文件进行计算。"); return(null); } if (_argumentProvider.GetArg("Visible") == null) { PrintInfo("参数\"Visible\"为空。"); return(null); } int bandV = (int)_argumentProvider.GetArg("Visible"); if (_argumentProvider.GetArg("NearInfrared") == null) { PrintInfo("参数\"NearInfrared\"为空。"); return(null); } int bandN = (int)_argumentProvider.GetArg("NearInfrared"); if (bandV < 1 || bandN < 1 || bandCount < bandV || bandCount < bandN) { PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误。"); return(null); } if (_argumentProvider.GetArg("Visible_Zoom") == null) { PrintInfo("参数\"Visible_Zoom\"为空。"); return(null); } double visibleZoom = (double)_argumentProvider.GetArg("Visible_Zoom"); if (_argumentProvider.GetArg("NearInfrared_Zoom") == null) { PrintInfo("参数\"NearInfrared_Zoom\"为空。"); return(null); } double nearInfrared = (double)_argumentProvider.GetArg("NearInfrared_Zoom"); string express = ""; int[] bandNos = null; bandNos = new int[] { bandV, bandN }; //express = "band" + bandNos[0] + "==0?0f:(((float)band" + bandNos[1] + "/" + nearInfrared + ")/(band" + bandNos[0] + "/" + visibleZoom + "))" + "*" + _argumentProvider.GetArg("resultZoom"); //改为Int16 express = "band" + bandNos[0] + "==0?(Int16)0:(Int16)((((float)band" + bandNos[1] + "/" + nearInfrared + ")/(band" + bandNos[0] + "/" + visibleZoom + "))" + "*" + _argumentProvider.GetArg("resultZoom") + ")"; return(new ComputeArgument(bandNos, express)); }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _contextMessage = contextMessage; if (_argumentProvider == null || _argumentProvider.GetArg("AlgorithmName") == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName").ToString() == "IceThinknessAlgorithm") { return(IceThinknessAlgorithm(progressTracker)); } return(null); }
protected override bool ConditionsIsEnough(IContextMessage contextMessage) { if (string.IsNullOrEmpty(_filename)) { contextMessage.AddError("没有设置要创建的dbf文件名称。"); return(false); } if (_fieldDefs == null || _fieldDefs.Length == 0) { contextMessage.AddError("没有设置地段列表。"); return(false); } return(true); }
protected override bool Execute(IContextMessage contextMessage) { try { SpatialDbBuilder builder = new SpatialDbBuilder(_dbConnection); builder.Build(_dbConnection, _metadata, _tracker); return(true); } catch (Exception ex) { contextMessage.AddError(ex.Message); return(false); } }
public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage) { _progressTracker = progressTracker; _contextMessage = contextMessage; if (_argumentProvider == null) { return(null); } if (_argumentProvider.GetArg("AlgorithmName") == null) { return(null); } return(ISOIAlgorithm()); }
private void btnExtract_Click(object sender, EventArgs e) { IMonitoringSubProduct subProduct = GetCurrentSubProduct(); if (subProduct == null) { return; } IContextMessage msg = _session.SmartWindowManager.SmartToolWindowFactory.GetSmartToolWindow(9006) as IContextMessage; SetAOIArgument(subProduct); IProgressMonitor tracker = _session.ProgressMonitorManager.DefaultProgressMonitor; IExtractResult result = null; try { subProduct.ArgumentProvider.SetArg("SmartSession", _session); //不能在这里设置SelectedPrimaryFiles参数,会将界面上设置好参数值的覆盖掉。 //TrySetSelectedPrimaryFilesArgs(_session, subProduct); tracker.Start(false); tracker.Reset("正在生成...", 100); result = subProduct.Make((pro, tip) => { if (tracker != null) { tracker.Boost(pro, tip); } }, msg); if (result == null) { _isNullResult = true; return; } } finally { tracker.Finish(); } if (!(result is IPixelIndexMapper) && !(result is IExtractResultArray)) { _isAutoSave = false; } if (result is IExtractResultArray) { SetIsAutoSave(result as IExtractResultArray); } DisplayResultClass.DisplayResult(_session, subProduct, result, true); }
private ComputeArgument GetComputeArguments(IContextMessage contextMessage) { int bandCount = _argumentProvider.DataProvider.BandCount; if (bandCount == 0 || bandCount == 1) { PrintInfo("请选择正确的局地文件进行计算。"); return(null); } if (_argumentProvider.GetArg("Visible") == null) { PrintInfo("参数\"Visible\"为空。"); return(null); } int bandV = (int)_argumentProvider.GetArg("Visible"); if (_argumentProvider.GetArg("NearInfrared") == null) { PrintInfo("参数\"NearInfrared\"为空。"); return(null); } int bandN = (int)_argumentProvider.GetArg("NearInfrared"); if (bandN < 1 || bandV < 1 || bandV > bandCount || bandN > bandCount) { PrintInfo("获取波段序号失败,可能是波段映射表配置错误或判识算法波段参数配置错误。"); return(null); } if (_argumentProvider.GetArg("Visible_Zoom") == null) { PrintInfo("参数\"Visible_Zoom\"为空。"); return(null); } double visibleZoom = (double)_argumentProvider.GetArg("Visible_Zoom"); if (_argumentProvider.GetArg("NearInfrared_Zoom") == null) { PrintInfo("参数\"NearInfrared_Zoom\"为空。"); return(null); } double nearInfrared = (double)_argumentProvider.GetArg("NearInfrared_Zoom"); int[] bandNos = new int[] { bandV, bandN }; //express = "(band" + bandNos[1] + "/" + nearInfrared + "-band" + bandNos[0] + "/" + visibleZoom + ")*" + _argumentProvider.GetArg("resultZoom") + "/100"; //改为Int16 string express = "(Int16)((band" + bandNos[1] + "/" + nearInfrared + "-band" + bandNos[0] + "/" + visibleZoom + ")*" + _argumentProvider.GetArg("resultZoom") + "/100)"; return(new ComputeArgument(bandNos, express)); }
/// <summary> /// Task执行Action的入口函数 /// 注意:子类最好不要覆写该函数 /// </summary> /// <param name="contextMessage"></param> /// <returns></returns> public bool Do(IContextMessage contextMessage) { try { if (!ConditionsIsEnough(contextMessage)) { return(false); } return(Execute(contextMessage)); } finally { Sleep(contextMessage); } }