

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Satélite de transmissão pública utilizando um endpoint de fluxo de dados (demodulado e decodificado)
<a name="examples.pbs-dataflow-endpoint-demod-decode"></a>

 Este exemplo se baseia na análise feita na [JPSS-1 - Satélite de transmissão pública (PBS) - Avaliação](examples.md#examples.pbs-definition) seção do guia do usuário. 

 Para concluir este exemplo, você precisará assumir um cenário: você deseja capturar o caminho de comunicação do HRD como dados de transmissão direta demodulados e decodificados usando um endpoint de fluxo de dados. Este exemplo é um bom ponto de partida se você planeja processar os dados usando o software NASA Direct Readout Labs (RT-STPS e IPOPP). 

## Caminhos de comunicação
<a name="examples.pbs-dataflow-endpoint-demod-decode.communication-paths"></a>

 Esta seção representa [Planeje seus caminhos de comunicação de fluxo de dados](getting-started.step2.md) como começar. Neste exemplo, você criará duas seções em seu CloudFormation modelo: seções de parâmetros e recursos. 

**nota**  
 Para obter mais informações sobre o conteúdo de um CloudFormation modelo, consulte [as seções Modelo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html). 

 Para a seção Parâmetros, você adicionará os seguintes parâmetros. Você especificará valores para eles ao criar a pilha por meio do CloudFormation console. 

```
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**  
 Você **precisa** criar um par de chaves e fornecer o nome para o EC2 `EC2Key` parâmetro da Amazon. Consulte [Criar um par de chaves para sua EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html).   
 Além disso, você **precisará** fornecer a ID de AMI **específica da região** correta ao criar a CloudFormation pilha. Consulte [AWS Ground Station Imagens de máquinas da Amazon (AMIs)](dataflows.ec2-configuration.md#dataflows.ec2-configuration.amis). 

 Os trechos de modelo restantes pertencem à seção Recursos do CloudFormation modelo. 

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

 Dado nosso cenário para fornecer um único caminho de comunicação para uma EC2 instância, você terá um único caminho de entrega síncrono. De acordo com a [Entrega síncrona de dados](getting-started.step2.md#getting-started.step2.sync-data-delivery) seção, você deve instalar e configurar uma EC2 instância da Amazon com um aplicativo de endpoint de fluxo de dados e criar um ou mais grupos de endpoints de fluxo de dados. 

```
  # 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
```

 Você também precisará das políticas, funções e perfis apropriados para permitir AWS Ground Station a criação de uma interface de rede elástica (ENI) em sua conta. 

```
  # 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 configurações
<a name="examples.pbs-dataflow-endpoint-demod-decode.configs"></a>

 Esta seção representa [Crie configurações](getting-started.step3.md) o guia do usuário. 

 Você precisará de uma *configuração de rastreamento para definir sua preferência de* uso do autotrack. Selecionar *PREFERRED* como trilha automática pode melhorar a qualidade do sinal, mas não é necessário atender à qualidade do sinal devido à qualidade suficiente das efemérides JPSS-1. 

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

 Com base no caminho de comunicação, você precisará definir uma *antenna-downlink-demod-decode*configuração para representar a parte do satélite, bem como uma configuração de endpoint de fluxo de *dados para se referir ao grupo de endpoints* de fluxo de dados que define os detalhes do endpoint. 

**nota**  
 Para obter detalhes sobre como definir os valores para`DemodulationConfig`, e`DecodeConfig`, consulte[Configuração de decodificação de demodulação de downlink 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 da missão
<a name="examples.pbs-dataflow-endpoint-demod-decode.mission-profile"></a>

 Esta seção representa [Criar perfil de missão](getting-started.step4.md) o guia do usuário. 

 Agora que você tem as configurações associadas, pode usá-las para criar o fluxo de dados. Você usará os padrões para os demais 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
```

## Juntando tudo
<a name="examples.pbs-dataflow-endpoint-demod-decode.putting-it-together"></a>

 Com os recursos acima, agora você tem a capacidade de agendar contatos JPSS-1 para entrega síncrona de dados a partir de qualquer um dos seus contatos integrados. AWS Ground Station [AWS Ground Station Localizações](aws-ground-station-antenna-locations.md) 

 A seguir está um CloudFormation modelo completo que inclui todos os recursos descritos nesta seção combinados em um único modelo que pode ser usado diretamente em CloudFormation. 

 O CloudFormation modelo nomeado foi `AquaSnppJpss.yml` projetado para fornecer acesso rápido para começar a receber dados dos satélites Aqua, SNPP e JPSS-1/NOAA-20. Ele contém uma EC2 instância da Amazon e os AWS Ground Station recursos necessários para agendar contatos e receber dados de transmissão direta demodulados e decodificados. 

 Se Aqua, SNPP, JPSS-1/NOAA-20 e Terra não estiverem integrados à sua conta, consulte. [Satélite a bordo](getting-started.step1.md) 

**nota**  
 Você pode acessar o modelo acessando o bucket Amazon S3 de integração do cliente usando AWS credenciais válidas. Os links abaixo usam um bucket regional do Amazon S3. Altere o código da `us-west-2` região para representar a região correspondente na qual você deseja criar a CloudFormation pilha.   
 Além disso, as instruções a seguir usam YAML. No entanto, os modelos estão disponíveis no formato YAML ou JSON. Para usar o JSON, substitua a extensão do `.yml` arquivo por `.json` ao baixar o modelo. 

 Para baixar o modelo usando AWS CLI, use o seguinte comando: 

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

 É possível visualizar e fazer download do modelo no console navegando até o seguinte URL no seu navegador: 

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

 Você pode especificar o modelo diretamente CloudFormation usando o seguinte link: 

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

**Quais recursos adicionais o modelo define?**

O `AquaSnppJpss` modelo inclui os seguintes recursos adicionais:
+ (Opcional) **Acionadores de CloudWatch eventos** - AWS Lambda Função que é acionada usando CloudWatch eventos enviados AWS Ground Station antes e depois de um contato. A AWS Lambda função iniciará e, opcionalmente, interromperá sua instância receptora. 
+ (Opcional) **EC2 Verificação de contatos** - A opção de usar o Lambda para configurar um sistema de verificação de suas EC2 instâncias da Amazon para contatos com notificação do SNS. É importante observar que isso pode incorrer em cobranças, dependendo do seu uso atual. 
+  **Ground Station Amazon Machine Image Retrieval Lambda**: a opção de selecionar qual software está instalado em sua instância e a AMI de sua escolha. As opções de software incluem `DDX 2.6.2 Only` e `DDX 2.6.2 with qRadio 3.6.0`. Se você quiser usar o DigiF Data Delivery de banda larga e o AWS Ground Station Agent, consulte. [Satélite de transmissão pública utilizando AWS Ground Station Agent (banda larga)](examples.pbs-agent.md) Essas opções continuarão a se expandir à medida que atualizações e recursos adicionais de software forem lançados. 
+  **Perfis de missão adicionais** - Perfis de missão para satélites de transmissão pública adicionais (Aqua, SNPP e Terra). 
+  Configurações **adicionais de downlink de antena - Configurações de downlink** de antena para satélites de transmissão pública adicionais (Aqua, SNPP e Terra). 

 Os valores e os parâmetros dos satélites nesse modelo já estão preenchidos. Esses parâmetros facilitam o uso AWS Ground Station imediato desses satélites. Você não precisa configurar seus próprios valores para usá-los AWS Ground Station ao usar esse modelo. No entanto, é possível personalizar os valores para que o modelo funcione para seu caso de uso. 

 **Onde recebo os meus dados?** 

 O grupo de endpoints do fluxo de dados é configurado para usar a interface de rede da instância do receptor que parte do modelo cria. A instância receptora usa um aplicativo de endpoint de fluxo de dados para receber o stream de dados da AWS Ground Station porta definida pelo endpoint de fluxo de dados. Após serem recebidos, os dados estarão disponíveis para consumo por meio da porta UDP 50000 no adaptador de loopback da instância do receptor. Para obter mais informações sobre como configurar um grupo de endpoints de fluxo de dados, consulte. [ AWS::GroundStation::DataflowEndpointGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html) 