トレンド ラスターの生成 (Generate Trend Raster) (Image Analyst)

Image Analyst ライセンスで利用できます。

サマリー

多次元ラスターの 1 つまたは複数の変数のディメンションに沿って各ピクセルのトレンドを推定します。

使用法

  • たとえば、40 年分の月次の海洋温度データがあり、各ピクセルのトレンド ラインをフィッティングして、時間の経過に伴いどこでどのように温度が変化したかを表示したい場合などに、このツールを使用できます。

  • サポートされている多次元ラスター データセットには、CRF (Cloud Raster Format)、多次元モザイク データセット、netCDF、GRIB、または HDF ファイルで生成された多次元ラスター レイヤーがあります。

  • このツールは、多次元ラスター データセットを CRF (Cloud Raster Format) で生成します。 現在、他の出力形式はサポートされていません。

  • デフォルトでは、出力された多次元ラスターは、LZ77 圧縮タイプを使用して圧縮されます。 ただし、圧縮タイプを LERC に変更し、データに応じて最大誤差の値を調整することをお勧めします。 たとえば、解析結果が小数点以下 3 桁まで正確であることを期待する場合は、0.001 を最大誤差の値に使用します。 不要な精度要件は、処理時間およびストレージ サイズを増やすため、避けることをお勧めします。

  • このツールは、線形、調和、多項式トレンド ラインに沿ってデータを適合させるために使用するか、Mann-Kendall 検定か Seasonal-Kendall 検定を使用してトレンド検出を実行するために使用されます。

  • Mann-Kendall 検定や Seasonal-Kendall 検定は、データに単調トレンドがあるかどうかを決定するために実施します。これらのテストはノンパラメトリックです。すなわち、特定のデータ分布は想定されません。Mann-Kendall 検定では、自己系列相関または季節性は考慮されません。データが季節性であれば、Seasonal-Kendall 検定の方が適切です。

  • Mann-Kendall 検定または Seasonal-Kendall 検定のいずれかを実行するためにツールが使用される場合は、出力は次のように 5 バンド ラスターになります。

    • バンド 1 = Sen の勾配
    • バンド 2 = P 値
    • バンド 3 = Mann-Kendall スコア (S)
    • バンド 4 = S バリアンス
    • バンド 5 = Z スコア

    Mann-Kendall 検定と Seasonal-Kendall 検定の出力は、多次元時系列のピクセルのうち、統計的に有意なトレンドを持つものを決定するために使用されます。この情報と、線形、調和、多項式トレンド解析を併用することで、時系列における有意なトレンドを抽出できます。有意な P 値を持つピクセルを含むマスクを生成し、そのマスクを多次元ラスターに適用して、マスクを適用した多次元ラスターをツールの入力として使用して線形、調和、多項式トレンド解析を実行します。

  • トレンドをディメンションに沿って変数値にフィッティングするための 3 つのトレンド ライン オプション (リニア、調和、多項式) があります。次に、これら 3 つのトレンド フィッティング オプションについて説明します。

    線形、調和、2 次および 3 次多項式トレンド タイプ
    • 線形 - 線形トレンド ラインは、シンプルな線形リレーションシップの推定に使用されるベストフィット直線です。線形トレンドは、一定の比率で増加または減少している変化率を強調します。線形トレンド ラインの式は、次のとおりです。
      線形トレンド ラインの方程式
      • y = ピクセルの変数値
      • x = ディメンション値
      • ß0 = y インターセプト
      • ß1 = 変化の線形勾配または率

        ß1 > 0 は、増加しているトレンドを示します。

        ß1 < 0 は、減少しているトレンドを示します。

    • 調和 - 調和トレンド ラインは、周期的なパターン (季節的な温度変化など) に従うデータを示す場合に最適に使用される、定期的に繰り返す曲線です。調和トレンド ラインの式は、次のとおりです。
      調和トレンド ラインの方程式
      • y = ピクセルの変数値
      • t = ユリウス日
      • ß0 = y インターセプト
      • ß1 = 変化率
      • α, γ = 年次変化または年内変化の係数
      • ω = i
      • f = 高調波頻度
    • 多項式 - 多項式トレンド ラインは、変動するデータに役立つ曲線です。この場合、多項式の次数の値は、発生する変動の最大数を示すために使用されます。多項式トレンド ラインの式は、次のとおりです。
      多項式トレンド ラインの方程式
      • y = ピクセルの変数値
      • x = ディメンション値
      • ß0, ß1, ß2, ß3, ..., ßn = 一定係数
  • ツールを使用して線形、調和、多項式トレンド解析を実行する場合、出力トレンド ラスターを [トレンド ラスターを使用した予測 (Predict Using Trend Raster)] ツールへの入力として使用できます。トレンド ラスターは多次元ラスターで、その各スライスがトレンド ラインに関する情報を含むマルチバンド ラスターです。1 つのディメンション (たとえば、時間) を含むデータセットの 1 つの変数のトレンドを解析している場合、出力データセットには 1 つのスライスが存在します。複数のディメンション (たとえば、時間と深度) を含むデータセットの 1 つの変数を解析している場合、各スライスには、解析に含まれなかったディメンションに沿った各ディメンション値のトレンド情報が含まれます。

    線形トレンド解析の場合、出力には 3 バンド ラスターが含まれます。

    • バンド 1 = 勾配
    • バンド 2 = インターセプト
    • バンド 3 = RMSE (二乗平均平方根誤差) またはベスト フィットのラインの周りの誤差

    調和トレンド解析の場合、出力のバンド数は高調波周波数によって異なります。周波数が 1 に設定されている場合、出力は次に示す 5 バンド ラスターです。

    • バンド 1 = 勾配
    • バンド 2 = インターセプト
    • バンド 3 = Harmonic_sin1
    • バンド 4 = Harmonic_cos1
    • バンド 5 = RMSE

    周波数が 2 に設定されている場合、出力は次に示す 7 バンド ラスターです。

    • バンド 1 = 勾配
    • バンド 2 = インターセプト
    • バンド 3 = Harmonic_sin1
    • バンド 4 = Harmonic_cos1
    • バンド 5 = Harmonic_sin2
    • バンド 6 = Harmonic_cos2
    • バンド 7 = RMSE

    多項式トレンド解析の場合、出力のバンド数は多項式の次数によって異なります。2 次多項式フィッティングでは、次のように 4 バンド ラスターが生成されます。

    • バンド 1 = Polynomial_2
    • バンド 2 = Polynomial_1
    • バンド 3 = Polynomial_0
    • バンド 4 = RMSE

    3 次多項式フィッティングでは、次のように 5 バンド ラスターが生成されます。

    • バンド 1 = Polynomial_3
    • バンド 2 = Polynomial_2
    • バンド 3 = Polynomial_1
    • バンド 4 = Polynomial_0
    • バンド 5 = RMSE

  • 調和トレンド解析の [サイクル長] パラメーターは、1 日または 1 年を通じてデータに表示される想定のサイクルの数と長さを示すために使用されます。たとえば、データが 1 年間に 2 回の変動サイクルを経ると想定される場合、サイクル長は 182.5 日または 0.5 年になります。3 時間ごとに温度データを収集し、1 日に 1 サイクルの変動がある場合、サイクル長は 1 日になります。

  • 調和トレンド解析の [頻度] パラメーターは、データにフィッティングする調和モデルを表すために使用されます。頻度が 1 に設定されている場合、線形および 1 次調和曲線の組み合わせがモデルのフィッティングに使用されます。頻度が 2 の場合、線形、1 次調和曲線、および 2 次調和曲線の組み合わせがモデルのフィッティングに使用されます。頻度が 3 の場合、さらに 3 次調和曲線がデータのモデル化に使用されます。4 以降も同様です。

  • Goodness of Fit 統計モデルは、線形、調和、多項式トレンド ラスターのオプションの出力として生成されます。二乗平均平方根誤差 (RMSE)、R2、およびトレンド傾斜の P 値を計算し、出力ラスターの [プロパティ] ウィンドウの [統計情報] セクションに表示することができます。[RGB] シンボルを使用して出力トレンド ラスターをシンボル表示し、統計情報を赤、緑、青のバンドとして指定することによって、統計情報を表示することもできます。

