Skip to content
Collin edited this page Feb 15, 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 32+GB
  • 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.

Create a GRASS workspace

GRASS is a little unusual for GIS systems in that it requires you define a workspace before you can interact with datasets. The workspace requires a projection, a raster resolution, and a spatial extent. I recommend gathering this data before you start.

  1. Prep. Choose your bare-earth DEM. For this example, I will use the 2014 NCALM LiDAR flight of the Angelo Coast Range Reserve, Mendocino, CA. This dataset can be downloaded from Open Topography.org. You will have to sign up to request the LAS point cloud.

Source Raster: angelo1m2014dem.tif
Format: geoTIFF
Resolution: 1x1 meter
Projection: UTM, zone 10, datum NAD83 (EPSG:26910).
Bounding Box
North: 4403020.5
South: 4390979.5
West: 441979.5
East: 453020.5

  1. Create your GRASS Workspace and Location. The workspace is simply a directory. So at the command line, mkdir /data/grass_workspace
    cd /data/grass_workspace
    grass64 -tui

You will be greeted with the lovely GRASS interface. Follow the instructions, make sure the DATABASE is your current location and then make a name for you new LOCATION. MAPSET can be blank for creating a new Location. LOCATION: angelo2014_______________ (enter list for a list of locations) MAPSET: _________________________ (or mapsets within a location) DATABASE: /data/grass_workspace____________________________________________ >LOCATION - doesn't exist >Would you like to create location ? (y/n) [y]

>To create a new LOCATION, you will need the following information:
1. The coordinate system for the database
    x,y (for imagery and other unreferenced data)
    Latitude-Longitude
    UTM
    Other Projection
2. The zone for the UTM database
   and all the necessary parameters for projections other than
   Latitude-Longitude, x,y, and UTM
3. The coordinates of the area to become the default region
   and the grid resolution of this region
4. A short, one-line description or title for the location
>Do you have all this information? (y/n) [y] 

>Please specify the coordinate system for location <angelo2014>
A   x,y
B   Latitude-Longitude
C   UTM
D   Other Projection
RETURN to cancel
>C
>Please enter a one line description for location <angelo2014>
>Angelo2014 represents the Angelo Coast Range Reserve, Mendocino, CA.  It covers the reserve boundary, and the Fox & Elder Creek watersheds.  

Clone this wiki locally