return"An interpolation method relying on the implementation by the Study Group on VMS (SGVMS). The method uses two interpolation approached to simulate vessels points at a certain temporal resolution. The input is a file in TACSAT format uploaded on the Statistical Manager. The output is another TACSAT file containing interpolated points."+
"The underlying R code has been extracted from the SGVM VMSTools framework. This algorithm comes after a feasibility study which clarifies the features an e-Infrastructure adds to the original scripts. "+
"Limitation: the input will be processed up to "+maxPoints+" vessels trajectory points. "+
"Credits: Hintzen, N. T., Bastardie, F., Beare, D., Piet, G. J., Ulrich, C., Deporte, N., Egekvist, J., et al. 2012. VMStools: Open-source software for the processing, analysis and visualisation of fisheries logbook and VMS data. Fisheries Research, 115-116: 31-43. "+
"Hintzen, N. T., Piet, G. J., and Brunel, T. 2010. Improved estimation of trawling tracks using cubic Hermite spline interpolation of position registration data. Fisheries Research, 101: 108-115. "+
"VMStools, available as an add-on package for R. Documentation available at https://code.google.com/p/vmstools/. "+
"Build versions of VMStools for Window, Mac, Linux available at https://docs.google.com/. "+
addIntegerInput("npoints","The number of pings or positions required between each real or actual vessel position or ping","10");
addIntegerInput("interval","Average time in minutes between two adjacent datapoints","120");
addIntegerInput("margin","Maximum deviation from specified interval to find adjacent datapoints (tolerance)","10");
addIntegerInput("res","Number of points to use to create interpolation (including start and end point)","100");
addEnumerateInput(methodEnum.values(),"method","Set to cHs for cubic Hermite spline or SL for Straight Line interpolation","cHs");
addDoubleInput("fm","The FM parameter in cubic interpolation","0.5");
addIntegerInput("distscale","The DistScale parameter for cubic interpolation","20");
addDoubleInput("sigline","The Sigline parameter in cubic interpolation","0.2");
addDoubleInput("minspeedThr","A filter on the minimum speed to take into account for interpolation","2");
addDoubleInput("maxspeedThr","A filter on the maximum speed to take into account for interpolation","6");
addIntegerInput("headingAdjustment","Parameter to adjust the choice of heading depending on its own or previous point (0 or 1). Set 1 in case the heading at the endpoint does not represent the heading of the arriving vessel to that point but the departing vessel.","0");
inputs.add(newPrimitiveType(Boolean.class.getName(),null,PrimitiveTypes.BOOLEAN,"equalDist","Whether the number of positions returned should be equally spaced or not","true"));
}
@Override
publicStatisticalTypegetOutput(){
//return the output file by the procedure to the SM
PrimitiveTypeo=newPrimitiveType(File.class.getName(),newFile(outputFile),PrimitiveTypes.FILE,"OutputFile","Output file in TACSAT format.");
returno;
}
@Override
publicvoidshutdown(){
//in the case of forced shutdown, stop the R process