パラメーター

ラベル説明データ タイプ
入力多次元ラスター

入力多次元ラスター データセット。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
ディメンション

このディメンションに沿って、解析で選択された変数に対してトレンドが抽出されます。

String
変数 [ディメンション情報] (説明)
(オプション)

トレンドを計算する変数。変数が指定されない場合、多次元ラスターの最初の変数が解析されます。

String
トレンド タイプ
(オプション)

ディメンションに沿ったピクセル値に対して実行するトレンド解析のタイプを指定します。

  • 線形 —リニア トレンド ラインに沿って変数のピクセル値がフィッティングされます。これがデフォルトです。
  • 多項式 —2 次多項式トレンド ラインに沿って変数のピクセル値がフィッティングされます。
  • 調和 —調和トレンド ラインに沿って変数のピクセル値がフィッティングされます。
  • Mann-Kendall —変数ピクセル値は、Mann-Kendall トレンド検定を使用して評価されます。
  • Seasonal-Kendall —変数ピクセル値は、Seasonal-Kendall トレンド検定を使用して評価されます。
String
頻度/多項式の次数
(オプション)

トレンド フィッティングで使用する頻度または多項式の次数。トレンド タイプが多項式の場合、このパラメーターは多項式の次数を指定します。トレンド タイプが調和の場合、このパラメーターはトレンドのフィッティングに使用するモデルの数を指定します。

