本文整理汇总了C#中ICancelProgressHandler.Progress方法的典型用法代码示例。如果您正苦于以下问题:C# ICancelProgressHandler.Progress方法的具体用法?C# ICancelProgressHandler.Progress怎么用?C# ICancelProgressHandler.Progress使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICancelProgressHandler
的用法示例。
在下文中一共展示了ICancelProgressHandler.Progress方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EraseFeatures
/// <summary>
/// Erase features from one feature set where they are intersected by another feature set.
/// </summary>
/// <param name="TargetFeatures">Features which will be erased in part or whole.</param>
/// <param name="SourceFeatures">Features which represent areas to erase.</param>
/// <param name="cancelProgressHandler">Optional parameter to report progress and cancel entire process if needed.</param>
/// <returns>A point feature set with the randomly created features.</returns>
public static FeatureSet EraseFeatures(IFeatureSet TargetFeatures, IFeatureSet SourceFeatures, ICancelProgressHandler cancelProgressHandler = null)
{
if (TargetFeatures == null || SourceFeatures == null)
{
return null;
}
//Erase features from one feature set where they are intersected by another feature set
//Note: we use the ShapeIndices here rather than for each feature in featureset.features as a memory management technique.
//The current version does not preserve any attribute info.
//Dan Ames 2/27/2013
FeatureSet ResultFeatures = new FeatureSet(); //the resulting featureset
IFeature TF, SF; //a single output feature
ResultFeatures.CopyTableSchema(TargetFeatures); //set up the data table in the new feature set
for (Int16 i = 0; i <= TargetFeatures.ShapeIndices.Count - 1; i++)
{
TF = TargetFeatures.GetFeature(i); //get the full undifferenced feature
for (Int16 j = 0; j <= SourceFeatures.ShapeIndices.Count - 1; j++)
{
SF = SourceFeatures.GetFeature(j);
if (SF.Envelope.Intersects(TF.Envelope))
{
TF = TF.Difference(SF); //clip off any pieces of SF that overlap FR
}
if (TF == null)
{ //sometimes difference leaves nothing left of a feature
break;
}
}
if (TF != null)
{
ResultFeatures.AddFeature(TF).CopyAttributes(TargetFeatures.GetFeature(i)); //add the fully clipped feature to the results
}
if (cancelProgressHandler != null)
{
if (cancelProgressHandler.Cancel) { return null; }
int progress = Convert.ToInt32(i * 100 / TargetFeatures.ShapeIndices.Count);
cancelProgressHandler.Progress(String.Empty, progress, String.Empty);
}
}
return ResultFeatures;
}
示例2: AddBuffer
/// <summary>
/// A static function to compute the buffer and return the result to the Execute function.
/// </summary>
/// <param name="input">The feature set that will be buffered.</param>
/// <param name="bufferDistance">The distance of the buffer.</param>
/// <param name="outputFeatures">The resulting feature set that will show the buffer.</param>
/// <param name="cancelProgressHandler">Optional parameter to report progress and cancel if needed.</param>
/// <returns></returns>
public static bool AddBuffer(IFeatureSet inputFeatures, double bufferDistance, IFeatureSet outputFeatures, ICancelProgressHandler cancelProgressHandler = null)
{
int numFeatures = inputFeatures.Features.Count;
for (int i = 0; i < numFeatures; i++)
{
inputFeatures.Features[i].Buffer(bufferDistance, outputFeatures);
// Here we update the progress
if (cancelProgressHandler != null)
{
if (cancelProgressHandler.Cancel)
{
return false;
}
int progress = Convert.ToInt32(i * 100 / numFeatures);
cancelProgressHandler.Progress("buffer_tool", progress, "Buffering features.");
}
}
return true;
}
示例3: Execute
public bool Execute(string fileName, ICancelProgressHandler cancelProgressHandler)
{
string SeriesId = GetSeriesId();
DataTable dataValues = GetDataValues(SeriesId);
if (dataValues.Rows.Count > 1)
{
for (int j = 1; j < dataValues.Rows.Count; j++)
{
DataTable2CSV(dataValues, fileName, ",");
cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dataValues.Rows.Count)) * 100), dataValues.Rows[j][0].ToString());
if (cancelProgressHandler.Cancel)
return false;
}
return true;
}
else
{
return false;
}
}
示例4: RandomPoints
/// <summary>
/// Creates a specified number of random point features inside multiple polygon features in a feature set.
/// </summary>
/// <param name="ConstrainingFeatures">Random points will be generated inside all features in this feature set.</param>
/// <param name="NumberOfPoints">The number of points to be randomly generated.</param>
/// <param name="cancelProgressHandler">Optional parameter to report progress and cancel entire process if needed.</param>
/// <returns>A point feature set with the randomly created features.</returns>
public static IFeatureSet RandomPoints(IFeatureSet ConstrainingFeatures, int NumberOfPoints, IFeatureSet fsOut = null, ICancelProgressHandler cancelProgressHandler = null)
{
//This function generates random points within the boundaries of all polygon features in a feature set
if (fsOut == null)
{
fsOut = new FeatureSet();
}
fsOut.FeatureType = FeatureType.Point;
Coordinate c = new Coordinate();
Random r = new Random();
int i = 0;
while (i < NumberOfPoints)
{
c = new Coordinate();
//make a random point somewhere in the rectangular extents of the feature set
double rndx = r.Next(0, 100000) / 100000.0;
double rndy = r.Next(0, 100000) / 100000.0;
c.X = rndx * (ConstrainingFeatures.Extent.MaxX - ConstrainingFeatures.Extent.MinX) + ConstrainingFeatures.Extent.MinX;
c.Y = rndy * (ConstrainingFeatures.Extent.MaxY - ConstrainingFeatures.Extent.MinY) + ConstrainingFeatures.Extent.MinY;
//check if the point falls within the polygon featureset
foreach (Feature f in ConstrainingFeatures.Features)
{
if (f.Intersects(c))
{
fsOut.AddFeature(new Feature(c));
i++;
}
}
if (cancelProgressHandler != null)
{
if (cancelProgressHandler.Cancel) { return null; }
int progress = Convert.ToInt32(i * 100 / NumberOfPoints);
cancelProgressHandler.Progress(String.Empty, progress, String.Empty);
}
}
return fsOut;
}
示例5: Execute
/// <summary>
///
/// </summary>
/// <param name="input"></param>
/// <param name="output"></param>
/// <param name="cancelProgressHandler"></param>
/// <returns></returns>
public bool Execute(IFeatureSet input, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (input == null || output == null)
{
return false;
}
// We add all the fields
foreach (DataColumn inputColumn in input.DataTable.Columns)
{
output.DataTable.Columns.Add(new DataColumn(inputColumn.ColumnName, inputColumn.DataType));
}
// We add the area field
bool addField = true;
string fieldCount = string.Empty;
int i = 0;
while (addField)
{
if (output.DataTable.Columns.Contains(TextStrings.Area + fieldCount) == false)
{
output.DataTable.Columns.Add(new DataColumn(TextStrings.Area + fieldCount, typeof(double)));
addField = false;
}
else
{
fieldCount = i.ToString();
i++;
}
}
// we add all the old features to output
for (int j = 0; j < input.Features.Count; j++)
{
Feature newFeature = new Feature(input.Features[j].BasicGeometry, output);
foreach (DataColumn colSource in input.DataTable.Columns)
{
newFeature.DataRow[colSource.ColumnName] = input.Features[j].DataRow[colSource.ColumnName];
}
newFeature.DataRow[TextStrings.Area + fieldCount] =
MultiPolygon.FromBasicGeometry(output.Features[j].BasicGeometry).Area;
// Status updates is done here
cancelProgressHandler.Progress(
string.Empty,
Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(input.Features.Count)) * 100),
input.Features[j].DataRow[0].ToString());
if (cancelProgressHandler.Cancel)
{
return false;
}
}
output.Save();
return true;
}
示例6: Execute
/// <summary>
/// Finds the average slope in the given polygons.
/// </summary>
/// <param name="gridIn">The Polygon Raster(Grid file).</param>
/// <param name="polyOut">The Polygon shapefile path.</param>
/// <param name="progress">The progress handler.</param>
public bool Execute(IRaster gridIn, IFeatureSet polyOut, ICancelProgressHandler cancelProgressHandler)
{
//Validates the input and output data
if (gridIn == null || polyOut == null)
{
return false;
}
int maxX, maxY;
int current = 0;
int previous = 0;
double noData, currVal, currTrack;
string strTrackPath;
IRaster gridTrack = new Raster();
maxX = gridIn.NumRows - 1;
maxY = gridIn.NumColumns - 1;
noData = gridIn.NoDataValue;
//strTrackPath = System.IO.Path.GetDirectoryName(strInRast) + "\\" + System.IO.Path.GetFileNameWithoutExtension(strInRast) + "_track.bgd";
gridTrack = Raster.Create("gridTrack.bgd", "", gridIn.NumColumns, gridIn.NumRows, 1, gridIn.DataType, new string[] { "" });
//gridTrack.CreateNew("gridTrack", "", gridIn.NumColumns, gridIn.NumRows, 1, gridIn.DataType, new string[] { "" });
gridTrack.Bounds = gridIn.Bounds;
gridTrack.NoDataValue = gridIn.NoDataValue;
polyOut.DataTable.Columns.Add("Value", typeof(int));
polyOut.DataTable.Columns.Add("Zone", typeof(string));
polyOut.DataTable.Columns.Add("Area", typeof(double));
polyOut.DataTable.Columns.Add("COMID", typeof(string));
polyOut.DataTable.Columns.Add("AveSlope", typeof(double));
for (int i = 0; i <= maxX; i++)
{
current = Convert.ToInt32(i * 100 / maxX);
//only update when increment in percentage
if (current > previous+5)
{
cancelProgressHandler.Progress("", current, current.ToString() + "% progress completed");
previous = current;
}
for (int j = 0; j <= maxY; j++)
{
if (i > 0 && j > 0)
{
currVal = Convert.ToInt16(gridIn.Value[i, j]);
currTrack = Convert.ToInt16(gridTrack.Value[i, j]);
if (currVal == gridIn.NoDataValue)
{
gridTrack.Value[i, j] = 1;
if (cancelProgressHandler.Cancel == true)
return false;
}
else
{
if (currTrack == 1)
{
}
else
{
formPolyFromCell(gridIn, gridTrack, i, j, polyOut, cancelProgressHandler);
if (cancelProgressHandler.Cancel == true)
return false;
}
}
}
else
{
gridTrack.Value[i, j] = gridIn.NoDataValue;
}
}
}
gridIn.Close();
gridTrack.Close();
polyOut.SaveAs(polyOut.Filename, true);
polyOut.Close();
return true;
}
示例7: Execute
/// <summary>
/// Executes the Erase Opaeration tool programaticaly.
/// Ping deleted static for external testing 01/2010
/// </summary>
/// <param name="input1">The input FeatureSet.</param>
/// <param name="input2">The input Expression string to select features to Delete.</param>
/// <param name="output">The output FeatureSet.</param>
/// <param name="cancelProgressHandler">The progress handler.</param>
/// <returns></returns>
public bool Execute(
IFeatureSet input1, string input2, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (input1 == null || input2 == null || output == null)
{
return false;
}
if (cancelProgressHandler.Cancel)
{
return false;
}
int previous = 0;
List<IFeature> fetList = input1.SelectByAttribute(input2);
int noOfFeaturesToDelete = fetList.Count;
int noOfFeatures = input1.Features.Count;
output.FeatureType = input1.FeatureType;
foreach (IFeature f in input1.Features)
{
output.Features.Add(f);
}
// Go through every item in the list
for (int i = 0; i < noOfFeaturesToDelete; i++)
{
int current = Convert.ToInt32(Math.Round(i * 100D / noOfFeaturesToDelete));
// only update when increment in percentage
if (current > previous)
{
cancelProgressHandler.Progress(string.Empty, current, current + TextStrings.progresscompleted);
}
previous = current;
// loop through every item in the list
for (int j = 0; j < noOfFeatures; j++)
{
// Select the Feature from Feature set to detlete
if (fetList[i] == input1.Features[j])
{
output.Features.Remove(input1.Features[j]);
}
}
}
output.SaveAs(output.Filename, true);
return true;
}
示例8: Execute
/// <summary>
/// Executes the ClipPolygonWithLine Operation tool programaticaly.
/// Ping deleted static for external testing 01/2010
/// </summary>
/// <param name="input1">The input Polygon FeatureSet.</param>
/// <param name="input2">The input Polyline FeatureSet.</param>
/// <param name="output">The output Polygon FeatureSet.</param>
/// <param name="cancelProgressHandler">The progress handler.</param>
/// <returns></returns>
public bool Execute(
IFeatureSet input1, IFeatureSet input2, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (input1 == null || input2 == null || output == null)
{
return false;
}
if (cancelProgressHandler.Cancel)
{
return false;
}
IFeature polygon = input1.Features[0];
IFeature line = input2.Features[0];
IFeatureSet resultFs = new FeatureSet(FeatureType.Polygon);
int previous = 0;
if (DoClipPolygonWithLine(ref polygon, ref line, ref output) == false)
{
throw new SystemException(TextStrings.Exceptioninclipin);
}
int intFeature = output.Features.Count;
for (int i = 0; i < intFeature; i++)
{
Polygon poly = new Polygon(output.Features[i].Coordinates);
resultFs.AddFeature(poly);
int current = Convert.ToInt32(Math.Round(i * 100D / intFeature));
// only update when increment in percentage
if (current > previous)
{
cancelProgressHandler.Progress(string.Empty, current, current + TextStrings.progresscompleted);
}
previous = current;
}
cancelProgressHandler.Progress(string.Empty, 100, 100 + TextStrings.progresscompleted);
resultFs.SaveAs(output.Filename, true);
return true;
}
示例9: Execute
/// <summary>
/// Executes the ClipPolygonWithPolygon tool with programatic input
/// </summary>
/// <param name="input">The input feature set to clip</param>
/// <param name="input2">The input polygon feature set to clip with</param>
/// <param name="output">The output feature set</param>
/// <param name="cancelProgressHandler">The progress handler for progress message updates</param>
/// <returns></returns>
/// Ping delete "static" for external testing
public bool Execute(
IFeatureSet input, IFeatureSet input2, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (input == null || input2 == null || output == null)
{
cancelProgressHandler.Progress(string.Empty, 100, TextStrings.Oneparameterinnull);
return false;
}
if (input2.FeatureType != FeatureType.Polygon)
{
cancelProgressHandler.Progress(string.Empty, 100, TextStrings.secondinputlayer);
return false;
}
output.FeatureType = input.FeatureType;
// we add all the old features to output
IFeatureSet tempoutput = input.Intersection(input2, FieldJoinType.LocalOnly, cancelProgressHandler);
// We add all the fields
foreach (DataColumn inputColumn in tempoutput.DataTable.Columns)
{
output.DataTable.Columns.Add(new DataColumn(inputColumn.ColumnName, inputColumn.DataType));
}
foreach (var fe in tempoutput.Features)
{
output.Features.Add(fe);
}
output.SaveAs(output.Filename, true);
return true;
}
示例10: Execute
/// <summary>
/// Executes the generate centroid FeatureSet Opaeration tool programaticaly.
/// Ping deleted static for external testing 01/2010
/// </summary>
/// <param name="input1">The input FeatureSet.</param>
/// <param name="output">The output FeatureSet.</param>
/// <param name="cancelProgressHandler">The progress handler.</param>
/// <returns></returns>
public bool Execute(IFeatureSet input1, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (input1 == null || output == null)
{
return false;
}
bool multiPoint = false;
foreach (IFeature f1 in input1.Features)
{
if (f1.NumGeometries > 1)
{
multiPoint = true;
}
}
output.FeatureType = multiPoint == false ? FeatureType.Point : FeatureType.MultiPoint;
int previous = 0;
int i = 0;
int maxFeature = input1.Features.Count;
output.CopyTableSchema(input1);
foreach (IFeature f in input1.Features)
{
if (cancelProgressHandler.Cancel)
{
return false;
}
IFeature fnew = new Feature(f.Centroid());
// Add the centroid to output
output.Features.Add(fnew);
fnew.CopyAttributes(f);
int current = Convert.ToInt32(Math.Round(i * 100D / maxFeature));
// only update when increment in percentage
if (current > previous)
{
cancelProgressHandler.Progress(string.Empty, current, current + TextStrings.progresscompleted);
}
previous = current;
i++;
}
output.SaveAs(output.Filename, true);
return true;
}
示例11: GetBuffer
public static bool GetBuffer(IFeatureSet input, double bufferDistance, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
int previous = 0;
int maxNo = input.Features.Count;
for (int i = 0; i < maxNo; i++)
{
input.Features[i].Buffer(bufferDistance, output);
//Here we update the progress
int current = Convert.ToInt32(i * 100 / maxNo);
if (current > previous)
{
cancelProgressHandler.Progress("", current, current + TextStrings.progresscompleted);
previous = current;
}
if (cancelProgressHandler.Cancel)
return false;
}
output.Save();
return true;
}
示例12: Execute
/// <summary>
/// Executes the DP line simplefy tool programaticaly
/// </summary>
/// <param name="input">The input polygon feature set</param>
/// <param name="tolerance">The tolerance to use when simplefiying</param>
/// <param name="output">The output polygon feature set</param>
/// <param name="cancelProgressHandler">The progress handler</param>
/// <returns></returns>
public bool Execute(IFeatureSet input, double tolerance, IFeatureSet output,
ICancelProgressHandler cancelProgressHandler)
{
//Validates the input and output data
if (input == null || output == null)
return false;
//We copy all the fields
foreach (DataColumn inputColumn in input.DataTable.Columns)
output.DataTable.Columns.Add(new DataColumn(inputColumn.ColumnName, inputColumn.DataType));
int numTotalOldPoints = 0;
int numTotalNewPoints = 0;
for (int j = 0; j < input.Features.Count; j++)
{
int numOldPoints = 0;
int numNewPoints = 0;
Geometry geom = input.Features[j].BasicGeometry as Geometry;
if (geom != null) numOldPoints = geom.NumPoints;
numTotalOldPoints += numOldPoints;
if (geom != null)
{
for (int part = 0; part < geom.NumGeometries; part++)
{
Geometry geomPart = (Geometry)geom.GetGeometryN(part);
//do the simplification
IList<Coordinate> oldCoords = geomPart.Coordinates;
IList<Coordinate> newCoords =
MapWindow.Analysis.Topology.Simplify.DouglasPeuckerLineSimplifier.Simplify(oldCoords, tolerance);
//convert the coordinates back to a geometry
Geometry newGeom = new LineString(newCoords);
numNewPoints += newGeom.NumPoints;
numTotalNewPoints += numNewPoints;
Feature newFeature = new Feature(newGeom, output);
foreach (DataColumn colSource in input.DataTable.Columns)
newFeature.DataRow[colSource.ColumnName] = input.Features[j].DataRow[colSource.ColumnName];
}
}
//Status updates is done here, shows number of old / new points
cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(input.Features.Count)) * 100),
numOldPoints + "-->" + numNewPoints);
if (cancelProgressHandler.Cancel)
return false;
}
cancelProgressHandler.Progress("", 100, TextStrings.Originalnumberofpoints + numTotalOldPoints + " " + TextStrings.Newnumberofpoints + numTotalNewPoints);
output.Save();
return true;
}
示例13: Execute
/// <summary>
/// Finds the average slope in the given polygons with more user preferences.
/// </summary>
/// <param name="ras">The dem Raster(Grid file).</param>
/// <param name="inZFactor">The scaler factor</param>
/// <param name="slopeInPercent">The slope in percentage.</param>
/// <param name="poly">The flow poly shapefile path.</param>
/// <param name="fldInPolyToStoreSlope">The field name to store average slope in the attribute.</param>
/// <param name="outerShpFile">The Featureset where we have the area of interest</param>
/// <param name="outerShpIndex">The index of featureset which give paticular area of interest.</param>
/// <param name="output">The path to save created slope Feature set.</param>
/// <param name="cancelProgressHandler">The progress handler.</param>
/// <returns></returns>
public bool Execute(
IRaster ras,
double inZFactor,
bool slopeInPercent,
IFeatureSet poly,
string fldInPolyToStoreSlope,
IFeatureSet outerShpFile,
int outerShpIndex,
IFeatureSet output,
ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (ras == null || poly == null || outerShpFile == null || output == null)
{
return false;
}
if (poly.FeatureType != FeatureType.Polygon || outerShpFile.FeatureType != FeatureType.Polygon)
{
return false;
}
int previous = 0;
IRaster slopegrid = new Raster();
int[] areaCount = new int[poly.Features.Count];
double[] areaTotal = new double[poly.Features.Count];
double[] areaAve = new double[poly.Features.Count];
Slope(ras, inZFactor, slopeInPercent, slopegrid, cancelProgressHandler);
if (slopegrid == null)
{
throw new SystemException(TextStrings.Slopegridfileisnull);
}
foreach (IFeature f in poly.Features)
{
output.Features.Add(f);
}
for (int i = 0; i < slopegrid.NumRows; i++)
{
int current = Convert.ToInt32(Math.Round(i * 100D / slopegrid.NumRows));
// only update when increment in percentage
if (current > previous + 5)
{
cancelProgressHandler.Progress(string.Empty, current, current + TextStrings.progresscompleted);
previous = current;
}
for (int j = 0; j < slopegrid.NumColumns; j++)
{
Coordinate coordin = slopegrid.CellToProj(i, j);
IPoint pt = new Point(coordin);
IFeature point = new Feature(pt);
if (!outerShpFile.Features[outerShpIndex].Covers(point))
{
continue; // not found the point inside.
}
for (int c = 0; c < poly.Features.Count; c++)
{
if (output.Features[c].Covers(point))
{
areaCount[c]++;
areaTotal[c] += slopegrid.Value[i, j] / 100;
}
if (cancelProgressHandler.Cancel)
{
return false;
}
}
}
}
// Add the column
output.DataTable.Columns.Add("FID", typeof(int));
output.DataTable.Columns.Add(fldInPolyToStoreSlope, typeof(Double));
for (int c = 0; c < output.Features.Count; c++)
{
if (areaCount[c] == 0)
{
areaAve[c] = 0.0;
}
else
//.........这里部分代码省略.........
示例14: Execute
public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler)
{
tblDataTable = ParseCSVFile(CSVFilePath);
Decimal[] ForecastingValue = new decimal[tblDataTable.Rows.Count];
Decimal[] ActualValues = new decimal[tblDataTable.Rows.Count];
DateTime[] Date = new DateTime[tblDataTable.Rows.Count];
for (int j = 0; j < tblDataTable.Rows.Count; j++)
{
try
{
double t = Convert.ToDouble(tblDataTable.Rows[j][2]);
//Here the forecasting value is gettting based on the actual value
//ex: day t is forecasted based on the t-1 value
forecastingValue = ForecastingValuefunction(tblDataTable, t);
//Here forecasting is done based on the forecasted value
//ex: t day is forecastedf based on the t-1 forecasted value
//if (forecastingValue == 0)
//{
// forecastingValue = ForecastingValuefunction(tblDataTable, t);
// ForecastingValue[j] = forecastingValue;
//}
//else
//{
// double dt = Convert.ToDouble(ForecastingValue[j-1]);
// forecastingValue = ForecastingValuefunction(tblDataTable, dt);
// ForecastingValue[j] = forecastingValue;
//}
//
ForecastingValue[j] = forecastingValue;
ActualValues[j] = Convert.ToDecimal(tblDataTable.Rows[j][1]);
Date[j] = Convert.ToDateTime(tblDataTable.Rows[j][0]);
cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(ActualValues[j])) * 100), ActualValues[j].ToString());
if (cancelProgressHandler.Cancel)
return false;
}
catch
{
}
}
DataTable dt1 = new DataTable();
dt1.Columns.Add("Actual Values");
dt1.Columns.Add("Forecasting Values");
dt1.Columns.Add("Date");
for (int g = 0; g < ForecastingValue.Length; g++)
{
DataRow dr = dt1.NewRow();
dr[0] = Math.Pow(10, Convert.ToDouble(ActualValues[g]));
dr[1] = Math.Pow(10, Convert.ToDouble(ForecastingValue[g]));
//dr[0] = ActualValues[g];
//dr[1] = ForecastingValue[g];
dr[2] = Date[g];
dt1.Rows.Add(dr);
}
if (dt1.Rows.Count > 0)
{
for (int j = 0; j < dt1.Rows.Count; j++)
{
DataTable2CSV(dt1, CSVDestination, ",");
cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dt1.Rows.Count)) * 100), dt1.Rows[j][0].ToString());
if (cancelProgressHandler.Cancel)
return false;
}
}
else
{
return false;
}
return true;
//decimal testValue = ForecastingValue(tblDataTable, 2.250420002);
}
示例15: Execute
/// <summary>
/// Executes the Erase Opaeration tool programaticaly
/// </summary>
/// <param name="self">The input feature that is to be erased</param>
/// <param name="other">The other feature defining the area to remove</param>
/// <param name="output">The resulting erased content</param>
/// <param name="cancelProgressHandler">The progress handler</param>
/// <returns>Boolean, true if the operation was a success</returns>
public static bool Execute(
IFeatureSet self, IFeatureSet other, IFeatureSet output, ICancelProgressHandler cancelProgressHandler)
{
// Validates the input and output data
if (self == null || other == null || output == null)
{
return false;
}
int previous;
int max = self.Features.Count * other.Features.Count;
output.CopyTableSchema(self); // Fill the 1st Featureset fields
IFeatureSet tempSet = self.CombinedFields(other);
// go through every feature in 1st featureSet
for (int i = 0; i < self.Features.Count; i++)
{
// go through every feature in 2nd featureSet
for (int j = 0; j < other.Features.Count; j++)
{
self.Features[i].Difference(other.Features[j], tempSet, FieldJoinType.All);
previous = Convert.ToInt32(Math.Round(i * j * 50D / max));
if (cancelProgressHandler.Cancel)
{
return false;
}
cancelProgressHandler.Progress(string.Empty, previous, previous + TextStrings.progresscompleted);
}
}
// Add to the Output Feature Set
for (int a = 0; a < tempSet.Features.Count; a++)
{
output.Features.Add(tempSet.Features[a]);
previous = Convert.ToInt32(Math.Round((a * 50D / tempSet.Features.Count) + 50D));
if (cancelProgressHandler.Cancel)
{
return false;
}
cancelProgressHandler.Progress(string.Empty, previous, previous + TextStrings.progresscompleted);
}
output.SaveAs(output.Filename, true);
// add to map?
return true;
}