					---------------

					The Lowry Model

					---------------





As described in the "Activity-allocation" chapter of Chan (2005) entitled 

LOCATION, TRANSPORT & LAND-USE, the LOWRY MODEL generates and allocates 

population and employment among subdivisions in a study area.  This directory 

contains the computer program that implements the classic Lowry Model.



THE SOFTWARE

************



1.  This directory contains the FORTRAN source code - "lmlowprg.for", the 

IBM-PC executable code -"lmlowprg.exe" and the three data files - 

"lowry0.dat", "lowry1.dat", and "lowry2.dat".



2.  The original FORTRAN Lowry-source-code was obtained from the University 

of Pennsylvania and subsequently modified at Pennsylvania State University, 

Washington State University and the Air Force Institute of Technology.  Here 

the modified "lmlowprp.for" uses files for input/output.  



3.  Because the output was originally formatted for a 132-wide-character line 

printer, the output file--when viewed in an 80 character wide mode--will show 

some line wraparound.  Therefore it is best to view the output file in an 

editor that has a line printer font.  Also, printing the output file is best 

done in a line printer font.



4. To install and run the Lowry program on any PC:

	a)  copy "lmlowprg.exe", "lowry0.dat", "lowry1.dat", and "lowry2.dat" 

	to your working directory.

	b)  To run the Lowry program, enter "lmlowprg".  

The program will prompt you to enter the input-data file and the output-data 

file.  



Before we begin to show how to prepare the inputs to the program, here is a 

recap of the files included with the Lowry model:



-- LMLOWPRG.FOR 	FORTRAN source listing of the model

-- LMLOWPRG.EXE 	Executable code of the program

-- YORK.DAT 	Base-year and forecast land-use/activity-distribution data 

for York, Pennsylvania, including model replication of base-year data. (NOTE: 

this last file is  for reference only and not meant to be processed by 

LMLOWPRG.EXE).

-- LOWRY0.DAT 	Base-year travel- and activity-distribution data for model-

replication test

-- LOWRY1.DAT 	Forecast-year data, where the downtown-employment growth 

has been changed

-- LOWRY2.DAT 	Forecast-year data, where not only the downtown- employment 

has changed, but that a new uniform 25-miles/hour (40 km/h) Personal-Rapid-

Transit Transportation-system has been implemented throughout the study area.



A FORTRAN PROGRAM OF THE LOWRY MODEL

************************************



The Lowry model listed here in this disk was tested extensively on a 42-zone 

York, Pennsylvania area for various experiments. To assist the reader in 

understanding the model, please refer to the discussion of the model in the 

"Activity allocation" chapter of Chan (2005). The following provides liberal 

annotations throughout the input stream for the user to run the program. 



To clarify the operation of the program, we have highlighted the data-input 

format by the four groups of data required--a process judged to be more 

informative than extensive user-manuals. For a more complete documentation of 

the program, please refer to a workbook by Putman (1972), referenced in the 

book. The first set of inputs, as documented in all three data sets--

LOWRY0.DAT, LOWRY1.DAT and LOWRY2.DAT are the "Run parameters", including the 

number of iterations and the coefficients required by the model. 

Specifically, 



