计算区域太阳辐射,即整个DEM范围内每个栅格的太阳辐射情况。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static SolarRadiationResult AreaSolarRadiation(
	DatasetGrid sourceDatasetGrid,
	SolarRadiationParameter parameter,
	Datasource targetDatasource,
	string totalGridName,
	string directGridName,
	string diffuseGridName,
	string durationGridName
)

参数

sourceDatasetGrid
Type: SuperMap.Data..::.DatasetGrid
待计算太阳辐射的DEM栅格数据。
parameter
Type: SuperMap.Analyst.SpatialAnalyst..::.SolarRadiationParameter
太阳辐射计算参数。
targetDatasource
Type: SuperMap.Data..::.Datasource
指定的用于存储结果数据的数据源。
totalGridName
Type: System..::.String
指定的总辐射量结果数据集的名称。
directGridName
Type: System..::.String
指定的直射辐射量结果数据集的名称。可选,允许传null。
diffuseGridName
Type: System..::.String
指定的散射辐射量结果数据集的名称。可选,允许传null。
durationGridName
Type: System..::.String
指定的太阳直射持续时间结果数据集的名称。可选,允许传null。

返回值

太阳辐射结果对象。

示例

以下代码示范了如何对给定的栅格数据集进行区域太阳辐射计算。

CopyC#
public void GridAreaSolarRadiation(DatasetGrid sourceDatasetGrid, Datasource targetDatasource)
{
    //构造太阳辐射参数对象
    SolarRadiationParameter parameter = new SolarRadiationParameter();
    parameter.Latitude = 30.0;
    parameter.TimeMode = SolarTimeMode.WithinDay;
    parameter.DayStart = 100;
    parameter.HourStart = 6;
    parameter.HourEnd = 18;
    parameter.Transmittance = 0.5;

    //调用区域太阳辐射方法,获得太阳辐射结果对象
    SolarRadiationResult solarRadiationResult = SolarRadiation.AreaSolarRadiation(sourceDatasetGrid,
    parameter, targetDatasource, "TotalRadiation", "DirectRadiation", "DiffuseRadiation", "DurationRadiation");

    //从太阳辐射结果中提取结果数据集
    DatasetGrid totalGrid = solarRadiationResult.TotalDatasetGrid;
    DatasetGrid directGrid = solarRadiationResult.DirectDatasetGrid;
    DatasetGrid diffuseGrid = solarRadiationResult.DiffuseDatasetGrid;
    DatasetGrid durationGrid = solarRadiationResult.DurationDatasetGrid;

    //参数类资源释放
    parameter.Dispose();
}

请参见