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 つのトレンド フィッティング オプションについて説明します。
- 線形 - 線形トレンド ラインは、シンプルな線形リレーションシップの推定に使用されるベストフィット直線です。線形トレンドは、一定の比率で増加または減少している変化率を強調します。線形トレンド ラインの式は、次のとおりです。
- 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] シンボルを使用して出力トレンド ラスターをシンボル表示し、統計情報を赤、緑、青のバンドとして指定することによって、統計情報を表示することもできます。
構文
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 (オプション) | ディメンションに沿ったピクセル値に対して実行するトレンド解析のタイプを指定します。
| String |
frequency (オプション) | トレンド フィッティングで使用する頻度または多項式の次数。トレンド タイプが多項式の場合、このパラメーターは多項式の次数を指定します。トレンド タイプが調和の場合、このパラメーターはトレンドのフィッティングに使用するモデルの数を指定します。 このパラメーターは、解析対象のディメンションが時間である場合にのみ、トレンド解析に含まれます。 line_type パラメーターが HARMONIC である場合、デフォルト値は 1、つまり 1 次調和曲線がモデルのフィッティングに使用されます。 line_type パラメーターが POLYNOMIAL である場合、デフォルト値は 2、つまり 2 次多項式です。 | Long |
ignore_nodata (オプション) | 解析で NoData 値を無視するかどうかを指定します。
| Boolean |
cycle_length (オプション) | モデル化する周期変動の長さ。line_type が HARMONIC に設定されている場合、このパラメーターは必須です。たとえば、葉の緑度には 1 年に 1 回の強い変動サイクルが存在することが多いため、サイクル長は 1 年になります。1 時間ごとの温度データには、1 日に 1 回の強い変動サイクルが存在するため、サイクル長は 1 日になります。 1 年のサイクルで変化するデータのデフォルト長は 1 年です。 | Double |
cycle_unit (オプション) | 調和サイクルの長さに使用される時間単位を指定します。
| String |
rmse (オプション) | トレンド フィット ラインの RMSE (二乗平均平方根誤差) を計算するかどうかを指定します。
| Boolean |
r2 (オプション) | トレンド フィット ラインの R2 適合度統計を計算するかどうかを指定します。
| Boolean |
slope_p_value (オプション) | トレンド ラインの傾斜係数の統計量 P 値を計算するかどうかを指定します。
| Boolean |
seasonal_period (オプション) | Seasonal-Kendall 検定を実行する際、季節周期として使用される時間単位を指定します。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_multidimensional_raster | 出力される CRF (Cloud Raster Format) 多次元ラスター データセット。 | Raster |
コードのサンプル
この例では、時間経過に伴う降水量データの多項式トレンド フィットを計算します。
# 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")
この例では、深さに伴う温度データと塩分濃度データのリニア トレンド フィットを計算します。
# 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")
この例では、単調性トレンドに対する検定を行ってから、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")
環境
ライセンス情報
- Basic: 次のものが必要 Image Analyst
- Standard: 次のものが必要 Image Analyst
- Advanced: 次のものが必要 Image Analyst