

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データのプロパティを定義する
<a name="asset-properties"></a>

アセットプロパティは、アセットデータを含む各アセット内の構造です。アセットプロパティには、次の型があります。
+ **[Attributes]** (属性) – デバイスの製造元や地理的なリージョンなど、一般的に静的なプロパティを持つアセット。詳細については、「[静的データ (属性) を定義する](attributes.md)」を参照してください。
+ **[測定値]** - タイムスタンプ付きの回転速度値や摂氏のタイムスタンプ付きの温度値など、アセットの raw デバイスのセンサーデータストリーム。測定は、データストリームエイリアスによって定義されます。詳細については、「[機器からのデータストリームを定義する (測定値)](measurements.md)」を参照してください。
+ **[Transforms]** (変換) - タイムスタンプ付き華氏温度値など、アセットの変換された時系列値。変換は、式とその式で使用する変数によって定義されます。詳細については、「[データを変換する (変換)](transforms.md)」を参照してください。
+ **[Metrics]** (メトリクス) - 時間当たりの平均温度など、指定した時間間隔で集計されたアセットのデータ。メトリクスは、時間間隔、式、およびその式で使用する変数によって定義されます。メトリック表現は、関連するアセットのメトリクスプロパティを入力できるため、オペレーションまたはオペレーションのサブセットを表すメトリックをコンピューティングすることができます。詳細については、「[プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md)」を参照してください。

詳細については、「[でアセットモデルを作成する AWS IoT SiteWise](create-asset-models.md)」を参照してください。

測定、変換、およびメトリクスを使用して、総合設備効率 (OEE) をコンピューティングする方法の例については、「[で OEE を計算する AWS IoT SiteWise](calculate-oee.md)」を参照してください。

**Topics**
+ [静的データ (属性) を定義する](attributes.md)
+ [機器からのデータストリームを定義する (測定値)](measurements.md)
+ [データを変換する (変換)](transforms.md)
+ [プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md)
+ [数式を使用する](formula-expressions.md)

# 静的データ (属性) を定義する
<a name="attributes"></a>

アセット属性は、デバイスの製造元や地理的位置など、一般的に静的な情報を表します。アセットモデルから作成する各アセットには、このモデルの属性が含まれています。

