Beispiel #1
0
 public void Bind(object pArgument)
 {
     if (pArgument is MathFunctionArguments)
     {
         MathFunctionArguments args = (MathFunctionArguments)pArgument;
         inrs = args.InRaster;
         myFunctionHelper.Bind(inrs);
         myRasterInfo = myFunctionHelper.RasterInfo;
         myPixeltype  = myRasterInfo.PixelType;
         myValidFlag  = true;
     }
     else
     {
         throw new System.Exception("Incorrect arguments object. Expected: MathFunctionArguments");
     }
 }
 /// <summary>
 /// Calculates a transform a raster values to a different value via tranType 
 /// </summary>
 /// <param name="inRaster"></param>
 /// <param name="typ"></param>
 /// <returns></returns>
 public IFunctionRasterDataset calcMathRasterFunction(object inRaster, transType typ)
 {
     IFunctionRasterDataset rRst = createIdentityRaster(inRaster);
     string tempAr = funcDir + "\\" + FuncCnt + ".afr";
     IFunctionRasterDataset frDset = new FunctionRasterDatasetClass();
     IFunctionRasterDatasetName frDsetName = new FunctionRasterDatasetNameClass();
     frDsetName.FullName = tempAr;
     frDset.FullName = (IName)frDsetName;
     IRasterFunction rsFunc = null;
     switch (typ)
     {
         case transType.LOG10:
             rsFunc = new FunctionRasters.log10FunctionDataset();
             break;
         case transType.LN:
             rsFunc = new FunctionRasters.logFunctionDataset();
             break;
         case transType.EXP:
             rsFunc = new FunctionRasters.expFunctionDataset();
             break;
         case transType.EXP10:
             rsFunc = new FunctionRasters.exp10FunctionDataset();
             break;
         case transType.SIN:
             rsFunc = new FunctionRasters.sinFunctionDataset();
             break;
         case transType.COS:
             rsFunc = new FunctionRasters.cosFunctionDataset();
             break;
         case transType.TAN:
             rsFunc = new FunctionRasters.tanFunctionDataset();
             break;
         case transType.ASIN:
             rsFunc = new FunctionRasters.asinFunctionDataset();
             break;
         case transType.ACOS:
             rsFunc = new FunctionRasters.acosFunctionDataset();
             break;
         case transType.ATAN:
             rsFunc = new FunctionRasters.atanFunctionDataset();
             break;
         case transType.RADIANS:
             rsFunc = new FunctionRasters.radiansFunctionDataset();
             break;
         case transType.SQRT:
             rsFunc = new FunctionRasters.sqrtFunctionDataset();
             break;
         case transType.SQUARED:
             rsFunc = new FunctionRasters.squaredFunctionDataset();
             break;
         default:
             rsFunc = new FunctionRasters.absFunctionDataset();
             break;
     }
     FunctionRasters.MathFunctionArguments args = new FunctionRasters.MathFunctionArguments(this);
     args.InRaster = rRst;
     frDset.Init(rsFunc, args);
     return frDset;
 }