private void createPeriodRasters(int iterationNumber) { string rpFile = resultsDir + "\\Out_Int_RP_" + iterationNumber.ToString() + ".txt"; List <HashSet <int> > pLst = new List <HashSet <int> >(); List <IRemapFilter> remapFiltLst = new List <IRemapFilter>(); for (int i = 1; i <= numPer; i++) { pLst.Add(new HashSet <int>()); IRemapFilter flt = new RemapFilterClass(); remapFiltLst.Add(flt); } using (System.IO.StreamReader sr = new System.IO.StreamReader(rpFile)) { string ln = sr.ReadLine(); while ((ln = sr.ReadLine()) != null) { string[] lnArr = ln.Split(new char[] { '\t' }); if ((lnArr.Length) < 6) { break; } int period = System.Convert.ToInt32(lnArr[3]); int id = System.Convert.ToInt32(lnArr[0]); if (period > 0) { HashSet <int> oLst = pLst[period - 1]; oLst.Add(id); pLst[period - 1] = oLst; } } sr.Close(); } Dictionary <int, int> vlDic = rsUtil.buildVat(treatGrid); //IRasterInfo2 rsInfo2 = (IRasterInfo2)treatGrid.RasterInfo; //ITable rsVat = rsInfo2.AttributeTable; //if (rsVat == null) //{ //} //ICursor cur = null; //cur = rsVat.Search(null, false); //int valueIndex = cur.FindField("Value"); //IRow rw = cur.NextRow(); //while (rw != null) foreach (int vl in vlDic.Keys) { for (int i = 1; i <= numPer; i++) { IRemapFilter fl = remapFiltLst[i - 1]; HashSet <int> lst = pLst[i - 1]; int nVl = 0; if (lst.Contains(vl)) { nVl = 1; //Console.WriteLine("Add Value Remap Class = " + vl.ToString() + " to " + nVl.ToString()); } fl.AddClass(vl, vl + 0.000001, nVl); } } periodRasterLst.Clear(); for (int i = 1; i <= numPer; i++) { IRemapFilter flt = remapFiltLst[i - 1]; IFunctionRasterDataset oRs = rsUtil.calcRemapFunction(treatGrid, flt);// reSampleRasterGrid(rsUtil.calcRemapFunction(treatGrid, flt)); if (createinter) { rsUtil.saveRasterToDataset(rsUtil.createRaster(oRs), "Treat_" + iterationNumber.ToString() + i.ToString(), wks, rasterUtil.rasterType.IMAGINE); } periodRasterLst.Add(oRs); } }