标注 | 说明 | 数据类型 |
输入栅格 | 输入高程表面栅格。 | Raster Layer |
输入点要素或表 | 包含将分析太阳辐射的位置的输入点要素类或表。 | Feature Layer; Table View |
输出总辐射要素 | 表示在每个位置计算而得的总辐射或日照入射量(直射 + 散射)的输出要素类。 输出单位为瓦特小时每平方米 (WH/m2)。 | Feature Class |
高度偏移 (可选) | 将执行计算的 DEM 表面之上的高度(以米为单位)。 高度偏移将应用到所有输入位置。 | Double |
纬度 (可选) | 位置区域的纬度。 单位为十进制度,北半球为正值,南半球为负值。 对于包含空间参考的输入表面栅格,会自动计算平均纬度;否则,纬度将默认为 45 度。 | Double |
天空大小/分辨率 (可选) | 视域、天空图和阳光图栅格的分辨率或天空大小。 单位为像元。 默认为 200 x 200 像元的栅格。 | Long |
时间配置 (可选) | 指定将用于计算的时间段。
| Time configuration |
间隔天数 (可选) | 用于为太阳图计算天空分区的一年中的时间间隔(单位:天)。 默认值为 14(两周)。 | Long |
间隔小时数 (可选) | 用于为太阳图计算天空分区的一天中的时间间隔(单位:小时)。 默认值为 0.5。 | Double |
为每个间隔创建输出 (可选) | 指定将针对所有位置计算单一总日射值,还是针对指定的小时和天间隔计算多个值。
| 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)。 | Feature Class |
输出散射辐射要素 (可选) | 表示每个散射位置的入射太阳辐射的输出要素类。 输出单位为瓦特小时每平方米 (WH/m2)。 | Feature Class |
输出直接辐射持续时间要素 (可选) | 表示直接入射太阳辐射的持续时间的输出要素类。 输出单位为小时。 | Feature Class |
使用情况
输入位置可以是点要素类或是点坐标表。 该表可以是地理数据库表、.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 到第二天下午 12:00)。 起始时间必须小于结束时间。
当表面 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。
参数
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 类对象用于指定时间配置。 可用的时间配置的不同类型为 TimeWithinDay、TimeMultipleDays、TimeSpecialDays 和 TimeWholeYear。 格式如下:
针对当前儒略年,默认时间配置为 TimeMultipleDays,其中 startDay 值为 5,endDay 值为 160。 | Time configuration |
day_interval (可选) | 用于为太阳图计算天空分区的一年中的时间间隔(单位:天)。 默认值为 14(两周)。 | Long |
hour_interval (可选) | 用于为太阳图计算天空分区的一天中的时间间隔(单位:小时)。 默认值为 0.5。 | Double |
each_interval (可选) | 指定将针对所有位置计算单一总日射值,还是针对指定的小时和天间隔计算多个值。
| 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 (可选) | 指定如何获取坡度和坡向信息以进行分析。
| String |
calculation_directions (可选) | 计算视域时将使用的方位角方向数。 有效值必须是 8 的倍数(8、16、24、32,依此类推)。 默认值为 32 个方向,该值适用于复杂地形。 | Long |
zenith_divisions (可选) | 用于创建天空图中的天空分区的天顶分割数。 默认值为八个分割(相对于天顶)。 值必须大于零并且小于天空大小值的一半。 | Long |
azimuth_divisions (可选) | 用于创建天空图中的天空分区的方位角分割数。 默认值为八个分割(相对于北方)。 有效值必须是 8 的倍数。 值必须大于零且小于 160。 | Long |
diffuse_model_type (可选) | 指定将使用的散射辐射模型的类型。
| 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 |
代码示例
以下 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_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)