太阳辐射区域 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

基于栅格表面获得入射太阳辐射。

了解有关太阳辐射计算方式的详细信息

使用情况

  • 计算日照量会非常耗时,计算大型的数字高程模型 (DEM) 可能需要数小时,而计算超大型的 DEM 可能需要数天。您可能希望使用较粗糙的分辨率或数据子集进行测试运行工作,以在使用全分辨率数据提交运行指令前确保设置的正确性。

  • 输出辐射栅格数据将始终为浮点型,并且单位为瓦特小时每平方米 (WH/m2)。输出直接辐射持续时间栅格数据是以小时为单位的整型。

  • 位置区域的纬度(单位:十进制度,北半球为正,南半球为负)可用于如太阳赤纬和太阳方位的计算。

    分析专门针对局部景观尺度,因此,通常可以针对整个 DEM 使用一个纬度值。 对于更大的数据集(如州、国家或大洲),不同纬度(大于 1 度)处的日照结果将明显不同。 要对更广阔的地理区域进行分析,必须将研究区域分割为具有不同纬度的区域。

  • 对于多日时间配置,最大天数范围为一年的总天数(365 天,闰年为 366 天)。 如果起始日大于结束日,时间计算将进行到下一年。

    例如,[起始日, 结束日] = [365, 31] 表示 12 月 31 日到下一年的 1 月 31 日。 例如,[1, 2] 表示第一天的时间,即从 0:00(1 月 1 日)到 0:00(1 月 2 日)。 起始日和结束日不能相同。

  • 时间配置中的年份值用于确定是否为闰年。 它对太阳辐射分析没有任何其他影响,因为各计算式是取决于儒略日的时间段的函数。

  • 对于“日内”时间配置,最大时间范围为一天(24 小时)。 计算不会跨天执行(例如,从 12:00 p.m. 到第二天的 12:00 p.m.)。 起始时间必须小于结束时间。

  • 对于日内时间配置,开始和结束时间均显示为太阳时(单位:十进制小时)。使用时间转换对话框窗口转换本地标准时和本地太阳时 (HMS)。将本地标准时转换成太阳时时,此程序会考虑均时差。

  • 当表面 z 单位用其他单位而非地面 x,y 单位表示时,需要使用 Z 因子对计算进行校正。 要获得精确的结果,z 单位应与 x,y 地面单位相同。 如果单位不同,可使用 z 因子将 z 单位转换为 x,y 单位。 例如,如果 x,y 单位是米,而 z 单位是英尺,则可以指定 z 因子 0.3048 以将英尺转换为米。

  • 建议数据采用投影坐标系统(单位:米)。 如果使用球面坐标系运行分析,则需要为该纬度指定一个适当的 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
  • 位置区域的纬度(单位:十进制度,北半球为正,南半球为负)可用于如太阳赤纬和太阳方位的计算。 因为太阳分析在景观尺度和局部尺度下执行,所以可以为整个 DEM 使用一个纬度值。 对于更广阔的地理区域,必须将研究区域分割为具有不同纬度的区域。

  • 对于包含空间参考的输入表面栅格,会自动计算平均纬度;否则,纬度将默认为 45 度。 如果使用输入图层,则将使用数据框的空间参考。

  • 天空大小是辐射计算中使用的视域、天空图和太阳图栅格数据的分辨率(单位:每边像元数)。 这些是天空的仰视半球栅格表示,没有地理坐标系。 这些栅格为正方形(行和列数相等)。

    如果使用一整年或多日时间配置,建议使用以下天空大小值:

    • 如果间隔为 1 天,可使用大于和等于 1000 的天空大小。
    • 如果间隔为 0.25 天,可使用大于和等于 2000 的天空大小。
    • 如果间隔为 0.1 小时,可使用大于和等于 4000 的天空大小。

    增加天空大小会提高计算精度,但也会显著增加计算时间。

  • 如果“间隔天数”设置较小(例如,小于 14 天),可使用较大的天空大小。 分析期间,阳光图(取决于天空大小)用于表示特定时间段的太阳位置(轨迹)以计算直接辐射。 对于更小的间隔天数,如果天空大小分辨率不是足够大,太阳轨迹可能重叠,从而导致该轨迹的辐射值为零或更低。 增加分辨率可获得更精确的结果。

  • 最大天空大小值为 10,000。 默认值为 200,对于具有大间隔天数(例如,大于 14 天)的整个 DEM 而言,默认值已经足够。 如果某点位置处的计算无需考虑计算时间,512 的天空大小值便已足够。 对于更小的间隔天数(例如,小于 14 天),建议使用更大的值。 例如,要在间隔天数 = 1 的情况下计算赤道上某一位置的日照,可使用大于或等于 2,800 的天空大小。

  • 建议间隔天数大于 3,因为三天内的太阳轨迹通常会重叠,具体取决于天空大小和年中的时间。 使用月间隔计算整年的数据时,日间隔将被禁用,并且程序将使用日历月间隔。 默认值为 14。

  • 因为视域计算可能极为耗时,因此只针对指定的计算方向数跟踪视角。 有效值必须是 8 的倍数(8、16、24、32,依此类推)。 通常,值 8 或 16 适合于地形平缓的区域,而值 32 适合于复杂地形。 默认值为 32。

  • 所需的计算方向数与输入 DEM 的分辨率有关。 分辨率为 30 米的自然地形通常相当平滑,因此多数情况下较小的方向数就足够了(16 或 32)。 对于更精细的 DEM,尤其是当 DEM 中包含有人造建筑时,需要增加方向数。 增加方向数会提升精度,但也会增加计算时间。

  • 为每个间隔创建输出复选框提供了一种灵活的方式,使用户可计算指定时间段内的整体日照,也可计算时间序列中每个间隔内单独的日照。 例如,对于时间间隔为一小时的日内时间段,选中此框将创建每小时日照值;否则,将计算整天的整体日照。

  • 为每种间隔创建输出参数会影响输出辐射文件的格式和数量。选中时,输出栅格将包含多个波段,对应每个时间间隔(时间配置小于一日时为小时间隔,时间配置为多日时为日间隔)的辐射或持续时间值。

  • 散射比例是总正常辐射通量的散射部分。值的范围介于 0 到 1 之间。应根据大气条件设置该值。天空非常晴朗的条件下,典型值为 0.2,而天空一般晴朗的条件下,典型值为 0.3。

  • 地表接收到的太阳辐射量只是大气外接收到的辐射量的一部分。 透射率是大气层的一种属性,表现为到达地球表面的能量(所有波长的平均值)与大气上边缘接收到的能量(大气圈外)的比率。 值的范围介于 0(无透射)到 1(完全透射)之间。 通常,在天空非常晴朗的条件下,观测值为 0.6 或 0.7;在天空普通晴朗的条件下,观测值为 0.5。

    地球表面接收到的能量值是以相对于海平面而言大气中的最短路径(即太阳位于天顶或头顶正上方)计算的。 对于南回归线和北回归线以外的地区,太阳永远也不能精确地位于天顶,即使是中午也不能;但是,此值仍然是指太阳位于天顶这一时刻的值。 因为会根据海拔影响校正算法,所以应始终针对海平面给出透射率。

    透射率与散射比例参数成反比关系。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格

