STKMATLAB 卫星编队覆盖分析纯代码实现

news2024/9/21 0:30:58

任务描述

设置卫星编队(沿航迹编队,大斜视角,幅宽100km,下视角30°,斜视角±26°),设置分析区域(中国全境),设置FigureOfMerit(展示覆盖率),COM命令格式

代码块解析

初始化:新建场景,设置分析时间为30天

clc
clear
close all
% 初始化
uiap = actxserver('STK11.application');
root = uiap.Personality2;
root.ExecuteCommand('New / Scenario MyScenario');
root.ExecuteCommand('SetAnalysisTimePeriod * "Today" "+30 days"');

设置卫星编队:这里只是最简单的沿航迹编队,除此之外还有螺旋,钟摆,车轮等编队,注意区分分析时间与轨道时间,轨道时间为轨道六根数对应的时刻

root.ExecuteCommand('New / */Satellite A');
root.ExecuteCommand('SetUnits / km'); % Default Connect Units are meters
root.ExecuteCommand( 'SetState */Satellite/A Classical J2Perturbation UseScenarioInterval 60 J2000 "Today" 6978.074293 0.0011952 60 90.0186 340.5706 89.9814'); % 轨道六根数
root.ExecuteCommand('New / */Satellite B');
root.ExecuteCommand('SetUnits / km'); % Default Connect Units are meters
root.ExecuteCommand( 'SetState */Satellite/B Classical J2Perturbation UseScenarioInterval 60 J2000 "Today" 6978.074293 0.0011952 60 90.0186 340.5706 94.0080'); % 轨道六根数

设置Sensor:斜视角,下视角,幅宽

root.ExecuteCommand('New / */Satellite/A/Sensor A');
root.ExecuteCommand('Define */Satellite/A/Sensor/A Rectangular 3.6 3.5'); % 波束宽度
root.ExecuteCommand('Point */Satellite/A/Sensor/A Fixed AzEl 51.4 60 Rotate'); % 方位角与俯仰角
root.ExecuteCommand('New / */Satellite/B/Sensor B');
root.ExecuteCommand('Define */Satellite/B/Sensor/B Rectangular 3.6 3.5'); % 波束宽度
root.ExecuteCommand('Point */Satellite/B/Sensor/B Fixed AzEl 128.4 60 Rotate'); % 方位角与俯仰角

设置覆盖分析区域:中国全境,并设置FigureOFMerit显示覆盖率

% 设置覆盖分析区域
% root.ExecuteCommand('GIS * Import "D:\STK11.6\Data\Shapefiles\Countries\China\China.shp" AreaTarget');
root.ExecuteCommand('New / */CoverageDefinition MyCoverageDefinition');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Grid AreaOfInterest Custom Region "D:\STK11.6\Data\Shapefiles\Countries\China\China.shp"');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Grid PointGranularity LatLon 1');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Asset Satellite/A/Sensor/A Assign');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Asset Satellite/B/Sensor/B Assign');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access DataRetention All AutoRecompute Off'); % 关闭自动计算
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access DataRetention All');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access SaveMode Save');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Interval UseScenarioInterval'); % 设置分析时间
% root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Interval "2 Sep 2011 12:00:00.00" "2 Sep 2011 14:35:00.00"')
root.ExecuteCommand('New / */CoverageDefinition/MyCoverageDefinition/FigureOfMerit MyFigure');
root.ExecuteCommand('Graphics */CoverageDefinition/MyCoverageDefinition/FigureOfMerit/MyFigure Static FillTranslucency 20');
Scenario = root.Children.Item('MyScenario');
COV = Scenario.Children.Item('MyCoverageDefinition');
COV.Graphics.Static.IsRegionVisible = 1;
COV.Graphics.Static.Color = 0x00FFFF;
FOM = COV.Children.Item('MyFigure');
FOM.Graphics.Static.Color = 0x00FF00; % 设为绿色
FOM.Graphics.Static.FillTranslucency = 20; % 透明度
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access Compute'); % 计算覆盖

生成报告:GraphCreate

root.ExecuteCommand('GraphCreate */CoverageDefinition/MyCoverageDefinition Type Save Style "Percent Coverage" File "D:\BaiduSyncdisk\STK\Four-D_SAR\PercenCov.bmp" TimePeriod UseScenarioInterval TimeStep 60');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

skynet 入门篇

文章目录 概述1.实现了actor模型2.实现了服务器的基础组件 环境准备centosubuntumac编译安装 ActorActor模型定义组成 Actor调度工作线程流程工作线程权重工作线程执行规则 小结 概述 skynet 是一个轻量级服务器框架,而不仅仅用于游戏; 轻量级有以下几…

16现代循环神经网络—深度循环与双向循环

目录 1.深度循环神经网络回顾:循环神经网络总结简洁代码实现2.双向循环神经网络隐马尔可夫模型中的动态规划双向模型模型的计算代价及其应用总结代码实现1.深度循环神经网络 回顾:循环神经网络 如何将循环神经网络变深,以获得更多的非线性? 通过添加多个隐藏层的方式来实现…

Transformer中的Multi-head与Self-Attention机制解析——从单一关注到多元自省的效益最大化

Transformer中的Multi-head与Self-Attention机制解析——从单一关注到多元自省的效益最大化 Multi-head Attention与Self-Attention的核心思想 想象一下,你在读一本书,你想要同时关注到书中的多个角色和情节。多头注意力机制就是让你能够同时关注到多个不…

day14:01函数参数的使用

一、形参与实参介绍 【形参】:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名 def func(x, y): # x1,y2print(x, y)【实参】:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量…

