com.supermap.analyst.spatialanalyst
类 SolarRadiation

java.lang.Object
  继承者 com.supermap.analyst.spatialanalyst.SolarRadiation

public class SolarRadiation
extends java.lang.Object

太阳辐射分析类。该类提供基于DEM计算表面太阳辐射量的功能。


方法摘要
static void addSteppedListener(SteppedListener l)
          添加一个进度条事件(SteppedEvent)的监听器。
static SolarRadiationResult areaSolarRadiation(DatasetGrid sourceDatasetGrid, SolarRadiationParameter parameter, Datasource targetDatasource, java.lang.String totalGridName, java.lang.String directGridName, java.lang.String diffuseGridName, java.lang.String durationGridName)
          计算区域太阳辐射,即整个DEM范围内每个栅格的太阳辐射情况。
static void removeSteppedListener(SteppedListener l)
          移除一个进度条事件(SteppedEvent)的监听器。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

areaSolarRadiation

public static SolarRadiationResult areaSolarRadiation(DatasetGrid sourceDatasetGrid,
                                                      SolarRadiationParameter parameter,
                                                      Datasource targetDatasource,
                                                      java.lang.String totalGridName,
                                                      java.lang.String directGridName,
                                                      java.lang.String diffuseGridName,
                                                      java.lang.String durationGridName)
计算区域太阳辐射,即整个DEM范围内每个栅格的太阳辐射情况。

参数:
sourceDatasetGrid - 待计算太阳辐射的DEM栅格数据。
parameter - 太阳辐射计算参数。
targetDatasource - 指定的用于存储结果数据的数据源。
totalGridName - 指定的总辐射量结果数据集的名称。
directGridName - 指定的直射辐射量结果数据集的名称。可选,允许传null。
diffuseGridName - 指定的散射辐射量结果数据集的名称。可选,允许传null。
durationGridName - 指定的太阳直射持续时间结果数据集的名称。可选,允许传null。
返回:
太阳辐射结果对象。
示例:
以下代码示范了如何对给定的栅格数据集进行区域太阳辐射计算。
 public void GridAreaSolarRadiation(DatasetGrid sourceDatasetGrid, Datasource targetDatasource)
 {
     //构造太阳辐射参数对象
     SolarRadiationParameter parameter = new SolarRadiationParameter();
     parameter.setLatitude(30.0);
     parameter.setTimeMode(SolarTimeMode.WITHINDAY);
     parameter.setDayStart(100);
     parameter.setHourStart(6);
     parameter.setHourEnd(18);
     parameter.setTransmittance(0.5);
     
           //调用区域太阳辐射方法,获得太阳辐射结果对象
           SolarRadiationResult solarRadiationResult = SolarRadiation.areaSolarRadiation(sourceDatasetGrid,
           parameter, targetDatasource, "TotalRadiation", "DirectRadiation", "DiffuseRadiation", "DurationRadiation");
 
           //从太阳辐射结果中提取结果数据集
           DatasetGrid totalGrid = solarRadiationResult.getTotalDatasetGrid();
           DatasetGrid directGrid = solarRadiationResult.getDirectDatasetGrid();
           DatasetGrid diffuseGrid = solarRadiationResult.getDiffuseDatasetGrid();
           DatasetGrid durationGrid = solarRadiationResult.getDurationDatasetGrid();
        
     //参数类资源释放
     parameter.dispose();
 }
 

addSteppedListener

public static void addSteppedListener(SteppedListener l)
添加一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

public static void removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。