Визуализируйте поле зрения конического датчика
fieldOfView(
добавляет sensor
)FieldOfView
возразите против заданного конического датчика, и чертит контуры на Земле. Каждый контур представляет поле зрения конического датчика в sensor
на основе текущего состояния сценария.
Местоположения в контуре в поле зрения. Если никакое средство просмотра не открыто, новое средство просмотра запускается, и контуры поля зрения показывают в открытом средстве просмотра. Если средство просмотра уже открыто, контуры поля зрения добавляются к нему. Контуры являются линиями пересечения поверхности земли и конуса поля зрения. Половина угла конуса поля зрения равна свойству MaxViewAngle конического датчика, и осью конуса является z - ось (или опорное направление) конического датчика. Вершина конуса расположена в положении конического датчика. Конус становится более широким вдоль положительного тела z - ось конического датчика.
fieldOfView(
задает опции при помощи одних или нескольких аргументов name-value.sensor
,Name,Value
)
возвращает вектор из указателей на добавленные графические объекты поля зрения. Задайте любую входную комбинацию от предыдущих синтаксисов.fov
= fieldOfView(___)
Создайте спутниковый сценарий со временем начала от 15 июня 2021 8:55:00 UTC и время остановки пять дней спустя. Установите шаг расчета симуляции на 60
секунды.
startTime = datetime(2021,6,21,8,55,0);
stopTime = startTime + days(5);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)
sc = satelliteScenario with properties: StartTime: 21-Jun-2021 08:55:00 StopTime: 26-Jun-2021 08:55:00 SampleTime: 60 Viewers: [0x0 matlabshared.satellitescenario.Viewer] Satellites: [1x0 matlabshared.satellitescenario.Satellite] GroundStations: [1x0 matlabshared.satellitescenario.GroundStation] AutoShow: 1
Добавьте спутник в сценарий с помощью Кеплеровских орбитальных элементов.
semiMajorAxis = 7878137; % meters eccentricity = 0; inclination = 50; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 50; % degrees sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ... argumentOfPeriapsis,trueAnomaly)
sat = Satellite with properties: Name: Satellite 1 ID: 1 ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor] Gimbals: [1x0 matlabshared.satellitescenario.Gimbal] Transmitters: [1x0 satcom.satellitescenario.Transmitter] Receivers: [1x0 satcom.satellitescenario.Receiver] Accesses: [1x0 matlabshared.satellitescenario.Access] GroundTrack: [1x1 matlabshared.satellitescenario.GroundTrack] Orbit: [1x1 matlabshared.satellitescenario.Orbit] OrbitPropagator: sgp4 MarkerColor: [1 0 0] MarkerSize: 10 ShowLabel: true LabelFontColor: [1 0 0] LabelFontSize: 15
Добавьте наземную станцию, которая представляет местоположение, которое будет сфотографировано к сценарию.
gs = groundStation(sc,"Name","Location To Photograph", ... "Latitude",42.3001,"Longitude",-71.3504) % degrees
gs = GroundStation with properties: Name: Location To Photograph ID: 2 Latitude: 42.3 degrees Longitude: -71.35 degrees Altitude: 0 meters MinElevationAngle: 0 degrees ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor] Gimbals: [1x0 matlabshared.satellitescenario.Gimbal] Transmitters: [1x0 satcom.satellitescenario.Transmitter] Receivers: [1x0 satcom.satellitescenario.Receiver] Accesses: [1x0 matlabshared.satellitescenario.Access] MarkerColor: [0 1 1] MarkerSize: 10 ShowLabel: true LabelFontColor: [0 1 1] LabelFontSize: 15
Добавьте карданов подвес в спутник. Можно регулировать этот карданов подвес независимо от спутника.
g = gimbal(sat)
g = Gimbal with properties: Name: Gimbal 3 ID: 3 MountingLocation: [0; 0; 0] meters MountingAngles: [0; 0; 0] degrees ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor] Transmitters: [1x0 satcom.satellitescenario.Transmitter] Receivers: [1x0 satcom.satellitescenario.Receiver]
Отследите местоположение, которое будет сфотографировано с помощью карданова подвеса.
pointAt(g,gs);
Добавьте конический датчик в карданов подвес. Этот датчик представляет камеру. Установите поле зрения на 60 градусов.
camSensor = conicalSensor(g,"MaxViewAngle",60)
camSensor = ConicalSensor with properties: Name: Conical sensor 4 ID: 4 MountingLocation: [0; 0; 0] meters MountingAngles: [0; 0; 0] degrees MaxViewAngle: 60 degrees Accesses: [1x0 matlabshared.satellitescenario.Access] FieldOfView: [0x0 matlabshared.satellitescenario.FieldOfView]
Добавьте анализ доступа между камерой и местоположением, которое будет сфотографировано. Доступ добавляется к коническому датчику.
ac = access(camSensor,gs)
ac = Access with properties: Sequence: [4 2] LineWidth: 1 LineColor: [0.5 0 1]
Визуализируйте поле зрения камеры при помощи Спутникового Средства просмотра Сценария.
v = satelliteScenarioViewer(sc); fieldOfView(camSensor);
Определите интервалы, во время которых камера видит географический сайт.
t = accessIntervals(ac)
t=35×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
__________________ ________________________ ______________ ____________________ ____________________ ________ __________ ________
"Conical sensor 4" "Location To Photograph" 1 21-Jun-2021 10:38:00 21-Jun-2021 10:55:00 1020 1 2
"Conical sensor 4" "Location To Photograph" 2 21-Jun-2021 12:36:00 21-Jun-2021 12:58:00 1320 2 3
"Conical sensor 4" "Location To Photograph" 3 21-Jun-2021 14:37:00 21-Jun-2021 15:01:00 1440 3 4
"Conical sensor 4" "Location To Photograph" 4 21-Jun-2021 16:41:00 21-Jun-2021 17:04:00 1380 5 5
"Conical sensor 4" "Location To Photograph" 5 21-Jun-2021 18:44:00 21-Jun-2021 19:07:00 1380 6 6
"Conical sensor 4" "Location To Photograph" 6 21-Jun-2021 20:46:00 21-Jun-2021 21:08:00 1320 7 7
"Conical sensor 4" "Location To Photograph" 7 21-Jun-2021 22:50:00 21-Jun-2021 23:04:00 840 8 8
"Conical sensor 4" "Location To Photograph" 8 22-Jun-2021 09:51:00 22-Jun-2021 10:02:00 660 13 13
"Conical sensor 4" "Location To Photograph" 9 22-Jun-2021 11:46:00 22-Jun-2021 12:07:00 1260 14 15
"Conical sensor 4" "Location To Photograph" 10 22-Jun-2021 13:46:00 22-Jun-2021 14:10:00 1440 15 16
"Conical sensor 4" "Location To Photograph" 11 22-Jun-2021 15:50:00 22-Jun-2021 16:13:00 1380 16 17
"Conical sensor 4" "Location To Photograph" 12 22-Jun-2021 17:53:00 22-Jun-2021 18:16:00 1380 18 18
"Conical sensor 4" "Location To Photograph" 13 22-Jun-2021 19:55:00 22-Jun-2021 20:18:00 1380 19 19
"Conical sensor 4" "Location To Photograph" 14 22-Jun-2021 21:58:00 22-Jun-2021 22:16:00 1080 20 20
"Conical sensor 4" "Location To Photograph" 15 23-Jun-2021 10:56:00 23-Jun-2021 11:16:00 1200 26 27
"Conical sensor 4" "Location To Photograph" 16 23-Jun-2021 12:56:00 23-Jun-2021 13:19:00 1380 27 28
⋮
Вычислите максимум пересматривают время в часах.
startTimes = t.StartTime;
endTimes = t.EndTime;
revisitTimes = hours(startTimes(2:end) - endTimes(1:end-1));
maxRevisitTime = max(revisitTimes) % hours
maxRevisitTime = 12.6667
Визуализируйте пересмотреть времена, который фотографирует местоположение.
play(sc);
sensor
— Конический датчикConicalSensor
объектКонический датчик в виде ConicalSensor
объект.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'LineWidth',2.5
устанавливает ширину линии поля зрения к 2,5 пикселям.Viewer
— Спутниковое средство просмотра сценарияsatelliteScenarioViewer
объекты (значение по умолчанию) | скалярный satelliteScenarioViewer
возразите | массив satelliteScenarioViewer
объектыСпутниковое средство просмотра сценария в виде скаляра, вектора-строки или массива satelliteScenarioViewer
объекты.
NumContourPoints
— Количество точек контура
(значение по умолчанию) | целое число, больше, чем или равный 4Количество точек контура раньше чертило контур поля зрения в виде целого числа, больше, чем или равный 4.
Типы данных: double
LineWidth
— Визуальная ширина контура поля зрения
(значение по умолчанию) | скаляр в области значений (0 10]Визуальная ширина поля зрения очерчивает в пикселях в виде скаляра в области значений (0 10].
Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы устанавливаете ширину линии на значение, которое меньше ширины пикселя в вашей системе, отображения линии как один пиксель шириной.
LineColor
— Цвет контура поля зрения
(значение по умолчанию) | триплет RGB | RGB triplet
| string scalar of color name
| character vector of color name
Цвет поля зрения очерчивает в виде триплета RGB, шестнадцатеричного цветового кода, названия цвета или краткого названия.
Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.
Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]
; например, [0.4 0.6 0.7]
.
Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#
) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0
к F
. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800'
, '#ff8800'
, '#F80'
, и '#f80'
эквивалентны.
Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
Название цвета | Краткое название | Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид |
---|---|---|---|---|
'red' | 'r' | [1 0 0]
| '#FF0000' | |
'green' | 'g' | [0 1 0]
| '#00FF00' | |
'blue' | 'b' | [0 0 1]
| '#0000FF' | |
'cyan'
| 'c' | [0 1 1]
| '#00FFFF' | |
'magenta' | 'm' | [1 0 1]
| '#FF00FF' | |
'yellow' | 'y' | [1 1 0]
| '#FFFF00' | |
'black' | 'k' | [0 0 0]
| '#000000'
| |
'white' | 'w' | [1 1 1]
| '#FFFFFF' | |
'none' | Не применяется | Не применяется | Не применяется | Нет цвета |
Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использование во многих типах графиков.
Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид |
---|---|---|
[0 0.4470 0.7410]
| '#0072BD' | |
[0.8500 0.3250 0.0980]
| '#D95319' | |
[0.9290 0.6940 0.1250]
| '#EDB120' | |
[0.4940 0.1840 0.5560]
| '#7E2F8E' | |
[0.4660 0.6740 0.1880]
| '#77AC30' | |
[0.3010 0.7450 0.9330]
| '#4DBEEE' | |
[0.6350 0.0780 0.1840]
| '#A2142F' |
Пример: 'blue'
Пример: [0 0 1]
Пример: '#0000FF'
fov
— Поле зрения конического датчикаFieldOfView
объектыПоле зрения конического датчика, возвращенного как вектор-строка из FieldOfView
объекты.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.