OpenEuler系统下——k8s离线安装部署

简介 K8S是目前已经是业界最为流行的开源技术框架,但是苦于其学习难度较大,并且初学者在开始的时候需要自己进行安装搭建部署,以供后续的学习使用,但是国内经常会出现无法访问外网的官方网站,导致很多镜像和依赖包无法…

uCore2020 lab1练习一作业

在线环境(无需搭建环境即可复现) 在线实验指导书uCore2020,有些章节无法访问 文章目录 lab1练习一1、操作系统镜像文件ucore.img生成过程init.o等文件的生成过程bin/kernal的生成过程bin/sign的生成过程bin/bootblock的生成过程bin/ucore.i…

搭建AI无人直播插件

在当今的数字时代,直播已成为一种极为流行的内容传播方式,而人工智能(AI)技术的飞速发展更是为直播行业注入了新的活力。 AI无人直播插件,作为这一趋势下的产物,不仅能够实现24小时不间断的直播内容生成,还能根据观众…

SpringCloud Alibaba 微服务(四):Sentinel

目录 前言 一、什么是Sentinel? Sentinel 的主要特性 Sentinel 的开源生态 二、Sentinel的核心功能 三、Sentinel 的主要优势与特性 1、丰富的流控规则 2、完善的熔断降级机制 3、实时监控和控制台 4、多数据源支持 5、扩展性强 四、Sentinel 与 Hystrix…

Redis 序列化 GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer的区别

GenericJackson2JsonRedisSerializer 和 Jackson2JsonRedisSerializer 是 Spring Data Redis 提供的两种基于 Jackson 的 Redis 序列化器。 它们的主要区别在于序列化和反序列化的方式以及适用的场景。 GenericJackson2JsonRedisSerializer 序列化方式:在序列化对…

为Mac配置Alfred

参考资料: Alfred神器使用手册 | louis blogMacOS神器之Alfred workflow概览GitHub - arpir/Alfred-Workflows-Collection: 一些好用的 Alfred Workflow 一、修改快捷键 Spotlight的默认快捷键是Command Space Alfred的默认快捷键是Option Space 可以将Alfred和…

[网络编程】网络编程的基础使用

系列文章目录 1、 初识网络 网络编程套接字 系列文章目录前言一、TCP和UDP协议的引入二、UDP网络编程1.Java中的UDP2.UDP回显代码案例3.UDP网络编程的注意事项 三、TCP网络编程1.TCP回显代码案例2.TCP多线程使用 总结 前言 在学习完基础的网络知识后,完成跨主机通…

关于 OSPF LSA 序列号范围 0x80000001-0x7FFFFFFF 释疑正本清源

注:机翻,未校对。 正本:RFC 2328 OSPF Version 2 中相关解释 April 1998 12.1.6. LS sequence number 12.1.6. 序列号 The sequence number field is a signed 32-bit integer. It is used to detect old and duplicate LSAs. The space …

set,map(java)

前言:要了解set和map,首先需要对搜索树和哈希有一定的了解,才能进一步深入的了解set和map。 1.搜索树 (1)性质: 若它的左子树不为空,则左子树上所有节点值都小于根节点的值。 若它的右子树不…

事件如何驱动图表运行

状态流图如何响应事件 Stateflow图表仅在以循环方式响应事件时执行。 由于图表在单个线程上运行,因此基于事件发生的操作对该事件是原子性的。图表中由事件引起的所有活动都在执行返回到接收事件之前发生的活动之前完成。一旦事件启动了一个操作,除非被…

全网最全程序员接单网站

程序员客栈-领先的程序员自由工作平台-程序员兼职 (proginn.com) 闲鱼 - 闲不住,上闲鱼! (goofish.com) 猪八戒网-品质企业服务 就找猪八戒 (zbj.com) 电鸭社区-专注远程工作招聘交流-远程工作,从电鸭开始 (eleduck.com) 开源众包-百万开发者…

Java台球厅助教教练预约上门到店系统源码

🎱一杆在手,天下我有!台球助教教练预约系统,让球技飙升不是梦🚀 🎯【开篇:台球爱好者的福音来啦!】🎯 还在为找不到合适的台球教练而烦恼吗?或是想要在家就…

代码实践思考:C++和Python

起因 在人工智能工具日益强大的今天 如何更高效的进行代码学习 如何借助智能工具实现代码转换? 是否直接可以使用?为何? 如何实现不同的编程语言之间代码的无损转换? x86与arm C 云课五分钟-02第一个代码复现-终端甜甜圈C-CS…

GEE错误——文件导出的时候出现Error: User memory limit exceeded. (Error code: 3)

错误简介 在试图将我的表导出到资产文件夹,但出现了内存错误。我不知道我做错了什么。相同的脚本适用于其他年份。文件导出的时候出现Error: User memory limit exceeded. (Error code: 3) 函数 reduceToVectors(reducer, geometry, scale, geometryType, eightConnected,…

雪花算法的一些问题解析

前言 最近做项目,有些老旧项目,需要生成分布式唯一ID,不允许重复,此时如果要对其他中间件和数据库依赖小,那么就需要一套固定的ID生成规则,雪花算法就正当合适,当时Twitter就是用来存储数据库I…

服务器主机安全有多重要

一、什么是主机安全 主机安全,作为维护计算机系统核心安全的基石,旨在全面捍卫硬件与软件免受任何未经授权的侵扰、篡改、数据泄露等安全挑战。这一过程不仅聚焦于数据存储与处理的保密性、完整性及可用性,还深入至硬件构造、固件层、以及系…