Satélite de transmisión pública que utiliza un punto final de flujo de datos (demodulado y decodificado) - AWS Ground Station

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Satélite de transmisión pública que utiliza un punto final de flujo de datos (demodulado y decodificado)

Este ejemplo se basa en el análisis realizado en la JPSS-1 - Satélite de transmisión pública (PBS) - Evaluación sección de la guía del usuario.

Para completar este ejemplo, tendrá que asumir un escenario: desea capturar la ruta de HRD comunicación como datos de transmisión directa desmodulados y decodificados mediante un punto final de flujo de datos. Este ejemplo es un buen punto de partida si planea procesar los datos con el software NASA Direct Readout Labs (RT- and). STPS IPOPP

Vías de comunicación

Esta sección representa Paso 2: Planifique las rutas de comunicación de su flujo de datos los primeros pasos. Para este ejemplo, creará dos secciones en la AWS CloudFormation plantilla: las secciones de parámetros y recursos.

nota

Para obtener más información sobre el contenido de una AWS CloudFormation plantilla, consulte las secciones de plantillas.

Para la sección de parámetros, va a añadir los siguientes parámetros. Especificará sus valores al crear la pila a través de la AWS CloudFormation consola.

Parameters: EC2Key: Description: The SSH key used to access the EC2 receiver instance. Choose any SSH key if you are not creating an EC2 receiver instance. For instructions on how to create an SSH key see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html Type: AWS::EC2::KeyPair::KeyName ConstraintDescription: must be the name of an existing EC2 KeyPair. ReceiverAMI: Description: The Ground Station DDX AMI ID you want to use. Please note that AMIs are region specific. For instructions on how to retrieve an AMI see https://docs.aws.amazon.com/ground-station/latest/ug/dataflows.ec2-configuration.html#dataflows.ec2-configuration.amis Type: AWS::EC2::Image::Id
nota

Debe crear un key pair y proporcionar el nombre del EC2 EC2Key parámetro Amazon. Consulta Crear un key pair para tu EC2 instancia de Amazon.

Además, tendrás que proporcionar el AMI ID específico de la región correcto al crear la AWS CloudFormation pila. Consulte AWS Ground Station Imágenes de máquinas de Amazon (AMIs).

Los fragmentos de plantilla restantes pertenecen a la sección Recursos de la AWS CloudFormation plantilla.

Resources: # Resources that you would like to create should be placed within the resource section.

Dado nuestro escenario de entregar una única ruta de comunicación a una EC2 instancia, tendrás una única ruta de entrega sincrónica. Según la Entrega de datos sincrónica sección, debe instalar y configurar una EC2 instancia de Amazon con una aplicación de punto final de flujo de datos y crear uno o más grupos de puntos de enlace de flujo de datos.

