标注 | 说明 | 数据类型 |
输入表面栅格 | 输入高程表面栅格。 | Raster Layer |
输入点或面要素 | 输入要素(点或面),用于表示接收到的太阳辐射量的位置或工程表面。 | Feature Layer |
唯一 ID 字段 | 包含定义每个要素的值的字段。 该字段可以是输入要素的整型或字符串型字段。 | Field |
输出表 | 将包含接收到的太阳辐射量汇总的输出表 表的格式由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。 | Table |
起始日期和时间 | 分析的开始日期和时间。 | Date |
结束日期和时间 | 分析的结束日期和时间。 | Date |
时区 (可选) | 用于开始和结束时间的时区。 默认值为 UTC(协调世界时间)。
| String |
调整夏令时时间 (可选) | 指定是否将输入时间配置调整为夏令时。 此参数不适用于月球上的分析。
| Boolean |
计算时间间隔的日照 (可选) | 指定是否对整个时间配置计算单一总日射值,还是对指定间隔计算多个辐射值。
| Boolean |
时间间隔单位 (可选) | 指定用于计算整个时间配置的太阳辐射值的时间单位。 仅当选中计算时间间隔的日照参数时,此参数才可用。
| String |
时间间隔 (可选) | 持续时间或间隔之间的时间值。 默认值取决于指定的间隔单位。 每个可用单位的默认值如下所示。
| Long |
要素偏移 (可选) | 将添加到栅格表面上的用于分析的垂直距离。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的高度。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 默认值为 0。 | Double; Field |
要素面积 (可选) | 与输入要素相关联的面积。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的面积。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 默认情况下,面积根据输入要素获取。 默认情况下,点要素的面积为 0。 | Double; Field |
要素坡度 (可选) | 与输入要素相关联的相对坡度或倾斜度。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的倾斜度。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 坡度以 0 到 90 度的角度表示。 分析的默认值是根据输入表面栅格的基本值计算的。 | Double; Field |
要素坡向 (可选) | 与输入要素相关联的相对破向或方向。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板面的方向。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 坡向由 0 到 360 度之间的度数表示。 分析的默认值是根据输入表面栅格的基本值计算的。 | Double; Field |
邻域距离 (可选) | 与目标像元中心的距离,将根据此目标像元计算输出间隔值。 可确定邻域大小。 默认值为输入表面栅格像元大小,可生成 3 x 3 邻域。 | Linear Unit |
使用自适应邻域 (可选) | 指定邻域距离是否随地表变化而变化(自适应)。 最大距离由邻域距离确定。 最小距离为输入栅格像元大小。
| Boolean |
散射模型类型 (可选) | 指定将使用的散射辐射模型的类型。
| String |
散射比例 (可选) | 散射的总正常辐射通量的比例。 值的范围介于 0 到 1 之间。 根据大气条件设置该值。 默认值为 0.3,适用于普通晴朗的天空条件。 | Double |
透射率 (可选) | 穿过大气层的辐射部分(所有波长的平均值)。 值的范围介于 0(无透射)到 1(完全透射)之间。 默认值为 0.5,适用于普通晴朗的天空。 | Double |
用于分析的目标设备 (可选) | 指定将用于执行计算的设备。
| String |
输出连接图层 (可选) | 通过将输入表连接到输入要素类创建的输出图层。 此为可选输出。 | Feature Layer |
摘要
计算输入点或面要素相对于地球或月球表面(地面)的日照入射量。
输入要素可表示位置或工程表面,通过指定属性来定义分析相对于地面的大小、高度和方向。 日照量计算为每个要素一定时间内接收到的太阳辐射能量。 数值表示要素区域的总和与平均值,并分别以千瓦时 (kWh) 和每平方米的千瓦时 (kWh/m2) 为单位。
使用情况
输入表面栅格参数定义的空间参考用于指定是针对地球还是月球进行分析。
太阳辐射计算要求输出坐标系环境值为投影坐标系 (PCS)。 建议数据采用 PCS(单位:米)。 如果使用球面坐标系进行分析,则必须将输出坐标系环境设置为有效 PCS。
输入要素必须为点或面要素数据。 不支持对 3D 或多面体进行分析。
通过如为所有或单个要素指定方向、倾斜度、面积和偏移量,可以使用输入要素参数包括附加细节,从而表示工程表面,例如,将一组点表示为地面上或建筑物屋顶上的太阳能电池板。
建议将输出表格式指定为地理数据库。 这样可以改善性能和功能。 dBase 文件格式 (.dbf) 的表中包含精度、字段名称长度以及日期和时间格式方面的已知限制。
计算的总日照值、直接日照值、散射日照值和直射时长将作为属性添加到输出表中。 这些值包括每个要素的总日照值(在整个区域范围内)和平均日照值(每单位面积)。 单位分别为千瓦时 (kWh) 和每平方米千瓦时 (kWh/m2)。 时长单位为小时。
总日照值通过分析与要素(或部分要素)相交的输入表面栅格的每个像元位置,并将其乘以该要素的面积来计算。 而不是计算要素的单个中心位置。
如果对大范围进行分析,并且面要素很少或分散程度很高,则由于需要对分辨率进行栅格化处理,这可能延长处理时间。
要素坡度、要素坡向、要素面积和要素偏移参数可用于提供额外的细节,以表示可能拦截入射太阳辐射的工程表面,例如方向、倾斜度、面积和偏移量。 这些细节可以是静态的,也可以随时间而变化位置和方向。 例如地面上或建筑物屋顶上的太阳能电池板,或者移动车辆上的电池板。
默认情况下,如果未指定要素参数,则将从输入表面栅格或各个要素计算值。 除非另有说明,否则点的面积为零。
如果为这些参数中的任何一个提供了值,它将应用于所有输入要素。 或者,您可以提供输入要素中的字段属性,以便逐个分析每个要素。 如果指定了字段并且值缺失 (Null),则该值将被设置为零。
仅支持地球的夏令时。 对于月球,时间必须以协调世界时 (UTC) 指定。
结束日期和时间参数值必须大于或等于开始日期。 时间跨度不能超过一年。 开始和结束日期时间可以跨越日历年。
将为每个相应的时间间隔计算输出辐射值。 如果某个时间间隔未接收到太阳辐射,则该位置的结果值将为零。
如果在开始和结束时间之间指定的总时间不能被时间间隔等分,则将在内部延长总持续时间,以提供所需数量的时间片。 例如,如果时间间隔参数设置为覆盖三天,但指定的开始和结束时间之间的差距为八天,则时间间隔将延长为九天。 不会返回时间的部分结果。
地球数据的最小时间间隔为 30 分钟,且必须是 30 的倍数。 月球数据的最小时间间隔为四小时,且必须是 2 的倍数。
邻域距离(Python 中的 neighborhood_distance)参数可确定邻域大小,并根据与目标像元中心之间的这一距离计算表面参数。 该值不能小于输入栅格像元大小。
较小邻域距离可捕获地表中的更多局部变化(例如,较小地表要素的特征)。 对于高分辨率高程数据,更大的距离可能更合适。
如果选中使用自适应邻域参数(Python 中的 use_adaptive_neighborhood = "ADAPTIVE_NEIGHBORHOOD"),邻域距离将随地形的变化而变化。 如果计算窗口中的内容变化过大,则邻域距离将缩小。
地球的月球没有大气层,因此辐射参数散射比例和透过率在分析中不相关。 因此,入射的漫射太阳辐射为零,总辐射等于直接太阳辐射。
散射比例是总正常辐射通量的散射部分。 值的范围介于 0 到 1 之间。 根据大气条件设置该值。 天空非常晴朗的条件下,典型值为 0.2,而天空一般晴朗的条件下,典型值为 0.3。
透过率是达到地球表面的能量与与大气上边缘接收到的能量的比率。 值的范围介于 0(无透射)到 1(完全透射)之间。 通常,在天空非常晴朗的条件下,观测值为 0.6 或 0.7;在天空普通晴朗的条件下,观测值为 0.5。
透射率与散射比例参数成反比关系。 更改这些值可能会影响模型的结果。 识别感兴趣区域的最佳值取决于多个变量(例如,位置和时间)。 可以更改这些值以比较它们对结果的影响。
此工具可通过 GPU 加速,也就是说,如果系统中安装了兼容的图形处理器 (GPU),该设备将用于增强工具的性能。 使用用于分析的目标设备(Python 中的 analysis_target_device)参数来控制是使用 GPU 还是 CPU 来运行该工具。
有关兼容的 GPU 以及配置和使用 GPU 设备的更多详细信息还有故障排除提示,请参阅使用 Spatial Analyst 进行 GPU 处理。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
其他资源:
Acton, C. A. "Ancillary data services of NASA's Navigation and Ancillary Information Facility". Planetary and Space Science. Vol. 44, Issue 1, January 1996, 65-70. https://doi.org/10.1016/0032-0633(95)00107-7
Acton, C, Bachman, Semenov, B., and Wright, E. "A look toward the future in the handling of space science mission geometry". Planetary and Space Science. Volume 150, January 2018, 9-12. https://doi.org/10.1016/j.pss.2017.02.013
参数
FeatureSolarRadiation(in_surface_raster, in_features, unique_id_field, out_table, start_date_time, end_date_time, {time_zone}, {adjust_DST}, {use_time_interval}, {interval_unit}, {interval}, {feature_offset}, {feature_area}, {feature_slope}, {feature_aspect}, {neighborhood_distance}, {use_adaptive_neighborhood}, {diffuse_model_type}, {diffuse_proportion}, {transmittivity}, {analysis_target_device}, {out_join_layer})
名称 | 说明 | 数据类型 |
in_surface_raster | 输入高程表面栅格。 | Raster Layer |
in_features | 输入要素(点或面),用于表示接收到的太阳辐射量的位置或工程表面。 | Feature Layer |
unique_id_field | 包含定义每个要素的值的字段。 该字段可以是输入要素的整型或字符串型字段。 | Field |
out_table | 将包含接收到的太阳辐射量汇总的输出表 表的格式由输出位置和路径确定。 默认情况下,如果在地理数据库工作空间中,则输出将是一个地理数据库表;如果在文件工作空间中,则输出将为 dBASE 表。 | Table |
start_date_time | 分析的开始日期和时间。 | Date |
end_date_time | 分析的结束日期和时间。 | Date |
time_zone (可选) | 用于开始和结束时间的时区。 默认值为 UTC(协调世界时间)。
| String |
adjust_DST (可选) | 指定是否将输入时间配置调整为夏令时。 此参数不适用于月球上的分析。
| Boolean |
use_time_interval (可选) | 指定是否对整个时间配置计算单一总日射值,还是对指定间隔计算多个辐射值。
| Boolean |
interval_unit (可选) | 指定用于计算整个时间配置的太阳辐射值的时间单位。 仅当 use_time_interval 参数设置为 INTERVAL 时,系统才支持此参数。
| String |
interval (可选) | 持续时间或间隔之间的时间值。 默认值取决于指定的间隔单位。 每个可用单位的默认值如下所示。
| Long |
feature_offset (可选) | 将添加到栅格表面上的用于分析的垂直距离。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的高度。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 默认值为 0。 | Double; Field |
feature_area (可选) | 与输入要素相关联的面积。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的面积。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 默认情况下,面积根据输入要素获取。 默认情况下,点要素的面积为 0。 | Double; Field |
feature_slope (可选) | 与输入要素相关联的相对坡度或倾斜度。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板的倾斜度。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 坡度以 0 到 90 度的角度表示。 分析的默认值是根据输入表面栅格的基本值计算的。 | Double; Field |
feature_aspect (可选) | 与输入要素相关联的相对破向或方向。 它必须为正整数值或浮点值。 可以从输入要素数据集中选择一个字段,或者可以提供一个数值。 例如,如果对象是一个面板,则需提供面板面的方向。 如果为此参数提供了一个值,则所有要素都将使用该值。 要为每个单独要素指定不同的值,请从输入要素数据集中选择一个字段。 坡向由 0 到 360 度之间的度数表示。 分析的默认值是根据输入表面栅格的基本值计算的。 | Double; Field |
neighborhood_distance (可选) | 与目标像元中心的距离,将根据此目标像元计算输出间隔值。 可确定邻域大小。 默认值为输入表面栅格像元大小,可生成 3 x 3 邻域。 | Linear Unit |
use_adaptive_neighborhood (可选) | 指定邻域距离是否随地表变化而变化(自适应)。 最大距离由邻域距离确定。 最小距离为输入栅格像元大小。
| Boolean |
diffuse_model_type (可选) | 指定将使用的散射辐射模型的类型。
| String |
diffuse_proportion (可选) | 散射的总正常辐射通量的比例。 值的范围介于 0 到 1 之间。 根据大气条件设置该值。 默认值为 0.3,适用于普通晴朗的天空条件。 | Double |
transmittivity (可选) | 穿过大气层的辐射部分(所有波长的平均值)。 值的范围介于 0(无透射)到 1(完全透射)之间。 默认值为 0.5,适用于普通晴朗的天空。 | Double |
analysis_target_device (可选) | 指定将用于执行计算的设备。
| String |
out_join_layer (可选) | 通过将输入表连接到输入要素类创建的输出图层。 此为可选输出。 | Feature Layer |
代码示例
以下 Python 窗口脚本演示了如何使用 FeatureSolarRadiation 函数。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "C:/sapyexamples/solardata.gdb"
env.scratchWorkspace = "C:/sapyexamples/outfile.gdb"
#Run FeatureSolarRadiation
arcpy.sa.FeatureSolarRadiation("dem30m.tif","solar_pnts","pntID","SolarPnts_radiation_092023",
"9/1/2023 06:30:00 AM","10/1/2023 6:30:00 PM","Pacific_Standard_Time")
计算 2023 年整年点要素表示的工程要素每周间隔的太阳辐射量。
# Name: FeatureSolarRadiation_standalone.py
# Description: Calculate the solar insolation for the whole year 2023 at one week
# intervals for engineered features represented by point features.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy.sa import *
# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/solardata.gdb"
arcpy.env.scratchWorkspace = "C:/sapyexamples/outfile.gdb"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Run FeatureSolarRadiation
arcpy.sa.FeatureSolarRadiation(
in_surface_raster="dem30m.tif",
in_features="solar_pnts",
unique_id_field="pntID",
out_table=r"SolarPnts_radiation_092023",
start_date_time="1/1/2023",
end_date_time="12/31/2023",
time_zone="Mountain_Standard_Time",
adjust_DST="ADJUSTED_FOR_DST",
use_time_interval="NO_INTERVAL",
interval_unit="WEEK",
interval=1,
feature_offset=2.5,
feature_area="Area_FLD",
feature_slope="Slope_FLD",
feature_aspect="Aspect_FLD",
neighborhood_distance="",
use_adaptive_neighborhood="",
diffuse_model_type="UNIFORM_SKY",
diffuse_proportion=0.3,
transmittivity=0.5,
analysis_target_device="GPU_THEN_CPU",
out_join_layer=None
)