Spatial Analyst のライセンスで利用可能。
概要
ラスターサーフェスから日射量を抽出します。
使用法
日射量の計算には、非常に時間がかかります。大きなデジタル標高モデル (DEM) の計算には数時間、非常に大きな DEM の場合は数日かかる場合もあります。粗い解像度またはデータのサブセットを使用して試験的に実行し、設定が正しいことを確認してから最大解像度のデータを使用して実行することをお勧めます。
出力日射量ラスターは、常に浮動小数点タイプで、単位はワット時/平方メートル (WH/m2) になります。日照時間ラスター出力は整数で、単位は時間になります。
解析エリアの緯度 (単位: 10 進度、北半球では正の値、南半球では負の値) が太陽赤緯と太陽の位置などの計算に使用されます。
解析は、地域ごとのランドスケープ スケールにのみ適用するよう設計されます。したがって、通常は DEM 全体に対して 1 つの緯度の値を使用することが可能です。さらに大きなデータセット (州、国、大陸など) を使用する場合、日射量の結果は、緯度ごとに大きく異なります (1 度以上)。このため広範な地理的範囲を分析する場合、解析領域を緯度ごとに異なるゾーンに分割する必要があります。
複数の日数間の解析における最大日数は、合計で 1 年 (365 日または、うるう年の 366 日) になります。開始日の数字が終了日よりも大きい場合、時間の計算は翌年に継続されます。
たとえば、[開始日、最終日] = [365、31] は、12 月 31 日から翌年の 1 月 31 日までを表します。また、[1、2] では、時間には最初の日の 0:00 (1 月 1 日) から 0:00 (1 月 2 日) までが含まれます。開始日と終了日に同じ値を使用することはできません。
時間設定における年の値は、うるう年を指定するためのもので、 日射量解析に対するその他の影響はありません。この理由は、計算がユリウス日により算出される期間を示す関数だからです。
1 日内での解析における最大時間は 1 日 (24 時間) です。たとえば、午後 12:00 から翌日の午後 12:00 までというように日をまたいだ計算は行われません。開始時間の数字は終了時間よりも小さくなければなりません。
日中内の構成の場合、開始および終了時間は太陽時間として表示されます (単位: 時間 (10 進))。[時間変換] ダイアログ ボックス ウィンドウを使用して、現地標準時間と現地太陽時間 (HMS) を変換できます。現地標準時間を太陽時間に変換する場合、プログラムは時間の方程式を使用します。
サーフェスの Z の単位が地表面の X,Y の単位と異なる場合、正しく計算するためには Z 値の倍率を使用することが重要です。正確な結果を得るためには、Z の単位は X,Y の単位と等しくなければなりません。単位が等しくない場合には、Z 係数を使用して Z 単位を X,Y 単位に変換します。たとえば、X と Y の単位がメートルであり、Z 単位がフィートの場合、Z 係数 0.3048 を使用して Z 単位をフィートからメートルへ変換します。
投影座標系内でメートル単位でデータを保存することをお勧めします。球面座標系を使用した解析の実行を選択する場合には、その緯度に適した Z 係数を指定する必要があります。次のリストは、X,Y 単位が小数で Z 単位がメートルの場合に使用する適切な Z 係数を示しています。
Latitude Z-factor 0 0.00000898 10 0.00000912 20 0.00000956 30 0.00001036 40 0.00001171 50 0.00001395 60 0.00001792 70 0.00002619 80 0.00005156
解析エリアの緯度 (単位: 10 進度、北半球では正の値、南半球では負の値) が太陽赤緯と太陽の位置などの計算に使用されます。日射量の解析は地域ごとのランドスケープ スケールにのみ適用するよう設計されているため、DEM 全体に対して 1 つの緯度の値を使用することが可能です。広範な地理的範囲を分析するには、解析領域を緯度ごとに異なるゾーンに分割する必要があります。
空間参照を含む入力サーフェス ラスターに対しては、平均緯度が自動的に計算されます。空間参照を含まない場合、緯度はデフォルトの 45 度に設定されます。入力レイヤーを使用する場合には、データ フレームの空間参照が使用されます。
天空サイズは、日射量の計算に使用される可視領域、天空図、太陽軌道図ラスターの解像度です (単位: 一辺のセル数)。これらは地表から見上げた際の天空の上半球のラスター表現であり、地理座標系を持ちません。これらのラスターは正方形 (列と行の数が等しい) です。
天空サイズを増やすと計算の精度が上がりますが、計算時間も大幅に増加します。
「日間隔」設定が小さい (14 日未満など) 場合には、より大きい天空サイズを使用する必要があります。解析において、直達日射量を計算するために、一定期間の太陽の位置 (軌跡) を表す太陽軌道図 (天空サイズによって決定) が使用されます。日間隔が小さい場合、天空サイズの解像度が十分に高くないと、太陽の軌道が重複して、その軌道に対して 0 以下の日射量の値が算出されます。解像度を上げると、より正確な結果を得ることができます。
天空サイズの最大値は 10,000 です。デフォルト値は 200 で、大きめの日間隔 (15 日以上など) でのすべての DEM にとって十分な値です。天空サイズの値が 512 の場合、計算時間があまりかからず、ポイント位置の計算には十分な値です。日間隔が小さい (14 日未満など) 場合、高い値を使用することをお勧めします。たとえば、日間隔 = 1 で赤道位置での日射量を計算する場合、天空サイズ 2,800 以上を使用することをお勧めします。
天空サイズや 1 年のどの時期かによって異なりますが、概して、太陽軌道は 3 日以内では同じ場所を通るため、日間隔は 4 日以上にすることをお勧めします。一月間隔で一年間の計算を行う場合には、日間隔は使用できなくなり、プログラムは内部でカレンダー月の 1 間隔を使用します。デフォルト値は 14 です。
可視領域の計算は非常に負担のかかるものであるため、水平角は指定された計算方向の数だけをトレースします。有効な値は 8 の倍数 (8、16、24、32 など) でなければなりません。一般的に、8 または 16 は、なだらかな地形に適しています。これに対し、32 は、複雑な地形に適しています。デフォルト値は 32 です。デフォルト値は 32 です。
必要とされる方位計算の数は、入力 DEM の解像度に関連します。30 メートルの解像度の自然地形は一般的に非常に平坦であるため、ほとんどの状況では条件を満たす方向はさらに少なくなります (16 または 32)。より解像度の高い DEM を使用する場合や、特に DEM に組み込まれた人工の構造体を用いる場合は、方位計算の数を増やすことが必要になります。方向の数を増やすことは精度を上げることになりますが、計算時間が増すことにもなります。
[各間隔で出力を作成] チェックボックスは、指定された期間に統合された日射量、または時系列の各間隔での日射量を計算するという柔軟性を提供します。たとえば、間隔が 1 時間に設定された 1 日という期間、このチェックボックスをオンにすると 1 時間おきに日射量の値を作成します。それが行われない場合には、1 日に統合された日射量が計算されます。
[各間隔で出力を作成] パラメーターは、出力日射量ファイルの形式と数に影響します。オンの場合、出力ラスターには、各期間の日射量や日照時間に対応する複数のバンドが含まれます (時間構成が 1 日未満の場合は間隔が時間、複数日の場合は間隔が日)。
散乱率は、全天標準日射量のうち散乱する比率です。値の範囲は、0 から 1 です。この値は大気の状態に従って設定しなければなりません。一般的に、快晴の場合で 0.2、概ね晴れの場合で 0.3 になります。
地表が受ける日射量は、大気圏外の日射量のほんの一部にすぎません。透過率は大気の特性です。これは、大気の上限部分 (地球の外側) で受け取られるエネルギーのうち、地表まで届いているエネルギーの割合 (すべての波長の長さの透過率の平均値) を示します。値の範囲は、0 (不透過) から 1 (完全透過) です。一般的に、快晴の場合で 0.6 または 0.7、概ね晴れの場合で 0.5 の観測値が得られます。
地表で受け取られるエネルギーの値は、大気を通過する最短経路 (つまり、太陽が頂点または真上にある)、および海面と同じ高さにいるときの値です。南回帰線および北回帰線を超えたエリアでは、正午のときでさえ太陽が完全に天頂に来ることはありませんが、それでもこの値は、太陽が頂点に来ていることを示します。アルゴリズムは標高の影響を考慮するため、透過性は常に海面に設定されなければなりません。
透過率は、散乱率パラメーターと逆相関関係にあります。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
AreaSolarRadiation(in_surface_raster, {latitude}, {sky_size}, {time_configuration}, {day_interval}, {hour_interval}, {each_interval}, {z_factor}, {slope_aspect_input_type}, {calculation_directions}, {zenith_divisions}, {azimuth_divisions}, {diffuse_model_type}, {diffuse_proportion}, {transmittivity}, {out_direct_radiation_raster}, {out_diffuse_radiation_raster}, {out_direct_duration_raster})
パラメーター | 説明 | データ タイプ |
in_surface_raster | 入力標高サーフェス ラスター | Raster Layer |
latitude (オプション) | 解析エリアの緯度。単位は 10 進度で、北半球では正の値、南半球では負の値で表されます。 空間参照を含む入力サーフェス ラスターに対しては、平均緯度が自動的に計算されます。空間参照を含まない場合、緯度はデフォルトの 45 度に設定されます。 | Double |
sky_size (オプション) | 可視領域、天空図、太陽軌道図ラスターの解像度または天空サイズ。単位はセルです。 デフォルトでは、200 x 200 セルのラスターが作成されます。 | Long |
time_configuration (オプション) | 日射量の計算に使用する時間設定 (期間) を指定します。 Time クラス オブジェクトは、時間設定を指定するために使用します。 使用可能な時間設定のタイプは、TimeWithinDay、TimeMultipleDays、TimeSpecialDays、および TimeWholeYear です。 形式は次のとおりです。
デフォルトの時間設定は TimeMultipleDays で、現在のユリウス年の startDay が 5、endDay が 160 に設定されます。 | Time configuration |
day_interval (オプション) | 1 年間の時間間隔 (単位: 日) 太陽軌道図の天空のセクターの計算のために使用されます。 デフォルト値は 14 (隔週) です。 | Long |
hour_interval (オプション) | 1 日の時間間隔 (単位: 時間) 太陽軌道図の天空のセクターの計算のために使用されます。 デフォルト値は 0.5 です。 | Double |
each_interval (オプション) | すべての位置に対して、1 つの総日射量の値を計算するか、または特定の時間と日にちの間隔で複数の値を計算するかを指定します。
| Boolean |
z_factor (オプション) | サーフェス Z 単位あたりの地表 X,Y 単位の数。 Z 単位の測定基準が入力サーフェスの X、Y 単位と異なる場合、Z 係数を使用して Z 計測単位を調整します。最終的な出力サーフェスを計算する際、入力サーフェスの Z 値に Z 係数が乗算されます。 XY 単位と Z 単位の測定基準が同じである場合、Z 係数は 1 になります。これがデフォルトです。 X,Y 単位と Z 単位の測定基準が異なる場合は、Z 係数に適切な値を設定する必要があります。Z 係数が適切でないと、正しい結果が得られません。 たとえば、Z 単位がフィートであり、X,Y 単位がメートルの場合、Z 係数 0.3048 を使用して Z 単位をフィートからメートルへ変換します (1 フィート = 0.3048 メートル)。 | Double |
slope_aspect_input_type (オプション) | 解析のために、傾斜角と傾斜方向の情報を得る方法
| String |
calculation_directions (オプション) | 可視領域の計算に使用する方位角の数 有効な値は 8 の倍数 (8、16、24、32 など) でなければなりません。デフォルト値は 32 方向で、複雑な地形に適しています。 | Long |
zenith_divisions (オプション) | 天空図内の天空のセクターを作成するために使用する分割数 デフォルトは 8 分割 (天頂への相対) です。値は 0 より大きく、天空サイズの値の半分よりも小さくなければなりません。 | Long |
azimuth_divisions (オプション) | 天空図内の天空のセクターを作成するために使用する分割数 デフォルトは 8 分割 (北から) です。有効な値は 8 の倍数でなければなりません。値は 0 より大きく 160 より小さくなければなりません。 | Long |
diffuse_model_type (オプション) | 散乱日射モデルのタイプ
| String |
diffuse_proportion (オプション) | 全天標準日射量のうち散乱する比率。値の範囲は、0 から 1 です。 この値は大気の状態に従って設定しなければなりません。デフォルト値は、一般的に晴れの場合で 0.3 です。 | Double |
transmittivity (オプション) | 大気を通過する日射量の一部 (波長全体での平均値)。値の範囲は、0 (不透過) から 1 (完全透過) です。 デフォルト値は、一般的に晴れの場合で 0.5 です。 | Double |
out_direct_radiation_raster (オプション) | 各位置での直達日射量を表す出力ラスター。 出力の単位は、1 平方メートルあたりのワット時 (WH/m2) です。 | Raster Dataset |
out_diffuse_radiation_raster (オプション) | 各位置での散乱日射量を表す出力ラスター。 出力の単位は、1 平方メートルあたりのワット時 (WH/m2) です。 | Raster Dataset |
out_direct_duration_raster (オプション) | 直達日射量の期間を表す出力ラスター。 出力の単位は時間です。 | Raster Dataset |
戻り値
名前 | 説明 | データ タイプ |
out_global_radiation_raster | 入力ラスターの各位置に対して計算した、全天日射量または総日射量 (直達+散乱) を表す出力ラスター。 出力の単位は、1 平方メートルあたりのワット時 (WH/m2) です。 | Raster |
コードのサンプル
AreaSolarRadiation (エリアから日射量を抽出) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、このツールの使用方法を示しています。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "C:/sapyexamples/data"
outGlobalRadiation = AreaSolarRadiation("dem30", "", "400", TimeMultipleDays(2008,91,152))
outGlobalRadiation.save("C:/sapyexamples/output/glob_rad")
AreaSolarRadiation (エリアから日射量を抽出) の例 2 (スタンドアロン スクリプト)
地理領域全体の日射量を計算します。
# Name: AreaSolarRadiation_example02.py
# Description: Derives incoming solar radiation from a raster surface.
# Outputs a global radiation raster and optional direct, diffuse and direct duration rasters
# for a specified time period. (April to July).
#
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/output"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set local variables
inRaster = "C:/sapyexamples/data/solar_dem"
latitude = 35.75
skySize = 400
timeConfig = TimeMultipleDays(2008, 91, 212)
dayInterval = 14
hourInterval = 0.5
zFactor = 0.3048
calcDirections = 32
zenithDivisions = 16
azimuthDivisions = 16
diffuseProp = 0.7
transmittivity = 0.4
outDirectRad = ""
outDiffuseRad = ""
outDirectDur = Raster("C:/sapyexamples/output/dir_dur")
# Execute AreaSolarRadiation
outGlobalRad = AreaSolarRadiation(inRaster, latitude, skySize, timeConfig,
dayInterval, hourInterval, "NOINTERVAL", zFactor, "FLAT_SURFACE",
calcDirections, zenithDivisions, azimuthDivisions, "UNIFORM_SKY",
diffuseProp, transmittivity, outDirectRad, outDiffuseRad, outDirectDur)
# Save the output
outGlobalRad.save("C:/sapyexamples/output/glob_rad")
環境
ライセンス情報
- Basic: 次のものが必要 Spatial Analyst
- Standard: 次のものが必要 Spatial Analyst
- Advanced: 次のものが必要 Spatial Analyst