CONTROL PARAMETERS:  The input of control-parameters, or the `switches' that 

govern the mode in which the program is to be executed, is the same for both 

the base-year-replication input (LOWRY0.DAT) and the forecast-year input 

(LOWRY1.DAT, LOWRY2.DAT), with the exception of the parameter MAX which 

indicates the number of concentric rings used in the final time-ring matrix. 

For example, the number is often increased for a forecast year, say from 29 

minutes maximum trip-time to 44 minutes, reflecting the slower travel speed 

of 25 miles/hour, and hence a longer trip-time (see LOWRY2.DAT when the 

travel speed is uniformly reduced to 25 miles per hour). Here are details of 

the line-by-line input for the control parameters:



Line 1: 

-- L1 is a print command for the DPOP, DRET input data, where DPOP is the 

denominator of the population-potential-function, and DRET is the denominator 

of retail-potential-function (see the "Model calibration" section of the 

"Activity allocation" chapter for an explanation.) For the three datasets 

provided here--LOWRY0.DAT, LOWRY1.DAT, and LOWRY2.DAT--for example, 0 

indicates that no printing is requested for these intermediate-output values.

-- L2 is the number-of-iterations for the employment loop. For example, 4 is 

a typical number used in our datasets.

-- L3 is the number of iterations for the population loop, shown in our 

datasets as 5.

-- L4 is the number of grand-loops, shown as 4.

-- L5 is the print command for intermediate output of activity summary 

tables; 0 means no and 1 means yes.

-- L6 is the command to compute population-potential and begin the employment 

loop, where 1 means yes and 0 means no.

-- M is the number-of-zones, shown here as 42 throughout all 3 datasets.

-- N is the number-of-retail-trade-classes, shown here as 1 throughout.

Other commands on line 1 are run IDs, output-type commands and the MAX 

parameter mentioned above.



Line 2: 

-- K is the retail-trade-class under consideration.

-- A(K) is the retail-employment-per-household, where K is the index of the 

retail-trade-class as mentioned immediately above. For our runs the parameter 

has been set as 0.470.

-- C(K) is the residence-weight-factor, set as 0.900, which implies  a 

complementary work-weight-factor of 0.1000.

-- EC(K) is the retail-employment-per-thousand-square-feet, set as 1.01 here.

ZS(K) is the minimum-efficient-size of retail-unit in number-of-employees, 

which is set as 10 here.

-- The rest are potential-functions-parameters of the frequency-distribution 

of shopping-trips as defined in the "Model calibration" section of the 

"Activity allocation" chapter of Chan (2005). These alpha, beta  and gamma 

parameters have been set here as 55.3536, 14.6009, and 0.6651 respectively.



Line 3:

-- FC is the household-per-labor-force-member, set as 0.674.

-- According to the function specified in the "Model calibration" section of 

the "Activity allocation" chapter in Chan (2005), PE is the potential-

function-power u, set as 0.1213. COEFF is the coefficient-of-work-trip-

frequency-distribution, set as 1.664.



The second dataset contains activity and land-use data for such uses as 

residential and commercial, including these quantities, with land-use coded 

in thousand-of-square-feet:

-- total land,

-- unusable land,

-- basic land use,

-- retail land,

-- residential land,

-- total employment,

-- basic employment,

-- retail employment, 

-- population potential (in number of households),

-- number of household/1000 square feet

-- maximum households/1000 square feet.



The third dataset is a square matrix documenting the travel time, in tenths 

of a minute, between two zones. Reference the 42-zone York map shown in the 

"Activity allocation" chapter of Chan (2005), where we can interpret the 

42x42 interzonal travel-time table. Notice the diagonal elements have zero 

entries as expected, since they represent the intrazonal travel-time which by 

definition is set as zero in our case. Not surprisingly, the matrix is 

symmetric with respect to the diagonal, suggesting the same amount of time to 

get from zone i to zone j as it is from j to i. 



The last table represents the potential-ring-function set, the entries of 

which show the number of zones reachable with one minute of travel-time from 

the zone concerned. Notice this information is required for operationalizing 

the retail-distribution-function and the work-trip-distribution-function as 

shown in the "Model calibration" section of the chapter.  For example, the 

entry in the 12th row and 14th column says that a radius of 14-minutes away, 

there are three additional zones reachable from zone-12 within an additional 

unit of travel-time. The base-year dataset LOWRY1.DAT has a potential-ring-

function set measuring 42 by 29, sine the maximum travel time is 29- minutes 

in the base year.



AIM

***



While the code documented here may not be the state-of-the-art in activity 

generation and allocation, it has its pedagogic importance in placing more 

recent models in proper perspective. For this reason, we have included 

example datasets in addition to the listings for those that want to have 

hands-on experience with such a classic model.



The intent of this program, once again, is simply to provide a "bread board" 

for experimentation. The datasets given are as important as (or more 

important than) the computer program, since more advanced computational 

procedures exist, but many first-time users are often at-a-loss as to how to 

assemble a quasi-realistic dataset for experimentation. Those interested in 

more advanced models should note that Foot (1978) documented a FORTRAN 

program of the Garin-Lowry model. Putman (1983) put forth an integrated model 

combining land-use and transportation. Yi and Chan (1988) extended the Garin-

Lowry model to a disaggregate/bifurcation format that is further extended by 

Chan. All these extensions are documented in the Chan (2005) book in the 

"Chaos, catastrophe, bifurcation" chapter. The corresponding code by Yi and 

Chan is included in the Yi-Chan folder of this suite of software as well.



Now have fun with the numbers!

