Skip to content
Collin edited this page Mar 6, 2016 · 9 revisions

Subcanopy Solar Radiation Model

Documentation (SSR)

by Collin Bode

SSR is a model written in python that runs within GRASS GIS. To use, it requires installing and configuring GRASS, creating a grass workspace appropriate to your target area, and importing the LiDAR data into the workspace. Once all of this is accomplished, then you can run the model. Light modeling requires ray-tracing, which is extremely computationally expensive. It also is memory intensive. The output of the model is raster maps of insolation in watt-hours per meter squared. It runs for one calendar year and produces one representative map per week. This is 52 maps. There are 10 intermediate maps produced during the model run, resulting in 520 rasters.

SSR Version 1.0 Model Environment

Operating System: Linux (tested on Centos 5 & 7)

  • GRASS GIS 6.4 stable
  • Python 2.7
SSR Version 2.0 Model Environment (in development)
  • Operating System Independent (Centos 7 Linux, Windows 7, Mac OS X 10.10)
  • GRASS GIS 7.0.1
  • Python 2.7
Hardware recommendations
  • RAM 32GB
  • CPU 8 cores
  • Storage 500GB free
Source Data
  • LiDAR bare-earth raster, preferably 1x1 m cell resolution in geoTIFF format.
  • LiDAR canopy raster (optional, can be generated), 1x1 m cell in geoTIFF format.
  • LiDAR point cloud, classified ground, non-ground, .las format or ASCII text.

Workflow Version 1.x

This documentation will not cover the installation of GRASS GIS or python modules. Please see the linked sites for details. The documentation will assume the Linux operating system and will be done entirely from the command line, even though GRASS has a graphical user interface.

1. Create a GRASS GIS Workspace

Detailed walkthrough can be found on this page.

2. Customize Parameter file

SSR model runs mostly from outside GRASS. To do so, the parameter file must have the correct pathnames to libraries and the workspace.

Run Parts

This section controls which parts of the model are run. Generally it is wise to run each section in sequence on its own, so to troubleshoot as you go.

    Run Parts?  0 = do not run, 1 = run, but do not overwrite maps, 2 = run, overwrite maps
    preprocessing_run = 1
    rsun_run = 0
    lidar_run = 0
    lpi_run = 0
    algore_run = 0
Pathnames
    # GRASS GIS requires 4 inputs to start: 
    gisbase = '/usr/lib64/grass-6.4.4'	# GIS BASE (GISBASE): path to GRASS binaries.  
    gisdbase = '/data/grass_workspace'      # DATABASE (GISDBASE): A directory containing GRASS maps and data.
    location = loc = 'angelo2014'           # LOCATION (loc): Defined by coordinate system & bounding box.
    mapset = 'PERMANENT'                    # MAPSET: subset of a location. PERMANENT is the default.
Other General Parameters
    C = 2                                   # cell size in meters  
    demsource = 'angelo1m2014dem'           # name of bare-earth raster to use for model run  
    cansource = 'angelo1m2014can'           # name of canopy elevation raster to use for model run  

3. Import geoTIFF Bare-earth Raster

     r.in.gdal input=/data/gis/angelo1m2014dem.tif output=angelo1m2014dem

4.

Clone this wiki locally