123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using System;
- using System.IO;
- using Newtonsoft.Json;
- using Vinno.DataManager.Process;
- using Vinno.Infrastructure;
- using WingServerCommon.Log;
- using Logger = WingServerCommon.Log.Logger;
- namespace WingAIDiagnosisService.URMManage
- {
- public class URMAnalysisParam
- {
- public string UrmDatapath { get; set; }
- public string VecLens { get; set; }
- public string Mlas { get; set; }
- public string FramesGot { get; set; }
- public string CenterFrequencyMHz { get; set; }
- public string SupersonicSpeed { get; set; }
- public string FrequencyMin { get; set; }
- public string FrameRateDisplay { get; set; }
- public string ScaleOfPixel_x { get; set; }
- public string ScaleOfPixel_y { get; set; }
- public string ULMCount { get; set; }
- public string PacketsNum { get; set; }
- public string Res { get; set; }
- public string MaxLinkingDistance { get; set; }
- public string MinLength { get; set; }
- public string MaxGapClosing { get; set; }
- public string LocMethod { get; set; }
- public string NLocalMax { get; set; }
- public string Fwhm { get; set; }
- public string MOCOYN { get; set; }
- public string MOCOLevel { get; set; }
- public string MOCOThresh1 { get; set; }
- public string MOCOThresh2 { get; set; }
- public string MOCOThresh3 { get; set; }
- public string LocaFixmethod { get; set; }
- public string LocFixThresh { get; set; }
- public string MotionCorrThresh { get; set; }
- public string Pos { get; set; }
- public string FilterDeci { get; set; }
- public string PSFNum { get; set; }
- public string PSFCorr { get; set; }
- public string Depth { get; set; }
- public string X0 { get; set; }
- public string Z0 { get; set; }
- public string ProbeType { get; set; }
- public string SizeScan { get; set; }
- public string MotionAngleThresh { get; set; }
- public string TrackInterpFactor { get; set; }
- public string FrameStart { get; set; }
- public string FrameEnd { get; set; }
- }
- //负责URM的参数文件读写
- public class URMFileIO
- {
- protected ImagePP ImagePPRes;
- public URMFileIO(string familyName, string typeInfo, string nativeId)
- {
- // ResourceManagerImpl resourceManager = new ResourceManagerImpl(Path.Combine(ServiceManager.RootPath, "URM", "dev"));
- // ResourceManager.Initialize(resourceManager);
- var dir = new VinnoDirectoryInfo(Path.Combine(ServiceManager.RootPath, "URM"));
- NativeProxy.UpdateSection("Path", "ShippedRoot", dir.FullName);
- NativeProxy.UpdateSection("Product-GeneralSpecification", "ImagePPFileName", "ImagePP_Tulip");
- if (ServiceManager.Os.IsWin())
- {
- WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO ImagePPNative_Win");
- ImagePPRes = new ImagePPNative_Win();
- }
- else
- {
- WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO ImagePPNative");
- ImagePPRes = new ImagePPNative();
- }
- ImagePPRes.Initial();
- WingServerCommon.Log.Logger.WriteLineInfo($"ImagePPRes Initial familyName:{familyName},typeInfo:{typeInfo},nativeId:{nativeId}");
- ImagePPRes.Initial(familyName, typeInfo, nativeId);
- WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO end");
- }
- public void UpdateParamJson(String UrmDatapath, int VecLens, int Mlas, int FramesGot, double CenterFrequencyMhz, int SupersonicSpeed, double FrequencyMin, double FrameRateDisplay, double Depth, double X0, double Z0, string ProbeType, double ScaleOfPixel_x, double ScaleOfPixel_y, string section, string MOCOYN, int MidProc_DeciFactor, int VectorStartForMid, int startX, int startY, int width, int height, int? CustomizedStartFrame, int? CustomizedEndFrame, out string parms, out double URMRes)
- {
- Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO UpdateParamJson start");
- var urmnalysisparams = new URMAnalysisParam();
- urmnalysisparams.UrmDatapath = UrmDatapath;
- urmnalysisparams.VecLens = VecLens.ToString();
- urmnalysisparams.Mlas = Mlas.ToString();
- urmnalysisparams.FramesGot = FramesGot.ToString();
- urmnalysisparams.CenterFrequencyMHz = CenterFrequencyMhz.ToString();
- urmnalysisparams.SupersonicSpeed = SupersonicSpeed.ToString();
- urmnalysisparams.FrequencyMin = FrequencyMin.ToString();
- urmnalysisparams.FrameRateDisplay = FrameRateDisplay.ToString();
- urmnalysisparams.Depth = Depth.ToString();
- urmnalysisparams.X0 = X0.ToString();
- urmnalysisparams.Z0 = Z0.ToString();
- urmnalysisparams.ProbeType = ProbeType; // 线阵 1 弧阵 2
- urmnalysisparams.ScaleOfPixel_x = ScaleOfPixel_x.ToString();
- urmnalysisparams.ScaleOfPixel_y = ScaleOfPixel_y.ToString();
- urmnalysisparams.ULMCount = ImagePPRes.GetValue(section, "ULMCount", 400).ToString();
- urmnalysisparams.PacketsNum = ImagePPRes.GetValue(section, "PacketsNum", 200).ToString();
- URMRes = ImagePPRes.GetValue(section, "Res", 10.0d);
- urmnalysisparams.Res = URMRes.ToString();
- urmnalysisparams.MaxLinkingDistance = ImagePPRes.GetValue(section, "MaxLinkingDistance", 2.0).ToString();
- urmnalysisparams.MinLength = ImagePPRes.GetValue(section, "MinLength", 5.0).ToString();
- urmnalysisparams.MaxGapClosing = ImagePPRes.GetValue(section, "MaxGapClosing", 0).ToString();
- urmnalysisparams.LocMethod = ImagePPRes.GetValue(section, "LocMethod", "radial");
- urmnalysisparams.NLocalMax = ImagePPRes.GetValue(section, "NLocalMax", 3).ToString();
- urmnalysisparams.Fwhm = ImagePPRes.GetValue(section, "Fwhm", 3).ToString();
- urmnalysisparams.MOCOYN = MOCOYN.ToString();
- urmnalysisparams.MOCOLevel = ImagePPRes.GetValue(section, "MOCOLevel", 0.05).ToString();
- urmnalysisparams.MOCOThresh1 = ImagePPRes.GetValue(section, "MOCOThresh1", 0.05).ToString();
- urmnalysisparams.MOCOThresh2 = ImagePPRes.GetValue(section, "MOCOThresh2", 0.05).ToString();
- urmnalysisparams.MOCOThresh3 = ImagePPRes.GetValue(section, "MOCOThresh3", 5).ToString();
- urmnalysisparams.LocaFixmethod = ImagePPRes.GetValue(section, "LocaFixmethod", "fixgray");
- urmnalysisparams.LocFixThresh = ImagePPRes.GetValue(section, "LocFixThresh", 15).ToString();
- urmnalysisparams.MotionCorrThresh = ImagePPRes.GetValue(section, "MotionCorrThresh", 0.5).ToString();
- var roiInfo = $" {startX},{startY * MidProc_DeciFactor + VectorStartForMid},{width},{height * MidProc_DeciFactor} ";
- urmnalysisparams.Pos = roiInfo;
- urmnalysisparams.FilterDeci = ImagePPRes.GetValue(section, "FilterDeci", 1).ToString();
- urmnalysisparams.PSFNum = ImagePPRes.GetValue(section, "PSFNum", 10).ToString();
- urmnalysisparams.PSFCorr = ImagePPRes.GetValue(section, "PSFCorr", 0.5).ToString();
- urmnalysisparams.SizeScan = Math.Min(VecLens, 1024).ToString();
- urmnalysisparams.MotionAngleThresh = ImagePPRes.GetValue(section, "MotionAngleThresh", 2).ToString();
- urmnalysisparams.TrackInterpFactor = ImagePPRes.GetValue(section, "TrackInterpFactor", 0.8).ToString();
- int starttime;
- int endtime;
- starttime = CustomizedStartFrame ?? 1;
- endtime = CustomizedEndFrame ?? FramesGot;
- starttime = Math.Min(starttime, FramesGot - 199);
- endtime = Math.Min(endtime, FramesGot);
- urmnalysisparams.FrameStart = starttime.ToString();
- urmnalysisparams.FrameEnd = endtime.ToString();
- parms = JsonConvert.SerializeObject(urmnalysisparams);
- WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO UpdateParamJson end");
- }
- }
- }
|