

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)
<a name="examples.pbs-dataflow-endpoint-demod-decode"></a>

 Este ejemplo se basa en el análisis realizado en la [JPSS-1: Satélite de radiodifusión pública (PBS): evaluación](examples.md#examples.pbs-definition) sección de la guía del usuario. 

 Para completar este ejemplo, tendrá que asumir un escenario: desea capturar la ruta de comunicación del HRD 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 Direct Readout Labs de la NASA (RT-STPS e IPOPP). 

## Vías de comunicación
<a name="examples.pbs-dataflow-endpoint-demod-decode.communication-paths"></a>

 Esta sección representa [Planifique las rutas de comunicación de su flujo de datos](getting-started.step2.md) los primeros pasos. Para este ejemplo, creará dos secciones en la CloudFormation plantilla: las secciones de parámetros y recursos. 

**nota**  
 Para obtener más información sobre el contenido de una CloudFormation plantilla, consulte [las secciones de plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html). 

 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 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](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](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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html).   
 Además, **tendrás** que proporcionar el ID de AMI **específico de la región** correcto al crear la CloudFormation pila. Consulte [AWS Ground Station Imágenes de máquinas de Amazon (AMIs)](dataflows.ec2-configuration.md#dataflows.ec2-configuration.amis). 

 Los fragmentos de plantilla restantes pertenecen a la sección Recursos de la 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](getting-started.step2.md#getting-started.step2.sync-data-delivery) 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, las funciones y los perfiles adecuados para poder crear AWS Ground Station una interfaz 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
<a name="examples.pbs-dataflow-endpoint-demod-decode.configs"></a>

 Esta sección representa [Crear configuraciones](getting-started.step3.md) la guía del usuario. 

 Necesitarás una *configuración de seguimiento* para establecer tus preferencias sobre el uso del autotrack. Si se selecciona *PREFERRED* como pista automática, se puede mejorar la calidad de la señal, pero no es obligatorio para cumplir con la calidad de la señal, ya que la calidad de las efemérides del JPSS-1 es suficiente. 

```
  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-decode*configuración que represente la parte del satélite, así como una configuración de *puntos finales del flujo de datos que haga 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 y`DemodulationConfig`, consulte. `DecodeConfig` [Configuración de descodificación y desmodulación de enlace de bajada de antena](how-it-works.config.md#how-it-works.config-antenna-downlink-demod-decode) 

```
  # 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
<a name="examples.pbs-dataflow-endpoint-demod-decode.mission-profile"></a>

 Esta sección representa [Crear perfil de misión](getting-started.step4.md) 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
<a name="examples.pbs-dataflow-endpoint-demod-decode.putting-it-together"></a>

 Con los recursos anteriores, ahora puede programar los contactos del JPSS-1 para la entrega sincrónica de datos desde cualquiera de sus dispositivos integrados. AWS Ground Station [AWS Ground Station Ubicaciones](aws-ground-station-antenna-locations.md) 

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

 La CloudFormation plantilla nombrada `AquaSnppJpss.yml` está diseñada para proporcionarle un acceso rápido y empezar a recibir datos de los satélites Aqua, SNPP y JPSS-1/NOAA-20. 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 Aqua, SNPP, JPSS-1/NOAA-20 y Terra no están integrados en su cuenta, consulte. [Satélite a bordo](getting-started.step1.md) 

**nota**  
 Puede acceder a la plantilla accediendo al bucket de Amazon S3 del cliente con AWS credenciales válidas. 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 CloudFormation pila.   
 Además, en las siguientes instrucciones se utiliza YAML. Sin embargo, las plantillas están disponibles en formato YAML y JSON. Para usar JSON, reemplaza 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 .
```

 La plantilla puede verse y descargarse en la consola desde la 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 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. 
+ **EC2 Verificació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 notificaciones de SNS. 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 la AMI 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)](examples.pbs-agent.md) 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, SNPP y Terra). 
+  **Configuraciones adicionales de enlace descendente de antena: configuraciones de enlace** descendente de antena para otros satélites de transmisión pública (Aqua, SNPP y Terra). 

 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 puerto UDP 50000 en el adaptador de bucle invertido de la instancia del receptor. Para obtener más información sobre la configuración de un grupo de puntos finales de flujo de datos, consulte. [ AWS::GroundStation::DataflowEndpointGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html) 