# The EC2 instance that will send/receive data to/from your satellite using AWS Ground Station. ReceiverInstance: Type: AWS::EC2::Instance Properties: DisableApiTermination: false IamInstanceProfile: !Ref GeneralInstanceProfile ImageId: !Ref ReceiverAMI InstanceType: m5.4xlarge KeyName: !Ref EC2Key Monitoring: true PlacementGroupName: !Ref ClusterPlacementGroup SecurityGroupIds: - Ref: InstanceSecurityGroup SubnetId: !Ref ReceiverSubnet BlockDeviceMappings: - DeviceName: /dev/xvda Ebs: VolumeType: gp2 VolumeSize: 40 Tags: - Key: Name Value: !Join [ "-" , [ "Receiver" , !Ref "AWS::StackName" ] ] UserData: Fn::Base64: | #!/bin/bash exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 echo `date +'%F %R:%S'` "INFO: Logging Setup" >&2 GROUND_STATION_DIR="/opt/aws/groundstation" GROUND_STATION_BIN_DIR="${GROUND_STATION_DIR}/bin" STREAM_CONFIG_PATH="${GROUND_STATION_DIR}/customer_stream_config.json" echo "Creating ${STREAM_CONFIG_PATH}" cat << STREAM_CONFIG > "${STREAM_CONFIG_PATH}" { "ddx_streams": [ { "streamName": "Downlink", "maximumWanRate": 4000000000, "lanConfigDevice": "lo", "lanConfigPort": 50000, "wanConfigDevice": "eth1", "wanConfigPort": 55888, "isUplink": false } ] } STREAM_CONFIG echo "Waiting for dataflow endpoint application to start" while netstat -lnt | awk '$4 ~ /:80$/ {exit 1}'; do sleep 10; done echo "Configuring dataflow endpoint application streams" python "${GROUND_STATION_BIN_DIR}/configure_streams.py" --configFileName "${STREAM_CONFIG_PATH}" sleep 2 python "${GROUND_STATION_BIN_DIR}/save_default_config.py" exit 0
# The AWS Ground Station Dataflow Endpoint Group that defines the endpoints that AWS Ground # Station will use to send/receive data to/from your satellite. DataflowEndpointGroup: Type: AWS::GroundStation::DataflowEndpointGroup Properties: ContactPostPassDurationSeconds: 180 ContactPrePassDurationSeconds: 120 EndpointDetails: - Endpoint: Name: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ] # needs to match DataflowEndpointConfig name Address: Name: !GetAtt ReceiverInstanceNetworkInterface.PrimaryPrivateIpAddress Port: 55888 SecurityDetails: SecurityGroupIds: - Ref: "DataflowEndpointSecurityGroup" SubnetIds: - !Ref ReceiverSubnet RoleArn: !GetAtt DataDeliveryServiceRole.Arn # The security group that the ENI created by AWS Ground Station belongs to. DataflowEndpointSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Security Group for AWS Ground Station registration of Dataflow Endpoint Groups VpcId: !Ref ReceiverVPC SecurityGroupEgress: - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 10.0.0.0/8 Description: "AWS Ground Station Downlink Stream To 10/8" - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 172.16.0.0/12 Description: "AWS Ground Station Downlink Stream To 172.16/12" - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 192.168.0.0/16 Description: "AWS Ground Station Downlink Stream To 192.168/16" # The placement group in which your EC2 instance is placed. ClusterPlacementGroup: Type: AWS::EC2::PlacementGroup Properties: Strategy: cluster # The security group for your EC2 instance. InstanceSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: AWS Ground Station receiver instance security group. VpcId: !Ref ReceiverVPC SecurityGroupIngress: # To allow SSH access to the instance, add another rule allowing tcp port 22 from your CidrIp - IpProtocol: udp FromPort: 55888 ToPort: 55888 SourceSecurityGroupId: !Ref DataflowEndpointSecurityGroup Description: "AWS Ground Station Downlink Stream" ReceiverVPC: Type: AWS::EC2::VPC Properties: CidrBlock: "10.0.0.0/16" Tags: - Key: "Name" Value: "AWS Ground Station - PBS to dataflow endpoint Demod Decode Example VPC" - Key: "Description" Value: "VPC for EC2 instance receiving AWS Ground Station data" ReceiverSubnet: Type: AWS::EC2::Subnet Properties: CidrBlock: "10.0.0.0/24" Tags: - Key: "Name" Value: "AWS Ground Station - PBS to dataflow endpoint Demod Decode Example Subnet" - Key: "Description" Value: "Subnet for EC2 instance receiving AWS Ground Station data" VpcId: !Ref ReceiverVPC # An ENI providing a fixed IP address for AWS Ground Station to connect to. ReceiverInstanceNetworkInterface: Type: AWS::EC2::NetworkInterface Properties: Description: Floating network interface providing a fixed IP address for AWS Ground Station to connect to. GroupSet: - !Ref InstanceSecurityGroup SubnetId: !Ref ReceiverSubnet # Attach the ENI to the EC2 instance. ReceiverInstanceInterfaceAttachment: Type: AWS::EC2::NetworkInterfaceAttachment Properties: DeleteOnTermination: false DeviceIndex: "1" InstanceId: !Ref ReceiverInstance NetworkInterfaceId: !Ref ReceiverInstanceNetworkInterface # The instance profile for your EC2 instance. GeneralInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref InstanceRole

También necesitará las políticas, los roles y los perfiles adecuados AWS Ground Station para poder crear una interface de red elástica (ENI) en su cuenta.

# AWS Ground Station assumes this role to create/delete ENIs in your account in order to stream data. DataDeliveryServiceRole: Type: AWS::IAM::Role Properties: Policies: - PolicyDocument: Statement: - Action: - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:CreateNetworkInterfacePermission - ec2:DeleteNetworkInterfacePermission - ec2:DescribeSubnets - ec2:DescribeVpcs - ec2:DescribeSecurityGroups Effect: Allow Resource: '*' Version: '2012-10-17' PolicyName: DataDeliveryServicePolicy AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - groundstation.amazonaws.com Action: - sts:AssumeRole # The EC2 instance assumes this role. InstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "ec2.amazonaws.com" Action: - "sts:AssumeRole" Path: "/" ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy - arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

AWS Ground Station configuraciones

Esta sección representa Paso 3: Crear configuraciones la guía del usuario.