输入高程表面栅格。

Raster Layer
纬度
(可选)

位置区域的纬度。 单位为十进制度,北半球为正值,南半球为负值。

对于包含空间参考的输入表面栅格,会自动计算平均纬度;否则,纬度将默认为 45 度。

Double
天空大小/分辨率
(可选)

视域、天空图和阳光图栅格的分辨率或天空大小。 单位为像元。

默认为 200 x 200 像元的栅格。

Long
时间配置
(可选)

指定将用于计算的时间段。

  • 特殊日期 - 将计算夏至、冬至和春秋分(春分和秋分的日照是相同的)的太阳日照。
  • 一天内 - 将对一天内的指定时间段执行计算。

    选择儒略日,然后输入起始时间和结束时间。 起始时间和结束时间相同时,将计算瞬时日照。 起始时间在日出前而结束时间在日出后时,将计算全天的日照。

    • 要输入正确日期,可以使用日历按钮打开日历对话框。
  • 多天 - 将对一年中的特定多天时间段执行计算。

    指定起始年、起始日和结束日。 如果结束日小于起始日,则将结束日视为在下一年中。 默认时间配置起始于当前儒略年的第 5 天,结束于第 160 天。

    • 要输入正确日期,可以使用日历按钮打开日历对话框。
  • 整年 - 将使用计算的每月间隔对整年执行计算。

    如果选中为每种间隔创建输出选项,将为每月创建输出文件;否则,将为整年创建一个输出。

