private IExtractResult CLDExtractAlgorithm(Action <int, string> progressTracker) { string info = _argumentProvider.GetArg("DataSets") as string; if (String.IsNullOrWhiteSpace(info)) { MessageBox.Show("没有选择数据集"); return(null); } ValArguments args = _argumentProvider.GetArg("DataArgs") as ValArguments; if (args == null) { return(null); } string[] files = Directory.GetFiles(args.InputDir, "FY3*L2*.hdf", SearchOption.AllDirectories); float minX = Convert.ToSingle(args.MinX); float maxX = Convert.ToSingle(args.MaxX); float minY = Convert.ToSingle(args.MinY); float maxY = Convert.ToSingle(args.MaxY); float res = Convert.ToSingle(args.OutRes); string outdir = args.Outdir; string regionNam = args.RegionNam; PrjEnvelope env = new PrjEnvelope(minX, maxX, minY, maxY); UniversalDataProcess cldGlobal = new UniversalDataProcess(); foreach (string file in files) { cldGlobal.ExtractFile(file, info, env, regionNam, outdir); } return(null); }
private IExtractResult MODLSTAlgorithm(Action <int, string> progressTracker) { ValArguments args = _argumentProvider.GetArg("DataArgs") as ValArguments; if (args == null) { return(null); } string[] files = Directory.GetFiles(args.InputDir, "MOD11A1*.hdf", SearchOption.AllDirectories);//args.FileNamesForVal; float minX = Convert.ToSingle(args.MinX); float maxX = Convert.ToSingle(args.MaxX); float minY = Convert.ToSingle(args.MinY); float maxY = Convert.ToSingle(args.MaxY); float res = Convert.ToSingle(args.OutRes); string outdir = args.Outdir; PrjEnvelope env = new PrjEnvelope(minX, maxX, minY, maxY); string regionNam = args.RegionNam; UniversalDataProcess modLST = new UniversalDataProcess(); foreach (string file in files) { string prjfile = modLST.PrjMODSIN(file, outdir, env, res, regionNam, progressTracker);//投影 //提取出文件日期编名 string dateString = "0000000"; foreach (Regex dt in DataReg) { Match m = dt.Match(Path.GetFileName(prjfile)); if (m.Success) { dateString = m.Value; } } if (dateString.Length == 8 && !dateString.Contains("A")) { int year = Int16.Parse(dateString.Substring(0, 4)); int month = Int16.Parse(dateString.Substring(4, 2)); int day = Int16.Parse(dateString.Substring(6, 2)); DateTime datetime = new DateTime(year, month, day); string days = Convert.ToString(datetime.DayOfYear); dateString = Convert.ToString(year) + days; dateString = "A" + dateString; } string outfile = outdir + "\\" + "MOD11A1." + dateString + "." + regionNam + ".join.ldf"; //形如MOD11A1.A2013231.China.join.ldf modLST.MODJoin(prjfile, outdir, res, regionNam, outfile); } return(null); }