satSim = create_satellite_sim(satConfig, groundStation); % viewer = satelliteScenarioViewer(satSim.sc); sampleTimes = satConfig.startTime:seconds(satConfig.sampleTime):satConfig.stopTime; distancesToSat = zeros(size(sampleTimes)); elevationAnglesToSat = zeros(size(sampleTimes)); progressStartText = "Starting ..."; f = waitbar(0, progressStartText, "Name", "Task 1"); progressTotal = numel(sampleTimes); progressQueue = parallel.pool.DataQueue; parfor_waitbar(f, progressTotal, progressStartText, true); progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false)); parfor idx = 1:numel(sampleTimes) res = perform_access_analysis(satSim, sampleTimes(idx)); distancesToSat(idx) = res.distanceToSatellite; elevationAnglesToSat(idx) = res.elevationAngleToSatellite; send(progressQueue, sprintf("Index %d", idx)); end delete(progressListener); if ishandle(f) close(f); end figure; plot(sampleTimes, distancesToSat); grid on; xlabel("Time [s]"); ylabel("Distance to Satellite [m]"); title("Distance over time plot of satellite pass"); figure; plot(sampleTimes, elevationAnglesToSat); grid on; xlabel("Time [s]"); ylabel("Elevation angle to satellite [degree]"); title("Elevation angle over time plot of satellite pass"); accessAnalysisResults.times = sampleTimes; accessAnalysisResults.distances = distancesToSat; accessAnalysisResults.elevationAngles = elevationAnglesToSat;