Time configuration
间隔天数
(可选)

用于为太阳图计算天空分区的一年中的时间间隔(单位:天)。

默认值为 14(两周)。

Long
间隔小时数
(可选)

用于为太阳图计算天空分区的一天中的时间间隔(单位:小时)。

默认值为 0.5。

Double
为每种间隔创建输出
(可选)

指定将针对所有位置计算单一总日射值,还是针对指定的小时和天间隔计算多个值。

  • 未选中 - 针对整个时间配置计算一个总日照值。 这是默认设置。
  • 选中 - 针对整个时间配置中的各时间间隔计算多个日照值。 输出数取决于小时或天间隔。 例如,使用每月间隔计算整年时,结果将包含针对各位置的 12 个输出辐射值。 输出栅格将包含多个波段,这些波段对应于每个时间间隔的辐射或持续时间值。
Boolean
Z 因子
(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。 计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。 这是默认设置。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。

例如,如果 z 单位是英尺,而 x,y 单位是米,则可以使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double
坡度和坡向输入类型
(可选)

指定如何获取坡度和坡向信息以进行分析。

  • 基于输入表面栅格将根据输入表面栅格计算坡度和坡向栅格。 这是默认设置。
  • 基于平面常数值零将用于坡度和坡向。
String
计算方向
(可选)

计算视域时将使用的方位角方向数。

有效值必须是 8 的倍数(8、16、24、32,依此类推)。 默认值为 32 个方向,该值适用于复杂地形。

Long
天顶分割
(可选)

用于创建天空图中的天空分区的天顶分割数。

默认值为八个分割(相对于天顶)。 值必须大于零并且小于天空大小值的一半。

Long
方位角分割
(可选)

用于创建天空图中的天空分区的方位角分割数。

默认值为八个分割(相对于北方)。 有效值必须是 8 的倍数。 值必须大于零且小于 160。

Long
散射模型类型
(可选)

指定将使用的散射辐射模型的类型。

  • 统一阴天天空将使用均匀散射模型。 所有天空方向的入射散射辐射均相同。 这是默认设置。
  • 标准阴天天空将使用标准阴天散射模型。 入射散射辐射通量随天顶角而变化。
String
散射比例
(可选)

散射的总正常辐射通量的比例。 值的范围介于 0 到 1 之间。

根据大气条件设置该值。 默认值为 0.3,适用于普通晴朗的天空条件。

Double
透射率
(可选)

穿过大气层的辐射部分(所有波长的平均值)。 值的范围介于 0(无透射)到 1(完全透射)之间。

默认值为 0.5,适用于普通晴朗的天空。

Double
输出直接辐射栅格
(可选)

表示每个位置的直接入射的太阳辐射的输出栅格。

输出单位为瓦特小时每平方米 (WH/m2)。

Raster Dataset
输出散射辐射栅格
(可选)

表示每个位置的散射入射的太阳辐射的输出栅格。

输出单位为瓦特小时每平方米 (WH/m2)。

Raster Dataset
输出直接辐射持续时间栅格
(可选)

表示直接入射太阳辐射的持续时间的输出栅格。

输出单位为小时。

Raster Dataset

返回值

标注说明数据类型
输出总辐射量栅格

用于表示为输入表面的每个位置所计算的全局辐射或全部日照入射量(直射 + 散射)的输出栅格。

输出单位为瓦特小时每平方米 (WH/m2)。

Raster

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
(可选)

位置区域的纬度。 单位为十进制度,北半球为正值,南半球为负值。

对于包含空间参考的输入表面栅格,会自动计算平均纬度;否则,纬度将默认为 45 度。

Double
sky_size
(可选)

视域、天空图和阳光图栅格的分辨率或天空大小。 单位为像元。

默认为 200 x 200 像元的栅格。

Long
time_configuration
(可选)

指定用于计算太阳辐射的时间配置(时段)。

Time 类对象用于指定时间配置。

可用的时间配置的不同类型为 TimeWithinDayTimeMultipleDaysTimeSpecialDaysTimeWholeYear

格式如下:

  • TimeWithinDay({day},{startTime},{endTime})
  • TimeMultipleDays({year},{startDay},{endDay})
  • TimeSpecialDays()
  • TimeWholeYear({year})

针对当前儒略年,默认时间配置为 TimeMultipleDays,其中 startDay 值为 5,endDay 值为 160。

Time configuration
day_interval
(可选)

用于为太阳图计算天空分区的一年中的时间间隔(单位:天)。

默认值为 14(两周)。

Long
hour_interval
(可选)

用于为太阳图计算天空分区的一天中的时间间隔(单位:小时)。

默认值为 0.5。

Double
each_interval
(可选)

指定将针对所有位置计算单一总日射值,还是针对指定的小时和天间隔计算多个值。

  • NOINTERVAL针对整个时间配置计算一个总日照值。 这是默认设置。
  • INTERVAL针对整个时间配置中的各时间间隔计算多个辐射值。 输出数取决于小时或天间隔。 例如,使用每月间隔计算整年时,结果将包含针对各位置的 12 个输出辐射值。 输出栅格将包含多个波段,这些波段对应于每个时间间隔的辐射或持续时间值。
Boolean
z_factor
(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。 计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。 这是默认设置。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。

例如,如果 z 单位是英尺,而 x,y 单位是米,则可以使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double
slope_aspect_input_type
(可选)

指定如何获取坡度和坡向信息以进行分析。

  • FROM_DEM将根据输入表面栅格计算坡度和坡向栅格。 这是默认设置。
  • FLAT_SURFACE常数值零将用于坡度和坡向。
String
calculation_directions
(可选)

计算视域时将使用的方位角方向数。

有效值必须是 8 的倍数(8、16、24、32,依此类推)。 默认值为 32 个方向,该值适用于复杂地形。

Long
zenith_divisions
(可选)

用于创建天空图中的天空分区的天顶分割数。

默认值为八个分割(相对于天顶)。 值必须大于零并且小于天空大小值的一半。

Long
azimuth_divisions
(可选)

用于创建天空图中的天空分区的方位角分割数。

默认值为八个分割(相对于北方)。 有效值必须是 8 的倍数。 值必须大于零且小于 160。

Long
diffuse_model_type
(可选)

指定将使用的散射辐射模型的类型。

  • UNIFORM_SKY将使用均匀散射模型。 所有天空方向的入射散射辐射均相同。 这是默认设置。
  • STANDARD_OVERCAST_SKY将使用标准阴天散射模型。 入射散射辐射通量随天顶角而变化。
String
diffuse_proportion
(可选)

散射的总正常辐射通量的比例。 值的范围介于 0 到 1 之间。

根据大气条件设置该值。 默认值为 0.3,适用于普通晴朗的天空条件。

Double
transmittivity
(可选)

穿过大气层的辐射部分(所有波长的平均值)。 值的范围介于 0(无透射)到 1(完全透射)之间。

默认值为 0.5,适用于普通晴朗的天空。

Double
out_direct_radiation_raster
(可选)

表示每个位置的直接入射的太阳辐射的输出栅格。

输出单位为瓦特小时每平方米 (WH/m2)。

Raster Dataset
out_diffuse_radiation_raster
(可选)

表示每个位置的散射入射的太阳辐射的输出栅格。

输出单位为瓦特小时每平方米 (WH/m2)。

Raster Dataset
out_direct_duration_raster
(可选)

表示直接入射太阳辐射的持续时间的输出栅格。

输出单位为小时。

Raster Dataset

返回值

名称说明数据类型
out_global_radiation_raster

用于表示为输入表面的每个位置所计算的全局辐射或全部日照入射量(直射 + 散射)的输出栅格。

输出单位为瓦特小时每平方米 (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"

# 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

相关主题