このパラメーターは、解析対象のディメンションが時間である場合にのみ、トレンド解析に含まれます。

[トレンド タイプ] パラメーターが [調和] である場合、デフォルト値は 1、つまり 1 次調和曲線がモデルのフィッティングに使用されます。

[トレンド タイプ] パラメーターが [多項式] である場合、デフォルト値は 2、つまり 2 次多項式です。

Long
NoData を無視
(オプション)

解析で NoData 値を無視するかどうかを指定します。

  • オン - 解析は、特定のディメンションに沿って有効なすべてのピクセルを含め、すべての NoData 値のピクセルを無視します。 これがデフォルトです。
  • オフ - 特定のディメンションに沿って NoData 値のピクセルが存在する場合、解析結果が NoData になります。
Boolean
サイクル長
(オプション)

モデル化する周期変動の長さ。このパラメーターは、[トレンド タイプ][調和] に設定されている場合に必須です。たとえば、葉の緑度には 1 年に 1 回の強い変動サイクルが存在することが多いため、サイクル長は 1 年になります。1 時間ごとの温度データには、1 日に 1 回の強い変動サイクルが存在するため、サイクル長は 1 日になります。

1 年のサイクルで変化するデータのデフォルト長は 1 年です。

Double
サイクル単位
(オプション)

調和サイクルの長さに使用される時間単位を指定します。

  • 日 —調和サイクルの長さの単位は日です。
  • 年 —調和サイクルの長さの単位は年です。これがデフォルトです。
String
RMSE
(オプション)

トレンド フィット ラインの RMSE (二乗平均平方根誤差) を計算するかどうかを指定します。

  • オン - RMSE が計算され、[統計] のラスター データセット プロパティ ウィンドウに表示されます。これがデフォルトです。
  • オフ - RMSE は計算されません。
Boolean
R2
(オプション)

トレンド フィット ラインの R2 適合度統計を計算するかどうかを指定します。

  • オン - R2 値が計算され、[統計] のラスター データセット プロパティ ウィンドウに表示されます。
  • オフ - R2 値は計算されません。これがデフォルトです。
Boolean
傾斜係数の P 値
(オプション)

トレンド ラインの傾斜係数の統計量 P 値を計算するかどうかを指定します。

  • オン - P 値が計算され、[統計] のラスター データセット プロパティ ウィンドウに表示されます。
  • オフ - P 値は計算されません。これがデフォルトです。
Boolean
季節周期
(オプション)

Seasonal-Kendall 検定を実行する際、季節周期として使用される時間単位を指定します。

  • 日 —季節周期の長さの単位は日です。これがデフォルトです。
  • 月 —季節周期の長さの単位は月です。
String

戻り値

ラベル説明データ タイプ
出力多次元ラスター

出力される CRF (Cloud Raster Format) 多次元ラスター データセット。

Raster

GenerateTrendRaster(in_multidimensional_raster, dimension, {variables}, {line_type}, {frequency}, {ignore_nodata}, {cycle_length}, {cycle_unit}, {rmse}, {r2}, {slope_p_value}, {seasonal_period})
名前説明データ タイプ
in_multidimensional_raster

入力多次元ラスター データセット。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
dimension

このディメンションに沿って、解析で選択された変数に対してトレンドが抽出されます。

String
variables
[variables,...]
(オプション)

トレンドを計算する変数。変数が指定されない場合、多次元ラスターの最初の変数が解析されます。

String
line_type
(オプション)

ディメンションに沿ったピクセル値に対して実行するトレンド解析のタイプを指定します。

  • LINEARリニア トレンド ラインに沿って変数のピクセル値がフィッティングされます。これがデフォルトです。
  • POLYNOMIAL2 次多項式トレンド ラインに沿って変数のピクセル値がフィッティングされます。
  • HARMONIC調和トレンド ラインに沿って変数のピクセル値がフィッティングされます。
  • MANN-KENDALL変数ピクセル値は、Mann-Kendall トレンド検定を使用して評価されます。
  • SEASONAL-KENDALL変数ピクセル値は、Seasonal-Kendall トレンド検定を使用して評価されます。
String
frequency
(オプション)

トレンド フィッティングで使用する頻度または多項式の次数。トレンド タイプが多項式の場合、このパラメーターは多項式の次数を指定します。トレンド タイプが調和の場合、このパラメーターはトレンドのフィッティングに使用するモデルの数を指定します。

このパラメーターは、解析対象のディメンションが時間である場合にのみ、トレンド解析に含まれます。

