GIS Solar Site Selection Model

Trevor Stanley
3 min readJan 25, 2020
PV Array in the U.K.

As a former solar and wind developer, I’ve experienced first hand how arduous and time consuming it can be to trace electric infrastructure with various mapping tools in order to find suitable sites for development. Once identified, the process of figuring out the parcel number, owner, and other important details like zoning and flood risk are even more challenging.

Prospecting for sites entails identifying a high number of quality parcels in a given area that meet certain criteria such as: having a slope of less than 8%, having close proximity to transmission lines and substations (typically less than 2 miles), having a certain size (typically over 30 acres), having minimal existing structures or developments, and having no conflicts with zoning classifications designated at the municipal, county, state, and federal level. Assembling all of the data required to perform an in depth analysis is time consuming enough. However, actually performing this analysis for hundreds or thousands of parcels can take an enormous amount of time. This is a particularly damaging bottleneck when a company doesn’t have enough resources or man power to scale the process of prospecting.

This provided the impetus to automate solar site selection and ingestion of county parcel data through a model I coded up in ArcPy and ArcGIS. The ultimate goal of the model is to greatly speed up the prospecting process in order to better respond to the release of a Request For Proposals (RFP) from a utility or power supplier.

First we filter our county data based on parcel size, vegetation type, as well as slope and aspect:

There are several datasets that can be used for screening vegetation. I used the National Landsat Cover Data (NLCD) Dataset. The code to implement this is pretty simple (see below).

The numpy where clause is used here. This essentially is saying ‘if any pixel within my raster dataset is equal to one of these land use types, then create a new raster dataset of the same type where these pixels have a value of 1; else assign these pixels a 0 value’.

Information on screening out parcels within flood zones will be added at a later date.

Next, a buffer of 2 miles was applied to all electrical infrastructure (substations and transmission lines ≥ 69 kV) and intersected with the suitable land raster dataset that was created above to get our final raster dataset.

For the full code and more explanation, please visit my github.

--

--

Trevor Stanley

Trevor is a Data Engineer at the National Renewable Energy Lab (NREL). Interests include Data Science, STEM education, & GIS. Learn more: www.trevorstanley.com