太阳辐射点 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

获得点要素类或位置表中特定位置的入射太阳辐射。

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

使用情况

  • 输入位置可以是点要素类或是点坐标表。 该表可以是地理数据库表、.dbf 文件、INFO 表或文本表文件。 该值类型可以为长整型、浮点型或双精度型。

  • 按表输入位置时,必须通过 x,y 坐标指定位置列表。 使用 ASCII 坐标文件时,每行均应包含一个由逗号、空格或制表符分隔的 x,y 对。 下文列出空格分隔的示例:

    X Y
    325541.218750 4314768.5
    325169.250000 4313907.0
    325874.031250 4313134.0
    325825.093750 4314181.5

    或者,也可在位置表中指定坡度(度)和坡向。 文件应按任意顺序包含每个位置的坡度和坡向值以及 x,y 坐标。 下文列出逗号分隔的示例:

    x, y, slope, aspect
    325541.218750, 4314768.5, 15.84516716, 310.2363586
    325169.250000, 4313907.0, 39.39801788,   2.03503442
    325874.031250, 4313134.0, 16.10847282, 223.8308563
    325825.093750, 4314181.5,  8.89850712, 205.2011261
  • 对于多日时间配置,最大天数范围为一年的总天数(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.)。 起始时间必须小于结束时间。

  • 当表面 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 中包含有人造建筑时,需要增加方向数。 增加方向数会提升精度,但也会增加计算时间。

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

  • 为每种间隔创建输出参数会影响输出要素的属性数。 为点辐射分析选中此复选框时,输出要素类包括附加属性(t0、t1、t2 等),而这些属性用于指示每段时间间隔的辐射或持续时间值(时间配置小于一日时为小时间隔,时间配置为多日时为日间隔)。 例如,如果开始时间 = 0,则 t0 将为日出时间,而 t1 将为日出后的下一个时间增量。

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

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

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

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

参数

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

输入高程表面栅格。

Raster Layer
输入点要素或表

指定位置以分析太阳辐射位置的输入点要素类或表。

Feature Layer; Table View
输出总辐射要素

表示在每个位置计算而得的总辐射或日照入射量(直射 + 散射)的输出要素类。

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

Feature Class
高度偏移
(可选)

将执行计算的 DEM 表面之上的高度(以米为单位)。

高度偏移将应用到所有输入位置。

Double
纬度
(可选)

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

对于包含空间参考的输入表面栅格,会自动计算平均纬度;否则,纬度将默认为 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
坡度和坡向输入类型
(可选)

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

  • 基于输入表面栅格将根据输入表面栅格计算坡度和坡向栅格。 这是默认设置。
  • 基于平面常数值零将用于坡度和坡向。
  • 基于输入点表将在位置文件中与 x,y 坐标一起指定坡度和坡向值。
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)。

Feature Class
输出散射辐射要素
(可选)

表示每个散射位置的入射太阳辐射的输出要素类。

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

Feature Class
输出直接辐射持续时间要素
(可选)

表示直接入射太阳辐射的持续时间的输出要素类。

输出单位为小时。

Feature Class

PointsSolarRadiation(in_surface_raster, in_points_feature_or_table, out_global_radiation_features, {height_offset}, {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_features}, {out_diffuse_radiation_features}, {out_direct_duration_features})
名称说明数据类型
in_surface_raster

输入高程表面栅格。

Raster Layer
in_points_feature_or_table

指定位置以分析太阳辐射位置的输入点要素类或表。

Feature Layer; Table View
out_global_radiation_features

表示在每个位置计算而得的总辐射或日照入射量(直射 + 散射)的输出要素类。

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

Feature Class
height_offset
(可选)

将执行计算的 DEM 表面之上的高度(以米为单位)。

高度偏移将应用到所有输入位置。

Double
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常数值零将用于坡度和坡向。
  • FROM_POINTS_TABLE将在位置文件中与 x,y 坐标一起指定坡度和坡向值。
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_features
(可选)

表示每个位置直接入射太阳辐射的输出要素类。

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

Feature Class
out_diffuse_radiation_features
(可选)

表示每个散射位置的入射太阳辐射的输出要素类。

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

Feature Class
out_direct_duration_features
(可选)

表示直接入射太阳辐射的持续时间的输出要素类。

输出单位为小时。

Feature Class

代码示例

PointsSolarRadiation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用此工具。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
PointsSolarRadiation("elevation", "observers.shp", 
                     "c:/sapyexamples/output/outglobalrad1.shp", "", 35, 200, 
                     TimeMultipleDays(2009, 91, 212), 14, 0.5,"NOINTERVAL", 
                     1, "FROM_DEM", 32, 8, 8,"STANDARD_OVERCAST_SKY", 0.3, 0.5, 
                     "c:/sapyexamples/output/outdirectrad1.shp", 
                     "c:/sapyexamples/output/outdiffuserad1.shp", 
                     "c:/sapyexamples/output/outduration1.shp")
PointsSolarRadiation 示例 2(独立脚本)

计算特定点位置入射太阳辐射量。

# PointsSolarRadiation_Example02.py
# Description: For all point locations, calculates total global, direct,
#    diffuse and direct duration solar radiation for a whole year.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
inPntFC = "observers.shp"
outFeatures = "c:/sapyexamples/output/outglobal1.shp"
latitude = 35.75
skySize = 200
timeConfig = TimeMultipleDays(2009, 91, 212)
dayInterval = 14
hourInterval = 0.5
zFactor = 0.3048
calcDirections = 32
zenithDivisions = 8
azimuthDivisions = 8
diffuseProp = 0.3
transmittivity = 0.5
outDirectRad = "C:/sapyexamples/output/outdirectrad1.shp"
outDiffuseRad = "C:/sapyexamples/output/outdiffuserad1.shp"
outDirectDur = "C:/sapyexamples/output/outduration1.shp"

# Execute PointsSolarRadiation...
PointsSolarRadiation(inRaster, inPntFC, outFeatures, "", latitude, skySize, 
                     timeConfig, dayInterval, hourInterval, "INTERVAL", 
                     zFactor, "FROM_DEM", calcDirections, zenithDivisions, 
                     azimuthDivisions,"STANDARD_OVERCAST_SKY", diffuseProp, 
                     transmittivity, outDirectRad, outDiffuseRad, outDirectDur)

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题