Image Analyst ライセンスで利用できます。
概要
多次元ラスターの 1 つまたは複数の変数のディメンションに沿って各ピクセルのトレンドを推定します。
使用法
たとえば、40 年分の月次の海洋温度データがあり、各ピクセルのトレンド ラインをフィッティングして、時間の経過に伴いどこでどのように温度が変化したかを表示したい場合などに、このツールを使用できます。
サポートされている多次元ラスター データセットには、netCDF、GRIB、HDF、Esri の CRF などがあります。多次元モザイク データセットもサポートされています。
このツールは、多次元ラスター データセットを CRF (Cloud Raster Format) で生成します。現在、他の出力形式はサポートされていません。
デフォルトでは、出力された多次元ラスターは、LZ77 圧縮タイプを使用して圧縮されます。ただし、圧縮タイプを LERC に変更し、データに応じて最大誤差を調整することをお勧めします。たとえば、解析結果が小数点以下 3 桁まで正確であることを期待する場合は、0.001 を最大誤差に使用します。不要な精度要件は、処理時間およびストレージ サイズを増やすため、避けることをお勧めします。
トレンドをディメンションに沿って変数値にフィッティングするための 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 次調和曲線を使用して、データをモデル化します。以降も同様です。
モデル近似性統計情報は、オプション出力として生成できます。二乗平均平方根誤差 (RMSE)、R2、およびトレンド傾斜の P 値を計算し、出力ラスターの [プロパティ] ウィンドウの [統計情報] セクションに表示することができます。[RGB] シンボルを使用して出力トレンド ラスターをシンボル表示し、統計情報を赤、緑、青のバンドとして指定することによって、統計情報を表示することもできます。
構文
GenerateTrendRaster(in_multidimensional_raster, dimension, {variables}, {line_type}, {frequency}, {ignore_nodata}, {cycle_length}, {cycle_unit}, {rmse}, {r2}, {slope_p_value})
パラメーター | 説明 | データ タイプ |
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 |
戻り値
名前 | 説明 | データ タイプ |
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_type = "LINEAR"
frequency = None
ignore_Nodata = "DATA"
cycle_length = None
cycle_unit = ''
rmse = "RMSE"
r2 = "R2"
slopeP = "NO_SLOPEPVALUE")
# Execute - fit a linear model for salinity and temperature
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_type, frequency, ignore_nodata, cycle_length,
cycle_unit, rmse, r2, slopeP)
# 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_model = "HARMONIC"
harmonic_frequency = 1
ignore_Nodata = "DATA"
length_of_cycle = 1
cycle_unit = "YEARS"
rmse = "RMSE"
r_square = "NO_R2"
p_value = "NO_SLOPEPVALUE"
# Execute
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_model, harmonic_frequency, ignore_nodata,
length_of_cycle, cycle_unit, rmse,r_square,p_value)
# Save output
trendCoeffMultidim.save("C:/data/harmonic_trend_coefficients.crf")
環境
ライセンス情報
- Basic: 次のものが必要 Image Analyst
- Standard: 次のものが必要 Image Analyst
- Advanced: 次のものが必要 Image Analyst