Necesitarás una configuración de seguimiento para establecer tus preferencias sobre el uso del autotrack. Si PREFERREDse selecciona la opción de seguimiento automático, se puede mejorar la calidad de la señal, pero no es obligatorio cumplir con la calidad de la señal, ya que la calidad de las efemérides es suficienteJPSS.

TrackingConfig: Type: AWS::GroundStation::Config Properties: Name: "JPSS Tracking Config" ConfigData: TrackingConfig: Autotrack: "PREFERRED"

En función de la ruta de comunicación, tendrá que definir una antenna-downlink-demod-decodeconfiguración que represente la parte del satélite, así como una configuración de puntos finales del flujo de datos para hacer referencia al grupo de puntos finales del flujo de datos que define los detalles de los puntos finales.

nota

Para obtener más información sobre cómo configurar los valores de yDemodulationConfig, consulte. DecodeConfig Configuración de descodificación y desmodulación de enlace de bajada de antena

# The AWS Ground Station Antenna Downlink Config that defines the frequency spectrum used to # downlink data from your satellite. JpssDownlinkDemodDecodeAntennaConfig: Type: AWS::GroundStation::Config Properties: Name: "JPSS Downlink Demod Decode Antenna Config" ConfigData: AntennaDownlinkDemodDecodeConfig: SpectrumConfig: CenterFrequency: Value: 7812 Units: "MHz" Polarization: "RIGHT_HAND" Bandwidth: Value: 30 Units: "MHz" DemodulationConfig: UnvalidatedJSON: '{ "type":"QPSK", "qpsk":{ "carrierFrequencyRecovery":{ "centerFrequency":{ "value":7812, "units":"MHz" }, "range":{ "value":250, "units":"kHz" } }, "symbolTimingRecovery":{ "symbolRate":{ "value":15, "units":"Msps" }, "range":{ "value":0.75, "units":"ksps" }, "matchedFilter":{ "type":"ROOT_RAISED_COSINE", "rolloffFactor":0.5 } } } }' DecodeConfig: UnvalidatedJSON: '{ "edges":[ { "from":"I-Ingress", "to":"IQ-Recombiner" }, { "from":"Q-Ingress", "to":"IQ-Recombiner" }, { "from":"IQ-Recombiner", "to":"CcsdsViterbiDecoder" }, { "from":"CcsdsViterbiDecoder", "to":"NrzmDecoder" }, { "from":"NrzmDecoder", "to":"UncodedFramesEgress" } ], "nodeConfigs":{ "I-Ingress":{ "type":"CODED_SYMBOLS_INGRESS", "codedSymbolsIngress":{ "source":"I" } }, "Q-Ingress":{ "type":"CODED_SYMBOLS_INGRESS", "codedSymbolsIngress":{ "source":"Q" } }, "IQ-Recombiner":{ "type":"IQ_RECOMBINER" }, "CcsdsViterbiDecoder":{ "type":"CCSDS_171_133_VITERBI_DECODER", "ccsds171133ViterbiDecoder":{ "codeRate":"ONE_HALF" } }, "NrzmDecoder":{ "type":"NRZ_M_DECODER" }, "UncodedFramesEgress":{ "type":"UNCODED_FRAMES_EGRESS" } } }'
# The AWS Ground Station Dataflow Endpoint Config that defines the endpoint used to downlink data # from your satellite. DownlinkDemodDecodeEndpointConfig: Type: AWS::GroundStation::Config Properties: Name: "Aqua SNPP JPSS Downlink Demod Decode Endpoint Config" ConfigData: DataflowEndpointConfig: DataflowEndpointName: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ] DataflowEndpointRegion: !Ref AWS::Region

AWS Ground Station perfil de la misión

Esta sección representa Paso 4: Crear un perfil de misión la guía del usuario.

Ahora que tiene las configuraciones asociadas, puede usarlas para construir el flujo de datos. Utilizará los valores predeterminados para el resto de los parámetros.

# The AWS Ground Station Mission Profile that groups the above configurations to define how to # uplink and downlink data to your satellite. SnppJpssMissionProfile: Type: AWS::GroundStation::MissionProfile Properties: Name: "37849 SNPP And 43013 JPSS" ContactPrePassDurationSeconds: 120 ContactPostPassDurationSeconds: 60 MinimumViableContactDurationSeconds: 180 TrackingConfigArn: !Ref TrackingConfig DataflowEdges: - Source: !Join [ "/", [ !Ref JpssDownlinkDemodDecodeAntennaConfig, "UncodedFramesEgress" ] ] Destination: !Ref DownlinkDemodDecodeEndpointConfig

Poniéndolo todo junto

