public BackTmpComputer(int minWndSize, int maxWndSize, int maxHitedPixelCount, ISolarZenithProvider solarZenithProvider, float minSolarZenithValue, float maxSolarZenithValue, int farInfraredBandNo, int midInfraredBandNo, int visibleBandNo, int nearIfrBandNo, float bandZoom, float midIfrCenterWaveNum, float farIfrCenterWaveNum, int maxMidIfrValue, float firComputeFactor, float firIntensityfactor, /*以下2个参数用于修正区域背景温度最小值域最小值*/ int localBackTmpMax, int localBackTmpMin, //耀斑修正值 int glaringVIRR, int wildernessCorrect /*荒漠修正阈值*/, IBackTmpComputerHelper helper, float fireGradeLevel1, float fireGradeLevel2, float fireGradeLevel3, float fireGradeLevel4, float fireGradeLevel5, float vis_FirReliability, float midIfr_farInfr_FirReliability, float midIfr_FirReliability ) { _minWndSize = minWndSize; _maxWndSize = maxWndSize; _maxHitedPixelCount = maxHitedPixelCount; _solarZenithProvider = solarZenithProvider; _minSolarZenithValue = minSolarZenithValue; _maxSolarZenithValue = maxSolarZenithValue; _farIfrBandNo = farInfraredBandNo; _midIfrBandNo = midInfraredBandNo; _visBandNo = visibleBandNo; _nearIfrBandNo = nearIfrBandNo; _bandZoom = bandZoom; _midIfrCenterWaveNum = midIfrCenterWaveNum; _farIfrCenterWaveNum = farIfrCenterWaveNum; _maxMidIfrValue = maxMidIfrValue; _firComputeFactor = firComputeFactor; _firIntensityFactor = firIntensityfactor; _localBackTmpMax = localBackTmpMax; _localBackTmpMin = localBackTmpMin; _glaringVIRR = glaringVIRR; _wildernessCorrect = wildernessCorrect; _helper = helper; _fireGradeLevel1 = fireGradeLevel1; _fireGradeLevel2 = fireGradeLevel2; _fireGradeLevel3 = fireGradeLevel3; _fireGradeLevel4 = fireGradeLevel4; _fireGradeLevel5 = fireGradeLevel5; _vis_FirReliability = vis_FirReliability; _midIfr_farInfr_FirReliability = midIfr_farInfr_FirReliability; _midIfr_FirReliability = midIfr_FirReliability; }
public DoubtFirPixelFilter( int minWndSize, int maxWndSize, int farInfraredBandNo, int midInfraredBandNo, int nearInfraredBandNo, int visibleBandNo, float bandZoom, ISolarZenithProvider solarZenithProvider, int maxHitedPixelCount, /*以下4个阈值用于水体判识*/ float minSolarZenithValue, int minMidInfraredValue_water, int minNearInfraredValue_water, int nearInfrared_visibleValue_water, /*以下2个参数用于云判识*/ int minVisibleValue_cloud, int farInfraredValue_cloud, /*以下3个参数用于疑似火点判识*/ int midInfraredValue_DoubtFir, int dltMidInfraredValue_DoubtFir, int midInfrared_farInfrared_DoubtFir, int minMidInfraredValue_DoubtFir, int maxHTmpPixelCount_DoubtFir, int midInfraredAvg_DoubtFir ) { _minWndSize = minWndSize; _maxWndSize = maxWndSize; _farIfrBandNo = farInfraredBandNo; _midIfrBandNo = midInfraredBandNo; _nearIfrBandNo = nearInfraredBandNo; _visBandNo = visibleBandNo; _bandZoom = bandZoom; _solarZenithProvider = solarZenithProvider; _maxHitedPixelCount = maxHitedPixelCount; _minSolarZenithValue = minSolarZenithValue; _minMidIfrValue_water = minMidInfraredValue_water; _minNearIfrValue_water = minNearInfraredValue_water; _nearIfr_visValue_water = nearInfrared_visibleValue_water; _minVisValue_cloud = minVisibleValue_cloud; _farIfrValue_cloud = farInfraredValue_cloud; _midInfraredValue_DoubtFir = midInfraredValue_DoubtFir; _dltMidInfraredValue_DoubtFir = dltMidInfraredValue_DoubtFir; _midInfrared_farInfrared_DoubtFir = midInfrared_farInfrared_DoubtFir; _minMidInfraredValue_DoubtFir = minMidInfraredValue_DoubtFir; _maxHTmpPixelCount_DoubtFir = maxHTmpPixelCount_DoubtFir; _midInfraredAvg_DoubtFir = midInfraredAvg_DoubtFir; }
public static BackTmpComputer CreateBackTmpComputer(IArgumentProvider argProvider, IBackTmpComputerHelper helper, IContextMessage contextMessage) { int minWndSize = Obj2Int(argProvider.GetArg("BackWndMin")); int maxWndSize = Obj2Int(argProvider.GetArg("BackWndMax")); int localBackTmpMax = Obj2Int(argProvider.GetArg("BackTmp_localBackTmpMax")); int localBackTmpMin = Obj2Int(argProvider.GetArg("BackTmp_localBackTmpMin")); int glaringVIRR = Obj2Int(argProvider.GetArg("BackTmp_GlaringVIRR")); int wildernessCorrect = Obj2Int(argProvider.GetArg("BackTmp_WildernessCorrect")); int maxHitedPixelCount = Obj2Int(argProvider.GetArg("BackTmp_SkyPixelCount")); IBandNameRaster bandNameRaster = argProvider.DataProvider as IBandNameRaster; int visBandNo = TryGetBandNo(argProvider, bandNameRaster, "Visible"); int nearIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "NearInfrared"); int midIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "MiddleInfrared"); int farIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "FarInfrared"); float fireGradeLevel1 = Obj2Float(argProvider.GetArg("Intensity_Grade1")); float fireGradeLevel2 = Obj2Float(argProvider.GetArg("Intensity_Grade2")); float fireGradeLevel3 = Obj2Float(argProvider.GetArg("Intensity_Grade3")); float fireGradeLevel4 = Obj2Float(argProvider.GetArg("Intensity_Grade4")); float fireGradeLevel5 = Obj2Float(argProvider.GetArg("Intensity_Grade5")); float vis_FirReliability = Obj2Float(argProvider.GetArg("Vis_FirReliability")); float midIfr_farInfr_FirReliability = Obj2Float(argProvider.GetArg("MidIfr_farInfr_FirReliability")); float midIfr_FirReliability = Obj2Float(argProvider.GetArg("MidIfr_FirReliability")); bool isNight = bool.Parse(argProvider.GetArg("IsNight").ToString()); if (!isNight && (visBandNo < 1 || midIfrBandNo < 1 || farIfrBandNo < 1 || nearIfrBandNo < 1)) { PrintInfo(contextMessage, " 获取波段序号(可见光、近红外、中红外、远红外)时发生错误。"); return(null); } else if (isNight && (farIfrBandNo < 1 || midIfrBandNo < 1)) { PrintInfo(contextMessage, " 获取波段序号(可见光、近红外、中红外、远红外)时发生错误。"); return(null); } float bandZoom = Obj2Float(argProvider.GetArg("MiddleInfrared_Zoom")); if (bandZoom < float.Epsilon) { PrintInfo(contextMessage, " 波段数值缩放参数设置错误,使用缺省值1。"); } ISolarZenithProvider solarZentihProvider = null; float minSolarZentih = Obj2Float(argProvider.GetArg("BackTmp_SolarAzimuthMin")); float maxSolarZentih = Obj2Float(argProvider.GetArg("BackTmp_SolarAzimuthMax")); //亚像元面积计算 float midIfrCenterWaveNum = Obj2Float(argProvider.GetArg("MiddleInfrared_CenterWaveNum")); float farIfrCenterWaveNum = Obj2Float(argProvider.GetArg("FarInfrared_CenterWaveNum")); TryCorrectCenterWaveNum(argProvider.DataProvider, midIfrBandNo, farIfrBandNo, ref midIfrCenterWaveNum, ref farIfrCenterWaveNum, contextMessage); if (midIfrCenterWaveNum < float.Epsilon || farIfrCenterWaveNum < float.Epsilon) { PrintInfo(contextMessage, " 获取中红外、远红外中心波数失败,忽略亚像元面积、火点强度计算。"); } int midIfrMaxMidIfrValue = Obj2Int(argProvider.GetArg("BackTmp_MaxMidIfrValue")); float firComputeFactor = Obj2Float(argProvider.GetArg("BackTmp_FirComputeFactor")); float firIntensityFactor = Obj2Float(argProvider.GetArg("BackTmp_FirIntensityFactor")); // return(new BackTmpComputer(minWndSize, maxWndSize, maxHitedPixelCount, solarZentihProvider, minSolarZentih, maxSolarZentih, farIfrBandNo, midIfrBandNo, visBandNo, nearIfrBandNo, bandZoom, midIfrCenterWaveNum, farIfrCenterWaveNum, midIfrMaxMidIfrValue, firComputeFactor, firIntensityFactor, localBackTmpMax, localBackTmpMin, glaringVIRR, wildernessCorrect, helper, fireGradeLevel1, fireGradeLevel2, fireGradeLevel3, fireGradeLevel4, fireGradeLevel5, vis_FirReliability, midIfr_farInfr_FirReliability, midIfr_FirReliability)); }
public static DoubtFirPixelFilter CreateDoubtFilter(IArgumentProvider argProvider, IContextMessage contextMessage) { int minWndSize = Obj2Int(argProvider.GetArg("BackWndMin")); int maxWndSize = Obj2Int(argProvider.GetArg("BackWndMax")); IBandNameRaster bandNameRaster = argProvider.DataProvider as IBandNameRaster; int visBandNo = TryGetBandNo(argProvider, bandNameRaster, "Visible"); int nearIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "NearInfrared"); int midIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "MiddleInfrared"); int farIfrBandNo = TryGetBandNo(argProvider, bandNameRaster, "FarInfrared"); bool isNight = bool.Parse(argProvider.GetArg("IsNight").ToString()); if (!isNight && (visBandNo < 1 || midIfrBandNo < 1 || farIfrBandNo < 1 || nearIfrBandNo < 1)) { PrintInfo(contextMessage, " 获取波段序号(可见光、近红外、中红外、远红外)时发生错误。"); return(null); } else if (isNight && (farIfrBandNo < 1 || midIfrBandNo < 1)) { PrintInfo(contextMessage, " 获取波段序号(可见光、近红外、中红外、远红外)时发生错误。"); return(null); } float bandZoom = Obj2Float(argProvider.GetArg("MiddleInfrared_Zoom")); int hitedPixelCount = Obj2Int(argProvider.GetArg("HitedPixelCount")); ISolarZenithProvider solarZentihProvider = null; float minSolarZentih = Obj2Float(argProvider.GetArg("BackTSolarZenith")); if (bandZoom < float.Epsilon) { PrintInfo(contextMessage, " 波段数值缩放参数设置错误,使用缺省值1。"); } //water int minMidInfraredValue_water = Obj2Int(argProvider.GetArg("Water_MinMidIfr")); int minNearInfraredValue_water = Obj2Int(argProvider.GetArg("Water_MinNearIfr")); int nearInfrared_visibleValue_water = Obj2Int(argProvider.GetArg("Water_NearIfr_Vis")); //cloud int minVisibleValue_cloud = Obj2Int(argProvider.GetArg("Cloud_MinVis")); int farInfraredValue_cloud = Obj2Int(argProvider.GetArg("Cloud_FarIfr")); //doubt int midInfraredValue_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MidIfr")); int dltMidInfraredValue_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MidIfr_Diff")); int midInfrared_farInfrared_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MidIfr_FarIfr")); int minMidInfraredValue_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MinMidIfr")); int maxHTmpPixelCount_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MaxHTmpPixelCount")); int midInfraredAvg_DoubtFir = Obj2Int(argProvider.GetArg("Doubt_MidIfrAvg")); // DoubtFirPixelFilter filter = new DoubtFirPixelFilter ( //wnd size minWndSize, maxWndSize, //bandNo farIfrBandNo, midIfrBandNo, nearIfrBandNo, visBandNo, //zoom bandZoom, solarZentihProvider, // hitedPixelCount, minSolarZentih, //water minMidInfraredValue_water, minNearInfraredValue_water, nearInfrared_visibleValue_water, //cloud minVisibleValue_cloud, farInfraredValue_cloud, //doubt fir midInfraredValue_DoubtFir, dltMidInfraredValue_DoubtFir, midInfrared_farInfrared_DoubtFir, minMidInfraredValue_DoubtFir, maxHTmpPixelCount_DoubtFir, midInfraredAvg_DoubtFir ); return(filter); }