В этом примере показано, как использовать Amazon® Web Services (AWS) сервис Наземной станции из MATLAB®, чтобы получить данные из спутника наблюдения Земли AQUA. AQUA (Запущенный в 2 002), является Наземными перемещениями по кругу Национальное управление по аэронавтике и исследованию космического пространства (НАСА) спутник научного исследования, который изучает осадки, испарение и циклическое повторение воды. Можно собрать данные от других спутников, для которых у вас есть право доступа путем изменения спутниковой информации. Используя этот пример, можно собрать спутниковые данные как радиочастоту (RF) синфазная квадратура (I/Q) выборки и, как демодулируется и декодируется данные. Можно далее обработать и анализировать эти собранные данные с помощью Communications Toolbox™ и Image Processing Toolbox™.
Наземная станция AWS является сервисом, который позволяет вам справиться со спутниковой связью и обработать данные без потребности создать или обеспечить вашу собственную инфраструктуру наземной станции. Можно получить больше информации о сервисе Наземной станции AWS и его возможностях от веб-сайта Наземной станции AWS.
Наземная станция AWS в настоящее время поддерживает спутники средней земной орбиты (MEO) и низкая околоземная орбита (LEO). Эти спутники отображаются от наземной станции в течение только нескольких минут во время каждой передачи из-за их орбитальных циклов. Коммуникация возможна, когда спутники в углу обзора наземной станции. Наземная станция AWS устанавливает контакт со спутниками, и затем получает, демодулирует и декодирует сигналы RF. Наземная станция затем продвигает данные к Эластичному приемнику, Вычисляют Облако (EC2) экземпляр как поток VITA 49. Этот рисунок показывает сквозную связь данных, полученных в Виртуальное закрытое облако (VPC) от Наземной станции AWS на запланированное время, и затем продвигает данные к Простому Сервисному блоку Устройства хранения данных AWS (S3).
Этот пример использует эти сервисы AWS, некоторые из которых могут понести расходы на вашей учетной записи AWS. Для оценок затрат смотрите, что соответствующее оценивает веб-сайты страницы для каждого из сервисов AWS, которые использует этот пример.
Наземная станция AWS: Для получения информации о ценах см., что Наземная станция AWS оценивает.
AWS EC2 и Эластичный IP: Этот пример использует m5.4xlarge тип экземпляра. Для получения информации о ценах смотрите, что Amazon EC2 оценивает.
VPC AWS и шлюз NAT: Для получения информации о ценах смотрите, что VPC Amazon оценивает.
AWS CloudWatch: Для получения информации о ценах смотрите, что Amazon CloudWatch оценивает.
Простой сервис уведомления (SNS) AWS: Для получения информации о ценах смотрите Amazon оценка SNS.
AWS S3: Для получения информации о ценах смотрите, что Amazon S3 оценивает.
AWS GaurdDuty: Для получения информации о ценах смотрите, что Amazon GuardDuty оценивает.
AWS CloudFormation: Для получения информации о ценах смотрите, что AWS CloudFormation Оценивает.
AWS позволяет вам визуализировать, изучить и управлять своими затратами AWS и использованием в зависимости от времени. Для получения дополнительной информации см. Проводник Стоимости AWS веб-сайт AWS.
Все сервисы, созданные через этот пример, могут быть выпущены в любом моменте времени. Для получения дополнительной информации смотрите раздел Delete AWS Cloud Resources.
Чтобы собрать данные от спутников с помощью сервиса Наземной станции AWS, у вас должна быть учетная запись AWS с разрешением к сервисам AWS, которые использует этот пример. В этом разделе описываются одноразовые шаги настройки, чтобы получить доступ к сервису Наземной станции AWS. Если вы уже завершили эту процедуру, пропустите этот раздел.
Если вы уже имеете Идентичность и управление доступом (IAM) пользователь, пропускаете этот раздел.
Зарегистрируйте корневой аккаунт AWS. Для получения дополнительной информации смотрите веб-сайт AWS.
Откройте консоль I AM в этом веб-сайте: Я Консоль AM.
Нажмите Users в консоли I AM, и затем нажмите Add User. Чтобы завершить создание меня пользователь AM, выполните шаги добавлять-пользователя AWS, который следующие пять подразделов.
Следуйте за подсказками к деталям пользователя аппарата. Этот рисунок показывает пример установки пользовательских деталей и типа доступа AWS. Поскольку этот пример сбора данных использует программируемые вызовы AWS, таким образом, необходимо выбрать доступ к AWS Management Console и Programmatic access.
Следуйте за подсказками, чтобы установить полномочия. Этот рисунок показывает пример установки полномочий для вашего я пользователь AM. Поскольку у вас должны быть полномочия администрирования получить доступ к сервисам AWS, выберите AdministratorAccess
политика от Присоединения существующие политики непосредственно политики.
Следуйте за подсказками, чтобы добавить теги. Этот рисунок показывает пример добавления тегов к вашему я пользователь AM.
Следуйте за подсказками, чтобы рассмотреть детали вашего я пользователь AM и Создать пользователя. Этот рисунок показывает пример меня пользовательские детали AM, сводные данные разрешения и присоединенные политики для этого примера.
Этот рисунок показывает пример просмотра и загрузки ваш я учетные данные безопасности пользователей AM. Можно получить учетные данные с помощью любой из этих опций.
Нажмите Download .csv, чтобы загрузить файл учетных данных, который включает ваш я имя пользователя AM, ID ключа доступа, секретный ключ доступа.
Нажмите посылают электронное письмо, чтобы получить электронное письмо с инструкциями о том, как подписаться в Консоль управления AWS.
Скопируйте ID ключа доступа, секретный ключ доступа вручную.
Для получения дополнительной информации обо мне пользователи AM. смотрите Создание я пользователь AM в вашей учетной записи AWS и ключах доступа Управления поскольку я пользователи AM веб-сайты AWS.
Получить доступ к сервисам наземной станции на вашу учетную запись, электронное письмо aws-groundstation@amazon.com с ID NORAD, информация о лицензии FCC (см., что FCC лицензирует), и ID учетной записи AWS.
Этот рисунок показывает демонстрационное электронное письмо, чтобы получить доступ к сервису Наземной станции AWS.
Создайте пару ключей EC2 для области AWS, где вы планируете получить данные. Пара ключей EC2 используется, чтобы соединиться с вашими экземплярами EC2 для отладки и получить состояние сбора данных.
Откройте консоль Amazon EC2 в этом веб-сайте: Консоль EC2.
Кликните по списку областей на панели навигации. Для получения дополнительной информации об областях смотрите области.
Выберите Пары ключей, и затем нажмите пару ключей Create. Для получения дополнительной информации о парах ключей EC2 смотрите Создавание пары ключей с помощью веб-сайта EC2 AWS Amazon.
Задайте уникальное имя для своей пары ключей EC2 и выберите формат файла как .pem
сохранить закрытый ключ. Нажмите пару ключей Create, чтобы создать пару ключей EC2.
Пара ключей создается, и файл секретных ключей автоматически загружает на ваш PC хоста. Сохраните файл. Эта точка в процессе является единственной точкой, в которой у вас есть опция, чтобы сохранить файл секретных ключей. Если вы теряете этот файл или не сохраняете его, необходимо повторить процесс снова, чтобы создать новую пару ключей.
Создайте блок S3, который хранит собранные спутниковые данные путем выполнения этих шагов.
Откройте консоль S3 в этом веб-сайте: Консоль S3.
Выберите блок Create.
Задайте имя блока, выберите соответствующую область AWS и нажмите блок Create.
Для получения дополнительной информации смотрите Создавание вашего первого блока S3.
Загрузите и установите последний интерфейс командной строки (CLI) AWS. Для получения дополнительной информации смотрите Интерфейс командной строки AWS. Можно управлять несколькими сервисами AWS с помощью этого CLI AWS.
Сконфигурируйте CLI AWS с помощью .csv
файл, в котором вы загрузили, Создает меня пользовательский раздел AM. Этот файл содержит ваш я имя пользователя AM, ID ключа доступа AWS и секретный ключ доступа AWS.
% Specify your IAM username, (for example, IAMUserName = 'yourusername') IAMUserName = "saml"; % Provide your credentials file location % (for example, C:\Work\new_user_credentials.csv) csvCredentialsFile = fullfile ('C:','Work','new_user_credentials.csv'); HelperAWSConfig (IAMUserName,"csvFileName", csvCredentialsFile);
В качестве альтернативы, если вы используете единую точку входа (SSO) или объединенный в федерацию вход в систему, затем файл учетных данных AWS создается в директории по умолчанию. В таких случаях запустите этот код вместо этого.
HelperAWSConfig(IAMUserName);
Чтобы перечислить спутники, доступные в данной области AWS (то есть, та же область, где вы создали пару ключей EC2 в разделе Create EC2 Key Pair), запустите этот код.
% Provide the region name that you plan to use region = "us-west-2"; % List the satellites available in given region [satelliteID, groundStationName] = HelperAWSListSatellites (область);
Создайте инфраструктуру, чтобы собрать данные (такие как аренда, вычислительные ресурсы), и загрузка и работать на программном обеспечении к арендованным машинам.
Арендуйте два экземпляра EC2 (t2.micro и m5.4xlarge тип экземпляра).
Скопируйте скрипт получения и скрипты передачи данных к экземпляру EC2.
Сконфигурируйте электронную почту подписки SNS, чтобы получить уведомления на различных этапах процесса сбора данных.
Предоставьте паре ключей EC2 полный путь к файлу, имя блока S3, и уведомление по электронной почте адресует к HelperAWSDataCaptureSetup
функция помощника. Ресурсы, созданные во время этого процесса, помечены с парой значения ключа тега, которая может использоваться, чтобы отследить или управлять ресурсами. Чтобы настроить сбор данных, запустите этот код.
% AQUA satellite ID 27424 noradID = satelliteID(1); % Provide the full path of your PEM SSH key pair name that you generated in % the 'Create EC2 Key Pair' section % (for example, ec2KeyPairFile = 'C:\Work\my-ssh-key-us-west-2.pem') ec2KeyPairFile = fullfile ('C:','Work','your-ec2-key-pair-us-west-2.pem'); % Provide S3 bucket name to store the satellite data that was created in % the 'Create S3 Bucket' section, (for example, s3BucketName = 'your-s3-bucket-name') s3BucketName = "your-s3-bucket-for-us-west-2"; % Provide your email address to receive the notifications % (for example, youremail@domain.com) NotificationEmail = "yebarri@mathworks.com"; % Set up the data capture [tagKeyName, tagValueName] = HelperAWSDataCaptureSetup (noradID, ec2KeyPairFile, ... s3BucketName, NotificationEmail, область);
Во время настройки сбора данных вы получаете два запроса подтверждения подписки темы SNS от сервиса Уведомления AWS. Подтвердите подписку, чтобы получить дальнейшие уведомления.
Этот рисунок показывает демонстрационное уведомление по электронной почте от сервиса Уведомления AWS. В уведомлении по электронной почте щелкните по ссылке "Confirm subscription", чтобы получить уведомления SNS.
После того, как вы завершите настроенный сбор данных, вы получаете уведомление SNS. Этот рисунок показывает пример этого уведомления.
Проверьте наличие выбранного спутника в данной области и затем запланируйте контакт. Чтобы получить спутниковое доступное время начала и доступную длительность, запустите этот код.
% Select a ground station (for example, groundStation = 'Ohio 1') groundStation = groundStationName(1); % Lists the available contacts in the given region and ground station [contactStartTime, contactDuration] = HelperAWSListContacts (noradID, ... groundStation, tagKeyName, tagValueName, область);
Можно запланировать контакт при помощи HelperAWSScheduleContact
функция помощника этими входными параметрами.
Получите время начала: Задайте свое время начала контакта.
Длительность получения: Задайте длительность (в секундах), чтобы собрать данные.
% Provide a start time for the contact % (for example, captureStartTime ='26-Apr-2021 13:47:12') captureStartTime = contactStartTime(1); % Provide a contact duration (in seconds), making sure that the contact is available for % the given duration captureDuration = 60; % in seconds % Schedule contact. This function reserves the contact for the specified time % and captures satellite data for the specified duration. contactArn = HelperAWSScheduleContact (noradID, captureDuration, ... captureStartTime, groundStation, tagKeyName, tagValueName, область);
После планирования контакта вы получаете уведомление по электронной почте AWS относительно состояния вашего контакта. Этот рисунок показывает пример успешного резервирования контакта.
После того, как Наземная станция устанавливает контакт со спутником, вы получаете уведомления для возможных состояний контакта как PREPASS
, PASS
, POSTPASS
, COMPLETED
и FAILED
.
PREPASS
: Приблизительно 2 минуты до контакта запускаются, вы получаете уведомление по электронной почте, указывающее на предстоящую передачу. Этот рисунок показывает пример состояния контакта наземной станции, измененного на PREPASS
.
PASS
: Длительность контакта, который вы запланировали, вы получаете событие SNS, указывающее, что получающие спутниковые данные запустились. Этот рисунок показывает пример состояния контакта наземной станции, измененного на PASS
.
POSTPASS
: После одной минуты времени передачи вы получаете событие SNS, указывающее, что передача закончилась. Этот рисунок показывает пример состояния контакта наземной станции, измененного на POSTPASS
.
COMPLETED
: Когда спутниковые данные получили успешно на время получения, вы получаете событие SNS, указывающее, что контакт был завершен успешно. Этот рисунок показывает пример состояния контакта наземной станции, измененного на COMPLETED
.
FAILED
: Если какие-либо отказы происходят во время изменения состояния контакта, то вы получаете событие SNS, указывающее, что контакт перестал работать. В этом случае свяжитесь с технической поддержкой MathWorks(R). Для получения дополнительной информации смотрите Поддержку Контакта на веб-сайте MathWorks. Этот рисунок показывает пример состояния контакта наземной станции, измененного на FAILED
.
Перечислите свои запланированные контакты путем выполнения этого кода.
% List scheduled contacts
[scheduledContactList] = HelperAWSListScheduledContacts(region);
Можно отменить запланированный контакт перед запланированным временем. Прежде, чем сделать так, рассмотрите положения и условия для отмены запланированного контакта, а также связанных зарядов и оценки. Чтобы отменить запланированный контакт, не прокомментируйте и запустить этот код.
% HelperAWSCancelContact(contactArn,region);
Файлы необработанных данных (like downlinkDemodDecode___.bin
and downlinkData___.bin
) продвинуты к блоку S3. Чтобы загрузить необработанные данные с блока S3, не прокомментируйте и запустить этот код.
% % Specify the raw data file in S3 bucket % satelliteRawDataFileName = ...%_MWLCFILEREF_matlab/help/examples/satcom/win64/CaptureSatelliteDataUsingAWSGroundStationExample_26.png_MWLT__MWLCVALUE_"downlinkDemodDecode.bin"_MWLCVALUEEND_; % HelperAWSGetDataFromS3(s3BucketName,satelliteRawDataFileName);
Чтобы запланировать другой сбор данных, повторите шаги от раздела Data Capture Setup.
После того, как вы закончили собирать данные, удалению всех ресурсов рекомендуют постараться не подвергаться далее стоимости. Это действие удаляет все ресурсы, которые помечены с парой значения ключа тега. Чтобы удалить ресурсы, не прокомментируйте и запустить этот код.
% HelperAWSCleanResources(region,tagKeyName,tagValueName);
В случае дальнейших ошибок можно удалить ресурсы из Консоли управления AWS. Например, чтобы удалить Стек Формирования Облака AWS, выполните эти шаги.
На Консольном веб-сайте Формирования Облака AWS и выборе стек, чтобы удалить. Стеки, созданные в этом примере, называют с префиксным LinuxBastionStack
, DataCaptureSetupStack
, и помечены с префиксом MW_App
и SatComToolbox
.
Нажмите Actions, и затем нажмите Delete в меню, которое появляется.
Только AWS считают, пользователь root может закрыть учетную запись AWS. Для получения дополнительной информации смотрите, что закрытие вашего AWS считает веб-сайт AWS.
Во время сбора данных в запланированное время можно соединиться с экземпляром EC2 при помощи этой команды SSH и наблюдать состояние передачи данных, такое как полоса пропускания или переданные байты.
% Get the SSH command to connect to the EC2 instance
sshCommand = HelperAWSGetSSHCmd(ec2KeyPairFile,tagKeyName,tagValueName,region);
Войдите в систему к экземпляру EC2 с помощью sshCommand
видеть журналы от вашего CLI AWS. Можно отследить установку и настройку программного обеспечения на экземпляре EC2 путем проверки журналов в местоположении /var/log/user-data.log
.
Можно собрать данные от любого из этих спутников путем изменения спутникового ID NORAD в функции настройки сбора данных.
NOAA 20 JPSS 1 (NORAD ID 43013): Этот спутник был запущен в 2 017 и орбиты на высоте 825 км. Это несет пять датчиков, которые спроектированы, чтобы изучить землю и воду.
SUOMI NPP (NORAD ID 37849): Этот спутник был запущен в 2 011 и орбиты на высоте 883 км. Это несет четыре датчика, которые спроектированы, чтобы обеспечить измерения климата.
ЗЕМЛЯ (NORAD ID 25994): Этот спутник был запущен в 1 999 и орбиты на высоте 705 км. Это несет пять датчиков, которые спроектированы, чтобы изучить поверхность Земли.
Пример использует эти функции помощника:
HelperAWSConfig.m: Подайте знак CLI AWS через MATLAB путем введения I имен пользователя AM
HelperAWSListSatellites.m: Перечислите доступные спутники в области и проверках, если область имеет наземную станцию
HelperAWSDataCaptureSetup.m: Откройте оплот Linux и стеки наземной станции и затем запустите экземпляры EC2 соответственно для стеков
HelperAWSListContacts.m: Перечислите контакты, существующие в определенной области
HelperAWSScheduleContact.m: Запланируйте контакт
HelperAWSListScheduledContacts.m: Перечислите запланированные контакты
HelperAWSCancelContact.m: Отмените запланированный контакт
HelperAWSGetSSHCmd.m: Получите безопасный интерпретатор (SSH) команда к ssh в наземную станцию машина Linux
HelperAWSCleanResources.m: Уберите все стеки и неиспользованные ресурсы в области