/// <summary> /// 平均值统计(分行政区域或其他): /// =行政区划内各像元值相加/行政区划像素个数 /// </summary> /// <param name="rasterFilename"></param> /// <param name="templateName"></param> /// <param name="func"></param> /// <param name="progressTracker"></param> /// <returns> /// SortedDictionary<string, double[3]> /// key:各矢量名字 /// value:double[0],满足条件的像元和,double[1],满足条件的像元个数,double[2],当前矢量面的像元个数。 /// </returns> public static SortedDictionary <string, double[]> SumAndCountByVector <T>(string rasterFile, string templateName, Func <T, bool> func, Action <int, string> progressTracker) { if (templateName.Contains("vector")) { string[] split = templateName.Split(':'); string key = split[0]; string shpFilename = split[1]; string shpFieldName = split[2]; RasterStatByVector <T> v = new RasterStatByVector <T>(progressTracker); return(v.SumAndCountByVector(rasterFile, shpFilename, shpFieldName, func)); } else { throw new NotSupportedException("暂未实现除基于矢量面的分段面积百分比统计"); } }