[ STK ](十)與 Matlab 互聯通訊,獲取衛星間可見性資料【演算法優化】
前言
- 在之前的文章中,我們建立了
STK
與Matlab
互聯通訊。 - 通過
Matlab
編碼,獲取分析得到衛星間可見性矩陣 - 效果雖然實現了,但是程式碼的效率極低,影響實驗。
- 本文中,對之前的程式碼進行了重寫,提高了程式碼的執行效率。
實現思路
- 之前的實現思路:每秒鐘獲取一次可見性資料,分析匯出可見性矩陣
- 本文的實現思路:一次性請求到所有的可見性資料,解析,每秒鐘匯出一個可見性矩陣
實現程式碼
- 程式碼目錄
analysis.m :解析可見性資料
close.m :關閉連線
getVisibility.m :獲取所有可見性資料
initConn.m :初始化連線
demo.m
% 註釋 Ctrl + R/T
[conid,objNames] = initConn();
objNames(1) = '';
objNames(1) = '';
objNames(1) = '';
startTime = 0;
endTime = 600;
count = 24;
result = getVisibility(objNames,startTime,endTime,count);
% load('result.mat')
analysis(result,startTime,endTime,count);
close(conid);
initConn.m
% 初始化連線
function [conid,objNames] = initConn()
stkInit;
remMachine = stkDefaultHost;
conid = stkOpen(remMachine);
objNames = stkObjNames;
end
getVisibility.m
% 獲取可見性
function [result] = getVisibility(objNames,startTime,endTime,count)
style = 'Access';
dt = 1;
result = {};
for i = 1:count
disp(strcat(num2str(i)))
for j = 1:count
if i ~= j
[secData, ~] =stkAccReport(char(objNames(int32(i))),char(objNames(int32(j))), style,startTime,endTime,dt);
result{i,j} = secData;
else
% 自己與自己的距離為 0
result{i,j} = 1;
end
end
end
end
analysis.m
% 解析可見性資料
function [] = analysis(result,startTime,endTime,count)
for k = startTime:endTime
disp(strcat(num2str(k)))
visibility = zeros(count);
for i = 1:count
for j = 1:count
if iscell(result{i,j})
% 其他衛星
[~,tmp2] = size(result{i,j}{1,1});
if tmp2 == 4
% 存在可見性
[access,startTime,stopTime,~] = result{i,j}{1,1}.data;
[accessLength1,~] = size(access);
if accessLength1 == 1
% 全程可見
visibility(i,j) = 1;
else
% 檢查是否在可見時間段內
for z = 1:accessLength1
if k >= startTime(z) && k <=stopTime(z)
% 存在可見性
visibility(i,j) = 1;
break;
end
end
end
else
% 不存在可見性
visibility(i,j) = 0;
end
else
% 對自身可見,存在可見性
visibility(i,j) = 1;
end
end
end
csvwrite(strcat('./data/visibility',num2str(k),'.csv'),visibility)
end
end
close.m
% 關閉連線
function []= close(conid)
stkClose(conid);
stkClose;
end
相關文章
- 螺旋衛星通訊天線設計與有限元分析matlab模擬Matlab
- 記錄一次獲取czml衛星軌道資料
- 遇見山河 預見空間大資料移動互聯時代!大資料
- 評論模組優化 - 資料表優化、新增快取及用 Feign 與使用者服務通訊優化快取
- 如何獲取 C# 類中發生資料變化的屬性資訊C#
- 歐科微“翔雲”衛星星座-低軌衛星通訊星座
- volatile 可見性與原子性
- 如獲取獲取關聯資料的文件跟模型的關聯資料集呢模型
- vue專案中,index.html資料與元件之間通訊,傳值,以獲取MAC地址為例VueIndexHTML元件Mac
- 華為Watch 4將支援衛星通訊:與P60同期發
- 資訊爆炸時代,如何獲取優質資訊?
- 通過可見性逆轉物聯網安全性的7款工具
- Python3獲取XX管理局可見資料學習案例Python
- Vue元件之間的資料傳遞(通訊、互動)詳解Vue元件
- 網路時間伺服器(衛星時鐘系統)對醫院資訊的重要性伺服器
- 關於HDFS的資料可見性
- 歐洲通訊衛星公司:超高清是關鍵的差異化因素
- Hawkeye:TopN慢query的獲取與優化優化
- 華為Mate 50率先支援衛星通訊,抗摔能力還增加了十倍
- HHDESK埠轉發監控服務獲取客戶端和資料庫之間的互動資訊客戶端資料庫
- python 獲取linux本機資訊【十全十美】PythonLinux
- 通過web url獲取檔案資訊Web
- Spark讀取MongoDB資料的方法與優化SparkMongoDB優化
- 【雜談】快取記憶體一致性與可見性快取記憶體
- 關於模型關聯 獲取不到關聯資訊 求教模型
- 常見的Javascript獲取時間戳JavaScript時間戳
- 樂訊通雲通訊:物聯卡,物與物之間溝通的橋樑
- Spring 中優雅的獲取泛型資訊Spring泛型
- 賽迪:2020上半年全球在軌衛星數量超2600顆 通訊衛星佔比近半
- 國外低軌衛星通訊系統發展現狀
- 衛星通訊,給手機市場帶來了什麼?
- Space Capital:2022年全球衛星通訊市場分析報告API
- 淺談併發的資料競爭(可見性)與競態條件(原子性)
- 登入介面:從資料庫中獲取資訊驗證登入(與註冊介面相聯絡)資料庫
- 互資訊與相關性的影像配準
- MATLAB時間序列資料重建與平滑:HANTS濾波Matlab
- GIS資料獲取:土地利用與土壤屬性、DEM、水體水系資料
- .NET Core如何全域性獲取使用者資訊?