//根据文件名提取区域标识,限定专题图输出数据范围。一般用于制作网络图。 public static IExtractResult CreateThemeGraphyBase(ISmartSession session, string algorithmName, string outFileIdentify, string colorTableName, string dataIdentify, string templateName, bool isCustom, bool multiSelect, bool isUseRegion, int genralAndTheme) { IMonitoringSubProduct msp = (session.MonitoringSession as IMonitoringSession).ActiveMonitoringSubProduct; if (msp == null) { return(null); } string[] files = null; CoordEnvelope customEnv = null; if (genralAndTheme == 0) { object obj = msp.ArgumentProvider.GetArg("SelectedPrimaryFiles"); if (!SetSelectedPrimaryFiles(session, ref obj, msp.ArgumentProvider, algorithmName)) { return(null); } files = obj as string[]; if (files == null || files.Length == 0) { if (File.Exists(obj.ToString())) { files = new string[] { obj.ToString() } } ; else { return(null); } } //by chennan 20130319 根据需要查找相应文件 UpdateFilesByDataIdentify(ref files, dataIdentify); //添加对生成专题图文件类型的判断,排除生成的专题图和统计结果文件,add by wangyu,20120923 foreach (string fname in files) { CanCreatThemegraph(fname); } msp.ArgumentProvider.SetArg("SelectedPrimaryFiles", files); if (isCustom && !SetAOIArugment(files, msp, multiSelect, out customEnv))//用户自定义区域 { return(null); } else if (!isCustom) { msp.ArgumentProvider.SetArg("AOI", null); } } IThemeGraphGenerator tgg = new GeoDo.RSS.MIF.Prds.Comm.CmaThemeGraphGenerator(session); msp.ArgumentProvider.SetArg("ThemeGraphyGenerator", tgg); msp.ArgumentProvider.SetArg("OutFileIdentify", outFileIdentify); msp.ArgumentProvider.SetArg("ThemeGraphTemplateName", templateName); if (customEnv != null) { RasterProject.PrjEnvelope prjEnvelope = new RasterProject.PrjEnvelope(customEnv.MinX, customEnv.MaxX, customEnv.MinY, customEnv.MaxY); msp.ArgumentProvider.SetArg("UseRegion", prjEnvelope); } else if (isUseRegion)// 换为字符串,为区域定义分组名称regionGroupName,为空代表不指定区域。 { RasterIdentify rstId = new RasterIdentify(files[0]); if (!string.IsNullOrWhiteSpace(rstId.RegionIdentify)) { DefinedRegionParse reg = new DefinedRegionParse(); BlockItemGroup blockGroup = reg.BlockDefined.FindGroup("积雪"); PrjEnvelopeItem envItem = blockGroup.GetPrjEnvelopeItem(rstId.RegionIdentify); if (envItem != null) { RasterProject.PrjEnvelope prjEnvelope = RasterProject.PrjEnvelope.CreateByCenter(envItem.PrjEnvelope.CenterX, envItem.PrjEnvelope.CenterY, 10, 10); msp.ArgumentProvider.SetArg("UseRegion", prjEnvelope); } } } if (!string.IsNullOrEmpty(colorTableName)) { msp.ArgumentProvider.SetArg("colortablename", "colortablename=" + colorTableName); } IProgressMonitor tracker = null; Action <int, string> progress = null; try { tracker = session.ProgressMonitorManager.DefaultProgressMonitor; if (tracker != null) { tracker.Start(false); tracker.Reset("正在生成...", 100); progress = (p, txt) => { tracker.Boost(p, txt); }; } IExtractResult result = msp.Make(progress); DisplayResultClass.DisplayResult(session, msp, result, false); return(result); } finally { if (tracker != null) { tracker.Finish(); } } }
public static IExtractResult CreateThemeGraphyBase(ISmartSession session, string algorithmName, string outFileIdentify, string colorTableName, string dataIdentify, string templateName, bool isCustom, bool multiSelect, Dictionary <string, string> aoiTemplateList) { IMonitoringSubProduct msp = (session.MonitoringSession as IMonitoringSession).ActiveMonitoringSubProduct; if (msp == null) { return(null); } object obj = msp.ArgumentProvider.GetArg("SelectedPrimaryFiles"); //if (obj == null) //{ if (!SetSelectedPrimaryFiles(session, ref obj, msp.ArgumentProvider, algorithmName)) { return(null); } //} string[] files = obj as string[]; if (files == null || files.Length == 0) { if (File.Exists(obj.ToString())) { files = new string[] { obj.ToString() } } ; else { return(null); } } //by chennan 20130319 根据需要查找相应文件 UpdateFilesByDataIdentify(ref files, dataIdentify); //添加对生成专题图文件类型的判断,排除生成的专题图和统计结果文件,add by wangyu,20120923 foreach (string fname in files) { CanCreatThemegraph(fname); } msp.ArgumentProvider.SetArg("SelectedPrimaryFiles", files); if (isCustom && !SetAOIArugment(files, msp, multiSelect, aoiTemplateList)) { return(null); } else if (!isCustom) { msp.ArgumentProvider.SetArg("AOI", null); } //IThemeGraphGenerator tgg = (session.MonitoringSession as IMonitoringSession).ThemeGraphGenerator; IThemeGraphGenerator tgg = new GeoDo.RSS.MIF.Prds.Comm.CmaThemeGraphGenerator(session); msp.ArgumentProvider.SetArg("ThemeGraphyGenerator", tgg); msp.ArgumentProvider.SetArg("OutFileIdentify", outFileIdentify); msp.ArgumentProvider.SetArg("ThemeGraphTemplateName", templateName); if (!string.IsNullOrEmpty(colorTableName)) { msp.ArgumentProvider.SetArg("colortablename", "colortablename=" + colorTableName); } IExtractResult result = msp.Make(null); DisplayResultClass.DisplayResult(session, msp, result, false); return(result); }
/// <summary> /// 根据所选的文件提取产品标识和子产品标识,自动匹配应该生成的专题图类型,如ndvi /// </summary> /// <param name="session"></param> /// <param name="isCustom"></param> /// <param name="multiSelect"></param> /// <returns></returns> private static IExtractResult CreateThemeGraphyBase(ISmartSession session, string algorithmName, bool isCustom, bool multiSelect, bool isOriginal) { IMonitoringSubProduct msp = (session.MonitoringSession as IMonitoringSession).ActiveMonitoringSubProduct; if (msp == null) { return(null); } object obj = msp.ArgumentProvider.GetArg("SelectedPrimaryFiles"); //从工作空间中获取选择的文件名 if (!SetSelectedPrimaryFiles(session, ref obj, msp.ArgumentProvider, algorithmName)) { return(null); } string[] files = obj as string[]; if (files == null || files.Length == 0) { if (File.Exists(obj.ToString())) { files = new string[] { obj.ToString() } } ; else { return(null); } } //添加对生成专题图文件类型的判断,排除生成的专题图和统计结果文件,add by wangyu,20120923 foreach (string fname in files) { CanCreatThemegraph(fname); } string outFileIdentify = null; string templateName = null; GetTemplateName(msp.Definition.SubProductInstanceDefs, files, multiSelect, isOriginal, out outFileIdentify, out templateName); if (string.IsNullOrEmpty(outFileIdentify) || string.IsNullOrEmpty(templateName)) { return(null); } CoordEnvelope customEnv = null; if (isCustom && !SetAOIArugment(files, msp, multiSelect, out customEnv)) { return(null); } else if (!isCustom) { msp.ArgumentProvider.SetArg("AOI", null); } IThemeGraphGenerator tgg = new GeoDo.RSS.MIF.Prds.Comm.CmaThemeGraphGenerator(session); if (customEnv != null) { RasterProject.PrjEnvelope prjEnvelope = new RasterProject.PrjEnvelope(customEnv.MinX, customEnv.MaxX, customEnv.MinY, customEnv.MaxY); msp.ArgumentProvider.SetArg("UseRegion", prjEnvelope); } msp.ArgumentProvider.SetArg("ThemeGraphyGenerator", tgg); msp.ArgumentProvider.SetArg("OutFileIdentify", outFileIdentify); msp.ArgumentProvider.SetArg("ThemeGraphTemplateName", templateName); SetThemeEnvelope(tgg, customEnv); IExtractResult result = msp.Make(null); DisplayResultClass.DisplayResult(session, msp, result, false); return(result); }