Con los recursos anteriores, ahora puedes programar JPSS -1 contactos para la entrega sincrónica de datos desde cualquiera de tus contactos incorporados. AWS Ground Station AWS Ground Station Ubicaciones

La siguiente es una AWS CloudFormation plantilla completa que incluye todos los recursos descritos en esta sección combinados en una sola plantilla que se puede utilizar directamente. AWS CloudFormation

La AWS CloudFormation plantilla nombrada AquaSnppJpss.yml está diseñada para proporcionarle un acceso rápido y empezar a recibir datos de los satélites Aqua y JPSS -1/ NOAA -20. SNPP Contiene una EC2 instancia de Amazon y los AWS Ground Station recursos necesarios para programar contactos y recibir datos de transmisión directa desmodulados y decodificados.

Si AquaSNPP, JPSS -1/ NOAA -20 y Terra no están integrados en su cuenta, consulte. Paso 1: satélite a bordo

nota

Puede acceder a la plantilla accediendo al bucket de Amazon S3 que está incorporando el cliente. Los enlaces que aparecen a continuación utilizan un bucket regional de Amazon S3. Cambie el código de us-west-2 región para que represente la región correspondiente en la que desea crear la AWS CloudFormation pila.

Además, se utilizan las siguientes instruccionesYAML. Sin embargo, las plantillas están disponibles en ambos YAML JSON formatos. Para utilizarlaJSON, sustituya la extensión del .yml archivo por la extensión .json al descargar la plantilla.

Para descargar la plantilla mediante AWS CLI, utilice el siguiente comando:

aws s3 cp s3://groundstation-cloudformation-templates-us-west-2/AquaSnppJpss.yml .

Puede ver y descargar la plantilla en la consola navegando hasta lo siguiente URL en su navegador:

https://s3.console.aws.amazon.com/s3/object/groundstation-cloudformation-templates-us-west-2/AquaSnppJpss.yml

Puede especificar la plantilla directamente en AWS CloudFormation el siguiente enlace:

https://groundstation-cloudformation-templates-us-west-2.s3.us-west-2.amazonaws.com/AquaSnppJpss.yml

¿Qué recursos adicionales define la plantilla?

La AquaSnppJpss plantilla incluye los siguientes recursos adicionales:

  • (Opcional) Activadores de CloudWatch eventos: AWS Lambda función que se activa mediante CloudWatch eventos enviados AWS Ground Station antes y después de un contacto. La AWS Lambda función iniciará y, opcionalmente, detendrá la instancia de Receiver.

  • EC2Verificación de contactos (opcional): la opción de usar Lambda para configurar un sistema de verificación de las EC2 instancias de Amazon para los contactos con SNS notificaciones. Es importante tener en cuenta que esto puede conllevar gastos en función del uso actual.

  • Ground Station Amazon Machine Image Retrieval Lambda: la opción de seleccionar el software que se instalará en la instancia y AMI el que prefiera. Las opciones de software incluyen DDX 2.6.2 Only y DDX 2.6.2 with qRadio 3.6.0. Si desea utilizar la entrega de datos DigiF de banda ancha y el AWS Ground Station agente, consulte. Satélite de transmisión pública que utiliza AWS Ground Station Agent (banda ancha) Estas opciones seguirán ampliándose a medida que se publiquen actualizaciones y características adicionales del software.

  • Perfiles de misión adicionales: perfiles de misión para otros satélites de transmisión pública (Aqua y SNPP Terra).

  • Configuraciones adicionales de enlace descendente de antena: configuraciones de enlace descendente de antena para otros satélites de transmisión pública (Aqua y Terra). SNPP

Los valores y parámetros de los satélites de esta plantilla ya se han rellenado. Estos parámetros facilitan su uso inmediato con estos satélites. AWS Ground Station No necesita configurar sus propios valores para utilizarlos AWS Ground Station cuando utilice esta plantilla. Sin embargo, puede personalizar los valores para que la plantilla funcione para su caso de uso.

¿Dónde recibo los datos?

El grupo de puntos de enlace del flujo de datos se configura para que se utilice la interfaz de red de la instancia del receptor que crea parte de la plantilla. La instancia receptora utiliza una aplicación de punto final del flujo de datos para recibir el flujo de datos desde el puerto definido por AWS Ground Station el punto final del flujo de datos. Una vez recibidos, los datos están disponibles para su consumo a través del UDP puerto 50000 del adaptador de bucle invertido de la instancia receptora. Para obtener más información sobre la configuración de un grupo de puntos finales de flujo de datos, consulte Grupo. AWS::GroundStation::DataflowEndpoint