Allocating Forecast Data to the Landscape

Karen A. Larson

 

Abstract

The Metro Data Resource Center produces 20-year forecasts of population, households and employment for use in its solid waste, land-use and transportation planning programs. These forecasts are created at the TAZ (Transportation Analysis Zone) level. This paper addresses the process used to further disaggregate these data to quarter acre grid cells based upon multiple criteria, including whether the cell represents developed or vacant land, current zoning, observed refill rates and theoretical upzone densities.


Introduction

Metro’s Data Resource Center produces a four-county forecast of population, households and employment at place of work. The county-level forecast is then allocated to TAZ for use in the regional transportation model. There are times when forecast data are needed for geographies other than the original TAZ allocations, for example, when the regional transportation model changes zone systems. Re-aggregations of the forecast data are also used in Metro’s Growth Management and by Regional Environmental Management for forecasting and program evaluation. The Data Resource Center also produces aggregations at custom geographies for our local government partners and for fee-for-service clients.

In order to successfully disaggregate the data from the TAZ to quarter-acre grid cells we make use of the extensive GIS databases maintained by the Data Resource Center and Clark County, Washington’s Department of Assessment and GIS. These database include the base information necessary to allocate the TAZ-level forecast data to quarter acre grid cells. In addition, the Data Resource Center has conducted research on the rate of residential infill and redevelopment, which we term ‘refill’, and on employment density. The results of these studies provide us with a better basis upon which to build an allocation structure.

Methodology

Step One – Build an allocation grid

The first step in disaggregating the data is the creation of an allocation grid using the data stored in Metro’s GIS (RLIS) and Clark County, Washington’s GIS. These polygon data are converted to individual grids with quarter-acre cells, then combined to make a single unified allocation grid. The coverages with alphanumeric attribute data, namely Metro’s zoning coverage, were converted to grids using ArcView’s Spatial Analyst extension. All other coverages were converted in ArcInfo GRID 7.1.2 .

Table 1 – Input Coverages to Allocation Grid

Coverage

Description

Metro zoning

Generalized zoning for the three Oregon counties.

Clark County zoning

Jurisdictional zoning for Clark County, Washington

Metro undeveloped lands

Undeveloped land data for the three Oregon counties.

Clark County vacant lands

Undeveloped land data for Clark County, Washington

Transportation Analysis Zones

Zones used for initial forecast allocation

Region 2040 Design Types

Designations from the 2040 Growth Concept Map as describes in the Framework Plan

Water

Rivers and lakes – used as a mask

Parks

Parks and open spaces – used as a mask

 

The steps for conversion from polygon to grid are as follows:

 

Step Two – Produce a cell-level allocation in Excel

The cell-level allocation calculations are fairly involved, and are much easier to accomplish in a Microsoft Excel workbook using Visual Basic for Applications than in an Arc/Info AML. Additionally, the allocation of population and households is done in a separate workbook from the allocation of employment, due to the size of the allocation grid’s value attribute table.

Before the VBA macros can be run it is necessary to set up the input data in the workbook as follows:

Zoning densities for housing and employment based upon current zoning

Employment refill rates by SIC, based upon Metro's 1999 Employment Density Study

Jurisdictional residential refill rates based upon Metro's Report on Residential Refill Study for 97 – 98

An upzoning matrix for areas inside the Metro boundary based upon the assumptions used in Metro's Urban Growth Report.

TAZ to Jurisdiction

TAZ to County Subarea

Value

Description

DSHREG / ESHREG

The existing regulatory dwelling unit or employment density is based upon current zoning.

This value is used as a weight within the TAZ for allocation to developed land.

It is equal to the count of grid cells * number of dwelling units / employees per acre allowed by the current zoning.

The allowed densities are found in the zoning lookup table.

DSHZONE / ESHZONE

Summation of DSHREG / ESHREG by TAZ.

DSHREG_Forecast / ESHREG_Forecast

The theoretical future dwelling unit or employment density based upon the Region 2040 Upzone Matrix and is only applicable to areas inside Metro’s jurisdictional boundary. For areas outside Metro the existing zoning is used.

This value is used as a weight within the TAZ for allocation to undeveloped land.

It is equal to the count of grid cells * number of dwelling units / employees per acre that would be allowed by the theoretical upzoning.

DSHZONE_Forecast / ESHZONE_Forecast

Summation of DSHREG_Forecast / ESHREG_Forecast by TAZ

Subarea

Each cell is coded to the county subarea in which it is located.

Jurisdiction

Each cell is coded to the jurisdiction in which it is located.

Refill_Rate

For population and household allocation each cell is assigned a residential refill rate based upon the results of Metro’s Report on Residential Refill Study for 97 – 98. Cells in the three Oregon counties are assigned the appropriate jurisdiction rate. Cells in Clark County, Washington are assigned the regional average rate.

Theoretical_Vacant_Max

For population and household allocation each cell is assigned a value based upon the following formula:

( Count * Forecast Dwelling Units per Acre ) / 4

For employment allocation each cell is assigned a value for each 1-digit SIC category, also know as a major industry group. This value is calculated as follows:

1 / ( (Floor-to-Area Ratio * Employment Density) / 43560 )

The employment per acre is derived from Metro’s 1999 Employment Density Study, which yielded an FAR value for all 10 major industry groups, for each of the 20 county subareas in the region.

In both cases the cell value is set to 0 for cells representing developed land.

TAZ_Diff (by forecast year)

This is the data that will be allocated to the individual grid cells. It is the difference between the base year value and the forecast value, by TAZ.

Once the setup is complete the first round of allocation calculations may be run. The function used for this is named CalcFirstRound and may be found in the appendix. Both example functions in the appendix were used for calculating employment allocations. The functions used in the population and household allocations are the same, except for the variable names.