**Topics**
+ [属性を定義する (コンソール)](#define-attributes-console)
+ [属性を定義する (AWS CLI)](#define-attributes-cli)

## 属性を定義する (コンソール)
<a name="define-attributes-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルの属性を定義するときは、次のパラメータを指定します。
+ <a name="asset-property-name-console"></a>**[Name]** (名前) - プロパティの名前。
+ **[Default value]** (デフォルト値) –(オプション) この属性のデフォルト値。モデルから作成されたアセットには、 属性のこの値があります。モデルから作成されたアセットのデフォルト値を上書きする方法の詳細については、「[属性値を更新する](update-attribute-values.md)」を参照してください。
+ <a name="asset-property-data-type-console"></a>**[Data type]** (データ型) - プロパティのデータ型で、次のいずれかになります。
  + **[String]** (文字列) – 最大 1024 バイトの文字列。
  + **[Integer]** (整数) - [-2,147,483,648, 2,147,483,647] の範囲を持つ 32 ビットの符合付き整数。
  + **[Double]** (倍) – [-10^100、10^100] の範囲および IEEE 754 倍精度の浮動小数点数。
  + **[Boolean]** (ブール値) - `true` または `false`。
+ **外部 ID** – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

詳細については、「[アセットモデルを作成する (コンソール)](create-asset-models.md#create-asset-model-console)」を参照してください。

## 属性を定義する (AWS CLI)
<a name="define-attributes-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルの属性を定義する場合は、次のパラメータを指定します。
+ <a name="asset-property-name-cli"></a>`name` - プロパティの名前。
+ `defaultValue` -(オプション) この属性のデフォルト値。モデルから作成されたアセットには、 属性のこの値があります。モデルから作成されたアセットのデフォルト値を上書きする方法の詳細については、「[属性値を更新する](update-attribute-values.md)」を参照してください。
+ <a name="asset-property-data-type-cli"></a>`dataType` - プロパティのデータ型。次のいずれかです。
  + `STRING` - 最大 1024 バイトの文字列。
  + `INTEGER` - [-2,147,483,648, 2,147,483,647] の範囲を持つ 32 ビットの符合付き整数。
  + `DOUBLE` - [-10 ^ 100、10 ^ 100] の範囲および IEEE 754 倍精度の浮動小数点数。
  + `BOOLEAN` – `true` または `false`
+ `externalId` – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

**Example 属性定義の例**  
次の例では、デフォルト値でアセットのモデル番号を表す属性を示します。このオブジェクトは、[[Attribute]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Attribute.html) (属性) を含む [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例である。このオブジェクトを[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、属性プロパティを作成できます。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  

```
{
...
"assetModelProperties": [
{
  "name": "Model number",
  "dataType": "STRING",
  "type": {
    "attribute": {
      "defaultValue": "BLT123"
    }
  }
}
],
...
}
```

# 機器からのデータストリームを定義する (測定値)
<a name="measurements"></a>

測定値は、タイムスタンプ付き温度値やタイムスタンプ付きの 1 分あたりの回転数 (RPM) 値など、デバイスの raw センサーデータストリームを表します。

**Topics**
+ [測定値を定義する (コンソール)](#define-measurements-console)
+ [測定値を定義する (AWS CLI)](#define-measurements-cli)

## 測定値を定義する (コンソール)
<a name="define-measurements-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルの測定を定義するときは、次のパラメータを指定します。
+ <a name="asset-property-name-console"></a>**[Name]** (名前) - プロパティの名前。
+ <a name="asset-property-unit-console"></a>**[Unit]** (単位) - プロパティの科学単位 (mm、摂氏など)。
+ <a name="asset-property-data-type-console"></a>**[Data type]** (データ型) - プロパティのデータ型で、次のいずれかになります。
  + **[String]** (文字列) – 最大 1024 バイトの文字列。
  + **[Integer]** (整数) - [-2,147,483,648, 2,147,483,647] の範囲を持つ 32 ビットの符合付き整数。
  + **[Double]** (倍) – [-10^100、10^100] の範囲および IEEE 754 倍精度の浮動小数点数。
  + **[Boolean]** (ブール値) - `true` または `false`。
+ **外部 ID** – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

詳細については、「[アセットモデルを作成する (コンソール)](create-asset-models.md#create-asset-model-console)」を参照してください。

## 測定値を定義する (AWS CLI)
<a name="define-measurements-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルの測定値を定義する場合は、次のパラメータを指定します。
+ <a name="asset-property-name-cli"></a>`name` - プロパティの名前。
+ <a name="asset-property-data-type-cli"></a>`dataType` - プロパティのデータ型。次のいずれかです。
  + `STRING` - 最大 1024 バイトの文字列。
  + `INTEGER` - [-2,147,483,648, 2,147,483,647] の範囲を持つ 32 ビットの符合付き整数。
  + `DOUBLE` - [-10 ^ 100、10 ^ 100] の範囲および IEEE 754 倍精度の浮動小数点数。
  + `BOOLEAN` – `true` または `false`
+ <a name="asset-property-unit-cli"></a>`unit` –(オプション) プロパティの科学単位 (mm、摂氏など)。
+ `externalId` – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

**Example 測定値の定義の例**  
次の例は、アセットの温度センサーの読み取り値を表す測定値を示しています。このオブジェクトは、[[Measurement]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Measurement.html) (測定値) を含む[AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例である。このオブジェクトを[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、測定プロパティを作成できます。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  
アセットモデルを定義するときは、[[Measurement]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Measurement.html) (測定値) は空の構造になります。これは、後で各アセットが一意のデバイスデータストリームを使用するように設定するためです。アセットの測定プロパティをデバイスのセンサーデータストリームに接続する方法の詳細については、「[のデータストリームを管理する AWS IoT SiteWise](manage-data-streams.md)」を参照してください。  

```
{
      ...
      "assetModelProperties": [
      {
          "name": "Temperature C",
          "dataType": "DOUBLE",
          "type": {
              "measurement": {}
          },
          "unit": "Celsius"
      }
  ],
      ...
}
```

# データを変換する (変換)
<a name="transforms"></a>

変換は、アセットプロパティのデータポイントを別のフォームにマッピングする数式です。変換式は、アセットプロパティ変数、リテラル、演算子、関数で構成されます。変換されたデータポイントは、入力データポイントと one-to-one の関係を保持します。 は、入力プロパティが新しいデータポイントを受信するたびに、新しい変換されたデータポイントを AWS IoT SiteWise 計算します。

**注記**  
同じタイムスタンプを持つプロパティ更新の場合、出力値は他の受信プロパティからの更新によって上書きされる可能性があります。

たとえば、アセットに単位が摂氏の名前 `Temperature_C` の温度測定ストリームがある場合、数式 `Temperature_F = 9/5 * Temperature_C + 32` を使用して各データポイントを華氏に変換できます。が`Temperature_C`測定ストリームでデータポイント AWS IoT SiteWise を受信するたびに、対応する`Temperature_F`値は数秒以内に計算され、 `Temperature_F`プロパティとして使用できます。

変換に複数の変数が含まれる場合、先に到着したデータポイントからすぐにコンピューティングが開始されます。例えば、ある部品メーカーが製品の品質をモニタリングするためにトランスを使用する場合を考えてみましょう。部品の種類によって異なる基準を用いて、メーカーは次のような測定値で工程を表現しています。
+ `Part_Number` - 部品のタイプを識別する文字列。
+ `Good_Count` - 部品が規格に適合している場合、1 だけ増加する整数。
+ `Bad_Count` - 部品が規格に適合しない場合、1 だけ増加する整数。

また、メーカーは `Quality_Monitor` に等しい変換 ` if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")` を作成します。

この変換は、特定の部品型で生産された不良部品の割合をモニタリングします。部品番号がBLT123で、不良部品の割合が10％ (0.1) を超える場合、変換は `"Caution"` を返します。そうでない場合は、変換は `"Normal"` を返します。

**注記**  
`Part_Number` が他の測定値より先に新しいデータポイントを受信した場合、N`Quality_Monitor`変換は新しい `Part_Number` 値と最新の `Good_Count` および `Bad_Count` 値を使用します。エラーを回避するため、次の製造の前に `Good_Count`、 `Bad_Count` をリセットしてください。
すべての変数が新しいデータポイントを受け取った後にのみ式を評価したい場合は、[[metrics]](metrics.md) (メトリクス) を使用します。

**Topics**
+ [変換を定義する (コンソール)](#define-transforms-console)
+ [変換を定義する (AWS CLI)](#define-transform-cli)

## 変換を定義する (コンソール)
<a name="define-transforms-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルの変換を定義するときは、次のパラメータを指定します。
+ <a name="asset-property-name-console"></a>**[Name]** (名前) - プロパティの名前。
+ <a name="asset-property-unit-console"></a>**[Unit]** (単位) - プロパティの科学単位 (mm、摂氏など)。
+ **[Data type]** (データ型) - 変換のデータ型で、**[Double]** (倍) または **[String]** (文字列) です。
+ **外部 ID** – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ **[Formula]** (コンピューティング式) – 変換式。変換式では、集計関数や一時関数は使用できません。オートコンプリート機能を開くには、入力を開始するか、下矢印キーを押します。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
**重要**  <a name="transform-input-rules"></a>
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、`0` (false) 、`1` (true) に変換されます。  
変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値では、変換の更新は開始されません。アセットプロパティデータの API オペレーションのリクエストレートは、変換計算の結果にも適用されます。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。

詳細については、「[アセットモデルを作成する (コンソール)](create-asset-models.md#create-asset-model-console)」を参照してください。

## 変換を定義する (AWS CLI)
<a name="define-transform-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルの変換を定義する場合は、次のパラメータを指定します。
+ <a name="asset-property-name-cli"></a>`name` - プロパティの名前。
+ <a name="asset-property-unit-cli"></a>`unit` –(オプション) プロパティの科学単位 (mm、摂氏など)。
+ `dataType` - 変換のデータ型は、`DOUBLE` または `STRING` である必要があります。
+ `externalId` – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ `expression` - 変換式。変換式では、集計関数や一時関数は使用できません。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
+ `variables` - 式で使用するアセットの他のプロパティを定義する変数のリスト。各変数構造には、式で使用する単純な名前と、その変数にリンクされるプロパティを定義する `value` 構造が含まれます。`value` 構造体には、以下の情報が含まれています。
  + `propertyId` - 値を入力するプロパティの ID。ID の代わりにプロパティの名前を使用できます。
**重要**  <a name="transform-input-rules"></a>
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、`0` (false) 、`1` (true) に変換されます。  
変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値では、変換の更新は開始されません。アセットプロパティデータの API オペレーションのリクエストレートは、変換計算の結果にも適用されます。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。

**Example [Transform job definition] (変換定義)**  
次の例は、アセットの温度測定データを摂氏から華氏に変換する変換プロパティを示しています。このオブジェクトは、[[Transform]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Transform.html) (変換) を含む [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例である。このオブジェクトを[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、変換プロパティを作成できます。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  

```
{
...
"assetModelProperties": [
...
{
  "name": "Temperature F",
  "dataType": "DOUBLE",
  "type": {
    "transform": {
      "expression": "9/5 * temp_c + 32",
      "variables": [
        {
          "name": "temp_c",
          "value": {
            "propertyId": "Temperature C"
          }
        }
      ]
    }
  },
  "unit": "Fahrenheit"
}
],
...
}
```

**Example 3つの変数を含む変換定義。**  
次の例では、BLT123の部品の10％以上が基準を満たしていない場合に警告メッセージ (`"Caution"`) を返す変換プロパティを示しています。それ以外の場合は、情報メッセージ (`"Normal"`) を返す。  

```
{
...
"assetModelProperties": [
...
{
"name": "Quality_Monitor",
"dataType": "STRING",
"type": {
    "transform": {
        "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")",
        "variables": [
            {
                "name": "Part_Number",
                "value": {
                    "propertyId": "Part Number"
                }
            },
            {
                "name": "Good_Count",
                "value": {
                    "propertyId": "Good Count"
                }
            },
            {
                "name": "Bad_Count",
                "value": {
                    "propertyId": "Bad Count"
                }
            }
        ]
    }
}
}
...
}
```

# プロパティおよびその他のアセットからのデータを集計する (メトリクス)
<a name="metrics"></a>

メトリクスは、集計関数を使用してすべての入力データポイントを処理し、指定された時間間隔ごとに 1 つのデータポイントを出力する数式です。たとえば、メトリクスは、温度データストリームから時間当たりの平均温度を計算できます。

メトリクスは、関連付けられたアセットのメトリクスからデータを入力できるため、オペレーションまたはオペレーションのサブセットに関するインサイトを提供する統計情報を計算できます。たとえば、メトリクスは、風力発電所のすべての風力タービンの平均時間温度を計算できます。アセット間の関連付けを定義する方法の詳細については、「[アセットモデルの階層を定義する](define-asset-hierarchies.md)」を参照してください。

メトリクスは、各時間間隔でのデータを集約することなく、他のプロパティからデータを入力することも可能です。コンピューティング式に[[attribute]](attributes.md) (属性) を指定した場合、 AWS IoT SiteWise はその属性の[[latest]](expression-temporal-functions.md#latest-definition) (最新) の値をコンピューティング式に使用します。式でメトリクスを指定すると、 は式を計算する時間間隔の[最後の](expression-temporal-functions.md#last-definition)値 AWS IoT SiteWise を使用します。つまり、 `OEE = Availability * Quality * Performance`、 `Availability`、 `Quality` はすべて同じアセットモデル上の他のメトリクスであり、`Performance` のようなメトリクスを定義することができるのです。

AWS IoT SiteWise は、すべてのアセットプロパティの基本的な集計メトリクスのセットも自動的に計算します。計算コストを削減するために、基本的な計算にカスタムメトリクスを定義する代わりに、これらの集計を使用できます。詳細については、「[でアセットプロパティの集計をクエリする AWS IoT SiteWise](aggregates.md)」を参照してください。

**Topics**
+ [メトリクスを定義する (コンソール)](#define-metrics-console)
+ [メトリクスを定義する (AWS CLI)](#define-metrics-cli)

## メトリクスを定義する (コンソール)
<a name="define-metrics-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルのメトリクスを定義するときは、次のパラメータを指定します。
+ <a name="asset-property-name-console"></a>**[Name]** (名前) - プロパティの名前。
+ **[Data type]** (データ型) - 変換のデータ型で、**[Double]** (倍) または **[String]** (文字列) です。
+ **外部 ID** – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ **[Formula]** (計算式) - メトリクス式。メトリクス式では、[[aggregation functions]](expression-aggregation-functions.md) (集約関数) を使用して、階層内のすべての関連するアセットに対するプロパティからデータを入力することができます。入力を開始するか、下矢印キーを押すと、オートコンプリート機能を実行できます。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
**重要**  <a name="metric-input-rules"></a>
メトリクスは、整数、倍、ブール値、文字列型のプロパティのみ使用可能です。ブール値は、`0` (false) 、`1` (true) に変換されます。  
メトリクスの式でメトリクス入力変数を定義する場合、それらの入力には出力メトリクスと同じ時間間隔が必要です。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。
+ **[Time interval]** (時間間隔) - メトリクスの時間間隔。<a name="metric-window-info"></a>AWS IoT SiteWise は次のタンブリングウィンドウ時間間隔をサポートし、各間隔は前の間隔が終了したときに開始される。
  + **[1 minute]** (1 分) – <a name="metric-window-1m"></a>1 分。毎分の終わりに処理されます (午前 00:00:00、午前 00:01:00、午前 00:02:00 など)。
  + **[5 minutes]** (5 分) – <a name="metric-window-5m"></a>5 分。正時から 5 分ごとに処理されます (午前 00:00:00、午前 00:05:00、午前 00:10:00 など)。
  + **[15 minutes]** (15 分) – <a name="metric-window-15m"></a>15 分。正時から 15 分ごとに処理されます (午前 00:00:00、午前 00:15:00、午前 00:30:00 など)。
  + **[1 hour]** (1 時間) – <a name="metric-window-1h"></a>1 時間 (60 分)。UTC の毎時の終わりに処理されます (午前 00:00:00、午前 01:00:00、午前 02:00:00 など)。
  + **[1 day]** (1 日) – <a name="metric-window-1d"></a>1 日 (24 時間)。UTC の毎日の終わりに処理されます (月曜日の午前 00:00:00、火曜日の午前 00:00:00 など)。
  + **[1 week]** (1 週間) – <a name="metric-window-1w"></a>1 週間 (7 日間)。UTC の毎週日曜日の終わりに処理されます (月曜日の午前 00:00:00 ごと)。
  + **[Custom interval]** (カスタム時間間隔) - 1 分～1 週間の間で任意の時間間隔を入力できます。
+ **[Offset date]** (オフセット日) -(オプション) データを集計するためのリファレンス日です。
+ **[Offset time]** (オフセット時間) -(オプション) データを集計するリファレンス時間。オフセット時刻は、00:00:00 ～ 23:59:59 の間でなければなりません。
+ **[Offset time zone]** (オフセットタイムゾーン) -(オプション) オフセットのタイムゾーンです。指定しない場合、デフォルトのオフセットタイムゾーンは協定世界時 (UTC) です。以下のサポートされているタイムゾーンを参照してください。

### サポートされているタイムゾーン
<a name="supported-time-zones"></a>
+  (UTC\$100:00) 世界協定時間
+  (UTC\$101:00) 中央ヨーロッパ時間
+  (UTC\$102:00) 東ヨーロッパ
+  (UTC03\$1:00) 東アフリカ時間
+  (UTC\$104:00) 近東時間
+  (UTC\$105:00) パキスタンラホール時間
+  (UTC\$105:30) インド標準時
+  (UTC\$106:00) バングラデシュ標準時
+  (UTC\$107:00) ベトナム標準時
+  (UTC\$108:00) 中国 [Taiwan] (台湾) (台北市) 時間
+  (UTC\$109:00) 日本標準時
+  (UTC\$109:30) オーストラリア中部時間
+  (UTC\$110:00) オーストラリア東部時間
+  (UTC\$111:00) ソロモン標準時
+  (UTC\$112:00) ニュージーランド標準時
+  (UTC-11:00) ミッドウェー諸島時間
+  (UTC-10:00) ハワイ標準時
+  (UTC-09:00) アラスカ標準時
+  (UTC-08:00) 太平洋標準時
+  (UTC-07:00) フェニックス標準時
+  (UTC-06:00) 中央標準時
+  (UTC-05:00) 東部標準時
+  (UTC-04:00) プエルトリコ米領バージン諸島時間
+  (UTC-03:00) アルゼンチン標準時
+  (UTC-02:00) サウスジョージア時間
+  (UTC-01:00) 中央アフリカ時間

**Example オフセット付きのカスタム時間間隔 (コンソール)**  
次の例では、2021 年 2 月 20 日午後 6 時 30 分 30 秒 (PST) にオフセットされた 12 時間の時間間隔を定義する方法を示します。  

**オフセット付きのカスタム時間間隔 を定義するには**

1. **[Time interval]** (時間間隔) で **[Custom interval]** (カスタム間隔) を選択します。

1. **[Time interval]** (時間間隔) については、次のいずれかを行ってください。
   + **12** を入力し、**[hours]** (時間) を選択します。
   + **720** を入力し、**[minutes]** (分) を選択します。
   + **43200** を入力し、**[seconds]** (秒) を選択します。
**重要**  
**[Time interval]** (時間間隔) は単位に関係なく整数でなければならない。

1. **[Offset date]** (オフセット日付) は、**[2021/02/20]**を選択します。

1. **[Offset time]** (オフセット時間) には、**18:30:30** を入力します。

1. **[Offset timezone]** (オフセットタイムゾーン) は、**[(UTC-08:00) Pacific Standard Time]** ((UTC-08:00) 太平洋標準時) を選択してください。
2021 年 7 月 1 日午後 6:30:30 (PST) 以前または 6:30:30 にメトリクスを作成した場合、2021 年 7 月 1 日午後 6:30:30 (PST) に最初の集計結果が表示されます。2 番目の集計結果は、2021 年 7 月 2 日午前 6:30:30 (PST) であり、以下同様です。

## メトリクスを定義する (AWS CLI)
<a name="define-metrics-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルのメトリクスを定義する場合は、次のパラメータを指定します。
+ <a name="asset-property-name-cli"></a>`name` - プロパティの名前。
+ `dataType` - メトリクスのデータ型 (`DOUBLE` または `STRING`)。
+ `externalId` – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ `expression` - メトリクス式。メトリクス式では、[[aggregation functions]](expression-aggregation-functions.md) (集約関数) を使用して、階層内のすべての関連するアセットに対するプロパティからデータを入力することができます。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
+ `window` - メメトリクスタンブリングウィンドウの時間間隔とオフセットで、各間隔は前の間隔が終了したときに開始されます。
  + `interval` - タンブリングウィンドウの時間間隔です。時間間隔は 1 分以上 1 週間以内にする必要があります。
  + `offsets` - タンブリングウィンドウのオフセット。

  詳細については、*[AWS IoT SiteWise API Reference]* (API リファレンス) の [TumblingWindow](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_TumblingWindow.html) を参照してください。  
**Example オフセット付きカスタム時間間隔 (AWS CLI)**  

  次の例では、2021 年 2 月 20 日午後 6 時 30 分 30 秒 (PST) にオフセットされた 12 時間の時間間隔を定義する方法を示します。

  ```
  {
      "window": {
          "tumbling": {
              "interval": "12h",
              "offset": " 2021-07-23T18:30:30-08"
          }
      }
  }
  ```

  2021 年 7 月 1 日午後 6:30:30 (PST) 以前または 6:30:30 にメトリクスを作成した場合、2021 年 7 月 1 日午後 6:30:30 (PST) に最初の集計結果が表示されます。2 番目の集計結果は、2021 年 7 月 2 日午前 6:30:30 (PST) であり、以下同様です。
+ `variables` - 式で使用するアセットまたは子アセットのその他のプロパティを定義する変数のリスト。各変数構造には、式で使用する単純な名前と、その変数にリンクされるプロパティを定義する `value` 構造が含まれます。`value` 構造体には、以下の情報が含まれています。
  + `propertyId` - 値を取得するプロパティの ID。プロパティが (階層からモデルで定義されているのではなく) 現在のモデルで定義されている場合は、ID の代わりにプロパティの名前を使用できます。
  + `hierarchyId` -(オプション) プロパティの子アセットをクエリする階層の ID。ID の代わりに階層定義の名前を使用できます。この値を省略すると、 は現在のモデルで プロパティ AWS IoT SiteWise を見つけます。
**重要**  <a name="metric-input-rules"></a>
メトリクスは、整数、倍、ブール値、文字列型のプロパティのみ使用可能です。ブール値は、`0` (false) 、`1` (true) に変換されます。  
メトリクスの式でメトリクス入力変数を定義する場合、それらの入力には出力メトリクスと同じ時間間隔が必要です。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。
+ <a name="asset-property-unit-cli"></a>`unit` –(オプション) プロパティの科学単位 (mm、摂氏など)。

**Example メトリクス定義の例**  
次の例は、アセットの温度測定データを集計して、時間当たりの最高温度を華氏で計算するメトリクスプロパティを示しています。このオブジェクトは、[[Metric]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Metric.html) (メトリクス) を含む [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例です。このオブジェクトは、[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、メトリクスプロパティを作成できます。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  

```
{
      ...
      "assetModelProperties": [
      ...
      {
        "name": "Max temperature",
        "dataType": "DOUBLE",
        "type": {
          "metric": {
            "expression": "max(temp_f)",
            "variables": [
              {
                "name": "temp_f",
                "value": {
                  "propertyId": "Temperature F"
                }
              }
            ],
            "window": {
              "tumbling": {
                "interval": "1h"
              }
            }
          }
        },
        "unit": "Fahrenheit"
      }
    ],
    ...
}
```

**Example 関連アセットからデータを入力するメトリクス定義例。**  
次の例は、複数の風力タービンの平均電力データを集約し、風力発電所の総平均電力を算出するメトリックプロパティを示しています。このオブジェクトは、[[Metric]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Metric.html) (メトリクス) を含む [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例です。このオブジェクトは、[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、メトリクスプロパティを作成できます。  

```
{
      ...
      "assetModelProperties": [
      ...
      {
          "name": "Total Average Power",
          "dataType": "DOUBLE",
          "type": {
            "metric": {
              "expression": "avg(power)",
              "variables": [
                {
                  "name": "power",
                  "value": {
                    "propertyId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
                    "hierarchyId": "Turbine Asset Model"
                  }
                }
              ],
              "window": {
                "tumbling": {
                  "interval": "5m"
                }
              }
            }
        },
        "unit": "kWh"
      }
    ],
    ...
}
```

# 数式を使用する
<a name="formula-expressions"></a>

数式を使用すると、raw 産業データを変換および集計する数学関数を定義して、オペレーションに関する洞察を得ることができます。数式は、リテラル、演算子、関数、および変数を組み合わせてデータを処理します。数式を使用したアセットプロパティの定義方法については、[データを変換する (変換)](transforms.md) および [プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md) を参照してください。変換とメトリックは、式のプロパティです。

**Topics**
+ [数式で変数を使用する](expression-variables.md)
+ [数式でリテラルを使用する](expression-literals.md)
+ [数式で演算子を使用する](expression-operators.md)
+ [数式で定数を使用する](expression-constants.md)
+ [数式で関数を使用する](expression-functions.md)
+ [数式表現チュートリアル](expression-tutorials.md)

# 数式で変数を使用する
<a name="expression-variables"></a>

変数は数式内の AWS IoT SiteWise アセットプロパティを表します。変数を使用して、式中の他のアセットプロパティから値を入力し、定数プロパティ ([[attributes]](attributes.md)) (属性) 、raw データストリーム ([[measurements]](measurements.md)) (測定値) 、および他の式プロパティからのデータを処理できるようにします。

変数は、同じアセットモデル、または関連する子アセットモデルのアセットプロパティを表すことができます。子アセットモデルから変数を入力できるのは、メトリクス式のみです。

コンソールと API では、異なる名前で変数を識別します。
+ **AWS IoT SiteWise コンソール** – アセットプロパティ名を式内の変数として使用します。
+ **AWS IoT SiteWise API (AWS CLI, AWS SDKs)** – [ExpressionVariable](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExpressionVariable.html) 構造を使用して変数を定義します。これには変数名とアセットプロパティへの参照が必要です。変数名には小文字、数字、アンダースコアを使用することができます。次に、式の中でアセットプロパティをリファレンスするために、変数名を使用します。

変数名名では、大文字と小文字が区別されます。

詳細については、[[Defining metrics]](transforms.md) (メトリクスの定義) の [[Defining transforms]](metrics.md) (変換の定義) を参照してください。

## 変数を使用してプロパティを参照する
<a name="variable-values"></a>

変数の*値*は、参照するプロパティを定義します。 AWS IoT SiteWise では、さまざまな方法でこれを行うことができます。
+ **プロパティ ID によって:** プロパティの一意の ID (UUID) を指定して識別できます。
+ **名前によって:** プロパティが同じアセットモデルにある場合、プロパティ ID フィールドに名前を指定できます。
+ **パスによって:** 変数値は、*パス*によってプロパティを参照できます。詳細については、「[パスを使用してカスタム複合モデルのプロパティを参照する](custom-composite-models.md#property-paths)」を参照してください。

**注記**  
 変数は AWS IoT SiteWise コンソールではサポートされていません。これらは、 AWS Command Line Interface AWS CLI) や AWS SDKs を含む AWS IoT SiteWise API によって使用されます。

 からのレスポンスで受け取る変数 AWS IoT SiteWise には、ID とパスの両方を含む、値に関する完全な情報が含まれます。

 ただし、変数を に渡す場合 AWS IoT SiteWise (たとえば、「作成」または「更新」呼び出しで）、いずれかを指定する必要があります。例えば、パスを指定した場合、ID を指定する必要はありません。

# 数式でリテラルを使用する
<a name="expression-literals"></a>

AWS IoT SiteWise では、式と式でのリテラルの使用がサポートされています。リテラルは、特定のデータ型を表す固定値です。では AWS IoT SiteWise、数式で数値リテラルと文字列リテラルを定義できます。リテラルは、データ変換、アラーム条件、視覚化計算など、さまざまなコンテキストで使用できます。


+ <a name="number-literal-definition"></a>**数字**

  数字と科学的記数法を用いて、整数と 2 倍を定義することができる。[[E notation]](https://en.wikipedia.org/wiki/Scientific_notation#E_notation) (指数表記) は指数表記で数字を表現することができます。

  例:`1`、 `2.0`、 `.9`、 `-23.1`、 `7.89e3`、 `3.4E-5`
+ <a name="string-literal-definition"></a>**文字列**

  文字列を定義するには、`'` (引用符) と`"` (二重引用符) を使用します。開始と終了の引用符の種類は一致させる必要があります。文字列の宣言に使用した引用符と一致する引用符をエスケープするには、その引用符文字を 2 回使用します。これは AWS IoT SiteWise 文字列内の唯一のエスケープ文字です。

  例: `'active'`、 `"inactive"`、 `'{"temp": 52}'`、 `"{""temp"": ""high""}"`

# 数式で演算子を使用する
<a name="expression-operators"></a>

式には、次の一般的な算術演算子を使用することができます。


| 演算子 | 説明 | 
| --- | --- | 
|  `+`  |  両オペランドが数値の場合、この算術演算子は左右のオペランドを加算します。 どちらかのオペランドが文字列の場合、この算術演算子は左右のオペランドを文字列として連結する。例えば、式 `1 + 2 + " is three"` は `"3 is three"` に評価される。連結された文字列は最大 1024 文字まで可能である。文字列が 1024 文字を超える場合、 AWS IoT SiteWise はそのコンピューティングのためのデータポイントを出力しない。  | 
|  `-`  |  左のオペランドから右のオペランドを減算します。 <a name="operator-numbers-only"></a>この算術演算子は、数値オペランドにのみ使用できます。  | 
|  `/`  |  左のオペランドを右のオペランドで除算します。 <a name="operator-numbers-only"></a>この算術演算子は、数値オペランドにのみ使用できます。  | 
|  `*`  |  左右のオペランドを乗算します。 <a name="operator-numbers-only"></a>この算術演算子は、数値オペランドにのみ使用できます。  | 
|  `^`  |  左のオペランドを右のオペランドでべき乗します (べき乗)。 <a name="operator-numbers-only"></a>この算術演算子は、数値オペランドにのみ使用できます。  | 
|  `%`  |  左のオペランドを右のオペランドで除算した剰余を返します。結果の符号は、左オペランドと同じです。この動作は、モジュロ演算とは異なります。 <a name="operator-numbers-only"></a>この算術演算子は、数値オペランドにのみ使用できます。  | 
|  `x < y`  |  `1` が `x` より小さい場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `x > y`  |  `1` が `x` より大きい場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `x <= y`  |  `1` が `x` より小さいか、または等しい場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `x >= y`  |  `1` が `x`より大きいか、または等しい場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `x == y`  |  `1` が `x` に等しい場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `x != y`  |  `1` が `x` に等しくない場合は `y` を返し、それ以外の場合は `0` を返します。  | 
|  `!x`  |  `1` が `x` (false) と評価された場合は `0` を返し、それ以外の場合は `0` を返します。 `x` は、次の場合に (false) と評価される。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x and y`  |  `0` が `x`と評価された場合 (false) 、`0` を返す。それ以外の場合は、`y` の評価結果を返す。 `x` または `y` は、次の場合に (false) と評価される。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x or y`  |  `1` が `x` (true) に評価された場合、`1` を返す。それ以外の場合は、`y` の評価結果を返す。 `x` または `y` は、次の場合に (false) と評価される。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `not x`  |  `1` が `x` (false) と評価された場合は `0` を返し、それ以外の場合は `0` を返します。 `x` は、次の場合に (false) と評価される。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-operators.html)  | 
|   `[]` `s[index]`  |  文字列 `index` のインデックス `s` にある文字を返す。これは Python のインデックス構文に相当する。 

**Example 例**  
+ `"Hello!"[1]` は `e` を返します。
+ `"Hello!"[-2]` は `o` を返します。  | 
|   `[]` `s[start:end:step]`  |  文字列 `s` のスライスを返す。これは Python のスライス構文に相当する。この演算子は次の引数を持つ。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-operators.html) `step` 引数を省略すると、そのデフォルト値が使用される。例えば、`s[1:4:1]` と `s[1:4]` は同じです。 引数は整数または[[none]](expression-constants.md#none-definition) (無し) 定数でなければならない。を指定すると`none`、 はその引数のデフォルト値 AWS IoT SiteWise を使用します。 

**Example 例**  
+ `"Hello!"[1:4]` は `"ell"` を返します。
+ `"Hello!"[:2]` は `"He"` を返します。
+ `"Hello!"[3:]` は `"lo!"` を返します。
+ `"Hello!"[:-4]` は `"He"` を返します。
+ `"Hello!"[::2]` は `"Hlo"` を返します。
+ `"Hello!"[::-1]` は `"!olleH"` を返します。  | 

# 数式で定数を使用する
<a name="expression-constants"></a>

では AWS IoT SiteWise、式と式で定数を使用して、固定値または事前定義されたパラメータを表すことができます。定数は、データ変換、アラーム条件、視覚化計算など、さまざまなコンテキストで使用できます。定数を使用すると、式を簡素化して、読みやすく、保守性を高めることができます。

式には、次の一般的な数学定数を使用できます。すべての定数は大文字と小文字を区別しません。

**注記**  
定数と同じ名前の変数を定義すると、その変数が定数をオーバーライドします。


| 定数 | 説明 | 
| --- | --- | 
|  `pi`  |  数字のπ (`π`) です: `3.141592653589793`   | 
|  `e`  |  数字のe: `2.718281828459045`  | 
|  `true`  |  数字の 1 に相当します。では AWS IoT SiteWise、ブール値は同等の数値に変換されます。  | 
|  `false`  |  数字の 0 に相当します。では AWS IoT SiteWise、ブール値は同等の数値に変換されます。  | 
|   `none`  |  無価値。この定数を使用すると、[[conditional expression]](expression-conditional-functions.md) (条件式) の結果として何も出力しないことができます。  | 

# 数式で関数を使用する
<a name="expression-functions"></a>

次の関数を使用して、数式中のデータを操作することができます。

変換とメトリクスは、それぞれ異なる機能をサポートしています。次の表は、各型の数式プロパティに対応する関数の種類を示したものです。

**注記**  
1 つの数式には、最大 10 個の関数を含めることができます。


| 関数型 | 変換 | メトリクス | 
| --- | --- | --- | 
|  [数式で一般的な関数を使用する](expression-common-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で比較関数を使用する](expression-comparison-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で条件関数を使用する](expression-conditional-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で文字列関数を使用する](expression-string-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で集計関数を使用する](expression-aggregation-functions.md)  |  <a name="polaris-no-para"></a>![\[A red circle with the letter x for no.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-no.png) いいえ  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で時間関数を使用する](expression-temporal-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 
|  [数式で日付および時刻関数を使用する](expression-date-and-time-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/icon-yes.png) はい  | 

## 関数構文
<a name="expression-function-syntax"></a>

関数を作成するには、次の構文を使用します。

通常の構文  
通常の構文では、関数名の後に括弧が付き、引数は 0 個以上となります。  
`function_name(argument1, argument2, argument3, ...)`。例えば、通常の構文を持つ関数は、`log(x)` や `contains(s, substring)` のようになります。

統一関数呼び出し構文 (UFCS)   
UFCSでは、オブジェクト指向プログラミングにおけるメソッド呼び出しの構文を用いて、関数を呼び出すことができる。UFCSでは、最初の引数の後にドット (`.`) が付き、次に関数名、残りの引数がある場合は括弧の中に入る。  
`argument1.function_name(argument2, argument3, ...)`。例えば、UFCSを使った関数は、`x.log()` や `s.contains(substring)` のようになります。  
UFCS を使用して後続の関数を連鎖することもできます。 AWS IoT SiteWise は、現在の関数の評価結果を次の関数の最初の引数として使用します。  
例えば、`message.jp('$.status').lower().contains('fail')` の代わりに `contains(lower(jp(message, '$.status')),'fail')` を使用することができます。  
詳しくは、[[D Programming Language]](https://tour.dlang.org/tour/en/gems/uniform-function-call-syntax-ufcs) (D プログラミング言語) のウェブサイトをご覧ください。

**注記**  
UFCS はすべての AWS IoT SiteWise 関数に使用できます。  
AWS IoT SiteWise 関数では、大文字と小文字は区別されません。例えば、`lower(s)` と `Lower(s)` を入れ替えて使用することができます。

# 数式で一般的な関数を使用する
<a name="expression-common-functions"></a>

[[transforms]](transforms.md) (変換) と [[metrics]](metrics.md) (メトリクス) において、一般的な数学的関数をコンピューティングすることができます。


| 関数 | 説明 | 
| --- | --- | 
|  `abs(x)`  |  `x` の絶対値を返します。  | 
|  `acos(x)`  |  `x` のアークコサイン (逆余弦) を返します。  | 
|  `asin(x)`  |  `x` のアークサイン (逆正弦) を返します。  | 
|  `atan(x)`  |  `x` のアークタンジェント (逆正接) を返します。  | 
|  `cbrt(x)`  |  `x` の立方根を返します。  | 
|  `ceil(x)`  |  `x` より大きい最も近い整数を返します。  | 
|  `cos(x)`  |  `x` のコサイン (余弦) を返します。  | 
|  `cosh(x)`  |  `x` のハイパーボリックコサイン (双曲線余弦) を返します。  | 
|  `cot(x)`  |  `x` のコタンジェントを返します。  | 
|  `exp(x)`  |  `e` の `x` 乗を返します。  | 
|  `expm1(x)`  |  戻り値`exp(x) - 1`。`exp(x) - 1` が小さい値である場合に、より正確に `x` をコンピューティングするためにこの関数を使用します。  | 
|  `floor(x)`  |  `x` より小さい最も近い整数を返します。  | 
|  `log(x)`  |  `loge` の `e` (底 `x`) を返します。  | 
|  `log10(x)`  |  `log10` の `10` (底 `x`) を返します。  | 
|  `log1p(x)`  |  戻り値`log(1 + x)`。`log(1 + x)` が小さい値である場合に、より正確に `x` をコンピューティングするためにこの関数を使用します。  | 
|  `log2(x)`  |  `log2` の `2` (底 `x`) を返します。  | 
|  `pow(x, y)`  |  `x` の `y` 乗を返します。`x ^ y` に相当します。  | 
|  `signum(x)`  |  `x` (負の入力の場合は `-1`、ゼロの入力の場合は `0`、正の入力の場合は `+1`) 符号を返します。  | 
|  `sin(x)`  |  `x` のサイン (正弦) を返します。  | 
|  `sinh(x)`  |  `x` のハイパーボリックサイン (双曲線正弦) を返します。  | 
|  `sqrt(x)`  |  `x` の平方根を返します。  | 
|  `tan(x)`  |  `x` のタンジェント (正接) を返します。  | 
|  `tanh(x)`  |  `x` のハイパーボリックタンジェント (双曲線正接) を返します。  | 

# 数式で比較関数を使用する
<a name="expression-comparison-functions"></a>

[変換](transforms.md)と[メトリクス](metrics.md)では、次の比較関数を使用して、2 つの値と出力 `1` (true) または `0` (false) を比較できます。 は[、辞書順](https://en.wikipedia.org/wiki/Lexicographic_order)で文字列 AWS IoT SiteWise を比較します。


| 関数 | 説明 | 
| --- | --- | 
|  `gt(x, y)`  |  `1` が `x` より大きい場合は `y` を返し、それ以外の場合は `0` (`x > y`) を返します。 <a name="comparison-function-incompatible-types"></a>この関数は、`x` と `y` が数値と文字列のように互換性のない型の場合は、値を返さない。  | 
|  `gte(x, y)`  |  `1` が `x` より大きいか、または等しい場合は `y` を返し、それ以外の場合は `0` (`x ≥ y`) を返します。 <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise は、引数が の相対許容値内にある場合、引数を等しいと見なします`1E-9`。これは Python の[isclose](https://docs.python.org/3/library/math.html#math.isclose) 関数と同じような動作をします。 <a name="comparison-function-incompatible-types"></a>この関数は、`x` と `y` が数値と文字列のように互換性のない型の場合は、値を返さない。  | 
|  `eq(x, y)`  |  `1` が `x` に等しい場合は `y` を返し、それ以外の場合は `0` (`x == y`) を返します。 <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise は、引数が の相対許容値内にある場合、引数を等しいと見なします`1E-9`。これは Python の[isclose](https://docs.python.org/3/library/math.html#math.isclose) 関数と同じような動作をします。 <a name="comparison-function-incompatible-types"></a>この関数は、`x` と `y` が数値と文字列のように互換性のない型の場合は、値を返さない。  | 
|  `lt(x, y)`  |  `1` が `x` より小さい場合は `y` を返し、それ以外の場合は `0` (`x < y`) を返します。 <a name="comparison-function-incompatible-types"></a>この関数は、`x` と `y` が数値と文字列のように互換性のない型の場合は、値を返さない。  | 
|  `lte(x, y)`  |  `1` が `x` より小さいか、または等しい場合は `y` を返し、それ以外の場合は `0` (`x ≤ y`) を返します。 <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise は、引数が の相対許容値内にある場合、引数を等しいと見なします`1E-9`。これは Python の[isclose](https://docs.python.org/3/library/math.html#math.isclose) 関数と同じような動作をします。 <a name="comparison-function-incompatible-types"></a>この関数は、`x` と `y` が数値と文字列のように互換性のない型の場合は、値を返さない。  | 
|  `isnan(x)`  |  `1` が `x` に等しい場合は `NaN` を返し、それ以外の場合は `0` を返します。 `x` が文字列の場合、この関数は値を返さない。  | 

# 数式で条件関数を使用する
<a name="expression-conditional-functions"></a>

[変換](transforms.md)と[メトリクス](metrics.md)では、次の関数を使用して条件をチェックし、その条件が true と評価されるか false と評価されるかで異なる結果を返すことができます。


| 関数 | 説明 | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  `condition` を評価し、条件の評価結果が true の場合に `result_if_true`、`false` の場合には `result_if_false` を返します。 `condition`は数字でなければなりません。この関数は、`0` および空の文字列を `false` と見なし、それ以外 (`NaN` を含む) の場合を `true` と見なします。ブール値は、`0` (false) 、`1` (true) に変換されます。 この関数から[[none]](expression-constants.md#none-definition) (無し) 定数を返すことで、特定の条件の出力を破棄することができます。つまり、条件を満たさないデータポイントをフィルタリングすることができるのです。詳細については、「[データポイントをフィルタリングする](expression-tutorials.md#filter-data)」を参照してください。 

**Example 例**  
+ `if(0, x, y)` は変数 `y` を返す。
+ `if(5, x, y)` は変数 `x` を返す。
+ `if(gt(temp, 300), x, y)` は、変数 `x` が `temp` よりも大きい場合、変数 `300` を返す。
+ `if(gt(temp, 300), temp, none)` が `temp` 以上なら変数 `300` を、`none` が `temp` より小さいなら (`300`値なし) を返す。 1つ以上の引数が条件付き関数である入れ子関数には、UFCS を使用することをお勧めします。`if(condition, result_if_true)` で条件を評価し、`elif(condition, result_if_true, result_if_false)` で追加の条件を評価することができます。 例えば、`if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)` の代わりに `if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))` を使用することができます。 また、追加の中間条件関数を連結することもできます。たとえば、`if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))` のように複数の `if` ステートメントをネストするのではなく `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` を使用することができます。  UFCS で `elif(condition, result_if_true, result_if_false)` を使用する必要があります。   | 

# 数式で文字列関数を使用する
<a name="expression-string-functions"></a>

[[transforms]](transforms.md) (変換) と[[metrics]](metrics.md) (メトリクス) では、次の関数を使用して文字列を操作することができます。詳細については、「[式で文字列を使用する](expression-tutorials.md#use-strings-in-formulas)」を参照してください。

**重要**  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。


| 関数 | 説明 | 
| --- | --- | 
|  `len(s)`  |  文字列 `s` の長さをを返します。  | 
|  `find(s, substring)`  |  文字列 `substring` が文字列 `s` に含まれるインデックスを返す。  | 
|  `contains(s, substring)`  |  文字列 `1` が文字列 `s` を含んでいれば `substring`、それ以外の場合は `0` を返します。  | 
|  `upper(s)`  |  文字列 `s` を大文字で返す。  | 
|  `lower(s)`  |  文字列 `s` を小文字に変換して返す。  | 
|   `jp(s, json_path)`  |  文字列 `s` を[JsonPath](https://github.com/json-path/JsonPath) 式 `json_path` で評価し、その結果を返す。 この関数を使うと、次のことができます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-string-functions.html) JSON 構造体から文字列値を取り出し、数値として返すには、複数の入れ子 `jp` 関数を使用する必要があります。外側の `jp` 関数は JSON 構造体から文字列を抽出し、内側の `jp` 関数はその文字列を数値に変換する。 文字列 `json_path` には、文字列リテラルを含める必要があります。つまり、`json_path` は文字列として評価される式ではありえないということです。 

**Example 例**  
+ `jp('{"status":"active","value":15}', '$.value')` は `15` を返します。
+ `jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')` は `25` を返します。
+ `jp('[2,8,23]', '$[2]')` は `23` を返します。
+ `jp('{"values":[3,6,7]}', '$.values[1]')` は `6` を返します。
+ `jp('111', '$')` は `111` を返します。
+ `jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')` は `0.95` を返します。  | 
|  `join(s0, s1, s2, s3, ...)`  |  文字列をデリミタ付きで連結して返す。この関数は、最初の入力文字列をデリミタとして使い、残りの入力文字列を結合する。これは、Javaの [join(CharSequence delimiter, CharSequence... elements)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-) 関数と同じような動作をします。 

**Example 例**  
+ `join("-", "aa", "bb", "cc")` は `aa-bb-cc` を返す  | 
|  `format(expression: "format")`、または `format("format", expression)`  |  指定された書式の文字列を返す。この関数は、`expression` を評価し、指定されたフォーマットで値を返す。これは、Javaの[format (String format, Object... args)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-)関数と同じような動作をします。サポートされるフォーマットの詳細については、*Java Platform, Standard Edition 7 API Specification*の[Class Formatter](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html)の Conversions を参照してください。 

**Example 例**  
+ `format(100+1: "d")` は文字列 `101` を返す。
+ `format("The result is %d", 100+1)` は文字列 `The result is 101` を返す。  | 
|  `f'expression'`  |  連結された文字列を返す。この書式付き関数を使うと、簡単な式で文字列の連結や書式設定を行うことができます。これらの関数は、入れ子になった式を含むことができる。`{}` (中括弧) を使って、式を補間することができます。これは、Python の[[formatted string literals]](https://docs.python.org/3/reference/lexical_analysis.html#f-strings) (フォーマットされた文字列リテラル) と同じような動作をします。 

**Example 例**  
+ `f'abc{1+2: "f"}d'` は `abc3.000000d` を返します。この例の式を評価するには、次のようにします。

  1. `format(1+2: "f")` は浮動小数点数 `3.000000` を返します。

  1. `join('', "abc", 1+2, 'd')` は文字列 `abc3.000000d` を返す。

  また、次のように式を書くこともできます `join('', "abc", format(1+2: "f"), 'd')`。  | 

# 数式で集計関数を使用する
<a name="expression-aggregation-functions"></a>

[[metrics]](metrics.md) (メトリクス) のみでは、各タイムインターバルの入力値を集計し、単一の出力値を算出する次の関数を使用することができます。集計関数は、関連付けられたアセットからデータを集計できません。

集計関数の引数には、[変数](expression-variables.md)、[数値リテラル](expression-literals.md#number-literal-definition)、[時間関数](expression-temporal-functions.md) 、入れ子式、または集計関数を使用することができます。式 `max(latest(x), latest(y), latest(z))` は集計関数を引数として使用し、`x`、`y` および `z` プロパティの現在の最大値を返します。

集計関数に入れ子になった式を使用することができます。入れ子になった式を使用する場合、次のルールが適用されます。
+ 各引数は1つの変数しか持つことができません。  
**Example**  

  例えば、`avg(x*(x-1))` と `sum(x/2 )/avg(y^2 )` がサポートされています。

  例えば、`min(x/y)` はサポートされていません。
+ 各引数は多段階に入れ子になった式を持つことができる。  
**Example**  

  例えば、`sum(avg(x^2 )/2)` がサポートされています。
+ 引数によって、異なる変数を持つことができます。  
**Example**  

  例えば、`sum(x/2, y*2)` がサポートされています。

**注記**  
式に測定値が含まれている場合、 は測定値の現在の時間間隔の最後の値 AWS IoT SiteWise を使用して集計を計算します。
式に属性が含まれている場合、 は属性の最新の値 AWS IoT SiteWise を使用して集計を計算します。


| 関数 | 説明 | 
| --- | --- | 
|  `avg(x0, ..., xn)`  |  現在の時間間隔における指定された変数値の平均を返します。 <a name="aggregation-function-no-output"></a>この関数は、与えられた変数が現在の時間間隔に少なくとも 1 つのデータポイントを持つ場合にのみデータポイントを出力します。  | 
|   `sum(x0, ..., xn)`  |  現在の時間間隔における指定された変数値の合計を返します。 <a name="aggregation-function-no-output"></a>この関数は、与えられた変数が現在の時間間隔に少なくとも 1 つのデータポイントを持つ場合にのみデータポイントを出力します。  | 
|  `min(x0, ..., xn)`  |  現在の時間間隔における指定された変数の最小値を返します。 <a name="aggregation-function-no-output"></a>この関数は、与えられた変数が現在の時間間隔に少なくとも 1 つのデータポイントを持つ場合にのみデータポイントを出力します。  | 
|  `max(x0, ..., xn)`  |  現在の時間間隔における指定された変数の最大値を返します。 <a name="aggregation-function-no-output"></a>この関数は、与えられた変数が現在の時間間隔に少なくとも 1 つのデータポイントを持つ場合にのみデータポイントを出力します。  | 
|  `count(x0, ..., xn)`  |  現在の時間間隔における指定された変数のデータポイントの合計数を返します。条件を満たすデータポイントの数を数える方法の詳細については、「[条件に一致するデータポイントをカウントする](expression-tutorials.md#count-filtered-data)」を参照してください。 <a name="aggregation-function-always-output"></a>この関数は、時間間隔ごとにデータポイントを計算します。  | 
| `stdev(x0, ..., xn)` | 現在の時間間隔に対する指定された変の数値の標準偏差を返します。 この関数は、与えられた変数が現在の時間間隔に少なくとも 1 つのデータポイントを持つ場合にのみデータポイントを出力します。  | 

# 数式で時間関数を使用する
<a name="expression-temporal-functions"></a>

時間関数を使用して、データポイントのタイムスタンプに基づいた値を返すことができます。

## メトリクスで時間関数を使用する。
<a name="temporal-functions-in-metrics"></a>

[[metrics]](metrics.md) (メトリクス) のみ、データポイントのタイムスタンプに基づいた値を返す次の関数を使用できます。

時間関数の引数は、ローカルのアセットモデルまたは入れ子式のプロパティである必要があります。これは、子アセットモデルのプロパティを一時関数で使用できないことを意味します。

一時関数で入れ子になった式を使用することができます。入れ子になった式を使用する場合、次のルールが適用されます。
+ 各引数は1つの変数しか持つことができません。

  例えば、`latest( t*9/5 + 32 )` がサポートされています。
+ 引数には集計関数を指定できません。

  例えば、`first( sum(x) )` はサポートされていません。


| 関数 | 説明 | 
| --- | --- | 
|  `first(x)`  |  現在の時間間隔における最も早いタイムスタンプを持つ、指定された変数値を返します。  | 
|   `last(x)` |  現在の時間間隔における最新のタイムスタンプを持つ、指定された変数値を返します。  | 
|  `earliest(x)`  |  現在の時間間隔が開始する前の指定された変数の最新の値を返します。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。詳細については、「[time-range-defintion](#time-range-def)」を参照してください。  | 
|   `latest(x)` |  現在の時間間隔が終了する前の最新のタイムスタンプを持つ、指定された変数の最新の値を返します。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。詳細については、「[time-range-defintion](#time-range-def)」を参照してください。  | 
|   `statetime(x)`  |  指定された時間間隔において、指定された変数が正である時間 (秒単位) を返します。[[comparison functions]](expression-comparison-functions.md) (比較関数) を使用して、`statetime` 関数が消費する変換プロパティを作成することができます。 たとえば、`Idle` プロパティが `0` または `1` の場合、次の式 `IdleTime = statetime(Idle)` を使用して時間間隔ごとのアイドル時間を計算できます。詳細については、「[statetime シナリオの例](#statetime-example)」を参照してください。 この関数は、入力変数としてメトリクスプロパティをサポートしていません。 入力プロパティの履歴に少なくとも 1 つのデータポイントがある場合、この関数は、時間間隔ごとにデータポイントを計算します。  | 
|   `TimeWeightedAvg(x, [interpolation])`  | ポイント間の時間間隔で重み付けされた入力データの平均を返します。計算と間隔の詳細については、「[時間加重関数のパラメータ](#timeweighted-parameter)」を参照してください。オプションの引数 `interpolaton` は文字列定数である必要があります。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-temporal-functions.html) | 
|   `TimeWeightedStDev(x, [algo])`  |  ポイント間の時間間隔で重み付けされた入力データの標準偏差を返します。 計算と間隔の詳細については、「[時間加重関数のパラメータ](#timeweighted-parameter)」を参照してください。  この計算では、データポイント間の間隔に Last Observed Carry Forward (LOCF) 計算アルゴリズムが使用されます。このアプローチでは、データポイントは次の入力データポイントのタイムスタンプまで最後の観測値として使用されます。重みは、データポイント間またはウィンドウ境界間の時間間隔 (秒単位) の形式で求められます。 オプションの引数 `algo` は文字列定数である必要があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-temporal-functions.html) 計算には以下の式が使用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-temporal-functions.html) 母集団の標準偏差の計算式: ![\[母集団の標準偏差の計算式。\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/timeweightedstdev1.png) 頻度の標準偏差の計算式: ![\[頻度の標準偏差の計算式。\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/timeweighted-frequency-stdev.png)  | 

次の図は`first`、 が現在の時間間隔に対して時間関数 、`latest`、、`last``earliest`および AWS IoT SiteWise を計算する方法を示しています。

![\[AWS IoT SiteWise 時間関数は、タイムスタンプに基づいてデータポイントを返します。\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/images/sitewise-temporal-functions.png)
<a name="time-range-def"></a>

**注記**  
`first(x)` の時間範囲 `last(x)` は (現在のウィンドウの開始、現在のウィンドウの終了] です。
`latest(x)` の時間範囲は (時間の開始、現在のウィンドウの終了] です。
`earliest(x)` の時間範囲は (時間の開始、前のウィンドウの終了] です。

** 時間加重関数のパラメータ**

集計ウィンドウ用に計算される時間加重関数では、次のことが考慮されます。
+ ウィンドウ内のデータポイント数
+ データポイント間の時間間隔数
+ ウィンドウの前の最後のデータポイント
+ ウィンドウの後の最初のデータポイント (一部のアルゴリズムのみ)

**条件:**
+ **不良データポイント** – 品質が良くないか、値が数値以外のデータポイント。不良データポイントは、ウィンドウの結果計算では考慮されません。
+ **不良間隔** – 不良データポイントの後の間隔。最初の既知のデータポイントの前の間隔も不良間隔とみなされます。
+ **良好データポイント** – 品質が良好でかつ値が数値のデータポイント。

**注記**  
AWS IoT SiteWise は、変換とメトリクスを計算するときにのみ`GOOD`品質データを消費します。`UNCERTAIN` および `BAD` データポイントは無視します。
最初の既知のデータポイントの前の間隔も**不良間隔**とみなされます。詳細については「[数式表現チュートリアル](expression-tutorials.md)」を参照してください。

最後の既知のデータポイントの後の間隔は無限に続き、以降のすべてのウィンドウに影響します。新しいデータポイントがくると、この関数は間隔を再計算します。

上記のルールに従って、集計ウィンドウの結果が計算され、ウィンドウの境界が制限されます。デフォルトでは、この関数はウィンドウ全体が**良好間隔**である場合にのみウィンドウの結果を送信します。

ウィンドウの**良好間隔**がウィンドウの長さよりも短い場合、この関数はウィンドウを送信しません。

ウィンドウの結果に影響するデータポイントに変更があると、データポイントがウィンドウの外側にあっても、ウィンドウは再計算されます。

入力プロパティの履歴に少なくとも 1 つのデータポイントがあり、計算が開始されていた場合は、時間間隔ごとに時間加重集計関数が計算されます。

**Example statetime シナリオの例**  
次のプロパティを持つアセットがある例を考えてみましょう。  
+ `Idle` - `0` または `1` である測定値をいう。値が `1` の場合、マシンはアイドル状態です。
+ `Idle Time` - 1分間隔で、機械がアイドル状態である時間を秒単位でコンピューティングする式 `statetime(Idle)` を使用した指標。
`Idle` プロパティには、以下のデータポイントがあります。  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| タイムスタンプ | 2:00:00 PM | 2:00:30 PM | 2:01:15 PM | 2:02:45 PM | 2:04:00 PM | 
| Idle | 0 | 1 | 1 | 0 | 0 | 
AWS IoT SiteWise は、 の値から `Idle Time`プロパティを 1 分ごとに計算します`Idle`。この計算が完了すると、`Idle Time` プロパティには次のデータポイントが存在します。  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| タイムスタンプ | 2:00:00 PM | 2:01:00 PM | 2:02:00 PM | 2:03:00 PM | 2:04:00 PM | 
| Idle Time | 該当なし | 30 | 60 | 45 | 0 | 
AWS IoT SiteWise は、毎分`Idle Time`の終わりに に対して次の計算を実行します。  
+ 2:00 PM 時点 (1:59 PM から 2:00 PM の場合) 
  + `Idle` には 2:00 PM より前のデータがないため、データポイントは計算されません。
+ 2:01 PM 時点 (2:00 PM から 2:01 PM の場合) 
  + 2:00:00 PM の時点で、マシンはアクティブです (`Idle` は `0`)。
  + 2:00:30 PM の時点で、マシンはアイドル状態です (`Idle` は `1`)。
  + 2:01:00 PM にインターバルが終了する前に `Idle` は再度変更されないため、`Idle Time` は 30 秒になります。
+ 2:02 PM 時点 (2:01 PM から 2:02 PM の場合) 
  + 2:01:00 PM の時点で、マシンはアイドル状態です (2:00:30 PM 時点の直前のデータポイントによる)。
  + 2:01:15 PM の時点で、マシンはまだアイドル状態です。
  + 2:02:00 PM にインターバルが終了する前に `Idle` は再度変更されないため、`Idle Time` は 60 秒になります。
+ 2:03 PM 時点 (2:02 PM から 2:03 PM の場合) 
  + 2:02:00 PM の時点で、マシンはアイドル状態です (2:01:15 PM 時点の直前のデータポイントによる)。
  + 2:02:45 PM の時点で、マシンはアクティブです。
  + 2:03:00 PM にインターバルが終了する前に `Idle` は再度変更されないため、`Idle Time` は 45 秒になります。
+ 2:04 PM 時点 (2:03 PM から 2:04 PM の場合) 
  + 2:03:00 PM の時点で、マシンはアクティブです (2:02:45 PM 時点の直前のデータポイントによる)。
  + 2:04:00 PM にインターバルが終了する前に `Idle` は再度変更されないため、`Idle Time` は 0 秒になります。

**Example TimeWeightedAvg シナリオと TimeWeightedStDev シナリオの例**  
次の表は、1 分間のウィンドウメトリクスの入力例と出力例を示しています: `Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x), timeWeightedStDev(x, 'p')`。  
1 分間の集計ウィンドウの入力例:  
これらのデータポイントはすべて、`GOOD` の品質を持ちます。


|  |  | 
| --- |--- |
| 03:00:00 | 4.0 | 
| 03:01:00 | 2.0 | 
| 03:01:10 | 8.0 | 
| 03:01:50 | 20.0 | 
| 03:02:00 | 14.0 | 
| 03:02:05 | 10.0 | 
| 03:02:10 | 3.0 | 
| 03:02:30 | 20.0 | 
| 03:03:30 | 0.0 | 
集計結果の出力:  
なし – このウィンドウでは結果は生成されません。


| Time | `Avg(x)` | `TimeWeightedAvg(x)` | `TimeWeightedAvg(X, "linear")` | `stDev(X)` | `timeWeightedStDev(x)` | `timeWeightedStDev(x, 'p')` | 
| --- | --- | --- | --- | --- | --- | --- | 
| 3:00:00 | 4 | なし | なし | 0 | なし | なし | 
| 3:01:00 | 2 | 4 | 3 | 0 | 0 | 0 | 
| 3:02:00 | 14 | 9 | 13 | 6 | 5.430610041581775 | 5.385164807134504 | 
| 3:03:00 | 11 | 13 | 12.875 | 8.54400374531753 | 7.724054437220943 | 7.659416862050705 | 
| 3:04:00 | 0 | 10 | 2.5 | 0 | 10.084389681792215 | 10 | 
| 3:05:00 | なし | 0 | 0 | なし | 0 | 0 | 

## 変換で時間関数を使用する
<a name="temporal-functions-in-transforms"></a>

[[変換](transforms.md)] のみ、`pretrigger()` 関数を使用して、現在の変換の計算を開始させたプロパティ更新前の変数の `GOOD` 品質値を取得することができます。

メーカーが AWS IoT SiteWise を使用してマシンのステータスをモニタリングする例を考えてみましょう。メーカーは、次のような測定値と変換を使用してプロセスを表現しています。
+ 測定値 `current_state` は 0 または 1 となります。
  + 本機がクリーニング状態の場合、`current_state` は 1 になる。
  + 機械が製造状態にある場合、`current_state` は 0 になる。
+ `cleaning_state_duration`に相当する変換、`if(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)`。この変換は、マシンがクリーニング状態である時間を秒単位で Unix エポックフォーマットで返します。詳しくは、[数式で条件関数を使用する](expression-conditional-functions.md) および[timestamp () ](expression-date-and-time-functions.md)(タイムスタンプ) 関数を参照してください。

クリーニング状態が予想以上に長く続くようであれば、メーカーが調査する場合もあるります。

また、多変量変換で `pretrigger()` 関数を使うこともできます。例えば、`x`、`y` という 2 つの測定値があり、`z` と等しい変換値 `x + y + pretrigger(y)` があるとします。次の表は、午前 9 時から午前 9 時 15 分までの `x`、`y`、`z` の値である。

**注記**  
この例では、測定値の値が時系列に到着することを想定しています。例えば、午前 09 時 00 分の`x` の値は、午前 09 時 05 分の `x` の値より先に到着する。
午前 9 時 5 分のデータポイントが午前 9 時のデータポイントより先に到着した場合、午前 9 時 5 分には `z` はコンピューティングされません。
午前 9 時 5 分 の `x` の値が午前 9 時の `x` の値より先に到着し、`y` の値が時系列に到着する場合、`z` は午前 9 時 5 分の `22 = 20 + 1 + 1` と等しくなる。


|  | 午前 9 時 0 分 | 午前 9 時 5 分 | 午前 9 時 10 分 | 午前 9 時 15 分 | 
| --- | --- | --- | --- | --- | 
|  `x`  |  10  |  20  |    |  30  | 
|  `y`  |  1  |  2  |  3  |    | 
|  `z = x + y + pretrigger(y)`  |  `y` は午前 09:00 以前にデータポイントを受信していません。したがって、`z` は午前 09:00 にはコンピューティングされません。  |  23 = 20 \$1 2 \$1 1 `pretrigger(y)` は 1 に等しい。  |  25 = 20 \$1 3 \$1 2 `x` は新しいデータポイントを受信しません。`pretrigger(y)` は 2 に等しい。  |  36 = 30 \$1 3 \$1 3 `y` は新しいデータポイントを受信しません。したがって、午前 09 時 15 分には `pretrigger(y)` は3に等しい。  | 

# 数式で日付および時刻関数を使用する
<a name="expression-date-and-time-functions"></a>

[[transforms]](transforms.md) (変換) と[[metrics]](metrics.md) (メトリクス) では、日付と時刻の関数を次のように使用できます。
+ データポイントの現在のタイムスタンプを UTC またはローカルタイムゾーンで取得する。
+ `year`、`month`、`day_of_month` などの引数でタイムスタンプを構成する。
+ `unix_time` 引数で年や月などの期間を抽出する。


| 関数 | 説明 | 
| --- | --- | 
|  `now()`  |  現在の日付と時刻を Unix エポックフォーマットで秒単位で返します。  | 
|  `timestamp()`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `mktime(time_zone, year, month, day_of_month, hour, minute, second)`  |  入力された時刻を Unix エポックフォーマットで秒単位で返します。 この機能を使用するには、次の条件があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) この機能を使用する場合、次の制限があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) 例: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `localtime(unix_time, time_zone)`  |  Unix 時間から、指定されたタイムゾーンの年、月、曜日、日、時、分、秒を返します。 この機能を使用するには、次の条件があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) レスポンスの例:`2007-12-03T10:15:30+01:00[Europe/Paris]` `localtime(unix_time, time_zone)` は単体の機能ではありません。`year()`、`mon()`、`mday`、`wday()`、`yday()`、`hour()`、`minute()`、`sec()` 関数は、`localtime(unix_time, time_zone)` を引数とする。 例: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `year(localtime(unix_time, time_zone)`  |  `localtime(unix_time, time_zone)` から年を返します。  | 
|  `mon(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から月を返します。  | 
|  `mday(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から月の特定の日を返します。  | 
|  `wday(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から週の特定の日を返します。  | 
|  `yday(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から年の特定の日を返します。  | 
|  `hour(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から時間を返します。  | 
|  `minute(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` からの分数を返します。  | 
|  `sec(localtime(unix_time, time_zone))`  |  `localtime(unix_time, time_zone)` から 2 番目を返すします  | 

## 対応するタイムゾーン形式
<a name="time-zone-expressions"></a>

タイムゾーンの引数は、次の方法で指定することができます。
+ タイムゾーンオフセット - UTC の場合は `'Z'`、オフセット (`'+2'` または `'-5'`) を指定します。
+ オフセットID - タイムゾーンの略語とオフセットを組み合わせて使用します。例えば、`'GMT+2'` と `'UTC-01:00'` です。タイムゾーンの略語には3文字のみを使用します。
+ リージョンベースの ID - 例えば、`'Etc/GMT+12'` や `'Pacific/Pago_Pago'` など。

### サポートされているタイムゾーンの略語
<a name="spported-time-zones"></a>

日付と時刻の機能は、次の 3 文字のタイムゾーンの略語をサポートしています。
+ 東部標準時 -05:00
+ 日本時間 - -10:00
+ アメリカ標準時 -07:00
+ ACT - オーストラリア/ダーウィン
+ AET - オーストラリア/シドニー
+ AGT - アメリカ/アルゼンチン/ブエノスアイレス
+ ART - アフリカ/カイロ
+ AST - アメリカ/アンカレッジ
+ BET - アメリカ/サンパウロ
+ BST - アジア/ダッカ
+ CAT - アフリカ/ハラール
+ CET - ヨーロッパ/パリ
+ CNT - アメリカ/セントジョンズ
+ CST - アメリカ/シカゴ
+ CTT - アジア/上海 
+ EAT - アフリカ/アディスアベバ
+ IET - アメリカ/インディアナ/インディアナポリス
+ IST - アジア/コルカタ
+ JST - アジア/東京
+ MIT - 太平洋/アピア
+ NET - アジア/エレバン
+ NST - 太平洋/オークランド
+ PLT - アジア/カラチ
+ PRT - アメリカ/プエルトリコ
+ PST - アメリカ/ロスアンジェルス
+ SST - 太平洋/ガダルカナル
+ VST - アジア/ホーチミン

### サポートされているリージョンベースの ID
<a name="supported-region-based-ids"></a>

日付および時刻関数は、UTC\$100:00 との関係で整理された次のリージョンベースの ID をサポートします。
+ その他/GMT\$112 (UTC-12:00) 
+ 太平洋/パゴパゴ (UTC-11:00) 
+ 太平洋/サモア (UTC-11:00) 
+ 太平洋/ニウエ (UTC-11) :00) 
+ アメリカ/サモア (UTC-11:00) 
+ その他/GMT\$111 (UTC-11:00) 
+ 太平洋/ミッドウェイ (UTC-11:00) 
+ 太平洋/ホノルル (UTC-10:00) 
+ 太平洋/ラロトンガ島 (UTC-10:00) 
+ 太平洋/タヒチ (UTC-10:00) 
+ 太平洋/ジョンストン (UTC-10:00) 
+ アメリカ/ハワイ (UTC-10:00) 
+ SystemV/HST10 (UTC-10:00) 
+ その他/GMT\$110 (UTC-10:00) 
+ 太平洋/マルケサス諸島 (UTC-09:30) 
+ その他/GMT\$19 (UTC-09:00) 
+ 太平洋/ガンビア (UTC-09:00) 
+ アメリカ/アトカ (UTC-09:00) 
+ SystemV/YST9 (UTC-09:00) 
+ アメリカ/アダック (UTC-09:00) 
+ アメリカ/アリューシャン (UTC-09:00) 
+ その他/GMT\$18 (UTC-08:00) 
+ アメリカ/アラスカ (UTC-08:00) 
+ アメリカ/ジュノー (UTC-08:00) 
+ アメリカ/メトラカトラ (UTC-08:00) 
+ アメリカ/ヤクタト (UTC-08:00) 
+ 太平洋/ピトケアン (UTC-08:00) 
+ アメリカ/シトカ (UTC-08:00) 
+ アメリカ/アンカレッジ (UTC-08:00) 
+ SystemV/PST8 (UTC-08:00) 
+ アメリカ/ノーム (UTC-08:00) 
+ SystemV/YST9YDT (UTC-08:00) 
+ カナダ/ユーコン (UTC-07:00) 
+ アメリカ/太平洋-新 (UTC-07:00) 
+ その他/GMT\$17 (UTC-07:00) 
+ アメリカ/アリゾナ州 (UTC-07:00) 
+ アメリカ/ドーソンクリーク (UTC-07:00) 
+ カナダ/太平洋 (UTC-07:00) 
+ PST8PDT (UTC-07:00) 
+ SystemV/MST7 (UTC-07:00) 
+ アメリカ/ドーソン (UTC-07:00) 
+ アメリカ/ティファナ (UTC-07:00) 
+ アメリカ/ティファナ (UTC-07:00) 
+ アメリカ/クレストン (UTC-07:00) 
+ アメリカ/エルモシロ (UTC-07:00) 
+ アメリカ/サンタイザベル (UTC-07:00) 
+ アメリカ/バンクーバー (UTC-07:00) 
+ アメリカ/エンセナダ (UTC-07:00) 
+ アメリカ/フェニックス (UTC-07:00) 
+ アメリカ/ホワイトホース (UTC-07:00) 
+ アメリカ/フォートネルソン (UTC-07:00) 
+ SystemV/PST8PDT (UTC-07:00) 
+ アメリカ/ロサンゼルス (UTC-07:00) 
+ アメリカ/太平洋 (UTC-07:00) 
+ アメリカ/エルサルバドル (UTC-06:00) 
+ アメリカ/グアテマラ (UTC-06:00) 
+ アメリカ/ベリーズ (UTC-06:00) 
+ アメリカ/マナグア (UTC-06:00) 
+ アメリカ/テグシガルパ (UTC-06:00) 
+ その他/GMT\$16 (UTC-06:00) 
+ 太平洋/イースター (UTC-06:00) 
+ メキシコ/バハスール (UTC-06:00) 
+ アメリカ/レジーナ (UTC-06:00) 
+ アメリカ/デンバー (UTC-06:00) 
+ 太平洋/ガラパゴス (UTC-06:00) 
+ アメリカ/イエローナイフ (UTC-06:00) 
+ アメリカ/スウィフトカレント (UTC-06:00) 
+ アメリカ/イヌビック (UTC-06:00) 
+ アメリカ/マサトラン (UTC-06:00) 
+ アメリカ/ボイズ (UTC-06:00) 
+ アメリカ/コスタリカ (UTC-06:00) 
+ MST7MDT (UTC-06:00) 
+ SystemV/CST6 (UTC-06:00) 
+ アメリカ/チワワ (UTC-06:00) 
+ アメリカ/オジナガ (UTC-06:00) 
+ チリ/イースター島 (UTC-06:00) 
+ アメリカ/山地 (UTC-06:00) 
+ アメリカ/エドモントン (UTC-06:00) 
+ カナダ/山地 (UTC-06:00) 
+ アメリカ/ケンブリッジベイ (UTC-06:00) 
+ ナバホ (UTC-06:00) 
+ SystemV/MST7MDT (UTC-06:00) 
+ カナダ/サスカチュワン (UTC-06:00) 
+ アメリカ/シップロック (UTC-06:00) 
+ アメリカ/パナマ (UTC-05:00) 
+ アメリカ/シカゴ (UTC-05:00) 
+ アメリカ/シカゴ (UTC-05:00) 
+ その他/GMT\$15 (UTC-05:00) 
+ メキシコ/一般 (UTC-05:00) 
+ アメリカ/ポルトアクレ (UTC-05:00) 
+ アメリカ/グアヤキル (UTC-05:00) 
+ アメリカ/ランキンインレット (UTC-05:00) 
+ アメリカ/中部 (UTC-05:00) 
+ アメリカ/レイニーリバー (UTC-05:00) 
+ アメリカ/インディアナ/ノックス (UTC-05:00) 
+ アメリカ/ノースダコタ/ビューラ (UTC-05:00) 
+ アメリカ/モンテレイ (UTC-05:00) 
+ アメリカ/ジャマイカ (UTC-05:00) 
+ アメリカ/アティコカン (UTC-05:00) 
+ アメリカ/コーラルハーバー (UTC-05:00) 
+ アメリカ/ノースダコタ/中部 (UTC-05:00) 
+ アメリカ/ケイマン (UTC-05:00) 
+ アメリカ/インディアナ/テルシティ (UTC-05:00) 
+ アメリカ/メキシコシティ (UTC-05:00) 
+ アメリカ/マタモロス (UTC-05:00) 
+ CST6CDT (UTC-05:00) 
+ アメリカ/ノックスインディアナ州 (UTC-05:00) 
+ アメリカ/ボゴタ (UTC-05:00) 
+ アメリカ/メノマニー (UTC-05:00) 
+ アメリカ/レゾリュート (UTC-05:00) 
+ SystemV/EST5 (UTC-05:00) 
+ カナダ/中部 (UTC-05:00) 
+ ブラジル/アクレ (UTC-05:00) 
+ アメリカ/カンクン (UTC-05:00) 
+ アメリカ/リマ (UTC-05:00) 
+ アメリカ/バイアバンデラス (UTC-05:00) 
+ アメリカ/インディアナ-スターク (UTC-05:00) 
+ アメリカ/リオブランコ (UTC-05:00) 
+ SystemV/CST6CDT (UTC-05:00) 
+ ジャマイカ (UTC-05:00) 
+ アメリカ/メリダ (UTC-05:00) 
+ アメリカ/ノースダコタ/ニューセーラム (UTC-05:00) 
+ アメリカ/ウィニペグ (UTC-05:00) 
+ アメリカ/クイアバ (UTC-04:00) 
+ アメリカ/マリゴ (UTC-04:00) 
+ アメリカ/インディアナ/ピーターズバーグ (UTC-04:00) 
+ チリ/コンチネンタル (UTC-04:00) 
+ アメリカ/グランドターク (UTC-04:00) 
+ キューバ (UTC-04:00) 
+ その他/GMT\$14 (UTC-04:00) 
+ アメリカ/マナウス (UTC-04:00) 
+ アメリカ/フォートウェイン (UTC-04:00) 
+ アメリカ/セントトーマス (UTC-04:00) 
+ アメリカ/アンギラ (UTC-04:00) 
+ アメリカ/ハバナ (UTC-04:00) 
+ アメリカ/ミシガン (UTC-04:00) 
+ アメリカ/バルバドス (UTC-04:00) 
+ アメリカ/ルイビル (UTC-04:00) 
+ アメリカ/キュラソー (UTC-04:00) 
+ アメリカ/ガイアナ (UTC-04:00) 
+ アメリカ/マルティニーク (UTC-04:00) 
+ アメリカ/プエルトリコ (UTC-04:00) 
+ アメリカ/ポートオブスペイン (UTC-04:00) 
+ SystemV/AST4 (UTC-04:00) 
+ アメリカ/インディアナ/ベベイ (UTC-04:00) 
+ アメリカ/インディアナ/ビンセンズ (UTC-04:00) 
+ アメリカ/クラレンダイク (UTC-04:00) 
+ アメリカ/アンティグア (UTC-04:00) 
+ アメリカ/インディアナポリス (UTC-04:00) 
+ アメリカ/イカルイト (UTC-04:00) 
+ アメリカ/セントビンセント (UTC-04:00) 
+ アメリカ/ケンタッキー/ルイビル (UTC-04:00) 
+ アメリカ/ドミニカ (UTC-04:00) 
+ アメリカ/アスンシオン (UTC-04:00) 
+ EST5EDT (UTC-04:00) 
+ アメリカ/ナッソー (UTC-04:00) 
+ アメリカ/ケンタッキー/モンティセロ (UTC-04:00) 
+ ブラジル/西部 (UTC-04:00) 
+ アメリカ/アルバ (UTC-04:00) 
+ アメリカ/インディアナ/インディアナポリス (UTC-04:00) 
+ アメリカ/サンティアゴ (UTC-04:00) 
+ アメリカ/ラパス (UTC-04:00) 
+ アメリカ/サンダーベイ (UTC-04:00) 
+ アメリカ/インディアナ/マレンゴ (UTC-04:00) 
+ アメリカ/ブランサブロン (UTC-04:00) 
+ アメリカ/サントドミンゴ (UTC-04:00) 
+ アメリカ/東部 (UTC-04:00) 
+ カナダ/東部 (UTC-04:00) 
+ アメリカ/ポルトープランス (UTC-04:00) 
+ アメリカ/サンバルテルミー (UTC-04:00) 
+ アメリカ/ニピゴン (UTC-04:00) 
+ アメリカ/東インディアナ (UTC-04:00) 
+ アメリカ/セントルシア (UTC-04:00) 
+ アメリカ/モントセラト (UTC-04:00) 
+ アメリカ/ローワープリンセズ (UTC-04:00) 
+ アメリカ/デトロイト (UTC-04:00) 
+ アメリカ/トルトラ (UTC-04:00) 
+ アメリカ/ポルトヴェーリョ (UTC-04:00) 
+ アメリカ/カンポグランデ (UTC-04:00) 
+ アメリカ/バージン (UTC-04:00) 
+ アメリカ/パングナータング (UTC-04:00) 
+ アメリカ/モントリオール (UTC-04:00) 
+ アメリカ/インディアナ/ウィナマック (UTC-04:00) 
+ アメリカ/ボアビスタ (UTC-04:00) 
+ アメリカ/グレナダ (UTC-04:00) 
+ アメリカ/ニューヨーク (UTC-04:00) 
+ アメリカ/セントキッツ (UTC-04:00) 
+ アメリカ/カラカス (UTC-04:00) 
+ アメリカ/グアドループ (UTC-04:00) 
+ アメリカ/トロント (UTC-04:00) 
+ SystemV/EST5EDT (UTC-04:00) 
+ アメリカ/アルゼンチン/カタマルカ (UTC-03:00) 
+ カナダ/大西洋 (UTC-03:00) 
+ アメリカ/アルゼンチン/コルドバ (UTC-03:00) 
+ アメリカ/アラゲイナ (UTC-03:00) 
+ アメリカ/アルゼンチン/サルタ (UTC-03:00) 
+ その他/GMT\$13 (UTC-03:00) 
+ アメリカ/モンテビデオ (UTC-03:00) 
+ ブラジル/東部 (UTC-03:00) 
+ アメリカ/アルゼンチン/メンドーサ (UTC-03:00) 
+ アメリカ/アルゼンチン/リオガジェゴス (UTC-03:00) 
+ アメリカ/カタマルカ (UTC-03:00) 
+ アメリカ/コルドバ (UTC-03:00) 
+ アメリカ/サンパウロ (UTC-03:00) 
+ アメリカ/アルゼンチン/フフイ (UTC-03:00) 
+ アメリカ/カイエンヌ (UTC-03:00) 
+ アメリカ/レシフェ (UTC-03:00) 
+ アメリカ/ブエノスアイレス (UTC-03:00) 
+ アメリカ/パラマリボ (UTC-03:00) 
+ アメリカ/モンクトン (UTC-03:00) 
+ アメリカ/メンドーサ (UTC-03:00) 
+ アメリカ/サンタレム (UTC-03:00) 
+ 大西洋/バミューダ (UTC-03:00) 
+ アメリカ/マセイオ (UTC-03:00) 
+ 大西洋/スタンレー (UTC-03:00) 
+ アメリカ/ハリファックス (UTC-03:00) 
+ 南極大陸/ロセラ (UTC-03:00) 
+ アメリカ/アルゼンチン/サンルイス (UTC-03:00) 
+ アメリカ/アルゼンチン/ウシュアイア (UTC-03:00) 
+ 南極大陸/パーマー (UTC-03:00) 
+ アメリカ/プンタアレナス (UTC-03:00) 
+ アメリカ/グレイスベイ (UTC-03:00) 
+ アメリカ/フォルタレザ (UTC-03:00) 
+ アメリカ/チュール (UTC-03:00) 
+ アメリカ/アルゼンチン/ラリオハ州 (UTC-03:00) 
+ アメリカ/ベレム (UTC-03:00) 
+ アメリカ/フフイ (UTC-03:00) 
+ アメリカ/バイア (UTC-03:00) 
+ アメリカ/グースベイ (UTC-03:00) 
+ アメリカ/アルゼンチン/サンファン (UTC-03:00) 
+ アメリカ/アルゼンチン/コモドリヴァダヴィア (UTC-03:00) 
+ アメリカ/アルゼンチン/トゥクマン (UTC-03:00) 
+ アメリカ/ロサリオ (UTC-03:00) 
+ SystemV/AST4ADT (UTC-03:00) 
+ アメリカ/アルゼンチン/ブエノスアイレス (UTC-03:00) 
+ アメリカ/セントジョンズ (UTC-02:30) 
+ カナダ/ニューファンドランド (UTC-02:30) 
+ アメリカ/ミクロン (UTC-02:00) 
+ その他/GMT\$12 (UTC-02:00) 
+ アメリカ/ゴッドホーブ (UTC-02:00) 
+ アメリカ/ノローニャ (UTC-02:00) 
+ ブラジル/デノローニャ (UTC-02:00) 
+ 大西洋/サウスジョージア (UTC-02:00) 
+ その他/GMT\$11 (UTC-01:00) 
+ 大西洋/カーボベルデ (UTC-01:00) 
+ 太平洋/キリティマティ (UTC\$114:00) 
+ その他/GMT-14 (UTC\$1 14:00) 
+ 太平洋/ファカオフォ (UTC\$113:00) 
+ 太平洋/エンダーベリー (UTC\$113:00) 
+ 太平洋/アピア (UTC\$113:00) 
+ 太平洋/トンガタプ (UTC\$113:00) 
+ その他/GMT-13 (UTC\$1 13:00) 
+ NZ-CHAT (UTC\$112:45) 
+ 太平洋/チャタム (UTC\$112:45) 
+ 太平洋/クェゼリン (UTC\$112:00) 
+ 南極大陸/マクマード (UTC\$112:00) 
+ 太平洋/ウォリス (UTC\$112:00) 
+ 太平洋/フィジー (UTC\$112:00) 
+ 太平洋/フナフチ (UTC\$112:00) 
+ 太平洋/ナウル (UTC\$112:00) 
+ クェゼリン (UTC\$112:00) 
+ NZ (UTC\$1 12:00) 
+ 太平洋/ウェイク (UTC\$112:00) 
+ 南極大陸/南極 (UTC\$112:00) 
+ 太平洋/タラワ (UTC\$112:00) 
+ 太平洋/オークランド (UTC\$112:00) 
+ アジア/カムチャツカ (UTC\$112:00) 
+ その他/GMT-12 (UTC\$1 12:00) 
+ アジア/アナディリ (UTC\$1 12:00) 
+ 太平洋/マジュロ (UTC\$112:00) 
+ 太平洋/ポナペ (UTC\$111:00) 
+ 太平洋/ブーゲンビル (UTC\$111:00) 
+ 南極大陸/マッカリー (UTC\$111:00) 
+ 太平洋/ポンペイ (UTC\$111:00) 
+ 太平洋/エフェート (UTC\$111:00) 
+ 太平洋/ノーフォーク (UTC\$111:00) 
+ アジア/マガダン (UTC\$111:00) 
+ 太平洋/コスラエ (UTC\$111:00) 
+ アジア/サハリン (UTC\$111:00) 
+ 太平洋/ヌメア (UTC\$111:00) 
+ その他/GMT-11 (UTC\$1 11:00) 
+ アジア/スレドネコリムスク (UTC\$111:00) 
+ 太平洋/ガダルカナル (UTC\$111:00) 
+ オーストラリア/ロードハウ (UTC\$110:30) 
+ オーストラリア/LHI (UTC\$110:30) 
+ オーストラリア/ホバート (UTC\$110:00) 
+ 太平洋/ヤップ (UTC\$110:00) 
+ オーストラリア/タスマニア (UTC\$110:00) 
+ 太平洋/ポートモレスビー (UTC\$110:00) 
+ オーストラリア/ACT (UTC\$110:00) 
+ オーストラリア/ビクトリア (UTC\$110:00) 
+ 太平洋/チューク (UTC\$110:00) 
+ オーストラリア/クイーンズランド (UTC\$110:00) 
+ オーストラリア/キャンベラ (UTC\$110:00) 
+ オーストラリア/カリー (UTC\$110:00) 
+ 太平洋/グアム (UTC\$1 10:00) 
+ 太平洋/トラック (UTC\$110:00) 
+ オーストラリア/NSW (UTC\$110:00) 
+ アジア/ウラジオストク (UTC\$110:00) 
+ 太平洋/サイパン (UTC\$110:00) 
+ 南極大陸/デュモンデュルビル (UTC\$110:00) 
+ オーストラリア/シドニー (UTC\$110:00) 
+ オーストラリア/ブリスベン (UTC\$110:00) 
+ その他/GMT-10 (UTC\$1 10:00) 
+ アジア/ウストネーラ (UTC\$110:00) 
+ オーストラリア/メルボルン (UTC\$110:00) 
+ オーストラリア/リンデマン (UTC\$110:00) 
+ オーストラリア/北部 (UTC\$109:30) 
+ オーストラリア/ヤンコウィンナ (UTC\$109:30) 
+ オーストラリア/アデレード (UTC\$109:30) 
+ オーストラリア/ブロークンヒル (UTC\$109:30) 
+ オーストラリア/南部 (UTC\$109:30) 
+ オーストラリア/ダーウィン (UTC\$109:30) 
+ その他/GMT-9 (UTC\$1 09:00) 
+ 太平洋/パラオ (UTC\$109:00) 
+ アジア/チタ (UTC\$109:00) 
+ アジア/ディリ (UTC\$109:00) 
+ アジア/ジャヤプラ (UTC\$109:00) 
+ アジア/ヤクーツク (UTC\$109:00) 
+ アジア/平壌 (UTC\$109:00) 
+ ROK (UTC\$109:00) 
+ アジア/ソウル (UTC\$109:00) 
+ アジア/ハンディガ (UTC\$109:00) 
+ 日本 (UTC\$109:00) 
+ アジア/東京 (UTC\$109:00) 
+ オーストラリア/ユークラ (UTC\$108:45) 
+ アジア/クチン (UTC\$108:00) 
+ アジア/重慶 (UTC\$108:00) 
+ その他/GMT-8 (UTC\$1 08:00) 
+ オーストラリア/パース (UTC\$108:00) 
+ アジア/マカオ (UTC\$108:00) 
+ アジア/マカオ (UTC\$108:00) 
+ アジア/チョイバルサン (UTC\$108:00) 
+ アジア/上海 (UTC\$108:00) 
+ 南極大陸/ケーシー (UTC\$108:00) 
+ アジア/ウランバートル (UTC\$108:00) 
+ アジア/重慶 (UTC\$108:00) 
+ アジア/ウランバートル (UTC\$108:00) 
+ アジア/台北 (UTC\$108:00) 
+ アジア/マニラ (UTC\$108:00) 
+ PRC (UTC\$108:00) 
+ アジア/ウジュンパンダン (UTC\$108:00) 
+ アジア/ハルビン (UTC\$108:00) 
+ シンガポール (UTC\$108:00) 
+ アジア/ブルネイ (UTC\$108:00) 
+ オーストラリア/西部 (UTC\$108:00) 
+ アジア/香港 (UTC\$108:00) 
+ アジア/マカッサル (UTC\$108:00) 
+ 香港 (UTC\$108:00) 
+ アジア/クアラルンプール (UTC\$108:00) 
+ アジア/イルクーツク (UTC\$108:00) 
+ アジア/シンガポール (UTC\$108:00) 
+ アジア/ポンティアナック (UTC\$107:00) 
+ その他/GMT-7 (UTC\$1 07:00) 
+ アジア/プノンペン (UTC\$107:00) 
+ アジア/ノボシビルスク (UTC\$107:00) 
+ 南極大陸/デイビス (UTC\$107:00) 
+ アジア/トムスク (UTC\$107:00) 
+ アジア/ジャカルタ (UTC\$107:00) 
+ アジア/バルナウル (UTC\$107:00) 
+ インド洋/クリスマス (UTC\$107:00) 
+ アジア/ホーチミン (UTC\$107:00) 
+ アジア/ホバート (UTC\$107:00) 
+ アジア/バンコク (UTC\$107:00) 
+ アジア/ビエンチャン (UTC\$107:00) 
+ アジア/ノボクズネツク (UTC\$107:00) 
+ アジア/クラスノヤルスク (UTC\$107:00) 
+ アジア/サイゴン (UTC\$107:00) 
+ アジア/ヤンゴン (UTC\$106:30) 
+ アジア/ラングーン (UTC\$106:30) 
+ インド洋/ココス (UTC\$106:30) 
+ アジア/カシュガル (UTC\$106:00) 
+ その他/GMT-6 (UTC\$1 06:00) 
+ アジア/アルマティ (UTC\$106:00) 
+ アジア/ダッカ (UTC\$106:00) 
+ アジア/オムスク (UTC\$106:00) 
+ アジア/ダッカ (UTC\$106:00) 
+ インド洋/チャゴス (UTC\$106:00) 
+ アジア/キジローダ (UTC\$106:00) 
+ アジア/ビシュケク (UTC\$106:00) 
+ 南極大陸/ボストーク (UTC\$106:00) 
+ アジア/ウルムチ (UTC\$106:00) 
+ アジア/ティンプー (UTC\$106:00) 
+ アジア/ティンプー (UTC\$106:00) 
+ アジア/カトマンズ (UTC\$105:45) 
+ アジア/カトマンズ (UTC\$105:45) 
+ アジア/コルカタ (UTC\$105:30) 
+ アジア/コロンボ (UTC\$105:30) 
+ アジア/カルカッタ (UTC\$105:30) 
+ アジア/アクタウ (UTC\$105:00) 
+ その他/GMT-5 (UTC\$1 05:00) 
+ アジア/サマルカンド (UTC\$105:00) 
+ アジア/カラチ (UTC\$105:00) 
+ アジア/エカテリンブルク (UTC\$105:00) 
+ アジア/ドゥシャンベ (UTC\$1 05:00) 
+ アジア/ドゥシャンベ (UTC\$105:00) 
+ アジア/オラール (UTC\$105:00) 
+ アジア/タシケント (UTC\$105:00) 
+ 南極大陸/モーソン (UTC\$105:00) 
+ アジア/アクトベ (UTC\$105:00) 
+ アジア/アシュハバード (UTC\$105:00) 
+ アジア/アシガバート (UTC\$105:00) 
+ アジア/アティラウ (UTC\$105:00) 
+ インド洋/ケルゲレン (UTC\$105:00) 
+ イラン (UTC\$104:30) 
+ アジア/テヘラン (UTC\$104:30) 
+ アジア/カブール (UTC\$104:30) 
+ アジア/エレバン (UTC\$104:00) 
+ その他/GMT-4 (UTC\$1 04:00) 
+ その他/GMT-4 (UTC\$1 04:00) 
+ アジア/ドバイ (UTC\$104:00) 
+ インド洋/レユニオン (UTC\$104:00) 
+ ヨーロッパ/サラトフ (UTC\$104:00) 
+ ヨーロッパ/サマラ (UTC\$104:00) 
+ インド/マエ (UTC\$104:00) 
+ アジア/バクー (UTC\$104:00) 
+ アジア/マスカット (UTC\$104:00) 
+ ヨーロッパ/ボルゴグラード (UTC\$104:00) 
+ ヨーロッパ/アストラカン (UTC\$104:00) 
+ アジア/トビリシ (UTC\$104:00) 
+ ヨーロッパ/ウリヤノフスク (UTC\$104:00) 
+ アジア/アデン (UTC\$103:00) 
+ アフリカ/ナイロビ (UTC\$103:00) 
+ ヨーロッパ/イスタンブール (UTC\$103:00) 
+ その他/GMT-3 (UTC\$1 03:00) 
+ ヨーロッパ/ザポロージエ (UTC\$103:00) 
+ イスラエル (UTC\$103:00) 
+ インド洋/コモロ (UTC\$103:00) 
+ 南極大陸/シオワ (UTC\$103:00) 
+ アフリカ/モガディシュ (UTC\$103:00) 
+ ヨーロッパ/ブカレスト (UTC\$103:00) 
+ アフリカ/アスメラ (UTC\$103:00) 
+ ヨーロッパ/マリエハムン (UTC\$103:00) 
+ アジア/イスタンブール (UTC\$103:00) 
+ ヨーロッパ/ティラスポリ (UTC\$103:00) 
+ ヨーロッパ/モスクワ (UTC\$103:00) 
+ ヨーロッパ/キシナウ (UTC\$103:00) 
+ ヨーロッパ/ヘルシンキ (UTC\$103:00) 
+ アジア/ベイルート (UTC\$103:00) 
+ アジア/テルアビブ (UTC\$103:00) 
+ アフリカ/ジブチ (UTC\$103:00) 
+ ヨーロッパ/シンフェロポリ (UTC\$103:00) 
+ ヨーロッパ/ソフィア (UTC\$103:00) 
+ アジア/ガザ (UTC\$103:00) 
+ アフリカ/アスマラ (UTC\$103:00) 
+ ヨーロッパ/リガ (UTC\$103:00) 
+ アジア/バグダッド (UTC\$103:00) 
+ アジア/ダマスカス (UTC\$103:00) 
+ アフリカ/ダルエスサラーム (UTC\$103:00) 
+ アフリカ/アディスアベバ (UTC\$103:00) 
+ ヨーロッパ/ウジゴロド (UTC\$103:00) 
+ アジア/エルサレム (UTC\$103:00) 
+ アジア/リヤド (UTC\$103:00) 
+ アジア/クウェート (UTC\$103:00) 
+ ヨーロッパ/キーロフ (UTC\$103:00) 
+ アフリカ/カンパラ (UTC\$103:00) 
+ ヨーロッパ/ミンスク (UTC\$103:00) 
+ アジア/カタール (UTC\$103:00) 
+ ヨーロッパ/キエフ (UTC\$103:00) 
+ アジア/バーレーン (UTC\$103:00) 
+ ヨーロッパ/ビリニュス (UTC\$103:00) 
+ インド洋/アンタナナリボ (UTC\$103:00) 
+ インド洋/マヨット (UTC\$103:00) 
+ ヨーロッパ/タリン (UTC\$103:00) 
+ トルコ (UTC\$103:00) 
+ アフリカ/ジュバ (UTC\$103:00) 
+ アジア/ニコシア (UTC\$103:00) 
+ アジア/ファマグスタ (UTC\$103:00) 
+ W-SU (UTC\$103:00) 
+ EET (UTC\$103:00) 
+ アジア/ヘブロン (UTC\$103:00) 
+ アジア/アンマン (UTC\$103:00) 
+ ヨーロッパ/ニコシア (UTC\$103:00) 
+ ヨーロッパ/アテネ (UTC\$103:00) 
+ アフリカ/カイロ (UTC\$102:00) 
+ アフリカ/ババーネ (UTC\$102:00) 
+ ヨーロッパ/ブリュッセル (UTC\$102:00) 
+ ヨーロッパ/ワルシャワ (UTC\$102:00) 
+ CET (UTC\$102:00) 
+ ヨーロッパ/ルクセンブルグ (UTC\$102:00) 
+ その他/GMT-2 (UTC\$1 02:00) 
+ リビア (UTC\$102:00) 
+ アフリカ/キガリ (UTC\$102:00) 
+ アフリカ/トリポリ (UTC\$102:00) 
+ ヨーロッパ/カリーニングラード (UTC\$102:00) 
+ アフリカ/ウィンドフック (UTC\$102:00) 
+ ヨーロッパ/マルタ (UTC\$102:00) 
+ ヨーロッパ/ビュッセン (UTC\$102:00) 
+ 
+ ヨーロッパ/スコピエ (UTC\$102:00) 
+ ヨーロッパ/サラエボ (UTC\$102:00) 
+ ヨーロッパ/ローマ (UTC\$102:00) 
+ ヨーロッパ/チューリッヒ (UTC\$102:00) 
+ ヨーロッパ/ジブラルタル (UTC\$102:00) 
+ アフリカ/ルブンバシ (UTC\$102:00) 
+ ヨーロッパ/ファドゥーツ (UTC\$102:00) 
+ ヨーロッパ/リュブリャナ (UTC\$102:00) 
+ ヨーロッパ/ベルリン (UTC\$102:00) 
+ ヨーロッパ/ストックホルム (UTC\$102:00) 
+ ヨーロッパ/ブダペスト (UTC\$102:00) 
+ ヨーロッパ/ザグレブ (UTC\$102:00) 
+ ヨーロッパ/パリ (UTC\$102:00) 
+ アフリカ/セウタ (UTC\$102:00) 
+ ヨーロッパ/プラハ (UTC\$102:00) 
+ 南極大陸/トロール (UTC\$102:00) 
+ アフリカ/ハボローネ (UTC\$102:00) 
+ ヨーロッパ/コペンハーゲン (UTC\$102:00) 
+ ヨーロッパ/ウィーン (UTC\$102:00) 
+ ヨーロッパ/ティラネ (UTC\$102:00) 
+ MET (UTC\$102:00) 
+ ヨーロッパ/アムステルダム (UTC\$102:00) 
+ アフリカ/マプト (UTC\$102:00) 
+ ヨーロッパ/サンマリノ (UTC\$102:00) 
+ ポーランド (UTC\$102:00) 
+ ヨーロッパ/アンドラ (UTC\$102:00) 
+ ヨーロッパ/オスロ (UTC\$102:00) 
+ ヨーロッパ/ポドゴリツァ (UTC\$102:00) 
+ アフリカ/ブジュンブラ (UTC\$102:00) 
+ 大西洋/ヤンマイエン (UTC\$102:00) 
+ アフリカ/マセル (UTC\$102:00) 
+ ヨーロッパ/マドリッド (UTC\$102:00) 
+ アフリカ/ブランタイヤ (UTC\$102:00) 
+ アフリカ/ルサカ (UTC\$102:00) 
+ アフリカ/ハラレ (UTC\$102:00) 
+ アフリカ/ハルツーム (UTC\$102:00) 
+ アフリカ/ヨハネスブルグ (UTC\$102:00) 
+ ヨーロッパ/ベオグラード (UTC\$102:00) 
+ ヨーロッパ/ブラチスラバ (UTC\$102:00) 
+ 北極/ロンゲルビアン (UTC\$102:00) 
+ エジプト (UTC\$102:00) 
+ ヨーロッパ/バチカン (UTC\$102:00) 
+ ヨーロッパ/モナコ (UTC\$102:00) 
+ ヨーロッパ/ロンドン (UTC\$101:00) 
+ その他/GMT-1 (UTC\$1 01:00) 
+ ヨーロッパ/ジャージー (UTC\$101:00) 
+ ヨーロッパ/ガーンジー (UTC\$101:00) 
+ ヨーロッパ/マン島 (UTC\$101:00) 
+ アフリカ/チュニス (UTC\$101:00) 
+ アフリカ/マラボ (UTC\$101:00) 
+ GB-Eire (UTC\$101:00)。
+ アフリカ/ラゴス (UTC\$101:00) 
+ アフリカ/アルジェ (UTC\$101:00) 
+ GB (UTC\$101:00) 
+ ポルトガル (UTC\$101:00) 
+ アフリカ/サントメ (UTC\$101:00) 
+ アフリカ/ンジャメナ (UTC\$101:00) 
+ 大西洋/フェロー (UTC\$101:00) 
+ アイルランド (UTC\$101:00) 
+ 大西洋/フェロー (UTC\$101:00) 
+ ヨーロッパ/ダブリン (UTC\$101:00) 
+ アフリカ/リブレビル (UTC\$101:00) 
+ アフリカ/エルアイウン (UTC\$101:00) 
+ アフリカ/エルアイウン (UTC\$101:00) 
+ アフリカ/ドゥアラ (UTC\$101:00) 
+ アフリカ/ブラザビル (UTC\$101:00) 
+ アフリカ/ポルトノボ (UTC\$101:00) 
+ 大西洋/マデイラ (UTC\$101:00) 
+ ヨーロッパ/リスボン (UTC\$101:00) 
+ 大西洋/Canary (UTC\$101:00) 
+ アフリカ/カサブランカ (UTC\$101:00) 
+ ヨーロッパ/ベルファスト (UTC\$101:00) 
+ アフリカ/ルアンダ (UTC\$101:00) 
+ アフリカ/キンシャサ (UTC\$101:00) 
+ アフリカ/バンギ (UTC\$101:00) 
+ WET (UTC\$101:00) 
+ アフリカ/ニアメー (UTC\$101:00) 
+ GMT (UTC\$100:00) 
+ その他/GMT-0 (UTC\$1 00:00) 
+ 大西洋/セントヘレナ (UTC\$100:00) 
+ その他/GMT\$10 (UTC\$1 00:00) 
+ アフリカ/バンジュール (UTC\$100:00) 
+ その他etc/GMT (UTC\$1 00:00) 
+ アフリカ/フリータウン (UTC\$100:00) 
+ アフリカ/バマコ (UTC\$100:00) 
+ アフリカ/コナクリ (UTC\$100:00) 
+ ユニバーサル (UTC\$1 00:00) 
+ アフリカ/ヌアクショット (UTC\$100:00) 
+ UTC (UTC\$100:00) 
+ その他/ユニバーサル (UTC\$100:00) 
+ 大西洋/アゾレス (UTC\$100:00) 
+ アフリカ/アビジャン (UTC\$100:00) 
+ アフリカ/アクラ (UTC\$100:00) 
+ その他/UCT (UTC\$1 00:00) 
+ GMT0 (UTC\$100:00) 
+ ズールー (UTC\$100:00) ズールー (UTC\$100:00) 
+ アフリカ/ワガドゥグ (UTC\$100:00) 
+ 大西洋/レイキャビク (UTC\$100:00) 
+ その他/ズールー (UTC\$1 00:00) 
+ アイスランド (UTC\$100:00) 
+ アフリカ/ロメ (UTC\$100:00) 
+ グリニッジ (UTC\$100:00) 
+ その他/gmt0 (UTC\$1 00:00) 
+ アメリカ/ダンマルクシャーン (UTC\$100:00) 
+ アフリカ/ダカール (UTC\$100:00) 
+ アフリカ/ビサウ (UTC\$100:00) 
+ その他/グリニッジ (UTC\$1 00:00) 
+ アフリカ/ティンブクトゥ (UTC\$100:00) 
+ UCT (UTC\$100:00) 
+ アフリカ/モンロビア (UTC\$100:00) 
+ その他/UTC (UTC\$100:00) 

# 数式表現チュートリアル
<a name="expression-tutorials"></a>

 AWS IoT SiteWiseで数式表現を使うには、次のチュートリアルを参考にしてください。

**Topics**
+ [式で文字列を使用する](#use-strings-in-formulas)
+ [データポイントをフィルタリングする](#filter-data)
+ [条件に一致するデータポイントをカウントする](#count-filtered-data)
+ [数式の遅延データ](#late-data)
+ [数式のデータ品質](#data-quality)
+ [未定義の値、無限の値、およびオーバーフロー値](#undefined-values)

## 式で文字列を使用する
<a name="use-strings-in-formulas"></a>

数式表現の中で文字列を操作することができます。また、属性や測定のプロパティを参照する変数から文字列を入力することができます。

**重要**  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](#undefined-values)」を参照してください。

AWS IoT SiteWise には、文字列の操作に使用できる次の式機能が用意されています。
+ [[String literals]](expression-literals.md#string-literal-definition) (文字列リテラル) 
+ [[index operator]](expression-operators.md#index-operator-definition) (インデックス演算子) (`s[index]`) 
+ [[slice operator]](expression-operators.md#slice-operator-definition) (スライス演算子) (`s[start:end:step]`) 
+ [[Comparison functions]](expression-comparison-functions.md)比較関数: 文字列を[[lexicographic order]](https://en.wikipedia.org/wiki/Lexicographic_order) (辞書式順序) に比較する関数です。
+ シリアル化された JSON オブジェクトをパースし、文字列を数値に変換できる `jp` 関数を含む[文字列関数](expression-string-functions.md)

## データポイントをフィルタリングする
<a name="filter-data"></a>

[[if function]](expression-conditional-functions.md#if-definition) (if関数) を使用すると、条件を満たさないデータポイントをフィルタリングすることができます。`if` 関数は条件を評価し、`true`、`false` の結果に対して異なる値を返す。`if` 関数の 1 ケースの出力として[[none constant]](expression-constants.md#none-definition) (無し定数) を使用すると、そのケースのデータポイントを破棄することができます。

**条件に合致するデータポイントをフィルタリングする場合。**
+ `if` 関数を使用して、ある条件を満たすかどうかをチェックする条件を定義し、`none` を `result_if_true` または `result_if_false` の値として返す変換を作成します。

**Example 例: 水が沸騰していないデータポイントをフィルタリングする。**  
ある機械の中の水の温度 (摂氏) を測定する測定器 `temp_c` があるとしましょう。次のような変換を定義することで、水が沸騰していないデータポイントをフィルタリングすることができます。  
+ 変換: `boiling_temps = if(gte(temp_c, 100), temp_c, none)` - 100℃以上であれば温度を返し、そうでなければデータポイントを返さない。

## 条件に一致するデータポイントをカウントする
<a name="count-filtered-data"></a>

[[comparison functions]](expression-comparison-functions.md) (比較関数) と [[sum () ]](expression-aggregation-functions.md#sum-definition) を使用して、条件が真であるデータポイントの数をカウントできます。

**条件に一致するデータポイントをカウントする場合。**

1. 比較関数を使用して、別のプロパティのフィルター条件を定義する変換を作成します。

1. その条件が満たされるデータポイントを合計するメトリクスを作成します。

**Example 例: 水が沸騰しているデータポイントの数を数える**  
ある機械の中の水の温度 (摂氏) を測定する測定器 `temp_c` があるとしましょう。次の変換プロパティとメトリクスプロパティを定義して、水が沸騰しているデータポイントの数をカウントできます。  
+ 変換: `is_boiling = gte(temp_c, 100)` - 温度が100℃以上であれば `1`、そうでなければ`0`を返す。
+ メトリクス: `boiling_count = sum(is_boiling)` - 水が沸騰しているデータポイントの数を返します。

## 数式の遅延データ
<a name="late-data"></a>

AWS IoT SiteWise は、最大 7 日経過したデータの遅延データ取り込みをサポートします。が遅延データ AWS IoT SiteWise を受信すると、過去のウィンドウに遅延データを入力するメトリクスの既存の値を再計算します。これらの再計算では、データ処理料金が発生します。

**注記**  
が遅延データを入力するプロパティ AWS IoT SiteWise を計算する場合、各プロパティの現在の式を使用します。

がメトリクスの過去のウィンドウ AWS IoT SiteWise を再計算すると、そのウィンドウの以前の値が置き換えられます。そのメトリクスの通知を有効にした場合、 はプロパティ値通知 AWS IoT SiteWise も発行します。つまり、以前に通知を受信したのと同じプロパティとタイムスタンプについて、新しいプロパティ値の更新通知を受け取ることができます。アプリケーションまたはデータレイクがプロパティ値通知を使用する場合、データが正確になるように、前の値を新しい値で更新する必要があります。

## 数式のデータ品質
<a name="data-quality"></a>

では AWS IoT SiteWise、各データポイントに品質コードがあり、次のいずれかになります。
+ `GOOD` - データはいずれの問題の影響も受けません。
+ `BAD` - データはセンサーの障害などの問題による影響を受けます。
+ `UNCERTAIN` - データはセンサーの不正確さなどの問題による影響を受けます。

AWS IoT SiteWise は、変換とメトリクスを計算するときに`GOOD`品質データのみを消費します。 は、正常な計算のために`GOOD`品質データのみを AWS IoT SiteWise 出力します。計算が失敗した場合、 AWS IoT SiteWise はその計算のデータポイントを出力しません。これは、計算の結果、未定義、無限、またはオーバーフロー値になった場合に発生します。

データのクエリとデータ品質によるフィルタ処理の詳細については、「[からのデータのクエリ AWS IoT SiteWise](query-industrial-data.md)」を参照してください。

## 未定義の値、無限の値、およびオーバーフロー値
<a name="undefined-values"></a>

一部の数式 (`x / 0`、、 など`log(0)`) は`sqrt(-1)`、実数システムで定義されていない値、無限、または でサポートされている範囲外の値を計算します AWS IoT SiteWise。アセットプロパティの式が未定義、無限、またはオーバーフロー値を計算した場合、その計算のデータポイントは出力 AWS IoT SiteWise されません。

AWS IoT SiteWise 式の結果として数値以外の値を計算しても、 はデータポイントを出力しません。つまり、文字列、配列、[[none constant]](expression-constants.md#none-definition) (無し定数) をコンピューティングする数式を定義した場合、 AWS IoT SiteWise はそのコンピューティングのデータポイントを出力しないのです。

**Example 例**  
次の式はそれぞれ、数値として表現 AWS IoT SiteWise できない値になります。これらの式を計算するとき、データポイントは出力 AWS IoT SiteWise されません。  
+ `x / 0` は未定義です。
+ `log(0)` は未定義です。
+ `sqrt(-1)` は実数系では未定義です。
+ `"hello" + " world"` は文字列です。
+ `jp('{"values":[3,6,7]}', '$.values')` は配列です。
+ `if(gte(temp, 300), temp, none)` が `none` より小さいとき、`temp` は `300` です。