com.supermap.analyst.spatialanalyst

类 SolarRadiation



  • public class SolarRadiation
    extends Object
    太阳辐射分析类。该类提供基于DEM计算表面太阳辐射量的功能。
    • 方法详细资料

      • areaSolarRadiation

        @Deprecated
        public static SolarRadiationResult areaSolarRadiation(DatasetGrid sourceDatasetGrid,
                                                                           SolarRadiationParameter parameter,
                                                                           Datasource targetDatasource,
                                                                           String totalGridName,
                                                                           String directGridName,
                                                                           String diffuseGridName,
                                                                           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();
         }
         
      • areaSolarRadiation

        public static SolarRadiationResult areaSolarRadiation(DatasetGrid sourceDatasetGrid,
                                                              SolarRadiationParameter parameter,
                                                              Datasource targetDatasource,
                                                              String totalGridName,
                                                              String directGridName,
                                                              String diffuseGridName,
                                                              String durationGridName,
                                                              SteppedListener... listeners)
        计算区域太阳辐射,即整个DEM范围内每个栅格的太阳辐射情况。
        参数:
        sourceDatasetGrid - 待计算太阳辐射的DEM栅格数据。
        parameter - 太阳辐射计算参数。
        targetDatasource - 指定的用于存储结果数据的数据源。
        totalGridName - 指定的总辐射量结果数据集的名称。
        directGridName - 指定的直射辐射量结果数据集的名称。可选,允许传null。
        diffuseGridName - 指定的散射辐射量结果数据集的名称。可选,允许传null。
        durationGridName - 指定的太阳直射持续时间结果数据集的名称。可选,允许传null。
        listeners - 用于接收进度条事件的监听器。
        返回:
        太阳辐射结果对象。
        示范代码:
        以下代码示范了如何对给定的栅格数据集进行区域太阳辐射计算。
         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 - 一个用于接收进度条事件的监听器。

Copyright © 2021–2024 SuperMap. All rights reserved.