line_type パラメーターが HARMONIC である場合、デフォルト値は 1、つまり 1 次調和曲線がモデルのフィッティングに使用されます。

line_type パラメーターが POLYNOMIAL である場合、デフォルト値は 2、つまり 2 次多項式です。

Long
ignore_nodata
(オプション)

解析で NoData 値を無視するかどうかを指定します。

  • DATA解析は、特定のディメンションに沿って有効なすべてのピクセルを含め、すべての NoData 値のピクセルを無視します。 これがデフォルトです。
  • NODATA特定のディメンションに沿って NoData 値のピクセルが存在する場合、解析結果が NoData になります。
Boolean
cycle_length
(オプション)

モデル化する周期変動の長さ。line_typeHARMONIC に設定されている場合、このパラメーターは必須です。たとえば、葉の緑度には 1 年に 1 回の強い変動サイクルが存在することが多いため、サイクル長は 1 年になります。1 時間ごとの温度データには、1 日に 1 回の強い変動サイクルが存在するため、サイクル長は 1 日になります。

1 年のサイクルで変化するデータのデフォルト長は 1 年です。

Double
cycle_unit
(オプション)

調和サイクルの長さに使用される時間単位を指定します。

  • DAYS調和サイクルの長さの単位は日です。
  • YEARS調和サイクルの長さの単位は年です。これがデフォルトです。
String
rmse
(オプション)

トレンド フィット ラインの RMSE (二乗平均平方根誤差) を計算するかどうかを指定します。

  • RMSERMSE が計算されます。これがデフォルトです。
  • NO_RMSERMSE は計算されません。
Boolean
r2
(オプション)

トレンド フィット ラインの R2 適合度統計を計算するかどうかを指定します。

  • R2R2 値が計算されます。
  • NO_R2R2 値は計算されません。これがデフォルトです。
Boolean
slope_p_value
(オプション)

トレンド ラインの傾斜係数の統計量 P 値を計算するかどうかを指定します。

  • SLOPEPVALUEP 値が計算されます。
  • NO_SLOPEPVALUEP 値は計算されません。これがデフォルトです。
Boolean
seasonal_period
(オプション)

Seasonal-Kendall 検定を実行する際、季節周期として使用される時間単位を指定します。

  • DAYS季節周期の長さの単位は日です。これがデフォルトです。
  • MONTHS季節周期の長さの単位は月です。
String

戻り値

名前説明データ タイプ
out_multidimensional_raster

出力される CRF (Cloud Raster Format) 多次元ラスター データセット。

Raster

コードのサンプル

GenerateTrendRaster (トレンド ラスターの生成) の例 1 (Python ウィンドウ)

この例では、時間経過に伴う降水量データの多項式トレンド フィットを計算します。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
trendCoeffMultidim = arcpy.ia.GenerateTrendRaster("model_time_series.crf", 
	"StdTime", "precip", "POLYNOMIAL", 2, "DATA", None, '', "RMSE","R2", None)
	
# Save output
trendCoeffMultidim.save("C:/data/polynomial_trend_coefficients.crf")
GenerateTrendRaster (トレンド ラスターの生成) の例 2 (スタンドアロン スクリプト)

この例では、深さに伴う温度データと塩分濃度データのリニア トレンド フィットを計算します。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define input parameters

inFile = "C:/Data/ClimateVariables.crf"
dimensionName = "Depth"
variables = "salinity;temp"
trend_model = "LINEAR"
ignore_Nodata = "DATA"

# Execute - fit a linear model for salinity and temperature
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName, 
	variables, trend_model, None, ignore_nodata)
	
# Save output
trendCoeffMultidim.save("C:/data/linear_trend_coefficients.crf")
GenerateTrendRaster (トレンド ラスターの生成) の例 3 (スタンドアロン スクリプト)

この例では、単調性トレンドに対する検定を行ってから、NDVI 時系列に沿って調和トレンド フィットを計算します。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define input parameters

inFile = "C:/data/ndvi_time_series.crf"
dimensionName = "StdTime"
variables = "ndvi"
trend_test = "SEASONAL_KENDALL"
trend_model = "HARMONIC"
harmonic_frequency = 1
ignore_Nodata = "DATA"
length_of_cycle = 365.25
rmse = RMSE
r_square = NO_r2
p_value = NO_SLOPEPVALUE

# Test for monotonic trend 

trendtest = GenerateTrendRaster(inFile, dimensionName, variables,
	trend_test, '', ignore_Nodata, '', '', '', '', '', 'MONTHS')

# Execute 
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName, 
	variables, trend_model, harmonic_frequency, ignore_nodata,
	length_of_cycle,rmse,r_square,p_value)
	
# Save output
trendCoeffMultidim.save("C:/data/harmonic_trend_coefficients.crf")

関連トピック