時系列データの格納に関するベスト プラクティス

時系列データは、さまざまな方法で格納できます。 ここでは、時系列データを格納する際のベスト プラクティスを紹介します。

タイム スタンプを日付フィールドに格納する

時系列データのタイム スタンプは、専用の日付フィールドに格納することをお勧めします。 日付フィールドは、日時情報を格納するために設けられたデータベース フィールドです。 日付フィールドを使用することでクエリのパフォーマンスが向上し、数値フィールドや文字列フィールドに時間を格納する場合より高度なデータベース クエリを実行できます。 データ ソースに応じて、日付フィールド タイプとして、Date、DateOnly、TimeOnly、TimestampOffset を使用できます。

専用の日付フィールドを使用できない場合、データのタイム スタンプは文字列フィールドまたは数値フィールドに格納することができます。 たとえば、年次データを 2000、2001 などのように格納できます。 文字列フィールドの場合、クエリや並べ替えを効率的に行うためには、テキスト値は最も大きい時間単位の値から順に並んでいる必要があります (2012 年 1 月 26 日の場合は 20120126 など)。

注意:

日付の表示は、西暦 100 年~西暦 10,000 年の範囲でのみサポートされています。 この範囲外の日付を処理するには、値を数値形式に変換する (かつ「レンジ スライダーを使用してフィルタリングする」) か、文字列形式 (ラベリングのため) に変換することをお勧めします。

[時間フィールドの変換 (Convert Temporal Field)] ジオプロセシング ツールを使用して、タイム スタンプを含む文字列フィールドまたは数値フィールドを日付フィールドに変換できます。

時系列データを行形式で格納する

時系列データを ArcGIS AllSource で使用する場合、個々のフィーチャに関連付けられた時間値を行形式で保存してください。 タイム スライダーを使用して時間データを移動することができ、タイム スライダーの表示はレイヤーに基づいてフィルタリングされ、指定した期間内の行のみが表示されます。

各フィーチャまたはテーブル行について、特定の時点を表す 1 つのフィールドに時間値を格納するか、観測の開始と終了によって期間を表す 2 つのフィールドに時間値を格納することができます。

時間の経過に伴ってデータの属性が変化するか、フィーチャの形状が変わるかによって、時系列データを 1 つのテーブルに保存するか、「別々のテーブル」に保存するかを選択できます。

属性テーブルの複数の列に時間値を格納することがよくあります。 1990 年、1991 年、1992 年の郡別医療費はテーブルの 1 つの行の別々の列にリストされます。 タイム スライダーのデータ フィルタリング機能を使用してこのデータを時系列で表示するには、「時間値が行形式になる」ようにテーブルの書式を再設定する必要があります。

時間値を含むフィールドにインデックスを作成する

表示速度とクエリのパフォーマンスを改善するには、時間値を含むフィールドにインデックスを作成することをお勧めします。 [属性インデックスの追加 (Add Attribute Index)] ジオプロセシング ツールを使用して、インデックスを既存のテーブルまたはフィーチャクラスのフィールドに追加できます。

標準時間を使用する

サマータイム適用地域で時系列データを収集した場合は、できる限り、データの時間値を標準時間で保存してください。 サマータイムで収集されたデータは、維持することが困難です。 サマータイムは地域によって異なり、サマータイム対応ルールも年度ごとに変わる可能性があります。

時間値を標準時間で保存しておけば、編集時におけるデータの損失や重複を防げると同時に、移行時の時間的なあいまいさを排除できます。

時間フィールドでの NULL 値の使用

NULL 値が時間フィールドに保存されていることがあります。 たとえば、開始時刻と終了時刻の両方を含むレイヤーは、NULL 終了時刻を使用することで、フィーチャが将来まで存在するものとして示すことができます。 タイム スライダーを使用すると、開始時刻が含まれている場合にフィーチャが表示され、残りの再生においても継続して表示されます。 逆も同じく、NULL 開始時刻はフィーチャが過去から存在することを示し、開始時刻直後から終了時刻に到達するまで表示されます。

ただし、時間が単独のフィールドに格納されている場合、NULL 値を含むフィーチャは期間内に収まらないため除外されます。

使用する日付フィールド タイプの決定

データの格納方法および日付の使用プランは、推奨される日付および時間フィールド タイプに直接影響します。 ニーズに最適なフィールド タイプを選択することが重要となります。 使用できる日付フィールドには、Date、DateOnly、TimeOnly、TimestampOffset の 4 つのタイプがあります。

次の表では、使用する日付フィールド タイプを決定する際に注意すべき考慮事項について詳しく説明します。

日付フィールド タイプ内容タイム ゾーンの定義方法適した対象

日付

日付と時刻の両方

レイヤーを時間対応にすると、レイヤーにタイムゾーンが定義され、それによって時間内の絶対位置が定義されます。

フィールド内のすべての値は、同じタイムゾーンにあると想定します。

すべてが UTC (例 1) またはすべてが同じローカル タイム ゾーン (例 2) の時間値。

  • 例 1: 地球上の落雷データを記録する科学グループ。
  • 例 2: 管轄の郡内のレストランが最後に衛生検査を受けた日付と時間を保存する地方自治体。

DateOnly

レガシー:

この形式は、ArcGIS Pro 3.2 で導入されました。

日付コンポーネントのみ

レイヤーを時間対応にすると、レイヤーは、タイムゾーンが「なし」に設定された状態で機能します。 つまり、マップのタイム ゾーンと関係なく、タイム スライダーの日付部分を使用してコンテンツのフィルターと表示が行われます。

注意:

DateOnly フィールドの 1 日は、事実上 24 時間の長さになるので、タイム スライダーがその日の一部をフィルターする場合でも行が表示されます。

日単位で収集されたデータ、または何らかの事象がその 1 日全体に適用されるかまたはその 1 日全体を表すデータ。

  • 例 1 - 世界の指導者の就任日を調査する歴史家。
  • 例 2 - 地球上の都市の毎日の最高気温を監視する科学グループ。

TimeOnly

レガシー:

この形式は、ArcGIS Pro 3.2 で導入されました。

時間コンポーネントのみ

TimeOnly フィールドを使用しているレイヤーを時間対応にすることはできません。

毎日繰り返されるデータ、または時間コンポーネントのみが重要なコンテンツ。

  • 例 1: 動物にエサを与える日々のルーチン業務を管理する動物園。
  • 例 2: 毎日の固定スケジュールに基づいてゲートとドアの解錠をトラッキングする安全な施設。

TimestampOffset

レガシー:

この形式は、ArcGIS Pro 3.2 で導入されました。

日付、時刻、および UTC からの相対的なタイム ゾーン オフセット。

タイム ゾーン オフセットの値は、各セルの値としてすでに格納されているので、指定されたレイヤーのタイム ゾーンを選択することはできません。 テーブルの各値は、異なるタイム オフセットを使用できます。

注意:
時間単位のオフセット時間は、太平洋標準時などの指定されたタイム ゾーンではなく、UTC からのテンポラル オフセットを示します。 複数の指定されたタイム ゾーンは同じテンポラル オフセットを共有できるので、ストレージは、夏時間や履歴の変更を考慮した特定のタイム ゾーンではありません。

日付が複数のタイム ゾーンにわたる時間の値とローカル時間の値が重要です。

  • 例 1 - 世界中の離着陸のスケジュールを絶対時間で管理する一方で、乗客のローカル時間も把握している航空会社。
  • 例 2 - 事象を絶対時間で扱う一方で、居住者がそれを経験したローカル時間も収集する、地震のコストに関する調査。