太阳辐射区域 (空间分析)

许可等级:BasicStandardAdvanced

摘要

从栅格表面获得入射太阳辐射

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

用法

语法

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

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

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

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

格式如下:

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

默认时间配置为 TimeMultiDays,其中 start_day 为 5 且 end_day 为 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 窗口脚本演示了太阳辐射区域 (AreaSolarRadiation) 工具的使用方法。

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")

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 Spatial Analyst
ArcGIS for Desktop Standard: 需要 Spatial Analyst
ArcGIS for Desktop Advanced: 需要 Spatial Analyst
5/10/2014