Figure One: The logical process followed by the CalcFirstRound.

Logical Process Followed by the CalcFirstRound Function

Next we check for any unallocated growth as follows:

The second function, CalcFinal, allocates the remaining amount to the cells in the TAZ based upon current zoning.

Figure Two: The logical process followed by the CalcFinal.

 

The logical process followed by the CalcFinal

Finally, we perform a final check against the control totals by TAZ:

 

At this point we are ready to export the allocations to a tab delimited ASCII file. The only columns exported from the allocation spreadsheet are the value item linking the data back to the allocation grid and the final cell values.

Step Three – Rejoin the allocations to the allocation grid

The final step in the allocation process is reassembling the allocations and the allocation grid:

Conclusion

Allocating zonal data of any kind to a raster system can be fraught with uncertainty and frustration. There is an inevitable trade-off between accuracy and feasibility. In the case of population and employment forecast data we found that having detailed base data to work from, and an explicit design for the future development of the region to be invaluable.

In the ten months since the completion of this project we have completed an inventory of the nearly 700 local zoning designations and their allowed densities. This allowed us to create a more accurate grid of the base year estimates being used in the forecast currently under development. It is our expectation that when the time comes to disaggregate the TAZ allocations for the new forecast having a better base to use as a jumping-off point will allow us to create an even more reliable representation of the forecast ‘on the ground’.

 

Appendix

Function CalcFirstRound(VacDev, EshregExt, EshregFor, EshzoneExt, EshzoneFor, Diffin, RefillRate, TheorMax, Countin)
      
   Dim x1 As Integer
   
   Dim Vac_Dev As Variant
   Dim Eshreg_Ext As Variant
   Dim Eshreg_For As Variant
   Dim Eshzone_Ext As Variant
   Dim Eshzone_For As Variant
   Dim Diff As Variant
   Dim Refill_Rate As Variant
   Dim Theor_Max As Variant
   Dim Count As Variant
   Dim CellTotal As Variant
   Dim Growth As Variant
   
   x1 = 1
   
   Vac_Dev = VacDev                 ' 1 = Vacant, 99999 = Developed
   Eshreg_Ext = EshregExt
   Eshzone_Ext = EshzoneExt
   Eshreg_For = EshregFor
   Eshzone_For = EshzoneFor
   Refill_Rate = RefillRate
   Count = Countin
   Theor_Max = TheorMax
   Diff = Diffin
   
   Growth = 0
   CellTotal = "Oops"
        
   ' Test for change in TAZ values
   If Diff = 0 Then
      CellTotal = 0
      
   ' Employment Gain
   ElseIf Diff > 0 Then
   
      'Developed Land
      If Vac_Dev > 1 Then
         Growth = Diff * Refill_Rate
         CellTotal = (Eshreg_Ext * (Growth / Eshzone_Ext)) / Count
         
      'Vacant Land
      ElseIf Vac_Dev = 1 Then
         
         'Compare growth to theoretical max
         If (Diff * (1 - Refill_Rate)) < Theor_Max Then
            Growth = Diff * (1 - Refill_Rate)
            CellTotal = (Eshreg_For * (Growth / Eshzone_For)) / Count
         ElseIf (Diff * (1 - Refill_Rate)) > Theor_Max Then
            Growth = Theor_Max
            CellTotal = (Eshreg_For * (Growth / Eshzone_For)) / Count
         Else: CellTotal = "Err-gain/vac/theormax"
         End If
      
      Else: CellTotal = "Err-gain/vac"
      
      End If
      
   'Employment Loss
   ElseIf Diff < 0 Then
   
      'Developed Land
      If Vac_Dev > 1 Then
         Growth = Diff
         CellTotal = (Eshreg_Ext * (Growth / Eshzone_Ext)) / Count
      'Vacant Land
      Else: CellTotal = 0
      End If
      
      
   Else: CellTotal = Diff
   
   End If
   
      CalcEmp1 = CellTotal
    
End Function

Function CalcFinal(EshregExt, EshzoneExt, Diffin, Emp96, EmpFor, Countin)

   Dim Eshreg_Ext As Variant
   Dim Eshzone_Ext As Variant
   Dim Diff As Variant
   Dim cv96 As Variant
   Dim cv_forecast As Variant
   Dim Count As Variant
   Dim CellTotal As Variant

   Eshreg_Ext = EshregExt
   Eshzone_Ext = EshzoneExt
   Diff = Diffin
   cv96 = Emp96
   cv_forecast = EmpFor
   Count = Countin

If Diff <> 0 Then

   CellTotal = (cv96 + cv_forecast) + ((Eshreg_Ext * (Diff / Eshzone_Ext)) / Count)
    
ElseIf Diff = 0 Then
   
   CellTotal = cv96 + cv_forecast
    
Else: CellTotal = "Oops"
   
End If

CalcEmp2 = CellTotal

End Function

References:

Metro; Regional Framework Plan, December 11, 1997, pp 11 -23

Conder, Sonny; Report on the Residential Refill Study for 97 – 98; Growth Management Services Department, Metro; ( January, 2000), 18 pages

Growth Management Services Department, Metro; 1997 Urban Growth Report Update; Growth Management Services Department, Metro; ( September, 1999), 71 pages

Yee, Dennis and Bradford, Jennifer; Technical Report: 1999 Employment Density Study; Growth Management Services Department, Metro; (May 5, 1999), 29 pages

Author:

Karen A. Larson, GIS Analyst

Metro

600 NE Grand Ave., Portland, OR 97232 USA

Phone: 503-797-1581, Fax: 503-797-1909

larsonk@metro.dst.or.us