Professional Documents
Culture Documents
SATURN v11.2.05 Manual (All)
SATURN v11.2.05 Manual (All)
Assignment of
Traffic in
Urban
Road
Networks
Contents
Contents
Section Page
1. Introduction 1-1
1.1 The Function of SATURN 1-1
1.2 Hardware / Software Requirements 1-3
1.3 Documentation 1-5
1.4 Distribution of SATURN 1-5
1.5 Contents of the Suite 1-6
1.6 Version Control 1-7
2. The SATURN Suite – An Overview 2-1
2.1 The Structure of Assignment Models 2-2
2.2 Trip Matrices in SATURN 2-4
2.3 Networks in SATURN 2-5
2.4 Route Choice in SATURN 2-6
2.5 Analysis in SATURN 2-7
2.6 General Advice on Using SATURN 2-7
2.7 Getting Started; Example Files 2-8
2.8 Text Files, Fixed Columns, Text Editors and Word Processors 2-9
2.9 Errors and Warnings: Fatal, Non-Fatal and Serious 2-11
2.10 Version Control 2-13
3. The Basic SATURN Model 3-1
3.1 The Network Model Structure 3-2
3.2 Data Requirements 3-5
3.3 File Name Conventions 3-6
3.4 32-Bit SATURN Versions 3-8
3.5 Running Programs Under DOS (or Command Prompt) 3-9
3.6 Running Programs under WINDOWS: SATWIN 10 3-9
3.7 Using SATWIN 11 Beta 3-27
3.8 Version Control 3-34
4. Creating an Origin-Destination Matrix File 4-1
4.1 Trip Matrices using M1 or MXM1 4-2
4.2 Important Trip Matrix Definitions 4-4
4.3 Further Notes on Trip Matrices 4-5
4.4 Alternative Matrix Formats using M1/ MXM1 4-6
4.5 Version Control 4-7
5. Network Coding – A General Description 5-1
5.1 Simulation Networks 5-2
5.2 Buffer Networks 5-15
5.3 Defining the Buffer Network 5-16
5.4 Capacity Restraint in the Buffer Network 5-17
5.5 Assignment and Map Networks 5-18
5109341 / Mar 13 i
Master Main Document.docx
SATURN MANUAL (V11.2)
Contents
5109341 / Mar 13 ii
Master Main Document.docx
SATURN MANUAL (V11.2)
Contents
Contents
5109341 / Mar 13 iv
Master Main Document.docx
SATURN MANUAL (V11.2)
Contents
5109341 / Mar 13 v
Master Main Document.docx
SATURN MANUAL (V11.2)
Contents
5109341 / Mar 13 vi
Master Main Document.docx
SATURN MANUAL (V11.2)
Contents
Contents
Introduction
1. Introduction
1.1 The Function of SATURN
SATURN (Simulation and Assignment of Traffic to Urban Road Networks) is a
suite of flexible network analysis programs developed at the Institute for Transport
Studies, University of Leeds and distributed by Atkins Limited since 1981. It has
six basic functions:
i) as a combined traffic simulation and assignment model for the analysis of
road-investment schemes ranging from traffic management schemes over
relatively localised networks (typically of the order of 100 t o 200 nodes )
through to major infrastructure improvements where models with over 1000
junctions are not infrequent;
(ii) as a “conventional” traffic assignment model for the analysis of much larger
networks (e.g., up to 6000 links in the standard PC version, 37500 in the
largest)
(iii) as a simulation model of individual junctions;
(iv) as a network editor, data base and analysis system;
(v) as a matrix manipulation package for the production of, e.g., trip matrices.
(vi) as a t rip matrix demand model covering the basic elements of trip
distribution, modal split etc.
As a combined simulation and assignment model - its original function - SATURN
is most suitable for the analysis of relatively minor network changes such as the
introduction of one-way streets, changes to junction controls, bus-only streets, etc.
(which can be loosely categorised as “traffic management measures”) and whose
evaluation requires a detailed analysis of traffic behaviour at junctions.
However from its starting point as a combined simulation and assignment model,
SATURN has been extended in both directions so that it can function both as a
conventional traffic assignment model and as a pure junction simulation model.
As a “conventional” traffic assignment model (with or without simulation) SATURN
can deal with large conurbation, regional or even national models.
These may then interface with smaller localised models using the greater
precision of the junction simulation models or indeed using the DRACULA micro-
simulation with routes generated by SATURN.
With both simulation and conventional network representations SATURN provides
a wide range of assignment options such as generalised cost, all-or-nothing,
Wardrop equilibrium, Burrell multiple-route assignment (SUE) and, more recently,
demand-responsive (elastic) assignment to deal with induced traffic. All these are
founded on t heoretically consistent modelling frameworks and c onvergent
algorithms reflecting the academic background of SATURN’s development.
Introduction
Introduction
estimated directly from traffic counts, thus reducing significantly the survey costs
required to run an assignment model such as SATURN as well as increasing its
accuracy. In effect ME2 generates the ‘most likely’ trip matrix which is consistent
with all available traffic information, including where possible any prior estimates
of the trip matrix.
Other important features of SATURN include:
♦ special features of Australian and New Zealand rules of the road have been
incorporated
♦ facilities to both “dump” SATURN data into ASCII files for input into, e.g.,
spreadsheets or other suites of transport programs and equally to re-input
data files from these external procedures
Introduction
Introduction
1.3 Documentation
Documentation for SATURN is available at a number of levels
♦ SATURN User Manual (this document)
♦ an On-line Help System
♦ reprints of Journal and Conference Articles
The needs of most users will be pr ovided by the User Manual alone which is
available in both word processed and printed copy available through Atkins
Transport Planning and i ncluded on t he SATURN Installation CD as standard
Adobe PDF documents. T hey may also be downloaded from the SATURN
website:
♦ http://www.saturnsoftware.co.uk; or
♦ see Appendix C for a l ist of various relevant publications and bac kground
technical files, many of which are included within the PDF Appendices.
Introduction
Introduction
Mini-Contents Page
INTRODUCTION
This section is intended, firstly, to introduce some of the functions and capabilities
of SATURN to new users and, secondly, to illustrate how this manual may be
used and where certain pieces of information are likely to be found.
It follows, roughly speaking, the authors’ standard “Introduction to SATURN”
presentation at meetings, courses etc., and - we would like to think - such
presentations may provide a s lightly more user-friendly intro to SATURN than
meeting the documentation “cold”. E qually reading an ar ticle such as that in
Traffic Engineering and Control, 1980 (see reference 1 i n Appendix C) may
provide an easier starting point.
Alternatively there are a number of introductory SATURN courses available within
the UK, including ones run by the Institute for Transport Studies and
independently by Atkins; details available from Dirck Van Vliet (DVV) or Ian Wright
(IW) as appropriate.
The above structure is of course perfectly general and may be applied to any suite
of network analysis programs, not just SATURN. What distinguishes different
suites is, e.g., the precise manner in which data must be prepared for input, the
options that are available to undertake route choice or to analyse the results, etc.
However one i mportant common strand is to note that errors in the outputs can
arise from four general sources
programs should - and do - assist users to minimise input errors, while the users
should choose the appropriate options within the assignment routines.
The important point is that you should not necessarily blame the program if the
results are not to your liking - the universal computing principle of “Garbage in,
Garbage out” applies very much to the use of SATURN. This is not to say that the
SATURN programs are perfect - far from it, as you shall no doubt find out! - but it
is important to realise that there are a host of reasons why models fail and to learn
- from experience, largely - how to minimise them.
A second important point to appreciate is that the programs in the SATURN suite
are only tools capable of carrying out certain well-defined functions and it is the
user who must specify how these tools are to be used. If you treat SATURN as a
black box which operates in whatever default mode seems appropriate to us, the
designers, then it may very well not do what you want it to do. You are the boss
and the more you understand the underlying modelling principles which SATURN
follows then the better your results will be.
The following sections explain in greater detail how the various components in
Figure 2.1 are handled within SATURN and where relevant questions are treated
in the documentation.
♦ that they should be obtained (as far as possible) from direct observation such
as in-vehicle interviews or number-plate matching surveys;
♦ that they should be der ived from some form of demand modelling process,
e.g. trip distribution, modal split etc
A related issue is how one obtains future year forecasts given a v alidated base
year matrix. A gain there are two extreme solutions, simple growthing-up or
factoring methods or cost-related demand models (as discussed in Section 7.4).
In practice of course the techniques used in studies will incorporate elements of all
the above procedures.
Every organisation using SATURN must therefore develop their own procedures
for matrix estimation, e.g., from vehicle surveys, home interviews, and/or demand
models. This, it must be stressed, is never an easy task and may involve even
more resources, and possibly even more computing resources, than the network-
based tasks.
Facilities within the SATURN Suite may be used to a greater or lesser extent in
the estimation of matrices. At one extreme SATURN may be run with fixed trip
matrices derived totally independently of SATURN. On the other hand there are a
large number of matrix-based programs within SATURN which can assist in the
derivation of trip matrices. Thus the general matrix manipulation program MX
(see Section 10) contains virtually all the standard operations required to create
trip matrices, for example matrix factoring routines to model growth in particular
zones. In addition the SATME2 program, described in detail in Section 13, uses
link count data to estimate the “most likely” trip matrix. T he elastic assignment
options (see Sections 7.4 and beyond) also allow the basic assignment function
within SATURN to be i nterfaced with more general demand models such that
SATURN can include, e.g., modal split or distribution facilities.
However for most users the creation of a t rip matrix will involve the use of the
“matrix build” procedure M1 which converts a data file of individual o-d trips
prepared by the user into a file suitable for handling within SATURN. How to use
M1 in this manner is described in Section 4.
We note, in passing, that is important to remember that the recommended units
for flows in SATURN are pcus/hr, not vehicles/hr (although it is possible to use
vehicles if desired; see 15.17.1), so that it may be necessary to convert observed
vehicle trip matrices into pcu matrices prior to running SATURN.
Finally, let us re-emphasise the point made in 2.1 that errors in trip matrices can
have a significant effect on the overall accuracy of the full assignment procedure
and that they should not be either ignored or under-estimated
Note firstly that SATURN networks may be coded at two levels of detail:
combination respectively), slightly later but certainly before you become involved
in any “serious” work. Equally read Section 19.1 and the relevant subsections in
11 before using any of the interactive programs such as PIX and remember to use
the “Help Facilities” with these programs.
Finally, you will find a slightly warped sense of humour and a knowledge of who’s
who on The Muppets to be useful assets! Oh yes, and don’t get upset by the
insults.
Please note however that the Epsom98net file is NOT intended as an illustration
of good coding practice; merely an ex ample of some network coding. Equally,
although superficially similar to the Epsom town centre from which it was derived,
the actual data is almost totally artificial.
2.8 Text Files, Fixed Columns, Text Editors and Word Processors
SATURN programs make extensive use of “ascii” or “text” files which users need
to prepare in order to run SATURN programs, e.g. the network .dat files used to
define network structure as input to SATNET.
particularly when data files are in “fixed format”, i.e., data items must appear
within specific columns. Do not be misled by the fact that your file “looks” correct -
it aint! Fortunately, some Text Editors (but not MS Wordpad or MS Notepad) are
capable of removing these ‘hidden’ tab characters and replacing them with spaces
(eg UltraEdit and Textpad for example).
This is not to say that it is impossible to use a word processor to create a
SATURN data file, but you will have to choose your text specifications with care!
For example using MS Word you need, at a minimum, to use .txt outputs (which,
following SATURN conventions, should subsequently be renamed as .dat files).
Similarly, when exporting information from MS Excel, worksheets should be saved
as “Formatted Text (Space Delimited) (*.prn)” files with the appropriate column
widths. For example, a data file requiring data in columns 1 to 5 may be exported
in the correct format by setting the width of Column A in the worksheet to 5.0cm
(ie a one cm column is the equivalent of a single space in a text file).
2.8.3 FORTRAN Conventions for Reading “Real” Data Fields: Variable Decimal
Places
Within FORTRAN numerical variables may be either “integer” or “real”; e.g., 1, 2, 3
as opposed to 1.25, 3.14159, etc. etc. It is important in preparing SATURN .dat
files that when an integer-only variable is to be set, e.g., in a f ixed range of
columns, that it is written as an integer (i.e., without a dec imal), otherwise a
“FORTRAN Read Error” will result and, most likely, the program will terminate. For
example, writing 1.0 instead of 1 will cause such an error, even if it is within the
correct columns.
On the other hand the FORTRAN input conventions for real numbers are more
forgiving so that either 1 or 1.0 will be correctly read as “one” as long as it is within
the correct columns. In addition, the number of decimal places to be included is
generally defined within the program for a real input field but need not be strictly
adhered to. Thus a Fortran format of F5.2 would imply that a real value is required
within a block of 5 columns with 2 characters after the decimal point; e.g., 1.23,
not 1.234. And certainly if F5.2 were used as an output format 1.23 would always
be output, never 1.234. However if 1.234 were to be input under Format F5.2 the
third decimal place would be correctly read; equally 123.4 would be correctly read
even though it only has one decimal place, and 123 would be read as 123.0 even
though it doesn’t have an explicit decimal.
Note, however, that the field “width” must always be strictly adhered to so that, for
example, with F5.2 it would not be possible to input a value such as 123.45 which
requires 6 columns, or indeed any value greater than 99999.0.
In very old versions of SATURN which were supplied to users as source code for
the users to compile with their own compilers life was more complicated in that
certain compilers would require that, with a format F5.2, the decimal place must
appear in column 3 whereas others would be more forgiving as above. Therefore
the Manual tends very often to specify a fixed decimal place whereas, with
current .exe programs, the input formats are flexible as above.
In brief, you can input real numbers in virtually any format you like as long as you
stay within the correct “width” of the input field.
Finally we note that there are a number of instances of inputs which are generally
input as integers but which are stored as reals and t herefore, strictly speaking,
may be input as either an integer or a real. For example, traffic signal stage times
(see Record Type 3, 6.4.1) are generally specified with sufficient precision as
integer seconds but may, if desired, be input as a real value in order to achieve
greater precision. Similarly counts, which are stored as reals, are generally input
as integers on the assumption that it is difficult to define a flow to greater than 1
PCU/hr.
Clearly, however, an input which defines, say, the number of data entries which
follow can only be input as an integer.
♦ Fatal errors.
♦ Semi-fatal
♦ Non-fatal errors.
♦ Serious warnings.
♦ Warnings.
Generally speaking these are applied to the processing and validation of input
data files such as network files but they are also used in interactive programs.
Fatal errors, as the name implies, cause the program to terminate abnormally.
This does not necessarily imply that the program itself cannot continue at that
point; it may be that at a later point in that program or even in another program life
would become impossible. In some situations a program may continue even after
a fatal error has been encountered; for example, SATNET will continue to process
data after a fatal error in order to detect other errors later on i n data sets.
However it would not carry on to the very end.
Semi-fatal errors were first introduced in SATURN 10.1. They are applied to
errors in SATNET, which would prevent (or are expected to prevent) the
assignment - simulation procedures from running normally but would not prevent
the map network as required to P1X to be set up. Networks with semi-fatal errors
may therefore be processed within P1X and the errors corrected interactively so
that they may be processed by the assignment/simulation stages.
Non-fatal errors result from input which SATURN can handle without subsequent
numerical problems but which, in the program's opinion, is almost certain to
produce nonsensical results. Thus defining a free-flow speed of 0 kph would be a
fatal (or semi-fatal) error if it would ultimately cause a program to divide by zero; a
speed of 0.001 would be a non -fatal error since the program could cope
numerically.
Clearly all fatal errors need to be c orrected before continuing, and al l non-fatal
errors should at least be t horoughly checked and c onfirmed that they are
deliberate.
Certain Non-Fatal Errors (plus certain Serious Warnings – see below) are
optionally upgraded to Semi-Fatal status if a ne twork parameter WRIGHT is set
equal to T. This convention is strongly recommended. See Section 6.12.2.
Serious warnings are similar to non-fatal errors, but less obviously bound to
produce nonsense, while warnings refer to input which looks strange but may be
OK. Verification of both is recommended but not, if you like, mandatory.
However, it is worth bearing in mind that a warning at any level may not reflect the
“true” error. For example, if a user wishes to define data for a link A,B and they
accidentally input A,C then this may generate a warning if the input does not make
much sense at C but simply correcting the input so that the data makes sense at
C does not correct the basic problem of having input the wrong node number.
Thus even warnings may be evidence of much more serious problems.
Summary statistics of all five types of errors are given at the end of each program
plus, in SATNET, at intermediate stages. T he same information may also be
accessed within P1X under Information.
Note that non-fatal errors and warnings may be suppressed in SATNET by setting
a parameter ERRYES(n) to F in the &PARAM inputs to SATNET to suppress error
n. Alternatively, in a limited number of cases, setting ERRYES(n) = F may convert
a semi-fatal error into a serious warning; e.g., setting ERRYES(437) = F allows
unidentified links to appear in the 77777 count data without creating semi-fatal
errors.
A range of error messages may be set in a single Namelist statement by using a
colon; e.g., ERRYES(33:66) = F “turns off” all warnings in the range 33 to 66. See
Appendix A.
In addition a c ount of the number of each category of errors detected per
simulation node i s included in the uf* files and may be di splayed as part of the
node print outs or node graphics. Fo r information on w hich error numbers are
which please see Appendix L (or, less conveniently, list the file SATTIT.DAT).
Mini-Contents Page
INTRODUCTION
3.1 The Network Model Structure
the Network Build program, SATNET, which checks networ k data input and
sets up the files required by:
the Assignment, SATEASY, which assigns tra ffic on the b asis of the delays
given by the simulation.
the Simulation, SATSIM, which models in detail the passage of traffic through
the network and the resulting delays.
The ‘analysis’ and display programs comprise:
the network general analysis and plot program P1X which displays link-based
data either to a terminal or on a hard-copy device (and includes virtually all
the functions contained in the following three original programs).
the analysis program, SATLOOK, which ena bles a deta iled description of
traffic conditions to be printed in text format.
(as governed by the parameters NITA and NITS described in 6 .3) for the
individual programs to converge.
Figure 3.2 – Running the Basic SATURN Model using separate programs; the original
methodology
* As far as the normal us er is concerned the essential difference between text and binary files is
that a text fil e may be created using the keyboard and/or viewed on the screen, (e.g., using a
standard edit program such as Notepad), whereas a binary file is passed between programs and is
only “intelligible” to a pro gram. Thus if you try to “type” a binary file on the screen you will get - at
best - gobbledygook and - at worst - a “stalled” computer. You have been warned!
3.3.2 Extensions
The following rules govern the standard or “default” files extensions:
All unformatted binary files have extensions beginning with UF. In particular:
UFN An unformatted file output (only) by SATNET
UFS An unformatted file produced by SATSIM or SATALL
UFA “ “ “ “ SATEASY
UFM An unformatted matrix file
UFP A file containing “pija” factors as passed from SATPIJA to SATME2
UFT An unformatted file output by SATSUMA; see 17.5
UFX Scratch files.
UFC An unformatted file of costs used to re construct routes see 15.23.
“Text” files used as control or data files:
DAT All basic data or control files created by the user, e.g., using a text editor such
as Notepad or Wordpad (not MS Word) and used as input
KP A “card punch” file output by a program.
HLP Help files used by all interactive programs.
LOG A file co ntaining a list of all termi nal input commands from the run of an
interactive program; see 14.5.1.
KEY A “dummy” terminal file used to run an interactive program; see 14.5.1.
VDU A “dummy” terminal output file from an interactive program; see 14.5.1.
XY A supplementary node co
GIS A supplementary “Geographical Data” file; see 5.7.
MCC A supplementary file containing link counts.
BUS A supplementary file containing bus route data.
DBD A “Data Base Dump” file output/input by SATDB.
Conventionally, all the above files might be assigned the extension “.txt”, e.g. by a
word processor such as Microsoft Word.
All output line printer files have e xtensions “LP-” with the third let ter/number
indicating the program that produced it as follows:
LPN SATNET
LPA SATEASY
LPS SATSIM
LPT SATALL
LPL SATLOOK
LPG SATPIG
LPP P1X
LPD SATDB
LPM SATME2
LPU SATU2
LPF SATOFF
LPC SATCH
LPX MX
The “standard” extensions above are used by the programs themselves to create
new files and/or to suggest extensions to th e user on input. They are also
frequently used as a convenient shorthand to refer to files; e.g., the “LPN file”
would imply the lin e printer file produced by SATNET, a “DAT” file implies a
control file prepared by the user, etc. “UF files” refer in general t o all UF*
unformatted files, while UFA/S refers to eithe r UFA or UFS which may, in a
number of circumstances, be used interchangeably.
In addition there are a number of “system” files within the Suite itself which should
in some sense be ina ccessible to users (i.e., they should not be accidentally
erased!). These will have conventional extensions as well as indicated below:
3.3.3 Pathnames
Every file has a full “pa thname” associated with it. Thus th e file net3.ufs on your
working directory may h ave the full name c:\SATURN\NEWTOWN\2005\net3.ufs.
In certain circumstances net3.ufs (or even net3 i f SATURN expects the extension
.ufs) may be enough to identify it; in other circumstances the full pathname may
be required.
SATURN binary files st ore both filenames and pathnames and use both when
trying to open files.
Path/filenames may contain up to 256 characte rs. (Versions prior to 10.1 were
limited to 96.)
the 32-bit versions may also be run under Command Prompt which may be
accessed through SATWIN.
The following two sections describ e the two alternative methods in somewhat
general terms.
3.6.2 SATWIN 10
SATWIN 10 is a front end for SATURN with six principle functions:
The File menu is used to exit from SATWIN, for consistency with other Windows-based
software.
the “Program folder” where the .exe and .bat files etc. are stored,
Once files have been selected, click on Run and the module execut es. Upon
completion you have t he option t o view the output LP file or to run further
modules.
You can also run modules directly from the Events log in one of three ways:
1) Click and existing command in the Events log to highlight it, then press the
F2 or Insert key to enter Edit mode, then type a new command or edit the
existing command and press the ENTER key to stop editing. (Alternatively,
click the command to highlight it, then click it again to e nter Edit mode.
Note that th is is not the same as d ouble-click, there is a pause between
clicks).
2) Click the entry <Click Here To Select, Then Press F2 Key or Click
Again To Enter A New Command> in the Events Log to h ighlight it, then
press the F2 or Insert key to enter Edit mode, then type a new command
and press the ENTER key to stop editing. Alternative is similar to option 1
above.
3) Drag a batch file (from the Desktop, Windows Explorer, etc.) and drop it on
the Events log.
4) After entering a comma nd you can Double-click it, click the Run Ite ms(s)
button, or press the F4 key to run it
Note: the Events Log now indicates the Program Folder (see below, fourth
column) containing the version of SATURN used to execute a command (in
addition to the Working Folder where data files reside, see below third
column).
The first command SATNET CNET uses CNET data file from “Working
Folder” C:\SATWIN\TEST\CORDONSRN a nd SATNET v10.8.22 from
“Program Folder” C:\SATWIN\XEXES 1.8.22.
The second command SATURN LIV10 LIVTRIPS uses data files from
“Working Folder” C:\SATWIN\TEST and SATURN (i.e. SATNET/SATALL
v10.8.22) from “Program Folder” C:\SATWIN\XEXES 10.8.22.
The third command SATURN LIV10 LIVTRIPS uses data files from “Working
Folder” C:\SATWIN\TEST and SATURN (i.e. SATNET/SATALL v10. 9.10)
from “Program Folder” C:\SATWIN\XEXES 10.9.10.
The last en try in the Event Log indicate the current “Working Folder” (i.e.
D:\TEMP\SATURN MULTI-CORE\DMB312) and “Program Folder” (i.e.
C:\SATWIN\XEXES 10.8.22. This means that any comma nds issued within
SATWIN will use data files and SATURN modules from the respective folders.
You can ch ange “Working Folder” and “Program Folder” at any time via the
Settings/Folders menu option.
Double-clicking a SATURN module category from the displayed list will reveal the
available modules, a subsequent click to the module will select it. The “Set Module
Parameters” and “Module Help” buttons will also be enabled.
Resting the mouse butt on inside the box with the list of SATURN modules will
provide a one line description of the selected module.
Clicking the “Set Module Parameters” button will set the required parameters for
the selected module wit h the “Modu le Help” button provide additional supporting
information on that module.
After setting the module parameters, the command line will be display ed in the
editable batch file contents box. Further modules may be manually add ed to the
batch file contents text box.
The ‘Run’ b utton will start the the module(s) in the batch file contents text bo x
whilst the ‘Save’ button will save the contents to a batch file for later re-use. The
‘Edit’ button will open the batch file in Notepa d and the ‘ Clear’ button to re move
information from the text box.
Previously created batch files may also be used by selecting via the “Select Other
Batch Files” button.
Note: instead of using the Batch Run menu, you may also drag batch files or the
SATURN executables (from Windows Explorer) and drop them into the Events log
to run them automatically.
SATURN commands can be typed directly into the command line box or individual
modules and input files may be selected from pull down menus using t he Select
Command and Select Parameter buttons respectively. This approach can be used
for interactive runs of modules e.g. MX I
To get help on support ed DOS co mmands, press the F2 key on the keyboard.
Help on a selected SATURN command is automatically displayed on a side box to
the right of the Command Line dialog box. Using the Hide button will co nceal the
help box. Pressing the F2 key after selecting a com mand will display the
command’s help information in a separate Help dialog bo x. You can press the
up/down arrow keys on the keyboard to step t hrough previous commands if th e
cursor is on the comma nd entry bo x or use th e ‘Previous Commands’ button to
display the list of previously used commands.
Test Network 1 will ru n MXM1 to build trip matrix HAT, followed b y SATNET,
SATALL and P1X for network HEADE, leavin g you in P1X interactive mode.
Upon exit from P1X, the following screen will allow you to view any of the LP f iles
generated
Test Network 2 will run SATNET, SATALL and P1X for network N10, leaving you
in P1X interactive mode, which in this example will show a background bitmap of
the network.
If the full or demo version of DRACULA is in cluded with SATURN, the menu
option DRACWIN will appear on the SATWIN menu bar (see ab ove). This
provides access to DRACULA through its front-end program DRACWIN.
When several runs are displayed on the event log, you can delete sele cted runs.
The options are availab le to remo ve all commands in the log or a set of cursor
selected commands. Individual commands can also be deselected as above.
Detailed SATURN version information (shown in the dialog box below) is available
through “SATURN Versi on Info” from the Help menu or by double-clicking the
version information area indicated above.
If the user wishes to Detailed SATURN version information (shown in the dialog
box below) is available through “SATURN Versi on Info” from the Help menu or b y
double-clicking the version information area indicated above.
If “Version Unknown” appears in th e selection box, SATWIN 10 was u nable to
identify the specific version (eg a version of SATURN pre viously installed under
the XEXES directory).
This will br ing up the dialog box below. You can add p aths containing other
programs you wish to have access to in the “Paths Containing User Programs”
text box by copy and paste or selecting a path through “Add Path” button.
The list can be cleare d via the “Settings/Cle ar Recent Command List” menu
option
LIV10L.UFS for exa mple is describ ed as “SAT URN Loaded network b inary file”
and is associated with P1X as indicated by icon. Unlike the description of UFS file
in screen shot without association.
When file association is active, double-clicking on a UFS or UFM file for example
will automatically open the file with P1X and MX respectively.
Easily access and discover categories of mod ules, e.g. Matrix Manipu lation
or Conversion;
Quick search for any module, e.g., SATNET or P1X by name or by keyword;
The first time SATWIN is started you will see the Quick Start menu prompting you
to:
1) Restore the last se ssion (using th e auto saved session model complex
from the previous use)
2) Open the last used Mod el Complex (will be different to above option if t he
user did not save at the end of last session).
3) Open an existing Model Complex. Let the user browse to a previously
saved Model Complex.
4) Create a new Model Complex with default values (same as clicking X).
The user can tick a box to automatically start th e next SATWIN session where it
was left on last exit. This will mean that the quick start menu is not displ ayed. This
setting can be changed in the Tools tab.
The Settings menu is a lso used to select two standard fold ers where SATURN
files are stored:
Program Folder – the path for the.EXE and .BAT files related to the SATURN
version.
Two other folders are automatically updated:
Manual Folder – automatically set to the \DOCS folder under the SATWIN 11
install directory,
These are defined during the initial installa tion routine either by default or by
explicit choice. Any late r changes made are “remembered ” by SATWIN 11 the
next time it is used.
The current working folder is disp layed on the main SATWIN 11 screen at all
times as is the current SATURN version.
A new module-specific template will be displayed allowing the user to select the
necessary files. For e xample, if the module SATURN (which runs SATNET
followed by SATALL) is selected, the template enables t he user to select the
network .dat file and a matrix .uf m file as shown below (plus, optionally , UPDATE
and/or PASSQ files if required).
Once files have been selected, click on Run and the module executes.
Each Module parameter window ha s options to keep the command prompt open
and apply either Quick and/or Quiet options. By default, the forms will remember
the previously selected files.
This behaviour ma y be changed – select the Tools User Interface Clear
Parameters check box. To clear the parameters, click the reset button.
All the Module Parameter forms have an experimental (!) feedback button allowing
the user to share their ideas with th e SATURN developmen t team via email. All
the feedback received will assist in the development of the future releases.
Upon completion of the module, the user has th e option to view the output LP file
or to run further modules.
The user may need to refresh the file list befo re the newly created L P files are
available. To view the selected file in the user-d efined text editor, click Show. To
review the errors in the Error Manager, click the exclamation icon.
The first command ‘SATNET Epsom98Net’ uses the Epso m98Net.DAT data
file from current Working Folder and the versio n of SAT NET in the c urrent
Program Folder.
The user may change the ’Working Folder’ and ’Program Folder’ at any time via
the Folder Settings menu option.
the Headingley Test will run MXM1 to build trip matrix HAT, followed by
SATNET then SATALL and finally P1X for network HEAD leaving the user in
the P1X interactive mode; whilst
the Epsom Test will repeat the same process for the N10 Network but this
time with a background bitmap of Epsom.
More detailed information about the SATURN version (as shown in the dialog box
below) is available eith er through Support tab Support Info SATURN
Version Info or by hovering the mou se over the SATURN Version in the settings
panel.
If the selection box states Version Unknown’, SATWIN 11 was unable to identify
the specific version (e. g. a versio n of SAT URN previously installed under the
XEXES directory but without the SATURN.VER being created). The reference to
the ‘Version Unknown’ may be removed by the user by:
Identifying the SATURN version and Level in use by viewing any of the output
Line Printer file using t he executables. The SATURN Version and Level in
use will always be repo rted at the top of the t ext file (e.g. Version ‘10.9.24’
and Level ‘N3’); and then
Creating a new text file called SATURN.VER in the same directory as the
executables, containing at least one line of text that says ‘SATURN < version>
Level <level>’ – for example ’SATURN v10.9.24 Level N3’
3.7.2.6 Using Other Programs via the SATURN DOS Command Shell
Access to other non-SATURN (user) programs from the SATURN Command Shell
may be undertaken by specifying the full paths containing t he User programs via
SATURN Command Shell Paths from the Tools tab. Once selected, t he dialog
box will en able the user to add e xtra path(s) containing other programs to be
used. The y may be added to the Additional User Programmes Paths area by
selecting the path(s) via the ’Browse ...’ button.
Mini-Contents Page
INTRODUCTION
Trip matrices used in SATURN are held as unformatted binary “UFM” files
(10.2.1), i.e., their standard filename extension is UFM. For example the input trip
matrix in Figure 3.1 is a UFM file. A comprehensive matrix manipulation program
MX is included with SATURN and is described in Section 10; full documentation
on matrices is given there.
The UFM trip matrix file may be created in a number of different ways; for example
using a wide range of input data formats from ascii/text files to MX as described in
Section 10.5, or using SATME2 as described in Section 13 t o create it from
observed link flows. T he “traditional” method using MX ascii input is described
next.
TRIPS.DAT
M1
TRIPS.UFM
Note:
♦ Capital letters above denote mandatory input; lower case letters denote
inputs which must be chosen by the user.
♦ Record (1) begins in col 1; runname should be chosen by the user and
begins in column 5.
♦ Record (3) must begin in col. 1 and have three blanks between the S and
the P. T his record defines the matrix as a t rip matrix in units of pcus per
hour.
♦ Full details of the above “standard” format are given in Section 10.5.1,
although certain alternative formats, described in 4.4 below, were introduced
in SATURN 10.6.
Following the header records, each individual cell in the O-D matrix is given (by
default – see below) with up to 15 entries on each record in cols 1-5, 6-10, ...., 71-
75. (Fortran format 15I5). A new record is begun for each origin. The first entry
for each new origin, i.e., cols. 1 to 5 on the first record, contains the “name” of that
zone, followed by nc entries for trips to destinations 1, 2, 3,..nc. Hence the first
record contains trips for up t o 14 des tinations, whereas subsequent records
contain up to 15 destination trips, starting in cols. 1 to 5. The origin records MUST
appear in order of increasing zone names; i.e., the lowest origin first, the second
lowest next, etc., etc.
A fuller description of what is meant by “zone names” is given in 5.1.6 and 10.2.2.
An alternative “long” format is also available under which the matrix elements are
specified as real’s; see 10.5.1 for details.
In fact virtually any input format is acceptable by the program MX using interactive
commands; see Section 10.5.2 to 10.5.6. For example, the data may be contained
in a CSV-formatted file as produced by a Windows program such as EXCEL. In
addition, post release 10.6, the “batch” procedures M1 and MXM1 will also accept
various alternatively formatted files including CSV as explained in Section 4.4.
Hence transferring matrices from other suites of programs should not constitute a
problem.
The following sample file lists the beginning of the trip file for a network with 10
zones (so that only one record per origin zone is required).
RUN SECOND SATURNVILLE O-D RUN
&PARAM
NROWS=10,
NCOLS=10,
MPNEXT=T, &END
TRIPS PCUH
SATURNVILLE O-D
1 0 0 0 0 0 0 0 0 3 3
2 3 0 0 3 0 3 0 0 3 0
3 112 5 19 6 22 24 34 6 2 0
Mini-Contents Page
INTRODUCTION
Section 2.3 introduced the distinction between simulation and buf fer networks.
Section 5.1 following gives further information on how simulation networks are
specified, 5.2, 5.3 and 5 .4 carry out a s imilar function for buffer networks, while
5.5 describes how, for certain functions the two are combined together into
“assignment” and “map” networks.
Section 5.6 gives very general advice on how users should - or could - create
networks, either starting from scratch or from existing data sources.
A “supplementary” form of network data, the “GIS file”, is described in 5.7.
5.1.1 Junctions/Nodes
Each junction is represented by a node in the simulation network. These are sub-
divided into ‘internal’ and ‘external’ nodes.
Internal simulation nodes must be specified in full as described in 6.4.1. They may
be further subdivided into 4 “types”: traffic signals, priority junctions, roundabouts
and ‘dummy’ nodes. Traffic signals should be s elf-explanatory and i ncludes
pelican crossings. A ‘priority’ junction includes all form of ‘give-way’ junctions
including, for example, merges and uncontrolled junctions. Roundabouts are sub-
divided into two sub-types: those where U-turns are explicitly allowed (type 5) and
those where they are not (type 2).
Further information on how dummy nodes are simulated is given in 8.1.1 and how
they are used in conjunction with link capacity-restraint curves in Section 8.4.4.
5.1.3 Roads
Roads between intersections are represented by “links”, which are numbered
sequentially in a clockwise direction about successive nodes. The actual link
numbers are calculated by the computer and remain largely invisible to the user,
to whom a link is specified by the nodes A and B at its upstream and downstream
ends respectively (A-node and B-node). However the user must ensure that the
links at each junction are correctly input in clockwise order (or counter-clockwise if
drive on the right - Section 15.6); otherwise largely uncheckable errors result.
As with nodes links may also have “alpha-numeric” names, e.g., link (1512,1513)
might be “Grosvenor Terrace”. T hese names are contained within the GIS file
(optionally) associated with each network file. See Section 5.7 for general details
and Appendix Z for specific format details.
Both directions of a “road” must be coded, even if the road is one-way. One-way
links are represented by specifying zero lanes (LANES below) to the non-existent
direction. For example a one-way road from node A to node B must be included
as a link at A from B (with positive lanes) and also as a link at B from A (with zero
lanes).
Generally speaking travel times on simulation links are assumed to be fixed at
their “free flow” values and link capacities, to be, in effect, “infinite”; i.e. much
greater than the junction capacities at their downstream end. H owever this
assumption may be relaxed and link speed-flow curves and explicit link capacities
modelled; see 8.4.4.
The minimum data required by the simulation stage for a road (e.g. times,
distances) is coded on the “Link Description Records”, Section 6.4. However note
that additional link data, e.g., a c apacity index, which is not needed for the
simulation may also be defined using the buffer data records described in Section
6.6. See Sections 15.13 and 15.14 for a more complete description.
5.1.4 Turns
In addition each potential turning movement (including banned turns - see below)
is explicitly represented in the (simulation) network. Turns are assigned sequential
numbers which, like link numbers, are essentially invisible to the user who refers
to turns by a sequence of three node numbers A-B-C. It is essential that turns be
defined in strict clockwise order from each link, starting with the first turn to the left
(or counter-clockwise starting with the first turn to the right for drive on the right -
see Section 15.7.2).
The user must define a saturation flow (6.4.6) for each simulation turn; banned
turns are therefore coded by setting this turn capacity to 0.
U-turns are generally banned at simulation nodes and t herefore need not be
explicitly coded EXCEPT for roundabouts coded as junction type 5 where they are
automatically generated. N.B. U-turns may also crop up in the slightly different
context of the border between simulation and bu ffer networks as explained in
Sections 18.9.1 and 16.6.4.
Unlike links turns have flow-dependent delays and flow-dependent capacities
determined by the simulation process. Further details may be found in Section 8.
Turning movements which must give way to other streams of traffic, for example
turns from a m inor road giving way to the major arms at priority junctions, are
indicated by a s eries of ‘priority markers’. T he degree to which these turns are
impeded depends on bot h the ‘major’ flow and t he ‘acceptance gap’ defined by
the user. Detailed equations are given in Section 8.2.2. The main features of the
relationship between the ‘minor’ and ‘major’ flows are qualitatively illustrated in
Figure 5.1 which plots the minor road capacity C as a function of the major road
flow V for two different GAP values.
Figure 5.1 – Minor Road Capacity C versus major road flow V
SAT is the ‘saturation flow’ from the minor arm with zero opposing traffic. Clearly
as traffic on the major arm increases the flow from the minor arm decreases, and
as the required gap increases the minor arm capacity decreases as well.
For detailed coding instructions please see 6.4.4 for bus-only restrictions or 6.7
(the 44444 data) for more general restrictions within simulation networks which
include bus-only as a special case.
Restrictions also include “penalties” where a pe nalty is an extra perceived cost
associated with using a particular link or turn and applied to the definition of
generalised cost within route choice. Penalties may be either “notional”, e.g. an
extra cost levied on uninformed drivers using a non-signposted rat run, or “real” in
the sense of a monetary toll imposed on drivers or an extra time added to lorries
travelling down a windy road. As with bans they are very often user-class specific.
In addition penalties may either be de fined in pure time units (seconds) or in
monetary units (e.g., pence), in which case they represent tolls imposed on
(certain classes of) drivers as with road charges; see section 20. In either case
they are included as an element within the “fixed” link costs for assignment
purposes as opposed to the variable “time” component. Time penalties are
converted into generalised cost units as and when necessary using PPM
(although, since most of the time, generalised cost works in units of generalised
seconds, no explicit conversion is required). See 7.11.1.
Under certain circumstances it may be desirable to explicitly include time penalties
as part of “normal” time, e.g., for the purposes of skimming O-D times (15.27). On
the other hand, if the penalty times are more “notional” than “real”, they may be
excluded from, e.g., time skims. See 15.24.2 and 15.24.4.
55555 data records is a zone or a node and therefore the value defined in
&PARAM must be correct in the first place.
Zone numbers may normally have up to 5 digits (i.e., be numbered up to 99999)
although the use of 5 di gits is not normally recommended. It may, for example,
create problems with certain data input fields (see 6.8) where a C followed by the
zone number is used to distinguish between zones and nodes and the complete
field must be c ontained within 5 c olumns (although these problems are not
insurmountable). In addition the matrix manipulation program MX generally uses
5-column fields for the input of zone numbers and in output formats. With buffer-
only networks with DUTCH = T (implying 8-digit node names) 8-digit zone names
may, strictly speaking, also be ac cepted within network programs but matrix
manipulation would still be extremely difficult.
Zero or negative zone numbers are definitely not allowed in networks (fatal errors)
although, strictly speaking, it may be possible to introduce them into matrices.
However the practice is certainly not recommended and will be made fatal ASAP;
see 10.2.2.
The total number of zones is limited to, e.g., 400 (see 15.28) within certain matrix
programs although the main simulation-assignment programs are not restricted in
this way.
Zone numbers or “names” must also be de fined on t he trip matrix data input
described in Sections 4 and 10.2.2. Thus if the lowest zone number is 5 this
information should be included as the first input number for the first row.
Clearly it is best if both network and m atrix adopt the same system of either
sequential or named zones to avoid any possible confusion. However SATURN
programs which use both a network and a trip matrix (e.g., SATALL) will overlook
certain differences but not all.
For example, it is permissible to have “names” in one and s equential numbering
in the other (as long, of course as the number of zones is the same in both);
SATURN assumes that the two sets correspond one-to-one. Equally, it is (just)
acceptable for both to have “names” but a di fferent “system” of names in each
case (e.g., 1, 3, 5 in one, 10, 20, 30 in the other) - although highly questionable
and it should provoke a Serious Warning at least.
However, a Fatal or Semi-Fatal error will result if the same zone name appears in
different positions in both network and matrix. For example, if the network zones
are 1,3,4,5 … and the matrix zones are 1,2,3,5… then zone 3 appears as either
the 2nd or the 3rd zone. Highly suspicious! And new in 10.6.
It is possible to change the zone names in a trip matrix to match those in a
network by using MX as explained in 10.3.3.
As with nodes zones may also be g iven an “ alpha-numeric” name, e.g., zone 5
might be “ Mayfair”. These names are contained within the GIS file (optionally)
associated with each network file. S ee Section 5.7 for general details and
Appendix Z for specific format details.
We further note that traffic borough numbers are grouped together in sets of two,
i.e., node/zone numbers 10xxx and 11xxx are both in the same borough, as are
12xxx and 13xxx, etc. etc. Thus in total there are 45 possible traffic boroughs with
numbers in the first ranging from 10,000 to 11,999, in the second from 12,000 to
13,999. Etc. etc.
In general traffic boroughs should be geographically “self-contained” in that nodes
in any particular borough should: (a) only be c onnected to other nodes in the
same borough or (b), if they lie on t he boundary, to at least one other “interior”
node in addition to their external connections. Thus a node which is entirely
surrounded by nodes in different traffic boroughs has been numbered incorrectly.
A similar error may arise with zones which are in traffic borough N (according to
their first two digits) but which are entirely connected to nodes which lie in different
traffic boroughs.
Capacity indices are used to distinguish groups of links with some common
attribute which might be, e.g., either geographical or physical. For example, they
might be used to define a “jurisdiction code” based on location or else a “link type”
(e.g., motorway/A-road/B-road); the definition and the system of indices used are
purely at the discretion of the user.
Indices have several applications. For example network summary statistics may
be printed disaggregated by index, or they be used in P1X to define which links
are to be di splayed and which suppressed. Equally they may be us ed to define
link colours and widths on P1X graphical output.
The index is usually defined within columns 43-45 of the ‘33333’ data records,
usually associated with buffer links, but in this case equally applicable to
simulation links; see Section 6.6. I t may also be def ined directly for simulation
links using the added mid-link capacity restraint record, or the network X-file; see
6.13.
Indices may also be associated with the (simulation) turns out of a link so that the
summary statistics above include turn delays in addition to link-based delays. To
request this option set the parameter BEAKER to TRUE. See 17.8.
In general the value of an index does not directly affect the way in which a link is
modelled, one possible exception being where capacity indices are used to define
“default” speed-flow curves for either simulation or buffer links as described in
Section 15.9.5. The default values “replace” blank values on i nput cards and
therefore set link characteristics.
Indices must be in the range 1 to 999 but are generally limited to a maximum of
199 used values. In addition each index may be assigned a “text” name of up to
20 characters (CINAME - see 6.3.4). Links which have not been assigned an
index have a default value of zero such that, for example, summary statistics may
be printed for “Capacity Index 0”.
10’s of metres than the parameter XYUNIT should be set equal to 10.0, or 100.0 if
the units are 100’s of metres, otherwise certain features of the graphical displays,
e.g., the apparent widths of roads, may be out of scale by a factor of 10 or 100.
Note that the same set of co-ordinates is also used to define the location of
“bitmap” images which may be us ed to provide a bac kground to P1X network
plots and, generally speaking, this is much easier using a co-ordinate system
based on OS. See 15.43.
Figure 5.2(c) illustrates a 2-way link into a r oundabout which, near the point of
entry, has been s plit into two short one-way links to represent the physical
separation of the entry and ex it points at the roundabout. In this case Z-B-A
represents a chain as does R-B-Z.
Figure 5.2(d) a 4-arm junction at B which basically boils down to two straight-
through chains A-B-D and C-B-E.
In addition combinations of all the above examples may be created “in series” to
create sets of “super-chains”.
Note that chains are always a s et of directional links even if the individual links
themselves are not one-way. Thus in Figure 5.2(a) we could have one chain from
Z to A and another from A to Z if all the links were 2-way (having a combination of
1-way and 2-way links between A and Z would be a fatal error). Note also that a
chain may not have any centroid connectors to intermediate links.
In order to help identify such possible adverse modelling conditions post 10.9 a
routine has been included within the network build program SATNET to identify in
advance any presumed occurrences of chains so that they may be c onsistently
handled within the later simulation and assignment phases of the model. A list of
all chains located is included within the .LPN file.
Applications of chains to blocking back are referred to in Section 8.5.5 and to
random delays in 8.6.4. Chained links may be displayed as a link data item via
P1X.
through which a chain cannot proceed. So in this case links Z-D and D-C would
be one chain, C-B plus B-A would be another.
This mechanism is often useful if the capacity at C is likely to be less than that A,
for example if the link goes from 3 lanes down to 2, or if some other form of “flow
metering” is being applied.
See Section 8.5.5 for an application to blocking back.
where
to is the free-flow travel time (in seconds),
C is the link capacity (in pcu/hr; see 15.17.1), and
B is a c onstant worked out by the program equal to one hal f the time
period being modelled.
(Numerically: B = 30*LTP where LTP is in minutes and B in seconds.)
(But see 15.38 for an o ption to allow the “power law” segment of the curve to
apply over the full range of link volumes.)
For turning movements A and n are calculated by the program (see 8.4.2); for the
buffer network n is defined for each individual link, either input directly on the link
record or indirectly via the default value of BCRP (Note 4, section 6.6). A and t o
are calculated from the free-flow and capacity travel times input by the user. In
fact t o exactly equals the free-flow travel time and A is chosen so that the curve
passes through the capacity travel time when flow equals capacity. (For a more
technical discussion of the “units” of A please see 8.4.2.1.)
Travel times and capacities are reasonably well-defined variables, but the role of
the power n may be less well understood. Its purpose is essentially to control the
rate at which congestion affects travel time. Thus if a large number is chosen, say
5, travel times remain near their free-flow limit until flow approaches capacity, at
which point they increase rapidly to the congested values. On the other hand with
a low value of n, say 1 or 2, the transition is much more gradual. In general terms
high values of n are appropriate to high-capacity links without junctions at the end
to limit capacity, e.g., motorways, while lower values are more appropriate to low-
capacity urban roads where the effects of congestion are mainly associated with
the junctions. It should also be stressed that the choice of n values can strongly
influence the assignment results and that some care should be exercised in
setting them.
While the above relationship is essentially a link-based curve there is no reason
why it should not reflect delays at intersections as well, in so far as that it is
possible using a pow er curve. T hus the travel times input should include the
times to traverse the junction at the end of each link in addition to the link travel
time. ( They therefore differ in that respect from the link travel times defined for
simulation links.) In addition the shape of the curve above capacity is specifically
set to represent the queuing behaviour on an over-capacity link, assuming that the
queue builds up linearly over the time period (LTP) simulated.
Section 15.9 describes ways in which existing speed-flow curves may be
converted into the “best” values of n.
We note that the V<C component of the cost-flow curve, eq. (5.1a), may also be
written in a “parametric” form as:
t(V) = t o + (t c – t o ) (V/C)n (5.2)
where t c = t o + ACn is the travel time at capacity. This form is sometimes easier
for user manipulation since it uses only basic variables and removes the necessity
to calculate the value of the coefficient A.
♦ buffer nodes
♦ centroid connectors
♦ buffer links
♦ simulation links
♦ simulation turns
Thus within the simulation network each simulation node is “expanded” in order to
create a set of “mini links”, one per permitted turning movements, which connect
the assignment node at the end of the entry link to the assignment node at the
head of the exit link. See Figure 5.2 where 8 “mini-nodes” are created at a 4-arm
node with (up to) 12 “mini-links”. Only the 3 turning movements (assuming no U-
turns) from arm A are illustrated.
Banned simulation turns therefore do not appear within the assignment network.
Various arrays and/or procedures exist in order to map assignment nodes and
links with their counterparts in the simulation network and vice-versa.
Figure 5.3 – A 4 arm node N and its expanded assignment network representation
♦ Zones
♦ Buffer nodes
map definitions in order to provide the correspondence between map links and
assignment links and vice versa. Map links may therefore be matched to
simulation links via the assignment network.
Note that simulation turns are not directly included within the map network
although clearly if, say, a route is traced in the map network from nodes A to B to
C then it is possible to identify the simulation turn A-B-C.
SATURN map networks may be “ dumped” into text files consisting of node and
link data for potential transfer into other model systems; see 11.4.2.2 and
11.4.2.3.
Happily, there is now an eas ier alternative using P1X, which allows the user to
input network detail through a graphical editor on t he screen and to see the
network develop progressively. Although a s ingle philosophy underlies the
procedures for both creating networks from scratch and for editing existing
networks, it will be helpful to start by describing the first of these on its own.
Two options, in particular, are of interest. The first, conVert buffer, allows any of
the already defined nodes to be converted into simulation and applies equally to
networks just constructed in PMAKE as it does to imported networks. The second
allows structural changes to be made using the node and link definition and edit
options described above as part of PMAKE. The operations available under each
option are described below.
until the stage is defined, whereupon following stages can be defined. If a mistake
is made, stages can be edited once input is complete.
Once all stages have been defined, continue and you will be f aced by the node-
editing menu in the banner. Here, you can select to edit node variables, such as
minimum gaps and modelling steps, link values, such as distance or number of
lanes, or turn details, such as lane allocations, priority markers and s aturation
flows. Where links or turns are involved, the active one i s always shown
highlighted on the junction plan in centre-screen, as shown below.
When complete, Quit and Save the node dat a (remembering also to Save the
node to an internal data file) and continue to the next. Note that by clicking on
Print you can view the node coding at any time.
GIS files (where GIS stands for Geographical Information Systems *) are
supplementary files which contain essentially “background” data to be i ncluded,
for example, in network plots. Thus GIS files describe both “topological” data
such as political boundaries, geographical features such as rivers, railway lines,
stations, etc. and “text” data such as names to be associated with nodes or links.
* GIS files in SATURN should not be confused with “proper” GIS files as in MAP - INFO or ARC-
INFO. In fact a more accurate, if less impressive, acronym would be something like BIF for
Background Information File.
Their use enables plots to more closely resemble actual maps rather than
idealised representations of road networks - and hence more acceptable for
presentations.
The precise definition and specification of what GIS files contain is still somewhat
fluid but certain broad principles have been established. Thus:
♦ GIS files refer to areas, not to specific networks. You do not need to create a
new GIS file each time you add a new link to your network or change from a
“do nothing” to a “do something”.
♦ The data in GIS files is applicable to matrices as well as to networks, e.g., the
alpha-numeric zone names.
♦ GIS files are “text” or “ascii” files as opposed to “binary” files. It follows that
data can also be “ translated” from other data sources by essentially “re-
formatting” without going through a SATURN program.
♦ Data has a “hierarchical” structure which controls the order in which the data
is displayed in P1X plots. Hence text is displayed AFTER in-filled areas so
that the name of a zone will over-print the coloured area.
Although primarily intended to be used by P1X the data within a GIS file is also
relevant to a num ber of other programs; thus SATLOOK, SATED, SATDB and
MX can all access GIS files.
More precisely the following sets of data can be included within a GIS file (such
that (a) is at the bottom of the hierarchy and is plotted first);
a) Closed “polygons” which enclose an area; e.g. a zone
b) Sets of contiguous straight lines - “polylines” - used to represent rivers or
railways, etc;
c) “Ikons”, i.e. standard symbols such as the BR symbol to represent a
railway station;
d) Text;
e) Alphanumeric link, node, zone and sector “names”;
f) Polyline data to display links as “curves” or as “arcs” of a circle rather than
straight line segments (see 5.7.3);
Node co-ordinates (which are also stored on network files but are included on GIS
files partly for convenience and par tly so as to be accessible for matrix
applications).
Data sets (a) to (d) have certain “characteristics” associated with them. Thus they
have a c hoice of colour, areas can be i n-filled or not, lines can have a w idth
(defined either in mm on the screen or in metres “on the ground” which is
translated into an equivalent width “on the screen” when displayed), and ikons and
text can have a s ize and colours. A nd of course all of them have spatial
coordinates. All of these are set by the user on the GIS file.
GIS files are “formatted” - thus fixed columns are used to define each
characteristic; the current conventions are specified in Appendix Z.
The filename of the GIS file to be associated with a network may be defined within
the network or matrix .dat file using the Namelist parameter FILGIS and that name
is then carried forward on the UF* files. Thus those programs which require data
from the GIS file can open t he file automatically. A lternatively interactive
programs allow a GIS file to be defined from the Files Menu.
Within P1X the GIS data to be included in the plot may be selectively requested
(11.6.10); e.g., you can have the polygons but not the polylines, but you then get
all the polygons.
When curved links are created interactively within P1X three options are provided:
poly-lines, (single) arcs and circles.
♦ vehicle type;
♦ network restrictions;
♦ Similar problems may also arise within the demand (elastic) models
interfaced with SATURN assignments where (7.9) we may wish to distinguish
between two or more groups of trip makers who respond differently to costs in
terms of whether to travel by road or not but who may be identical in terms of
route choice.
♦ The number of user classes is set by the parameter NOMADS with the default
value of 1 for a s ingle user class and an upper limit of 32. Their rules for
route choice are specified within the network specifications, e.g. sections 6.7
(link restrictions) and 6.11 (generalised costs).
Note that user classes, although normally referred to by their sequential numbers
1, 2, 3… NOMADS, may also have short (up to 40 c haracter) text names
associated with them via the namelist parameters UCNAME ( ) input to SATNET
(6.3.4). These are used in, e.g., output LP files.
User class specific link flows may be displayed, e,g., within P1X, by using the
normal menus. They may also be obtained by using a “trick” involving DA codes
such as 3808; see Section 15.21.4.
Vehicle classes may be defined for each user class (within the 88888 network
data records; see 6.11) or bus company (see IBUSVC, 6.9.3) and m ultiple user
classes may be as signed to the same vehicle class. For example, if a u ser has
defined 5 user classes – say, cars (resident), cars (non-resident), taxis, LGVs and
HGVs then it might be natural to define 3 v ehicle classes where class 1 would
include both car user classes plus taxis, class 2 w ould include (and be
synonymous with) LGVs and class 3 would be HGVs. Buses could be included
with either of the 3 vehicle classes above or assigned their own vehicle class
(e.g., class 4)
The number of vehicle classes used is not defined by an input parameter - as are
user classes by NOMAD - but is determined by the highest value used (up to a
maximum of 32). Like user classes they may be given text names - VCNAME( ) in
6.3.4 - of up to 40 characters to be used within outputs.
The long-term intention is that different vehicle classes will have different emission
and fuel consumption characteristics and some development work on the former
is now included in SATURN; see 15.33. Equally they may be us ed in the
calculation of tolls - see 20.4.1 – and in the updating of matrices within SATME2 –
see 13.4.6.
Note that it is not possible to have more than one vehicle classes per user class.
For example, if all car drivers are assumed to be identical in terms of their
generalised cost but drive a mix of vehicles then, in terms of assignment, it is most
efficient to define them as a single user class. On the other hand, in order to
model the different emission characteristics of different vehicles, it would be useful
to be able to split them into different vehicle classes. However, disaggregation into
vehicle classes may be only done by disaggregating the user classes as well -
which is not particularly efficient in terms of assignments. A compromise solution
would be to define car drivers as a single vehicle class but to define their emission
and fuel consumption coefficients by an appropriate weighted average.
Vehicle classes (and hence, indirectly, user classes) may also be assigned PCU
factors VCPCU (see 6.3.3 and 15.17.2), i.e., the values of pcu’s per vehicle which
are used as required to convert flows in pcu’s per hour into vehicles per hours.
[Recall that all trip matrices and t herefore link flows in SATURN are defined in
units of pcu’s or pcu/hr so that VCPCU is used to convert them to vehicles when
required] VCPCU values are used, for example, in the calculation of total toll
revenues from pcu flows since, one as sumes, tolls are levied per vehicle rather
than per pcu; see 20.4.1.
We note that the same PCU factors should also have been used if trip matrices
originally obtained in units of vehicles per hour had been factored into matrices of
PCUs per hour; see 4.3
2 DVV Changes
Mini-Contents Page
INTRODUCTION
We describe here the complete network data structure for SATURN. Although
networks may be coded following the conventions below, we would expect most
new networks to be coded interactively using P1X/PMAKE (see 5.6). Under these
options, the formats described become essentially invisible to the user since the
correctly formatted files are produced automatically.
The network data file input to SATNET (network.DAT in Fig. 3.1) may be
conveniently divided into 11 s egments, the first 3 of which are mandatory while
the last 8 are optional (although clearly in order for a network to be defined either
the simulation or the buffer records must exist):
1) OPTION SPECIFICATION RECORDS
2) NETWORK TITLE
3) PARAMETER SPECIFICATION RECORDS
4) THE SIMULATION NETWORK
5) THE SIMULATION CENTROID CONNECTORS
6) BUFFER NETWORK/LINK DATA
7) RESTRICTED TURNS AND LINKS
8) NODE AND/OR ZONE CO-ORDINATES
9) FIXED ROUTES (E.G. BUSES)
10) COUNTS OF LINK AND/OR TURNING VOLUMES
11) GENERALIZED COSTS (Multiple User Classes)
In each case their presence is indicated by a code number given in column 1 of
the record preceding the first data record. Thus the simulation network records
are preceded by a 1, the centroid connectors by a 2, etc. Moreover each segment
of data input included is terminated by a record with one or more 9’s commencing
in column 1 (and traditionally written as ‘99999’ in columns 1 to 5 although ‘9 ’
has the same effect), and the complete data file must be terminated by a record
with a 9 in column 1. Further details are given under the appropriate sub-sections
below.
(N.B. For purely “aesthetic” reasons the single number, say 1, is normally written
as ‘11111’ so as to take the same number of columns as the ‘99999’ terminators.
Hence we refer to, e.g., the ‘33333 records’.)
With two exceptions each data segment appears only once and i n numerical
order. The exceptions are segment 6, bus routes, and s egment 7, link counts,
which may appear more than once (but with the obvious proviso that all such
segments appear together and in the correct order).
Segments 6 and 7 al so differ from all others in that a “ title” may be i ncluded
following the opening 66666 or 77777 text; see 6.9.3 and note (3), 6.10.
Sub-Sections 6.1 to 6.11 give the format specifications for each of the 11 possible
data segments, followed by an example of a network file in 6.14.
Note that in certain instances the required format differs if the “DUTCH” option,
which allows buffer node numbers of up to 8 digits, is invoked. Places where the
alternative format is applicable are indicated below but the specification of the
DUTCH alternatives is given fully in Section 15.20.
In common with other input data files any record commencing with a * in column 1
is treated as a comment card; see Section 15-29. In addition all data segments
(apart from 2) may all refer to secondary files using the ‘$INCLUDE’ facility
described in Section 15.30.
FIXED COLUMN CONVENTIONS
Note that most of the data segments follow “fixed column conventions” as
described in section 2.8.1 but that greater flexibility as regards the number of
decimal points and/or range of values for the input of “real” variables is available;
see 2.8.3.
SUPPLEMENTARY INPUT FILES
In addition to the “main” network data file it is possible (version 9.4) to input
certain supplementary network data in an extra data file referred to as the X-file
and defined by the parameter XFILE under Namelist PARAM; see 6.3.4. Fo r
example link capacity indices or link-specific parameters such as TAX may be
defined in this way. T he data which may be a dded in this way is described in
Section 6.13.
Alternatively extra data may be input from a “KNOBS file” which an external text
file providing various forms of link-based data, e.g., tolls. See Sections 6.6,15.14
and 20.3.
A slightly different form of supplementary data file is the GIS file (see 5.7) which
may be also referenced under &PARAM, 6.3.4, and which is used to provide extra
network information for output and display purposes.
In addition the trip matrix file to be used in later stages may also be defined within
the input .dat file (6.3.4). A lthough not used directly by SATNET if present it is
read in and c hecked at this stage for any obvious incompatibilities with the
network file being created (e.g. different numbers of zones).
This record * (or records) requests the major options available within SATNET.
The specification of options is via the FORTRAN namelist facility. The user
unfamiliar with this is referred to Appendix A. Essentially namelist provides a form
of free format input for defining values of variables within the program.
Parameters not explicitly mentioned take a default value. Namelist input runs to
as many records as necessary but it must always be preceded by (in this case)
&OPTION and terminated by &END.
Note that repeated variables (i.e., the same name is defined more than once)
generate semi-fatal errors since it is not clear which of the two (or more)
definitions is the correct one.
The following parameters may be defined by &OPTION; the first eight of which are
all LOGICAL and default to .FALSE., the last set are all character variables
(mostly file names) which default to “blank”:
If TRUE and t he file named under UPFILE does not exist then
DIADEM setting either UPDATE or WSTART to T does not result in a semi-
fatal error. See 15.51.
The name of the network (.ufs) file which is to be used under the
UPFILE
UPDATE and/or WSTART options. See 15.3 and 21.3.
The name of the network (.ufs) file which is to be used under the
PQFILE
PASSQ option. See 17.3.
FILPLD The name of the network (.ufs) file which is to be “pre-loaded”. See
15.5
FILERL The name of the input .ERL file used to monitor errors. See 15.58.
The name of the CASSINI Control file defining the convergence strategy
FILCAS
to be applied. See 15.54.6.
The name of the ASCII CSV file reporting the convergence of the demand
FILGAP
model. See 15.54.6
The CASSINI file which specifies the type of demand model used and
CASTXT the file format (and other operations) that CASSINI will expect. See
15.54.6.
Thus the OPTION records might be specified by the following set of records which
explicitly sets UPDATE to .TRUE., PASSQ to .FALSE. and, by default, PLOD to
.FALSE.:
&OPTION
UPDATE=T,
PASSQ=F,
UPFILE = ‘LASTNET.UFS’
&END
For users preparing a new network file the default values set for all of these
parameters are those required and therefore we need not be concerned with them
at this stage. Thus you need only include a ‘null’ namelist record:
&OPTION
&END
Note that both UPDATE and PASSQ allow initial estimates of the cost-flow curves
to be ex tracted from a previous run; see 15.3. However if both are set to T the
data is taken from UPFILE in preference to PQFILE. UPFILE and PQFILE are
totally separate files, either/both needs to be def ined as required by
UPDATE/PASSQ and they cannot both be the same file.
LOGICAL: LEFTDR
CHARACTER: FILTIJ
Default - .FALSE.
CLIMAX(n) If .TRUE> for user class n any input values of CLICKS represent a fixed
maximum speed rather than a fixed time penalty. See 15.47.3.
Default – FALSE
COMPAS If TRUE links from a common buffer node are sorted so that they appear
in the listings in clockwise order (counter–clockwise if LEFTDR=F).
Default - .FALSE
CROWCC If TRUE buffer centroid connectors with an input distance of zero are
replaced by a crow-fly distance. See 15.10.3.
Default - .FALSE.
DCSV If TRUE default speed-flow curves under 33333 ( see 6.6 and 15.9.5)
may be defined as free format (CSV) rather than fixed columns.
Default - .FALSE.
DIDDLE If TRUE each assignment after the first commences with the final set of
flows from the previous assignment; if FALSE it starts with an all-or-
nothing load. See 9.4.
Default - .TRUE.
DOUBLE If TRUE and TOPUP = T certain rules for “over-writing” data apply. See
6.15.3.
Default - .TRUE.
DUTCH If TRUE node numbers in the buffer network may have up to 8 digits,
otherwise they are limited to 5. (N.B. If TRUE certain input formats
throughout the Suite are altered – see Section 15.20.)
Default - .FALSE.
ERRYES(I) Controls the listing of error messages: if ERRYES(I)= T then message I
will be printed; if F it will be suppressed. Range of I from 1 to 499. By
convention ERRYES(I:J) = T sets all values in the range I to J to T. See
Sections 2.9 and 6.12.2.
Default - .TRUE.
ERRNO(I) If ERRNO(I) = T then Warning/Serious Warning/Non-fatal Error I is
upgraded to a Semi-Fatal error. See 6.12.3.
Default - .FALSE.
ERTM (For Eastern Region Traffic Model). If TRUE then negative elements in
the trip matrix are assigned (Definitely NOT recommended for normal
use!) See Note 6, Section 4.3.
Default - .FALSE.
EXPERT If TRUE the level of print out generally is such that only an “expert”
would fully appreciate it.
Default - .FALSE.
EZBUS (Pronounced EASY-BUS!) I f TRUE the bus route data on t he 66666
data records (see 6.9.2) are in “free format”; if FALSE they are in fixed
column format.
Default - .FALSE.
FIFO If TRUE, if and when a data item appears twice, the first data entry is
discarded and the last one used; if FALSE the first entry is always used.
See 6.15.
Default - .TRUE.
FOZZY If TRUE the program will try to “interpolate” unconnected nodes in bus
routes. See Sections 6.9.2 and 15.18
Default - .FALSE. (RECOMMENDED .TRUE.)
FREDDY If TRUE an out put .rgs file containing a l isting of all signal settings is
created. See 6.4.3.5 and 11.9.14.
Default - .FALSE.
FREEKY If TRUE then the extra KNOBS data records in the 33333 records are
input as “free format”; see 6.6.
Default - .FALSE.
FREEXY If TRUE then the supplementary node data in the 66666 records (i.e. X,
Y co-ordinates) are input as “free format”; see 6.8.
Default - .FALSE.
FREE77 If TRUE counts under 77777 are read as free format. See note 13), 6.10.
Default – .FALSE.
FREE88 If TRUE PPM etc. weights per user class under 88888 are read in a free
format as opposed to fixed columns. See 6.11.
Default – .FALSE.
FREEKN If TRUE the link data contained in an external KNOBS data file FILKNB
are entirely in free format, i.e., node s pecification as well as data. See
15.14.5.
Default - .FALSE.
FUNNEL If TRUE turns coded with a s ingle Priority Marker M ar e assumed to
“funnel” into a s ingle exit lane with their “major” turn. See 6.4.2.3 and
8.8.4.
Default – .TRUE.
ICING If TRUE elastic assignment uses a frozen trip matrix (which may be
defined here by FILICE). See 7.5.6.
Default - .FALSE.
ILOVEU If FALSE U-turns are allowed at external simulation nodes; if TRUE they
are (virtually) banned. S ee 18.9.1. N.B. Earlier versions of the
documentation had t he T/F definitions confused and r eversed; see
Appendix E.4
Default - .TRUE.
KERMIT (KilometERS and MinuTes!)
If TRUE the travel distances and times input on buf fer link records are
assumed to be in units of kilometres and minutes rather than metres and
seconds. Outputs in P1X assume the same units. (Useful for very large
scale buffer networks only.)
Default - .FALSE.
KINKY If .TRUE. the standard speed-flow curves used for both the simulation
and buffer networks have a “kink” or discontinuity at V=C, above which
(V>C) they are linear and below (V<C), “power law”. If KINKY = FALSE
they are a power law throughout. USE WITH CAUTION! See 15.38.
Default - .TRUE.
KONAL If TRUE any KNOBS data is included at the end of each 333 buffer
record rather than as an extra line; see 6.6.
Default - .FALSE.
LCR108 If TRUE the “choke factors” applied to turn capacities are
calculated in a better way, introduced in 10.8, to remove possible
discontinuities. See 8.4.4 and note 3, App. D.17.5.
Default – .TRUE.
LEFTDR If TRUE left-hand drive assumed. See Section 15.7.
Default - .TRUE. (or as set in SAT95KEY.DAT; Appendix Y)
LIST If TRUE a c omplete listing of the input records is given by SATNET in
the LPN file.
Default - .FALSE.
MINDER If TRUE (and FOZZIE = T) routes are interpolated using a minimum
distance algorithm if the “directional” method fails. See 15.18.
Default - .FALSE.
MONACO If TRUE the number of pcus which are required to “sit at the head of a
blocked queue” is set to TAX + 1. See 6.4.9.5 and 8.2.5.1.
Default - .FALSE.
PARTAN If TRUE use the PARTAN option within single user class Wardrop
assignment; see 7.11.7.
Default - .FALSE.
PHILIP If TRUE use Phil Barrett’s suggested formula for the flow reduction W-
factor in link weaving; see 15.40.3.
Default - .FALSE.
PRINT If TRUE descriptions of the simulation, buffer and/or assignment
networks are printed by SATNET in the LPN file.
Default - .FALSE.
PRINTF If TRUE flows are printed for the assignment network by SATEASY.
Default - .FALSE.
PRSFD If TRUE SATSIM prints full flow-delay parameters for each simulation
turn.
. Default - .FALSE
QUEEN If TRUE blocking back calculations are based on the value of the link
QUEue at the End of the simulated time period, if FALSE it is based on
the average queue. See 8.5.
Default - .FALSE.
Q105 If TRUE certain new rules introduced in 10.5 for calculating delays in
highly congested circumstances will be used; see 8.4.7. (In fact, post
10.9, the default value of T is always taken,)
Default - .TRUE.
RAGS “Random delays At Give-wayS” The additional delays due t o “random”
effects are applied to “give-way” or “minor” traffic movements as well as
“major”; see 8.6.2. (Recommended .TRUE.)
Default - .FALSE.
RB106 New rules for the simulation of roundabouts as introduced in 10.6 are
applied; see 8.7.3. In fact, post 10.9, the default value of T is always
taken,)
Default - .TRUE. (.FALSE. pre 10.8)
REDMEN Elastic Assignment Parameter; if TRUE an initial estimate of the road trip
matrix (file FILRED) is used under elastic assignment; see 7.5.3.2.
Default - .FALSE. (Recommended .TRUE.)
REFFUB If TRUE calculate buffer turn (geddit?) flows post assignment (but only if
SAVEIT = T)
Default - .FALSE.
ROSIE If TRUE time-flow curves for turns in shared lanes are calculated as a
function of the total shared flow, not the individual turning flow. See
8.4.3 and 7.1.3.
Default - .TRUE.
SPARTA If TRUE use the PARTAN option within multiple user class Wardrop
SAVEIT assignment; see 7.11.7 and 15.23.4.
Default - .FALSE. (but recommended .TRUE.)
SPEEDS If TRUE travel speeds (in kph) rather than travel times (in seconds) are
input on the (simulation) link records. (N.B. SPEEDS does not refer at
all to buffer records which can contain either speeds or times.)
Default - .FALSE.
SPIDER If TRUE create and use an “aggregated network” or “spider web”
representation of the assignment network. See 15.56.
Default - .FALSE.
STOLL If TRUE road charges (tolls) are set stochastically. See 20.6
Default - FALSE
STUART If TRUE use Stuart Porter’s suggested formula for the “Xf” factor in link
weaving; see 15.40.3.
Default - .FALSE.
SUZIE If TRUE the assignment is based on Stochastic User Equilibrium (SUE)
assignment, if FALSE it is based on Wardrop equilibrium assignment -
see Sections 7.1 and 7.2.
Default - .FALSE.
SUZIEQ If TRUE under the SUZIE option a par ameter will be calculated
indicating the degree to which paths diverge from true minimum cost
paths.
TFL If TRUE the rules for hierarchical node and zone numbers as used in TfL
networks are assumed to operate. E.g., the first digit in a 4-digit zone
number gives its sector. See 5.1.7, 6.8 and 10.5.2.
Default - .TRUE.
TOPUP If TRUE a node c oded within one 11111 data segment will “over-write”
one within a separate data segment which follows. See 6.15.2.
Default - .FALSE.
UFC109 If TRUE the output .UFC files are constructed (a) exactly from the
assignment rather than from an extra SAVEIT assignment and (b), for
multiple user classes, in shorter files. See 15.23.3
Default - .TRUE. (was .FALSE but recommended .TRUE. prior to 11.2)
UFC111 Replaces function b) above for UFC109; i.e., if T creates shorter time-
only .UFC files for multiple user classes independent of the value of
UFC109. See 15.23.3.2.
Default - .TRUE.
UNIQUE If TRUE only a single queue is allowed to form on a set of over-capacity
buffer links which are in series. See 15.48
Default - .FALSE.
UPBUS If TRUE then bus routes start/end at the top/bottom and of simulation
links. See 6.9.2 and 11.7.2.1.
Default - .FALSE.
USEUFO If TRUE analysis programs such as P1X and/or SATLOOK use .UFO
files in preference to .UFC by default (if they exist – see SAVUFO
above). See 22.5.3.
Default = .FALSE.
WHATHO If TRUE, a system optimal assignment is carried out as opposed to a
user optimal; See Section 7.11.9.
Default - .FALSE.
WINDY If TRUE use the modern window-style terminal display which does not
“scroll”.
Default - .TRUE.
WRIGHT If TRUE certain warnings etc. are upgraded to semi-fatal errors. See
6.12.2.
Default - .TRUE.
ZILCH If TRUE no trip matrix is assigned prior to carrying out a one -off
simulation. See 9.12.13
Default - .FALSE.
Default: 0
KPHMIN / Simulation link speeds and free flow speeds on buffer links with speeds
KPHMAX outside the range KPHMIN to KPHMAX generate warning messages in
SATNET.
Defaults: 10 and 100 kph respectively.
LCY Duration of the common traffic signal cycle time in seconds. See
Section 8.1.2 and 15.15.3.
Default: 75 seconds.
LRTP Length of the “Random” Time Period as used for calculating random
delays at traffic signals and/or major arms at priority junctions. S ee
Section 8.6.1.
Default: 0 (But positive values are recommended, e.g., equal to LTP)
LTP Duration of the simulated time period (in minutes). See 8.1.2 and 8.4.5.
Default: 30 minutes.
MANOFF The signalised simulation node number used as the reference point for
all optimum offsets set by SATOFF. See 12.2.3.
Default: 0.
MASL Maximum number of assignment/simulation loops. See 9.1 and/or 9.2.3.
Default: 15.
MASL_F The number of simulation assignment loops over which the input trip
matrix is kept fixed under elastic assignment; see 7.5.3.4.
Default: 0
MASL_M The minimum number of assignment-simulation loops to be undertaken
within SATALL; see 9.2.3.
Default: 1
MAXDTP Maximum “transient” delay (in minutes) permitted for a simulated turn.
See 8.4.1.
Default: 10 (Changed from 0 in 10.5)
MAXQCT MAXimum Queue Clearance Time (in minutes) for queued traffic at the
end of a simulation time period. If 0, it is ignored. See 8.4.1.
Default: 60 (Changed from 0 in 10.5)
MAXSPA The maximum number of arms for an ( aggregated) node t o be further
aggregated under SPIDER = T. See 15.56.3.
Default: 30.
MAXZN Maximum number or ‘name’ used to define a zone. See 5.1.6.
Default: 500.
Default: 5.0
BETA(u) Elastic assignment elasticity parameter (for user class ‘u’) as used under
MCGILL = 1, 3 10 or 11. N.B. Units of inverse seconds. See 7.7.1 and
7.7.6.
Default: 0.1 (units of inverse generalised seconds)
BETA_2 (u) As BETA but for nested logit models. See 7.6.3 /7.6.4.
Default: 0.1
BETA_D (u) As BETA but for distribution models. See 7.10.2.
Default: 0.1
BETA_T (u) As BETA but for time-choice models. See App-V.
Default: 0.1
BTKNOB(b,k) Bus Times (in seconds) per KNOB data field k for all routes within bus
company b. See 15.44.
Default: 0.0
BUSPCU(b) Factor to convert bus flows for company ‘b’ into P.C.U.’s. S ee 6.9.1,
and, in particular, 6.9.3 for subscripted values of BUSPCU.
Default: 3.0
BUSSPK(b) Bus Stop Seconds Per Kilometre for all routes within bus company b.
See 15.44.
Default: 0.0
CAPMIN Minimum capacity to be expected for any (give-way) turn; any junction
with lower capacities will be factored up to CAPMIN (pcu/hr). See 8.2.
Default: 30.0
CLICKS(n) Maximum free-flow speed in KPH for user class n. See 15.47.
Defaults: 0.0
COBAF Factor to be appl ied to link flows under the SATCOBA facility. See
15.42.
Default 1.0
DEFCAP Default capacity per lane of a link which is “out-bound” to an external
simulation node.
Default: 1250 pcu/hr.
FISTOP Wardrop assignment stopping parameter monitoring the fractional
improvements in the objective function. See 7.1.5.
Default: 0.05%
FLAREF The default number of PCUs which, by default, are able to queue in an
extra near-side (Filter) flared lane at either signals or priority junctions if
an F is coded in the lane field. See 6.4.9.3, 6.4.14 (for link-specific
inputs), and 8.2.6.
Default: 2.0
FLAREX The default number of PCUs which, by default, are able to queue in an
extra off-side flared (X-) lane at either signals or priority junctions if an F
is coded in the lane field. See 6.4.9.3, 6.4.14 (for link-specific inputs),
8.2.5.2 and 8.2.6.
Default: 2.0
FLPK Fuel consumption per pcu in litres per kilometre. See 15.32.
Default: 0.07
FLPH Fuel consumption per pcu in litres per hour. See 15.32.
Default: 1.2
FLPPS Fuel consumption per pcu in litres per primary stop. See 15.32.
Default: 0.016
FLPSS Fuel consumption per pcu in litres per secondary stop. See 15.32.
Default: 0.005
FRED An initial estimate of the effect of elastic assignment on the total number
of trips (for incremental demand models only). See 7.5.3.2.
Default: 1.0
GAP Minimum gap (in seconds) accepted by a vehicle which gives way at
priority junctions or traffic signals. N .B. This sets the universal default
value which may be over-ridden at individual nodes; see 6.4.1.
Default: 5.0 seconds (NB: historical default value)
GAPM As GAP but for merging turns.
Default: 3.0 seconds (NB: historical default value)
GAPR As GAP but for entry onto roundabouts.
Default: 4.0 seconds (NB: historical default value)
(N.B. See Section 15.22 for further details on how to set the GAP-
parameters rather than accepting the historical default values.)
GONZO (Gonzo the factor – not Gonzo the Great!) All elements in the trip matrix
assigned are factored by GONZO. S ee, e.g., Sections 7.11.5, 12.1.7
and 13.1.14.
Default: 1.0
PCNEAR Percentage change in flows judged to be “near” in successive
assignments. See 9.1.
Default: 5.0. Recommended 1.0.
PMAX Maximum value of the power used in the simulation flow-delay curves.
See 8.4.2.
Default: 10.0 (Recommended smaller values, e.g., 5.0)
POWER(u) Elastic assignment parameter giving the elasticity for MCGILL = 2 or 4.
See 7.7.1 and 7.12.2.
Default: 1.0
PPK Pence Per Kilometre – used to convert distances into generalised costs.
See Section 7.11.1.
Default – 0.0
PPM Pence Per Minute – converts times into generalised costs. See Section
7.11.1.
Default – 1.0
QDMAX Maximum delay in seconds used by Q-turns. See Appendix Q.
Default:226
QVCMIN Minimum V/C ratio at which delays are applied to Q-turns. See Appendix
Q.
Default: 0.75
RSTOP Used in the test for convergence of the assignment/simulation loops.
The loops stop automatically if RSTOP % of the link flows change by
less than “PCNEAR” percent (default 5%) from one assignment to the
next. See also ISTOP. Section 9.1.2, 9.2.5 and 9.2.6.
Default: 94.5; Recommended 98.0.
SHADOW An assumed speed in kph for the “shadow network” assignment option;
see 7.11.10.
Default: 0.0
STPGAP Critical gap value (IN %) used to terminate assignment-simulation loops
when KONSTP = 1. See 9.2.3.
Default: 1.0%
STPCPU Critical CPU time (in seconds) used to terminate assignment-simulation
loops when KONSTP = 2. See 9.2.3.
Default: 1,000 seconds
SUET(u) Used to define the range of link cost variation in SUE assignment for
(optionally) user class u – see Section 7.2.3.
Default: 0.2
TAX Default number of X-coded pcus that can stack in the middle of a
signalised junction and clear after the end of the green. See 6.4.2.2,
6.4.14 (for link-specific inputs) and 8.2.4.
Default: 2.0 pcus.
TDEL Fixed “geometric” delay to allow for acceleration/deceleration on minor
arms at priority junctions or at roundabouts. See 8.4.1.
. Default: 3.0 seconds
TIJMIN Any OD cells in the trip matrix which are less than TIJMIN will be
ignored.
Default: 0.0
UNCRTS Wardrop assignment stopping parameter monitoring the parameter
N.B. Most namelist parameter names representing files have alternative spellings
so that, e.g., FILTIJ is also recognised by TIJFIL, FILCIJ by CIJFIL etc. etc.
♦ Records type 2 - Link description - One record (mandatory) for each link in
strict clockwise * order but starting with any arbitrary link (plus, optionally, a
second link record to describe link speed-flow characteristics).
♦ Records type 3 - Stage descriptions. Only required for type 3 nodes; i.e.
traffic signals. One record per stage is input.
For external nodes only record types 1) and 2) are required. In addition only the
starred (*) variables below need be included on these records.
Nodes, whether internal or external, may be included in any order (i.e, they need
not be in numerical order).
All numerical data entries (bar one) are implicitly INTEGER and should (for safety)
be right justified; the speed flow power on record 2B explicitly requires a decimal).
However the following inputs may optionally include a dec imal within the
designated columns in order to provide greater accuracy: TIM on r ecord 2, TFF
and TCAP on record 2B and STAGL and INTGL on record 3.
Coding instructions are given below and worked examples for each node type
appear in Section 16. The “NAME” column provides a convenient shorthand for
data entries and is not used elsewhere.
Historically coded simulation data were prepared by the user working with their
own editing system; however it is now possible to prepare .dat files using the
interactive network and node edi ting facilities within PIX (see 5.6, 11.9 and 18) .
However some “fine tuning” using a text editor will probably still be needed
In addition (post 10.9) the five data columns following directly on from the last
possible set of turn data may contain a value for TAX for that link; see 6.4.14 for
precise formatting conventions.
(N.B. The following record, 2B, is only needed i f a ‘ *’ was coded in column 11
above and LANES > 0, in which case an extra line containing link speed-flow
and/or other parameters is inserted. This option is relatively rarely used for short
links in central area but may be ex tremely useful for modelling motorway-type
links. See 6.4.12 and 6.4.14.)
N.B.
(i) If any C-NODE entry above is zero or blank it is assumed that ALL turning
movements from that A-NODE (except of course any prohibited movements
indicated by zero saturation flow) are allowed
(ii) If more than 5 movements are required they are continued onto a second
record with the 6th A-node appearing in cols. 26-30 of the second record,
etc
(iii) STAGL and INTG (stage duration and i nter-green) are normally input as
integer seconds but it also permissible to define them as real quantities (i.e.,
16.84 as opposed to 17) as long as the numbers fit within the allocated
column limits. See 2.8.3.
FURTHER NOTES:
6.4.2.1 Giveways (G)
The G priority marker indicates either a “give-way” or a “sharing” manoeuvre
whereby a turn marked G gives way to all “major” turning movements (i.e. those
without any priority marker or an X) but “shares” with other give-way movements.
The movements which affect a G-turn are either those which it crosses or those
with which it shares an exit; these are determined by SATURN from the geometry
of the junction.
Thus in the above figure if the turn S-O-E were coded G it would give way to the
major road flows W-O-E and E -O-W but would “share” with movements N-O-S
(crossing) and N-O-E (shared exit). On the other hand it is unaffected by turn W-
O-N which it neither crosses nor shares an exit with.
If movement 1 “ gives way” to movement 2 t his means that the capacity for
movement 1 goes from its (otherwise) maximum value down to zero as the flow
on movement 2 increases from 0 to its capacity. See Figure 5.1. Movement 2 is
unaffected by movement 1.
However if they “share” the capacity for movement 1 goes from its maximum down
to ONLY 50% maximum as movement 2 increases, while movement 2’s capacity
also goes from 100% down to 50% as movement 1 i ncreases. H ence sharing
implies that both movements are guaranteed 50% of their capacity plus another
50% depending on the shared partner.
The following rule is used to determine the “major” turning movement with which a
turn coded M merges. The opposing turn must (a) share the same exit arm, and
(b) be the first turn from an “off-side” link (in a counter-clockwise direction for drive
on the left) to do so. In virtually all cases the turn marked M will be the first turn
out of a link and will merge with the second turn from the previous link. Thus, in
the above diagram, D-B-C marked M is the first turn out of D-B and i t merges
(“near-side”) with the second turn A-B-C out of link A-B.
However more complicated merges may also be modelled under the above rule.
For example, a t urn may merge with a m ajor “near-side” flow provided that no
suitable “off-side” flow is detected first. (A near-side merge is found by the
program working its way through off-side roads until it comes to the near-side;
hence the reason that there must be no off-side flows.)
Thus in the schematic diagram below (where all roads are one-way, A to N, B to N
and N to C) if turn B-N-C were coded M it would merge as the minor road with A-
N-C as the major flow, i.e., on its “off-side”. However, if A-N-C were coded as M it
would be the minor arm merging with B-N-C as the major arm on its near-side.
If, given the one-way roads in the above figure, the M-marker is on B-N-C then the
lane into which B-N-C would merge would be the inside lane on A-N. However, it
is possible to use an M-marker on B-N-C if B-N were two-way and there were a
left-hand turn A-N-B. In this situation the choice-of-lane rule is modified so that B-
N-C merges with the inside lane used by A-N-C. So if A-N-B had an exclusive
inside lane the merge would be with traffic in the second lane on A-N.
Prior to release 10.8 merges into outside lanes were not correctly recognised and
so the above configuration would have resulted in strange results. See Note 12 in
Appendix E-4.
Y-Merges (Double-M Merges)
The merge facility can also be used to model “Y” junctions where two streams of
traffic with equal priority merge. For example, this might occur if two “equal”
motorways merge together, in which case the merge occurs between the nearside
lane of one and t he offside lane of the other, both of which are assumed to
merge/funnel into a single exit lane. (Equal, in this sense, implies that neither
motorway can be assumed to be the “major” flow and that, say, both have equal
number of lanes. However the double-M may also be used with “unequal”
motorways, for example a s ingle-lane ramp merging into a m ulti-lane motorway
where, at the point of merging, both flows have equal priority.)
In the diagram immediately above both turns A-N-C and B -N-C would be
assigned priority markers M and both turns would suffer a reduction to their
capacity and an increase in their delay dependent upon the alternative flows. See
8.8.3 and 8.8.4 for a more detailed discussion of how the lane choices and
capacities would be m odelled in this situation. N.B. Y-merges, as explained in
8.8.3.2, should not be used with certain lane configurations.
Alternatively, two one-way streets merging into a one-way street could also be
modelled by coding each turn as a G, but this would almost certainly result in
greater losses of capacity.
Funnelling and Lateral Merges (post 10.8)
In physical terms it is possible to envisage of two extreme physical forms of
“merges”:
(1) The two lanes that merge “funnel” into a single lane which therefore restricts
the total number of vehicles which may enter from both streams;
(2) The merging operation is more a question of two parallel streams being
brought into lateral contact without any significant restriction on total exit flow.
This distinction – and possible consequences – are discussed in greater detail in
Section 8.8.4.
Thus, with a “funnel”, there is a definite presumption that (all) the traffic from the
turn marked with the M and t he single lane of traffic from the “major” turn with
which it merges both exit the junction via the same single lane Into which they are
“squeezed” or “funnelled”. Thus, in the above example of a slip road onto a major
road, both the slip road traffic and the inner lane of the major road should exit onto
the inner lane. If not, e.g., if the M-turn has an exclusive exit lane, then an M
marker may not be appropriate.
The choice of two forms of options was first introduced in release version 10.8
Here A-E-D represents a 2-lane motorway and B-E-D a 2 l ane parallel slip road.
Four turning movements are possible:
Lane allocations are not shown in the diagram and are of course set by the user
but for the sake of illustration we shall assume that the “straight on” movements A-
E-D and B-E-C can use both lanes while A-E-C may only use the single nearside
lane and B-E-D, the single offside lane.
Movements A-E-C and B-E-D are linked together via a weaving section and both
would need t o be c oded with a pr iority marker W. This produces the following
potential give-way and/or sharing rules.
A-E-D: Unopposed
A-E-C: Shares with its co-weaving movement B-E-D and gives way to any
B-E-C flow which uses the offside slip road lane.
B-E-D: Shares with its co-weaving movement A-E-C and gives way to any
A-E-D flow which uses the nearside motorway lane.
B-E-C: Unopposed
Notes
In addition to give-way and/or sharing reductions in capacity there may also be
reductions due t o lane sharing: e.g. A-E-C and A-E-D may both share the
nearside lane.
W priority markers must always appear in pairs with, for fairly clear reasons which
are difficult to specify succinctly, certain geometrical rules. Pragmatically this boils
down to the rule that the W’s must appear in the same column on two successive
link records
Weaving may also take place between two junctions, e.g., on a motorway, which
are separated by a finite distance; see Section 6.4.9.4 for coding inputs and
Section 15.40 - and 15.40.7 in particular - for a discussion of the differences (and
similarities) between the two methods
6.4.2.6 Clear Exits [C]
An example of a turn with a “Clear Exit” - turn modifier C - is given below
Here the S to E movement, indicated by a and coded with a turn priority marker G
and a modifier C, has its own exclusive exit lane and therefore need not give way
to ‘b’ vehicles on t he major road W-E. H owever they do g ive way to the W-S
vehicles (indicated by d) and the E to W movements (indicated by c) since they
must cross these movements.
Hence any movement with turn modifier C only gives way/shares with movements
that it must cross but not with movements with which it simply shares an exit.
In the above example had S-E only been coded as G it would have had to give
way to the W-E movements as well.
C markers may follow an X or a G and may be used for any turn except the first
(since the first turn can only share its exit, by definition it cannot cross any
movements).
In addition, post 10.8, they may also follow an M-marker to indicate that the turn
has a clear exit and does not “funnel”; see 6.4.2.3. Plus, post 10.9, they may also
follow a F pr iority marker at signals indicating that the filter turn has its own clear
exit lane and does not have to merge with or give-way to other traffic entering the
same link at the same time.
A further post 10.9 feature is that SATNET checks whether, given the number of
(downstream) lanes on an exit arm and the number of entry lanes used by turns
entering that arm, there appears to be av ailable lanes for a c lear exit. For
example, in the above diagram, there are two exit lanes to E but the turn W-E only
has one lane at its entry, suggesting that there is one lane available to S to enter
the exit to E. Had there been j ust one l ane to E this would not be t he case.
Warning 98 detects such instances and prints appropriate messages. N.B.
Warning 98 is only a suggestion, nothing more.
The default situation is as set by NOTUK; hence with the “UK” default value
NOTUK = 0 interference as in (b) is assumed; coding a turn priority modifier of D
would convert the situation into no interference as in (a). Equally if NOTUK = 1 or
3 (see 15.7) then the default is (a) and a D for an individual turn converts to (b).
Hence the D modifier is essentially a “toggle” which switches between the two
possibilities.
Logically both turns should be c oded as D’s or neither, but there is no absolute
requirement that this is coded (apart from Serious Warning 167 resulting).
Users should be m ade aware that situation (a), no i nterference, is preferable in
the sense that it makes overall convergence easier. Therefore, if the situation is
likely to occur at one o r more junctions, it is worth checking that it has been
coded, e.g., by the use of markers X and D. Warning 97 prompts.
6.4.2.8 Hooked & Clear Exit Lanes (E)
This indicates that both the C and D modifiers apply, e.g. a hoo ked/unhooked
movement with a clear exit lane.
The durations of the stage time and the inter-green period are defined in fields 1
and 2 on Record Type 3, i.e., columns 11-15 and 16-20 respectively. See also
6.4.13 for how to define upper and/or lower limits on the stage green times.
6.4.3.1 Continuous Green Movements
Under certain circumstances the inter-green period is set equal to zero. For
example, if on a particular arm a left filter arrow is displayed, say, 10 seconds after
the “main” green phase begins this would be coded by having one stage of length
10 seconds and zero inter-green followed by another stage in which the left turn is
added to the list of green movements.
Zero-length inter-greens therefore imply that movements which are green in two
successive stages must be continuously green over both stages.
The same also applies, in general, to two successive greens with non-zero inter-
greens. For example the inter-green period might represent the gap between the
display of straight-ahead and l eft arrows in the first stage and o f straight-ahead
and right arrows in the second, in which case the straight-ahead movement
continues as green during the inter-green.
The general rule is therefore that movements which are green during two
consecutive stages are also green during the inter-green, with certain exceptions:
(i) If the signals have only one stage (in which case every possible movement
must be coded as green during that stage) it is assumed that all movements
are red during the inter-green. This situation commonly occurs in the
representation of pedestrian signals at a node in the middle of the block.
(ii) Similarly at junctions with only two arms (e.g., pedestrian crossings again)
but multiple stages all inter-green periods are red for all movements. This
allows for pedestrian signals to be “double-phased”.
(iii) Right turners which are coded with an X priority marker but are (unusually?)
green in every stage are assumed to be red during every (positive) inter-
green period.
(iv) If the inter-green time is coded by a neg ative number, in which case the
absolute value gives the true inter-green time. This facility is introduced to
deal with any possible ambiguities.
Criteria (ii) and (iii) were first introduced in release 10.6.
6.4.3.2 Amber Phases
Note that, as implied above, we do not explicitly model amber phases - signals are
considered to be either “red” or “green” - although it is possible for the coder to
allow for vehicles “stealing” a certain amount (typically about 1 or 2 seconds) of
the post-green amber phase by artificially extending the green phase.
6.4.3.3 Stage Times
The input values for stage and inter green durations need not add up t o the total
cycle time (LCY). If they do not, stage times will be factored by the program so
that the sum = LCY. Inter-green times, however, remain as input on the
By contrast bus-only turns are turns out of a n ormal link from which cars are
banned. This is signified by coding a ne gative turn saturation value (LSAT on
Record 2) with the correct absolute value.
Note that it is not necessary to code bus-only turns out of a bus-only road,
although no harm is done by doing so, since once the road has been coded as
bus-only no vehicles will be assigned to it by the assignment and hence no
vehicles will reach the turns either.
Bus-only links and turns may also be coded using the banned turn/link facility as
described in Section 6.7 below (and in a number of respects this is a more natural
way to do it).
The latter input MUST be used if one wished to code, say, a “bus plus taxi” link
since a negative value as above would ban taxis as well as other vehicles.
not, etc. The model then simulates the reductions to the turn capacities from all
other effects.
N.B. Note the slightly different interpretation for roundabouts - 6.4.7.
Note, however, that the simulation model (see 8.2.1) may not necessarily include
all restrictions to vehicle movements. For example the simulation includes the
reduction in capacity due to minor road vehicles giving way to major road vehicles
but not giving way to pedestrians since the latter are not explicitly represented
within SATURN. In such cases it is necessary for the user to introduce the extra
effects by modifications to the input data.
Generally speaking this is best done by reducing the saturation flow to account for
the “missing” effects such that, at the end of the ACCEPT calculations (8.2.1) the
correct capacity has been obtained. Thus if a turn with a “ purely geometric”
saturation flow of 2000 pcu/h gives way to a pedestrian crossing where, the user
decides, there are pedestrians 25% of the time the saturation flow should be
reduced to 1500 pcu/h.
Other coding methods may occasionally be us ed; for example, if the impact of
pedestrians at traffic signals is to effectively delay the start of a green stage, e.g.
the pedestrians tend to cross en m asse at the start of a par ticular green stage
rather than at random throughout the green stage(s), then this may be bet ter
reflected by reducing the length of the relevant green stage.
See 15.17 for a discussion of why we refer to pcu’s rather than vehicles.
6.4.6.2 Setting Saturation Flows
Setting “correct” saturation flows is as much an art as a science and it is not really
the role of this Manual to supply precise numerical formulae to apply since every
area to be modelled will have its own particular characteristics which will influence
saturation flows. However, in general terms, one can say that the following
features should be considered in setting saturation flows:
♦ Number of lanes
♦ Lane widths
♦ Visibility
♦ Turning angle (e.g., straight ahead vrs 90° right or left, sometimes measured
in terms of a “turning radius of curvature”)
We would strongly recommend organisations to set up their own sets of tables
and/or formulae, cross-classified by one or more of the above criteria, such that a
modeller, having “measured” the essential parameters above, may simply look up
/ calculate the appropriate saturation flow.
5109341 / Mar 13 6-39
11_2_05_Section 6.docx
SATURN MANUAL (V11.2)
One major advantage of having standard procedures as above is that two different
coders, given the same junction to code, will come up with saturation flows which,
if not identical, will at least be close.
6.4.6.3 Consistent Saturation Flows by Lane
Of the various factors listed under 6.4.6.2 above all are effectively independent of
the individual turn being considered apart from viii), the turning angle (or turn
radius). Qualitatively one would expect that the saturation flow for vehicles going
straight ahead would be greater than, say, for vehicles turning at right angles
either to the left or to the right. It is, however, difficult to specify the exact form of
the relationship; different modellers will have their own personal or in-house rules.
It follows that it is very difficult for a c omputer program to say that if a straight
ahead saturation flow has been coded as 2,000 pcu/hr then a turn saturation flow
of only 500 for a 90° turn out of the same lane is “wrong”.
Nevertheless it is important to be able to at least warn users when input values
appear to be inconsistent. In order to do so SATURN adopts the arbitrary formula
that a turn through an angle θ (where θ = 0 implies straight ahead) will have its
saturation flow reduced by cos (θ/2) relative to straight ahead. Thus the saturation
flow for a right angle turn is reduced by a factor of cos(45°) = 0.707.
SATNET applies a consistency check by:
♦ Calculating a s aturation flow per lane for each turn equal to its input
saturation flow divided by by the number of lanes;
♦ Comparing the minimum and maximum effective saturation flows per lane for
each individual lane and for the entry arm as a whole.
If the ratio of maximum to minimum is (arbitrarily) greater than 1.5 overall or 1.4 in
an individual lane then a “Serious Warning 137” is generated.
This rule was first introduced in release 10.5 and clearly contains a n umber of
arbitrary assumptions. Indeed there is no overwhelming reason why the warnings
generated are “correct”; there may well be other perfectly valid reasons why the
user has chosen a particular set of input saturation flows (E.g., extra lanes may
have been coded – see 6.4.9.1 – to avoid problems of lane sharing without a
comparable increase in the saturation flow.). On the other hand coding errors are
not exactly rare and i t is to be hoped that the above procedures will be abl e to
identify “real” errors more often than not.
6.4.6.4 References
TRRL SR 582 for priority junctions, or Webster and Cobbe (Road Research
Technical Paper 56, 1966) for traffic signals may be consulted; however more up-
to-date publications are clearly to be preferred. I suggest you look on the web!
differently post 10.9.20, only that different options exist which users may wish to
take advantage of.
Lane definitions without using Flares (pre 10.9.20)
Traditionally (pre 10.9.20), the number of lanes defined for each input arm
corresponds to the “effective” number of lanes at the stop line, not necessarily
the number of lanes along the road itself. B y “effective” we mean that a l ink
which, say, has only one lane marked but is sufficiently wide that vehicles can
squeeze by on t he nearside when a vehicle is queued on the offside should be
coded as two lanes, not one. Otherwise SATURN will over-estimate the blocking
effect of queued vehicles and underestimate capacities.
Similarly it may be advisable to include an extra “artificial” lane for offside turning
traffic if the flow is relatively light and queued traffic can be accommodated in the
centre of the junction without impeding other movements on t he same arm.
(Although the effect may also be adeq uately modelled by using the TAX and
MONACO options; see 8.5.)
The problem is most acute when one or more turns give way (e.g., are coded as
X) and therefore may block any unimpeded traffic in the same lane. H ence a
single lane is “OK” for major arms at priority junctions (although unlikely to occur
in real life), but not otherwise. Single lanes which include both give-way and non
give-way movements are a major problem for convergence (9.5).
In case of doubt - code extra lanes!
Lane definitions making use of flared lanes (post 10.9.20)
Post 10.9.20, it has become possible to explicitly define and model additional
flared lanes, i.e., short sections of roadway added at the stop line to
accommodate specific turning movements. The geometry of a flared right-turning
lane and the (shared) lane from which it diverges is illustrated below:
(Note: the above layout represents the use of the right turn FLAREX lane but also
equally applies to the left-turn FLAREF lane).
A represents the ahead movement in the “main lane” while F represents the flared
movement which diverges from the main lane into the flared lane.
With flared lanes (nearside and/or offside) defined the position on the link at which
lanes are defined has shifted upstream away from the stop line such that the
5109341 / Mar 13 6-42
11_2_05_Section 6.docx
SATURN MANUAL (V11.2)
number of lanes defined for each input arm should equal the number of upstream
lanes at the point where the flare(s) begin. Thus, in the above diagram, the link
would be defined as having two lanes, not three as at the stopline.
In addition the allocation of turns to lane is also defined at the point where the
flare begins. In the above diagram the ahead movement would be al located to
lanes 1 and 2 whereas the F m ovement would be allocated to lane 2 o nly (the
offside lane).
Thus a flared lane is definitely modelled as an added lane at the stop lane but one
which does not go the full length of the link as opposed to modelling flared lanes
as being definitely present at the stop line but subtracted at some point
upstream. The reason for choosing this (somewhat arbitrary) definition of the
number of lanes and the allocation of lanes by turn is to be able to correctly model
the choice of lanes by turns and the capacity reduction effects within shared
lanes.
In part, flared lanes deal with the problems of cars “squeezing around” blocked
lanes even if an extra lane is not explicitly marked “on the ground”. Using flared
lanes the potential need t o code “artificial” extra lanes (as recommended pre
10.9.20; see above) has therefore become less acute. Thus the post 10.9 advice
is not to code extra lanes when in doubt but to code explicit flares.
Users should also note that:
♦ Shared ahead lanes: straight-ahead movements are not permitted from the
(extra) flared lane. In these cases, the full lane should be m odelled with a
mid-link capacity constraint introduced if necessary; and
♦ Length of the flared lanes: practical testing has shown that if the length of
the flared lane is more than 10 pcus, a full lane should be coded.
The methods by which flared lanes are defined within a net work .dat file are
described in sections 6.4.9.3 and 6.4.14
Lane Numbering
Note that SATURN lane numbers are counted from the nearside or kerb-side out
so that lane 1 is the “innermost” lane nearest to the kerb-side and the highest lane
(equal to the number of lanes as defined above) is the “outermost” lane nearest to
the centre of the road. Note, therefore, that any flared lanes are not explicitly
assigned extra lane numbers, their lane numbers are defined at the point of
flaring.
Successive turns (starting with the left turn for drive-on-the-left, right for drive-on-
the-right, and pr ogressing clockwise/counter-clockwise) must obey certain fairly
basic traffic engineering rules. Thus there can be no empty lanes. Equally (drive
on the left) a right-turn cannot use lanes 1 and 2 while the straight-ahead can only
use lane 2 since that would imply that the right turns from lane 1 would need to
“cut-across” straight ahead traffic in lane 2.
Less urgently one s hould not have, say, a right-hand turn and a l eft hand turn
both assigned to lanes 1 and 2 since that would mean there could be traffic
turning right from the left hand lane having to weave with traffic turning left from
the right hand lane.
5109341 / Mar 13 6-43
11_2_05_Section 6.docx
SATURN MANUAL (V11.2)
Violations of the former rule result in a Semi-Fatal Error whereas the latter is only
a Serious Warning.
6.4.9.2 Bus Lanes (B, S or T)
It is also possible to include bus-only lanes as part of the link simulation record by
including one or more B’s within columns 12-15; see Section 15.39 for full details
of how bus-only lanes are modelled in SATURN.
Briefly a bus-only lane is defined to be a “full-length” lane from the upstream entry
to the downstream stop lane exclusively used by buses (where “buses” in fact
includes any form of public transport vehicle as coded on the 66666 records;
6.9.1). Thus at the moment bus lanes with set-backs cannot be explicitly
modelled.
To define, say, a road with a t otal of three lanes, two for normal traffic and t he
nearside lane reserved for buses, columns 12-15 should be coded ‘ B2’; if the bus
lane were down the centre of a 2-way road (e.g. a tram line) or in the offside lane
of a 1-way road then it would be coded ‘ 2B’. Similarly ‘ B2B’ would represent
four total entry lanes with bus lanes in both the nearside and offside of the
roadway.
Therefore the numerical number of lanes, i.e., 2 in the above examples,
represents the number of lanes available to “normal” traffic; adding the number of
B’s to that gives the total number of lanes on the road.
Alternatively the letters ‘S’ and ‘T’ may also be used to indicate special “bus” lanes
where T represents a t ram-only lane and S represents a t ram+bus lane. In
modelling terms there is no di stinction between B, S and T , the only difference
being that P1X graphics plots them in three different colours.
6.4.9.3 Additional Flared Lanes (F)
In the same way that a B (/S/T) may be used to indicate extra bus lanes an ‘F’ in
columns 12 t o 15 m ay be i ncluded to indicate the presence of additional flared
lanes either nearside or offside depending on whether the F precedes or follows
the number of lanes. Thus F2 w ould indicate a near side flared lane with two
“normal” lanes (whereas 2F would indicate that the flare is on the offside).
The length (in PCUs) of the flared segment is taken, by default, to be the value set
by the &PARAM parameter FLAREF or FLAREX (nearside or offside).
Alternatively the value may be s ubsequently set by defining an ex plicit flared
length on t he second link record (if present); see 6.4.14. Indeed flares may be
defined either by an F in the lanes field or by an entry on the second record or
(belt’n’braces and recommended) both.
N.B. The length of flared segments is always defined in units of PCUs, not
metres.
Note that a flared lane may not (currently) be used at a roundabout, dummy node
or external simulation node; i.e., only at a priority or signalised junction.
See Section 8.2.6 for an explanation of the modelling principles applied.
In addition, if a flared lane is provided on the ground for X-turners, our advice
would be:
(1) Code it as a “full” lane available to right-turners only if the flared section is
sufficiently long that it is unlikely that the queue of right turners will stretch
beyond the flare and potentially block straight aheads.
(2) However, if the flare is relatively short (say less than 5 pcus), then do not
code it as an extra X-turn only lane but code it as an outside lane which is
shared between X-turns and s traight aheads and make use of the
FLAREX etc. facilities above.
By coding a single shared lane the potential for X-turns to block straight aheads
will be em phasised and, in effect, the lane definition is that which occurs
immediately upstream of the start of the flared section.
Finally we note that coding 2 av ailable lanes for X-turners with the inside lane
shared and the outside lane X-turns only is not recommended on the grounds that
(a) it represents highly questionable traffic engineering practice and (b) it leads to
convergence problems when the exclusive lane goes over-capacity and the inner
lane therefore goes over-capacity as well in a very discontinuous fashion. See
Serious Warning 165.
Similarly coding two outside lanes both of which are shared between X-turners
and straight aheads is strongly not recommended on the grounds that it implies
internal weaving of traffic. See Serious Warning 142 which, see Section 6.12.2,
may be converted to a NAFF error under WRIGHT = T.
6.4.9.6 Shared Lanes
Following on from the last point in the previous sub-section if two different turning
movements share two or more lanes (e.g., left-turners are allocated to lanes 1 and
2 and so are right-turners) then this implies that a right-turner from lane 1 would
have to cross in front of a left-turner from lane 2 in order to exit and vice-versa.
The lane allocation is permitted within SATURN but it does not represent good
engineering practice so therefore it is flagged as Serious Warning 142 or 162
(depending on whether or not X-turns are involved).
Thus a lane may be shared between two or more turning movements (and clearly
this is very common); the problem only occurs when two adjacent lanes are
shared between two or more turns.
Note also that all gaps are input as integers representing tenths of seconds so
that if 15 were input this would be interpreted as 1.5 seconds. It is not possible to
input, say, 1.53 within the 5 c olumns provided in order to obtain extra precision
although the extra precision is possible when the gap is either defined globally
through namelist or turn-specific in the X-file
To do so you must first insert a ‘*’ in column 11 of the link data record (type 2),
indicating that an extra record (type 2B) is to be inserted before the next link data
record, containing speed-flow data. (N.B. Do not include a * if LANES = 0, ie.,
columns 12-15 are blank or zero, and the link is therefore one-way outbound.
This can sometimes be forgotten if an in-bound link is converted to out-bound
only.)
Note that the additional link record 2B) may also be us ed to define parameters
such as TAX, FLAREF and FLAREX; see 6.4.14.
More specifically the extra record gives:
1) the free flow travel time t 0 in seconds / free flow speed in kph
2) the time at capacity t C in seconds / capacity speed in kph
3) the link capacity C (sometimes referred to as the “pinchpoint” capacity)
4) An ‘S’ or ‘T’ to indicate speeds or times above
5) A “power” n
6) A “link index” or “capacity index” (optional – default is 0); see 5.1.9.
such that link travel time as a function of flow V is defined by:
Equation 6.2
t (v) =
t0 + AV n v<c
where the parameter A is chosen such that t(C) = t C . For V > C the time is
constant, t C .
This data has two effects: (1) it determines the (cruise) travel time/speed on the
link itself; and (2) it may reduce the turn capacities at the downstream junction.
See Section 8.4.4 for further details.
Note that the time/speed defined in columns 16-20 of the link record 2 is
disregarded if an extra speed-flow record is used. However a warning is
generated if a non-zero link time/speed does not fall within the upper and lower
limits set by the speed/flow times/speeds at free flow and capacity.
Note that by leaving entries (1) through (4) blank but coding a (positive) capacity
index allows one to use a “default” speed-flow curve as defined within the 33333
buffer records. See 15.9.5.
The use of the single characters S or T in column 29 t o denote “Speeds” or
“Times” is new in 10.5. If column 29 i s left blank then the choice is set by the
parameter SPEEDS as on the normal simulation link records. Previously SPEEDS
was always used.
We may note therefore that the same data columns and conventions are used in
the 11111 s imulation link speed-flow curves as in the 33333 bu ffer network link
records (although certain entries in the 33333 records such as the A-node and the
B-node are ignored here), making it simple to transfer 33333 data directly into the
11111 records.
We also note that if (and only if) the link is to an external simulation node then the
same information may also be input via the 33333 buffer records; see 15.13. If
both occur for the same link then FIFO (see 6.15) decides which to select.
However, it must be stressed that in such cases it is strongly recommended that
the users themselves make that decision by either removing the data within the
11111 or the 33333 r ecords to avoid any ambiguity as to the required link
properties.
We repeat that the above problem does not arise with internal simulation links
where the 11111 data always takes precedence over 33333 data.
6.4.12.1 Mixing Mid-link Capacity Restraint with Junction Capacity Restraint (SW 157)
A not uncommon error that occurs with the use of mid-link capacity-restraint or
speed-flow curves is to use curves that implicitly assume some capacity reduction
due to downstream junction effects and therefore define a capacity that is lower
than the genuine mid-link capacity. In this case the model will potentially double-
count the impact of the downstream junction capacity reductions and/or delays.
For example, the COBA-10 curves described in Section 15.9.3 almost certainly
include junction effects, particularly for urban areas. Care should therefore be
exercised that such curves are not included by default on virtually every link in a
network. See also the advice in Section 15.9.4.
A check for whether a mid-link capacity appears to be significantly different (either
very much greater or very much less) from the “average” downstream saturation
flow(s) is included as Serious Warning 157 within SATNET. We note that the
warning is at best an “educated guess” as to whether the problem occurs since
the average downstream saturation flow, which may be flow dependent, can only
be estimated.
Or, alternatively:
where the first version is, for reasons given later, the “standard” version although
the second may appear more intuitive. E.g., 10<20>30 or 10<20<30 would both
imply a stage length of 20 seconds with a minimum of 10 and a maximum of 30.
If, on the other hand, only a single minimum or maximum stage time is to be set
the correct formats are respectively:
T min < T
&
T > T max
The rationale behind using a < symbol for “minimum” and > for “maximum” is that
otherwise an input field such as 20<30 could either be interpreted as a green time
of 20 seconds with a maximum of 30 or as a green time of 30 with a minimum of
20. Thus 20<30 implies that a minimum stage length is being set (T min = 20; T =
30) whereas a maximum stage length would need to be written as (somewhat
counter intuitively) as 20>30 (T max = 30; T = 20)
The obvious error checks such as minimum time less than green time (as in 30 <
20) and maximum greater than green time (as in 20 > 30) are made on input and,
in the case of any violations, the min/max inputs are ignored (with non-fatal errors
256 or 257 generated).
6.4.14 Free-Format Data Input on Link Record 2B: TAX, FLAREX, FLAREF and
APRESV
Post release 10.9.20 it is possible to use Link record 2B to define various link-
specific parameters in addition to link speed-flow data (6.4.12): specifically TAX
for the number of pcus which may stack in the centre of the junction plus FLAREX
and FLAREF to represent PCUs in extra flared lanes (6.4.9.3) and APRESV to
control lane choice at merges. All these parameters are assigned global default
values set via &PARAM Namelist inputs.
In order to do so a * must be coded in column 11 of Link Record 1 and t he extra
link parameters are defined using a c ombination of keywords and num erical
values in a free format. For example
1234* 2 60 200 ...
TAX 3.0 60 120 2000 2.5 12 FLAREX 2.5
would indicate that the link from Anode 1234 r equires a second line in order to
define link speed-flow properties (thus free-flow time of 60 seconds, capacity time
of 120 s econds, capacity 2000, power 2.5 and c apacity index 12) but that, in
addition, its TAX value would be 3.0 and it has an offside flared lane (FLAREX) of
length equivalent to 2.5 PCUs. Text “APRESV” signifies values for APRESV to
follow and “FLAREF” for FLAREF.
In this example the values 60 . .. 12 must appear in their normal fixed columns,
i.e., between column 11 and 45 (see 6.4.1), while the keyword+value sets may
appear anywhere in columns 1 – 10 or beyond 45.
Further notes:
(a) The keyword used to designate TAX is, strictly speaking, any set of characters
beginning with a T and ending with an X; e.g., TX, TAX, TyrannosorusreX, etc.
etc. Ditto FX or FLAREX, FF for FLAREF or AV for APRESV. Nor is it case
sensitive.
(b) Keywords may also use columns 11 to 45 as long as those columns are not
being used for speed-flow data. (What happens is that the line is first scanned
for keyword+values which are then replaced by blanks and then the speed-
flow data is read as per normal.)
(c) It is also possible to use Record 2B only to define TAX, FLAREX etc., i.e.,
with no speed-flow or capacity index defined for that link.
(d) Extra link parameters TAX etc. do not apply to links to external simulation
nodes although link speed-flow curves may be used for such links.
(e) Defining FLAREX and/or FLAREF on link Record 2B may be either an
alternative to coding an F i n the lane field on Record 2A (6.4.9.3) or a
supplementary data source. Thus if an F is used in the lane field in Record 2A
but FLAREX/F does not appear on Record 2B then the length of the flare is
assumed to be set by the default parameter FLAREX/F defined under
&PARAM. If FLAREX/F appears explicitly on Record 2B then that value is
used,
(f) A flared lane may also be included if FLAREX/F appears on Record 2B even if
an F did not appear in the lane field on R ecord 2A. It is, however,
recommended to use both methods “belt’n’braces”; i.e., code an F on r ecord
2A and set an explicit flare length on record 2B.
(g) Recall that both FLAREX and FLA REF are defined in units of PCUs, not
metres. And that TAX is also defined in units of PCUs.
(h) If either FLAREF or FLAREX appears to be a bnormally long – defined as
either greater than 100 m or greater than the apparent link length – then a
Serious Warning 175 is generated. If the flare length is correct you should
probably consider using mid-link capacity restraint instead.
(i) Note that link-specific values of TAX, FLAREX/F and A PRESV may also be
set using an external X-File; see 6.13.4.
N.B. Users will probably find it much simpler to set TAX using the “extra line”
convention of 6.4.14 rather than the “end of line” convention described here. Both
were added in 10.9 but, in retrospect, the extra line method is a much better idea
and the end of line method is likely to be withdrawn.
NOTES:
1) It is not necessary to include both an A -node and a B -node. I f one if
missing, i.e. blank or 0, the following rules apply:
2) If only the A-node is given then the zone is connected to all links FROM
A; i.e., the blank B-node is treated as a “wild card” representing all
possible values of B.
3) If only the B-node is given then the zone is connected to all links TO B;
i.e., the blank A-node is treated as a “wild card” representing all possible
values of A.
4) If A = B then the zone is connected to all links both TO and FROM A; i.e.,
situations (2) and (3) combined,
5) However if either the single A-node or B-node is an external simulation
node then the connections are made to all links from A/B to internal
nodes. S ince in most cases external simulation nodes are only
connected to a single internal node the only information really required by
the program is the external node and including a second node is largely
redundant.
NOTES:
1) A capacity of zero - or blank - is assumed to imply infinite capacity -
actually recorded as 99999 pcu/hr – and fixed times/speeds as set at free
flow (so that the capacity time/speed is ignored). I t is further assumed
that all centroid connectors have fixed travel times (set by the free-flow
field) and an infinite capacity, i.e. 9 9999. (If the free flow and c apacity
times are set equal with a finite capacity then the times are fixed but only
up to capacity, beyond which point they increase linearly as per equation
(5.1.b))
2) Link capacities in the buffer network are not the equivalent of saturation
flows in the simulation network in that link capacities take into account
the reduction in capacity due t o traffic signals at the down-stream
junction, give-ways, etc., whereas simulation saturation flows are based
purely on road geometry and ignore all such factors as above.
3) If column 28 contains a 1 this implies that the link (or centroid connector)
is one-way from A-node to B-node; a 2 i mplies that it is two-way. I f
column 28 contains any other number - or more commonly if it is left
blank - then the value is taken as that defined by IFRL and IFCC (See 6.3
above). Hence by default all input real links are assumed to be one-way
(since IFRL = 1) and centroid connectors are two-way (IFCC = 2). If two-
way, all link properties are assumed to be the same for both directions.
4) If columns 36-40, the link flow-delay power, is left blank - and capacity
restraint is indicated - then the default value defined by BCRP is
assumed. (Note that it is not 100% essential that the decimal point falls in
column 39; FORTRAN READ statements are forgiving and will correctly
read a dec imal in any of the 5 columns. This means that you are not
restricted to a single figure after the decimal point. See 2.8.3)
5) The possible uses and applications of the link index in columns 43-45 are
explained in Section 5.1.9. See in particular note (8) below. If the
parameter BEAKER is TRUE then the index is also associated with all
(simulation) turns out of the link.
6) If either the A-node or the B-node is an internal simulation node this link
will not be added t o the buffer network. (This happens very commonly
when a network is originally set up with buffer links defined under 3333
which are then re-defined as simulation nodes and added to the 11111
records). However a buffer link can join a pure buffer node to an external
simulation node or two external simulation nodes.
7) Excluded simulation links - as defined above - are not totally ignored in
that if A-B has previously been c oded as a s imulation link the capacity
index, as well as any extra data input on Record 2, is associated with the
simulation link. See Section 15.14 for further details. Equally certain
data for out-bound external simulation links may be defined as well - see
Section 15.13.
8) An option introduced in SATURN 8.5 allows “default” speed-flow curves
parameters (speeds, capacity and po wer) to be as sociated with a
capacity index and t o “replace” blank values on subsequent input
5109341 / Mar 13 6-54
11_2_05_Section 6.docx
SATURN MANUAL (V11.2)
NOTES
1) Include the third node C in order to specify a turn A-B-C; otherwise link A-
B is assumed.
2) Centroid connectors cannot be restricted, but links in both the simulation
and buffer networks plus turns in the simulation network may be included.
N.B. In general turns in the buffer network CANNOT be restricted as
they do not explicitly exist in the assignment network although, post
Release 11.1, they may be effectively banned and/or penalised if
SPIDER = T; see 15.56.7.1.
3) A banned l ink or turn is indicated by a negative indicator, 0 i mplies no
effect while a positive number is taken to be a penalty in either time or
monetary units as explained next.
4) A “toll” (i.e., a monetary penalty) is differentiated from a pure time penalty
by the inclusion of either a $ or & symbol preceding the numerical value.
The absence of either implies a ( possibly notional) time penalty whose
units are assumed to be seconds. Tolls are assumed to be given in units
of, say, pence rather than pounds so that a toll of five pounds would be
indicated by £500 (or $500). For further information see Section 20.
5) “Time” penalties may represent virtually anything the user may wish them
to represent. For example, they may be purely notional times designed to
deter non-local drivers from using a local rat-run, or they may be “real” in
that they represent the extra time for a lorry to drive down a windy road.
Under certain circumstances, see 15.24.4, options exist to include them
or exclude them with “normal” time. However, in terms of output statistics
of total times or speeds, penalty times are not included with “real” times
but are listed separately.
6) Buses and ot her “fixed” flows which follow pre-defined routes are not
affected by restrictions. Hence banning a turn or link to all classes is
equivalent to defining it as a bus-only turn/link.
7) If you have multiple vehicle classes (NOMADS > 1), a banned indicator
of -1 refers only to a single user class, whereas values of -2 or less are
taken to imply that the ban applies equally to all following user classes.
For example if you wish to ban a turn for all user classes -2 in columns
16 to 20 (31 to 35 under DUTCH) would suffice. (Presumably in this
case the turn would be bus only.)
8) Under the usual option of a single user class only columns 16-20 (31-35
under DUTCH) are required to specify the ban/penalty.
9) If there are more than 10 user classes more than one record is required
per link or turn such that each record contains 10 entries in columns 16-
65 (31-80 under DUTCH). Columns 1 to 15 (30) on subsequent records
are left blank. N ote that this applies whether or not the subsequent
record contains nothing but zeros (or blanks) following a -2 entry. See
Section 6.12 for an annotated example.
10) Total output statistics of, e.g., total pcu-hrs for time penalties and t otal
pcu-pounds for tolls may be viewed via the simulation/buffer outputs
under SATLOOK; see 11.11.4 and 17.9.
NOTES:
1) All input co-ordinates should be positive since nodes whose co-ordinates
have not been defined are given negative values in order to identify them.
are recorded as part of the map network so that they may be used, e.g.,
as part of network editing within P1X; see 18.5.2.
10) If the parameter FREEXY= T (see 6.3.1) then all the data records are
given in “free format”, i.e. no fixed columns and w ith each data entry
distinguished from its neighbours by either a blank and/or a comma (but
with the C or S only in column 1). This has several advantages:
♦ ditto the X, Y values which may also contain (any number of)
decimals;
♦ Routes to be used for later analysis, e.g. timed routes from moving car
observer surveys
The second use is (effectively) new in SATURN 9.5. The two are differentiated by
assigning a frequency of zero (columns 7-10 below) to non-bus routes.
Bus routes are “seen” by SATURN as fixed loads to be added to the “fixed”
assignment flows (see 5.5.3.). One bus per hour is equivalent to ‘BUSPCU’ pcus
per hour. Indeed, as note in 5.5.3, it may be possible / convenient to define bus
flows as pre-loaded flows (15.5.5 or vice-versa. For example, if you have a very
large number of low-frequency bus routes it may be simpler to simply aggregate
all their individual flows by link and input them as fixed pre-loaded flows.
Route data records are preceded by a record with 6 in column 1 (or more usually
‘66666’) and terminated by a r ecord with 99999 in columns 1 to 5. A route is
defined on one or more records as follows:
(N.B. A different format applies under the DUTCH Option - see Section 15.20
and/or under the EZBUS Option - see 6.9.2, note (6).)
The “name” of the route (which may be alpha-numeric as opposed to
Cols. 1 - 5
pure numbers); maximum length 4 characters.
‘T’ if the route is two-way and the node order is exactly reversed (in which
Col. 6
case the reverse route need not be coded);
‘R’ if the route is defined in “reverse order”, i.e. starting at the last entry;
‘D’ for a “route deletion record”; see 6.9.6;
‘F’ for a “frequency editing” record; see 6.9.6;
otherwise leave blank; See note (7) in 6.9.2.
Cols. 7 - 10 The route frequency in buses per hour (which could be zero; see 6.9.4.)
The number of nodes through which the route passes (i.e., the number of
Cols. 11 - 15
node entries following); optional - see 6.9.2, note (6).
Cols. 16 - 20 The first node on the route
Up to 13 nodes may be specified per record with the 13th node appearing in
columns 76-80. The list of nodes may be continued on a second, third, fourth, etc
record / row (up to a m aximum of 78 records - see 6.9.2, note (9)) - starting in
column 16 and leaving columns 1-15 blank.
An alternative (and highly recommended) convention for specifying nodes without
using fixed columns (EZBUS) is given in note 6), 6.9.2 while 6.9.5 describes how
to include “timing points”
4) Missing node numbers are allowed in the sense that blanks may appear
in the list of nodes and will be ignored by the program. This is a useful
facility if it is known in advance that new nodes are to be inserted in some
future networks; without blanks file editing by insertion can be a problem.
Strictly speaking, therefore, cols 11-15 (if used) give the position of the
LAST node to be read.
5) If FOZZY is TRUE and co-ordinates have been defined for all nodes,
then if two successive nodes do NOT constitute a link, the program will
“interpolate” the set of nodes which lie nearest to a di rect line between
those nodes (see 15.18). Thus if a route follows a straight line (more or
less) then it is not necessary to define every node along the line, only the
first and l ast nodes. H ence in addition to the first and l ast nodes in a
route it is only essential to define nodes at any “kinks” in the route.
This is a very useful facility and its use is strongly recommended.
However please note that in order to use it you must first have defined
node co-ordinates.
In addition, post 10.9, if the “direct line” method fails and MINDER = T, a
path is generated based on the minimum distance path between the two
unconnected nodes.
Note that the interpolated routes take one-way streets into account. This
means, for example, that a route which is defined to be two-way (T in col.
6) may have a different set of interpolated nodes in the two directions.
6) If EZBUS is TRUE then the nodes through which the route passes may
be defined in a “free format” whereby:
♦ Cols 1-10 remain the same on t he first record (i.e., fixed column
format).
columns 11-15 only one l ine and t herefore 6 nodes would have been
read.
Generally speaking data prepared under the “fixed column” rules will also
be correctly read under free format provided that there are no 5-digit
node numbers which “run into one another”.
7) Column 6 may optionally contain various (normally upper case) letters to
denote various options. Thus if Col 6 = 'T' (for “Two-way”) and the nodes
list is A… Z then a second return route will be added with node list Z… A;
i.e., the reverse direction. If however col 6 = ‘R’ (for “reverse”) then only
one route is assumed but one whose nodes are Z… A.
The R option allows one to code a 2-way route which differs marginally in
the two directions. Thus if the “out” direction is A… IJL…Z and the "in"
direction is Z… LKI… A then one may code it using R as A… IKL… Z;
i.e., the same as the out direction apart from one node.
Similarly a D or an F m ay be us ed to denote “route deletion” or
“frequency editing” respectively; see 10.9.6 for further details.
8) If either EZBUS or FOZZY is TRUE then a complete “dump” of the route
definitions with every node included in fixed columns is obtainable as an
output file ‘network.bus’ if the parameter BUSKER is set to .TRUE.
9) If a single bus routes uses more than 78 r ecords / rows any records
beyond the 78th are ignored unless EZBUS = T. In that case the
program attempts to “compress” the input records by merging together
very short records which contain, e.g., only 1 or 2 nodes into single
records. This is not (yet) possible with EZBUS = F since the data
compression ignores any fixed column conventions.
Equally, under BUSKER, if the “fixed column” output format would require
more than 78 records the data is output in a compressed free format
(with a single space between each node) in order to fit within 78 records.
10) Routes are allowed to execute U-turns at all nodes, whether simulation or
buffer, roundabout or otherwise (provided, of course, that the entry/exit
road is two-way). Such turns are effectively “free turns” in the sense that
they contribute zero delay to the total route travel time. Explicitly banned
turns in the simulation network are, of course, never allowed in routes.
(This feature is commonly used to represent the “terminus” for a bu s
route if the complete round-trip route is coded rather than as two
separate sections.)
11) Routes are also allowed to exit the network from one “stub node” and re-
enter at another. This may happen if the network has been cordoned and
part of the actual route lies outside the coded section. As with U-turns no
extra time or distance is added in these cases.
12) In addition routes are also allowed to exit the network from one node and
re-enter at another (non-adjacent) node by inserting a “wildcard” node
number between the two nodes. The wildcard number is defined by the
&PARAM Namelist parameter KANGA (signifying a “jumper”), default
or the upstream end (i.e., the first coded node) if UPBUS = T. However, if the flow
on the route is zero (which is the natural value for pure timing routes) then timing
always starts at the upstream (first) node and equally ends at the final simulation
node. See 11.7.2.2 for an application within Validation.
Timing points are entered as integer values enclosed in brackets after the node to
which they refer appears. They may only be entered when in “free format mode”,
i.e. EZBUS = T. Thus the node sequence
52 54 55(72) 56
indicates that the time to reach node 55 is 72 seconds. Note that not all nodes
need to have timing points and that it is not valid to associate one with the first
node in a sequence (which, by definition, is zero). Spaces between the node
number and ( or within ( ) are ignored.
Timing points are recorded on t he .ufs files as part of the route definitions and
may be analysed later; see 11.7.2.
In addition a second input value within brackets indicates a “plus-minus range” of
observed timing points. Thus
52 54 55 (72, 16) 56 …
would imply 72 + 16 seconds to reach node 55. If the second figure is omitted it is
taken as zero. The definition of the “range” is deliberately loose since, at the
moment, it is only really used to provide a vertical bar on time v distance plots to
give an indication of the likely spread of route timings.
We note that the edit record must always be input before the full record that it
modifies, independent of whether one is part of a $INCLUDE file and the other is
in the main .dat file, etc. etc.
Furthermore edit records only apply within a single bus company, i.e., set of
66666 records. Thus at the end o f each set of 66666 r ecords the list of
modifications is wiped clean and a new edit list must be c reated with each new
66666 set.
NOTES:
1) Unlike other data input sections the ‘77777’ initialisation record may be
repeated more than once, so that more than one “ set” of counted links
may be def ined. E ach set commences with a ‘ 77777’ record and i s
terminated by a ‘ 99999’ record. The maximum number of such sets is
now (10.7) 120.
2) Each set of 77777 counts is identified within SATURN by consecutive
numbers 1, 2, 3 ... which may be r eferred to within subsequent
programs. Thus a par ticular set of counts might be as sociated with a
particular “screen line” or cordon. Note the same link/turn may not occur
in the same count set although, post 10.7, counts may be r epeated in
different count sets; multiple values must be handled using MCCS.
3) In addition an i nformative title may optionally be included on t he 77777
record following the 7's giving, e.g., a screen line name to be associated
with the count set to follow.
4) Turn volumes as specified by nodes A-B-C may only be defined for turns
within the simulation network; links specified by A-B may exist in either
the simulation or buffer networks.
5) Volumes on centroid connectors may not be defined.
6) Counts on simulation links are assumed to refer to the “actual mid-link”
flows - see Section 15.16.
7) It is generally assumed that any counts input here refer to TOTAL vehicle
flows, although in certain circumstances elsewhere in the Suite flows for
a particular class of vehicles (e.g., cars, HGV’s, etc.) are required; see,
for example, Section 13.4. The MCCS different set of counts might
therefore be used to define flows by vehicle class. A lternatively the
program-specific flows may need to be input separately to that particular
program.
8) In any case the counts should always be given in units of pcus/hr. Or, at
any rate, the same units as all the other flow components such as trip
matrices, saturation flows, etc., which, if desired, could be i n
vehicles/hour. See 15.17.
9) Strictly speaking counts are stored as “reals” and may therefore be input
as reals (e.g., 654.0 instead of 654) although, generally, they are input as
integers on the assumption that it is difficult to define a flow to a precision
of better than 1 pcu/hr. See 2.8.3
10) The count field MAY be left blank (or set to zero) if the count records are
being used solely to define a s et of links for later analysis. Z ero-count
records are ignored with certain applications, e.g., a PIJA analysis for
input to SATME2.
11) MCCS is specified under &PARAM (6.3.2) and by default is 1. Values of
MCCS>1 might be used to represent, e.g., multiple counts on the same
links or counts for different user or vehicle classes.
12) Links which cannot be i dentified for whatever reason (e.g., node no t
identified or a non-existent link between two correct nodes) by default
generate a Semi-Fatal Error 437. However this can be downgraded to a
Serious warning (269) if ERRYES(437) = F (see 2.9); this allows the file
to proceed to the assignment stage. Versions10.7 and later only.
13) If a par ameter FREE77 is set to .TRUE. under &PARAM the counts in
columns 16+ (31+ if DUTCH = T) are read as “free format” (e.g., CSV)
rather than in fixed columns.
14) Finally we note that $INCLUDE files (see 15.30) may be used to define
the 77777 dat a rather than explicitly including the data within the main
network .dat file and that there are obvious advantages to doing it this
way. In this case the data in each $INCLUDE file must follow the
formatting conventions defined above.
15) If you wish to input multiple $INCLUDE count files then they may be
defined in order within a single 77777/99999 pair of records. However it
may be more “natural” to define each file within a separate 77777/99999
set for ease of identification later on (e.g., in SATPIJA; see notes 2 and 3
and 13.2.1).
6.11 Generalised Costs and/or Matrix Weights for Multiple User Classes:
the ‘88888’ Records
This data section, which is mandatory for NOMADS>1, defines for each user
class:
♦ Its generalised costs (see 7.3.2.2), i.e. the criteria which determines its
“minimum cost” paths in the assignment stage;
NOTES:
1) From SATURN 9.4 the 88888 section is mandatory under multiple user
classes, i.e. NOMADS>1. Previously it was optional but it does not seem
to make much sense to have multiple user classes if they all share the
same trip matrix and cost definitions.
2) This data section is not normally required in the “standard” case of a
single user class UNLESS some of the extra (KNOBS) link data are used
to define costs. Parameters PPM and PPK fully specify generalised cost.
3) For further details on all the above inputs please see Section 7.3.
Annotated examples are given in Section 6.14 below.
4) The following default values apply to all user classes not explicitly defined
on these records:
♦ Vehicle class 1;
♦ Factored by 1.00;
♦ Pence per minute equal to PPM as defined under the &PARAM input
or by default;
Semi-fatal errors and NAFF files were first included in SATURN 10.1.
There are several methods for examining the full set of errors detected by
SATNET in a particular network. Firstly a list appears near the end of the .LPT file;
secondly, a list may be displayed by P1X under information. Alternatively a full list
of all error numbers used appears in the auxiliary file SATTIT.DAT as well as
Appendix L.
NFTAX The position of the TAX data on the link records. (0, 1, 2…)
Default – 0
The position of the RBKS data on the link records. (0, 1, 2…); See
NFRBKS
8.7.2.
Default – 0
NFCI The position of the capacity index data on the link records. (0, 1, 2…)
Default – 0
The position of FLARE-X (flared PCUs for X-turns) on the link records
NFLX
(0, 1, 2 ...). N.B. Not fully operational yet.
Default – 0
The position of FLARE-F (flared PCUs for nearside turns) on the link
NFLF
records (0, 1, 2 ...). N.B. Not fully operational yet.
Default – 0
The position of APRESV on the link records (0, 1, 2 ...). N.B. Not fully
NFAPV
operational yet.
Default – 0
NFGAP The position of the GAP data on the turn records. (0 or 1)
Default – 0
The number and order of the data items per link are determined by the numerical
values of NFTAX etc. Thus if NFTAX = 1, NFCI = 2 and all other link pointers are
zero this implies that the first data item is a TAX value and t he second is a
capacity index (CI); RBKS etc. values are not used.
Since the data is in free format it may appear in any columns beyond column 10
(although the use of fixed columns in widths of either 5 o r 10 i s highly
recommended) and may be real or integer (with or without a decimal). (Although
indices should logically be integers.) Multiple entries must be separated by at
least one blank column.
Note that all the above link-specific values may also be de fined: (a) either as
global values via &PARAM or (b) link-specific values using the second link records
(6.4.14).
N.B If DUTCH = T then the A-node and B-node entries occupy 10 columns, not 5,
as is standard; see 15.20. The data items start in column 21.
As above the number and order of the data items per link are determined by the
numerical values of NFTAX etc although at the moment only turn-specific GAP
values may be set in this way so that the only relevant parameter is NFGAP which
can only take the value 1 (unless of course it is zero and no t urn GAP values are
on the X-file).
Note that turn-specific GAP values only apply to traffic signals and priority
junctions, not to roundabouts where GAP’s are defined at the node level only.
Since the data is in free format it may appear in any columns (although the use of
fixed columns in widths of either 5 or 10 is highly recommended) and may be real
or integer (with or without a decimal).
N.B A s with link records above, if DUTCH = T then the A-, B- and C-nodes
occupy 10 columns each, not 5, as is standard; see 15.20. The data items start in
column 31.
NOMADS=3,
KNOBS=1, &END
11111
1 3 3 2 63
58 3 0 140 1870 1 1 3900 1 3
2 2 9 82 3400 1 2 0 0 0
26 3 17 150 3000F 1 2 1500 3 3
24 7 6 58 2 58 26 26 58
36 7 6 2 26 2 58 26 58
2 3 1
1 2 9 82 2500 1 2 1600X 2 2
3 3 27 248 2400 1 2 3000 2 3
29 1 20 130 900G 1 1 1600G 1 1
(Remainder of simulation network data)
99999 * Terminates simulation link data
22222 * Commences simulation C.C data
1 59 45
2 60 46
3 61 62
4 63 49 49 63
(Remainder of simulation centroid connector data)
99999
33333
3 2 28 56 2500 1 100 3.1
1978.00 * Extra (KNOB) data
29 2 21 42 1250 2 90
1983.00 * field, presumably
2 3 28 56 3750 2 100 3.1
1983.00 * some sort of date
C 2 59
9999.00 * with a default of
C 3 60
9999.00 * 9999 for centroid
C 4 61
9999.00 * connectors
(Remainder of the buffer network/link data)
99999
44444 * Banned links/turns
4 5 -1 0 30 * Link banned to UC 1, open to UC 2,
* 30 seconds penalty to UC 3
34 6 0 -2 * Open to UC 1 but banned to 2 and 3.
31 32 0 -1 0 * Banned to UC 2 only
46 51 50 10 -2 * 10 second penalty to UC 1, banned
* turn for classes 2 and 3.
16 17 18 -2 * Banned turn for all UC - therefore
* presumably a bus-only turn.
99999
55555 * Co-ordinates
1 17 53
2 17 62 * Node 2 (either simulation or buffer)
* co-ordinates
C 24 36 48 * Zone 24 co-ordinates
C 20 39 29
(Remainder of co-ordinates)
99999
66666
400 11 7 66 12 13 14 15 16 17
401 3 7 18 45 53 52 31 32 33
500 7 9 18 17 16 15 14 41 13 12 66
600 8 9 66 12 13 14 15 16 17 18 19
601 8 10 25 26 24 23 22 21 20 19 18 17
(Remainder of bus route data)
99999
77777 * Link and turn observed flows
6.15 FIFO, TOPUP and DOUBLE – Options for Repeated Data Input
It is possible for various inputs to appear more than once, either within the same
data section or, alternatively, within two different data sections. In such cases it is
necessary to decide which data entry to accept as definitive – or whether the
repetition should lead to an er ror. Three logical parameters, FIFO, TOPUP and
DOUBLE, control the decision in different circumstances.
the bother of explicitly adding an extra data line under 11111 they must definitely
want that data to be used.
It is strongly recommended that all situations where FIFO is applied (or not
applied as in the previous two cases) are checked by the user and the redundant
data removed. Check your .lpn for occurrences of FIFO.
6.15.2 TOPUP
The parameter TOPUP allows the user to define simulation network data file in
terms of changes to a basic network in conjunction with the use of $Include files
within the 11111 (simulation node) and 22222 (simulation centroid connectors)
data segments (only).
N.B. After its first introduction in 10.8.16 the functionality of TOPUP was extended
in 10.9.15 by defining an auxiliary parameter DOUBLE = T, whose use is now
strongly recommended. However, for reasons of historical order, the description of
TOPUP that follows assumes DOUBLE = F. If you do wish to use the
recommended functionality of TOPUP please read Section 6.15.3 in conjunction
with 6.15.2.
Thus, if a bas e network has been s et up i n which all (or possibly most) of the
11111 data is held in one or more $Include files and the user wishes to create an
alternative network which differs only with respect to minor changes to one or two
simulation nodes (e.g., by changing the signal settings) then they proceed as
follows:
(i) Set TOPUP = T within &PARAM;
(ii) Include the full data records for the modified simulation nodes at the top of
the 11111 data records in the network .dat file, i.e., before any $INCLUDE
records appear (but if DOUBLE = T, see below, either the “main” 11111
data records or the $INCLUDE file may come first);
(iii) Reference the complete base network data coding by one or more
$INCLUDE records which follows the modified data.
If the nodes included under (ii) are also included within the subsequent
($INCLUDE) file(s) then the node data records under (iii) are ignored and those in
the “main” .dat file are accepted. I.e., it is effectively a case of LIFO discipline –
Last In, First Out.
Note that if TOPUP = F (its default) then the fact that certain nodes are coded
twice would be treated as a semi-fatal error. The advantage of TOPUP = T is that
the user does not need to explicitly delete the old node r ecords and, if the
$Include file is being continually updated, those updates (apart from the
duplicated nodes) will be automatically taken on board in the changed network(s).
Note that the “correct” node coding must always appear at the top of the 11111
data segment (i.e., before $INCLUDE) and the ignored coding can only be within
a $INCLUDE file (but not if DOUBLE = T – see below). If data for the same node
appears twice in the same file it is a semi-fatal error.
As a variation on the above theme it is possible to “delete” a simulation node in a
later data set by including a single node record in an ear lier data set which
5109341 / Mar 13 6-76
11_2_05_Section 6.docx
SATURN MANUAL (V11.2)
6.15.3 DOUBLE
A more forgiving version of TOPUP is provided by setting a subsidiary parameter
DOUBLE = T in &PARAM. If both TOPUP = T and DOUBLE = T then any
distinction between data in the main 11111 segment and in $INCLUDE files is
dropped and duplicated simulation node data may appear in either the main .dat
file or in one or more $INCLUDE files independent of the order. The first version of
the node dat a encountered always becomes the accepted version and all later
versions are skipped over.
In addition with DOUBLE = T it is not necessary to have any “proper” node data
within the main 11111 s egment; it may simply reference a string of $INCLUDE
files. For example, the following sequence would be an acceptable – and probably
very sensible – method for progressively defining “scenarios”:
11111
$INCLUDE do_something.dat
$INCLUDE do_minimum.dat
$INCLUDE base_year.dat
99999
Thus the do minimum .dat file would over-write certain data defined in the base
year and do -something could in turn over-write data coded in either the do
minimum or base year scenarios.
A (Semi) Fatal Error still results if data for the same node appears more than once
in the same data segment (main or $INCLUDE). Equally semi-fatal errors result if
a negative (delete this node) number appears more than once or if the negative
node number appears after the node data which it is intended to delete.
DOUBLE was first introduced in SATURN 10.9.15 with a default value of .FALSE.,
largely for historical compatibility, but its default was changed to the
recommended value of .TRUE. in the release version 10.9.22.
Mini-Contents Page
INTRODUCTION
The assignment procedure accepts as input a trip matrix and a net work and
assigns those trips to routes through the network based on the current cost-flow
relationships, either user-input or derived from the simulation. Its essential
outputs are flows per link, including turns in the simulation network.
The same procedures are included within the stand-alone assignment program
SATEASY as well as within the combination program SATALL. The
documentation given here applies to both (apart from Section 7.12). E xtra
features specific to SATALL are documented in Section 9.
Historically SATEASY replaced the former assignment program SATASS,
although initially its main function was to add an elastic assignment capability
whereas SATASS worked only with a “ fixed” trip matrix. C ertain facilities of
SATASS were transferred elsewhere, in particular PIJA analysis (now done by
SATPIJA, see 13.1.2), and the comparison of counts and assigned flows which is
available both within P1X/SATLOOK (11.7.1, 11.11.13) and SATDB (15.6).
Currently all functions of SATEASY are embedded within SATALL so, except for
very specific applications, the use of SATALL is recommended for assignment
purposes, even for buffer-only networks.
Sections 7.1 through 7.3 assume fixed trip matrices independent of the resulting
travel costs. Sections 7.4 through 7.11 extend the discussion to include elastic or
variable demand models where both route choice and trip matrices are modelled.
A further extension to "quasi-dynamic" assignment over multiple time periods is
described in Section 17.
Users who would like to know more about the details of the theory underpinning
the assignment algorithms in SATURN should consult Dirck Van Vliet for
additional material.
Note that throughout this section we assume that the link cost-flow curves c a (V a )
are “fixed”, as would occur with buffer networks or on a particular assignment
iteration within the assignment simulation loop. The precise mathematical form of
the cost-flow curves used in SATURN are described in Section 5.4. The ex tra
complications which arise from “variable” cost-flow curves are dealt with in Section
9.
Z = ∑ ∫ C ( v ) dv
a
a
0
Equation 7.2
Va ( n +1) =
(1 − λ )Va( n ) + λ Fa( n )
where λ (0 < λ < 1) is chosen so that the “new” flows V a (n+1) minimise
the objective function. (See 7.1.3 below for the precise equation used
to calculate λ.)
5. Return to step (2) unless some convergence criterion is satisfied; for
example the maximum number of loops as specified by NITA has
been exceeded (see 7.1.5).
What distinguishes equilibrium assignment from other similar, more empirical
capacity-restrained techniques is the choice of “optimal” proportions based on the
concept of minimising an objective function.
In effect at each stage of the algorithm we calculate a new set of routes for all ij
and shift a certain proportion λ of all previously assigned trips onto these routes.
Thus the averaging in equation 7.2 may be viewed either at the level of individual
ij path flows or at the aggregate link-flow level. Hence after, say, 5 iterations we
will have up to 5 different routes for each ij pair (allowing for the same route to be
chosen more than once) with certain fixed proportions of trips assigned to each.
See the papers in Appendix H for a more path-based description of Frank-Wolfe.
At the conclusion of the algorithm the final solution is made up o f a weighted
average of each of the n individual all-or-nothing solutions / sets of path flows
where the weight assigned to each solution/set is calculated iteratively according
to the following equation:
αa λ
= j i= j +1 ∏ n (1 − λ i ) (7.2b)
Thus 60% of all trips use the routes identified in iteration 1, 22.01% follow those
from iteration 2, etc. etc.
Wardrop Equilibrium may also be achieved using slightly different algorithms; see,
for example, ROSIE in 7.1.3, Partan in 7.11.7 and MSA in 7.5.8 as well as by
either path-based algorithms or origin-based assignment (See Section 21).
C a = C A (Σ w b V b ) + d a
where the links b ε A all share lanes with link a and are said to constitute a “river”.
The additive term d a distinguishes between the different turning movements within
the river.
In the case of simulation turns, weights are related to the “difficulty” in making a
turn; e.g., if an unopposed straight-ahead movement and a heavily opposed left-
turner share the same lane then the left-turning traffic would be assigned a much
heavier weight than the straight-aheads.
With non-separable cost-flow relationships, as introduced under ROSIE, the
Wardrop Equilibrium problem can no l onger be r epresented as a m inimisation
problem, since the objective function (7.1) may no l onger be uni quely defined
(due, technically, to the presence of “off-diagonal” elements in the matrix of cost-
flow partial derivatives). It may, however, be considered in the more general guise
of a Variational Inequality as proposed independently by Mike Smith of the
University of York and Stella Dafermos of Rutgers University around 1980.
However, it turns out (see Van Vliet, D. (1987), The Frank-Wolfe Algorithm for
Equilibrium Traffic Assignment Viewed as a Variational Inequality. In: Transportation
Research 21B, pp 87-89) that the Frank-Wolfe algorithm may equally well be
interpreted in the framework of a Variational Inequality with the result that all the
steps described in 7.1.2 may be retained with only a marginally different step 3)
where a lambda value is calculated to decide how much traffic is allocated to the
latest route.
Thus, under ROSIE, we still calculate an “optimum” value of lambda but
“optimum” in a c ertain Variational Inequalities sense, not minimisation. In both
cases we solve for λ via the same equation (9.4):
∑ c ( λ ){V
a a − Fa } =
0
The only difference between Frank-Wolfe and ROSIE is that in the former case
c a () is a separable function of V a whereas in the latter it is non-separable as
defined above. Indeed there are very strong theoretical parallels between ROSIE
and AUTOK as discussed in Section 9.3.2.
Empirically this modified algorithm is observed to converge to a Wardrop
Equilibrium at virtually the same rate as the more theoretically correct version.
What is “sacrificed” by using ROSIE is the ability to calculate certain convergence
measures such as epsilon which rely upon the minimisation framework; however
other measures such as delta may still be evaluated.
The (it is devoutly hoped!) advantage of the solution found with ROSIE = T is that,
by incorporating part of the interaction terms in the simulation of delays (see
Section 9.1), i.e., the contribution of lane sharing, directly within the assignment it
will improve the overall rate of convergence of the assignment/simulation loops.
Preliminary tests have been encouraging and, in certain – but not all! - networks,
it can make the difference between convergence and non-convergence.
On the other hand setting ROSIE = T is not a universal cure-all for all problems of
assignment convergence and indeed in most networks its convergence properties
are no better or even worse than setting ROSIE = F. Thus our advice is to set
ROSIE = T only as an experiment if there appear to be convergence problems
otherwise and never set it T initially or by default.
Alternative Applications
In principle, the basic ideas of ROSIE, i.e., assigning different weights to different
streams of traffic in order to calculate times, could be appl ied in different
situations. For example, on motorway links one (user/vehicle) class of traffic could
be assigned a different “weight” from other (user/vehicle) classes in calculating the
total flow as used to determine the travel time from speed-flow curves. These
weights could be additional to any user/vehicle class PCU factor and could be
either greater than or less than 1.0. This facility might then be used to define
variable PCU-factors by link or link-type so that, for example, HGVs might be
assigned a (presumably) higher PCU factors for links with an incline.
Alternatively, and al so on m otorways, traffic entering from a slip road might be
assigned a gr eater PCU factor on t he first link downstream as a w ay of
representing a greater ‘impedence’ associated with (initally slower moving) joining
traffic.
δ=
∑T (c pij pij − cij∗ )
∑T c ∗
pij ij
The “Delta Function”, along with its disadvantages, has been described above. A
second method of monitoring convergence is to consider the objective function
directly which, as mentioned above, the Frank-Wolfe algorithm seeks to minimise.
It may be shown that a lower bound to the ultimate objective function, Z*, can be
calculated at the n-th iteration by the formula
Equation 7.4
Z (n) ∑ Tpij (C pij − Cij* )
Z lb (n) =− (a)
At convergence Z and Z lb meet at the minimum value, Z*. Figure 7.1 illustrates
the “typical” behaviour of Z and Z lb as a function of the iteration number n.
Note that Z lb does not necessarily increase on every iteration, e.g. on iteration 5,
so that a better lower bound on Z* may be obtained by taking the maximum lower
bound achieved to date; i.e., set:
= =
Z lbmax (n) max ( Zlb (i), i 1, n ) (b)
41000
Z
39000
37000
Zlb
35000
0 1 2 3 4 5
iterations
We may now define the “uncertainty” in the objective function by a par ameter
epsilon defined by:
Equation 7.5
ε (n) ( Z (n) − Z lbmax (n)) Z (n)
=
Note that the numerator in epsilon is effectively the same as that used to define
the delta function, eqn. (7.3): both are measures of the differences in current and
minimum total vehicle costs (compare the second term in eqn. 7.4(b) and the
numerator in eqn (7.3)). They also differ in that delta is “normalised” by dividing by
the total vehicle cost and epsilon, by the current objective function (which, as an
integral of cost vrs. flow, is an underestimate of total flow times cost).
In practice epsilon values are broadly similar to delta but have one great
advantage over delta in that they are guaranteed non-increasing (i.e., they can
only decrease / stay the same from one iteration to the next). This, therefore,
makes epsilon far more attractive convergence parameter than delta and is the
( Z (n) − Z (n − 1) ) ε (n) =
F ( n) = ∆Z (n) ε (n)
Note that all of the above convergence measures may only be calculated AFTER
the next iteration in the Frank-Wolfe sequence; i.e., after the all-or-nothing flows
for a given set of V a (n) are calculated. The iterative loops terminate after the n-th
iteration if any of the following conditions are satisfied
(i) n ≥ NITA
(1 − 1 n)Va( n ) + Fa( n ) n
Va( n +1) =
advised to set a large value of NITA, the number of loops in the MSA algorithm, in
order to assure a reasonable level of convergence; for example, values of 20 or
30 would not be unr easonable (unless cpu time is a c onstraint). S ee 7.2.5 for
further information
C ′ = x.C
where C is the current link cost and C’ its randomised value. Hence we are talking
about the distribution of a random variable x whose “mean” value is near 1.0 as
opposed to the actual distribution of costs on a specific link. Hence x is unitless.
via the Namelist input parameters (under &PARAM in .dat files) KDF(); thus
KDF(2) = 2 indicates that user class 2 uses the second input CDF.
Thus you may define one user class with a very small spread in perceived costs
and another with a large spread.
X ( n +=
1)
( A + BX ( n ) ) mod C
where A, B and C are extremely large numbers. (Mod C implies you divide A +
B*X by C and take the remainder.) Thus by choosing a certain value for X(0) the
user can guarantee reproducing exactly the same random numbers at any stage.
KORN is therefore just such a seed value X(0) so that running the assignment
twice with identical values of KORN gives identical results. Change KORN and
you obtain different flows, although as NITA is increased two different runs should
approach one another “statistically”.
However there are complications (aren't there always?). Thus a highly desirable
property of an assignment is the ability to reproduce the routes generated by the
assignment at a later stage (see 15.23 for a discussion of these merits), in which
case it is essential to be able to reproduce the random numbers generated at
each iteration of the assignment. For this reason a new sequence of random
numbers is initiated with each different origin-based tree-building operation using
a seed value ISEED defined by:
ISEED = KORN+NOMAD+10*NASS+100*NITER+3000*IORIG
Thus P1X, for example, can build exactly the same O-D routes as were used in
SATEASY or SATALL.
( )
C ( n ) = ∑ Va( n ) ca Va( n )
a
effects and t o use an eq uilibrium model; various studies have shown that the
differences in modelled flows between UE and SUE at high flows are relatively
small (compared, e.g., to the inherent modelling errors).
On the other hand for “intermediate” levels of congestion SUE becomes
preferable to UE since the congestion effects are not sufficient to cause a realistic
spread of drivers between competing routes. (And the same argument applies to
the rare cases of very lightly congested networks.)
The question therefore is how to distinguish between intermediate and high levels
of congestion. One useful measure of congestion is the “epsilon-2” parameter
calculated by the assignment which is the ratio of the excess travel costs due to
congestion (total vehicle-hours at congestion less total vehicle hours at free flow)
relative to the total vehicle costs under free flow conditions. As a rule of thumb if
epsilon-2 is less than 25% use SUE; if over 25% use Wardrop or UE. In case of
doubt two or more methods should be tested in order to determine the sensitivity
of the results to the assumptions made.
This is, however, only a rule of thumb and there are other factors which influence
the choice of method. Thus, a major disadvantage of SUE is that the results are
statistically uncertain, which is one reason why many modellers will use Wardrop
Equilibrium even in relatively lightly congested networks. In fact, one should not
really speak of “rules” at all - “engineering judgement” is what counts!
* See Section 5.8 for a description of the distinction between user and vehicle classes.
At equilibrium all routes used by a particular user class are minimum cost
routes as defined by that user class while all other (permitted) routes have
equal or greater cost.
Note that the term “permitted” above allows different sets of banned links or turns
by user class, while the stochastic definition allows for variations in perceived cost
WITHIN each user class. The choice between the two options is controlled by the
parameter SUZIE as with normal single-class assignment. A more complete
explanation of MUC assignment theory is given in Van Vliet et al (1986); see
Appendix C for a full listing (.PDF version only).
See Section 5.8 for a des cription of the distinction between user and vehicle
classes.
For a matrix with three explicitly stacked levels the data might appear as:
88888
In general we would strongly recommend that if any of the user class sub-matrices
are likely to be independently manipulated at some stage, e.g., through elastic
assignment, ME2 matrix estimation, cordoning, etc., etc., then it is best to define
them explicitly as stacked levels without any factoring from the beginning,
otherwise problems may be created later on.
depend, via the levels of congestion, on the input trip matrix. We can therefore
think of the assignment as a network “supply” or “performance” model and write:
Equation 7.8
C = s (T )
In such a joint modelling approach we require that the demand and supply
processes are not only internally consistent but are also consistent between
themselves such that, using * to denote joint equilibrium.
Equation 7.9
T * = d (c* ) (a)
and
c* = s (T * ) (b)
In other words, given a set of network travel costs c*, the demand model produces
a set of trip matrix (road) demands T* and, if we assign T* to the road network, the
resulting o-d travel costs are again c*. The demand and s upply models are
therefore in “equilibrium”.
The general form of the demand and supply models is as sketched in Figure 7.2
indicating that demand decreases as travel costs increase and t hat travel costs
increase (congestion) as demand increases. The equilibrium we seek is at the
intersection of the two curves.
Figure 7.2 - Supply/Demand Equilibrium
Figure 7.2 is of course highly simplified and i n two dimensions; in “real” models
both costs and trips are n z xn z matrices (with even further disaggregation possible
by, e.g. user class or time period). However the general principle of an
equilibrium intersection point still holds.
Note also in Figure 7.2 that a “fixed” trip matrix would correspond to a demand
curve which would simply be a vertical line. Equally the nearer the demand curve
(in this diagram) is to the horizontal the more sensitive are the demands to the
costs (and, as we shall see below, the more difficult it is likely to be to solve for the
joint equilibrium).
(Certain people may prefer to have costs along the X-axis and trips along the Y-
axis and, indeed, when considering demand curves on their own, this is probably
more natural. The concept of equilibrium holds either way; take your pick!)
In addition, provided we specify that the assignment or route choice must satisfy
the Wardrop Equilibrium conditions (7.1.1), the resulting model may be thought of
as being in “double equilibrium” such that both route and w ider (e.g. whether to
travel by road) choices are in equilibrium with the resulting road costs.
♦ those where the number of trips by road for a specific ij movement T ij only
depends on costs by road for that ij pair; and
where d-1(T) represents the “inverse” demand curve; i.e. if T = d(c) then c = d-
1
(T)*.
The first term in (7.10) is equivalent to the standard Wardrop Equilibrium objective
function (7.1); the second term represents the negative of the “area” underneath
the demand curve from 0 up to T. Both are illustrated individually in Figures 7.3a
and 7.3b respectively and, as they would appear at the equilibrium, in Figure 7.4.
Figure 7.3 (a) - The supply-side objective function
Note that in Figure 7.4 the area under the supply curve (represented by the
horizontal hatching) is positive while that under the inverse demand curve (the
vertical hatching) is negative. H ence at equilibrium the supply contribution is
exactly “cancelled out” by part of the demand contribution, leaving a “net” negative
contribution as illustrated in Figure 7.5.
-1
* Note that in our diagrams there is no difference between the curves d(c) and d (T); they differ only
in terms of which variable or axis is thought of as being the “independent” variable.
Thus the problem of minimising the objective function (7.10) may be i nterpreted
geometrically as making the negative area in Figure 7.5 as large - in absolute
terms - as possible. Which, if you think about it long enough, implies taking T as
the point of intersection in Figure 7.5. (The “negative” area keeps increasing as
we go from 0 up to the point of intersection but if we go beyond the intersection
point the negative contribution from the demand curve is now below the positive
contribution from the supply curve - a bad thing from the point of view of
minimisation.)
A further, somewhat technical, implication of having both positive and negative
components in the objective function is that the final optimum value may turn out
to be either positive or negative or even near zero. We need to bear this in mind
when considering stopping criterion based on relative changes in the objective
function such as, see 7.1.5.
Figure 7.4 - The combined supply (horizontal lines) and demand (vertical lines)
objective functions at equilibrium
We could equally start the iterative process with an assumed trip matrix T(1) such
that the first model carried out is supply (assignment), not demand.
However we start, the process may be terminated when (and if) the trip matrices
(or cost matrices, link flows, etc) are sufficiently close on t wo successive
iterations.
Diagrammatically, and in one dimension, the procedure is as illustrated in Figure
7.6 where, starting with assumed costs c(1) and the corresponding demand T(1)
represented at point A, step (2) above (supply) is represented by the vertical line
from A to B and s tep (1) (demand) by the horizontal line from B to C. H ere
successive applications of the supply and dem and sub-models take us through
successive points A, B, C, D, E, which spiral in towards the ultimate point of
intersection - equilibrium.
Figure 7.6 - A (convergent) cobweb set of demand/supply iterations
However convergence need not occur and the “cobweb” may spiral out in a non-
convergent fashion just as easily as inwards, as illustrated in Figure 7.7.
Figure 7.7 - A non-convergent cobweb set of demand/supply iterations
In fact it may be shown that (in one dimension) the cobweb converges (locally at
least) as long as:
∂s ∂d −1
−
∂T ∂T
and diverges otherwise. (Technically these are Lifschitz conditions.)
Convergence occurs, for example, if costs are relatively insensitive to the flows
( ∂ s/ ∂ T → 0), as would occur in an unc ongested network, or if the demand is
relatively insensitive to the costs (- ∂ d-1/ ∂ T>>0), as would occur if the trip matrix
is fixed or nearly fixed and t he demand curves are near to the vertical in our
diagrams.
In summary, cobweb techniques are relatively easy to apply but unreliable in
terms of their convergence properties. In the next section we consider some
simple modifications to the “pure” iterative cobweb.
(1 − λ )T ( n ) + λ d (c ( n ) )
T ( n +1) =
The averaging parameter λ is, within an optimisation framework, chosen such that
the objective function (7.10) is minimised. This procedure is both efficient and
convergent, independent of whether the condition on derivatives is satisfied.
Thus the demand model generates a trip matrix (or matrices) based – in part – on
the cost matrix (or matrices) output by the assignment while the assignment or
supply model uses the matrix/matrices input from the demand model. (N.B. For
generality we refer here to cost matrices as output from the assignment to allow
for the possibility that, as discussed in Section 7.8.6, the demand model may
require several distinct matrices of, e.g., time and distance rather than just a
single minimum cost O-D matrix. Similarly we talk about trip matrices to allow for,
e.g., separate public transport assignment)
The implied iterative process is very similar to other processes within SATURN, in
particular the loop between the assignment and simulation sub-modules as
illustrated in Fig 9.1. To avoid confusion as to which set of iterations we are talking
about we shall refer to supply-demand “cycles” as opposed to assignment-
simulation “loops” and Frank-Wolfe “iterations” within an assignment.
The basic concept of an equilibrium between supply and dem and models as
described in 7.4.1 still holds in Fig 7.8: the demand trip matrices generated by the
cost matrices must, when assigned, generate the identical cost matrices. However
the methods to achieve that equilibrium may need to be more empirical than the
algorithms used within SATURN, primarily since an equivalent objective function
formulation no l onger applies. (But see reference 13 i n Appendix C, Bates et al
(1999), for a discussion of situations where objective functions may be extended
to include more complex demand formulations.)
7.4.5.2 External VDM Cobweb Algorithms
Within Fig. 7.8 there are clearly options as to how the trip matrices passed from
the demand model to the assignment model are created. Thus it is possible for
criteria for the assignment as the overall convergence improves. (The same basic
idea is applied to the simulation-assignment loops within SATALL by using the
AUTONA option to set variable values of NITA dependent upon the overall gap
value; see Section 9.5.4).
Thus parameters such as MASL, ISTOP etc. etc. which control the overall
assignment-simulation convergence of a run of SATALL may need to be reset by
the cobweb “driver” at each repeated run of SATURN, as indeed may parameters
such as NITA which control the convergence of the assignment. There may be a
good case here for using KONSTP = 1 and setting a critical Gap value in STPGAP
as determined by the latest gap value achieved by the demand model.
The decision as to which parameters and how to select ”optimum” values is up to
the user, being essentially external to SATURN. In terms of a “mechanism” for
inputting those values into a new run of SATURN there are several possibilities.
For example, they could defined within a $I NCLUDE file within &PARAM which
the controlling program could overwrite. Equally they could be set in a control file
for SATALL.
In a similar vein it may be possible to simplify each intermediate run of SATALL
by excluding certain options that are only required once the final trip matrix has
been obtained. For example, the SAVEIT option may only be nec essary on t he
final run (unless – see below – you are using WSTART).
Clearly best practice will only become clearer after considerable experimentation.
One example of such experimentation is the CASSINI program described in
15.54.
7.4.5.4 Using UPDATE and WSTART with VDM
One should also note that making the maximum use of facilities such as update
and warm starts at every re-run of a SATURN assignment is strongly
recommended in order to reduce run times, particularly when changes in the trip
matrix from one external cycle to the next are relatively small. See sections 22.5.5
and 22.6.
However we strongly advise that warm starts should only be under taken in
conjunction with OBA due to the extra overheads incurred by Frank-Wolfe to carry
out the extra SAVEIT assignment at the end of one c ycle and t he initial re-
assignment at the start of the next assignment cycle.
copied directly to the output trip matrix file. Similar considerations may also apply
to inter-zonal cells which, for one reason or another, are unconnected; see 7.5.7.
Unlike the normal fixed trip matrix procedures, elastic assignment does not (for
various technical reasons) record any information on t he precise routes used to
relate V a to T ij as normally saved if SAVEIT = T.
However, in the case of VDM/elastic assignments, the routes may be e stimated
by carrying out a final fixed trip matrix assignment using standard algorithms and
recording the routes used via a . ufc file (see 15.23). I t is these routes and t he
output trip matrix T ij which will be us ed in any post-assignment analyses, e.g.
select link analysis (11.8.1).
We may further note, as discussed further in 15.23, that the routes found in this
manner will not be 10 0% identical to those implied by the original elastic
assignment, nor equally will the flows produced in the final assignment be
identical to V a (although a very good approximation). It is therefore the V a
obtained from the elastic assignment which are retained as the “correct” link flows.
Finally we note, as also mentioned in 15.23, that the number of assignment
iterations used to calculate the final routes, strictly speaking NITA_S, may be
different from the number used in the assignments proper, NITA. T hus, and i n
particular if you have set a relatively small value of NITA in order to reduce overall
cpu time, a be tter estimate of the final routes should be obt ained by defining
NITA_S > NITA.
This demand form corresponds most closely with a modal split model whereby ij
trips are selecting either road or public transport modes but the destination is
T=
ij (
TijA exp(− β cij ) exp(− β cij ) + exp(− β cijPT ) ) (b)
where T ij A represents the total number of trips from i to j choosing between car
travel - cost c ij - and (fixed) public transport - cost c ij PT.
Slightly different algorithmic approaches are adopted within SATURN for
incremental and shared elastic models although the underlying basic principles
are the same. The two forms of demand models have different ranges of MCGILL
values: 1 - 4 for incremental, 10 and above for shared.
It must also be stressed that the choice of incremental vrs shared is very often a
question of convenience rather than implying fundamental differences. For
example the same logit model may be ex pressed as either an incremental or a
share model - the choice would be based on which method is most compatible
with the form of data provided; a method for converting between the two is
described in section 7.8.2.
On the other hand ot her forms of SDM models such as the constant elasticity
model - equation (7.30b) - are more difficult to interpret as share models since
there is no natural upper limit on the total number of trips; T ij goes to infinity as
costs go towards zero.
FURTHER PROPERTIES
Other functional forms and/or interpretations are of course possible; see Section
7.7.1. In particular, see 7.5.5, it is possible to subdivide the cells in the matrix into
those that obey the elastic demand equation and those that are fixed independent
of the cost. The latter cells are termed either “inelastic” or “frozen”.
As mentioned in 7.4 the problem in elastic equilibrium assignment is to determine
both a self-consistent set of route choices and demand choices.
Elastic assignment is of most use in the assessment of future year networks
where, say, a simple extrapolation of the current trip matrix leads to an extremely
congested network with extremely high travel costs. Elastic assignment provides
a method for keeping the trip matrix - the demand - within behaviourally realistic
limits.
The elastic assignment algorithms within SATURN were developed as a j oint
project between the Institute for Transport Studies and WS Atkins, funded by DTp
and administered by TRL. T he reports produced for this study provide a
comprehensive review of theory, algorithms and applications; copies are available
from DVV.
For each origin-destination pair ij the maximum number of trips that might possibly
use the road network, T ij max, is calculated (see 7.5.3.1). These trips may then
choose either to travel through the "real" network or via the ij - specific “pseudo”
link. We denote these flows by T ij and E ij respectively. Hence T ij will become the
"actual" road trip matrix (although, in the algorithms used by SATURN, T ij is not
explicitly stored but may be calculated, when needed, as T ij max - E ij ).
Each pseudo link has a cost associated with it which depends on the flow
assigned to it, hence a ps eudo cost-flow curve whose form is derived
mathematically from the inverse of the ij demand function.
The algorithm then, in effect, follows the Frank-Wolfe approach as with traditional
equilibrium assignment but with an ex tended network and a “fixed” trip matrix
T ij max. As with simple equilibrium models it works by minimising an “ objective
function” which is calculated as the sum of the “standard” contribution from the
road network plus an extra contribution from the pseudo links; see 7.7.4.
It should be s tressed that the pseudo links are only artefacts introduced by the
algorithm in order to solve the problem systematically; they have no precise
physical interpretation. They may also be thought of as a “pseudo matrix” whose
principle function is to define the number of trips on t he road network (which
perversely they do by storing the number of trips which do not travel!)
Note that T ij A as used in the share model and T ij max as used in the pseudo-link
model are not the same thing; T ij A represents all possible ij trips including, e.g., all
modes whereas T ij max represents the maximum number by road. S ee Figure
7.10.
7.5.2.3 Notation
The notation adopted is as follows:
a road link
ca cost on link a
c ij minimum cost from i to j via the road network
c ij 0 a “reference” cost from i to j via the road network, e.g., the present day
cost
c ij FF c ij assuming free flow costs (hence a minimum cost)
d ij “cost” on an excess link ij
1c) Determine the number of trips to be loaded onto the road network:
Tij(1)
1d) Load T ij (1) onto the road network, accumulating the total link flows to
obtain the first set of road flows, V a (1).
1e) ‘Load’ the excess flow:
=
E (1)
ij Tijmax − Tij(1)
ITERATIVE LOOPS
Step 2 Calculate the ‘current’ link and pseudo link costs:
Equation 7.13
=
dij( n ) gij (Tijmax − Eij( n ) ) (b)
3b) Calculate and load the auxiliary road trips for this iteration: Tij( n +1) to
obtain link flows Wa( n +1)
equation (7.11b), the logit model. The x-axis represents the cost of travel by road
such that when the cost by road equals the cost by public transport (including any
modal-specific constants) then the road demand equals half the total demand.
Figure 7.11 - A logit demand curve with critical points noted
If, as illustrated, the free flow road costs are less than the public transport costs
then T ij max will be somewhere intermediate between Tij / 2 and T ij A; if c ij FF > c ij PT
A
then T ij max < Tij / 2 . (Clearly the former will be more likely in practice.)
A
T ij max is basically an ar tificial value designed to keep the total number of trips
within the algorithm within realistic bounds and to limit the absolute values of the
resultant objective functions.
In theory one might be able to devise even lower bounds on T ij if we could predict
in advance the lowest values that c ij would take during the course of the algorithm.
However, since the values of c ij are themselves related to T ij max there does not
appear to be an easy solution. Possibly an area for further research.
=Tij(1) T=max
ij , Eij(1) 0 or vice-versa
However, all that is really required is that the starting point be “feasible”, i.e. that
all the trips in T ij max be loaded onto either the pseudo links or the real network.
Hence, if we already have an idea “T ij '” of what T ij will turn out to be and, more
importantly, a g ood idea therefore of the number of trips E ij = T ij max - T ij ' to be
eventually assigned to the pseudo links - we could start by assigning our
estimates of T ij and E ij onto the minimum cost paths in the “real” network and onto
the pseudo links respectively.
Empirically it appears that a “ split” assignment to begin with leads to a m uch
improved overall convergence and it is therefore always used. The choice of T ij (1)
may be made in two ways:
If REDMEN = T then it is taken from an input trip matrix which represents a prior
estimate of T ij , for example from a pr evious assignment. The estimated trip
matrix may be defined by the Namelist parameter FILRED under &PARAM in
the network .dat file.
Otherwise (for incremental models only) it is set from the equation:
where T0 represents the ‘inelastic’ or ‘reference’ trip matrix as used in the demand
function - see 7.7.1, equations (7.30a) to (7.30d).
If REDMEN = T it must be stressed that the input trip matrix (FILRED) need only
be an estimate but that the closer it is to the eventual output trip matrix, the better.
Equally if it is a very poor estimate there must come a point where using this
option turns out to be counter-productive. However, to date we have no empirical
evidence to suggest where the cut off point comes. Note that, in this context,
REDMEN may be regarded as a form of “kick start”; see 22.2.4.
N.B. See 7.5.6 for advice on us ing the REDMEN option in conjunction with
“frozen” cells (ICING = T).
If REDMEN = F then FRED is a uniform factor chosen to estimate the expected
growth or reduction (but usually the latter) in the final trip matrix relative to the
inelastic trip matrix. For example if you think elastic effects remove 5% of the trips
in T0 ij from the network then set FRED = 0.95. The default value of FRED is 1.0.
N.B. FRED is applied to incremental models only (MCGILL < 10).
Our advice would be, if feasible, to set REDMEN = T and to define an input matrix
FILRED; FRED would be a second choice.
7.5.3.4 The Iterative Road Trip Matrix: NITA_F and MASL_F; 3b)
Similar considerations to those given under 1c) apply here as well. Thus a “strict”
interpretation of Frank-Wolfe rules would lead to an all-or-nothing situation:
Equation 7.15
( n +1)
Tijmax cij( n ) 〈 dij( n )
Tij =
0 cij( n ) 〉 dij( n )
cij( ) 〈 dij(
n)
0 n
( n +1)
Fij =
Tij
max
cij( n ) 〉 dij( n )
Hence the maximum number of trips are assigned to either the pseudo link or to
the road network minimum cost route.
However, the pseudo/road split may be substantially relaxed by recognising that
the underlying principle of Frank-Wolfe is to increase the flow on t he current
cheapest route. Hence, if the pseudo route is currently cheapest, i.e.,
Equation 7.16
cij( n ) > dij( n ) (a)
with the converse being true if the pseudo route is more expensive.
We can in fact guarantee that this condition is satisfied by setting
i.e. set the road trips equal to the equilibrium demand corresponding to the current
minimum road costs. Thus:
n +1)
Fij(= Tijmax − Tij( n +1) (e)
That equation (7.16d) guarantees (7.16c) may be seen by reference to the fact
that by definition the current road trips T ij (n) and the current pseudo link costs are
“in equilibrium” in the sense that:
Tij( n ) = Tij(1)
In order to choose the optimum value of λ one may either use a r outine which
explicitly minimises Z as a one -dimensional function of λ or - much more
conveniently - one may use a routine to find the “root” of the equation:
Equation 7.17
dZ =0
dλ
(The identical 2 options occur with the Frank-Wolfe inelastic assignment
algorithm). The equation for the derivative of Z with respect to λ may be written:
Equation 7.18
dZ
=
dλ
∑ C (λ )(W
a
c a
( n +1)
− Va( n ) ) + ∑ dij (λ )( Fij( n +1) − Eij( n ) )
ij
where:
(
ca ( λ ) =ca (1 − λ )Va( n ) + λWa( n +1) ) (a)
And
Functional forms for d ij ( ) are given in 7.7.3; c a ( ) are the cost-flow curves as
defined by the user (or calculated by the simulation) for links in the road network.
The order of the parameters, and their abbreviations, given below corresponds to
the columns in the elastic summary tables.
♦ The uncertainty in the objective function ‘ε‘, “EPS” in the LP tables. See
equation (7.5), 7.1.5.
♦ A necessary condition for convergence is that the total number of trips on the
“real” network and the total number on the “pseudo” network reach stable
values - although clearly this is not a sufficient condition since changes in
individual ij values may be masked by an apparent stability of the total.
♦ DELTA-R, the delta function as evaluated only for trips through the real
network and therefore a measure of how near the current path flows are to
Wardrop Equilibrium (and therefore ignoring how near they are to demand
equilibrium).
♦ TIJ-AAD - the average absolute difference between the current road trips and
the number given by the demand function for the current costs, i.e.:
Equation 7.19
∑T
ij
n
ij − fij (cij( n ) )
♦ TxCij-AAD – as 8) but with each ij element weighted by its cost and then
normalised by the total vehicle-costs. (N.B. This is the equivalent of the
“%Gap” as used in the demand-supply equilibration program DIADEM.)
♦ Total travel cost over the real road network expressed in veh-hrs.
At convergence measures 1), 2), 4), 5), 7), 8), 9) and 10) should all tend to zero.
Stopping criteria are based on the same criteria as those for Wardrop Equilibrium
with a fixed trip matrix as listed in 7.1.5. Thus the user-set parameters NITA,
XFSTOP, FISTOP and UNCRTS all apply.
Note that all these convergence measures are internal to the assignment; i.e.,
they do not take into account any changes in costs introduced by the assignment-
simulation loops as within SATALL. For convergence of the loops please refer to
Section 9.9.1.
It is noted that to achieve satisfactory convergence of an elastic assignment often
requires many more iterations than an inelastic one; rather higher values of NITA
may therefore need to be used.
Tij = Tij0
approach may be to use a multiple user class approach where the two roles are
explicitly differentiated.
By contrast in an incremental model T ij 0 should represent a good “central” value
for car trips such that freezing them at that value should not present conceptual
problems.
You may wish to quibble with these rules and want it done other ways; the point is
that this situation should never really arise in the first place.
Equation 7.20
Tij=
R
( )( ( ) (
TijA exp − β cijR / exp − β cijR + exp − β cijPT )) (a)
( ( (
TijA 1 + exp β cijR − cijPT
= ))) (b)
where T ij A represents the total number of trips from i to j choosing between road
(R) and public transport (PT), costs c ij R and c ij PT respectively. β represents a
“sensitivity” parameter. A very small value of β implies that travellers are relatively
insensitive to the differences in costs between the two modes; a higher value of β
implies that they are very sensitive and small changes in costs can lead to large
shifts in mode choice. [Note that in form given here β is assumed to take on
positive values.]
Note that, in principle, either or both costs could include “modal penalties” in
addition to the “real” network costs. In practice, if included the modal penalty
would consist of a fixed positive cost (independent of ij) to be added to the public
transport costs. It would also, as with all other “costs” used within SATURN, have
units of generalised seconds. See 7.6.5 for a more detailed discussion of cost
definitions.
Logit models of this form may be considered as “standard” and their applications
in SATURN are described further in 7.7.1; see equations (7.30a) and (7.30f)
where To is equivalent to TA/2 and TA respectively and c o is cPT ij in both. Two
forms of extended logit model, which may also be represented within SATURN,
are described next.
Equation 7.21
where the choices 1….N have costs c ij 1 … c ij N and, we assume, arbitrarily, that
choice 1 represents car travel.
Figure 7.13 - A Multinomial Logit Model
We further assume that the cost of travel by car is a function of the number of car
trips but that all other choice costs are fixed. Given these assumptions we may
transform equation (7.21) into a form equivalent to (7.20) by defining a “composite
cost” of all the other non-car modes ~cij by:
Equation 7.22
exp ( − β cij =
) ∑ exp ( − β c )
N
n
ij (a)
n=2
( )
N
1
Or cij =
β
∑
− ln exp − β cijn
n=2
(b)
For example the upper level choice might be one of mode - say, public transport,
car or walk - and the lower choice might be between peak and off-peak. Thus T ij12
would represent trips by car in the off peak (car = choice 1 in the upper level, off
peak = 2 in the lower level); T ij21 would be public transport in the peak, etc, etc.
The “nested” probability of choosing mode m at the upper level 1 and time period t
at the lower level 2, P mt may be written as (dropping the ij subscripts)
Equation 7.23
Pmt = Pm Pt
m
Where:
Starting at the bottom of the nest, time choice, we may write, as with previous logit
models (7.20) or (7.21):
Equation 7.24
exp ( − β 2 cmt ) / ∑ exp ( − β 2 cmt ′ )
Pt =
m t′
( −1/ β 2 ) ln ∑ exp ( − β 2cmt )
cm∗ =
t
Equation 7.26
Note that we use different β values at the two different levels, β 1 β 2 , associated
with mode and time respectively. For various theoretical reasons logic dictates
that β 1 must be less than β 2 , otherwise the “order” of the nest should be reversed.
Thus starting with the “real” o-d travel costs c tm calculated by mode and time
period, which we use directly at the lowest level, we proceed in stages to higher
levels where the costs used in the choice processes are composites of the costs
further down. If we had a model with three levels of choices, e.g. if car travel in
each time period were further subdivided into car driver/car passenger, then the
same principles of calculating the composite costs at each level from the
(composite) costs at the next level down would still apply.
At the level of “real” network costs these may be either “fixed” or “flow dependent”.
For example costs of travel by public transport modes are generally assumed to
be independent of the number of passengers per service as well as independent
of the levels of congestion on the road. On the other hand travel costs by road
are generally assumed to be dependent on the number of vehicles on the road -
and hence on the choice process. Models of any level of complexity and
interactivity may of course be constructed and algorithms for their solution
constructed from the basic SATURN building blocks in the same way that a
multinomial logit model (7.6.2) can be transformed into a simple logit model. For
the moment we will concentrate on one very basic form of nested logit model.
(
T / 1 + exp ( β1 ( c1 − c2 ) )
= ) (b)
T2= T − T1 (c)
Equation 7.29
T11= T1 exp ( − β 2 c11 ) / ( exp ( − β 2 c11 ) + exp ( − β 2 c12 ) ) (a)
(
T1 / 1 exp ( β 2 ( c11 − c12 ) )
=+ ) (b)
Thus c 1 and/or c 1* is the composite car cost, T 1 is the total car trips and T 11 is the
total car trips in the peak period. G iven that all the other costs are fixed, as
opposed to c 11 which depends on the peak car flows, we therefore have a “simple”
elastic demand model for car trips in the peak of the form given by equation
(7.11), i.e. T 11 is a function of “variable” costs c 11 only.
NOTATION
In order to minimise the number of parameter names used and t o retain some
level of comparability with other forms of demand models (logit or otherwise)
SATURN makes certain compromises in the notation used when dealing with
nested logit models in what follows.
all other cost matrices must be c onverted into the same units. E qually all beta
values etc. must be in units of inverse (generalised) seconds.
(
T =2T 0 / 1 + exp β ( c − c 0 ) ( )) (a)
T = T 0 ( c / c0 )
p
(b)
MCGILL = 3: Exponential
(
T T 0 exp − β ( c − c 0 )
= ) (c)
(
T 0 / 1 + exp β ( c1 − c 0 )
T1 = ( ))
(
T1 / 1 + exp β 2 ( c − c 2 )
T= ( )) (e)
(
( −1/ β 2 ) ln exp ( − β 2c ) + exp ( − β 2c 2 )
c1 = )
MCGILL = 11: (Shared) Logit (see 7.6.1)
(
T 0 / 1 + exp β ( c − c 0 )
T= ( )) (f)
where T0 and c0 (and c2) are user-specified reference or ‘parametric’ where T0 and
c0 (and c2) are user-specified reference or ‘parametric’ trip and cost matrices and
β, β 2 and p are “elasticity” parameters.
Note that in equations 7.30a to 7.30b if c = c0 then T = T0. Hence the point (c0, T0)
definitely lies on the demand curve; these demand forms are therefore essentially
“incremental” curves and ( c0, T0) could therefore be i nterpreted as the “existing
situation”. E qually T0 may be t hought of as the “inelastic” demand since if the
T = 2 T0 / (1 + c**β / c0**β)
= 2 T0 / (1 + (c/c0)** β)
In other words T() is now a function of the relative change in costs rather than the
absolute change in costs as per the logit model and therefore much nearer (but
not identical) to the power law or constant elasticity model, equation 7.30b.
Therefore what Box-Cox enables one t o do is to move continuously between a
model based on ab solute cost changes to relative cost changes. Which, to my
mind, is a major advantage since basically I don’t believe that trip makers perceive
compared costs in an a bsolute sense, more in a relative sense. But what do I
know? See 7.8.5.1.
1)
(
c 0 + ln ( 2T 0 / T ) − 1 / β
c=
) (a)
c = c 0 (T / T 0 )
1/ p
2) (b)
3) c c 0 + ln (T 0 / T ) / β
= (c)
4) c c 0 + ( c 0 / p ) ln (T / T 0 )
= (d)
6)
(
c 0 + ln (T 0 / T ) − 1 / β
c=
) (f)
d ( E ) g (T max − E )
=
1)
((
d =c 0 + ln 2T 0 / (T max − E ) − 1 / β
) ) (a)
(
2) d c 0 (T max − E ) / T 0 )
1/ p
= (b)
3)
(
c 0 + ln T 0 / (T max − E ) / β
d=
) (c)
4) d= (
c 0 + ( c 0 / p ) ln (T max − E ) / T 0 ) (d)
Equation 7.33
=Z ∑ Z (V ) + ∑ Z ( E )
a
a a
ij
ij ij
where h ( x ) = x log x
2) Z ( E ) c 0 ( (T 0 ) −1 p ) (T max ) − T q / q
q
=
(b)
where =
q ( p + 1) / p
but for p = −1
Z ( E ) = c 0T 0 ln (T max / T )
For share models the objective functions are calculated directly as functions of T,
the flow on the road network, plus, in the case of the nested logit model, the flow
allocated to the alternative choice at the lower level, denoted by T 12 (see equation
(7.29c)). Hence in the latter case T and T 11 are synonymous, and we use T 11 by
preference.
5)
(
Z (T11 , T12 ) = T12c 2 + T2c 0 + T11 log (T11 / T1 ) + T12 log (T12 / T1 ) β 2 + T1 log (T1 / T 0 ) + T2 log (T2 / T 0 ) / β )
(e)
where T=
1 T11 + T12
T=
2 T 0 − T1
( ) ( ) ( ) ((
6) Z (T ) = T 0 − T c 0 + T ln T / T 0 + T 0 − T ln T 0 − T / T 0 / β
) ) (f)
7.7.5 Elasticities
The ‘elasticity’ of trip demand with respect to changes in cost is defined by
Equation 7.35
e = ( dT / T ) / ( dc / c )
1) ( )( (
− β c exp β ( c − c 0 ) / 1 + exp β ( c − c 0 )
e= )) (a)
− β c ( 2T 0 − T ) / 2T 0
=
2) e= p (b)
3) e = −β c (c)
4) e = pc / c 0 (d)
5) e e1 (T11 / T1 ) + e2
= (e)
where e 1 and e 2 are the elasticities in the upper and lower levels respectively and
may be g iven by equations such as (7.35a) or (7.35f). For the definitions of T 11
and T 1 see section 7.6.4.
6) ( )( (
− β c exp β ( c − c 0 ) / 1 + exp β ( c − c o )
e= )) (f)
− β c (1 − T ) / T 0
=
The alternative versions of equations (7.35a) and (7.35f) which use trips T ( or,
strictly speaking, proportions of trips choosing car travel) in addition to costs are
based on standard results from logit theory and are certainly easier to work with
then those based entirely on costs.
there is very little point in carrying out the calculations. However for other model
forms the relationship between, say, BETA values and the elasticity is not direct
and the empirical values can be a useful guide (see also the final paragraph in this
section).
Note however that for all cases apart from MCGILL = 2 t he elasticities are not
constant but depend on t he point on t he demand curves where the calculations
are made, i.e., on the road costs and/or number of road trips. Ideally one would
probably prefer the elasticities to be calculated using the actual output costs and
trips from the elastic assignment. However the first set of values reported by
0
SATALL are those that would apply if the costs of travel by road equal c which
are not necessarily all that close to the output costs.
In the case of (most) incremental models those costs are probably fairly close to
the final costs given the manner in which they would have been defined and the
reported elasticities should be good estimates. However for the various forms of
0
logit choice models (MCGILL = 1, 10 or 11) the costs c may represent costs, say,
by public transport, in which case they may be a long way away from the “true”
road costs and any elasticity calculated at those costs need to be taken with a
large pinch of salt.
For this reason for MCGILL = 10 or 11 (i.e, shared demand models) the empirical
elasticities are also calculated after the assignment has taken place and using the
minimum ij road costs in place of c0. These elasticities are therefore more realistic
and may differ considerably from those reported pre-assignment. They are also
reported within the lpt/lpa files.
It should also be remembered that elasticities vary by od cell (except of course for
the constant elasticity form). Elasticities may, in principle, be calculated cell by cell
using the equation editor in MX based on the “correct” costs and/or road trips and
trip-weighted averages obtained.
In order to detect consistent differences in elasticities by trip length (with logit-
based models elasticities increase with cost; see equation 7.35a) the reported
empirical elasticities are disaggregated by cost bands expressed in terms of
generalised costs in minutes – new in 10.8.20. These are printed within the .LPT
files. Note that the differences, especially with logit models, may be significant and
users may wish to consider this in their choice of: (1) the form of the demand
model and (2) the calibration parameters.
The calculated empirical elasticities are stored within the output .ufs files and may
also be ac cessed within the network parameters printed by SATLOOK. In the
case of MCGILL = 10 or 11 t he values stored are those calculated post
assignment as explained above.
We note again that POWER is very closely associated with elasticity (and exactly
equal for MCGILL = 2) and therefore (a) is assigned very similar values of the
order of, say, -0.5, and (b) is unitless. By contrast BETA is only a parameter which
defines elasticity in part and (a) has units of inverse generalised cost and (b) takes
values which bear no direct relationship to the value of the intended elasticities.
If the empirical elasticity is extremely high (in absolute terms), e.g., -10.0, then
SATALL may refuse to run on the grounds that: (a) it may fail due to problems
with numerical underflow or overflow and (b) it is most unlikely that this is what the
user actually wanted to do. The two most common causes of extreme elasticities
(either very high or very low) are: (a) users confusing BETA and P OWER and
therefore setting BETA to an appr opriate value of POWER or vice-versa, or (b)
defining BETA values in the wrong units (e.g., inverse minutes rather than inverse
seconds).
The most obvious example of finding a poi nt on t he demand curve is the base
year where the trip matrix is known (by whatever means) and the corresponding
costs are obtained by running SATURN for that base year. Hence T ij o is the base
year trip matrix and t he reference cost matrix c0 is obtained by skimming the
minimum* costs from the base year; e.g run:
SATURN basenet basetij
and
SATCOST basenet basecij
(where the procedure SATCOST is described in section 15.27.7). By implication
the point (c0, T0) also lies on the “supply curve” for that network as sketched in
Figure 7.2.
Note that in this situation only the one point on the demand curve (c0, T0) can be
observed directly since that is the only point which actually exists; the rest of the
demand curve can only be constructed indirectly by asking questions such as:
“What would happen t o demand if costs increased by 10%”. T hus we have a
demand curve for the base year d B(c).
We should also note that although (c0, T0) may be the only point that actually
exists it is not necessarily the only point that may be used to define the demand
curve in mathematical terms. Thus with the simple constant elasticity demand
curve (7.11a) we could obtain exactly the same demand curve by replacing T0 by
2T0 and c0 by c0 21/P. Here (c0 21/P, 2T0) equally lies on t he demand curve and
may be used just as easily to define the curve. In some respects this is a useful
property for a demand curve and one to which we return below (7.8.5).
For certain types of scenario tests we only need to have the base year demand
curve. For example if you need to know the effect of implementing road tolls or
* Note that the costs defined in this way should always be minimum costs as opposed to average
costs as taken over the "forest" of used routes.
changing traffic signals now (which effectively alter the supply curve) then you
require the new equilibrium point between the new supply curve and the existing
demand curve. Thus, Figure 7.16, if we shift the supply curve from S1 to S2 we
change the equilibrium point from (T 1 *, C 1 *) to (T 2 *, C 2 *)
Figure 7.17 - New Supply Curves: A New Equilibrium
In this case (since S2 is above S1 implying higher costs) we have both increased
the equilibrium costs (C 2 * > C 1 *) and decreased the demand for trips (T 2 * < T 1 *).
Note that had w e modelled the new scenario with fixed trips we would have
wound up at the equilibrium (T 1 *, C 2 F) which would imply higher costs than in the
“correct” equilibrium state.
FUTURE YEARS
For future years the demand curve must also allow for exogenous growth, e.g
through increased housing, employment or car ownership via growth factors which
implicitly assume that travel costs do not change. Thus we might predict a
uniform 10% growth in the trip matrix by some future year if there is no change in
congestion. We may therefore construct a future year demand curve dF(c ) from
the base year demand curve dB(c) by simply applying a factor of 1.1 to all demand
values on the curve. See Fig. 7.17. Thus the point (c0, 1.1T0) should definitely lie
on the new demand curve.
Figure 7.18 - Base Year and Future Year Demand Curves (dB and dF) plus Alternative
Supply Curves S1 and S2.
However, this is not to say that the point (c0, 1.1T0) is a v alid forecast of some
future scenario since it does not take into account the extra congestion generated
by the extra 10% traffic demand which will alter the costs. It simply says that if the
costs remain as they are in the base year then trips will grow by 10%. E lastic
assignment introduces the effect of added congestion.
Thus in Figure 7.17 if point A - (c0, T0) - represents the base year equilibrium point
E represents the future year scenario - (c0, 1.1T0) - if costs remain fixed. However
if the network continues to operate according to supply curve S 1 we would wind
up at point B in the future year with: (a) higher costs than c0 and (b) fewer trips
than 1.1T0. In this case the elasticity effects are suppressing trips.
Equally if we consider alternative network scenarios as represented by supply
curve S 2 in Figure 7.17 then the future year equilibrium would be represented by
point D - in this case fewer trips and increased costs relative to point B.
Note therefore that points E, B and D all lie on the future year demand curve and
that all three represent equally valid forecasts of future year traffic levels given
certain assumptions about what the costs will be.
To define the future year demand curve using as input a reference cost matrix and
a reference trip matrix you are recommended to use the base year cost matrix c0
for the future year as well but the future year reference trip matrix would be the
base year matrix factored by 1.1; use MX to do t his. ( The alternative use of
GONZO = 1.10 is feasible but not recommended since if you start to compare
future year elastic and inelastic trip matrices it can be very confusing trying to
remember whether they include a GONZO factor or not).
(
Tij= TijA exp ( − β cijR ) / exp ( − β cijR ) + exp ( − β cijPT ) ) (a)
( (
TijA / 1 + exp β ( cijR − cijPT ) )) (b)
where the superscripts R and P T represent road and publ ic transport and T ij A
represents the total number of ij trips. S ee 7.6.1. A s noted in 7.5.1 the public
transport costs could include a (positive) perceived modal penalty.
Logit models may be represented either in an incremental or shared form - and in
some respects the latter formulation, discussed in 7.8.4, is more “natural”. The
following considers it primarily in the incremental form (MCGILL = 1).
Comparing equation (7.20b) with the incremental logit equation (7.30a) it can be
seen that c0 is equivalent to cPT and T ij A to 2T0. Hence in this case the reference
trip matrix refers to public transport costs and would need to be obtained from a
public transport assignment program such as SATCHMO. Equally we would need
to define T0 ij = TA ij /2.
Note that in this case the necessary reference matrices T ij 0 and c ij 0 should
certainly not be i nterpreted as a bas e point for road traffic since they do not
correspond to any “real” observed values of road trip matrices or costs - except in
the most unlikely case of all road costs being identical to public transport costs
and the modal split therefore being 50:50.
However, in the event that we know the base-year road trip matrix and road costs,
which we will denote by Tb and cb, and we know the total number of trips TA (e.g. if
we know the “share” of road trips) then we can work out the (unknown) public
transport cost matrix cPT = c0 by the matrix transformation (e.g., use MX):
Equation 7.36
(
cb − (1/ β ) ln (T A − T b ) / T b
c0 = )
The logit demand curve is sketched in Figure 7.18 where both the base year point
(cb, Tb) and the reference point (c0, T0) lie on the curve. Note that to specify the
precise form of this demand function a single point on the function (plus a value
for β) is not enough, we need extra information to specify TA.
Note, from a purely technical point of view, that it may be possible to factor a base
year trip matrix by setting GONZO = 1.1 (say). However, this is not
recommended.
increase in cost (or zero), in which case, relatively speaking, short distance trips
will be greater affected with a relative model.
This is not to say that absolute models are better than relative or vice-versa;
beauty is in the eye of the beholder and you need to make up y our own mind.
But, at the very least, be aware of possible differences.
T = T 0 f ( c, c 0 )
where, by definition, f(c0, c0) = 1. The point (T0, c0) may be thought of as a “base”
or “pivot point” through which the demand function must pass. It turns out that
some, but not all, of the functions in 7.7.1 have the additional property of being
“base independent” in that any point on the demand curve may be chosen as the
base point and the identical function is produced.
For “base dependent” functions (T0, c0) has a more precise definition so that, in
practical terms more care is needed on the part of the user to specify them.
To illustrate, consider the constant elasticity form (7.30b):
T = T 0 ( c / c0 )
P
(
T = T 0 / ( c0 )
P
)c P
T = X 0c P
In this case we need only one value X0 to specify the form of the demand function
(assuming the elasticity p to be specified separately), not two separate values of
T0 and c0. I t also follows that X0 may be obt ained from any other point on the
demand curve, say (T1, c1) since
X 0 = T 1 / c1P
(
T T 0 exp − β ( c − c 0 )
= )
=T T 0 exp ( β c 0 ) exp ( − β c )
=T X 0 exp ( − β c )
* Strictly speaking both will converge towards the same results but since they are likely to start from
different initial conditions they may yield slightly different results since they will be converging along
different paths.
For example, the cost as used in the demand model may include components
such as vehicle operating costs which are based on an average speed of travel
between O and D which, in turn, depends upon the route(s) used but which,
cannot be calculated as a straightforward sum of individual link components along
the route(s); i.e., we cannot define an additive operating cost per link. Equally the
demand model may use the same components of cost as the assignment model,
i.e., time and distance, but use different weights. Or, frequently, the demand
model may use a di fferent level of disaggregation into user classes (with,
generally, more user classes in the demand model than in the assignment
model).
In all such cases there is a s trong possibility that the combined supply-demand
model will not converge to a uni que equilibrium solution (either it will become
stuck in infinite loops or there may be multiple equilibria, one of which will be
arbitrarily reached). The basic problem is that the two models are “pulling in
opposite directions”.
Note that the problem does not occur if the demand model includes cost
components which do not feature in the route choice models as long as those cost
components are totally independent of the routes chosen. For example, modal
split models frequently add a notional penalty to the O-D costs by public transport
but these costs have no af fect on t he choice of an O -D route by either road or
public transport. Similarly, if area licensing is being modelled such that a trip with
both origin and destination within the charge area automatically pays a toll but that
toll is fixed independent of the route chosen, it is not necessary to include that toll
within the assignment model; it can be subsequently added to the O-D cost matrix
for those cells as a pu re matrix operation. By contrast including, as above, a
vehicle operating cost based on speed is clearly route-dependent.
A more practical consideration is that, in order to calculate an average O-D speed
or to set up cost matrices based on different time/distance weights, etc. etc., it
becomes necessary to build skimmed (“forest”) matrices of O-D time and distance
from the assignment model. However this leads to a num ber of practical
difficulties (see 15.27.6):
(a) Considerable CPU overheads involved in skimming time, distance, etc.
matrices compared to calculating a minimum cost matrix (in addition to the
extra CPU overheads involved in carrying out the extra SAVEIT assignment
in the first place);
(b) Problems of differences between the SAVEIT and “master” assignments
(15.23.2) and
(c) Problems associated with the non-uniqueness of route flows and t herefore
the non-uniqueness of skimmed time etc. matrices (7.1.6, 15.23.8 and
15.27.6).
By contrast a demand model which is based on minimum cost matrices from the
assignment requires a single tree build per origin to build a cost matrix, is based
on the final set of (unique) equilibrium link costs and is, therefore, also unique.
While clearly we would not wish to prevent users from setting up demand models
which involve different definitions of O-D costs if they wish to do so, it is not,
however, a pr actice that we (DVV) would particularly recommend. From a
behavioral point of view, it does not make much sense to me to assume that
drivers react in one way to road costs when evaluating route choice but in a
different way when evaluating, say, destination choice. Caveat emptor!
Our strong recommendation is, therefore, to use the minimum cost O-D matrices
from the road assignment as the costs input to the demand model unless there
are compelling reasons for doing otherwise.
In terms of the various standard batch files to calculate cost matrices as described
in Section 15.27.7 our recommendation is to use SATCOST in preference to
SATC_AV – option 14 in preference to option 9 in SATLOOK.
Finally we note that very similar considerations apply to linkages between
SATURN and economic evaluation models such as TUBA (15.41.1); i.e., life
becomes considerably simpler if the evaluation framework only requires a
minimum cost O-D matrix as opposed to a breakdown by time, distance, etc. etc.
7.8.7 Conclusions
To reiterate the first point made in this section - the choice and definition of the
demand function is entirely up t o the user. A ll this section contains is advice,
albeit very sound advice!
Thus, at its simplest, elastic assignment may involve nothing more than uniformly
factoring up an existing trip matrix by 10 or 20% as the “new” base point and using
a present-day cost matrix. On the other hand the demand process may be part of
a much more involved multi-stage process. The choice is yours. I f you
understand what your demand model represents and how to specify it then you
should have no problems; if you are not sure what you are doing then our advice
would be to keep it as simple as possible.
Finally, whether you are an expert or a beginner, it is a very good idea to check at
least once that the outputs from an el astic assignment model are indeed
consistent with your demand model. Thus having run an elastic model and
produced an output road trip matrix T ij use SATCOST (15.27.7) to calculate the
new cost matrix c ij . You should then be able to use the Fortran equation editor in
MX to independently calculate T ij from the input matrices T ij 0, c ij 0, and c ij (use the
equations in 7.7.1). If the two versions of T ij are "near" one another, e.g. +1% per
o-d element then your method is probably sound; if not, check your process
carefully. D o not expect 100% agreement which will only occur for perfect
convergence.
=
Tij AT 0
(
i ij exp − β ( cij − cij )
0
)
2. Absolute or shared:
Equation 7.39
where in both cases the balancing factors A i are chosen such that:
Equation 7.40
∑T
j
ij = Oi
where O i = the number of trips originating from i as calculated from the origin
sums in the “base” matrix T ij o.
Clearly the incremental model requires two additional input files to define a “base”
trip matrix To ij and a "base" cost matrix co ij . Less clearly the absolute model
(7.39) also requires an input trip matrix which is used only to define origin trip
ends (although it would not be t oo complicated to input the trips ends directly if
required; apply to DVV!)
In both cases an equivalent optimisation representation of the problem is available
such that the combined distribution plus assignment problem may be solved using
very similar algorithms to those used to solve “simple” elasticity problems; see
7.5.2.
Note that distribution may be run either “on its own”, i.e., as a model of combined
distribution and assignment, or in combination with further demand stages such as
modal split. See 7.10.4.
7.10.3 Files
The file structure using distribution is identical to that for SDM models as
described in 7.12.1 and 7.12.3 with the exception that the “base” cost matrix
required under incremental distribution, co ij in (7.38), is defined by the file
"FILCGH". The trip matrix T ij 0 in (7.38) is set by the “name” FILTIJ (7.12.3).
Since then very little extra work has been c arried out on t hese options within
SATURN, primarily since the DfT preferred to have supply-demand models set up
as two distinct but linked sub-models (as is done, for example, in DIADEM). And
indeed the MCUBC = 2 option above, absolute distribution, is no longer supported
as it no longer works as originally intended.
If any users are interested in pursuing the use of linked distribution models, or
indeed are interested in the original theoretical work from the IEM project, please
get in touch with DVV.
=
C PPM ∗ T + PPK ∗ D + M
Where:
C is the cost in units of pence,
T is time in units of minutes (including any 44444 time penalties),
D is distance in kilometres,
M is monetary charge in pence,
PPM is a user-defined parameter specifying “Pence Per Minute”,
PPK specifies “Pence Per Kilometre”.
The “type” of cost desired is specified by the user’s choice of PPM and PPK, the
default values being 1.0 and 0.0 respectively which therefore equate cost to time.
Although the parameters are specified as “per minute” and “per kilometre” the
actual units used by SATURN for time and distance are seconds and metres;
appropriate conversion is handled by the program.
In fact, when generalised cost is requested, the assignment actually works in
terms of “generalised time”, defined by adding terms proportional to the link
distance and/or monetary charge to the link travel time, such that:
Equation 7.42
where DATA(i) refers to the ith data input field, i = 1, ... KNOBS and PPU(i) refers
to the “Pence Per Unit” associated with that data field.
For example, DATA(1) might be a link scenic index and P PU(1) a w eight to
convert scenic value into pence. The required values of PPU(i) are specified on
the ‘88888’ records input to SATNET - Section 6.11 - and may differ for different
user classes. Note that, by definition, all DATA values are fixed independent of
flows.
As with simple generalised costs the programs actually work in terms of
“generalised seconds”.
Note that values of DATA(I) are allowed to be negatives (see 15.14.3) but only if
the total fixed link costs (i.e., the sum of all components in Equation 7.43
excluding time) does not go negative for any individual links. Negative link costs
may pose problems for the tree-building algorithms which construct minimum cost
O-D paths since they may lead to cycles of links with a s ummation of negative
costs which cause infinite loops.
than is an al l-or-nothing solution so that starting with them should reduce the
number of internal iterations required. This option is selected by setting the
parameter DIDDLE to .TRUE.
Tests with DIDDLE = T have shown significant improvements, not only in the rate
of convergence within a single assignment (which is to be expected) but also in
the rate of convergence of the assignment/simulation loops (see 9.4). Its use is
generally to be r ecommended and i ts default has therefore been s et to T under
version 9.5.
We note that DIDDLE is only applied for assignments after the very first
assignment in the assignment-simulation loops where there is indeed a previous
assignment to fall back on. A similar technique, WSTART, is now (10.6) available
for the very first assignment; see Section 22.3.
WIDDLE
DIDDLE, as described above, only operates within simulation-assignment loops,
i.e. for networks with a simulation component. An alternative version of the same
principle, WIDDLE, applies to buffer only networks and e ffectively allows one
assignment to continue from the end of another.
Consider the following sequence of dos commands:
SATNET net1
SATALL net1 trips
COPY net1.ufs net2.ufn
SATALL net2 trips &PARAM WIDDLE T
The first two simply assign matrix trips.ufm to (assumed buffer-only) network
net1.dat to produce net1.ufs. This is then copied (in effect renamed) into net2.ufn
(ufn since SATALL expects a .ufn file as input) and the final step runs SATALL
with WIDDLE = T such that the initial flows in the net2 assignment are the final
net1 flows. In effect having done N ITA assignments on net1 the second
assignment can carry out (up to) NITA extra assignments to achieve, e.g.
improved convergence.
A key requirement in using WIDDLE is that the initial flows are consistent
(technically “feasible”) with the trip matrix being assigned. In the example above
this is guaranteed by using the same matrix in both assignments. An alternative
application of WIDDLE would be to the situation where two network.ufs files have
had their flows averaged to produce a new (.ufn) file while their respective
matrices have also been av eraged to produce a new trip matrix. T his should
guarantee that the new initial flows and matrix and trips are self-consistent.
If this is not the case - and no check is made - then the assignment outputs will be
unreliable.
Note that SAVEIT cannot be used with WIDDLE = T since the majority of paths
will have been ef fectively generated by the first assignment(s). Equally, and i n
addition to being buffer-only, WIDDLE currently only applies to fixed trip matrix
assignment and a single user class.
Va(
n +1)
(1 − τ n )Va( n+ ) + τ nVa( n− )
=
1 1
Empirical use in SATURN networks has generally shown that PARTAN can speed
up the internal rate of convergence within the assignment but, perversely, it
sometimes makes the convergence of the simulation-assignment loop worse.
Possibly the assignment is now “too good” and the method is picking up the small
change in successive iterations with greater precision. This is an interesting area
for further research. M ore immediately users are encouraged to try PARTAN if
they are trying to decrease cpu times but do not expect miracles!
On the other hand it may be much more beneficial for buffer-only networks where
the above problem will not arise.
Equation 7.45
Z so = ∑ Va ca (Va )
a
∂c
a (Va )
c= ca (Va ) + Va a
∂Va
For the particular form of link cost-flow equations used in SATURN assignments,
see equation (5.1), we obtain (N.B. change t o to c o below:
where c o represents the free-flow travel cost equal to the sum of the free-flow
travel time t o plus the fixed costs (e.g., distance; see 7.11.2) on the link. Note that
the contribution of the fixed costs is the same to both the actual and the marginal
costs (since they are fixed!).
In terms of purely marginal time t~ a we may write:
t~ a = n A V an Va < Ca (7.47a)
= B Va / Ca Va > Ca (7.47b)
Given that SO assignment may be v iewed as the minimisation of individual
marginal costs the standard Frank-Wolfe algorithm may be used to solve the SO
problem with the one change that marginal costs are used throughout rather than
actual costs.
To invoke SO assignment within SATURN a logical parameter either SOWHAT or
WHATHO - see below - must be set to .TRUE, either (and preferably) within the
original network .dat file or within the control file to SATALL or SATEASY (both
allow SO assignment).
It needs to be appreciated that SO assignment is not based on logical
behavioural principles and that therefore it should only be us ed under very
specialised circumstances, e.g. to determine how much a net work might be
improved by optimal routing. It is still very much a research tool, not a practical
tool.
Note that problems may arise due to the fact that the marginal cost curves defined
by equation (7.19) have a discontinuity at V= C so that it is possible for the
marginal costs to decrease as V goes from just below to just over C. This can
lead to convergence problems and/or multiple equilibria.
One way around this problem is to combine SO with the KINKY option which - see
15.38 - can be set to .FALSE. in order to remove the discontinuities in the cost-
flow curves at V=C. With KINKY = F equation (7.19a) holds for all values of V and
the discontinuity disappears - to be r eplaced by the problem that continuing the
power law curve for flows in excess of capacity may lead to unrealistically large
travel times. Take your pick!
A further problem is that in simulation networks, where the cost-flow curves are
applied to individual turning movements, no account is being taken in the above
marginal cost curves of the “interactions” between turning flows in shared lanes.
Thus increasing the flow on one particular turning movement may not only
increase the travel costs for all the current flows making that turn, it may also
increase the travel times on all other flows which share a lane with that turn. Not
to mention, of course, the impact that one turning movement may have, via gap
acceptance, blocking back, etc., on flows on totally different links. A technique
known as SATMECC deals with these issues; see Section 15.50 of the Manual,
Note that parameters WHATHO and SOWHAT have ostensibly the same effect
although there are subtle differences in the algorithms used. SOWHAT was
introduced first and explicitly uses marginal costs instead of “real” cost whenever it
is required in a Frank-Wolfe algorithm. WHATHO, introduced later, uses the much
simpler approach of factoring the parameter A by (n + 1) BEFORE entering the
assignment algorithms (and returning to its original values after). It is therefore
only applied under equation (7.19a) but, if you are using KINKY = F as
recommended above, then this does not matter as equation (7.19b) is never
invoked anyway.
Our recommendation then is to use WHATHO in preference to SOWHAT if KINKY
= F. It is also probably somewhat more robust to be used in conjunction with, e.g.,
elastic assignment or multiple user classes.
Conclusions:
System optimal assignment is of both theoretical and, increasingly nowadays,
practical importance. However the developments in SATURN are still at a v ery
early stage and further developments will require both extra theory and ex tra
programming efforts. See, for example, Section 15.50 on SATMECC which
generalises the calculation of marginal cost to include “interactions” associated
with the simulation.
More accurately the diversion to the shadow networks is based on costs where for
each O-D pair a m inimum distance route is built -which at fixed speeds also
minimises time and c ost - and the corresponding generalised cost of that route
stored. A ny route with greater cost than that will be di verted to the shadow
network.
In terms of elastic assignment the shadow network demand function has the very
simple form sketched below where c ij s represents the shadow network cost. I t
may therefore be thought of as a “quick and dirty” form of elastic assignment and
for that reason is not entirely to be recommended to SATURN users. However it
does have its supporters.
Currently shadow network assignments may only be carried out within SATALL,
not SATEASY. T o invoke the facility it is only necessary to set a p arameter
SHADOW to a non-zero (positive) value in the network .dat file, and to define a
filename for the output “actual” road trip matrix, ROADIJ in 6.3.4.
Furthermore shadow networks are only available for a single user class, not
multiple classes. I n principle the ideas could be ex tended to multiple user
classes, however the necessary programming extensions have not been c arried
out.
∑V (t − t )
a
101
a
100
a
Es = 100 a
∑V t
a
100
a a
Where t a 101 represents the travel time on link a with the trip matrix increased by
1%;
And t a 100 represents the “base” travel time on link a.
dT V
Es =
dV T
So that, given the general form of t(V) in SATURN, equations (8.5a) and (8.5b),
we have:
E=
s nAV n / ( AV n + t0 ) V 〈C
=Es ( BV / C ) / t (V ) V 〉C
Thus if the trip matrix is “sparse”, i.e., it has a small fraction of non- zero T ij cells
(as typically occurs with observed trip matrices) which are not assigned, then
explicitly recording both the destination j and the cell values Tij for positive T ij only
requires less RAM than recording every single T ij value with the origin/destination
implied by the position of a variable within its (ordered) arrays. However if more
than 50% of the cells are positive then the alternative method of recording every
cell value (with the origin/destination implied) is more efficient.
Prior to release 10.9.22 the assumption was that the majority of trip matrices
encountered by SATURN were sparse so only the first method was provided.
However modern models seem to rely much more heavily on synthetically in-filled
trip matrices so, post 10.9.22, both methods are available with the choice being
controlled by an &PARAM namelist parameter SPARSE – T (the historical default)
for the original methodology.
For most current networks our recommendation is to set SPARSE = F. Advice is
also printed in the .LPT files as to whether SPARSE = T or F would use less RAM
for a particular trip matrix.
If there is insufficient RAM available to store the matrix internally (by whichever
method is chosen by SPARSE) then storage reverts to “external mode” with all
inputs direct from the .ufm file. Note, however, that in this case certain assignment
options will no l onger work, in particular OBA (Section 21) and multi-core
assignment (Section 15.53). The only remaining option in these cases is to shift
to a version with larger array dimensions (see 15.28).
Furthermore, at the present time, OBA will only accept trip matrices stored
internally in the traditional SPARSE = T format. It is hoped that this will be rectified
in future releases.
1) Choosing the form of the “elastic” demand function; see 7.7.1. Set:
MCGILL = 0 inelastic equilibrium
MCGILL = 1 logit (incremental)
MCGILL = 2 power law
MCGILL = 3 exponential
MCGILL = 4 elastic exponential
MCGILL = 10 nested logit
2) Choosing the form of the distribution model:
MCUBC = 0 No distribution
MCUBC = 1 Incremental distribution; see 7.10.1
MCUBC = 2 Absolute distribution; see 7.10.1
3) Specifying the elasticity parameter:
BETA for MCGILL = 1, 3, 10 or 11 (β in 7.7.1)
POWER for MCGILL = 2 or 4 (p in 7.7.1)
BETA_2 for MCGILL = 10 (β 2 in 7.7.1)
BETA_D for MCUBC = 1 or 2 (β in 7.10.1)
Note that POWER is dimensionless but BETA parameters have units of inverse
generalised seconds; their absolute values are therefore quite different. E.g.,
POWER might equal 0.5, BETA, -0.001.
4) Specifying whether an initial estimate of the actual trip matrix is supplied;
see 7.5.3.2:
REDMEN = F no initial estimate (the default)
REDMEN = T an initial estimate to be read in as a trip matrix. UFM file
T ij '
5) An Estimated Elastic Trip Factor
FRED Default 1.0; see 7.5.3.2
6) Specify whether the frozen cell option (7.5.6) is invoked or not
Note that all cost matrices must have the dimensions of generalised time defined
in units of generalised seconds.
&PARAM
MCGILL = 2
POWER = -0.5
FILTIJ = ‘TIJ0.UFM’
ROADIJ =‘ELASTIC.UFM’
FILCIJ =‘BASECOST.UFM’
ICING =.TRUE.
FILICE =‘HAGENDAZ.UFM’
If the words ‘KR control’ are omitted from the command line, then SATEASY
expects to find the parameters in the default control file SATEASY0.DAT.
Note that all .UFM file definitions are optional and that, generally speaking, it is
much simpler and highly preferable to set them using the namelist parameters
input to SATNET; see 7.12.4. For example FILTIJ may be used instead of
MATRIX.UFM, FILCIJ instead of filcij.UFM etc as illustrated in 7.12.3.
In addition the logical parameter REGO = .TRUE. s ets all iteration counters to
zero as required by the RESTART option; see Section 15.4. Its default value is
.FALSE.
Network Title
A new descriptive network title may be set by either:
A character namelist parameter of the form:
TITLE = ‘nettitle’
A namelist designation of a logical variable:
TITLE = T
in which case the new network title is contained on t he record immediately
following the namelist records (i.e. following &END) and oc cupies columns 1 t o
76.
Mini-Contents Page
INTRODUCTION
As noted later in section 9.1 the basic function of the simulation is: (a) to calculate
delays, capacities, queues, etc. at the level of individual turning movements given
a certain pattern of link and t urn flows specified by the assignment; and (b) to
calculate new cost-flow curves to be returned to the next assignment. This
section gives a brief description of the steps thus involved.
The simulation may be carried out either within a separate program SATSIM (in
which case it would need to be run in conjunction with the separate assignment
program SATEASY) or, much more usually, within SATALL. T he discussion in
this chapter applies to both. Some technical information on SATSIM specifically is
given in 8.10; more general information on SATALL is given in Section 9.
Further information on the basic principles of simulation within SATURN may be
found in the original papers published in Traffic Engineering and Control in 1980
and 1082 and reproduced as PDF text in Appendix C.
♦ That traffic flows are approximately constant over time periods of the order of
30 minutes (or the value set by LTP);
♦ That traffic signals operating with fixed cycle times of the order of, say, 90
seconds impose a pattern of “cyclic flow profiles” within the longer time frame.
Thus the main building block in SATURN is the cyclic flow profile (CFP), the flow
of traffic past a certain point as a function of time. For example, we assume that if
one were to stand downstream from a s et of traffic signals operating at a fixed
cycle time of 75 seconds one might observe a pattern of flow as illustrated in
Figure 8.1.
In other words there would be cyclical surges of traffic corresponding to the green
period at the lights and periods of minimal flow corresponding to the reds. Each
75-second CFP would be identical to every other over the full 30 minutes
simulation period, thus enabling us to simulate only one, in this case, 75 second
cycle rather than the full 30 m inutes with consequent reductions in computation
time.
The basic principles of cyclic flow profiles are well tried and tested, for example in
the TRANSYT program. (Robertson, D.I. (1974) Cyclic flow profiles. T .E.C. 15
pp.640-1).
♦ the ACCEPT pattern, the pattern of traffic which can actually make the turn;
average number of vehicles waiting for a s uitable gap to appear. For further
details see Section 8.4.8.
The best way to appreciate the definition of and the interaction between the
various cyclical flow profiles is to use the node anal ysis functions within PIX
(and/or SATLOOK) to examine actual simulation nodes; see 11.1.1 and 11.12.
8.1.4 The “Movement” of Traffic via OUT/IN CFPs: NTS and NITS_M
As the OUT pattern from one junction generates the IN profiles for the next
junction traffic, in effect, “moves” through the network.
Since the IN profile at the upstream of link A,B is derived from the various OUT
profiles at A node B cannot be fully simulated until A (and all of B’s other upstream
nodes) have been s imulated. Similarly A cannot be fully simulated until all its
upstream nodes have been simulated as well. Thus starting at node B we can
follow the simulation backwards until we wind up at node B again. Simulation is
therefore an iterative process in which we iterate over each node in turn (generally
in numerical order but see 8.3.4 for alternative strategies) until convergence is
achieved as explained further in 8.3.
The parameter NITS sets the maximum number of internal simulation iterations
(default of 20) while NITS_M (which defaults to five) sets the minimum.
Note that the average level of cyclical flow is essentially determined by the
assignment but the shape of the profile is determined by the simulation.
We further note that if the modelled cycle time LCY differs at the “upstream” and
“downstream nodes” then any “shape” associated with the OUT CFPs is
effectively lost at the point of flow transfer so that, in that situation, the IN profile is
assumed to be flat but with the correct level of flow. By contrast, if the two nodes
have different values of NUC, the shape of the IN CFP’s is retained but suitably
averaged per IN time unit. For further details please see Section 15.15.3.
Turning delays at dummy nodes, are by definition, always zero although there
may be link delays if capacity-restraint curves are used on the in-bound arms; see
8.4.4.
We repeat the advice in Section that 5.1.1.1 that the use of dummy nodes is
strongly discouraged except in certain very precise circumstances
♦ Set the ACCEPT value for each time unit equal to its turn saturation flow; see
6.4.6.
♦ If the exit link is blocking back (i.e. the queue on that link exceeds its stacking
capacity) reduce the value per time unit by a uniform “blocking back factor”;
see Section 8.5.
♦ If traffic signals reduce it to zero during the red phases (such that if the phase
change occurs in the middle of a t ime unit an appr opriate adjustment is
made).
♦ Reduce it further to allow for lanes shared with other turning movements.
See 8.9.2 for interactions with traffic on the same arm and 8.8.3.3 for the
interactions with traffic on other arms (which only occurs with merging
movements).
♦ For X-turns at signals (i.e., right turners which are opposed by straight ahead
vehicles in the opposite direction during the green stages) allow a maximum
of TAX vehicles to clear at the end of each green stage from the centre of the
junction (where TAX is user defined and may be link-specific (6.13); default
2). See 8.2.4.
♦ In the case of “blocked” and “unblocked” movements sharing the same lane
at signals (e.g. a lane where straight ahead vehicles can go on green but
right-turners have to wait) a certain number of unblocked vehicles are allowed
to go at the “head of the queue”, their number being determined by their
relative proportion (based on a pr obabilistic argument as to where in the
queue the first blocked vehicle will occur). See 8.2.5.
♦ If flared lanes have been explicitly coded add extra capacity for those turning
movements which may use them directly and/or for turns in lanes which have
been “relieved” by the flares. See 8.2.6. (N.B. New in 10.9.22)
♦ If the link has been coded as a “capacity restrained” simulation link and the
total capacity at the junction exceeds that of the link then the ACCEPT values
of every turn are factored down in order to equal the mid-link capacity. See
6.4.12 and 8.4.4.
The turn capacity is then determined by summing the individual ACCEPT's per
time unit.
We further note the point made in 6.4.6 that if there are additional effects which
influence the capacity but which are not included in the above set (e.g. the effect
of pedestrian crossings) then it is essential that the user incorporates these
additional effects within the input data, e.g. by reducing the saturation flow.
C = S × P1 × P2 × ...
where:
C is the entry capacity
S is the (minor) saturation flow (with zero cross traffic)
P i is the probability of a gap in opposing stream i.
The individual probabilities P i are calculated from formulae such as:
Equation 8.2
GS
Vi
P=
i 1 −
Si
where :
V i is the opposing major flow
S i is the saturation flow for the major movement
G is the gap parameter
Hence P goes from a maximum of 1 at V i = 0 down to P = O at V i = S i (but see
CAPMIN below) with a power defined by G.S i . This formula would be applied in
the case of an “absolute” give way, e.g. for minor arm traffic at a priority junction
giving way to major flows.
However variations are used to represent other less clear-cut situations. For
example, consider two minor arms at a priority junction, both of which feed into the
same exit or else cross and for which there is no well-established priority rule. In
such cases SATURN assumes that the two movements “share” and that the
probability of one finding a gap in the other is given by:
Equation 8.3
GS
V
Pi =0.5 + 0.5 1 − i
Si
and vice versa. H ence each movement receives at least 50% of the available
time and must look for gaps in the remaining 50%.
8.2.3 CAPMIN
Finally, in order to prevent the entry capacity going to zero whenever V i = S i a
minimum capacity CAPMIN may be specified. CAPMIN represents the fact that
as major flows reach capacity they also tend to travel at very low speeds such that
minor road vehicles can force their way in. Therefore the ultimate capacity is the
maximum of either CAPMIN or equation (8.1).
(N.B. Prior to 10.6 CAPMIN was applied at the level of the cycle; i.e., if the total
capacity as summed over each individual time unit were less than CAPMIN then
they were factored up to equal CAPMIN. In 10.6 the rule is applied at the level of
the time unit; i.e., if the capacity per time unit were less than CAPMIN it would be
factored up. If the flows are relatively flat, i.e., if there is no pronounced platooning
due to traffic signals in the vicinity, then the differences are very small; but, if there
8.2.4 Stacked Vehicles Clearing at the end of Green; Link-Specific TAX Values
As mentioned above (note 6, 8.2.1) up to ‘TAX’ vehicles can clear at the end of
each green phase for X-coded turns at signals in order to represent the behaviour
of vehicles which “stack” in the centre of the junction and only clear once the
green phase has ended.
N.B. Post release 11.1 the above rule has been modified such that if an X-turn at
signals only appears in phases which terminate with a stage in which the X-turn is
unopposed (i.e., a l ate cut-off) then the extra allocation of TAX pcus is not
allocated.
Originally TAX was a u niversal parameter; with SATURN 9.4 it became a l ink-
specific parameter which may be set either using the X-file facility (6.13) or (post
10.9) on individual link data records (see 6.4.14 and 6.4.15). Thus links with very
wide junctions or with multiple stacking lanes may be assigned a much larger TAX
value than more constricted junctions. Users will probably find that, post 10.9, the
“extra line convention” described in 6.4.14 will be the most convenient method to
define link-specific TAX values.
Note that TAX refers to the total number of stackable pcu’s, not the number per
lane.
TAX plays a further role in allowing unblocked vehicles to pass in a lane shared
with an X-turn; see 6.4.9.5 and 8.2.5.1 below.
p
n=
(1 − p )
where p is the probability (fraction) of unblocked vehicles. Thus if 3/4 of vehicles
in the queue are unblocked on average 3 will proceed.
SATURN therefore adds the equivalent of n v ehicles to the ACCEPT profiles of
the unblocked turns at the start of the green phase.
(Note: the above layout represents the use of the right turn FLAREX lane but also
equally applies to the left-turn FLAREF lane).
A represents the ahead movement in the “main lane” while F represents the flared
movement which diverges from the main lane into the flared lane. The length of
the flare can stack up to X PCUs. Let Q A and Q F represent the length of the
queues at the stop line at any point in time for movements A and F respectively.
Priority Junctions
We consider first the case of priority junctions which are somewhat simpler than
traffic signals although most of the modelling principles apply to both. Extra rules
for signals are dealt with below.
Thus, at a priority junction, we may envisage four different scenarios:
(1) Both Q A and Q F < X
(2) Both Q A and Q F > X
(3) Q A > X but Q F < X
(4) Q A < X but Q F > X
Thus in case (1) both lane queues are shorter than the flare and there is no direct
interference between either turn and they should both experience their “normal”
accept profiles at the stop line (i.e., allowing for saturation flows, give-ways,
red/green signals etc. etc.) subject to the constraint that their total capacity cannot
exceed the normal combined capacity from a single lane.
In case (2), where both queues stretch the full length of the flare and beyond the
point of divergence, the capacity is determined primarily at the point of
divergence. Thus, if there are just two turning movements, ahead and flare, we
calculate both their “downstream” or “stopline” capacities, where they each occupy
a single lane and do not interfere with one anot her, plus their “upstream”
capacities at the entry point to the flare where they do restrict one another. The
movement with the maximum ratio of upstream to downstream capacities is
judged to be the “most restricted” or “major” flow and its capacity equals its
downstream capacity. The capacity of the other or “minor” term is then equal to
its upstream capacity factored down by the downstream to upstream ratio of the
“major” flow.
In simpler terms this means that the “minor” capacity C m = F m x C M / F M where F
represents flow, C is capacity and subscripts m/M represent minor/major.
For more than 2 t urning movements the same principles apply although the
equations are slightly more complicated.
In case (3) the accept profile for A is set by what happens at the stop line but the
accept profile for F is limited by the amount of traffic that can enter the flared lane
upstream. This in turn equals the OUT profile for movement A factored down by
the ratio VF / (VF + VA); i.e., each time an A vehicle moves up what is the
probability that the next vehicle in the queue is an F which can freely enter the
flared lane?
Case (4) is simply the reverse of case (3).
Case (2) gives minimum capacity, case (1) the maximum with cases (3) and (4)
intermediate. The final accept profile / capacity is a probabilistically weighted sum
of the four cases such that as the flare length increases the best-case scenario (1)
becomes increasingly more likely relative to the worst, (2), and the overall
capacity increases.
In order to calculate probabilities per case the model is sub-divided into signalised
junctions and priority junctions, the distinction being that in the former we model
queues deterministically so that we “know” at any time unit during the cycle which
“case” is active, whereas in the latter we use a probabilistic model to determine
the probability distributions of queues at any point during the cycle and therefore
the probability splits between the 4 cases.
Signalised Junctions
Signalised junctions differ primarily in that the queue profiles are “deterministic”
rather than “stochastic” although the general principle of determining whether the
“shoe pinches” either upstream or downstream still applies.
An additional factor, however, at signals is that during the red phase it is assumed
that both A and F vehicles will build up queues in their distinct lanes and that there
is therefore a fixed “reservoir” of traffic which can exit at the stopline capacity once
the lights go green independent of any restrictions at the point of entry to the flare.
The stopline capacity continues to apply as long as there are vehicles left in the
reservoir which is continuously modelled by subtracting those vehicles which can
exit at the stopline while adding the maximum (restricted) entry flow at the flare
entry.
dummies) are coded with a c ommon cycle time. This may be ac hieved by
ensuring that the global parameter LCY (upon which the ‘cycle times’ of non-
signalised junctions are universally set) reflects the cycle time of the co-ordinated
traffic signals.
Section 15.31 discusses the various options available within SATURN to optimise
signal settings (stage times and offsets). See also Section 12.2 for information on
SATOFF for offset optimisation on it own.
Finally we may note that improved signal co-ordination tends to improve the
overall convergence of the assignment-simulation loops; see note 9) in Section
9.5.1.
The next two sections describe parameters which are used to monitor either both
effects combined (8.3.2) or the between effects on their own (8.3.3).
would indicate major convergence problems at node 21, possibly minor problems
at node 47, but none elsewhere.
The internal convergence - or lack of it - can cause certain apparent
inconsistencies in the outputs from the analysis programs such as SATLOOK
which, by re-simulating junctions with the IN patterns fixed, allows for changes in
the local OUT profiles which can, in turn, alter turn capacities, etc. However,
generally speaking, such problems are rare.
Note that the IN and O UT convergence measures are evaluated differently (the
former is averaged over links, the latter over turns) which means that they are not
strictly “additive”; i.e., one cannot obtain a precise measure of the within-junction
convergence by subtracting IN from OUT. Nonetheless if the IN convergence is
zero and t he OUT is positive then all the convergence problems are internal.
Equally if both are significantly greater than zero it probably means that the main
source of convergence problems arises from between-junction effects (e.g.,
changes in blocking back) rather than internal.
The IN convergence values are printed along with the OUT’s in a table that lists
the 10 w orst converged nodes in order of their OUT values. Both may also be
obtained and printed for individual nodes in a variety of ways (e.g. within P1X
Information/Nodes and Convergence).
commodity that determines the simulation of turns from link A-N will be the IN
profiles at the upstream node A.
Thus, immediately after simulating node A and obtaining updated IN profiles on
link A-N, we carry out a “mini” or “link-specific” simulation of node N in which we
only simulate traffic on the single link A-N. CFP’s at all other turns at N are held
constant. Equally we simulate traffic on B-N and C-N immediately after B / C has
been simulated.
So in this sense node N may be considered as a “moon” of nodes A, B and C and
therefore it need not be directly included in the topological list of simulated nodes
which only consists of “suns”, i.e., those nodes where there is some form of
between-arm interaction
There is one qualification to this which is that if one or more arms at a node are
blocking back then the simulation is also influenced by affects “downstream” and
therefore that node may no longer be considered as a “moon” and must be
included within the main topologically ordering. Thus the order of node simulation
is not necessarily fixed over simulation iterations.
Those simulation nodes which are considered as moons may be displayed as
“selected nodes” within P1X; see Section 11.6.5.3.
♦ the “geometric delay” term TDEL applied to all give-ways at priority junctions
and roundabout turns;
♦ the time spent in the queues given as cyclical flow profiles (DA code 1628;
see App. J.3.);
♦ the “random delays” described in 8.6 (DA code 1658; see App. J.3.);
The transient delay is the sum of all four (DA code 1653; see App. J.3.).
With respect to over-capacity delays, since SATURN assumes constant arrival
rates over the time period, the simulated permanent queues (and delays) increase
linearly from a zero initial queue to a maximum at the end of the time period (see
Fig. 17.3). In this case the average time spent in a permanent queue per arriving
vehicle is given by:
Equation 8.4
( LTP / 2 ) ∗ (V − C ) / C
Note that a v ehicle which arrives at the start of the time period would suffer no
extra delay (since the queue is zero) whereas a vehicle arriving at the end of the
time period (i.e., LTP) suffers the maximum delay equal to twice that given by
(8.4).
Clearly LTP is a c ritical parameter in determining delays (in particular for over-
capacity turns where the queuing delays can far exceed the transient delays. Its
role is discussed further in 8.4.5.
(The case of multiple time periods is more complicated since the initial queue
need not be zero and permanent queues may either increase or decrease but the
distinction between transient and queue delays still holds; see 17.6.)
Note that with queuing delays (assuming as above that the queue increases over
the time period) part of the time the arriving vehicles spend in a permanent queue
will be outside (later than) the time period simulated. Normally this component of
delay is included in the definition of the average delay per turn. H owever in
certain simulation summary statistics a di stinction is made between the vehicle-
hours spent in permanent queues within the time period and in later time periods;
see Section 17.8.
See section 8.4.6 for a discussion of extremely long simulated delays being
calculated.
t=
AV n + t0 V <C (a)
t AC n + t0 + B ∗ (V − C ) / C
= V ≥C (b)
Where:
t o is the free-flow travel time (in seconds),
C is the turn capacity (in pcu/hr), and
B is a constant worked out by the program equal to one half the time period being
modelled. (Numerically B = 30*LTP where LTP is in minutes and B in seconds.)
(See equation (8.11) for a m ore complex form of the same basic equation
appropriate to turns which share lanes.)
Note that the mathematical form of the equation is identical to that used by buffer
links (see 5.4) so that we can refer to it as the “standard form”.
The general form of the relationship is shown in Figure 8.3.
Figure 8.3 - Flow Delay Curves and their Fitting Points
V = ∑ aiVi
Where:
V i is the flow for turn i, and
a i is a weight proportional to the inverse of the capacity of that turn “at the
stop line”.
Hence heavily impeded turns (e.g. due to give-ways) are assigned a greater
weight than unimpeded turns.
Which flow-delay curve is used in the assignment is determined by the value of
ROSIE at that point - see Section 7.1.3 where a different assignment algorithm is
employed with ROSIE = T.
We may also note that the method by which turning flows at roundabouts are
added together and m odelled as total entry arm flows (see 8.7.1) is an i mplicit
example of ROSIE. In this case, however, the weighting factors are all 1 and the
treatment is applied whether or not ROSIE = T.
t (v) =
t0 + AV n V <C (a)
where the parameters t o , A etc. are defined via the .dat file. C is interpreted as
the “link capacity”.
For flows in excess of capacity it is assumed that the link travel time remains fixed
at t C = t o + A * Cn. The reasoning behind this assumption is as follows.
The link capacity C should be interpreted as the limiting capacity of the link itself,
generally a function of the minimum road width along the link, as opposed to the
“junction capacity” C j set at the downstream end. Generally speaking on most
urban roads, “case (a)”, C j < C and therefore the question of what happens to the
link speeds when flows are in excess of C j is not highly relevant since the travel
times on the links are almost certain to be “swamped” by the queuing delays at
the junction.
However for some sorts of links, in particular motorway-style links, “case (b)”, the
above reasoning does not hold since the “junction” and “link” capacities are
effectively one and the same thing. Flows in excess of capacity, in a very strict
sense, cannot exist, although in SATURN flows in excess of capacity are allowed
to enter a link if there is sufficient capacity upstream. We would, however wish
them to be simulated as having travel times in excess of t C . How this is done is
explained next.
In either case an extra condition is imposed on the capacities of the turns at the
downstream end of speed-flow links which is that their “total” capacity C j must be
less than or equal to the link capacity C. If it is less - case (a) above - no further
action is taken; if greater - case (b) - the individual turn capacities are factored
down such that C j = C.
In the event of V > C and C < C j the turn capacities will be r educed (“choked”)
such that queuing occurs at the turns. As flows increase beyond C there will be
no increase in their “link” travel times, fixed at t C , but there will be a rapid increase
in their junction queuing times. H ence on m otorway-style links the total travel
time - link plus turn -- is an increasing function of flow, even though one
component, the link time, has an upper limit. In effect the extra link travel time is
now associated with a queue at the junction.
It also follows that if queues do form due t o the mid-link capacity then the exit
flows from the downstream junction will be limited to the mid-link capacity C, i.e.,
“flow metering” (8.2.8) occurs, and, equally, blocking back may occur at the
upstream junction
N.B. The reduction in junction capacities, flow metering and/or blocking back do
not apply if the downstream junction is a dummy node (5.1.1.1), in which case
the turn capacities at the dummy node remain, in effect, at infinity and their delays
at zero. On the other hand changes to the cruise speeds do apply to capacity-
restrained links approaching a dummy node.
An important side-effect of this modelling framework is that the effects of blocking
back and/or flow metering along motorways may now be s imulated and will be
determined either by the explicit capacity of the link or by the junction, whichever
is the lesser.
Finally we note that any “delays” on the link due to capacity-restraint curves are
distinct from the queuing delays “at the stop-line” and are modelled quite distinctly.
One obvious difference is that the capacity-restraint delays are the same for all
traffic on the link whereas the stop-line delays may differ for individual turning
movements.
The fundamental assumption within SATURN is that flows remain constant (i.e.,
the profile is flat) over the time period LTP at the rate specified by the trip matrix.
Clearly this must be seen as an approximation to what happens in real life where
flow rates change in a c ontinuous fashion over time. As illustrated in Figure 8.4
SATURN approximates the (real life) continuous profile by a flat profile such that
the total flow within the time period modelled is the same (or should be the same)
in both cases. In this example SATURN slightly underestimates the flow during
the “peak of the peak” and correspondingly overestimates the flow during the
shoulder; clearly the “flatter” the true profile is, the better the approximation.
If the “structure” of the observed flow profile does not fit nicely into the rectangular
assumption illustrated in Figure 8.4 then the user may need to consider modelling
multiple time periods as discussed in Section 17.3.
If flows are in excess of capacity in a large number of links across the network the
over-all time spent in over-capacity queues can be a significant component of the
total travel time and i t becomes highly important for scheme evaluation to get
those numbers correct. Which, in turn, means that it is highly important to get LTP
“right” so that taking simple arbitrary values such as 30 or 60 minutes may not be
all that useful. Indeed LTP should be regarded as a base-year “calibration”
parameter which needs to be carefully considered.
It should also be pointed out that the traditional default value used in SATURN for
LTP, i.e., 30 minutes, is probably not a very sensible default for modelling peak
conditions since in real life most peaks persist for longer than 30 m inutes. You
have been warned! And a warning message is generated in SATNET if LTP is not
explicitly set in the network .dat file, (On the other hand 30 minutes may quite a
reasonable default for use with multiple time periods.)
In addition users may need to consider changing the value of LTP in future year
forecasts if it is felt that growth in the future is not going to be uniform over time of
day but that some form of “peak spreading” is likely to occur whereby peak flows
do not so much increase “vertically” but tend to spread “horizontally”. Thus an
alternative to assuming that the trip matrix grows by, say, 2% per annum may be
to assume that LTP grows by 2% per annum. C learly this may introduce a
number of other problems such as how to evaluate and compare flows over 60
minutes in the base year with flows over 70 minutes in the future; in practice
SATURN users are unlikely to vary LTP from base-year values, but the possibility
needs to be considered as do the base-year calibration issues.
We may also note that the simple rule that delays are proportional to LTP is not
necessarily strictly correct since, as you increase LTP and therefore increase the
delays on ov er-capacity links/routes, more traffic will divert to alternative routes.
The rate of increase may therefore be less than linear. Hence the choice of LTP
also has an impact on assigned flows as well as delays and equally has an impact
on blocking back (8.5).
The upper time limit MAXQCT may also be interpreted in terms of an upper V/C
limit. We may see what this is by solving an equation:
=
MAXQCT ( LTP 2) *(V C − 1)
Thus if MAXQCT = LTP then the upper limit in Fig 8.5 corresponds to V/C = 3; if
we take the default values of MAXQCT = 60 and LTP = 30 then V/C = 5.
We may therefore see that MAXQCT only “kicks in” at V/C ratios which are much
higher than would be normally be expected in most networks. However, given that
initial stages of the assignment very often generate extreme solutions with
abnormally high V/C ratios, it is possible that the upper delay limits will at least
have some bearing on the pattern of assignment convergence.
♦ Very high PASSQ flows (i.e., initial queues well in excess of the capacity of
the subsequent time period);
♦ Very high V/C ratios (such that MAXQCT would come into play);
♦ Lane sharing;
♦ Insufficient capacity for traffic from external zones to enter the simulation
network.
The resulting problems were characterised by extremely poor convergence
between the simulation and the assignment.
As a result the methods used to calculate flow-delay curves and/or lane sharing
were “tightened up” to remove the problems and to provide much more robust
solutions.
It needs to be stressed that these changes only really affect networks which are
very heavily overloaded for one reason or another so that, for the vast majority of
tested networks, the effects will be m inimal. Therefore, in order to assist users
who wish to replicate previous results using SATURN 10.5, a new logical
parameter Q105 (set under &PARAM in network .dat files) has been introduced. If
Q105 = T (its default) the new rules are used; if Q105 = F the old rules are used.
Users are strongly advised to keep Q105 = T. Even if Q105 is F i t does not
guarantee that old results will be replicated since, inevitably, there are a number
of other new features in 10.5 which cannot be removed and which will also give
potentially slightly different results.
N.B. From release 10.9 onwards Q105 is always assumed to be T, i.e., setting to
F has no effect.
linearly and might, potentially, be reduced to zero at some point before the end of
the time period.
8.4.8.7 Comments
Finally we note that the queuing model used in the SATURN simulation is
somewhat simplified. For example, it is basically a “vertical” queue model in which
vehicles arriving at the downstream stopped line are added to the queue. It
therefore ignores the fact that the vehicles actually arrive at the end of the queue
a bit further back on the link and therefore spend a bit longer in the queue than in
“cruise mode” (although the total travel time on the link is unaffected). It also
ignores the phenomenon whereby, at traffic signals, the queue continues to
progress backwards at the start of a green phase until the “start wave” meets up
with the “arrival wave” (in terms of shock wave theory).
This, along with other sources of error in calculating flows and capacities, means
that any queue lengths calculated by SATURN need to be t aken with a l arge
pinch of salt. For example, it is not very realistic to expect the modelled queue
lengths to closely reproduce observed queue lengths (however they are defined);
at best one might hope to classify a link into very broad bands such as “well below
capacity”, “roughly at capacity”, etc., etc. and hope that at this level modelled and
observed queue lengths match.
resulting from the reduced entry exactly equals the stacking capacity. (N.B. Note
that the flows in question are always actual, not demand.)
The blocking-back factor is applied to capacities, not to actual entry flows, and its
value is in fact primarily determined by the V/C ratios of the feeder turns, not the
degree of over-saturation of the link itself. For example, imagine a link which is fed
by a single turn with an (actual) flow of 500 pcu/hr and a capacity of 1,000 pcu/hr,
and that the entry flow of 500 pcu/hr causes a queue which marginally exceeds
the stacking capacity S but that reducing it by 1 pc u/hr would yield a queue
exactly equal to the stacking capacity (i.e., Q(499) = S, Q(500) > S). Here BBF
would need to be 0.499 in order to reduce the capacity and the flow to 499 pcu/hr,
despite the fact that the queue was only marginally over-capacity. H ad the
capacity been 500 t he blocking back factor would only have been 49 9/500 =
0.998.
Generally speaking, if a blocking back factor is applied on a link A-B then there
must be one or more turning movements into A-B for which the flow exceeds
capacity and therefore for which over capacity queues (8.4.8.2) and V>C delays
(8.4.2.2) result. There is, however, one exception to this rule as described in note
g), 8.5.2.
(Previously (pre 9.3) centroid connector flows were, in effect, given priority
on blocked links. Hence, in the above example, the centroid entry flow of
500 was allowed in full but the BBF would have been set so as to reduce the
upstream entry flow to 100. This could lead to potentially extreme situations
where, if the zonal flow exceeded the maximum permissible flow on its own,
the upstream entries would be reduced to near zero.
c) Blocking back can extend over several junctions; e.g., a queue at A can
cause blocking back at B, the reduction in capacity at B can cause queues
which block back to C, etc., etc. (Note however that if B were a dummy link
in the middle of link C-A the queue would only progress as far as B and
there would be no queue on C -B; in such cases it would be pr eferable to
represent B as a priority junction where the effect of blocking back would be
included.)
the assumption that the capacities of the upstream links are not
systematically reduced by a blocking back factor.
g) There is, however, one rider with respect to the (relatively infrequent)
situation where transient queues exceed the stacking capacity but there are
no downstream turns where V>C. For example, considering the link A-B with
the numerical values given in 8.5.1 above, imagine that an entry flow of 500
gives a transient queue at B which exceeds S but for which there are no
V>C queues at B. If, furthermore, a minimum entry flow of 750 w ould be
required in order to create a V>C queue at B then a blocking back factor of
0.75 is applied to reduce the upstream entry capacity to 750. Which, given
the current entry flow of 500, will not limit the flow entering A-B and which
will not create permanent queues at A. However, by creating a capacity of
750, it will at least “discourage” any future assignment from assigning a flow
in excess of 750 to A-B.
On the other hand if the minimum entry flow at which V>C at B were above
1,000 then no blocking back factor would be applied to A-B.
h) The choice between basing blocking back on average or maximum queues
is determined by the logical parameter QUEEN (see 6.3.1), FALSE or TRUE
respectively. Setting QUEEN= FALSE, average queues, is probably
recommended for models of a single time period (no PASSQ) where the
over-capacity queues start by definition at zero and grow linearly so that the
maximum is always at the end of the time period and the average over-
capacity queue is therefore half the maximum. This therefore reduces the
onset of blocking back which, from the point of view of convergence, is
probably a good thing.
However for multiple time periods there are distinct advantages in setting
QUEEN= TRUE, maximum queues, since one might expect that the
maximum queue, once formed, would continue to block back at the same
level over several time periods until it dissipated. This also minimises
problems of oscillating queue lengths. However, we note that this option is
very rarely used with user feedback suggesting that the resulting levels of
congestion in the subsequent time periods were too high. Further feedback
from user’s applications would be welcome.
A-B-C) being the restricted flow due to blocking back and therefore less than the
saturation flow S 1 .
However, prior to SATURN 10.4, the yellow-box give-way rules only applied to
priority junctions, not when junction B was signalised. Thus, at signals, if the
turning traffic out of C-B were coded as priority marker X, it was assumed that
(during those stages when both movements had green) the “major” flow across A-
B-C would be c ontinuous and t hat there would be no g aps available. Thus the
only way that X-turners could cross A-B-C would be as “TAX” vehicles at the end
of each green phase (or, clearly, during any stages when the crossing traffic had
its own exclusive green signal).
In 10.4, however, the yellow-box rules were extended to also cover the above
situation. This meant that signalised X-turners were given a g reater capacity at
blocked back junctions than they would have had in earlier versions. N.B. The old
situation may be retained by setting NFT = 103 or less (although in the initially
released version 10.4.10 this facility was not included and t he new rule was
effectively “hard-wired in”).
calculated for the upstream link A-B in order to restrict entry flow into A-B. The
objective, therefore, is to create a (downstream) queue at Y-Z which will stretch
back precisely to (upstream) node A.
In addition, if the chain blocks back, each internal link within the chain blocks back
into its upstream feeder link so that queues on internal links within the chain
should equal their individual stacking capacities. Thus Y-Z blocks back into X-Y,
X-Y into W-X etc. etc. until the upstream link A-B has been reached.
If, on the other hand, the total queue along the chain does not exceed the total
chain stacking capacity then there is no “ internal” or “intra-chain” blocking back
modelled either. For example, referring to Fig. 8.6(b), if Q AB + Q SA < S AB + S SA
then (a) there is no blocking back at S but (b) neither is there blocking back at A
even if Q AB > S AB ,
The purpose of this rule is to reduce the overall application of blocking back to
“major” junctions so as to minimise any convergence problems which may be
created by blocking back on very short “internal” links.
STOP PRESS: Post release 11.1.9 the “internal” blocking back as described
above has been r emoved in order to improve convergence so that currently the
full queue is allocated to the most downstream link (i.e., Y-Z above), the blocking
back is applied at the upstream link (A-B above, so no change there) and there is
no blocking back and/or queues on any of the intermediate links.
We note that the definition of when a series of links constitutes a chain is set in
the network build stage by SATNET whereas, pre 10.9, the identification of
intermediate nodes was carried out entirely within the simulation. 10.9 has also
extended the definition of a chain to several alternative configurations as depicted,
for example, in Figure 5.2 (b), (c) and (d).
However users may explicitly allow for the effect of lane reductions etc. by the use
of certain coding “tricks” as explained next.
“random delay” component which is calculated from the following formula as used
in the traffic simulation model TRANSYT:
Equation 8.8
=(d ) {
(T / 4q ) ( q − s ) + ( 4q / T )
2 1/ 2
}
+ (q − s)
Where:
(d) = the average random delay per vehicle
T = the time period over which:
q = the arrival rate is q (in pcu/hr), and
s = the capacity (in pcu/hr).
which in the limit of q = s, i.e., capacity flow, reduces to:
( d ) = ( T / 4q )
0.5
For over-capacity turns, q> s, random delays are “capped” at the maximum value
calculated for q = s. In addition the definitions of q and/or s may be affected by
lane choice and/or blocking back; see 8.6.3 to 8.6.6 below.
As an example for a flow equal capacity of 1800 pcu/hr with LRTP = 30 (minutes)
<d> would be 30 seconds. For LRTP = 60 minutes it would be 42.4 seconds or
with flow and capacity doubled it would reduce to 21.2 seconds. At 90% of
capacity (q = 1620, s = 1800, LRTP = 30) <d> would be 9.16 seconds.
Hence the contributions from the random delay components are not particularly
large and, in terms of modelling “realism”, are probably preferable to assuming
zero or near zero delay for flows right up to capacity. The latter affect occurs in
particular with major arms at priority junctions where, unlike signals, there is no
cause of delays (apart from possibly small perturbations in the arrive profiles due
to platooning from traffic signals which can cause temporary periods of over-
saturation to occur during the simulated cycle). T he introduction of a random
delay component is therefore generally to be recommended by setting LRTP > 0.
Note that in calculating <d> in SATURN the time period T need NOT be identical
to the time period simulated - in fact the value of T used is given by the parameter
LRTP (Length of the Random Time Period) as opposed to LTP. There are two
essential reasons for this:
♦ By setting LRTP = 0 the user can effectively suppress all random delays since
in this case <d> = 0 (not recommended; see below);
♦ The random delays calculated for, say, two successive 15 minute time
periods will not be t he same as the delay calculated for a s ingle 30 m inute
time period. Thus LRTP should be chosen to approximately equal the length
of time since the flow became equal to q, e.g., the beginning of a peak period.
This distinction, however, is probably only critical to users who are using
SATURN to look at successive time periods, not those who are modelling a
single time period.
As a r ule of thumb we would recommend that, for single time period models,
LRTP should be set equal to LTP. For multiple time periods LRTP should probably
be longer than the LTP-values for single time periods but possibly less than the
total time period modelled.
However, whichever value is chosen for LRTP, we would also strongly
recommend that it not be left at its default value of zero since:
a) the additional delay contribution is probably realistic and (b) by making delay
a “smoother” function of flow it makes both assignment and as signment-
simulation convergence easier.
b) applies particularly to major arms at priority junctions where, if LTRP = 0, it is
possible to have zero delay from zero up to capacity flow followed by a
sharp (discontinuous) transition to linear over-capacity delays; see 9.5.1.
For example, consider a 2-lane road in which left turns may only use lane 1, right
turns may only use lane 2 and straight-ahead traffic can use either lane 1 or lane
2. If the straight-aheads actually use both lanes then all three turns will be in the
same single river and they will have the same random delay. However, if the
straight-aheads only use lane 1 then there will be two separate rivers with distinct
random delays.
The problem which this introduces is that the random delays may jump in a
discontinuous fashion with changes in flow as the lane choice shifts between
shared lanes and a s ingle lane. This, in turn, creates problems of convergence
between assignment and simulation.
This problem may be ov ercome if the random delays are based on “ estuaries”
rather than “rivers” where an “ estuary” is defined to be a river assuming that all
available lanes are used by all turns. Thus, in the above example, all three turns /
both lanes would always be in the same estuary independent of the actual lane
choice. If, therefore, we always use the estuary to define the aggregate flows and
capacities for random delay calculations there cannot be any discontinuities in the
calculation.
To use the estuary definition rather than the river definition a l ogical parameter
RTP108 must be set to .TRUE, under &PARAM in the network .dat file. N.B. The
default value for RTP108 was changed to T from F in release 10.9.
Note the same restrictions set by LRTP, RAGS, etc. etc. control where and when
random queues are generated in the same way that they control random delays.
Clearly the end effect of introducing random queues will be not only to increase
queue lengths but also to increase the incidence of blocking back. However by
making the relationship between queue lengths and flows smoother (e.g., there is
less of a discontinuity at V = C) it is to be hoped that it will also improve
convergence,
C S m (1 − VM / S M )
=
GS M
where:
S m is the saturation flow for that entry;
V M is the on-roundabout flow crossing that entry;
S M is the maximum roundabout capacity as defined on the node data record
RSAT (6.4.7);
G is the gap parameter (GAPR).
(N.B. strictly speaking (8.9) is applied to each individual time unit so that the
ACCEPT or capacity profile may vary over the basic cycle time as the circulating
flows vary.)
This is a s omewhat simplified model in that no di stinction is made between the
different possible exits from each entry arm or of the possible allocation of
different exit movements to different lanes. N or does the on-roundabout flow
distinguish between vehicles which are taking the next exit (and might therefore
be expected to be at the “outside” of the circulating lanes and therefore impeding
entry flows the most) and those going on t o later exits (on the inside and
interfering least).
In fact turning flows from the same entry arm at a r oundabout may be s een as
implicit examples of “rivers” as explained in 8.8.2.
This implies that in fact the values of the first and last lanes used per turn on
roundabouts (see 6.4.1) are ignored and set equal to 1 and t he number of lanes
respectively, and equally that the saturation flows per turn must all be equal to the
total saturation flow for the arm as a whole. No turn priority markers are necessary
- the give-way rules are implicit.
The maximum roundabout capacity is also the same for all entry arms and
logically should be greater than or equal to the saturation flow for any input arm
(or, strictly speaking, the saturation flow per arm should be less than or equal to
the circulating capacity).
Delays, whether within the simulation or the assignment, are calculated for each
individual entry arm separately based on the total arrival flow on t hat arm, its
capacity, the probability of gaps, etc. etc. and appl ied equally to all turning
movements from that arm. (But see the next paragraph for additional turn-specific
delays.) If an arm is over capacity then the nominal capacity per turning
movement is allocated in proportion to their flows.
Note that an extra delay is also added to each turning movement at roundabouts
to reflect the proportion of the total circulating time on the roundabout as defined
in columns 16-20 of the 11111 node data records (6.4.1). Thus if the circulating
time on a 4 -arm roundabout is 3 seconds then the circulating time to the second
exit arm would be 1.5 seconds.
We may note that the treatment of delays and flow-delay curves at roundabouts is
an example of the ROSIE option for combining flows in shared lanes; see 8.4.3.
U-turns on 2 -way arms are automatically included for roundabouts coded as
junction type 5 but not 2. S ince logically U-turns should always be po ssible on
roundabouts (although not necessarily widely used) it follows that roundabouts
should always be type 5, not 2. Type 2 only really exists for historical continuity.
VM + K s Eij
where E i is the exit flow on t hat arm (and which therefore exits before traffic
enters). Clearly for a one-way inbound arm E i is zero.
The K s factors may only be defined on a link-by-link basis using the network X-file
facility; see 6.13. There is therefore no universal parameter which may be set as,
for example, with TAX. (In effect the universal default value is zero).
The correction, introduced in 10.6, involves applying CAPMIN at each time unit
rather than over a full cycle.
Pre 10.9 the new check could be removed by setting RB106 = F in &PARAM; post
10.9 RB106 is ignored and the new methods are always used (so that, in effect,
RB106 = T).
8.8.2 Rivers
For certain modelling purposes turning movements and/or lanes are aggregated
together into “rivers” where a river consists of a set of movements where each
member shares lanes with at least one other member. For example, if a left turn
uses lane 1, straight ahead turns use lanes 1 a nd 2 and r ight turns use lane 2
then the left and right turns are in the same river even though they do not have a
lane in common.
Note that the definition of a river is based on “usage”, not purely on lane markings
so that, in the above example, if straight ahead traffic were allowed to use lanes 1
and 2 but (due, say, to heavy right turning traffic) only used lane 1 then the left
and straight ahead traffic would be in one river and the right turners in another.
If one m ember of a r iver is over capacity then all members are and t hey have
equal V/C ratios and discharge, in effect, as a single queue. The same principle
applies equally to individual lanes. This has implications for the way in which the
over-capacity delays are calculated, particularly under the ROSIE option (see
7.1.3 and 8.4.3).
Information on ac tual lane choice, the grouping of turns into rivers, various
definitions of capacities etc may be found using the numerical output tables option
within SATLOOK (11.11.1). An explanation of the tables used is given in the next
section.
We may also note that all turning movements from the same entry arm at a
roundabout are implicit examples of rivers since they are assumed to potentially
share all available lanes. See also 8.7.1.
The amount of traffic transferred between lanes is calculated using the (assumed)
principle that each lane of the “major” arm A-B carries equal flow including the
flow D-B-C allocated to the merging lane (in this case lane 1) but factored by a
parameter APRESV (as in “apres vous”) which indicates the willingness of drivers
to accommodate merges. Thus if APRESV = 0 no preference is given to merging
traffic whatsoever, if APRESV = 1.0 they are effectively given equal weight.
Mathematically we could write:
Equation 8.10
() ( )
+ VDBC ∗ APRESV =
1 2
VAB VAB
Note that in the case of a Y-merge the implicit assumption is that there is always
one and only one central shared merging lane independent of the number of lanes
on the two merging arms and on t he number of arms downstream. Thus our
model is one of 2 + 2 lanes into 3 or 3 + 3 into 5 even if the downstream arm had,
say, 4 lanes in both cases. (The presumption is that 2 + 2 into 4 would not have
been coded as a Y-merge in the first place.)
There is therefore a strong implication that both arms will have more than one
lane, most likely the same number, and indeed this was the presumption when T-
merges were first introduced into SATURN, However, since then, it has become
evident that Y-merges can also be appl ied perfectly happily at “asymmetric”
junctions (i.e., a different number of lanes on b oth arms), of which entry ramps
onto motorways are the most common example.
Our current “best advice” is therefore that double-M merges should be used in
preference to single-M merges in asymmetric situations such as motorway entries
where entry priority is in some sense “shared” between the two flows, even if, in
practice, the on-motorway traffic may have a slightly “higher priority” than the entry
traffic. A potential problem in coding a m otorway entry ramp with an M on t he
ramp only is that if the flow on the main motorway nears or exceeds capacity the
probability for gaps on the entry ramp nears zero and the entry capacity goes to
zero (or, strictly speaking, CAPMIN).
Note that this advice (post January 2012) contradicts previous advice to use
a single-M coding for motorway entry ramps.
If one arm has only one lane (e.g., a single lane ramp) and the other has multiple
lanes then clearly it is no longer possible to adjust flows on the single lane. Indeed
a Y-merge where one arm has one lane and the other has multiple lane leads to a
“Serious Warning” (131/132) since it is possible for the multi-lane approach to
significantly block the entry capacity for the single lane;
Note that the case of a single lane on both entry arms of the Y is accepted
although possibly unusual in practice.
Note that, prior to release 11.1, in the case of a Y-merge the parameter APRESV
was not used as both merging streams were given equal weight with the flows
into which they are merging: in effect APRESV = 1.0 here and no “voluntary” lane
shifting took place. However under release 11.1 traffic flows on both arms are
allowed to change lanes upstream of the Y-merge as reflected by their (link-
specific) APRESV values. By reducing traffic in the shared lanes this increases
the capacity for both movements.
Cm S m (1 − VM S M )
=
GS M
We note the critical role played by G S M . Figure 8.9 illustrates graphs of C m vrs V M
under three possible situations where: (a) G S M < 1, (b) G S M =1 and (c) G S M >
1. Thus, under (a), C m is relatively insensitive to the major flow V M until it
approaches capacity whereas with (c) C m decreases much more rapidly as a
function of V M .
0.8
0.6
Cm
0.4
0.2
0.0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
VM SM
(Vm + VM ) Sx < 1
where S X is the saturation flow (assumed equal to capacity) of the exit lane. In
general, within SATURN, we will not have the value of S X specified, particularly if
it is at the upstream end of a simulation-coded link. However, if we assume that
the physical characteristics of the exit lane will not be that different from those of
the two entry lanes, we can approximate (Equation 8.12) as:
Equation 8.13
Vm S m + VM S M < 1
or
Equation 8.14
Vm ≤ Cm ≤ S m (1 − VM S M )
Equation 8.14 therefore imposes a second restriction on C m such that the final
capacity will be the minimum of Equation 8.11 and Equation 8.14. Note that
Equation 8.14 is identical to that represented by case (b) in Figure 8.9 where GS M
= 1. Thus Equation 8.14 only sets a lower capacity C m in case (a) in Figure 8.9
when GS M < 1 or G < 1 / S M . In other words the capacity restrictions due to
funnelling place a lower limit on the effective value of the gap for merging, G (i.e.,
GAPM) = 1 / S M .
If the critical gap is greater than 1 / S M or the merge is not considered to funnel
then no further capacity restrictions above and beyond Equation 8.11 are
considered.
CM CM (1 − Vm S m )
=
where V m and S m are the (actual) flow and t he saturation flow of the minor
merging turn and C M ’ is the “pre-squeeze” capacity of the major arm lane (subject
to the restriction that C M > CAPMIN).
Note that the actual minor-arm flow V m is restricted to be l ess than its capacity
calculated after gap acceptance and/or funnelling, i.e. Equation 8.11 and
Equation 8.14, which, in turn, depend on the flow on the major arm. Hence there
is a state of “equilibrium” between the two movements
In general this reduction in capacity should not be sufficient to convert the major
movement A-B-C from under capacity to over capacity on the basis that, if A-B-C
were near to capacity, then there would be relatively few gaps available to D-B-C
to enter and the traffic that would be allowed to enter would be less than V ABC –
V DBC . However, it may be possible with very small GAPM values for this to
happen.
Note that the reduction in capacity takes place whether or not APRES equals
zero.
In summary, capacity restrictions on a single-M exit arm only come into play when
M108 = T, FUNNEL = T, a C-modifier has not been used and GAPM < 1/S M .
Lanes
Turn To 1 2 Total
Note: All flows in pcus per hour. Figures in brackets are capacities
Thus we see that lane 1 above is shared by two turns with a flow of 248 pcu/hr
turning to node 19 and 130 pcu/hr to node 45. Their respective capacities within
this lane are 241 and 126 pcu/hr. Lane 2 on the other hand is reserved for the
second turn only with a flow of 459 pcu/hr and a capacity of 448. The -1 under
lane 2 for the turn capacity into 19 indicates a banned movement from that lane.
A value of 0 would indicate an allowed movement but no capacity.
The numbers on the far right give the total flow and total capacity for each turning
movement. Those at the bottom give the total flows and c apacities per lane.
Totals for the link as a whole are given lower right. V/C ratios are also given by
lane and in total.
Note that in this case the capacities per turn and per lane are additive but this is
solely due to the fact that the lanes are over-capacity and not a general rule. See
8.9.2.
Table 8.1 (b) - Comparison of turn capacities with lane sharing included vrs. turn
capacities with lane sharing excluded
The second table illustrates how much capacity is lost through the presence of
other vehicles in shared lanes. T hus the column headed CAPACITY EXC gives
the capacity for each turn calculated as though there were no other movements
present on the link, while the CAPACITY INCL gives the actual capacity with such
effects included. Thus the presence of vehicles making turn 68-18-45 reduces the
capacity of turn 68-18-19 from 336 to 241 pcu/hr, a ratio of 0.718.
We return to the definition of a “river” (8.8.2) and the alternative river-based
definitions of capacities (8.9.3.4) below.
The problem which emerges here is that the “spare capacity” may differ for
different turning movements if they have different saturation flow rates. I f, for
example, we had a left and straight ahead movement in the same lane they might
have been assigned saturation capacities of 1200 and 1500 pcu/hr per lane. (The
saturation capacity of a lane for a given turn is assumed to be the user-input turn
saturation flow divided by the number of lanes; e.g., the ahead movement above
might have been coded with a capacity of 3000 pcu/hr and 2 lanes.) If the lane is
judged to carry, say, 400 lefts and 500 aheads (one third of their respective
saturation flows in both cases) then we assume that, in total, the lane is two thirds
full, and t hat the remaining one third capacity could accommodate either an
additional 400 lefts or 500 aheads. Hence their total capacities in that lane would
be 800 and 1,000 respectively.
To assign a t otal lane capacity we cannot simply add up t he constituent turn
capacities since in the above case this would give us the unrealistic figure of
1,800 pcu/hr; we would be, in effect, counting the spare capacity twice. We
therefore define the lane capacity to equal the total flow plus a “weighted” average
of any spare capacity. In the above case the actual flow is 900 pcu/hr, the “spare”
capacity is one t hird of a w eighted average of 1200 and 1500 pc u/hr, with the
weights determined by the relative flows. The weighted average saturation flow is
therefore:
(400/900) x 1200 + (500/900) x 1500 = 1367
giving therefore a total capacity of:
900 + 1367/3 = 1355.5
These capacity calculations are in fact carried out separately for each individual
time unit and summed, whereas the above example applied strictly speaking only
to the case of uniform flows over the time period simulated (i.e., “flat” profiles).
Over-Capacity Lanes
If however the lane is over capacity then the individual turn capacities are
proportional to their flows. Thus if one turn contributes 75% of the flow to an over-
capacity lane it is allocated 75% of its capacity for that lane. This implies that all
turns in a lane have equal V/C ratios.
In this case the total capacity for a l ane is simply the sum of its individual turn
capacities per lane since the complication of spare capacity does not, by
definition, arise.
Total Capacities
The total capacity for a turn is the sum of its individual capacities in each lane,
while the total capacity of the link is the sum of its individual lane capacities
calculated as above. Therefore the total link capacity is not equal to the total of its
individual turn capacities, again because the latter sum may “double count” any
shared spare capacity.
Finally the total capacity at a node i s obtained by summing up the link capacities
of its entry arms.
Examples
To further illustrate the principles involved Tables 8.2a and 8.2b show data for link
68 to 18 with the flows reduced by 50% so that the link is now under capacity.
Table 8.2 (a) - Lane distribution stop line arrival for traffic on link 68 to 18.
Lanes
Turn To 1 2 Total
Note: All flows in pcus per hour. Figures in brackets are capacities
Table 8.2 (b) - Comparison of turn capacities with lane sharing included vrs.
turn capacities with lane sharing excluded
We may note several differences from the previous results in Table 8.1:
1) While the turn to 45 still uses both lanes 1 and 2 the V/C ratios per lane are
not equal (although the measure of their stop line delays are; see 8.8.1)
2) The proportional split of turning traffic to turn 45 is split 459:130 = 78:22% in
the over-capacity case but 213:86 = 71:29% in the under-capacity case
implying that the lane choice is different in the two cases.
3) The lane capacity in lane 1 – 375 - is not the sum of the two turning
capacities due to the fact that the spare capacity has not been double
counted. Thus the spare capacity in lane 1 as seen by the turn to node 19 is
273 - 120 = 153, to node 45 it is 292 - 86 = 206 while combined it is 375 -
206 = 169. The differences per turn are explained by different saturation
flow across the stop line.
4) Note as before, however, that turn capacities are additive by lane; e.g. 740 =
292 + 448, as are the totals: 375 + 448 = 823.
The implications of comparing Tables 8.1b and 8.2b are discussed below.
Equation 8.16
S d = 1/ ∑ Pi / Si
i
♦ the C in the numerator of the second term in (8.5b) should also be the queue
capacity;
where B as before is half the time period which is being modelled. The
parameters t o , A and n ar e again evaluated by the simulation. Fi gure 8.9
sketches the qualitative differences between the two sets of equations
(assuming queued conditions with the current flows). Note that the delay at
the current flow V is identical with both equations.
Figure 8.10 - The basic and modified cost-flow curves for over-capacity simulation
turns.
Note that since C Q may be z ero in heavily loaded cases equation (8.11a) may
never apply and the minimum delay term t o will need to include both a transient
delay to vehicles once they reach the stop line plus a normal over-capacity delay
component in order to reach the stop line.
We may further note that equations (8.5) (assuming C = the “normal” turn
capacity) and 8.11 both go through the same point defined by the current turn flow
and simulated delay, the difference being that the modified curve has a l ower
slope reflecting the fact that mathematically the dispersion capacity must be
greater than any individual turning capacity. This is illustrated in Figure 8.9.
Our definition of the assignment cost (or time) vrs flow curve does not therefore
have any impact on t he simulation outputs (e.g. total vehicle hours) but is only
introduced in order to make the calculated delays in the assignment into better
predictors of what a s ubsequent simulation would produce. Their function is
therefore primarily to improve the convergence between assignment and
simulation sub-models. We should reach the same answers whether we use
equations (8.5) or (8.11) but (8.11) should get us there more quickly.
(see tables 8.1b and 8. 2b) since it depends on the number of lanes which they
use.
Note that the capacity of a r iver is simply the sum of the lane capacities of its
constituent lanes.
1393 Capacity for entry flows from simulation centroid connectors to the
upstream end o f simulation links (see 15.16) N.B. Only relevant if
blocking back on a l ink extends to entering flows from a zone (see
8.5, note (b))
1473 Simulation link capacities as per 8.9.4.
1643 Simulation turn capacities as per 8.9.1 and tables 8.1a and 8.2a.
1833 Capacity of an assignment link as used in the cost-flow curves; thus,
for simulation turns, C Q as defined by 8.9.3.3.
1843 The “reverse capacity” of an as signment link; thus, for simulation
turns, 1/C D as defined in equation (8.11b).
1863 The “practical capacity” of an assignment link: for simulation links and
turns identical to 1473 and 1643 and t hus as defined in 8.9.1; for
buffer links it is the “normal” capacity.
with default values taken from the input UFA file, plus a single additional logical
parameter TITLE, default value FALSE, such that if TITLE is TRUE record 2 - see
below - is to be input.
Alternatively the network title may be redefined by an alphanumeric namelist
parameter of the form:
TITLE = ‘new title’
Mini-Contents Page
INTRODUCTION
This section describes the general principles which underpin the assignment-
simulation loop which is necessary for networks with a simulation component. It
covers both the use of separate programs (the original method) plus the use of the
single program SATALL (the strongly recommended technique).
simulation only includes the effect of the minor arm flow - the implicit assumption
is that the major flow is fixed throughout the assignment. If the flow does remain
constant on two successive assignments then the assumption is correct; if it does
not then the routes generated by the assignment are, to a greater or lesser extent,
inconsistent with the simulated delays.
There are a considerable number of other sources of “interaction” between links,
for example, shared lanes, blocking back, signal optimisation and c o-ordination,
merging and weaving, etc. etc. These interactions may be highly asymmetric and
sometimes much stronger than the “intra-link” effects which means that, from a
theoretical point of view, the ultimate convergence of the process has very few
mathematical guarantees.
In order to deal with the interactions SATURN loops between assignment and
simulation until (reasonably) steady flows are obtained, at which point the model is
judged to be “self-consistent” or “in equilibrium”; i.e., the flows that go into the
simulation produce delays which in turn produces the same flows on assignment.
(Technically this approach is known as the “diagonalisation method”).
The (main) parameter used to monitor the rate of convergence is the percentage
of link flows which vary by less than, say, 5% (the parameter PCNEAR) between
loop n and l oop n-1. I f this exceeds the (integer) parameter ISTOP then the
process is judged to have converged satisfactorily. I f the criteria is satisfied on
NISTOP successive loops then the process is terminated (where, by default and
in all versions prior to 10.3, NISTOP = 1 s o that the loops stop as soon as the
ISTOP criterion is met).
Note that with release 11.1 the critical integer value ISTOP has been converted
into an equivalent real value RSTOP such that the actual stopping tests use
RSTOP, not ISTOP; see 9.2.6.
In addition a number of alternative convergence criteria (e.g., the “gap” parameter)
have been i ntroduced at a l ater stage of SATURN development and t hese are
described further in section 9.2.3.
Alternatively the procedure will always terminate if a maximum number of loops
(the parameter MASL) has been reached.
Whether or not convergence will be achieved by this method is hard to determine
in advance. E ssentially the process works well when the “interaction” effects
referred to above are relatively weak, but when they are strong problems of
oscillations can occur. For example, networks with a large number of give-ways
may create problems. See 9.5.
Clearly good convergence is highly desirable; poor convergence means that the
results are imprecise / “in error”. A more precise description of the statistics used
to monitor convergence is given in 9.2 and advice on how to achieve good
convergence (or, conversely, how to avoid poor convergence) is given in 9.5. On
the other hand, poor convergence is not the only source of error in the model
outputs (cf. data input errors, section 2.1) and good convergence generally
requires longer run times so that, in practice, the target level of convergence will
represent a compromise between accuracy and run times.
Thus column 1 monitors the “delta function” which is internal to the assignment
and measures the degree to which the routes assigned traffic are minimum cost
routes; see section 7.1.4 If, as a rule of thumb, these figures are much in excess
of 1% then you should consider increasing the parameter NITA to obtain better
internal convergence. Otherwise the “uncertainty” in each assignment may be
adversely affecting the overall convergence. (For an alternative point of view see
9.5.4.)
See 7.1.4 for more information on delta.
Similarly column 2 m onitors the successive internal convergence of each
simulation using the parametric measure discussed in 8.3. A gain, as a r ule of
thumb, if these figures are much in excess of 1.0 you should consider increasing
NITS.
Columns 1 and 2 al so give the numbers of assignment and s imulation internal
iterations undertaken (for which NITA and NITS set upper limits).
Column 3 r eports the factor used to average successive assignment flows
between loops under KOMBI or AUTOK (see 9.3) and, in the case of AUTOK, the
number of internal repetitions of the simulation in order to calculate the optimum
weights (9.3.2).
The remaining 4 columns all monitor the convergence of the
assignment/simulation loops and should, roughly speaking, tell a similar story.
Firstly “% FLOWS” reports the fraction of assignment links whose assigned flows
changes by less than 5% (or, strictly speaking, less than PCNEAR%) from one
simulation-assignment loop to the next. This is a somewhat arbitrary function but
one which has been us ed in SATURN from the beginning and ha s thereby
acquired a c ertain historical momentum. It is (by default, see 9.2.3) the “main”
5109341 / Mar 13 9-4
11_2_05_Section 9.docx
SATURN MANUAL (V11.2)
convergence parameter in that it is used to stop the loops once the figure exceeds
the parameter ISTOP (or RSTOP; see 9.2.6); typical values for ISTOP are 90 or
95%. IS TOP and/or RSTOP are set in &PARAM; see 6.3.2. See also 9.2.3 for
alternative stopping criteria.
“% DELAYS” is similar to “% FLOWS” but is based on the fraction of simulation
turns whose delays change by less than 5% (i.e. PCNEAR%) from those
calculated by the previous assignment. Note that the simulation turns are a sub-
set of the assignment links; hence the latter measure is based on a different - and
larger - “sample” than the former. % DELAYS has no effect on stopping the loops.
These two measures, while generally similar, can present different viewpoints
under certain circumstances. Thus in highly congested networks, where delays
are a v ery sensitive function of flows, it is quite possible for the flows to settle
down (high %FLOWS) but for the delays to fluctuate wildly (low %DELAYS).
Alternatively if the delay-flow relationship is very “flat” it is possible that the delays
will be stable (high %DELAYS) but for the flows to wander (low %FLOWS). Thus if
only 1 of these measures is high it probably implies that your overall convergence
is acceptable even though either flow or delay is uncertain.
“% V.I” is more complicated to explain. In essence it compares the costs on the
currently assigned routes using the current simulated delays to the costs on the
previously assigned routes using the same delays. One should therefore expect
the current routes to be “cheaper” if we are getting nearer to Wardrop equilibrium;
if %VI is positive this is true, if negative, then the former routes are actually
cheaper than the current routes. This situation arises if the flow pattern has
changed too drastically from one loop to the next - one solution is to use the
KOMBI or AUTOK parameters to “dampen down” the changes in flow. Thus if
%VI goes strongly negative on, say, loop 6 then that is a strong argument for
setting KOMBI to 6. We return to this question in Section 9.3 below.
Finally the “% GAP” is a generalisation of the delta function - column 1 - to include
the interaction effects within the simulation. It is, firstly, the difference between the
current total vehicle costs on the assigned routes and the total vehicle costs if all
drivers were to use minimum cost routes with the costs FIXED. This measure is
then “normalised” by dividing by the total vehicle costs and expressing it as a %.
It is therefore the same as equation (7.3) for delta (Section 7.1.4) except that the
costs are calculated after the simulation rather than after the assignment.
Generally speaking the GAP values will be greater than the DELTA values since
the routes chosen based on the assignment cost estimates will tend to be slightly
worse when the costs are further changed by the simulation. The difference
between GAP and DELTA is therefore an indication as to how far the assignment
and simulation stages “disagree” on the calculation of delays; for further statistics
on the level of disagreement and the turning movements which may be causing it
please see Section 9.9.1.
As with delta (7.1.4) a gap of under 1% may be regarded – at least for some
purposes – as satisfactory. For example it is much better than the ability of
drivers in real life to choose “true” minimum cost routes which may be categorised
as around 5%. However, for other modelling purposes, significantly lower GAP
values need t o be ac hieved and, indeed, should be ac hieved. A GAP value of
under 0.1% or even 0.01% should be regarded as a suitable target. See 9.2.4 for
a more complete discussion and 9.5 for advice on improving convergence.
Note that the latter two measures assume that the assignment is trying to assign
all trips to minimum cost routes. As this is not true under stochastic assignment %
VI and % GAP are not reported there.
9.2.2 Table 2
The second table contains a set of extra convergence statistics relating to the
progress of the assignment-simulation loops:
ASS-HRS The total time pcu-hr/hr from the buffer + simulation networks
calculated by the assignment (N.B. Time here is “true” time, not
generalised cost expressed in time units. It equals the product of
total demand flow multiplied by average travel times summed
over all assignment links. Since it uses demand flows it includes
both pcu-hrs within the current simulation time period and i n
future time periods.)
CHANGE % Change in ASS-HRS between successive loops
SIM-HRS Total time pcu-hr/hr from the simulation network only and from
within the simulated time period only (i.e., travel time in future
time periods due to queued traffic is excluded.)
SIM-KMS Total pcu-km/hr from the simulation network only (this time
period only)
GEHBAR Mean GEH Statistic comparing link demand flows between two
successive assignments
AAD Average Absolute Difference in link demand flows between two
successive assignments (PCU/HR)
RAAD % Relative Average Absolute Difference in Link flows
XMSD % Relative Standard Deviation in link flows
SAD Mean Absolute difference in delays between the assignment and
simulation (seconds)
RSAD % Relative Mean Absolute Difference in ASS/SIM delays
Certain of the above measures are those recommended by the DfT for monitoring
the degree of convergence of any ‘congested assignment model’ as set out in
4.4.19-4.4.28, Chapter 4, Section 2, Volume 12 of DMRB.
Please note that the measures included in Table 2 ar e essentially arbitrarily
selected from a v ery large number of potential convergence statistics. For
example, we report on SIM-HRS within the simulated time period as opposed to
including time within the “next” time period due to queued traffic.
extremely accurate assignment such as OBA (see Section 21) the true difference
in link flows between loops n-1 and n will be obtained (to a good approximation)
whereas with a less accurate technique, such as the default Frank-Wolfe
algorithm, there is less scope for the assignment in loop n to move away from the
assignment in loop n-1 (which is used as its starting point, assuming of course
that DIDDLE = T as it should be); hence the differences in link flows tend to be
reduced and %FLOWS measure increased. Hence, despite being a better
assignment method with better convergence properties, OBA may perversely
appear less convergent than Frank-Wolfe in terms of %FLOWS.
On the other hand, GAP does have a de finite theoretical interpretation, does
differentially weight “good” and “bad” fits and is easy to compare between
networks of wildly different shapes and sizes. It is also more “neutral” with respect
to the problem of assignment accuracy discussed above.
On balance, therefore, our current “best buy” for a stopping criterion is the GAP
(set KONSTP = 1 or 4) although we recognise that there is a strong case for
carrying on with %FLOWS for historical continuity and the default continues to be
%FLOWS (KONSTP = 0).
However, whichever stopping criterion users choose, they should always view
GAP as their most important single indicator of overall convergence.
N.B. If STPGAP is used as the stopping criterion for assignment-simulation loops
then it is also recommended that the parameter UNCRTS which sets (one of) the
stopping criteria for the assignment stage on its own should be l ess than
STPGAP, otherwise the overall convergence will be restricted by the assignment
convergence. Alternatively setting AUTONA = T ( see 9.5.4) allows the program
itself to correct for too high values of UNCRTS during each assignment loop.
rounded down to 96% and would not pass ISTOP = 97. Hence the effective critical
value would be 96.5 in “real” terms. So whether we round ISTOP down to a half-
integer value to be compared with the exact (real) OK value, or round the OK
value to the nearest integer, the end effect is the same.
Thus in Version 11.1 the comparison is always done using real values where the
critical stopping criteria RSTOP may either be def ined directly by including a
variable RSTOP under &PARAM or, if RSTOP is not explicitly set, then RSTOP =
ISTOP – 0.5.
Note that this should have no impact on re-running old networks if RSTOP is not
defined since the stopping criteria is effectively unchanged.
=
Va
( n +1)
(F( a
n +1)
)
+ Va( n ) / 2
The first method is associated with the KOMBI parameter and t he second with
AUTOK as explained below. If neither is used then:
Equation 9.3
the flow-convergence is seen to decrease, say, after loop 5 then consider setting
KOMBI to 5.
Alternatively use AUTOK which should be an improvement!
∑ c ( λ ){V
a a − Fa } =
0
where c a (λ) represent the link costs with the flows averaged as per equation (7.2).
We may think of the (negative) costs as representing a “Social Force Field” which
is pushing the current solution V a in the direction of the cheaper routes
represented by F a . The solution (9.4) represents the point at which the social force
field has shifted such that the all-or-nothing routes are no longer the cheapest
routes (because they have been allocated extra traffic and the original routes less)
and the force field is now at right angles (“normal”) to the direction of flow change.
The equivalent rule when applied to two successive sets of fully assigned flows
from assignments n and n+1 would be to require that:
Equation 9.5
∑ c ( Λ ) {V ( ) − F ( ) } =Φ ( Λ ) =0
a a
n
a
n +1
where now the costs c a (Λ) are those derived from simulation n+1 based on Λ-
averaged flows. A gain we may think of the costs as a f orce field pushing the
solution from V a (n) towards F a (n+1) and that the simulation is changing the direction
of the force field by calculating different costs.
If, as mentioned above, Φ(1) > 0 then a step-size of 1 is used and no a veraging
takes place. N.B. This is the most frequent result; see below. Alternatively, if Φ (1)
< 0, then equation (9.5) is solved by a h euristic method of successive
interpolations.
Thus we first calculate Φ(0); this may be d one, in fact, immediately after
simulation n w here the simulated costs are, in effect, c a (0). In theory Φ(0) > 0
(although it is possible that lack of assignment convergence and/or rounding
errors might drive it marginally positive) so that our first estimate of the optimum
Λ 1 is simply based on a linear interpolation between Φ(0) and Φ(1):
Equation 9.6
Λ1 = Φ ( 0 ) / ( Φ ( 0 ) − Φ (1) )
and we carry out another simulation with weighted flows and obtain the “correct”
value for Φ(Λ 1 ).
If Φ(Λ 1 ) is zero, or very near zero, then we terminate. If, however, Φ(Λ 1 ) is
significantly different from zero we may estimate an improved value Λ 2 by
approximating Φ(Λ) as a quadratic function using the three points we have already
simulated at Λ = 0, Λ 1 and 1. If, having carried out a further simulation with Λ =
Λ 2 , Φ(Λ 2 ) is not sufficiently near zero then the process of quadratic
approximations and re-simulation continues using the last three estimated points
until the zero-point is obtained with sufficient accuracy. Empirically it would appear
that the solution is obtained “most of the time” with a simple linear interpolation or
a small number of quadratic steps.
9.3.2.1 Accelerated Factoring of Λ
If an optimum value of Λ is not obtained after, say, 2 or 3 iterations and the same
behavior is noted consistently over several assignment-simulation loops then it
may be pos sible to “accelerate” the estimation of Λ by introducing an ad ditional
empirical factor based on the ratio of the final Λ value to the initial linear
interpolation given by equation 9.6. Thus if we consistently observe that the final
value is 0.5 times the initial value then it may well save time (by reducing the
number of repeated simulation steps) if on t he next application of AUTOK w e
reduce the initial estimate by a factor of somewhere between 0.5 and 1.0.
This factor is referred to as the “AUTOK AVERAGE STEPS FACTOR” in the .LPT
output files and is not a constant but varies throughout based on the most recent
experiences.
This “fix” was first introduced in 10.9.17 and has been found to marginally reduce
the number of repeated simulations and therefore reduce CPU time.
9.3.2.2 The Role of Λ: The Use of AK_MIN
Post 10.9 a minimum value may be imposed on Λ by setting a Namelist &PARAM
parameter AK_MIN in the network .dat file with a def ault value of 0.0 (which
means it will never be applied). The rationale behind setting a minimum value of Λ
is that a value near zero implies that we virtually retain the previous flows and are
therefore making very little progress towards convergence, due, most likely, to
some sort of “quirk” in the simulation. A small value of AK_MIN may therefore
provide a little “impetus” for the model to converge. A value of 0.10 has been
found to be appropriate in one particular network which was frequently generating
values of (virtually) 0.0 but little comprehensive empirical testing has been done.
It should, however be noted that, again empirically, that in many networks
averaging is never required and that in the remaining networks averaging is only
required on a small fraction of the loops. Whether or not averaging is needed is
essentially down to how much “interaction between links” is being introduced by
the simulation as described in 9.1. If it is very strong then averaging may be
necessary to “dampen it down”.
Somewhat perversely it also appears empirically that averaging is required more
often if the assignments are extremely well converged internally, e.g., if you are
using OBA assignment or PARTAN. This may be i nterpreted as being due to a
poorly converged assignment not taking you very far from the current solution and
therefore not as far as the “correct” solution. However a more accurate
assignment may actually cause you to “overshoot” the correct solution, in which
case the averaging is effectively bringing you back towards the previous solution.
Information on the Λ-weights used to average assigned flows and the number of
internal loops used to calculate those weights on each loop are displayed within
the standard table of assignment-simulation convergence statistics (see 9.2.1) as
printed within the .lpt files or as displayed by request by P1X or SATLOOK.
later) DIDDLE also works with elastic assignment when the loops are within
SATALL (but not with SATEASY). It will not however function with stochastic
assignment.
An earlier problem that SAVEIT could not be used in conjunction with DIDDLE no
longer applies as (see 15.23) the route flows are estimated at the end of a full
assignment whenever DIDDLE is in effect. As with KOMBI (last paragraph in 9.3),
the use of DIDDLE introduces an element of approximation into the saved routes
but these problems are minor compared to problems of convergence.
Given the intrinsic advantages of using DIDDLE its default value is set to .TRUE.
interaction may therefore help (but on the other hand it may make your
network representation less precise!). Therefore you could try to:
− Reduce the critical gap values (the default values are, in all
likelihood, to be too high);
− Do not use blocking back (set ALEX to zero but not recommended);
− Do not use blocking back (set ALEX to zero but not recommended);
13) (Repeat of 1!). Check the error messages in your .lpn file and/or use the
Highlight facility in P1X – most of the time that’s where the problem lies!
The next section illustrates one or two possible extreme cases.
100 or 200, the resulting queue stretched back for 10 km and t he whole model
became highly unstable. (The coding error, by the way, is now detected as
Serious Warning 137 in SATNET).
The morale of the story is that even very small errors in network coding can lead
to very large network problems and, unfortunately, users have to: (a) b e very,
very careful in their coding and (b) look very, very carefully at their outputs.
methods are based on the empirical observations that, certainly for large
networks, the assignments take much more cpu than the simulations (since the
number of assignment calculations is roughly speaking proportional to zones
times links whereas the simulation is proportional to links only).
(1) Increased MASL, decreased NITA - The first suggestion is, by using the
DIDDLE = T option to continue one assignment from the end point of the
previous assignment loop (see 9.4), the full assignment is made up o f (in
effect) NITA * MASL all-or-nothing iterations with the simulation introduced
after every NITA iterations in order to update the cost-flow curves. By
decreasing NITA and increasing MASL in proportion the same number of total
iterations may be ac hieved in roughly the same cpu time (any increases in
cpu will be due only to the extra simulations) and with - hopefully! - the same
overall convergence. Thus instead of setting, say, NITA = 50 and MASL = 20
we would recommend using NITA = 10 (or even 5) and MASL = 100 in the
hope that convergence would be achieved in far fewer than 100 loops.
(2) Use of UPDATE - Alternative suggested methods of improving cpu are to
make greater use of the UPDATE facility (see 15.3) or to use the perturbation
techniques available within the path-based algorithms (see 21.3).
(3) Sliding Convergence Criteria - UPDATE may be particularly effective in
situations where one basic network is being continuously edited (calibration,
validation, etc.) and one version is much the same as the previous version.
One useful “trick” here is to gradually “tighten up” the convergence criteria as
the network nears its final state. For example, start with ISTOP = 80% and
gradually increase in steps of, say, 5% as your network coding gets better
and better. There is no point in carrying out a v ery long, very accurate
assignment to a net work which still has glaring coding errors. A similar
principle is also used by CASSINI in order to minimise CPU time for supply-
demand feedback loops; see 15.54.
(4) AUTONA – Setting a parameter AUTONA = T (default F) in &PARAM in
the network .dat file allows SATALL to select “optimum” values of NITA
and/or UNCRTS at each assignment based on: (a) the best GAP value to
date and ( b) the “history” of how delta and/or epsilon varied with iteration
number in the previous assignment. The idea is that if, say, the current best
GAP value is 1.0% then there is probably very little point in having a highly
accurate assignment down to delta/epsilon values of, say, 0.001% since, as
soon as we change the cost-flow relationships with the following simulation,
the GAP value will increase over Epsilon. A more realistic objective is to set a
“target” of, say, Epsilon = 0.01% for the assignment which is one t enth the
value of the current GAP. By analysing the “history” from the previous
assignment we can estimate how many iterations should be required to reach
this value and set NITA accordingly (subject to the requirement that is <= the
global maximum value of NITA and >= NITA_M). Empirically using AUTONA
= T has been found to significantly reduce CPU times.
In 10.9 AUTONA also automatically controls the assignment stopping
criterion UNCRTS (see 7.1.5) in addition to NITA by reducing it to a v alue
comparable to the current best GAP value. (The effect of reducing UNCRTS
is generally to increase the number of assignment iterations in order to
achieve a sufficiently well converged assignment).
The same principles of “relaxed convergence” are also used by CASSINI in order
to minimise CPU time for supply-demand feedback loops; see 15.54.
Note that AUTONA cannot be used with any form of elastic assignment.
Net.DAT
SATNET
Net.UFN
Cijø.UFM Control.DAT
Tijø.UFM SATEASY Tij′.UFM
Net.UFA
Tij′.UFM
SATSIM
Net.UFS
Thus starting from a ne twork data file net.dat fed through SATNET the process
starts with an i nitial elastic assignment using SATEASY. T his requires input
reference matrices c ij 0 and T ij 0 in order to define the demand function (best
defined within net.dat; see 7.12.3). An initial estimate of the road trip matrix, T ij ’,
may or may not be available. However on subsequent iterative loops the output
trip matrix T ij .ufm may be “re-cycled” back to the subsequent elastic assignment
with REDMEN = T.
SATSIM is run in order to update the link flow-delay curves based on the elastic
link flows and loops through the elastic assignment. Parameters MASL, ROSIE
and KOMBI (but not DIDDLE or AUTOK) may be used to control convergence.
The DIY nature of this approach is further reflected in the fact that there are no
dos-style bat procedures available to simplify the loops. This is left to your
ingenuity!
However it needs to be strongly emphasised once again that an el astic
assignment loop is much better undertaken using SATALL as described in
Section 9.10, which is run as a single program and does not require any complex
DIY procedures.
(iii) The average GEH parameter (see 15.6) indicating the differences in
demand flows per link between successive assignment loops.
Note that both measures i) and i i) are used to determine stopping criteria; iii) is
provided for information only. Convergence is reached as ii) goes to 100% and iii)
goes to zero.
3. Compare the turn delays as estimated by the assignment with the ‘correct’
delays calculated by the simulation; at convergence the two should be
identical, e.g.:
MEAN SIMULATED TURN DELAY = 31.75 secs
MEAN ABS. DIFF. IN ASS/SIM DELAYS = 19.38 secs
RELATIVELY = 61.03%
NUMBER DIFFERING BY < 5.0% OR 1 96
SECOND =
RELATIVELY (PCOK) = 78.05%
Note that whereas certain global statistics such as the pcu-distance may
appear to stabilize rapidly others, such as those related to delays and
stops, are considerably more variable.
7. List of the (up to) 10 l argest changes in Blocking Back Factors used on the
current and p revious loops plus an r -squared value comparing the same
factors.
The same two tables may also be displayed interactively within P1X (see 11.15)
which also optionally offers two additional “10 worst” tables in terms of (a) “gaps”
and (b) capacities.
In addition the various turn-based convergence statistics, e.g., delays, gaps, etc.
may be generated and displayed within P1X as either turn or link annotation data
which may, in turn, be saved as SATDB data columns. In the latter format they
may be displayed in a window with the data ordered by, say, decreasing absolute
value so that it becomes possible to view not just the 10 worst examples but the
full list of worst examples.
Finally disaggregate convergence statistics may also be displayed per simulation
node within the standard node text tables within SATLOOK (11.11.1).
♦ FRACTION: The ultimate fraction of trips assigned to this iteration; see 7.1.2.
♦ C1: The total cost associated with the current flows and the current costs.
♦ C2: The total cost if all trips could be as signed to the current minimum cost
routes.
♦ FDZ = DZ/Z (as a %), the fractional improvements in the objective function.
♦ ZULB: The upper lower bound on the objective function; see 7.1.5.
♦ EPS: Epsilon, the current “uncertainty” in the objective function; see 7.1.5.
guaranteed to give identically assigned flows. To do this the master network must
be introduced as a pre-load network (see 15.5) to the cordoned network (with
some care being taken that any bus flows etc. are not double-counted – more on
that one later). Note as well that the pre-load flows for a cordoned network must
be loaded via a text file, not a . ufs file, since the network structure will have
changed under cordoning; see 15.5.4.
Equally one might wish to simulate traffic flows extracted from a different suite of
programmes entirely within SATURN and transferred as a text file. (Recall the use
of text files to define pre-load flows, not just .ufs files; 15.5.4.) Or, similarly, one
might wish to test the effect of “pre-scheme” flows on a “with-scheme” network so
that the network may have been al tered but the link flows themselves remain
unchanged.
Another application would be t o do a genui ne zero load in order to calculate
delays at zero flow in order to accurately measure the effects of “congestion”. (For
example, traffic signals always give some delays even with zero flows because of
the finite red times so one might wish to subtract these delays from the “actual”
delays.)
Note that because no as signment takes place certain options such as SAVEIT
etc. are ignored and there will be no route information output. Equally any form of
elastic assignment is ignored. On the other hand if there are multiple user classes
flows (if any are input via pre-load) are retained.
If the KR option is not invoked on the command line, then SATALL expects to find
the parameters in the default control file SATALL0.DAT. (See 9.15.2.)
Note that the input file has the “new” extension .UFN and t hat the output file is
always .UFS whether or not the network is pure buffer or not. I f network.UFN
does not exist but network.UFS does then it is renamed.
Files:
network.DAT Input SATURN network data file
trips.UFM Input unformatted trip matrix file
(Optional - not necessary if defined within network.DAT see 6.3.4)
network.UFN Output SATURN UF file from SATNET
network.UFS Output SATURN UF file from SATALL
network.UFC Output route cost file
network.LPN Output line printer files from SATNET...
network.LPT and SATALL
net1.UFS Input SATURN UFS file for UPDATE or PASSQ (Optional)
post.PS Over-write file for input to SATNET; see 17.4.1. (Optional)
Further details of the SATURN .bat procedure are given in Section 14.3 and
special extensions thereto are described in Section 14.4.
Network Title
A new descriptive network title may be set by either:
1) A namelist parameter of the form:
TITLE = ‘nettitle’
1) A namelist designation of a logical variable:
TTLE = T
in which case the new network title is contained on the record immediately
following the namelist records (i.e. following &END) and occupies columns 1 to
76.
Default File
The default control file SATALL0.DAT is as follows:
&PARAM
&END
Mini-Contents Page
INTRODUCTION
10.1 Synopsis
MX is a flexible interactive matrix manipulation program which incorporates
virtually all matrix operations required by SATURN users. It includes options to
build matrices, change them (e.g. by factoring) and analyse them. The flexibility
means, for example, that users can carry out their own trip matrix demand model
procedures involving e.g., trip distribution (constrained or otherwise), modal split,
park and ride etc using the facilities within MX, even if those procedures are not
explicitly included within MX (as some are; see 10.20).
Although MX has been constructed as a pe rfectly general matrix manipulation
program clearly its primary use will be based on SATURN and transport planning
applications. Indeed the vast majority of matrices which MX handles will be origin-
destination trip matrices. This is very often reflected in the language used in the
documentation; for example “row” and “ column” are used interchangeably with
“origin” and “ destination” and s ometimes cell values are referred to explicitly as
“trips”, e.g. when discussing distribution models. E qually “O-D” and “I-J” will be
used interchangeably when referring to individual cell locations.
MX includes all the facilities previously provided in earlier SATURN versions by
the separate programs M1 through M7 plus many new ones. The original
historical program names tend to live on within, e.g., batch files names and some
internal options within MX. See 10.9.2, 10.20 and Appendix W.
MX operates essentially on a s ingle “internal” matrix stored in RAM although
operations involving up to 10 “external” matrices are also permitted. More details
are given in 10.3.
In operational terms MX is an interactive menu-based program, largely but not
exclusively text-based (see 19.6), and the general principles outlined in Section
19.3 apply.
10.1.1 Uses of MX
A more detailed description of each of the main options listed in the “Master
Menu” follows. These may be subdivided into:
♦ Input
♦ Changing matrices
♦ Analysis
♦ Output
10.1.1.1 Input
1) FILES MENU
The FILES option allows the user to define new input matrices (10.3.1),
to request basic information on t hese files (e.g. matrix title) and t o
0.5 ∗ ( X 1 + X 2 )
e −0.23 X1
transforms an input matrix into its corresponding negative exponential.
10.1.1.3 Analysis
1) STATISTICS (UNIVARIATE OR COMPARISON)
Compare two matrices, obtain a s et of standard univariate statistics
(mean, range, etc.) for one matrix, or obtain a trip length distribution.
2) VIEW/EDIT MATRIX ELEMENTS
A flexible set of options to view the current internal matrix on t he
terminal. Cursor control keys may be used to “move” through the
matrix and m ore than one m atrix may be viewed simultaneously. I n
addition the values of cells in the internal matrix may be “edited” using
an interactive screen editor or window.
3) VIEW ROW AND COLUMN TOTALS
Display row and/or column totals interactively.
4) MATRIX GRAPHICS
Frequency and trip length distributions may be displayed graphically.
10.1.1.4 Output
1) PRINT MATRIX CELLS/SECTORS TO THE LP FILE
Produce a “ standard” matrix listing to the line printer file intended for
later analysis.
2) PRINT/DUMP ROW AND COLUMN TOTALS
Produce a listing of row and column totals to either the line printer or a
file.
3) DUMP MATRIX/SECTOR DATA TO A .DAT FILE
Output matrix file (in toto) to an external ascii (e.g. .dat) file. This may
be either in the standard SATURN format or in a format set by the user,
e.g., so as to be able to “export” a matrix to a spreadsheet. See also 3
above for the reverse operation.
4) DUMP/RE-CODE THE INTERNAL MATRIX TO A UFM FILE
The internal matrix file may be output (in to) to an external binary .UFM
file for use in other SATURN programs. This is the normal way to
“save” a new matrix. As in option 2 the matrix file may be output “as is”
or transformed in various ways (e.g. by recoding zones).
5) STACKING AND UNSTACKING .UFM FILES
A set of externally input square matrices may be combined together
and output as a single “stacked” matrix file (see 10.2.4) or, alternatively,
if the internal matrix is itself a stacked matrix it may be split into a full
set of output individual matrices or a single matrix from a single level.
6) MATRIX DEMAND CALCULATIONS
of other similar “tricks” are employed. This means that, for example, an observed
trip matrix, 95% of whose cells might be zero, only requires marginally more than
5% of a “full” matrix.
A consequence of this change is that .ufm files created by 9.5 are not backwards
compatible; thus 9.5 can read earlier .ufm files but not vice versa.
In theory MX can handle both square and non-square matrices; however, for the
reason above, MX is very seldom used in practice with non-square matrices so
some caution is advised if you do wish to work with non-square. The exception is
“stacked matrices” - see 10.2.4 - which are in effect a s et of multiple square
matrices and are therefore standard.
For stacked (multiple-level) matrices, if zone names are applied to rows in the
“basic” square matrix (see 10.2.4) it is generally assumed that the same zone
names will be applied to upper levels as well, although this is not mandatory. For
example, if the row names are identical to sequential row numbers then this would
not be the case.
♦ the “dimensions” of the elements, e.g., whether they are times, distances,
costs, etc.;
We use the term “level” to refer to the different sub-matrices when stacked
vertically and “ block” when stacked horizontally. We also use the term “base
matrix” to refer to the basic square matrix from which the levels and/or blocks are
built up and whose length/width dimension would normally correspond to the
number of zones in a corresponding network.
Stacked matrices by level are only used within the multiple user class assignment
options of SATURN so that the four matrices above might correspond to four
separate user classes. See Section 7.3.2 for further details.
Horizontally stacked matrices by block are used to represent multiple time periods
as used within SATURN's dynamic assignments (see 17.4.3).
At the moment it is not possible to stack by both levels and blocks at the same
time, e.g. to create a single trip matrix file which is both multiple user class and
multiple time period. But it will come!
For some operations in MX, e.g. displaying elements or row/column totals, it is
possible to optionally treat stacked matrices as though they were ‘interleaved’; i.e.
row 1 of level 1 is followed by row 1 of level 2 and row 1 of level 3 etc. etc. all
followed by the row 2’s. See 10.10.2.
N.B. Stacking by blocks is new in SATURN 10; previous versions may only
employ levels.
See Section 10.20 for various useful standard procedures (e.g., MXSTACK,
UNSTACK, etc.) for manipulating stacked matrices.
10.2.5 Sectors
Sectors represent a user-set level of zonal aggregation as described in section
5.1.7 and as such are equally applicable to matrices which are based on zones as
to networks. Li ke the alphanumeric zone names sector definitions may be
obtained “externally” from either:
(a) an associated GIS file (see Block 8, App. Z),
(b) a network .ufs file (see 6.8),
(c) an explicit “zone-to-sector” (.Z2S) file (10.2.5.1 below),
(d) “hierarchy” rules based on either TfL conventions or by a parameter IROCKY
(see 5.1.7 and Table 10.1 in 10.5.2 below), or
(e) alternatively, set within the program using a sub-option of the Files menu.
Generally speaking the number of sectors (which are restricted to less than 20
anyway) should be s mall enough that the entire sector-to-sector matrix may be
viewed within a single screen or page so that an intuitive “feel” for the matrix may
be obtained. Looking at individual cells in, say, a 200 x 200 matrix provides very
little useful information.
Most options within MX may be applied either at the basic zone-to-zone cell level
or - provided that sectors have been defined - at the sector-to-sector level.
At present only one s et of sector definitions is allowable within MX at any one
time, i.e. multiple “groups” are not allowed. They could however be handled,
somewhat awkwardly, by creating more than one GIS file which defines the
sectors (10.3.3) and swapping between them.
Note that a single run of the program may use more than one input control file -
each file is “opened” and “closed” as and when needed by the program. Equally
the input .UFM files are not fixed and may be r edefined during a run and more
than one output file may be created (but at any one time only one exists).
To a l arge extent the options here mirror the three transformation options, “M3,
M4 and M5”, available under option 14 (Section 10.16) and as distinct batch files
(see Appendix W), which dump the internal matrix to a .ufm file. Thus to
aggregate a matrix from zones into, say, “districts” one could either aggregate on
input (as here) and produce a new .ufm by simple output, or else read in the zonal
matrix and agg regate to districts on output. One difference is that the input
options use only interactive input commands whereas the outputs use control
files. ( Although through the use of key files both can be r un equally well in a
purely batch mode.)
From version 10.7 it is possible to save the instructions input interactively (e.g.,
which zones to copy, which to delete, etc.) in the form of a “control file” as
required by the MXM5 procedure; see 10.20.0 and Appendix W.3.
♦ Non-zero elements only with I-J indicators (one record per cell)
♦ EMME/2 Format
10.5.1.2 Updates
It is also possible to use input from an ascii file to “update” all or part of the current
internal matrix (presumably read from an existing .ufm matrix) rather than writing it
“from scratch”. The choice between “build” and “update” is made immediately on
entering the top menu under Build/Update.
Matrix update data may use only some of the standard data input format
conventions described below; i.e., user-defined records (10.5.3), individual cell
records (10.5.4) and spreadsheets (10.5.5). Thus the standard SATURN format
is not available as an update option since, by construction, it must contain all cell
values.
The data set read need not contain all ij cell values but may be onl y a subset
which, in the case of user-defined and spreadsheet formats, must constitute a
“rectangle” within the matrix as defined by upper and lower row and column
numbers.
An update may either “replace” the existing cell value by the value which is read in
or “increment” it (i.e., add the existing and the input cell values together).
An advantage of updating an existing .ufm matrix rather than creating one totally
from scratch is that with updates the number of rows and c olumns plus any
“names” (see below) are pre-defined, only (certain) cell values are set.
5 0 6 2 3 1
0 1 5
10 6 0 2 3 1
0 1 5
…
Thus the first zone is zone 5 with I-j elements (0.6…5), the second is zone 10 with
elements 6, 0…5). Whether or not the numerical entries are “real” or not (i.e.
10.5.4 Non-zero matrix elements only, one O-D cell per record
*
Here each non-zero O-D entry occupies a s ingle line or record giving some
(possibly all) of the following:
(i) sequential row and column numbers;
(ii) low and column zone names;
(iii) the matrix level (in the case of a stacked matrix);
(iv) the block (if stacked by blocks);
(v) the cell value.
Of these either i) and ii) (or both) are mandatory, iii) and iv) are generally not used
and v) is mandatory. C hoices for the contents are defined interactively by the
user prior to input.
The records may either be read “formatted” (i.e. in pre-defined fixed columns) or
“free format/CSV” (i.e. with each record separated from its neighbours by one or
more spaces and/or commas). Note that fixed column data may also be read as
though it were free format (provided that there is always at least one s pace
between adjacent entries) but the converse is not true. It is strongly recommended
that the free format input option is selected. (With 10.6 it is now the default.)
Note that the form and contents of the input data must be fully and correctly
specified by the user interactively prior to reading in the data, otherwise input
errors will almost certainly result.
For the moment header records, etc. cannot be explicitly included with single
records although, if they do appear, they will cause non-fatal read errors which do
not affect the final output matrix.
*
Although, optionally, more than one record per ij pair may appear and the inputs are added
together. This may be useful for, eg aggregating survey data.
1 2 12.0
1 3 13.0
…
And both data sets could be happily read as “free format”. Note that in this case
we are assuming that only sequential row and column numbers are given, not
their zone names (i.e., i) above but not ii)).
Alternatively, if the zone names for sequential zones 1,2,3 were 10,20,30, then
only names, not sequential numbers, (method ii) could be used, as in:
10,20,12.0
10,30,13.0
30,20,32.0
….
Finally, belt and braces, both sequential and zone names could be used as in:
1,2,10,20,12.0
1,3,10,30,13.0
3,2,30,20,32.0
…
Clearly in this case one would have to be careful that a sequential 1 was always
followed by the “name” 10 (whether input as a row or a column).
Options Format:
1. SEQUENTIAL ROWS AND COLUMNS ONLY 2I5, FI5
2. NAMED ROWS AND COLUMNS ONLY 2I6, FI5.6
3. BOTH SEQUENTIAL AND NAMED ZONES 2I5, 2I6, F15.6
♦ There is one record per origin row containing n elements for each of n
columns (plus, optionally row and/or zone names; see below).
Note that zero cell values must be included as must rows which are all zeros.
However, an i nput record may have fewer cells than the standard number of
columns, in which case the missing cells “on the right” default to zero.
If desired each record may contain either n+1 or n+2 elements by including the
sequential row number and/or the “name” of the zone at the start of each record to
assist in the identification of each row.
One potential technical problem with spreadsheet style formats is that, with all
elements per row held in a single record, the record length may become too long.
It is partly for this reason that, as discussed further in Section 10.15, a
spreadsheet file may contain only a subset of the columns which limits the size of
each record. I n such cases the transfer of matrix data to and from external
programs must take place in stages, a necessary evil to overcome the problem of
record lengths.
Stacked matrix files may also be input using the CSV format (post 10.8), in which
case the user must first interactively define the number of rows, columns and
levels (where the number of columns equals the number of zones and the product
of columns/zones times levels should equal the number of rows). The
presumption is that the first N r records contain the first level, the second N r
records contain the second level, etc. etc.
If “zone names” are explicitly included on s tacked CSV records they should be
identical within each level although, strictly speaking, they are ignored after the
first level has been r ead in. On the other hand s equential row numbers, if
contained, should go right the way through from 1 to the total number of rows.
N.B. CSV formats may also be used as inputs to MXM1; see 4.4.
♦ a set of cell records, each including values from a single origin (row) plus one
or more destinations (columns).
On input the header records are ignored by SATURN. They are identified by
having an al phabetic character (normally ‘c’, ‘a’, or ‘t’) in the first character
whereas the data records which follow may be identified by having blanks in their
first characters per record.
The cell records consist of:
would define the cell values for ij pairs (1,2), (1,3), (1,5)…. Any “missing” values
(1,1), (1,4) etc would be assigned default values of zero. In addition spaces may
be allowed between the “:” and the cell values, and the cell values may be either
integer or real.
Note the zones may be referenced either by their sequential number or by their
numerical name (see 10.2.2) as an op tion selected by the user. The standard
EMME/2 default is to use zone names, not sequential numbers.
Due to EMME conventions only matrices which are “square” may be processed by
EMME; i.e., stacked matrices may not be created using an EMME format.).
♦ “Value”, e.g. select only those cells whose value is greater than 10.
♦ A critical value.
Thus you could select cells in the second input trip matrix whose values are > 10.
Note that tests such as EQ or NE also imply equality within some plus/minus limits
which also need t o be specified. T he principles apply equally to link selection
within P1X or SATDB; see 11.6.1 for further details.
Note that selection by value is not “permanent” when applied to the internal
matrix. Thus if you select all internal matrix cells > 10.0, factor just those cells by
0.5, and then carry out another operation “with selection by value” the cells to be
selected in the second operation will be t hose whose current value is 10.0, i.e.
those cells who were originally > 20.0. In order to “fix” a selection by value using
the internal matrix you should copy it into a .ufm file (and add it as an input matrix)
and base your selection on that file so that the values do not change.
N.B. This is the opposite of link selection in SATDB, PIX etc where links, once
selected, are permanently “branded”.
Tij = fTij
where f is a user-defined factor and the cells which are factored may
either constitute the entire matrix or a selected subset (i.e. an “area”)
2) Row or Column Specific Factoring:
Tij = AT
i ij
or
Tij = B jTij
Tij = Ai B jTij
where the row and/or column balancing factors are chosen such that
∑Ti
ij = Dj
∑T i
ij = Oi
where the row and column sums O i and D j are user input. (Under a
singly - constrained model only one s et of constraints is applied as
under 2); under doubly - constrained, both are. Note that singly
constrained Furnessing is effectively equivalent to row/column
factoring, the only difference being that the required trip ends are
defined under Furness as opposed to the trip end factors; e.g. O i as
opposed to O i / o i .)
All three forms are available through a combination of interactive commands
and/or data from external ascii control files. The choice of the form and the mode
of control is made both in the “top” menu within FACTOR and i n the next sub-
menu; e.g. if you choose Furness at the top menu the choice of single/double
constraints and/or input mode is made at the next menu.
Note as well that, under doubly-constrained Furness, it is implicitly assumed that
the sum of all the row totals should equal the sum of all the column totals. If this
condition is not satisfied various options to correct are offered; e.g., factoring up
all row constraints so that they equal the column totals
Since factoring in transport applications is mostly applied to trip matrices the
documentation below refers for simplicity to ‘origins’ and ‘destinations’ and ‘trip
ends’ instead of ‘row totals’ or ‘column totals’, although the actual factoring
operations are applicable to any type of matrix.
♦ A factor
where the area to be factored is defined via the SELECT procedures - see 10.6.
Note that the “area” may actually be defined in terms of cell values so that it need
not be a “block” of cells.
By default the selected area to be factored will be the entire matrix, so that in the
case of a stacked matrix all levels are included by default.
However a “short cut” select procedure may also be used with stacked matrices
whereby a single square “level” and/or “block” of the full matrix is directly pre-
selected to be factored, as opposed to the more long-winded but equivalent
process of explicitly identifying the row and column limits associated with a
specific level/block. Note that having nominated a par ticular sub-matrix the
selection may be f urther refined by setting, e.g., internal zone limits and/or cell
value conditions as “AND” conditions.
Note that a s ingle level may equally be s elected for factoring using the LEVEL
parameter in the batch file MXFACTOR; see 10.20.3.
Certain options for the definition of the row and column factors may be selected
interactively before the file is processed. (N.B. Mixing interactive and file input
control is not ideal but it works and given how infrequently this method is probably
used it doesn’t seem worth introducing major changes; requests to DVV!)
Thus, rows and columns may be defined as either names or sequential numbers
via an option set interactively prior to processing the file. Names are then re-set
to the equivalent sequential values.
Similarly for stacked matrices the row and column numbers may be based either
on the full matrix or for a particular level within the stacked matrix. For example, if
one had 3 10x10 matrices stacked (so that the internal matrix has 30 rows and 10
columns) and one wished to factor rows 3 t o 5 of level 2 t hen one c ould either
specify them as (sequential) rows 13 to 15 if a level were unset or rows 3 to 5 if
the level were pre-defined as 2.
Note that if the option to use zone names rather than sequential numbers has
been pre-selected then the only way to define rows within levels other than the
first is to pre-define the level.
Row or column numbers left blank (or equal to zero) are assumed to be either 1 or
the maximum row/column number as appropriate. Hence all blanks in columns 1
to 20 implies the whole matrix is to be factored.
To terminate the file put 99999 in columns 1 to 5 - or, strictly, any number or name
greater than the number of rows.
Alternatively the input data may be free format - again, a user-set option - in which
case each of the five inputs must be separated by blanks or commas.
A modification of the above procedure uses SECTORS in place of ZONES to
define the area to be factored. To use this option put ‘S’ in column 1 of a record if
the entries in columns 2 to 20 refer to sectors rather than zones. Again missing
input fields are assumed to refer to the lowest or highest sector number as
appropriate.
Clearly the sector option is only possible in those cases where a supplementary
network or GIS file has been input in order to define sectors. It will not work with
free-format inputs.
‘Mixed’ zone and sector files are also permitted; records without an S in column 1
are assumed to be based on zones. However zones and sectors cannot be mixed
on the same line.
1 1 0 0 1.50
2 2 0 0 1.75
0 0 1 1 1.20
1 1 0 0 1.50
In addition the data may be defined either for individual zones or for “sectors”, i.e.
aggregates of zones, if these are defined elsewhere. Sector factors are applied to
all zones equally; new sector totals and/or differences are applied pro rata to
constituent zones based on the totals in the current trip matrix.
Note that the definition of the new row and column totals is “progressive” in that a
new row total may be defined under data set 1, incremented under 2 and factored
under 3. Such a situation would probably be very unusual; in practice it is
expected that users would use only one of the three basic methods.
The precise file format is as follows:
These consist of a header record &PARAM, a record defining two possible logical
parameters NAMES and CSV plus an &END record.
Here NAMES = .TRUE. if the following records use zone “names” as opposed to
sequential row/column numbers. Default: .TRUE.
If CSV = .TRUE. the data records which follow are input as “comma separated
variables”, i.e., with the zone name/number and new total etc. in any columns as
long as they are separated by a c omma or by one or more spaces. If CSV =
.FALSE. the fixed columns (with decimal points) specified below must be us ed.
Default: .TRUE. (post 10.7)
N.B. Where the specification indicates that a decimal “normally” appears in, say,
column 13 out of columns 6-15 this is not a rigid requirement. In fact the decimal
may appear in any column as long as the whole number is contained within the
columns specified. Thus, in the above case, the user would not be restricted to a
maximum of 2 decimal places in the input field.
RECORD 7 (MANDATORY)
A final ‘99999’ record.
0.5 ∗ ( X 1 + X 2 )
e −0.23 X1
transforms an input matrix into its corresponding negative exponential.
In these equations the external .ufm files used for input are denoted by X1, X2,
etc, the internal matrix by Y and the output .ufm matrix by Z as shown in Figure
10.2. For example, typing:
0.5 ∗ (Y + Z )
would take the average of the (current) internal matrix and the (latest) output .ufm
file and store those values as the new internal matrix Y.
The equation can not only use the standard arithmetic operations - add, subtract,
multiply, divide and e xponentiate - they can also use a num ber of standard
functions, e.g. EXP as illustrated above. The following functions are available:
♦ Exp (X)
♦ SQrt (X)
♦ Sin (X)
♦ Cos (X)
♦ Tan (X)
♦ Abs (X)
♦ Int (X)
♦ MAX (X, Y, …)
♦ MIN (X, Y, …)
The upper case letters above indicate the minimum number which must be used
to denote a function; thus E(X), EX(X) once EXP(X) all have the same affect.
Note that numerical values may be us ed within the equation written either as
“integers” or “reals”, i.e. without or with decimal points.
Open and close brackets may be used as part of the expression (always in pairs!)
and follow standard FORTRAN syntax rules. They may be used to clarify the
“order” of calculation which again follows standard FORTRAN rules; e.g.
operations within brackets always precede operations outside. For example in the
expression:
( X1 + X 2 )
X3
the variables X1 and X2 are always added together prior to exponentiation. This
would not be the same as
X1 + X 2 X3
Users are advised, if in doubt, to carry out several steps with very simple
equations which create temporary data columns. For example by first calculating
X1 + X 2
X 4 X3
would have the same effect as above (although the final result might not be in the
same data column).
Y + 0.5 X 2
The selection of single rows and/or columns may also be very usefully applied to
setting the row/column values for newly created zones; see 10.4.1.
would imply that each new cell element equals the product of the row and column
totals of the first input .ufm file divided by its current internal matrix value.
Syntax rules are that either ROW or ROW(0) implies the row total from the internal
matrix. R OW(n) is the total from the n’th .ufm input matrix. D itto COL, COL(0)
and COL(n).
Tij = TIJ
Tij ∀TIJ
T=
ij Aik + Bkj
A ik therefore represents the cost from the origin to the park and ride zone, and B kj
the subsequent cost to get from k to the final destination.
composite perceived cost matrix via a “ log sum”. See, for example, equation
(7.27) in section 7.6.3. In principle a l og sum of two or more matrices may be
achieved by using the Fortran Equation options above although the equations
tend to be rather long-winded and easy to mistype; hence the need for an explicit
option.
To carry out a log sum the user must (a) identify those matrices to be combined
(presumably cost matrices but no explicit check is possible) and (b) a value for the
parameter beta. The composite matrix is created as the internal matrix.
comparison statistics and tables (e.g. of absolute differences) to the line printer file
(LPX) with summary statistics to the screen.
Various options are provided:
1) You may list all elements whose absolute differences exceed a specified
value; the list appears in the LPX file.
2) You may list the 10 largest absolute differences; this appears both on screen
and in the LPX file.
3) You may analyse the whole matrix or selected portions of it.
4) The matrices used may be either external ufm files (either input or output) or
the internal matrix, but clearly you need at least two available matrices
before this option will appear.
5) In addition, if the internal matrix is “stacked”, i.e., it contains multiple basic
square matrices, then the comparison may be made between any two of the
internal levels.
6) Graphical scatterplots of one matrix vrs the other are available.
In earlier versions of SATURN this function was provided by a separate program
M2, hence the name. Note that this function is also available through a standard
batch file MXM2; see 10.20.2.
Various options include whether or not to print zone names or sequential numbers
(see 10.2.2), the source of the matrix (internal or external ufm), whether or not
zero values are included and whether (in the case of stacked matrices) whether
row/column totals from a single level or from the full matrix are output.
A further option allows the sum of all elements in the matrix to be out put as a
single line to an a scii file, in which case the data line may be “appended” (i.e.
added) to an existing file. The append option is useful, e.g., as part of a set of
runs over several forecast years when it is desired to create a file for input to a
spreadsheet containing matrix totals by forecast year.
Note that if the output file has the extension .CSV (the default) then the output
format is automatically in CSV such that commas are added at the end of each
numerical field.
10.15.2.1 E- Formats
E-formats avoid problems when matrix cells contain both very large and v ery
small values. For example, take 2 cells with values 12345.67 and 0.0001234567.
Under E-formats (with 7 decimal places) they would be output as 0.1234567E+06
and 0.1234567E-03, whereas under decimal outputs they would become
12345.670000 and 0.0001235. In this case decimal outputs lose precision with the
smaller outputs while E-formats do not.
For maximum precision, minimum loss of accuracy it is recommended that users
choose E-formats with 7 dec imal places as this corresponds roughly to the
numerical precision of single-precision real variables on t he computer. Lack of
precision may be a serious problem if a matrix is being dumped to text in order to
export it to, say, EXCEL, manipulate it and t hen return it to MX. For “one-way”
transfers precision may be less of an issue.
procedure described in Section 4 uses this output option after reading a .dat file
(10.5). The output matrix, referred to as Z i n Figure 10.2, may then be further
used within the program.
The filename of the new .ufm matrix may either be set interactively at the time of
output or pre-defined using the “OUT” keyword on the MX command line (see
10.1.2).
Output may either be done “as is” (the usual option), as its transpose (although it
is probably preferable to use the matrix manipulation options to transpose it
internally first) or by compressing/expanding/re-coding the output matrix.
The latter options were formerly handled by the SATURN programs M3, M4 and
M5 and the names are retained for ease of identification. In all three cases the
specifications for the new zone structure must be pre-coded on an i nput dat file
whose formats follow the previous M3/M4/M5 conventions. T hese are given in
Appendix W. Note that both M3 and M4 have been effectively superseded by M5.
However note that similar recoding etc. functions are also available interactively
on input, see Section 10.4, and those are preferable in most cases to recoding the
matrix at the output stage.
If the internal matrix is stacked with multiple “levels” a single level may be dumped
as a square output .ufm file, an ope ration referring to as “cutting” a matrix. See
10.4.2 for the reverse procedure to “paste” a square input matrix into a single
level. The same option is also available as described in 10.17.A further option
(post 10.8) allows a matrix of 0/1 to be output to represent the current state of “cell
selection” (10.6). Thus 0 represents non-selection, 1, selection.
Options to change the matrix dimensions and units (10.2.3) and t he title are
available.
where three input .ufm matrices must be defined, T ij o, c ij and c ij o, and the power p
set. These are also defined within the sub-menu with the matrices being equated
to external input files 1, 2, 3 etc.
Once all the necessary parameters have been defined choose “1- Do It Now!” to
perform the calculations. The resulting T ij values are stored in the internal matrix;
use main menu option 14 to permanently store them in a .ufm matrix file if desired.
Similarly to carry out a singly constrained trip distribution model set MCUBC = 1;
see 7.10.2.
Note that these functions are not applicable directly to multiple user class models
where the matrices are not square but stacked by levels to represent the different
user classes. To undertake demand calculations by user class it is necessary to
treat each user class separately with its own square matrix.
where A i and B j are row and column balancing constraints to satisfy the row and
column totals O i and D j .
It requires as input a skimmed cost matrix ufm file, say input as the first matrix file
plus (optionally but most conveniently) an existing trip matrix as the second file;
the latter is used below as a convenient method of obtaining the trip ends O i and
Dj.
Thus first create the cost matrix C ij as the internal matrix (which it will
automatically become if the first input .ufm matrix is the cost file). Then transform
it into the negative exponential (assuming β = 0.01) via the matrix manipulation
equation (see 10.8.1).
e( −0.01Y )
Next enter the matrix factoring option and choose, first, option 3 to factor all rows
by factors you select to be the row totals (i.e. origins O i ) from the trip matrix ufm
file; see 10.7.4. Thus the internal matrix now becomes:
( −0.01Cij )
Oi e
Repeat with option 4 to factor all columns by the column totals D j to give:
( −0.01Cij )
Oi D j e
Alternatively, and pr obably more conveniently, the above three steps could be
reduced to a single step via the FORTRAN equation:
ROW ( 2 ) ∗ COL ( 2 ) ∗ e( −
0.01Y )
assuming as above that the input trip matrix is the second .ufm file.
Finally choose the matrix Furnessing (10.7.5) and set the trip ends again from the
second .ufm input file. Requesting the doubly constrained Furness option solves
the original equations.
Goodness of fit statistics comparing the distributed trip matrix (the internal matrix
Y) to the assumed observed trip matrix (X2) may be obtained under the Statistics
Option and a calibration exercise carried out by trial and error.
This may be calculated by inputting the 4 relevant trip matrices – T1, T2, C1, C2 –
as input files 1 to 4 respectively (recalling that cost matrices may be calculated as
described in Section 15.27.4) and then creating the internal matrix via the
equation:
0.5 ( X 1 + X 2 )( X 4 − X 3 )
The consumer benefits may then be viewed per cell, per origin/destination or in to
using master options 8 and 9.
Note that to “dump” the total benefit into an external file, e.g. as part of a iterative
process involving forecasts for a series of future years, you may make use of the
facilities described in 10.14.
More simply the R.O.H. calculations are available as part of a standard batch file;
see 10.20.8.
Tij2 = XTij1
If a l evel n is defined for a stacked matrix then the factoring is applied to that
level only; otherwise the factor is applied to the entire stacked matrix. N.B.
Similar to the interactive process to select a single level; see 10.7.2.
Tij=
3
Tij1 + Tij2
10.20.5 MXAVER2
MXAVER2 mat1 mat2 mat3
Takes a 50:50 average of two matrix files mat1.ufm and mat2.ufm to produce an
output file mat3.ufm where:
T=3
ij (T 1
ij + Tij2 ) / 2
10.20.6 MXMSA
MXMSA mat1 mat2 mat3 n
Use the “Method of Successive Averages” to combine together two matrices
mat1.ufm and mat2.ufm to produce an output matrix mat3.ufm where:
10.20.7 MXKK
MXKK TIJO CIJO CIJ TIJ BETA
Produces a new multiple time period trip matrix TIJ.ufm based on the incremental
logit model formulation of KK Chin. See 17.12.
Note that each matrix above must be “blocked” by time periods; see 10.2.4.
STACK and UNSTACK may be conveniently used if you wish to perform the same
operation (e.g., editing the zone structure) on each level of a stacked matrix.
Tij=
3
Tij1 − Tij2
By default the output text files use decimal formats with 2 decimal places
(10.15.2). To change either it is necessary to change the parameters EFORM and
NDPS respectively in the preferences file MX0.DAT.
These procedures are designed to make life easier for users who wish to transfer
SATURN matrices into other suites of programs, e.g., EXCEL, in order to make
use of particular facilities. To transfer them back into SATURN a complementary
set of procedures CSV2UFM, etc. are also provided; see 10.20.14 below
N.B. These procedures only work with release 10.6 and beyond of SATURN
although the .ufm files used and/or created will work with previous releases (within
reason).
♦ LINE2UFM
♦ CSV2UFM
♦ EMME2UFM
♦ TBA12UFM
♦ TBA22UFM
♦ TBA3AUFM
following the conventions described in 10.20.13.
Specifying formats and/or decimal places is less important in reading from text
files than in writing to them (see 10.20.13 above) since, in general, the input
routines can detect whether a field is, say, E-formatted and deal with it as
appropriate.
Note that there are no procedures SATL2UFM or SATS2UFM as these are
effectively covered by the standard matrix build procedure MXM1 (See 4.1).
Tij3 = Tij1.Tij2
I.e., each cell element in matrix 1 is multiplied by the corresponding cell in matrix 2
so that if, say, matrix 1 is a trip matrix (pcus/hr) and matrix 2 is a skimmed time
matrix (hrs) then the resultant matrix is a matrix of pcu-hrs/hr.
N.B. This is not the normal mathematical definition of matrix multiplication but one
that is probably far more commonly used by network modellers.
Mini-Contents Page
11.1 Introduction
The SATURN network analysis program P1X combines together the functionality
of four original analysis programs, P1, SATLOOK, SATDB and SATED, plus extra
functions such as network cordoning (SATCH), signal optimisation (SATOFF) and
network building (SATNET) into a single multi-purpose network analysis program.
In brief SATLOOK caters for alpha-numeric output and analysis of .ufs files, P1
provides graphical analysis and net work editing, SATED edits simulation nodes
and SATDB provides spreadsheet-like facilities. S ince the four basic functions
are relatively distinct it is often useful to refer to them by separate program names.
SATLOOK and SATDB (plus, strictly, SATED although it has been largely phased
out) exist as separate programs although they may also be ac cessed directly
through the top menu in P1X.
P1X (plus SATDB and SATLOOK) runs primarily in an “ interactive mode”, i.e.,
with all requests for options, etc. input directly via menus as opposed to the “batch
mode” with instructions pre-set in a control file. Basic principles are described in
Section 19. However all these programs can also be run in a “quasi-batch” mode
by setting up a “key” terminal input file with the desired responses in the correct
order (See 14.5).
Function-specific information is given in Sections 11.2 to 11.15 and t echnical
specifications in 11.16 to 11.19. These sections are fairly general in nature since
the programs are designed to be “self-documenting” in that the menus should be
self-explanatory and these in turn are backed up by a “help system” as explained
in 19.11.
To run any of these programs under DOS or Command Prompt simply type the
program name followed by one or more “command line” parameters to request
certain network files, e.g.
P1X LIV93
to examine the network file LIV93.UFS. For full format instructions type P1X etc.
on its own. (See also 14.1)
Note that all interactive programs automatically produce “line printer” files which
contain a permanent record of most of the interactive steps, relevant inputs and
outputs etc.
“tell” the program about the output devices available to it. I t is therefore
installation-specific.
The following data needs to be supplied for each potential device:
(i) Whether it is a vdu screen or a hard copy device. (A “screen” is any device
for which column 30 on the first record for that device contains a 1 or greater
whereas a “printer” contains a zero.)
(ii) Its maximum X and Y dimensions, both in physical millimetres and in
(device) pixels.
(iii) The number of “pens” (/colours) available (SATURN programs assume 16
but the output device may have fewer, in which case it is necessary to “map”
the 16 SATURN colours into the smaller set.)
(iv) “Pen mappings”, either for the above reason or if, say, you wish to have
output in red when SATURN thinks it is outputting in green.
(v) Various universal scaling parameters to, for example, make the output text
characters bigger or smaller.
For a full description of the contents of GRAF.DAT, its format etc the reader is
referred to the file itself which, after the initial data set, contains documentation.
A standard version of GRAF.DAT is supplied with SATURN with a n umber of
standard device definitions; users may well need to modify this file to suit their
own available devices. If for any reason a SATURN program cannot locate
GRAF.DAT an internal default set of device definitions is used. This contains
specifications for common device types - the screen and pr inter under 32-bit as
mentioned above - and should therefore be sufficient for most users’ applications.
The correction factor compensates for poor communication between the programs
and the device drivers and is related to the device/screen resolution. Ideally the
correction factor should be 1.0; however, empirically, a value of 1.35 appears to
be required for the majority of screen settings to which SATURN is applied and
that is therefore (currently) the default.
Generally the problem of over-sized characters occurs with low-resolution screen
settings; therefore one solution to the problem may be t o increase your screen
resolution. If this is not feasible or does not work the only alternative is to adjust
the correction factor within P1X. From the menu enter “Primary dev”, select
Correction Factor and input a new value. Some trial and error testing may be
necessary.
Since the default value, i.e., the 1.35 above, is read from the graf.dat control file
users may also wish to change graf.dat. This may however be a bit difficult with
networked computers if the same central version of graf.dat is being used by a
number of different machines.
The same considerations apply to the alternative (i.e., printer) devices if output
characters are universally over- or under-sized; either change the correction factor
for the secondary device interactively prior to printing or (preferably) ensure that it
is changed in graf.dat. Unlike terminal screens, however, a default value of 1.0 is
probably fairly safe.
an angle (e.g. annotation along a link in P1X). Thus you may observe that the link
annotation, which should appear “just above” or “just below” the line may, be
shifted away/towards the line. The rotational shift parameter (defined as fractions
of character heights) moves the text up or down depending on the sign. N.B. It
has no effect on either horizontal or vertical annotation where the problem does
not occur.
A more drastic solution to the same problem is to use a s et of SATURN “DIY”
fonts as described in 11.3.8.
♦ global changes;
♦ individual applications.
Thus under global pen changes it is possible to “map” one pen i nto another. For
example if the standard pink pen (#13) is very faint on your device it may be
mapped into, say, the red pen (#4) using the Pen Definitions menu under
System/Device.
Alternatively if one particular application uses a colour you don’t like, for example
the pen colour used to annotate nodes on link plots, then there are menus where
particular pen definitions may be changed without making that change global. In
particular, the “background colour” of the plots (which defaults to white) may be
re-set within this menu.
However it has been found that with certain hard copy devices (apparently only
those larger than A4) annotation which is being written “at an angle” (i.e. neither
on the horizontal or vertical) sometimes (not always and not always consistently!)
appears in the wrong position with the wrong orientation. And nobody in Salford
can explain why! P art of the problem may be solved using the Rotational Shift
(11.3.4) but empirically this is not fool-proof.
To deal with this problem an empirical fix has been added (Version 10.3) which
uses an alternative set of character fonts for hard-copy annotate-at-an-angle only.
These fonts are based on relatively simply DIY principles of drawing characters as
a sequence of short lines so that they lack the sophistication of “proper” fonts.
However they do at least appear where they are meant to appear and at the
correct orientation and are damn sight better than the alternative!
To select the DIY font for the secondary device “toggle” the appropriate option
within the menu Parameters: Second dev. under the System/Device menu. Note
that the option does not appear for the primary device since the problem does not
occur there.
By default the characters drawn by the DIY font are one pixel wide which, for most
devices, is rather faint. T herefore a f inite “thickness” may be s et to improve
legibility; generally speaking values of the order of 0.3 mm should be sufficient.
1 Certain options may either read or create external files on an “open-and-close” basis; the files
referred to here generally exist throughout the program.
desired to create a COBA file which contains a common node numbering system
for two networks.
“DRAGing” is accomplished by first selecting a node on the current plot (point and
click) and then clicking on a new point within the current window for that node to
be moved to. This is particularly useful when a bitmap background map is being
used and you wish to correctly locate the plotted map on the background.
In a s imilar way the “SCALE” option allows two nodes to be l ocated at their
desired position, in which case the plot is not only shifted but scaled up or down
as well.
In all cases the (user) co-ordinates of the four corners of the plotted window are
held in variables Xmin, Xmax, Ymin and Y max where X refers to the horizontal
and Y to the vertical. For more precise positioning these variables may be set
explicitly (useful for selecting the same area as in a different run, although see
11.5.2 below for an alternative method).
Alternatively if the network plot does not occupy the “full” window “fill screen”
extends the X, Y boundaries to fill the space available.
If the window is changed in any way then the “new” auxiliary plot will appear
automatically. However if any other operation is requested the auxiliary plot is
minimised.
The auxiliary network plot also functions within node graphics (11.12.3), in which
case the currently selected node is marked as the centre of a red rectangle within
a larger section of the network.
say, 500 pcu/hr. This could be done b y, firstly, selecting the variable FLOW from
the menu, next specifying the condition as ‘GT’ and finally specifying the critical
value as 500. In this case links where the flow (in both directions) was less than
500 would not appear at all and the selected links would appear as per normal.
Once selected a l ink remains within the “selected” sub-set of links until the link
selection rules are changed, e.g., cancelled.
Alternatively one may “highlight” selected links, e.g., by drawing them as thicker or
wavy lines, in which case the other links remain as part of the map. T he
conditions which the highlighted lines must satisfy are specified as above.
It is also possible to select links that satisfy more than one condition by specifying
further conditions. These may be either in the form of “AND” conditions, e.g.,
FLOW GT 500 AND SPEED LT 30
so that the plotted links would need t o satisfy BOTH conditions, or “OR”
conditions; e.g.,
FLOW GT 500 OR SPEED LT 30
in which case any link satisfying either of the above conditions would be
“included”.
In addition to GT and LT tests further numerical conditions include “EQ” and “NE”,
in which case an additional “plus-minus” parameter needs to be specified. Thus
12.05 is not, strictly, equal to 12 in the sense of 12. 0000 but it is equal to 12 in the
sense of 12 + 0.5. B y default equality or non-equality is based on r ounding off
both quantities to the nearest integer, i.e. + 0.5, but tighter (or even looser) limits
may be specified.
Tests such as GT or LT also require numerical values such as 500 or 30 in the
above examples. However it is also possible to specify a test as “GT 0” directly
without specifying both GT and 0.
Ranges may also be selected, for example, all speeds in the range 20.0 to 40.0.
Less obvious conditions are the “Top Ten” and “Bottom Ten” whereby those links
which have the 10 maximum or 10 minimum values in some sense are selected.
For example, you may select the 10 worst converged links (as also printed by
SATALL, see (1) in 9.9.1.2) using the GEH convergence as the link attribute and
Top Ten as the criteria.
The link attribute used in the tests may also be specified as either its actual or its
absolute value.
Equally links may be selected as part of the network cordon process such that, for
example, all links inside the cordon but excluding the “cut” links may be treated as
selected; see 11.13.2.
Finally, a new addition in 10.3, the links to be selected may be nominated by
pointing and c licking on them with the mouse. A link thus identified is either
selected in both directions (if two way) or only in the direction implied by the
mouse position depending on whether the option is entered with either the 2-way
or 1-way toggle selected.
Data may be chosen either from: (a) a list of “names”, e.g., “DISTANCE”,
“ACTUAL FLOW”, etc.; (b) more generally via a Dirck Access array number (see
15.21 or App. J) or (c) from data columns previously created and stored within the
data base.
The list of “names” is divided into (up to) 5 sub-lists corresponding to:
♦ Flows;
♦ Emission data.
The precise contents of each depend on the input network so that, for example,
“LANES” would not apply to a buffer-only network.
There is also a choice of a “full” list including all items under (a) to (e) above but,
generally speaking, the full list is long and unwieldy.
A full list of all possible data items in the standard lists is given in Appendix I.1with
an explanation of what each contains plus, where applicable, their equivalent DA
code.
In general and w here appropriate the flows listed explicitly differentiate between
actual and demand flows but in the case of five “sub-flows” - bus flows, pre-loaded
flows, passq flows, (total) fixed flows and entry flows from centroids - there is an
explicit 3-way choice under Options to request either demand, actual or queued
upstream flows to be created.
Equally annotated link data may be g enerated via, for example, Select Link
Analysis (11.8.1), tree building (11.8.3), etc. etc. Bus routes are annotated by
writing the number of the route along the constituent links.
A further form of link annotation - which must be “text” - is that of link “names” as
available under GIS displays. See 11.6.10.
link flows, in which case if the data is stored as a data base column the turn data
is also there to be viewed and/or manipulated via SATDB.
By default all data items in the permanent data base (independently of how they
were created) are displayed in all network plots although under the
“housekeeping” options plotting may be suppressed.
More than one variable may be annot ated at once, although with numerical
display the program checks whether or not enough space is available and
suppresses any figures that would “over-run” the link. H owever before
suppressing any numbers the program first tries to “compress” the annotation by
writing smaller numbers; the system parameter SHRINK (set under the “current
device parameters” sub-menu within the system/device menu; 11.3.4) sets a limit
to the compression, so that if SHRINK = 0.7 the smallest permitted characters are
70% of the normal size.
Note that the “sense” of the operation implied by options 3, 5 and 6 abov e can be
reversed; i.e., you may also choose to plot NET1 - NET2. In addition, using the
SATDB-style data manipulation options you may create any other “difference
statistics” you wish and involve link data from networks 3 and 4 as well.
Figure 11.1 - Bandwidth Plot of Flow Differences (Option 3 above)
The same principles apply, post 10.9, to annotating flows by vehicle classes (i.e.,
summations of user class flows).
Thus adding a fixed width enables very low / zero values to become more
apparent, while having a minimum width has a similar impact.
♦ Alternatively, if more than one item of link data is being displayed, each item
may have a different colour.
♦ Different colours may denote positive and negative entries per data item.
♦ The colours may depend on “ range bands” such that, e.g., all data values in
the range 0 to 100 are plotted in red, 100 to 200 in blue, etc. etc. with different
pen colours/ranges for different data sets (see 11.6.3.6).
♦ Alternatively the colours of each individual data item may be defined by the
range bands of another single “master” data item (see 11.6.3.7).
The most basic choice is between basic pen definitions which depend only on
data item plus positive/negative and those which are range-based. The default is
the former with pen c hoices which differ by both data item and by
positive/negative, although these may be changed by the user to be based more
on single uniform colours.
Colour choices in P1X are made by entering “Pen and/or range defs” under Link
Annotation Display Options where the following basic options are presented:
♦ The choice of range bands or single colours per data item (11.6.3.6);
♦ The choice of a “ master” data item to define colour bands for all data
(11.6.3.7).
i.e., the V/C ratios in the above example, is not displayed so that you have flows
only plotted in colours determined by their V/C ratios.)
Selecting bandwidth colours by using speed as the controlling variable is another
very common example; i.e, link data is displayed as bandwidths with different
colours for different speed bands. A further application using speed is described
next.
9) One-way links are (by default) indicated by arrows at the mid-point in the
appropriate direction; the length of the “barb” may be adjusted or, in the limit,
set to zero in order to suppress the arrows totally.
NODE SHAPES
Under option (1) above (ONLY!) different junction types are represented by
geometric shapes and/or colours. Thus simulated roundabouts are represented by
circles, traffic signals by squares, priority junctions by rectangles, external nodes
by pentagons while dummy nodes are either (post 10.8) given by a number only
or by a star. In the buffer network all “real” nodes are represented by a hexagon.
Zones, whether in the simulation or buffer networks, are represented by triangles.
In addition each shape can have its own unique colour and be ei ther “solid” (i.e.,
in-filled) or “open”. If, however, numerical node dat a is included then the shape
must be open in order to accommodate that data; see below.
Various options are provided to: (a) suppress node shapes altogether; (b), to use
a single pen colour for all node types and/or to distinguish different node types by
different colours; (c) to distinguish zone sectors by distinct colours; and (d) to
factor the size of the shapes up or down by a user-set factor (default 1.0).
data, e.g. V/C ratios, and total through flow. These may be selected from a
standard list (with certain elements available for simulation nodes only) or
extracted from the node data base (11.10.5) where you may have previously
created your own node data sets. See Appendix I.3 for a full list of available node
data.
The same numerical data may also be represented by in-filled circles, option (2),
whose radius is proportional to the value of the particular node’s data with a
proportionality constant set by the user. Bandwidth displays require a
“proportionality” factor to be de fined to convert the value “at the node” into a
radius. For example, if you are displaying %V/C you may wish to define a 1 mm
radius to equal a %V/C value of 10. In addition the colour used in the circle may
be determined by the value being annotated (see 11.6.5.2 below).
Bandwidths may be either “background” or “foreground” depending on whether or
not the lines representing the links are plotted over the node shapes or, in effect,
underneath.
An example is shown below with a single colour used.
(only) in the plot. Unlike options (1) to (3) neither (4) nor (5) display node data
values.
Option (4) annotates a selected turn variable, e.g., turning flows or delays, as
“tubies” or curved bandwidths of proportional width. To a large extent this option
duplicates the turn-based options described in the following section and relies on
data selected there. The main difference is that here the data is displayed “within”
the node; under 11.6.6 it is displayed “along” the entry link.
Option (5) produces line diagrams for each simulation junction, similar to those
produced for individual junctions but at a much reduced scale as illustrated below.
(If the scale is clearly wrong it probably means that the parameter XYUNIT has
been incorrectly defined.) It is logical to combine this form of node representation
with the representation of simulation links by lane-based diagrams; see 11.6.4 (7)
above.
Note that, if a l ink entering a no de has been described in the GIS data as a
“curved” link (see 5.7.1) then the angle of the exit arm in the node drawing reflects
the initial angle of the curved link, rather than the direct “crow-fly” direction to the
adjacent node.
100 to 200 i n pen 2, etc. etc. In the latter case the user could stipulate that all
values below 50 would be in pen 1, all values between 50 and 90 i n pen 2, 90 to
100 in pen 3 etc. etc.
Note that with the fixed increment option it is the absolute value of the node data
that is used to set the colour; in the case of user-set ranges the sign of the data
value is taken into account and the range values may similarly be either positive
or negative.
Thus under a) one m ight select only signalized simulation nodes, all junctions
excluding zones etc.
Option b) can select, e.g. nodes where the delay is greater than x seconds, etc. In
this case the “property” on which the test is applied may be:
♦ (most commonly) the node data currently annotated (if there is one),
♦ a newly selected data item from the standard list of node data.
The numerical criteria on which the test may be based are similar to those used
for link selection by numerical attribute; see 11.6.1.1. Thus not only may they
include “GT 30”, “LT 0” etc. they may also include “Top Ten” so that one might
select the 10 worst converged simulation nodes.
Option c) simply tests on t he basis of numbers; e.g., select those nodes whose
numbers are between 100 and 200.
Option d) provides a s omewhat crude “select by location” using the definition of
the current plotting window to “cordon off” a set of nodes/zones. A more
sophisticated selection may however also be done us ing the cordon options
proper within P1X as accessed from the master menu (11.13).
Option e) allows the user to select nodes by point-and-click with the mouse which
may be extremely convenient if a small number of nodes are to be selected and/or
the basis for their selection is otherwise difficult to specify.
Option f), network comparison, may either work at the rather crude level of
selecting nodes which, e.g., appear in network 1 but not in network 2, etc. It may
also use a more precise system of selecting common nodes by identifying
simulation nodes which are coded differently between the two networks.
Note that the node s election rules in P1X are, effectively, identical with those
applied within the SATDB node data base (11.10.5) so that selections made here
will affect, e.g., the node data tables as printed by SATDB and vice-versa.
those that are suitably identified within the .ERL file as controlled by the user. Full
details are given in 15.58.2.
The highlight options may be entered either by clicking on “Highlight Errors”, “1st
ERL Field” etc. under Display Options in the Menu Bar or on “highlight Errors” etc.
in the banner under Display Options. In either case the user is prompted with a
menu to select, e.g., all Serious Warnings, one particular Serious Warning by
number, etc. etc.
A further highlighting option selects those simulation nodes where there are
differences in the coding between networks 1 and 2, e.g., different signal timings.
This is a useful option to identify where changes have been made to a network,
e.g., by an over-zealous colleague when you are away on holiday! A full listing of
differences may also be obtained within SATLOOK; see 11.11.18.
This option is extremely useful for network debugging in that it enables the user to
quickly identify where in the network particular errors have occurred rather than
trying to identify particular error messages in a . LPN file and l ocating the
corresponding nodes using P1X.
Note that having identified a sub-set of nodes displaying a particular error it is then
possible to automatically “loop” over those nodes in order to view the source of
the error via node g raphics. In addition, the same “loop” may be i nvoked under
Network Editing in order to be able to correct any coding errors immediately and
to produce a corrected .dat file.
Similarly nodes may also be highlighted (and looped over) within the Convergence
Menu “10 worst” options (11.15) so that, for example, the locations of the nodes
where the 10 biggest discrepancies in delays calculated by the simulation and
assignment sub-models have occurred are highlighted. This is also an extremely
useful tool in quickly identifying potential trouble spots in terms of assignment-
simulation convergence and correcting them. (Note, however, that the source of
the convergence problem may not be as immediately obvious or as easy to
correct as it might be with specific coding errors.)
(ii) As “tubies” - in-filled curved bandwidths whose widths are proportional to the
turn data displayed;
(iii) As “boxed data” with the values for each exit turn from a link printed
horizontally within a box attached to the relevant link.
Note that only simulation junctions have turn data associated with them. The data
to be displayed is chosen from a menu. It may also be “selected” based on the
selection rules for nodes (11.6.5.3).
Under b) an a rrow with a per pendicular bar at the end i s used to indicate all
banned turns.
(N.B. Prior to release 10.7 “Banned turns” in the context used here referred only
to turning movements coded with a zero saturation flow under 11111; they did not
include any turns which have been banned v ia the 44444 data inputs, primarily
since in the latter case the ban or bans may be user-class specific. However, post
10.7, turns which have at least one us er class banned under 44444 are also
included.)
An alternative option allows us to use the same o/d ranges to define a “ cross”
whereby all trips from origins 60 to 69 would be included (a horizontal strip) plus
all trips to destinations 70 to 89 (a vertical strip). In this case the row totals for
origins 60 t o 69 would be the same as for the complete matrix as would the
destination totals 70 to 89, but all others would be potentially reduced.
In either case if the display mode were set to be origins only then the outputs
would be the totals of the elements within the rectangle/cross.
In the limit, by selecting a single origin or row from a trip matrix the corresponding
destinations are displayed so that one can examine individual cell values.
Indirectly selection may also “control” the zones which appear in the plots since a
zone with a r ow/column total of zero (or less than the lower bound) does not
appear; however its main purpose is to select the o-d cells which go into the
summations.
Note, in addition, the “lower bound” parameter which may be used to suppress the
display of small row/column totals or of small desire lines as appropriate.
♦ The width of an ex tra blank border down the left-hand side (useful for
reports).
♦ The pen colours used for general drawing, e.g. link colours, the legend etc.
♦ XYUNIT (which, if incorrectly set in the original network file, is a pain to reset
without rerunning the entire network).
♦ An option to suppress the exterior lines enclosing the window which may be
useful for plots to be transferred into reports.
♦ An option to use either the full available screen or to reduce the window to fit
the network window plotted.
In short, any parameters that don’t fit conveniently anywhere else go here!
♦ where the banner appears (essentially on the right, on the top or not at all);
♦ whether the banner menu choices are included or not in output plots to the
alternative device or to bitmap files (11.3.5 and 11.3.6);
♦ choices as to what appears in the A-Z banner, e.g. whether or not you want
the WS Atkins/ITS logo to appear;
♦ the pen colours and standard character height as used in the banner.
♦ Polygon
♦ Lines
♦ Icons
♦ Text
♦ Node names
♦ Link names
♦ Curved/straight links
Note that while the “names” set in a G IS file are normally titles such as “Hyde
Park” or “M62” they are essentially just text so that you may use this facility to
include comments such as “New Signals” or “Congested” on the plots.
By default all GIS displays are “off” but the default settings are in fact stored within
the P1X preferences file (11.6.10) such that if you turn, say, curved links “on” and
then store a new preferences file then curved links will be the default from, then
on. More specifically the Namelist “names” associated with the 8 opt ions above
are of the form GIS1, GIS2, … GIS8; i.e. an entry of the form: GIS8 = T sets
curved links to “on”.
advantage of being “proper” map displays (assuming of course that they are
obtained from “proper” maps”.
The default is a blank screen.
Full numerical output statistics are included in the .lpp file; summaries are
(optionally) sent to the screen. Optionally validation criteria as recommended by
the UK Department of Transport are set out; these include:
1) For flows > 700 pcu/h the percentage of modelled flow within + 15% of the
count.
2) For flows <700 pcu/h the percentage of modelled flows within + 100 of the
count.
3) The percentage of counted links where the GEH statistic (15.6) is less than
5.0.
In all 3 cases the Department’s recommendation is that 85% of the counts should
satisfy the above criteria. (N.B. The flow split between 1) and 2) in SATURN is
based on flow units of PCU/h, not VEHICLES/h as strictly used by DETR.)
The scatterplots plot modelled vrs observed flows and (again, subject to options)
best fit lines of the form y = a + bx, y = bx and y = x with plus/minus GEH limits
included. T hus if you ask for y = a + bx only and GEH error = 5 then the linear
plot is given with upper and lower curves corresponding to modelled flows which
would be within a GEH value of +5.
Note that the same set of options may also be i nvoked under option 13 o f
SATLOOK, 11.11.13.
Points in the scatterplot are plotted as small squares; optionally the count
“number” (as it appears in the full list of counts) may appear above and to the right
of the squares. Although probably not legible in a mass of points near the 45
degree line they are useful for quick identification of outliers.
Note that the value of UPBUS may also be changed interactively within P1X and
that if the route begins/ends at buffer nodes then none of these complications
occur.
The data items thus created may be annotated on each individual link in order to
give an ov erall impression as to the goodness of fit within different areas of the
network. By default, once the “Link TP data to DB column” option has been
selected, the percentage error is automatically selected for display using the
current settings to display link data (e.g., numerical display).
Note that a par ticularly appropriate display format may be s elected, code name
“Hallmark”, which uses a bandw idth presentation with a fixed width but with
colours dependent upon the level of percentage error. Thus errors below -30% are
in red, -30% to -15% in orange, -15% to 0% in green, 0% to 15% in light green,
15% to 30% in blue and above +30% in black.
♦ request link, bus or node-based etc. information for display in a text window;
ditto network-based information (11.8.4);
We note in this respect that there is a “Repeat SLA” option which is useful in the
situation where you require both flows and a m atrix. Thus having defined and run
the “SLA” for, say, flows toggle to Matrix - In and simply repeat to avoid having to
redefine the links.
Users need to be aware of potential problems in simply trying to re-assign a SLA
matrix; see 11.10.7.7.
Under matrix output with multiple user classes either the matrix for a single user
class will be output or, if all classes have been selected, a “stacked” matrix for all
classes will be created.
• On the link
Thus it is now possible to carry out an SLA on, e.g., only links which are
downstream of a s elected link and which, therefore, would be t he link flows
affected if the link in question were, say, blocked by an accident. This facility has
applications to studies of re-routing and incidence analysis as covered in Section
15.?.
a) the minimum cost route (“tree”) from O to D (generally, but not necessarily,
using the same criteria employed by the assignment);
b) the complete tree from O to all nodes (including all zones);
c) the complete tree from O to all zones (with any zones that cannot be
reached, e.g., due to a disconnected network, indicated by a large X);
d) the minimum cost route as (a) but as a “joy ride”, i.e., link by link;
e) the complete set of O-D routes from an i terative FW assignment plotted
iteration by iteration (with either the screen cleared between each route or
in “overlay” mode where they are superimposed on one another);
f) the complete set of O-D routes plotted as a “forest”;
g) the full set of distinct routes, an “arboretum”;
h) as origin-based “isochrones” - see 11.8.3.3;
i) the set of least well converged O-D routes – see 11.8.3.4;
j) splitting factors as calculated under OBA – see 22.5.2;
k) link-specific gap / delta values – see 11.8.3.5.
See Section 15.26 for further explanations of the concepts. Note that not all the
above options, e.g., e) and g), may appear under OBA where explicit paths may
not be stored (see 22.5.2).
A summary banner which displays, e.g., the cumulative (“skimmed”) time, distance
etc. associated with the displayed route is included when appropriate.
With certain options, e.g. forests, it is possible to “store” the link data generated as
an extra column in the link (SATDB) data base, e.g., for further analysis.
Trees may also be displayed “in reverse”, i.e. into a destination as opposed to out
of an or igin. However the destination-based options are limited essentially to
building “full trees” from all nodes since specific O-D tree information is provided
only within the origin-based menu.
This facility only applies to those options which display the routes as built during
the assignment, i.e., arboreta and the complete sets of O-D routes. However, with
forests the comparisons may be taken further such that it is possible to construct
link data equal to, e.g., the difference in the forest values between networks 1 and
2, or to plot both simultaneously, etc.
11.8.3.3 Isochrones
A related display, still very much under development, shows “isochrones” of equi-
cost bands from the origin as overlapping in-filled coloured bands. These are
based not just on the costs from the origin to discrete points along the road but to
any point in the 2-dimensional space within the network by the additional
assumption of a “walking speed”. Thus the cost to reach any point (X, Y) is made
up of the cost to get to the “nearest” point on t he road network plus the extra
time/cost to “walk” from the road (assuming the minimum crow fly distance).
Parameters to be set include:
♦ The definition of “cost” (e.g., minimum time, distance, generalised cost, etc.
etc.)
This data could then be fed into a “ proper” GIS system which could then
produce “proper” line contours in whatever format is desired.
columns would then give you the (minimum) cost from every node t o the
nearest hospital.
δ AB = Σ pij∈AB T pij (C A * + C AB - C B *)
Where C A/B * is the minimum cost from origin I to node A / B
C AB is the cost on link (A,B)
T pij is the flow on path p from origin I to destination j
pij∈AB denotes those paths that use the link (A,B)
The “cost” term in the brackets represents the extra cost above and beyond a
minimum cost path that a vehicle from I to j would incur by using link (A,B) and is
therefore a m easure of its departure from Wardrop Equilibrium. Under perfect
equilibrium if the cost term is positive then T pij should be zero; if T pij is positive then
the cost term should be zero.
We may note that summing δ AB over all links would give us the same numerator
as the equation (7.3) for Delta (Section 7.1.4)
Link delta values may be further disaggregated by, e.g., only considering a single
origin. Equally we could produce an origin-specific delta value by summing over
all links with the origin i fixed.
The banner provides several options for calculation and display. Thus we may
calculate δ AB for the single selected origin or summed over all origins. (The former
is generally recommended for large networks since the cpu time required to sum
over all origins is roughly equivalent to carrying out a full assignment and, if you
choose an origin whose trips cover most of the network it should pick out those
links which have problems of convergence.)
Note that link delta values are set by assignment links which therefore, in the
context of a simulation network, contain both simulation roads and turns. In order
to view the full set they may be stored as a data base column and viewed
normally.
However, once set, link delta values are automatically displayed as link annotation
but, in this case, the value displayed for a s imulation link (A,B) will have been
incremented by (a) all delta values for its exit turns (i.e., A-B-C) and (b) by all its
entry turns. The reason for this is that the turn values – which may well be more
significant than the pure link values – are otherwise not obvious. Large delta
values on, say, links A-B and B -C probably indicate a l arge contribution to both
from the turn A-B-C.
The times used in the calculation of generalized cost above may be either taken
post-assignment or post-simulation. In the former case δ AB is comparable to the
delta function (7.1.4); in the latter case it is comparable to the gap function (9.2.1).
♦ Links
♦ Nodes
♦ Zones
♦ Bus routes
♦ X,Y co-ordinates
Secondly, a range of options as otherwise provided by SATLOOK:
♦ Network parameters
corresponding user co-ordinates appear within the banner. This facility is useful,
for example, in “calibrating” the corners of a . bmp file (see 15.43). To terminate
“monitoring” click the mouse at any point.
− update stage times and of fsets (which might have been altered
within SATALL, for example)
12) screen edit segments of the internal .dat file.
13) Edit “data fields”, e.g., link distances over all simulation links, using data
input from external data files.
Note that options (1) to (8 above correspond with data sections 11111 to 88888 as
defined in the data files input to SATNET (6.1) while (9) edits the namelist-based
records (6.1) and (6.3). Option (10) essentially adds to the 11111 records (while
effectively removing records from the 33333 buffer records). Options (11) over-
write the signal timings within the 11111 records.
These are described in sub-sections 11.9.3 to 11.9.17.
Note, finally, that PMAKE may also be entered directly from the master edit menu
(see 18.1) in order to make topological changes as may the GIS-edit option.
Finally various options to output (save) new files as described in 11.9.2 may be
accessed.
All changes made are continuously recorded to a .dat file which is stored as an
internal “direct access” file which initially is copied from the original .dat file from
which the main network was built in SATNET. That filename 2. At the end of the
program run, once all the editing changes have been c arried out, the internal
direct access file may be copied (“dumped”) to a new output .dat file (see 11.9.2),
from which a new network may be bui lt by running SATNET. T his is the
recommended option. See also 18.2.2.
Thus, as stressed in section 18.1, the main function of editing within SATURN is
to produce a revised .dat file from which new assignment and analysis runs may
be initiated.
2 The .dat file name should be recorded within the .ufs file and therefore opened automatically,
but, if not, the user must supply the correct file.
♦ sub data text files, e.g., .RGS and .XY (see 11.9.14 and 11.9.7 respectively);
♦ an updated .dat network file with data sub-sets created as $INCLUDE files.
Please note that none of the new file formats above are automatically created but
must be s pecially requested by the user (see the output options within the edit
banner menu). The following sub-sections describe each of the above options in
greater detail.
3 Note that certain options within P1X re-read simulation data from the input .ufs file and therefore over-
write any internal simulation data that has been modified; for example re-assignment options under
SATDB (11.10.7) based on networks other than network 1. Therefore if you wish to save an updated
.ufs file you are advised to do so immediately after editing.
Unfortunately the user is not always given the explicit choice between methods (a)
and (b) and more often than not it is the programme that decides. For example,
we note that the automatic network editing procedure SIGOPT – see 15.31.6 –
which optimises the stage times and/or offsets automatically using P1X by default
uses method (b); i.e., it incorporates all the old sub-files within the new .dat file.
N.B. The above material applies equally to files which are created using either of
the methods described in 11.9.2.1 or 11.9.2.6. Thus, in the latter case, a new ly
created $INCLUDE sub-file may contain internal references to other $INCLUDE
files if they were referenced in the original network .dat file.
At any point the node may be re-simulated and the effect of the changes viewed
as under SATLOOK (11.11.1).
The “Error Listing” gives a l ist of those errors which would be detected within
SATNET if the current net node c oding were input there, including errors to the
signal definitions (separately available within the signals sub-menu).
Current errors are also noted under the Print option where the numbers of
warnings, non-fatal errors etc originally detected at this node by SATNET are also
listed (but not the explicit messages); some of these may of course have been
corrected by the current editing. N ote however that certain errors found in
SATNET may not be detected within the node graphics if they are only detected
as the result of the coding of two or more simulation junctions. For such errors the
.lpn listing from SATNET will need to be consulted.
editing but they are documented here (as well as in 18.7) since they are accessed
from the same menu as node editing.
Centroid connectors within the simulation network (as defined by the network
22222 records, 6.6, and distinct from those in the buffer network) may be altered
in seven ways:
(i) By modifying an existing zone record (i.e. one that already exists within the
22222 records);
(ii) By deleting an existing 22222 zone record;
(iii) By adding a new 22222 record (from a zone currently connected within the
buffer network);
(iv) By creating a new zone plus simulation centroid connectors;
(v) By replacing an existing centroid connector to a link with a “stub” connection
to a new dummy node created mid-link (11.9.4.1);
(vi) By screen editing;
(vii) By deleting any “duplicate” zones which have identical centroid connectors
and aggregating them into a single zone (where the remaining zone is the
zone with the lowest number).
In cases i) to iii) zones are neither created nor removed (this must be done using
PMAKE); thus with ii) the zone should presumably remain connected within the
buffer network while iii) is more a question of transferring an ex isting zone from
the buffer to the simulation network.
However invoking any of the options above will change the location of the centroid
connectors and henc e the definition of the map network “topology”. H ence this
option is like PMAKE in respect to topology such that, once changes are made
here, certain restrictions on w hat further steps may be t aken in P1X come into
force. Clearly iv) is also topological in that it creates both zones and connectors.
Under i) a listing of the current zone record appears on the plot as the “legend”
and is continually updated as changes are made. Under iii) once a new zone is
selected for addition a new blank record is created and option i) is automatically
entered. Those changes affect both the .dat file and the map network but not the
structure of either the assignment or simulation networks.
Thus if the existing network were coded as in the upper diagram with zone 5
connected to simulation link (3,5) option v) would create two new nodes, 6 and 7
in the lower diagram and connect the zone to zone 7. Here node 6 would be a 3-
arm priority junction with all three arms being coded as “major”; clearly further
editing of that node would be desirable.
The node numbers (i.e., “names”) allocated to the two new nodes would be (as in
the above example) n + 1 and n + 2 where n is currently the highest node number
used.
Stub creation may be applied either to individually selected zones or, with some
caution, to all internal simulation zones. It does not however apply to “external”
simulation zones.
Note that stub/spigot connectors are prime candidates for “network aggregation”
as described in Section 15.56.2.3.
Note that link properties which are “added” within SATURN, such as flows or the
speeds/times at those flows, cannot be edi ted at this stage, only the input
properties as defined under 6.6.
Two further procedures are also optionally provided under buffer link editing:
1) An option to delete all “second line” KNOBS data records; see 15.14.7
2) An option to correct all duplicated link records by deleting the second
occurrence of a repeated A,B record (if any exist).
Note that a s upplementary “.xy” sub-file may also be an i nput file to P1X. An y
value read in over-writes the current value as read from the .ufs input file. See
11.4.1.
modelled anywhere within P1X. However, post 10.5, the changes may also be
applied internally and would therefore be included on an output .ufs file; a “toggle”
is provided within the relevant P1X banner. This may be us eful if, for example,
one wished to change, say, ISTOP before doing a c ontinuation run of SATALL
(9.12.1).
As in Section 6.3 the variables are subdivided into Logical, Integer, Real and
Character.
An “examination” option is also provided to check for any current parameter
settings – or combinations of parameter settings – which are likely to create errors
of some description within SATNET. You are not, however, obliged to change
them.
♦ banned turns;
In particular adding link capacity restraint data – which basically reproduces the
buffer link’s speed-flow curve – is seen as a “quick and di rty” technique. It may
lead to a “double counting” and over-estimation of delays if the buffer speed-flow
curve (correctly) took into account junction delays and further junction delays are
introduced by the coding of the new simulation junction. If this option is used it
may be bes t to initially code the junction as a pr iority junction with all arms as
“major” arms so that there will be no junction delays (apart from over-capacity
queues). Using dummy nodes in this situation is not recommended. When the
junction is “properly” coded the link capacity restraint curves should be removed.
At the conclusion of all editing a c orrectly coded node des cription will be
incorporated into the internal network direct access file for subsequent dumping
as an external .dat file (11.9.2) (N.B. This is not automatic, it must be requested
as “save this data”.)
This option works by adding the converted buffer node a s an “extra” temporary
simulation node at the end of the normal simulation arrays. It may therefore not
be available if the simulation network dimensions are only marginally less than the
maximum provided by your program version. See 15.28. It is not possible to add
new simulation node data into an output .ufs file.
Those buffer nodes which have been converted may be i dentified on network
plots in that they are assigned a different node type colour from normal buffer
nodes. Thus the node display should have the options for, say, node shapes and
multiple colours turned on.
♦ offset optimisation,
♦ “import/export” of signal timings via .rgs files (i.e., from another network)
♦ direct updates of all stage times and offsets on the .dat file.
These are described in the following sub-sections and in 11.9.14 (.rgs files).
Note that the “stand-alone” procedure SIGOPT described in Section 15.31.6 uses
the P1X options as described below but in a “batch format”.
Note that a further option then allows for a full network re-simulation since that
may in turn affect the signal optimisation and an i terative loop between
optimisation and simulation may be followed manually which, empirically, appears
to converge reasonably quickly. Note that this is not the same as allowing for a
full re-assignment (plus simulation) of traffic (see 15.31.1) where the feedback
effects may be more severe.
The green-split option follows that described in Section 15.31.2 to calculate and
save optimum green times for every green stage at every signalised node. The
new times are automatically recorded within the internal .dat file (and saved
externally if requested) and will be included within an output .ufs file.
The offset option follows the SATOFF procedures described in 12.2. Note that
the re-simulation loop described above essentially follows the “inner loop” of
Figure 12.2.
build stage within SATNET by setting FREDDY = .TRUE. under &PARAM (see
6.3.1 and 6.4.3.5) or (c) using the batch procedure SIGOPT (15.31.6).
Once created a .rgs file may be read by P1X (only) and its signal settings used to
replace those in the current network. (In a sense a .rgs file is a bit like a
$INCLUDE file in that it includes a specific sub-set of network data.)
Thus, if you have, say, an AM and a PM network which differ only in terms of their
signal settings and you edit the link data in the AM network it is normal to wish to
transfer those same changes into the PM network but retaining the PM signal
timings. This can be ac complished by simply copying the “new” AM network file
into a “new” PM network file, processing the new PM network through SATNET
and then using the signal transplant option within P1X to copy over the signal
settings from the “old” PM network and to create a new output .dat file for the PM
network.
Note that transplanting is only possible if the nodes have the same topology in
both networks. Thus if a node has been re-coded from a 3-arm signalised junction
into a 4-arm the old signal data will no longer be applicable and in this case the
changes will probably best be done “manually”.
The format of .rgs files has been changed in version 10.5 such that the cycle time,
in addition to the offset, is also stored per node. Older versions of .rgs files may
also be read by 10.5 but the converse is not true; i.e., a 10.5 .rgs file cannot be
read by the 10.4 version of P1X.
records to add an ex tra buffer link that link will not appear on t he plot or be
accessible to buffer link editing. However, by rebuilding the .dat file into a .ufn file
(see 11.9.2) the changes will then be incorporated into the network as viewed on
the screen and indeed screen editing in this context is most usefully applied in
conjunction with rebuilding.
We may further note here a distinction between screen editing the .dat file as a
whole and screen editing individual lines (or collection of lines) as may generally
be done w ithin the specific data editing routines described in Section 11.9.2 to
11.9.10. Thus if you screen edit, e.g., the subset of link counts these are read by
the program and included within its internal “memory”.
11.9.17 Editing “Data Fields” via ASCII Text Files and/or Internal Data Base Columns
The input data files may refer to either simulation nodes, links or turns and their
format must reflect the differences. Thus a node data file would be of the form “N
data1 data2 …” where N is a simulation node number, link data would be of the
form “A B data1 …” and t urn data “A B C data …”. In all cases the “data” may
contain several different fields (e.g., link distance, link speed, etc. etc.) and t he
user must then define each individual data item in the list.
Similarly node dat a must be t ransferred from the SATDB node data base
(11.10.5) but both link and turn data are accessed from the link data base.
♦ GAP – Minimum gap at priority junctions and/or roundabouts (In “real” units of
seconds, not integer tenths of seconds as per normal .dat files)
♦ Number of lanes
♦ Capacity Index (as stored on the second link record unlike the first five which
are all on the “main” link record)
For turns the available data fields include:
11.9.17.5 Discussion
Note that there are strong similarities within the use of X-Files to input data
directly under SATNET and indeed the same files might be used in either context;
see Section 6.13.
11.10.1 Introduction
The program SATDB brings together many elements of statistical analysis
packages, file editing systems, spread sheets and data bases in ways which are
particularly convenient for the specific task of analysing road networks.
Nowadays it may perhaps be best thought of as a poor man’s version of EXCEL!
The functions within SATDB may be accessed by either running SATDB as a self-
contained program or as a s ub-program within P1X. The former is useful for
operations that do no t require any graphical network plots or for jobs which are
being run in an essentially batch or off-line mode. When run within P1X there is a
certain overlap of functions; for example select link analysis can be don e either
within P1X or SATDB, the main difference being the way in which the choices are
made.
At the heart of SATDB (and, equally, P1X) is the concept of an “internal data
base” which may be t hought of as a matrix of rows and c olumns as illustrated
below:
(link) A B C D1 D2 D3 ...
1 a1 b1 d11 d12
2 a2 b2 c2 d21 d22
...
L
In the case of the “link” data base (as distinguished from the node data base, see
11.10.5) each row corresponds to an “assignment link”, the most basic level of
network definition within SATURN (see 5.5.1). These in turn may be sub-divided
into: simulation links (often referred to as “roads” to distinguish them from links
which correspond to the missing direction of a one-way road:), buffer links,
simulation turns and c entroid connectors in both the buffer and s imulation
networks. Thus “L”, the total number of rows, represents the total number of
assignment links.
The three “fixed” columns denoted A, B and C above identify links by node
numbers where C is only used in the case of a turn, or for a simulation centroid
connector where the zone is connected to a link. The letter C in front of a number
distinguishes a zone from a “real” node. (See 11.10.4 for more precise
definitions.)
The remaining data columns D1, D2, etc. are created by the user either by
reading directly from the input .uf* file(s) or by a wide range of alternative options.
For example data column D1 might represent link flows and D2, link times. Hence
entry d 11 would be t he flow on l ink 1, d 12 the time on l ink 1 et c. A third data
column to represent, say, veh-hrs could be created as the product of columns 1
and 2.
By default the links are ordered such that all centroid connectors come first
followed by simulation links (plus turns) and buffer links. However the order may
be changed such that, for example if one data column contains flows the display is
ordered such that the link(s) with the maximum flow appear at the head of the
display.
Once created the data base may be viewed either interactively from the terminal
screen or “dumped” to an external file. In addition a nu mber of very important
options are provided to select the lines that are displayed, for example you can
choose to look only at data from links whose V/C ratio exceeds 1.1, or only at
simulation turns, etc. etc.
Data is displayed either in an integer format - no decimal - or a “real” format - 2
figures after the decimal. I n addition certain data values may be “ missing” in
which case they are displayed by an “ m”; for example a dat a field which refers,
say, to simulation turn saturation flows would yield missing values for centroid
connectors. If desired, lines which contain all missing values may be suppressed
in the listings; See 11.10.11.
The basic idea therefore is to give the user complete control over what data is
displayed and the manner in which it is displayed.
An extension to the link-based data described above, introduced in SATURN 9.4,
has been t o add an al ternative node-based data base in which each row
corresponds to a junction (including zones) and the data columns consist of node
data, for example average delay. In this case the first three “fixed” columns A, B
and C may be reduced to just one, the node or zone number. The subsequent
options available to the node data base closely parallel those available to links.
Section 11.10.5 gives further details.
♦ Link counts;
♦ Trees and/or forests for selected O-D pairs; (see also 11.8.3)
♦ All-or-nothing assignment;
then re-enters SATDB in order to re-read the file and r eplace the old data
base. (But see Option 15 below.)
10) STATISTICAL ANALYSIS
Two forms of analysis are available: either a uni variate analysis of a s ingle
data column (mean, standard deviation, etc) or a comparison of two columns
(mean difference, etc.) Output is normally numerical but graphical options are
available (e.g. scatter plots).
N.B. The statistical facilities within SATURN are essentially basic, e.g. to
calculate the mean difference between modelled flows and counts. If you
want to do more complex statistical operations such as analysis of variance
you are advised to use SATDB to gather together the data you require and
then dump them to an external file for transfer to SPSS or EXCEL for
example.
11) REMOVE ONE (OR ALL) DATA COLUMNS
To reduce the size of the data base: useful, for example, since only a
maximum of six columns may be printed at once.
12) PRINT THE FULL DATA BASE ON THE LINE PRINTER
Spools the full (selected) set of link data records to the LPD file with suitable
column headers and pagination.
13) DUMP THE FULL DATA BASE TO AN ASCII FILE (11.10.9)
Spools the full (selected) set of link data records to an ASCII file. These
outputs differ from those under 12 in that they do not contain column headers
or pagination. These files, edited if desired, may be read back into SATDB
under option 6.
14) BASIC HOUSEKEEPING OF DATA BASE HEADER RECORDS (See
11.10.10)
Each data column has an alpha-numeric title associated with it; these may be
modified as desired. Equally display formats, whether to print/plot or not etc.
may be modified.
15) DISPLAY/EDIT THE DATA BASE ON SCREEN (11.10.11)
This option enters an “edit-like” environment whereby the user may “browse”
through the internal data base with a “window” equal to the terminal screen
which may be moved up or down through the data base. The order of printing
may also be changed so that, for example, it is “sorted” according to one
column.
A “screen-edit” environment is also provided such that the values stored in
the data base may be altered on screen. To a large extent this renders option
9 above obsolete (except, for example, if multiple edits are to be performed).
16) CREATE A NEW SATURN UF FILE (See 11.10.12)
Having created new data columns within the internal data base you may
preserve this data in a new .ufs file.
17) SATURN GENERAL PARAMETERS MENU
This contains parameters such as the number of lines on the terminal screen
and which do not fit conveniently anywhere else.
18) ENTER THE NODE-BASED DATA BASE (11.10.5)
Or, if you are currently within the node data base, option 18 returns you to the
link data base.
5) One of the “create new data column” options allows you to “transfer” data
either from a link to its exit turns or from all turns to a link, e.g., to aggregate
turn data and t o store it as link data. T hus one could aggregate primary
stops per turn to produce total primary stops per link, or divide link flow
between its turns. This opens up a r ange of operations which previously
could only be done by “programming”. See also 11.10.8.
6) SATDB provides the main mechanism within SATURN for the transfer of
network data to and from other suites of programs. Thus option 13 creates
selected data files in standard ASCII format which may be ac cessed by
other suites, while option 6 permits data input to SATURN. “Other suites”
could encompass not only the obvious example of other transport models
but also GIS models, pollutant dispersion models, etc. See also 11.10.9.
If you are still confused the diagrams in Section 16.6 may help!
Link 6 corresponds to the turn 58 to 1 to 26 in the simulation network whereas link
7 is the road from 1 to 58 in the simulation network.
Finally link 8 i s the link in the buffer network from node 2 t o 3 w hile link 9 i s a
centroid connector in the buffer network from node 6 to zone 23.
11.10.6.6 X, Y Co-ordinates
X, Y co-ordinates are read from the input network UF file as originally defined
under the 55555 data records input to SATNET (see 6.8). For all “pure” links in
the SATDB data base (i.e. excluding turns) four columns are created containing
the X co-ordinate of the A-node (first node), the Y co-ordinate of A followed by X
and Y for the B-node.
This option is very useful if one wishes to transfer SATURN data to a GIS system
such as ARC-INFO where the node numbers as used in SATURN have no
significance, but the coordinates do. In these cases the “real” data to be
transferred e.g. flows, is added to extra data columns and the whole data base is
dumped to an external ASCII file (11.10.9).
bus-only roads, etc, are stored as “packed” variables with 5 or 6 within the same
DA array. The packed values appear meaningless; these two options allow
individual data items to be “unpacked” and entered in individual DB columns.
The full list of items (per turn) which may be unpacked includes:
♦ Distance
♦ A lane-mixing marker (0 or 1)
♦ Major/minor (1/0)
♦ Merge indicators
Further note that all these flows are defined in units of pcu/hr, (not buses per hour)
and are demand flows, not actual.
If a link is chosen then, in effect, routes are allowed to begin/end their journeys at
the end of a specific link rather than at a specific assignment node. If an “origin
link” A-B is chosen then the tree is built starting at (possibly) two assignment
network nodes: the node at the downstream end of A-B and also (if the two-way
option has been selected) at the (downstream) assignment node on B-A. If A-B is
a “destination link” then the tree is built inwards to the upstream ends of A-B
and/or B-A. Note that if A-B is a buffer link the start/end assignment nodes are the
same in both cases (i.e., the nodes at either end of the link) but if A-B is simulation
then the precise starting nodes differ since they are defined as expanded
assignment nodes.
However the starting point(s) are defined, they are always nodes within the
assignment network so there is no difference in the tree-building algorithms used.
Loading O-D Trip “Vectors” onto Trees
A further option introduced into 10.8 allows not only a tree to be built (outwards in
the case of origins, inwards in the case of destinations) but also a “vector” of trips
to/from all zones to be l oaded “all or nothing” in the reverse direction along the
minimum cost routes. Thus, for an origin, the “vector” is equivalent to a row in an
O-D trip matrix and, for a destination, a column.
Note that the loading can only start at zones, not at nodes or links, although the
“base” of the tree can be either a zone or a node or a link as above. This enables
trips to be loaded to/from points in the network where currently there is no zone
defined, as would be t he case (as discussed below) with a ne w development
which generates/attracts extra trips but is not sited at an existing zone.
In order to invoke this option the “vector” must first be l oaded into the SATDB
node data base (11.10.5), i.e., at least one node data column must exist. How this
is done is up to the user; for example they may input using the option to read from
an ascii file which would consist of characters: “C zone trips” (where the C in
column 1 is necessary to identify the number that follows as a zone, not a node).
Modelling Development Traffic: DEVTRIPS
The option to “load trees” as described above was originally developed in co-
operation with the Greater Manchester Transportation Unit GMTU as part of their
“DEVTRIPS” procedures for modelling the distribution and r outing of traffic
generated by relatively small new developments such as supermarkets. Here
SATDB is called (twice) within a much larger modelling framework.
The objective of DEVTRIPS is to give a very quick estimate of the origins and
destinations of the newly generated traffic and the routes used by drivers
travelling to and from the site, given information about the site’s location within the
network and the total number of trips generated by the site. It avoids the need to
add a z one to the network and m atrix and, because it assumes that the
development traffic will not significantly affect routing, avoids the need to re-
converge the network – a process that may take several hours given the size of
the Greater Manchester network. The system is designed to be us ed by those
with little or no modelling expertise to predict, given the creation of a new
“development” (e.g., shopping centre) within a network which will generate a
certain number of new trips to and from the site, where those trips will appear on
the network.
In the first call to SATDB, therefore, the site is used to define the origin for a
single tree build to determine the travel costs from the site to the other the zones
in the network. The procedure is then repeated with a “destination” tree in order to
create a column of costs to the new site. These two sets of costs are then
dumped to an external file which GMTU uses with a catchment area technique to
determine the origin and destination zones of the generated trips, which are then
saved as two columns of data representing the number of trips beginning and
ending in each zone.
In the second call to SATDB the matrix (or columns) of trips generated above is
input to the node dat abase and t he tree-build options repeated (twice – both to
and from the site), but this time with the loading option invoked. This will produce
two link data base columns containing the in-bound and out -bound link flows
which may then be added to together to produce the total generated trips per link.
All three flows (or just the totals) may now be dumped as Ascii files and read by
other DEVTRIPS procedures to carry out supplementary analysis of the flows.
Alternatively, the flows can be di splayed graphically within P1X by saving the
information in the database as a new UFN/UFS.
be assigned need not be the same. S ee also 15.37 for further suggestions for
use.
Further options allow only “part” of each path to be l oaded or only “part” of the
matrix.
The former option may be used to model, e.g. cold starts, by specifying that only
the first 1 kilometre of each path is to be loaded in order to produce a set of link
flows from “cold” vehicles. If a link lies between, say, 970 and 1070 metres from
the origin with a limit of 1,000 m then that link’s flow is factored by 0.3. An
alternative option (“warm running”) assigns beyond the first 1 km.
The latter allows a “sub-rectangle” of the full matrix to be as signed either by
specifying upper and lower zone limits for origins and/or destinations or, post 10.7,
by specifying upper and l ower sectors. ( More complex “selected” assignments
may be obt ained by modifying the actual trip matrix to be as signed, e.g. using
MX).
Note that if, in the extreme, the user specifies a single origin zone and a single
destination zone then the loaded trips effectively constitute a forest (15.26). By the
same token specifying a single sector origin and destination provides a form of
sector-to-sector forest which may sometimes provide very useful information.
Note that the interactive P1X version of Select Link Assignment allows alternative
options for defining screen lines (11.8.1.9) and alternatives to the simple OR test
above for dealing with multiple crossings (11.8.1.10).
With multiple user classes the analysis may be performed for one particular user
class, for each of the n user classes in turn (in which case n new data columns
and/or n new .ufm matrices are created) or for all user classes summed together
(i.e., one new data column, one .ufm matrix).
See also One Song to the Tune of Another in Section 11.10.7.7 which carries out
similar functions
The assignment may be either “full” or “incremental”. In the former case the
initial link flows are set equal to zero or to the network fixed flows (if any – DA
code 2093) and the newly assigned flows are added whereas in the latter case the
flows start from the full demand link flows from the current network (i.e., DA code
4503). It is therefore assumed that with “full” assignment the trip matrix assigned
is a “ full” trip matrix of positive trips while with incremental assignment the
assigned trip matrix consists of the differences in o-d flows from the previous
network – in which case negative trip elements are allowed (but not under full).
N.B. No explicit check is made that the sums of the old plus new trip matrix cells
do not go negative, although link flows are prevented from going negative.
If “full” then the fixed flows (if any) are added explicitly to the assigned flows
whereas with “incremental” the fixed flows are already an implicit part of the base
flows which are being incremented.
Output .UFA network files
Finally a new output .ufa network file with the new flows (in DA array 4503) - plus
(preferably) updated assignment travel times (in DA array 4003) - is automatically
created by this option. In effect this operation performs a “pre-assignment” and
may usefully be run prior to SATALL in its “continuation mode” (see 9.12.1) or a
single run of SATSIM in order that the new assigned (demand) flows may be fully
translated into simulation-based data.
It may also be seen as an early form of “Warm Start” as described in Section 22.3
with, in this case, topologically identical networks but different trip matrices.
The procedures here overlap considerably with those in SATRAP; the main
distinction is that One Song produces an output .ufa file automatically and adjusts
travel times.
One Song plus SLA
Note that “One Song” is not particularly useful in re-assigning a trip matrix which
has been obtained by Select Link Analysis (11.8.1.3) since it will not necessarily
re-create the original flows on t he selected link(s). Why? Consider a single o-d
pair with 10 t rips which uses two routes 50:50, 5 t rips on eac h. If a s elect link
matrix is created for a link on just one route it will contain 5 trips for that o-d pair.
When that o-d trip element is re-assigned under “One Song” it will be split equally
between the two routes and hence the selected link will only be assigned 2.5 trips,
not the original 5.
Further options then control what happens to the non-selected links; e.g., whether
they remain as they are (in the case of over-writing an e xisting column), are
assigned a default numerical value or are defined as “missing”.
specific than that for basic .txt files and its use is not recommended. The one
advantage of .dbd files is that, if they are dumped from SATDB, edited externally
and re-input, they retain their original “headers”.)
Thus, the output text file consists of one record per network link (with non-selected
links excluded) with each record split into two “parts”.
♦ A link(/turn) identifier
♦ Data values
Options specify how each part is formatted.
At the highest level the format choice is between full formatting into fixed columns
or “free” or “comma separated” CSV formats where each item in both a) and b)
appears separated by commas (best for transmission to spreadsheets such as
EXCEL).
Under CSV output turns must always be identified by three entries (A, B and C-
nodes) while, strictly speaking, links only require two entries, A and B. However,
since it is generally easier for whichever system is to read the data files to have a
fixed number of entries per record, an option is provided to include a third “blank”
entry for all links; in essence this means that an extra comma is inserted after the
B-node.
At a l ower level the link identification may either follow the basic SATURN
conventions described in 11.10.4 and 11.18.2 or they may contain simply two
sequential node num bers as used internally within SATURN (useful for
transferring data to other suites which number nodes sequentially). Within the
data values integer variables appear without decimals, real variables have them.
The precise format of real variables is either as determined under “housekeeping”
(11.10.10) or they may all appear as high precision values using the FORTRAN E-
format.
Further options exist to include or not column headers and/or comment cards at
the head of the output file.
Unlike output to the screen there is effectively no limit to the “width” of each output
record so that up to 24 data columns (the internal limit) may be included in each
record.
The order of the data records is either sorted by link type as is the default within
SATURN (i.e., all centroid connectors either inbound or outbound appear first) or
in strict numerical order by assignment link numbers.
♦ its DA code;
♦ the “width” of the data, print outs (in terms of the number of characters);
♦ Quit (return)
♦ Order
♦ Parameters
The last two require some extra explanation.
“Order” enables the user to change the vertical order of the links in the printed
data base, for example you may ask for them to be printed in descending order in
terms of the entries in column 2. Thus ordering requires: (a) a column: (b)
whether descending or ascending and (c) whether based on actual or absolute
values.
Parameters allow the user the choices of whether or not to print lines based on
centroid connectors (or zones under the node data base) and/or lines which
contain all missing values.
♦ the DA code
statistics from the simulation phase may be pr inted out by either SATALL or
SATSIM - and/or from elsewhere within P1X; e.g., option 1 is available within
node graphics.
The following menu lists the full set of options available within SATLOOK. Of
these options 1 to 14 only are also directly available within P1X.
1) EXAMINE INDIVIDUAL SIMULATION NODES
2) EXAMINE INDIVIDUAL BUFFER NODES
3) EXAMINE INDIVIDUAL ZONES
4) SIMULATION SUMMARY STATISTICS
5) ASSIGNMENT SUMMARY STATISTICS
6) BUS ROUTE SUMMARIES
7) NETWORK PARAMETERS FOR FILE n
8) ERROR, CONVERGENCE AND CPU SUMMARIES
9) SKIM “COST” MATRICES FROM FORESTS
10) PRINT COMPLETE SIMULATION NODE DATA
11) PRINT ALL ASSIGNED FLOWS AND TIMES ON THE LP
12) PRINT ALL OVER-CAPACITY LINKS
13) COMPARE MODELLED FLOWS WITH INPUT COUNTS
14) MINIMUM COST TREES AND/OR MATRICES
15) TAKE A JOY RIDE THROUGH THE NETWORK
16) GENERATE AN INTER-ZONAL CROW-FLY DISTANCE MATRIX
17) COMPARE TWO ARRAYS ELEMENT BY ELEMENT
18) COMPARE TWO FILES ELEMENT BY ELEMENT
19) LOOK DIRECTLY AT ELEMENTS ON UF FILE 1
20) COMPARE THE SIMULATION CODING BETWEEN NETWORKS 1
AND 2
The majority of these options and the menus therein are felt to be sufficiently self-
explanatory that no f urther detailed documentation is required here. However
some further notes are provided for specific options.
See Section 17.7 for an explanation of the tabulated delay plus flow data (option
2) and section 8.7 for a description of the lane choice output (option 12).
A new option in 10.5 prints the delays for each turning movement broken down
into its constituent components listed in 8.4.1 (i.e., fixed delay (TDEL), transient
(CFP) delay, random delay, circulating time at roundabouts and over-capacity
delay).
Further options include the ability to print delay and flow data (table 2) either as
originally constituted (if the node has been edi ted) or as contained in a second
input network file for comparison purposes. A further option involving data from
network 2 prints a full set of differences in the coding for that node between
networks 1 and 2 (introduced in 10.9). See 11.11.18 for the same option over all
simulation nodes.
Release 10.9 includes an option to list the standard simulation and/or simulation-
assignment convergence statistics per node/link/turn; see 9.9.2.
In using SATLOOK to examine simulation nodes users may notice either slight
inconsistencies in the outputs (e.g., OUT flows in excess of the ACCEPT flows) or,
e.g., slightly different capacities from those printed elsewhere. T hese problems
are due t o a l ack of convergence in the simulation of that particular node since
SATLOOK actually creates the data by re-simulating the node. However, such
discrepancies should be small in virtually all cases; if not please notify DVV.
3) Using data from the .ufs file but not just taken from the “final” loop of the
assignment-simulation loops but, e.g., averaged over the final 4, from a
single previous loop, etc. See 17.9.
Note that both options 1 and 2 print more “tables” than option 3 (which basically
just reports the combined simulation and buffer total statistics as documented in
Section 17.9), although there should be more than enough numbers to keep most
users happy!
Summary Statistics by Sub-Networks
For full network statistics the first two (as well as “final” results from method 3)
should give the same results (allowing for possible rounding errors). However the
second method may also be applied to sub-networks as defined using the link or
node selection facilities within P1X and/or SATDB (11.6.1). One interesting
application of the latter is to use the cordon facilities within P1X (11.13) to define a
sub-network whose links are selected and then using this option to obtain
summary statistics for that particular area. A nother is to use the node-based
selection to produce statistics for, say, all signalized junctions.
Disaggregated Summary Statistics
With all options the outputs may optionally be disaggregated over Capacity
Indices (if they exist within the network; see 5.1.9). E,g., you may obtain total
pcu-hrs by all links which have a Capacity index of 1, 2, 3 etc. etc. (N.B. the
Capacity Index of a turn A-B-C is considered to be the Index of the entry link A-B.
All links without a Capacity Index are judged to have an Index 0.)
However, it is also possible with option 2 t o disaggregate the outputs by any
integer link variable defined within the SATDB link data base. For example, to
disaggregate output statistics into “traffic boroughs” it is first necessary to create a
link data base column containing integer Traffic Borough numbers (e.g., by
inputting an as cii file of the form A B Ntb where link A-B is “in” Traffic Borough
Ntb). Then select the menu option for Disaggregation by Data Base Column and
the appropriate column.
Further notes: It is not always easy to specify a data base column as integer
since the default, e.g., from text file input, is to assume “real” (decimalised) values
with a DA code ending in 3. It may therefore be necessary to use Housekeeping
to change a column header from 3 into 4.
Furthermore these options are not available within “pure” SATLOOK, only within
P1X where the facilities within SATDB and SATLOOK may both be invoked
together.
Output .CSV Summary Statistic (Headline) Files
Post 10.8 an option exists to output the full (“headline”) set of summary statistics
as a text file in CSV format. The first record contains asset of (fairly succinct)
column headers. Each subsequent record corresponds to a different set of flows
and/or a different level of disaggregation as above.
Note that, at the moment, the first record of column headers may or may not be
complete, depending on the permutations and combinations of network
parameters that determine the number of headline statistics included. If this
of emissions per link, reliability per link etc. etc, Thus any data which may be set
up by the user within a SATDB data column – including data read from an external
text file – may be skimmed. Thus, for example, if the link data is fuel consumption
per vehicle per link then the skimmed matrix will give fuel consumption per vehicle
per OD pair as possibly required by an evaluation model.
The second controls the output mode: by default output is to a .ufm file but it is
also possible to output the o-d skimmed data as ASCII text files, specifically in one
of the three standard formats required by the UK evaluation program Tuba (as
used by the SATURN procedure SATTUBA, see 15.41). Within text files there are
additional sub-options, e.g., to control the number of decimal places used.
Note that the default values for, e.g., output mode, may be us er-set by making
changes to the preferences file, satlook0.dat.
Forest skimming is used by a number of batch files, e.g., SKIMDIST (see 15.27.7)
to produce matrices of average OD distances, tolls, etc. etc.
See also 15.27.8 which describes an opt ional parameter NUSKIM introduced in
10.9.17 which uses more CPU-efficient algorithms.
One point of difference between count comparisons in SATLOOK and P1X is that
in SATLOOK it is possible to alternatively read the count data from an input text
(ASCII) file rather than relying only on the original 77777 records. At the moment
this is not yet possible within P1X.
Thus at the centre of the plot is a diagrammatic representation of the junction with
the lanes and turn markers on each arm displayed approximately to scale
assuming that each lane is 3.75 m and that the distance to the end of each arm as
shown is 40 m.
A flared lane, either nearside or offside, is represented by an extra lane at the stop
line which is terminated at a r epresentative distance back – where
“representative” implies halfway for a flare length of two PCUs, increasing up to ¾
of the length of the arm as the flare tends to infinity or to ¼ as it tends to zero.
If, as in the illustration above, the junction is signalized each entry arm has a stop
line included; at priority junctions major arms do not have a stop line, minor do.
Permitted turning movements per lane are represented by arrows within the lane,
generally coloured green but with the convention that: (a) turns with a pr iority
marker X are in red, (b) filter turns (F) are orange and (c) merges (M) are light red.
Along each entry arm a “kerb line” is plotted in light gray while the background of
each “block” is filled in dark gray; both are optional as are the colours used.
In this example V/C ratios (as %) have been annotated for each turn with arrows
to indicate which turns are which.
The street names are obtained from an input GIS file as the “name” of the junction
(lower left, main plot). The junction number is given lower right.
Links which are blocking back, either into or out of the central node, are indicated
by red bars across the entry/exit link with the “space” in the centre of the bar
indicating how much of the capacity is left after blocking back has been applied.
For example, if a link is severely blocking back such that it has a blocking back
factor of 0.2 – an 80% reduction in capacity – 80% of the bar will be red with 20%
blank in the middle.
At the top left hand corner the three sub-boxes represent the three stages of the
signals with the green movements in each stage depicted by a g reen “tubie”
arrow. In each box the number in the lower left is the (coded) green time and in
the lower right, the inter-green. The signal offset is written upper left in the first
box.
The numbers given upper right in each stage box represent the “factored stage
times” which differ from the “coded” green times since - in this particular case - the
cycle time has been set to 60 seconds but the sum of all the input green and inter-
green times is 90 seconds. Hence the stage green times are factored down such
that they sum along with the (unfactored) inter-greens to 60 seconds.
The banner (which in this case has been generated by “A-Z” as opposed to the
more normal list of available options) briefly summarises the contents of the plot.
♦ Modify general display parameters, e.g. whether lane markings are included,
their width, etc.;
♦ Data displayed, e.g. turning volumes, general tables of link data; and its
“mode” (arrows, tubies, etc.);
♦ Print a summary table within the banner of the most important properties of
that node (“Information”);
♦ Print standard tables of node data such as appear in SATLOOK using either
a text or window-based mode, including “table 2” (flows and de lays) as a
standard option plus the last table displayed as a further explicit menu option;
♦ To “print” the node des cription as it would appear within a network .dat file
input to SATNET; see 6.4;
♦ Shift to another node, numerically either the next node up or down, or use the
mouse to “point” to a node at the end of an arm;
* (N.B. Within P1X node editing when accessed via “node graphics” is largely experimental in that
the changes are not saved; if you wish to save these changes on either a .ufs or .dat file you must
enter via network editing; see 11.9.3).
♦ Add an “auxiliary network plot”, i.e., a small network plot showing the location
of the node being displayed; see 11.5.4.
♦ They may convert a b uffer node as read from an i nput UFS file into a
simulation node.
Having edited one or more junction properties the node may be “re-simulated” and
the effect of the changes evaluated.
Note that in the “display mode” – as opposed to the “network editing mode”
(11.9.3) – any changes to node properties are not permanently stored in, e.g., a
network .dat file although they are stored temporarily. The menus, however, are
virtually identical.
The data to be edited may be selected in one of two basic “modes”. Thus,
originally, all choices were made through a series of banner menus such that if
one wanted to change, say, the distance on a particular link one would first select
“Link Data”, then nominate the link, then nominate distance and input the new
length.
Alternatively, post 10.9.20, the same operation may be af fected by clicking a
“target box” at the end of an arm to select that link for editing and then clicking on
either Record 1 or Record 2 for that link in order to alter any of the standard basic
link properties such as distance, speed, number of lanes etc. using a standard
Windows “edit box”, or, equally, by clicking on a target box at the end of an exit
arm in order to edit turning properties such as saturation flow, lane choice etc. for
a particular turning movement..
♦ Network calibration, whereby the user can determine interactively the most
appropriate data values for an individual junction. For example the user might
wish to examine a change to the saturation flow for an individual turn or to its
lane structure, etc., etc. An alternative procedure to (1) would be to make the
changes in the basic network DAT file input to SATNET, re-run the entire set
of SATURN programs and examine the effect of the changes - a somewhat
cumbersome and potentially expensive operation. Using node editing effects
can be seen immediately. The difference between editing a single node and a
full SATURN run is that editing does not allow for any re-assignment in
response to the changes; the flows remain at their assigned values (although
it is also possible to investigate the impact of changing the flows on a
particular link or turn).
♦ User “education”, by which I mean that the user can experiment with, e.g.,
different values of gap acceptances to see the effect that changes to a
variable have on results.
♦ (i.e., those which are either totally inside or totally outside the cordon) and
removes them. If there are none no changes are made. The number of such
errors is reported in the banner.
♦ Further editing of the cordon, e.g. to add extra links to “plug” any holes.
♦ Produce a ne twork .dat file for the cordoned area suitable for input to
SATNET (analogous to DONET in SATCH).
♦ Produce a . ufm trip matrix and/or print the matrix for the cordoned network
based on t he routes used in the full network (analogous to DOMAT in
SATCH); see 11.13.6.
♦ Produce a file specifying the assigned route flows inside the cordoned
network as per SATPIG (see 12.6); see 11.13.7.
♦ Use the cordon to “select” either those links and/or nodes inside or outside for
further analysis with P1X; see 11.13.3.
♦ If there are “holes” in the cordon the “tree trace” helps to detect them by
tracing a path from “outside” to “inside”. Return via the edit option to correct
the cordon.
It is recommended that the cordon correction option be run (if necessary) prior to
any output files being produced as there may be spurious zones created at the
redundant links. E qually the options to create matrices, route files etc. will not
function if there are any errors in the cordon definition.
Note that if both a cordoned network file and a trip matrix are created it should be
feasible to do a full run of SATURN on the sub-network without any further
intermediate steps. However please note the cautionary advice in Section 12.1.4
that the logic of the cordoning procedures may not be 100% fool-proof with
respect to, e.g., bus route definitions, so that some manual editing and cross-
checking may be necessary.
The most common application of a cordon spine is to produce and print a trip
matrix which therefore gives the table of all entry/exit movements within that
section from the existing assignment.
Spines in P1X are closely related to the SPINE parameter in SATCH (see note 6
in 12.1.4) but extend the idea such that in P1X the spine may be defined by more
than 2 nodes so that the spine can “go around corners”.
♦ A list of all instances where MAXQCT and/or MAXDTP were applied (if any)
(8.4.6);
Supplementary Programs
Mini-Contents Page
Supplementary Programs
INTRODUCTION
12.1 Network Cordoning (SATCH)
The function of the network and/or matrix cordoning program SATCH is to
produce a sub-network and/or a sub-matrix of trips corresponding to a cordoned
area defined within a larger network.
♦ ‘cordon zones’ corresponding to exit and/or entry points about the cordoned
area
At the same time the program condenses the original network data file net.DAT so
that only those records corresponding to links ‘inside’ the cordon are retained in
full within the “cordon network”. Nodes at the outer end o f cordon links are
converted into external nodes and, optionally (ADDXZ = T), the “cordon” zones
are added, both being within the appropriate data segments in the network file.
The cordoned network file - denoted ‘cordon.KP’ in 12.1 - may then be fed into the
network build program SATNET (either directly or, commonly, with additional
editing by the user plus a c hange of extension to .DAT), following which the
iterative simulation/assignment loop can be invoked using the cordoned trip matrix
‘cormat.UFM’.
Note that the (compulsory) control file, cordon.dat in Figure 12.1, is best prepared
initially using the mouse-based options in P1X in order to guarantee that the
cordon is ‘watertight’; see 11.13. H owever it may be nec essary to ‘edit’ the
resulting file in order to select some of the other options described below. Indeed
most of the functions within SATCH may also be carried out within P1X; see
12.1.5.
Supplementary Programs
Supplementary Programs
Supplementary Programs
Notes:
a) The link can be either one-way or two-way; if two-way, it only needs to be
defined once.
b) Either node may be de fined as the A-node, but the program will later
redefine the A-node as being the node which is ‘inside’ the cordon and the
B-node as being on the ‘outside’.
c) The links are those that are ‘cut’ by the cordon as opposed to a continuous
set of links that are themselves the cordon.
Supplementary Programs
d) If DUTCH is TRUE in the input SATURN UF file then the nodes are defined
in columns 1-10 and 11-20.
e) Centroid connectors are not valid cordon links and ar e ignored by the
program in defining the cordoned network.
f) Either simulation or buffer links are permitted as cordon links.
Supplementary Programs
Supplementary Programs
Under SPINE the parameters DOMAT and PRINT are automatically set to
TRUE since the only reason for using these options is to look at the trips, and
DONET is automatically set to FALSE since the network itself would be of
little interest.
8) If ADDXZ = T (its default) new cordon zones are created at the outer end of
each cordon link, for which there are various options for creating their zone
names.
(i) If the logical parameter AZONE is FALSE (its default) then their numbers
start at the first available multiple of 100 plus 1 above the highest zone
number in the full network. Thus if the full network had zones up to number
437 the cordon zones would be numbered 501, 502, ...
(ii) Alternatively if AZONE is TRUE then the cordon point zone numbers are
set equal to the outer cordon node number (the ‘B-node’ under note 5 above).
This option is very useful if you only wish to ‘look at’ the cordoned trip matrix,
in which case referring to a cordon point as, say, zone 21 if it was at node 21
is more informative than referring to it as zone 501. However this option will
create severe problems if you wish to cordon both a matrix and a net work to
run together in SATURN since the network will assume that the zones are
sorted in order of increasing zone number in the trip matrix whereas under
AZONE they need not be; hence cordon trips may enter/leave at the ‘wrong’
points when assigned.
(iii) If SZONE = T (independent of the value of AZONE) then the cordoned
zones are numbered sequentially 1, 2, 3… with the internal zones numbered
first followed by the cordon point zones. Note that the order in which the
zones appear is the same as above, the only difference is in the zone names
used.
9) Having first identified all nodes which are inside the cordon, and if DONET is
TRUE, the program creates the cordoned network file by reading through the
network data records input on channel 8 and c opies to the output data file on
channel 7:
(i) Any ‘general’ records, e.g. the &PARAM cards;
Supplementary Programs
(ii) Any records referring to internal nodes and/or links within data
segments 11111, 22222 etc. etc.
Note the 88888 data records which define generalised costs etc. are copied
verbatim to the output data file since their contents are not node/link specific.
10) If the Namelist parameter INCLUD = T the new 11111 etc. data segments are
not included directly within the new data file but in a series of $INCLUDE files.
Thus if the main output file is control.KP then the $INCLUDE files will be
named control_11111.dat up to control_77777.dat (the 88888 data records
are all within control.KP) and the 11111 segment within control.KP will contain
the single record $INCLUDE control_11111.dat etc. etc.
11) The network reduction ‘logic’ is not 100% perfect. For example, if you cordon
a joint simulation/buffer network so as to totally exclude the simulation
network you will (probably) get output records which include: 11111
immediately followed by 99999 which would imply that simulation data is
included (the 11111 c ard) but then no dat a appears. SATNET might - with
some justification - take umbrage at this apparent thoughtlessness on y our
part.
Users may therefore need to further edit the data file before input to SATNET.
In particular they will probably wish to change the network title (which is
copied verbatim by SATCH).
12) Trips which follow routes that criss-cross in and out of the cordoned network
will appear as multiple trips in the cordoned matrix. For example, the trips
from S to T below would be c ounted as both S-A (internal zone to cordon
point), B-C (cordon to cordon) and D -T (cordon to internal zone) in the
cordoned matrix.
13) All routes used in the assignment are re-created and t raced and the trips
added to the trip matrix appropriately factored. Thus, if the assignment
assigns 12% of the entire trip matrix to the free-flow routes, only 12% of Tij
would be included along these routes in the cordoned matrix.
Supplementary Programs
Note that the original network file must have set the parameter SAVEIT to
.TRUE. so that a network UFC file would have been created so that SATCH
can re-create the trees built at each stage of the assignment.
If USESPI = T (and SPIDER = T for the original network) then the O-D routes
are re-created using a “hybrid network” formulation which uses both
aggregated and original network links where appropriate and which reduces
the (assignment only) CPU time by factors of around 10; see 15.56.7.2. At the
same time zero-flow spider links are eliminated from the path building and
tracing (15.56.5.3)
14) Note that the ascii control file specifying, inter alia, the links in the cordon may
be conveniently created using mouse based options within P1X and that it is
possible using this facility to check visually for ‘holes’ in the cordon. See
Section 11.13.
15) If the input network .dat file contains $INCLUDE records referencing other
files the data from these files will be i ncluded as necessary in the output
cordoned .dat file but all within the file, not as externally referenced
$INCLUDE files.
16) Any intra-zonal cells in the “full” trip matrix are automatically included as intra-
zonals in the “cordoned” trip matrix if the parameter INTRAS = T. Clearly this
only applies to internal zones; external zones at cordon points may, in
principle, have intra-zonals but only if, in the original full network, paths would
have entered and left by the same link (thereby, in effect, executing a U-turn).
17) Bus routes in the “full” network are truncated such that only that portion of the
route which is within the cordon is retained. If FOZZY = T (so that
interpolation between non-adjacent nodes is permitted) then only those nodes
that are included within the full network definitions are included within the
cordoned route definitions (with the exception that any entry and exit points at
cordons are automatically included).
Note, however, that if a route exits the cordoned network and later on re-enters
the cordon only the first segment of the route is included. (Unlike routes used by
the assigned trip matrix; see note 10 above.
♦ Produce an output cordon.dat network file as under the DONET option within
SATCH.
Supplementary Programs
Supplementary Programs
In addition, if NOMAD > 1, then no out put network .dat file is created on t he
assumption that the option is being used within SATCH_MC so that an output
network .dat file is only created once when SATCH is called with NOMAD = 1.
The main reason for adding this option is so that several runs of SATCH may run
simultaneously using different processors, one per user class, as controlled by the
batch file SATCH_MC. See 12.1.12 and 15.53.2.6. Since each run produces a
separate square matrix ctij1.ufm, ctij2.ufm, … these may be stacked into a single
MUC matrix at the end.
Supplementary Programs
summation of those entering the network. In this case the output matrix is “singly
constrained” to match the actual origin flows and convergence is not an issue.
Note, therefore, that if DEMAND = F and F URNES is “on” we would not
necessarily expect the destination total flows in the cordoned trip matrix to match
the actual flows at the cordon points (see Tables 1 and 2 i n the .LPC file). There
are two reasons for this: (a) errors in retracing the original path flows and, (b),
ignoring any flow metering due to queues between the cordon origins and
destinations.
Supplementary Programs
Supplementary Programs
Supplementary Programs
At this point two alternative ‘loops’ may be us ed: The ‘inner’ loop involves re-
running SATSIM immediately in order to obtain a better overall simulation of the
network flows which may in turn, by repeating SATOFF, lead to a slightly different
set of offsets.
By contrast the ‘outer’ loop returns the new offset to a full re-run of SATALL,
resulting in a new set of both assignments and simulations. This in turn may
result in new optimum offsets, but the central feature of the hypothesis above is
that relatively stable offsets may be obt ained after a s ingle optimisation (with or
without possible repetitions of the inner loop). We note that the outer loop is
virtually identical to a single “NIPS” loop within SATALL internally; see 9.12.2.
Note that the ‘outer’ loop requires SATSIM to be run prior to SATALL in order to
update the cost-flow curves output from the simulation, otherwise the first
assignment within SATALL will simply give the same flows as the last assignment
of the previous SATALL and it will converge immediately. (Indeed with the latest
10.5 versions of SATOFF it is possible to include the re-simulation within SATOFF
itself such that an upda ted and r e-simulated .ufs file is produced directly; see
12.2.4.)
Hence the ‘final’ set of results is obtained after the repeated run of SATALL with
the optimised offsets.
The above sequence could be run using individual program “dos” commands as
illustrated by:
Satnet net
Satall net trips
Satoff net
Satsim net
Satall net trips RESTART
Where we note that the RESTART option is used in order that the second run of
SATALL takes its input from the file net.ufs rather than, as in the first run, a file
net.ufn. It may be usful to rename the output .ufa file each time SATOFF is run as,
say, net2.ufa etc.
To produce a network .dat file containing the updated signal offsets (since
SATOFF only produces updated .uf files) use the network edit options within P1X;
see 9.11.13.2. Equally one may wish to make use of an ou tput .rgs file (see
9.11.14) to transfer the optimised offsets between networks.
It must be stressed that SATOFF and the associated operating rules are new and
that therefore some caution in its use is to be recommended. However
experience to date does suggest that it can produce stable and realistic offsets
and that therefore it can be used with some confidence to overcome the problem
of evaluating future and/or alternative networks within which the offsets are
indeterminate.
Supplementary Programs
Supplementary Programs
Supplementary Programs
between computers. Thus DADUMP transfers the contents of a UF file into a card
image or text file while DALOAD converts a text file into a UF file.
To transfer a file run DADUMP on the ‘donor’ computer, transfer the resultant text
file to the ‘recipient’ computer and re-build the UF file using DALOAD. The use of
the intermediary text file is necessary since generally speaking it is very difficult to
transfer binary files between different computer systems and/or operating systems
(although not necessarily impossible - if you can do it that way, do it in preference
to using DADUMP/DALOAD).
Using the standardised control procedures type:
DADUMP LIVNET
on the donor followed by (on the recipient computer):
DALOAD LIVNET
The intermediate file will be named LIVNET.KP.
Note that the .KP file is almost certainly much larger than the base UF file.
The procedure is generally satisfactory for the transfer of files, say, from a fast
mainframe processor to a PC for the further analysis of results, e.g., in P1X. If,
however, further iterations are to be performed on the recipient computer the KP
transfer process may result in a loss of accuracy due to rounding errors.
12.6.1 Introduction
SATPIG is a relatively ad hoc program designed to produce a file of origin-
destination route flows from a SATURN assignment, in particular to facilitate
interfaces with micro-simulation network analysis programs such as DRACULA
which require as input a file describing the number of ij trips per distinct route as
opposed to a trip matrix which gives total trips independent of route. It follows the
general principles for re-constructing routes using the SAVEIT option as described
in 15.23.
Supplementary Programs
TRPFOR
The route flow data is embedded within the .kp/.trp files with one set of records
per O-D pair with positive flow ordered by increasing destination within increasing
origin. The format (and extension) used is determined by the LOGICAL
parameter TRPFOR such that:
RECORD 1:
Cols 1-10 Origin zone (name)
11-20 Destination zone (name)
21-25 User class number (NOMADS>1)
26-30 Route number 1, 2, 3 for the O-D pair
31-40 Route flow (pcu/hr) in format F10.2 (i.e. decimal in
column 38)
41-50 Number of nodes in the route
RECORD(S) 2:
The series of nodes making up the route in format I10, i.e. up to eight nodes per
line, 10 columns each.
♦ TRPFOR = T each set of records is output using the .trp format conventions
adopted by DRACULA such that:
RECORD 1:
Cols 1-10 Origin zone (name)
11-20 Destination zone (name)
21-25 User class number (NOMADS>1)
26-35 Route flow (pcu/hr) in format F10.2 (i.e. decimal in
columns 33)
36-45 Fractional route flow in format F10.6
Supplementary Programs
RECORD(S) 2:
The series of nodes making up the route is in free format and enclosed within
leading and trailing % symbols. I.e., each node is separated from its neighbour by
a space with up to 80 characters per record; multiple records are used if
necessary.
CSVFOR
If .TRUE. the output data contains the same basic data entries as per TRPFOR =
T but with one variable-length record per path in CSV format.
N.B. CSVFOR and TRPFOR cannot both be T at the same time; if both are T then
TRPFOR takes precedence and CSVFOR = F.
NAMES
If .TRUE. all output files use node “names” as opposed to sequential numbers.
ALLOD
If .TRUE. all O-D pairs are included even if they have zero trips in the trip matrix
cell, in which case the FPHMIN criterion below can never be satisfied. However if
their nominal fraction of use exceeds PODMIN (see below) they are included.
If none of the nominal routes satisfy PODMIN and/or FPHMIN the “best” single
route – as defined by having the maximum usage - is always included unless
PODMIN is negative (see below).
UTURNS
If .TRUE. only paths which pass through the same node twice (e.g. a U-turn) are
recorded on the output file.
FPHMIN
Any route flows less than FPHMIN are ignored in the .lpg and/or .trp outputs.
PODMIN
Any routes with fractional flow greater than PODMIN of the total flow are included
whether or not the FPHMIN criterion is satisfied or not. Thus the criterion for
inclusion is an either/or rule of both absolute and fractional flows.
Note. However, that if PODMIN is set negative then it is never invoked and
whether or not a pat h is included in the output file is determined purely by the
ALLOD and FPHMIN rules.
NOMAD
If positive NOMAD specifies the particular user class to be analysed for a network
with multiple user classes; if zero all user classes will be analysed.
Supplementary Programs
Notes:
1) Under method (i) the origin and destination zone names are included as the
first and last entries in the route names under record 2, but under (ii) only the
“real” nodes are entered under record 2.
2) If there is only one route used per ij pair then the route number on record 1 is
simply 1; otherwise it increases by 1 each set.
3) Route flow records are terminated by a blank line.
4) Multiple user classes are sorted such that all O-D records for class 1 c ome
first (with a 1 i n column 25), followed by all class 2 records (2 in column 25),
etc. etc.
The program is still very basic; forward requests for extra facilities to DVV.
12.6.4 The Role of the Trip Matrix in SATPIG: Restricted O-D Pairs
We note that the input trip matrix used within SATPIG need not necessarily be the
same trip matrix as that used during the assignment, although logically and
generally speaking it should be. Its role is essentially to define the total number of
trips to be divided between the various paths identified for each O-D pair.
However it has a possible secondary use which is to restrict the O-D pairs
analysed in that if an O-D cell in the trip matrix is zero – or if an entire row is zero
– then that O-D pair/origin is not analysed. Thus if you are only interested in
generating a representative set of paths rather than the complete set this may be
done by factoring the non-required areas of the trip matrix to zeros prior to running
SATPIG.
12.7.1 Introduction
SATDYSK skims minimum origin-destination times for a network run with multiple
time periods (e.g. using SATTPX and SATSUMA, see Section 17) with the
important property that the skims are taken at fixed intervals of either precise
arrival or departure time throughout the full time period modelled and the “on-path”
link travel times are calculated dynamically. It differs in several respects from the
skimming techniques available through SATCOST (15.27.4) which in turn uses
SATLOOK.
Thus if a ne twork is modelled by four 30 minute time slices from 8:00 to 10:00
SATDYSK could be used to calculate the minimum travel times for vehicles
departing from their origins at, e.g. 8:00, 8:10, 8:20…., 9:50, 10:00. All 13 skims
are output to one matrix of dimension 13n Z rows x n Z columns (where n Z is the
number of zones). The 10 m inute interval is user-set. B y contrast SATCOST
could be used to skim four separate matrices of “representative” OD time for the
four separate time slices.
Another point of difference between the time skims and those in SATCOST is that
in SATDYSK the skims may be calculated backwards from the destination. Thus
the 8:50 O-D time skim could reflect the time taken for trips arriving at their
Supplementary Programs
destination D at exactly 8:50, as opposed to a forward time skim when 8:50 would
represent the exact departure time from the origin O. (At the programming level
this has necessitated a new set of tree building routines which build “backwards”
as opposed to the traditional SATURN method of building trees “forward” from the
origin.)
A third difference is that, whether origin - or destination-based, the link times used
in the tree building are instantaneous dynamic times so that the travel time on link
a is a continuous function of the “clock time”. Thus, if building a set of shortest
paths (tree) for trips arriving at D at 8:50 and the tree algorithm has reached a link
which is 7 minutes “back” from the destination than the time assumed on that link
would be the time at 8:43 exactly, as opposed to the normally modelled average
link time in the 8:30 to 9:00 time slice.
One application of the program is to enable the derivatives of O-D travel times to
be estimated with respect to either arrival or departure times by taking the
differences in skimmed times between two successive times and t o use that as
part of a peak-spreading model.
The “skims” are based on calculating minimum time routes independent of
whether or not the original assignment model was based on pure time or
generalised cost so the paths found are not necessarily those used by the original
model. In effect the original model is simply being used to generate a set of
dynamic link times and/or delays by clock time.
Supplementary Programs
Supplementary Programs
E.g.:
&PARAM
TOM = 30
DEPART = T
&END
Note that the values of TOM and NTOM should presumably reflect the total length
of the time period modelled. Thus the defaults cover a range of departure times of
6000 seconds, 1 hour and 40 minutes. If the model were of three 30-minute time
slices then the last two skims would probably be redundant; if the model covered
2 hours then the range would probably need to be extended.
SATTPX net 4
SATSUMA net 4
followed by:
SATDYSK net
The bat file SATDYSK uses the following files:
net.uft Input network file
net.ufm Output skimmed matrix file
net.LPV Output line printer file
SATDYSK0.DAT Control file (12.7.5)
Supplementary Programs
Mini-Contents Page
INTRODUCTION
13.1 Introduction to SATME2
This section explains the use of the program SATME2 in conjunction with the
supplementary program SATPIJA to estimate trip matrices from traffic counts. It
is based on t he theoretical procedure generally referred to as ME2, although it
would be better represented as ME2, - Matrix Estimation from Maximum Entropy.
A full list of references is given in Appendix C; a condensed summary follows.
Modelled flows may, in turn, be directly compared with (for the base year, at least)
observed flows obtained from, for example, automatic vehicle detectors.
As also noted in Section 2.1, there are three general sources of errors – trip
matrix, network coding and route finding - of which errors in the trip matrix are
probably the single biggest source of error. What the process known as ME2
attempts to do therefore is, by essentially working backwards through Figure 13.1,
to establish a trip matrix which, when assigned, will give the desired answer, i.e.,
will reproduce the observed flows.
Thus we seek a trip matrix T ij which satisfies, for each of the observed counts, the
following condition:
Equation 13.1
∑T P ij
ij ija = Vaobs
where:
T ij is the output matrix;
P ija is the fraction of trips from i to j using link a
V a obs is the observed flow (in pcu/hr) on counted link a
We may think of Equation 13.1 as a “constraint” on the trip matrix arising from the
observed flow on link a.
In addition we would like a trip matrix which is as “near” as possible (or as “least
different” as possible) from any existing estimate of the trip matrix. In more
mathematical terms we seek to minimize some “distance measure” │T – t│
between the updated trip matrix T and the “prior” trip matrix t = t ij . The entropy
maximising model differs from other forms of matrix-estimation models in the way
that it defines its measure of distance and, as a consequence, the resultant
equations for T.
Thus the ME2 “distance” definition used to update an existing trip matrix may be
written as:
Equation 13.2
D (T , t )
= ∑ (T
ij
ij log (Tij / tij ) − Tij + tij )
And the resulting equation giving the “maximum entropy” solution may be written:
Equation 13.3
Tij = tij ∏ X aPija
a
Where:
t ij is the prior matrix,
X a is the ‘balancing factor’ associated with counted link a,
Π is the multiplicative equivalent to Σ for summations
SATME2 uses an iterative procedure to find a set of balancing factors X a for each
counted link to ensure that the assigned flows match the counts within certain
user-defined limits (See 13.1.8)
The procedure is in fact very similar to that used in the well-established Furness
matrix-balancing procedure with the exception that Furness constrains the flows
into or out of (all) zones as opposed to the flows on selected links. In fact zonal
constraints are just a s pecial case of link constraints and as such may be i nput
directly to SATME2 (See 13.1.5 and13.3.2).
An alternative “distance” measure could be the well-known “sum of squares”:
Equation 13.4
D (=
T,t) ∑ (T − tij )
2
ij
ij
And indeed a large number of alternative matrix estimation models have been
constructed using this definition.
Thus SATME2 requires a “ PIJA” file, each element of which represents the
proportion (P) of trips between a particular origin-destination pair (IJ) which uses
the counted link (A). The PIJA data are obtained through the program SATPIJA
following a SATURN assignment using the SAVEIT option (15.23).
More precisely SATPIJA analyses the output .ufs and .ufc files from a full run of
SATURN in order to produce a ‘.ufp’ file which contains the “PIJA factors”. This
information is then fed into SATME2, along with the prior trip matrix, in order to
produce an updated trip matrix.
Both SATPIJA and SATME2 require control data files as described in Section
13.2 below. The count data may either be included in the SATPIJA file or taken
from the 77777 data segment in the network .dat file originally input to SATNET
(see 13.2.1)
Note that, in common with all definitions of “flow” within SATURN (see 15.17), the
counts used in SATME2 must be defined in terms of pcus/hr (or, strictly speaking,
in the same units as all the other flows; see 15.17).
Several complications and/or extensions are introduced into the definition of the
constraint counts in SATME2 due to the level of sophistication inherent in
SATURN assignments.
by SATME2 as demand flows and any corrections due to flow metering are
ignored.
Alternatively, if counts are “corrected” using the 11111 dat a segment within the
SATME2 control file (see 13.2.2), then it is assumed that the input flow is the
correct demand flow which will not therefore be factored up as it would be i f it
were processed within SATPIJA. Some care may be necessary here if that is not
you intend.
N.B. Table 1 w ithin the SATME2 .LPM file prints both the original (actual flow)
counts plus the target or demand version of the flows.
Tij = Ai B j tij
where the row and/or column balancing factors are chosen such that
∑Ti
ij = Dj
∑T
j
ij = Oi
In the case of SATME2 the row and c olumn sums O i and D j are user input as
zonal constraints.
Under Furness the balancing factors Ai and Bj are calculated using a “bi-
proportional” technique and they play a highly similar role to the Xa factors in ME2
(which are calculated by a “multi-proportional” technique). Note, however, that the
zonal balancing factors are not explicitly raised to a pow er of Pija as in Figure
13.3. (Although, since the flows to or from a zone are 100% to or from that zone
and no other, their effective Pija factors are 1 and we could think of the Ai and Bj
factors as being implicitly raised to a power of 1.)
In principle it would be possible to carry out a full Furness procedure using
SATME2 by inputting the complete set of origin and destination flows (and no link
counts) although this would not be particularly efficient. The equivalent techniques
available in MX (10.7) are preferable.
Post release 10.9 a table (11.c) is included in the output .LPM file from SATME2
listing all origin / destination zonal totals both before and a fter ME2 is applied,
their changes and (if appropriate) their constrained totals.
♦ Greater than/less than constraints, in which case the factor X a remains at 1.0
(no effect on the trip matrix) unless the constraint is violated, in which case
the constraint is treated as an equality and balanced exactly.
Note that with “less than” constraints X a factors can only be less than or equal 1
(in order to reduce the flow through that link), while with “greater than” constraints
they must exceed 1.
All counts input on the .ufp file are assumed to be of the same “constraint type” as
specified by the SATME2 Namelist parameter LEG (which stands for Less
than/Equal/Greater than) but it is possible to have mixed constraints by using the
“change of mind” input records described below.
The same concept of constraint types applies equally to zone origin and/or
destination constraints as input under the 22222/33333 data records in the
SATME2 control file (13.2.2).
There is, however, one major distinction between GT/LT constraints on zones and
on links which is that, with zones, it is possible to have both a LT and GT
constraint on the same zone O or D, in which case the constraints specify a range
of values. In this case at most one of the two constraints will be “active” depending
on whether all other constraints take the zone total above or below the appropriate
limit. Alternatively neither can be active if the total is otherwise within range.
Note that in order to set a zonal O/D range it is necessary to input two records
under 22222/33333: one with the LT constraint and the other with the GT
constraint. Obvious error checks are carried out to determine if the LT value is
indeed greater than the GT value.
Note that the definition of less than etc. constraints is only made on entry to
SATME2; the Pija calculations carried out by SATPIJA are the same no m atter
what form of analysis is eventually carried out in SATME2.
This option may help to correct errors and/or inconsistencies introduced by the
assignment. It may also be us ed to satisfy the total flows measured crossing a
screen line or cordon.
An example of a potential inconsistency between the assignment and the counts
is illustrated below where there are two alternative (parallel) routes between
nodes A and B via K and L. Suppose that the counted flows on AK and AL are
2,000 and 1, 000 respectively but that the assignment (for whatever reason) will
always assign more flow via L than via K. In this case it will be impossible for ME2
to find a t rip matrix which can simultaneously satisfy both counts and as signed
proportions. However if the total flow between A and B is constrained to equal
3,000 then the precise split of trips between K and L is no longer a problem.
Note that the root of the inconsistency could be either the assignment or the
counts themselves, combining the counts dodges the issue. An alternative
solution would be to remove the counts altogether.
K
O ---------------A B------------ D
L
To use this option the individual links which are to be c ombined into a s ingle
constraint are listed within a s ingle set of 66666 records on the input SATME2
control file; see 13.2.2 (No specific advance action is required in SATPIJA except
that each individual link which is to become a member of a combined constraint
with its count must be defined as an input to SATPIJA.) The count which is to be
satisfied is the sum of all the individual counts while the PIJA factors are assumed
to be the sum of the individual PIJA factors.
Note that once an individual link count has been included within a combined count
it is no l onger applied as an i ndividual constraint, only as part of the combined
constraint.
Note that adding the PIJA factors together is correct as long as no od pairs use
two or more of the combined counts, i.e., that there are no double crossings. If
these conditions are not satisfied, i.e., if the summed PIJA factor > 1.0, then it is
re-set to 1.0 with Warnings and/or Serious Warning messages added as
appropriate. Essentially links to be c ombined should be “ in parallel”, not “in
series”.
The condition is certainly satisfied if a set of turn counts out of the same link are
combined together. Equally it should be satisfied if two adjacent and parallel links
are combined together since a dr iver is highly unlikely to use one link and then
back-track in order to use the second. On the other hand a s creen line which
consists of multiple nearly parallel links, e.g., bridges across a river, may allow
double-crossings in practice if the river is not particularly straight (think of the
Thames in London).
If counts with “double crossings” are combined the end effect is likely to be an
increase in the estimated trip matrix (although it is always difficult to say with
absolute certainty what a complicated system such as ME2 will do). For example,
if two links A,B and B ,C in series both have counts of 1,000 and both are
(inadvertently) combined together then their combined screen line count constraint
will be 2,000. However if a particular OD pair has Pija factors of 1.0 on both then
the summed Pija factor of 2.0 will be reduced to 1.0. Since the “correct” solution in
this case should be a Pija factor of 1.0 and a count of 1,000 ME2 will therefore
produce extra trips by trying to create 2,000 trips on A to C, not 1,000.
(B) A single o-d pair with two o-d paths and 3 count sites
If at count 1 the original modelled flow (assigned using t ij ) was less than the
observed flow W 1 then the balancing factor X 1 would (all other things being equal)
be greater than 1 i n order to increase all the o-d pairs assigned to that link (in
either case). Similarly if count 2 were over-assigned W 2 would be less than 1 in
order to reduce the number of trips through it.
It is easy to see that the balancing factors are not unique. For example in Figure
13.3 (a), if all three counts were under-assigned by 50% and OD was the only trip
pair through all three count sites then setting one of the three W’s to 2.0 and the
other two to 1.0 would correctly double the flow on all three counts. Alternatively
setting all three to the cube root of 2 would have exactly the same effect.
As a general rule one would expect that counts which are under-assigned initially
would have a balancing factor greater than 1 and, conversely, if under-assigned
X a less than 1. Equally, the greater the difference in the original assigned and
modelled flows, the greater the difference of X a from 1.0.
However, given the interaction and non-uniqueness of the balancing factors noted
above, such simple rules do not always apply. Thus if X 1 >>1.0 in either Figure
13.3 (a) or (b) to correct for a large under-assignment at W 1 it may be that, if W 2
were only marginally under-assigned, then X 2 < 1.0 in order to counter-act the
large increases in path flows caused by X 1 .
We also note briefly at this point, and discuss it more fully under 13.3.1, that the
balancing factors X a are restricted to lie in the range (1/XAMAX, XAMAX) where
XAMAX is a user-set parameter. These restrictions are in place in order to
prevent the matrix from being “over-distorted” by ME2 trying to satisfy all counts
when, for many possible reasons, this is not possible. A value of X a equal to either
the minimum or maximum values is a strong indication that there may be
something funny going on at that particular count site.
X a′ =
X a − 1.0 X a > 1.0
− (1.0 / X a − 1.0 )
X a′ = X a < 1.0
Thus X a = 1 (no changes to the matrix elements using that counts ite) transforms
to X a ’ = 0, values of X a > 1 are positive and values of X a < 1 become negative.
The transformed values are particularly useful when being displayed in P1X (see
11.8.5) in that those values that increase the trip matrix are positive and in one
colour while those that decrease the trip matrix are negative and i n a different
colour.
averaging successive trip matrices, e.g. by using a 1/n rule as in assignment (see
7.2.2) but applied to trip matrices, not flows.
The problem may also be associated with a small number of link counts, possibly
those that are inconsistent between themselves. Identifying and removing them
may improve the situation (see 13.3.4).
And never, NEVER accept the outputs from SATME2 without double-
checking. It is easy to apply SATME2 but it is considerably more difficult to
update your matrix correctly.
Further (good) advice is available in TAG Unit 3.19c Highway Assignment
Modelling.
N.B. Counts may refer to either simulation or buffer links, but to turns ONLY in the
simulation network. Centroid connectors are not allowed, nor are repeated entries
with the same A-B-C. In addition there is no way to split the counts into separate
sub-sets as with multiple 77777 records in network data files.
N.B. Alternatively you may use a $INCLUDE record to define an external data file.
See note 5 below.
END OF THE INPUT DATA
NOTES
1) The links or turns to be analysed within SATPIJA (and, by implication, within
SATME2) may be either: (a) those already stored on the input .ufs file (as
originally input to SATNET as 77777 data; see 6.10) if UFFLOW = T; or (b) an
entirely new set of links/turns included in the control file as Records 2 above if
UFFLOW = F.
2) If UFFLOW = T, in general, all input links/turns read from the .ufs file are used.
However, if they were input in SATNET as multiple sets of 77777 r ecords
(see notes 1, 2 and 15 in 6.10), then you may select a sub-set of those sets by
using the SATPIJA subscripted logical parameters SET777. For example, if
you had t wo sets of 77777 data records then setting SET777(1) = F and
SET777(2) = T would mean that SATPIJA would only analyse those
links/turns in set 2.
3) If you had a large number of 77777 count sets of which only one or two are to
be used then the simplest method is to first include a namelist definition
‘SET777 = .FALSE.’ which will “exclude” all 77777 count sets and then
explicitly define, e.g., SET777(29) = T etc. if set 29 is to be included.
4) If UFFLOW = T and more than 1 c ount field was used in the original .7777
data sets (MCCS > 1; see 6.10), then the Namelist parameter MCC above
selects the relevant count field.
5) Alternatively, if UFFLOW = F and the counts are to be included on the control
file, then they may be s et in an ex ternal ASCII file by using the convention
$INCLUDE filename – in which case $INCLUDE immediately follows &END
and is itself followed by a 99999 record. See 15.34.
6) As per the original input of counts to SATNET from a network .dat files link
counts may be repeated (but only in different count sets); repeated links are
ignored by SATPIJA.
7) If SATME2 will only update positive cells in a trip matrix, i.e., zero cells are
not seeded (SEED = 0.0), there is no point in producing Pija values for cells
where T ij = 0. If ALLIJ = F only positive cells will be examined and, in this
case, an input trip matrix is required and should (indeed MUST) be the same
base (i.e., prior) matrix to be input to SATME2. SATPIJA does not make use
of precise individual cell values, it only checks if they are positive.
8) In the event of multiple-user class assignment based on a s tacked (multi-
level) .UFM matrix SATPIJA can consider either:
a) Only a single user class (set by KLASS) or,
b) All user classes based on the same “level” of the input stacked trip
matrix (set by LEVEL)
c) All user classes which share a common “vehicle class” (set by IVC)
In cases (b) and (c) the output PIJA factors are “weighted” averages of
the user classes within that level or vehicle class; see equations (13.5)
and (13.6) respectively. Under (a) the matrix level is effectively defined
by that used by the user class specified by KLASS.
Only one of these three parameters needs to be specified, otherwise a
Fatal Error may result. However, if the MUC assignment is structured so
that each user class corresponds to a s eparate level in the trip matrix
either KLASS or LEVEL may be used or, if both are used simultaneously,
they must be equal. If IVC is used neither KLASS nor LEVEL may be set.
See 13.4.2 for further details on updating MUC matrices.
(*) The program terminates if either ITERMX is reached OR all estimated and
observed link flows are either, in relative terms, within EPSILN of one another or
the upper/lower limits on their balancing factor limits are reached.
Additional data input follows the same general principle as used in the network
.dat files input to SATNET; i.e., each section is preceded by a 11111, 22222, etc.
record and terminated by a 99999 r ecord. D ata sections must be in increasing
numerical order and not all sections need t o be included - indeed no a dditional
data need be included at all apart from records 7 and 8, the new matrix title.
The set of records must be terminated by a final 99999 record - and note that if no
data is included then a single 99999 record is still required.
RECORD 1.1
Cols. 1-5 11111 start of the change of mind records
RECORD 1.2
One record for each link/turn count to be modified with format:
Cols. 1 - 5 The A node
Cols. 6 – 10 The B node
Cols. 11 – 15 The C node
Cols. 17 The (new) constraint type:
L – Less than
E – Equality
G - Greater than
Or
X - Exclude from the calculations
Cols 18-25 The (modified demand) flow in pcus/hr
The program will search the list of input counts on the .UFP file to find that one
with identical A- B- and C-node values and replace the constraint type and/or flow
with that specified. If the constraint type (col. 17) or the flow is left blank then no
change is made. An unmatched set of nodes results in a non-fatal error.
Note that the flow input is assumed to be the target demand flow, not an actual
flow as would be i nput into SATPIJA and potentially factored up to reflect flow
metering from queued junctions upstream. See 13.1.4.2.
The X or “exclusion” option is introduced so that if you find that one or more
counts are giving problems then they are removed without the potentially time-
consuming necessity of deriving a new set of PIJA factors.
Note that the definition of A, B and C are identical to that used as input to
SATPIJA (13.2.1 above) but the flow here occupies 8 c olumns not 5. N ote
equally that if DUTCH = T a di fferent format applies and each node occupies 10
columns, not 5; see 15.20).
RECORD 1.3
Cols 1- 5 99999 End of the change of mind records
One record for each link/turn count to be modified with format:
RECORD 2.1
Cols 1- 5 22222 Start of the origin constraints
RECORD(S) 2.2
One record for each origin sum to be constrained with format:
Cols 1- 5 The zone name (N.B. NOT its sequential number)
Cols 7 The constraint type:
L - Less than
E – Equality
G - Greater than
Cols 8 - 15 The desired origin total flow in pcus/hr (as an integer)
If column 7 is left blank the default constraint type as specified by
the parameter LEG is assumed.
Note that if a range of zonal origin values is required (13.1.7) two
records are required with the same zone name in cols. 1-5.
RECORD 2.3
Cols 1- 5 99999 End of the change of origin constraints
RECORD 3.1
Cols 1- 5 33333 start of the destination constraints
RECORD(S) 3.2
One record for each destination sum to be constrained with format:
Cols 1- 5 The zone name (N.B. NOT its sequential number)
Cols 7 The constraint type:
L - Less than
E – Equality
G - Greater than
Cols 8 - 15 The desired destination total flow in pcus/hr (as an integer)
(N.B. Destination flows must be factored up by the user into
“demand” flows as opposed to “observed” flows. See 13.3.2).
If column 7 is left blank the default constraint type as specified by
the parameter LEG is assumed.
RECORD 3.3
Cols 1- 5 99999 End of the change of destination constraints
RECORD 4.1
Cols 1- 5 44444 start of the frozen zone records
RECORD(S) 4.2
Cols 1- 5 Start zone name (not sequential)
Cols 6-10 Finish zone of block (greater than or equal to the start zone)
Record type 4.2 is repeated for each ‘frozen’ block of zones.
RECORD 4.3
Cols 1- 5 99999 End of the frozen zone records
RECORD 5.1
Cols 1- 5 55555 start of the frozen cell records
RECORD(S) 5.2
Cols 1- 5 Start origin zone name (/sector if column 1 = S)
Cols 6-10 Finish origin zone name (> = start origin)
Cols 11-15 Number of destination zone pairs to follow
Cols 16-20 Start destination zone name (block 1)
Cols 21-25 Finish destination zone name (block 1)
Cols 26-30 Start destination zone name (block 2)
Cols 31-35 Finish destination zone (block 2)
etc. for further destination zone name pairs
Thus the number of entries to be read following column 15 will be t wice the
number that appears in columns 11-15 up to a maximum of 12 per line.
If there are more than 6 “blocks” of destinations to be input then an appropriate
number of “continuation” records must be included with data input commencing in
column 16. Thus no data is read beyond column 75.
Record 5.2 is repeated for each set of origin zone sequences.
RECORD 5.3
Cols 1- 5 99999 End of the frozen cell records
is input within its own “header” 66666 and “ trailer” 99999 r ecords in order to
accommodate multiple sets. Within each set it is only necessary to define the
links in terms of their A-node and B-nodes (plus C-nodes for turns), the individual
link counts must have been previously set.
If FREE6 = T then the nodes as input under Records 6.2 below are input in free
format rather than in the fixed columns.
N.B. The processing of the 66666 records and the creation of a “extended” .UFP
file including both single link constraints and combined constraints may be
particularly long-winded with large networks if locating individual link records in the
original .UFP file involves repeatedly re-winding the file. If, however, the individual
link records as input to SATPIJA are in the same order as the links referred to
under 66666 in SATME2 then the .UFP link data may be read essentially in a
single pass and the required CPU will be significantly reduced.
RECORD 6.1
Cols 1- 5 66666 start of a set of combined constraints (with any “title” following
66666 being displayed within the .LPM file)
RECORD(S) 6.2
Cols 1- 5 The A-node (In columns 1-10 etc. etc. under DUTCH = T or free
format if FREE6 = T))
Cols 6-10 The B-node
Cols 11-15 The C-node (if a turn)
RECORD 6.3
Cols 1- 5 99999 End of a set of combined constraints
11111
58 1 779
10 65 X
32 33 1550
33 34 16 1600
45 53 52 G 300
46 47 L 100
99999
22222
12 = 800
14 L 400
4 G 700
2 L 400
24 E 900
20 1500
99999
33333
18 = 2700
1 G 1400
5 L 900
6 G 300
7 L 900
24 400
99999
44444
4 5
10 10
99999
55555
14 15 2 4 6 11 13
99999
55555
14
99999
99999
NEW TRIP MATRIX FROM SATME2
experience of the authors - suggestions for other points to be included here would
be very welcome.
In addition certain other options which may be i nvoked within SATME2 are
documented.
to .FALSE. so that PIJA’s are not calculated for cells where T ij = 0; this may
considerably reduce the size of the UFP file if there are a large number of such
cells.
XAMAX - In general one would expect the link balancing factors (X a in equation
(13.1)) in the ‘update’ mode (PRIOR = T) to be somewhere near 1, and a
balancing factor very much different indicates that the corresponding count is very
different from what the original matrix would have given. This may therefore imply
that the count itself is unreliable. By setting maximum and minimum values on the
balancing factors we therefore limit the effect that any one count can have. On
the other hand with PRIOR = F one should probably allow larger values of XAMAX
since in this case we have much less reason to suspect that the initial ‘flat’ matrix
should give reasonable link flows.
It should also be borne in mind, see equation (13.1), that an individual ij pair may
use several counted links so that the maximum change possible in T ij could be
XAMAX to the power n, where n is the number of counted links, each at a factor
XAMAX. There is a case therefore for reducing XAMAX considerably, e.g., to a
value of 2.0 or even less, if you have a large number of counts that could be used
multiple times.
One useful strategy might be to start off with the default value of XAMAX but, if it
seems appropriate, to reduce it for later runs. There is a case for at least seeing
initially what size of X a factors are required and how many counts require the
maximum/minimum before enforcing a stricter criterion.
ODXMAX – By default (ODXMAX = T) the max/min factors set by XAMAX apply
to both link counts and o-d counts (if any). Setting ODXMAX = F effectively “de-
couples” o-d counts from link counts such that the o-d counts will always be
satisfied independent of the size of factor required to do so. Thus if the o-d counts
are a l ong way away from the equivalent sums in the prior trip matrix then an
exact balance will be achieved.
However, it should be noted, that if you do n eed to set ODXMAX = F then it
almost certainly means that you should have paid more attention to setting
realistic o-d totals in the input prior matrix yourself rather than passing the buck to
SATME2. Alternatively, it may be t hat the o-d counts and the link counts are
mutually incompatible and that the program is having difficulties in balancing both.
In either case you need to check your inputs carefully.
SUBFIX - In general this should be TRUE on t he assumption that you wish to
update a full trip matrix and that the counts include both assigned and fixed
components. Exceptions to this rule include (a) updating a sub-matrix under MUC
assignment (see 13.4.8 below), in which case it should almost certainly be FALSE
on the assumption that the counts are specifically for one class of vehicles; and
(b) when there are no f ixed flows, in which case the value of SUBFIX does not
matter.
SUBPQ – This is a special case of SUBFIX where only the PASSQ element of
the fixed flows is subtracted from the counts. Since the PASSQ flows arise from
queued elements of the trip matrix from the previous time period, not the current
trip matrix which is being updated from counts, they should not be included in the
update procedure. Hence we would recommend, if there are PASSQ flows, to set
SUBPQ = T if SUBFIX is not already set to T. See also 13.4.8.
SUBSLQ – This, in turn, is a special case of SUBPQ whereby if there is a residual
queue Q on a l ink (A,B) following a P ASSQ assignment for the previous time
period then SATURN introduces an extra component of the entry flows equal to
Q/LTP (see 17.3.1). If SUBSLQ = T (default = F) and SUBPQ = T then this flow is
also subtracted from the target count, the presumption therefore being that the
count was taken at the stop line and would therefore include the traffic which was
in the initial queue as well as the “new” traffic for the current time period which
SATME2 is seeking to estimate. See also 13.3.4
currently assigned link flow and reports as a Serious Warning those cases where
the differences between the two flows give rise to a GEH value greater than 5.0
and where, presumably, SATME2 would “struggle” to find a consistent solution.
An extreme example of an implied count – effectively a Kirchoff violation as above
– can occur if the implied count is negative; again, there are no possible matrix
solutions.
(The “geometry” used in these calculations is actually somewhat more
complicated in that the presence of banned and U-turns may allow more than one
set of “Kirchoff tests” to be carried out on different sub-sets of arms at the same
node. Equally, if a c ounted link has only one possible exit link then the count
constraint may be “extended” to the second and any subsequent links allowing a
wider range of consistency checks to be carried out.)
Note that the Kirchoff tests are carried out using the “assignment network
definitions” (see 5.5.1), i.e., with simulation nodes expanded and i ndividual
assignment nodes at either end of simulation roads. This implies that flows to and
from zones are included in the summations of flow-in and flow-out.
N.B. It is possible to run SATPIJA in a “check-only” mode, i.e., so that it
processes the counts and checks for the obvious Kirchoff etc. errors above but
does not do any of the P ija calculations or output a .UFP file. To invoke this option
set the parameter PREUFP to .TRUE. in the control file; see 13.2.1.
Within SATME2 inconsistencies may sometimes be det ected with full output
statistics (PRINT = T) by links which appear to be converging to values other than
the observed counts, or by a large number of link factors at either the minimum or
maximum levels, indicating that certain counts are trying to “pull” as hard as
possible in two different directions and not getting anywhere.
Similarly, if the network for which trip matrices are being estimated is part of a
PASSQ multiple time period model, then any residual queues at the link stop-line
from the previous time period are also modelled as entry flows at the stop-line
(see 17.3.1). Hence they also create problems in unambiguously defining flows
and counts on l inks. It is possible, post 10.9 and using the parameter SUBSLQ
(see 13.3.1), to subtract the residual queues from the counts or not depending on
whether the count is assumed to be t aken at the stop-line itself or mid-link
(upstream of any residual queues).
However, given these ambiguities there is a s trong case for not including such
counts within ME2 on the basis that they are not actually adding information about
O-D travel patterns but simply confusing the issue. In addition, if the link continues
to queue in the current time period (or, strictly, is modelled to queue) then it could
be argued that the count is actually giving you more information about the link
capacity rather than flows and should be used to calibrate the link capacity (e.g.,
by adjusting saturation flows) rather than within SATME2.
N.B. None of the above problems apply to counts on turning movements where it
is assumed that the counts are taken at the junction. However see 13.3.8 for a
discussion as to the advisability of using turn counts in the first place.
PRIOR = F they are set to zero. H ence in the latter case we make the implicit
assumption that an unobserved element is in fact an impossible trip.
The SATPIJA control parameters SET777 (see 13.2.1) may provide a useful
mechanism in this context to include/exclude turn counts. Thus, if you put all link
counts within the first 77777 data set and al l turn counts in the second, then
setting SET777(1) = T and SET777(2) = F w ill automatically include only link
counts in SATME2 but still leave you the possibility to use the turn counts for
other validation purposes.
Alternatively you could use the mechanism for combining counts together (13.1.8)
to aggregate turn counts into link counts but, given the extra effort of specifying
the combined constraints within SATME2, it is probably better to do it in other
ways.
One obvious strategy, if the available counts have been obtained using different
methods (e.g., automatic counts versus manual classified counts) over varying
time periods such that, a priori, certain counts should be more reliable than others,
is to start with the most reliable counts. However there are also competing
considerations, e.g., that counts should be i n parallel rather than in series as
discussed above (13.3.9) and that it is useful to have counts spread over the
whole network rather than, say, concentrated in a c ity centre where the most
reliable counting methods have been employed.
On the other hand, even if a count is deemed to be highly reliable, it may be
somehow inconsistent with the assigned paths and/or other counts (possibly
evidenced by a value of X a at its minimum or maximum value) and it is therefore
best to remove it.
There is also a reliability issue related to the “order” in which counts are input as
discussed in 13.3.3.6; essentially there is a c ase for putting the most reliable
counts at the bottom of the input lists so that they are more likely to be exactly
satisfied.
An alternative (and not necessarily highly recommended) strategy for dealing with
less reliable count constraints – or counts which are proving difficult to satisfy – is
to convert them into less than / greater than constraints (13.1.7). For example, if
one has a not very reliable link count of 1,000 which empirically appears to be
difficult to satisfy even with X a at the maximum value of XAMAX it may make
sense to replace it by a >=900 constraint. However the problem with replacing all
unreliable counts with GT/LT constraints is that: (a) one does not know a pr iori
which alternative should be selected and (b) the problem with a GT/LT constraint
is that even if ME2 can easily satisfy the exact constraint with a GT/LT constraint it
simply stops when it hits the upper/lower boundary.
Unfortunately removing and/or ordering and/or redefining constraints is more an
art than a science and users will need t o deal with the problem manually on a
case by case basis. What is, however, virtually certain is that if some selection of
counts is not undertaken the resulting output trip matrices will be sub-optimal. If
you treat ME2 as a black box sausage machine you will wind up with egg on your
face (to mix culinary metaphors!).
∆T = Σ T ij (1 – X a –Pija )
Note that a negative value of ∆T indicates that (using) the count acts to reduce the
total trip matrix by this amount and, conversely, that a positive value indicates that
the count increases the matrix by this amount.
Arguably this represents the best measure available to assess the effect of using
the count but it does not tell us exactly what the effect of not using the count
would be. For example, in an e xtreme case, if we have the same count on t wo
consecutive links separated by a pelican crossing, it is essentially arbitrary which
count has an X a factor of 1.0 (i.e., is “inactive”) and which has an “active” X a
factor. If we remove the active count the second would become active and the
updated matrix would be the same.
Equally other counts may be ac tively factoring the same cells in an oppos ite
direction, thus negating the effects of this particular count. If we were to re-run
matrix estimation without the count then the factors for these other counts would
be slightly closer to 1.0 since they would not have to “work so hard” to counter the
effect of the count that had been removed.
♦ the first matrix level representing car trips split by fixed proportions into three
purposes (say, Work, Education and Other);
would be used to update the corresponding trip matrix level. But, unless we had
some way of distinguishing three separate purposes for observed car counts, it is
not possible to apply separate matrix estimation by purpose.
Equally, if we had three separate stacked matrices for car trips by Work,
Education and Other which are not simple factors of a common car trip matrix and
we can only observe total car flows, only the sum of the three matrices may be
updated, not the individual matrices (see 13.4.6 below).
Therefore, in terms of MUC ME2, we shall assume that we have a set of one or
more prior trip matrices, each one of which constitutes a separate level within the
assigned stacked trip matrix or is the sum of two or more UC/levels, and a
corresponding set of observed flows which we wish to use to produce improved
estimates of those matrices in order to satisfy equation (13.1).
The next section considers how SATPIJA identifies the sub-matrices to be
analysed for Pija factors while the following sections consider different options for
using SATPIJA and SATME2 together.
13.4.2 SATPIJA Options for Defining User Classes: KLASS, LEVEL and IVC
Within SATPIJA the set of one or more user classes for which Pija factors are
required are set using the three parameters KLASS, LEVEL and IVC:
a) A single user class (set by KLASS),
b) All user classes based on the same “level” of the input stacked trip matrix (set
by LEVEL)
c) All user classes which share a common “vehicle class” (set by IVC).
In cases (b) and (c) the output PIJA factors are “weighted” averages of the user
classes within that level; see equations (13.5) and (13.6) respectively. Under (a)
the value of LEVEL is effectively set by the matrix level used by user class KLASS
as defined in the .UFS network file.
Only one o f these parameters needs to be specified; if the MUC assignment is
structured so that each user class corresponds to a s eparate level in the trip
matrix then either KLASS or LEVEL may be us ed (or, if both are specified, belt
and braces, they must be equal).
Option (a), to analyse a single user class KLASS, is not always appropriate since
it may be difficult to associate counts with a particular user class. For example, if
you had car trips split by purpose into separate sub-matrices, each with its own
level, it might not be possible to similarly disaggregate observed counts of cars by
purpose/level. However, this would not apply if, say, HGVs were specified as a
single user class / level and HGV counts could be easily identified separately.
Note that defining a single value KLASS is only possible if the trip matrix for that
user class is defined in a discrete level; if it “shares” its matrix level with other user
classes it is not possible to do a “partial” update of that level.
In the most common case of a s ingle trip matrix all three parameters LEVEL,
KLASS and IVC are redundant; in effect, all three equal to 1.
= ∑ P ijaW
m m
P ija
m
where Pijam is the normal Pija factor for user class m and Wm is the “fraction” of
the trip matrix associated with user class m as defined within columns 11-15 of the
88888 data records within the original network .dat file
All matrix files shown in Figure 13.2 are simple square trip matrix files (i.e., not
stacked) and SATME2 updates that single trip matrix.
13.4.4 Multiple Level Stacked Trip Matrices: Updating Levels via Separate Matrices
In a more complicated case the trip matrix may contain several different sub-
matrices stacked by level with distinct user classes being defined as universal
factors of a single level (where the factors are input under the 88888 data in a
network .dat file). Most commonly a particular level will correspond to a single
user class, in which case the factor should be 1. 0; less frequently a l evel will
contain multiple user classes, in which case the sum of the factors should be 1.0.
In the former case updating a l evel is fully equivalent to updating a s ingle user
class.
The objective is therefore to update each separate level using a correspondingly
aggregated set of constraints. There are two basic ways to proceed: either:
a) Users may first unstack the trip matrix into individual square trip matrices,
update each sub-matrix/level individually and finally re-stack them; or
b) Users may (post 10.8) update an individual level within the full stacked matrix
while leaving the “other” levels unaltered.
Both cases require separate runs of SATPIJA to calculate PIJA factors and
SATME2 to update the matrix for the designated level; i.e., it is not possible to
produce multiple sets of Pija factors using SATPIJA and/or to update multiple
matrix levels within SATME2.
Case (a) is described in more detail below; case (b) in the following sub-section,
13.4.5.
♦ Prior to running SATME2 un-stack the full prior trip matrix to produce one or
more square sub-matrices for the level(s) to be updated (N.B. Not necessary
if the stacked prior matrix was itself built from sub-matrices in the first place);
♦ After obtaining a new Car matrix re-stack it with the (current) HGV matrix to
produce a new stacked matrix to use in SATURN.
Having updated the Car matrix to match the counts you could of course then carry
on to update the HGV matrix (with no doubt some extra problems of feedback and
convergence in addition to those described in 13.1.10 since updating the car
matrix may affect the routes taken by both cars and HGVs which will in turn affect
the ME2 HGV calculations!). The main point is that both steps must be carried out
separately.
The procedure is then repeated once per level (or once for each level which is to
be updated). N.B. As yet there is no automatic procedure to carry out a PIJA
analysis for all levels in SATPIJA and then to update all matrix levels with
SATME2. However it should not be difficult for clever users to set up their own
batch files to run the procedure automatically - further advice is available upon
request.
Note that one very good reason for not putting the complete procedure into a
single “black box” is the user needs to be making decisions after each run of
SATME2, for example whether to repeat the assignment immediately, whether to
repeat the run of SATME2 but with certain counts removed, etc. etc.
For updating level 2: SATME2 newod2 counts KR me2kr PRIOR priorod TIJUP newod1
For updating level 3: SATME2 newod3 counts KR me2kr PRIOR priorod TIJUP newod2
where newod0.ufm might be a straight copy of priorod.ufm (but, N.B. it must have
a different filename).
13.4.6 Multiple User Classes Aggregated by Vehicle Class: IVC and TURBO
This section describes the situation where, say, you have three separate matrices
of car trips disaggregated by purpose – e.g., Work, Education and Other – each
stored as a separate matrix level for assignment purposes with, possibly, different
values of PPM, PPK etc. and therefore different route choices. In addition you
may have link counts and/or other constraints based on total cars, i.e., not
disaggregated by purpose.
In this case it is possible (post 10.8.13) to use SATME2 to update a prior matrix
which is the sum of all three car trip sub-matrices (and therefore a square matrix)
and to subsequently split the updated matrix back into separate matrices for Work,
Education and Other. (The method of splitting may either be left entirely up to the
user post SATME2 or done aut omatically within SATME2 by using an opt ion
TURBO described below.).
Thus, with reference to equation (13.1) T ij is the total car trip matrix, P ija is the
probability that a car trip from origin i to destination j uses link a and V a is the total
car flow on link a. Thus P ija is a weighted sum over all purposes defined by:
Equation 13.6
= ∑ P ija P ij
m m
P ija
m
where P ij m is the probability (i.e., split) that a car trip from i to j is by purpose (user
class) m.
In order to calculate P ija within SATPIJA it is first necessary to ensure that the all
the sub-matrices (i.e., levels of the stacked matrix) which are to be treated
together have been grouped within the same “vehicle class” using the 88888 data
records of the network .dat file (see 6.11). The namelist parameter IVC identifies
the vehicle class to be used and must be invoked as the only option which
defines multiple levels within SATPIJA
A similar correction is also made to initial residual queues which are subtracted
from the target flow if SUBSLQ = T (see 13.3.1).
N.B. If, for some strange reason, the PASSQ-ed network had a di fferent link
structure from the “current” network then, post 10.9.19, the flows are correctly
“translated” from the old structure into the new. Previously this was not possible:
SUBPQ was set to F in SATME2 and a Serious Warning generated.
Notes:
(i) PRIOR is only used when the program is run in the “update” mode. Since the
default file SATME20.DAT sets the update mode if KR is absent then PRIOR
must be used in this case
♦ A-node.
♦ B-node.
and Pija is the fraction of Tij trips which pass through link(/turn) a. Figure 13.4
illustrates the order of programs (cf. Figure 13.4).
Once produced the T ija matrix may be printed using MX or perhaps re-assigned
using SATDB. However given the probable “sparsity” of the matrix most users
probably prefer to aggregate the “zonal” trip matrix into, say, a “sector-to-sector”
matrix using MX.
SATU2 may produce more than one matrix in a single run, although the links or
turns need to be defined first via the input to SATPIJA (Figure 13.4).
♦ It also allows the user to determine the links used by the selected trips before
and after using the selected link.
Hence SATDB is generally recommended in preference to SATU2.
♦ The (demand) target flow (i.e., with fixed flows etc. removed);
♦ The number of the 66666 data set if the link is part of a combined set.
The end of the data file is indicated by a final record containing (as is standard in
SATURN data files) 99999.
Note that it is very likely that the contents and precise format of the above file will
change over time as further needs for post-ME2 analysis are identified. Fo r
example, the current files do not contain any information on zone constraints so
these may be added at a later date.
Mini-Contents Page
INTRODUCTION
This section describes how to run SATURN programs using .bat file procedures
(essentially) under dos or equivalent operating environments (e.g. Command
Prompt under Windows) and the conventions adopted (which are essentially
common to both environments).
To a l arge extent the batch mode of running SATURN programs has been
superseded by the introduction of the SATWIN front end w hich operates under
WINDOWS. However SATWIN itself uses .bat files (although essentially invisible
to the casual user) and there are facilities within SATWIN (see 3.6) for essentially
do-it-yourself .bat file creation. It also makes use of the same “command line”
conventions as the .bat files and, in effect, SATWIN generates the command line
for you. T hus, like the study of Latin, there are still advantages in knowing
something about .bat files!
Interactive file specification is used as and when files not already defined under i)
or ii) are needed. Generally speaking this is most common with the purely
interactive programs such as PIX whereas the non-interactive programs such as
SATNET or SATALL should only use methods i) and ii).
Command line filename definitions may include the extension but it is not
essential; it may also be implied either by its position in the command line or by
keywords immediately before or after. For example:
PIX livnet.ufs
will run P1X on a file livnet.ufs. Alternatively
PIX livnet
will also input livnet.ufs where the extension .ufs is implied by default.
Alternatively either:
PIX livnet UFT
or P1X livnet.uft
both define an i nput file “livnet.uft”. In the former case UFT is an example of a
keyword which appears after the filename it amplifies; in the latter case the
extension is explicit.
Note, however, that:
PIX livnet.uft UFT
would imply a file “livnet.uft.uft”, presumably not the required file.
Equally
implies an input file tijθ.ufm under the REDMEN option where here the keyword
REDMEN appears before the filename it describes.
Note that the “names” used in the command line may be bas ed on either
“filenames” or “pathnames”. Thus either:
SATNET net
or
SATNET C:/JOB/DAT/net
could both be used to specify the file C:/JOB/DAT/net.dat, where the first definition
relies on the current home directory and/or “append” search definitions to locate
the file. SATURN uf* files store both a “filename” and a “pathname” to help locate
the required files at later stages.
This does not of course imply that the network file must have the name
‘network.DAT’ - the user can choose any filename for the input file, but it must
have the extension DAT. S imilarly all other files have a us er-supplied filename
but fixed extensions as defined above.
In the case of buffer-only networks under SATURN8 the simulation program
SATSIM is not run and therefore no U FS or LPS files are created directly;
however the final output .ufa file is renamed as a .ufs file to maintain consistency.
Equally with SATURN the output file from a buffer network is always .ufs.
Alternatively the pre-loaded file may be defined via the parameter PLDFIL (6.1) in
net2.dat, in which case the PLOD specification above is unnecessary in the
command line.
Note that, unlike PASSQ and U PDATE above, if a pr e-load file is defined both
within &OPTION and on the Command Line then the file set under &OPTION is
used.
14.5 “LOG”, “KEY” and “VDU” Files: Running Interactive Programs “Off-
line”
having to hit the <return> key and/or click the mouse at each pause rather than
having to decide on the input.
(N,B. A very useful alternative to clicking the mouse in order to advance at each
stage of a graphical routine is to use Alt-F4!)
Command Line Definition of KEY and/or VDU Files
In order to run, say, SATDB with a k ey file the standard command line should
(normally) contain the “keyword” KEY followed by a f ilename whose (implied)
extension is .key. Thus:
SATDB LIVNET KEY JAN16
runs SATDB on an input file LIVNET.UFS with terminal commands taken from a
file JAN16.KEY which has been copied (/renamed) from a .LOG file from a
previous, purely interactive run of SATDB.
The extension “.KEY” is implied and, prior to Version 10.9.21, was obligatory.
However, post November 2010, key files may either have an ex tension .key or
.log and may be set with or without the keyword KEY.
Thus a LOG file may be used directly as a KEY file without being renamed with its
extension changed. For example:
SATDB LIVNET KEY satdb16.log
would run SATDB with its terminal commands taken from a file satdb16.log,
presumably output as a LOG file from a previous run of SATDB.
Alternatively (post 10.9.22), the “pre-word” KEY is not an absolute necessity but
may be implied by the extension of a filename given on the command line such
that:
SATDB LIVNET JAN16.KEY
or
SATDB LIVNET satdb16.log
runs SATDB on an i nput file LIVNET.UFS with terminal commands taken from
JAN16.KEY or satdb16.log respectively.
The inclusion/exclusion of a VDU output file is determined in the “standard” high-
level procedures by a keyword VDU followed by a file name. Hence;
SATDB LIVNET KEY JAN16 VDU FRED
runs SATDB on LIVNET.UFS with terminal input from JAN16.KEY and terminal
output to FRED.VDU. Nothing therefore appears on the screen.
Alternatively (post 10.9.22) the keyword VDU may be dropped by simply entering
a filename with an extension .VDU as in:
SATDB LIVNET KEY JAN16 FRED.VDU
Note that once an appropriate “KEY file” has been set up it may be used as part of
a standard “macro” to automatically repeat the same function but with different
network files. For example, you may automatically extend any .ufs network file
using FUEL.KEY with a standard procedural call such as:
SATDB NET S 11 NETX KEY FUEL VDU SCRATCH
which will extend NET.UFS to include fuel consumption in file NETX.UFS. The
terminal output responses would be s tored in SCRATCH.VDU. (Although you
probably never need to look at this file; it is only there to make the procedure fully
“batch”.)
The procedure could be further implemented within a DOS batch (.bat) file called
by, e.g.:
DBFUEL net netx
which, at its very simplest, might consist of the single line file DBFUEL.BAT
call satdb %1 S 11 %2 KEY FUEL VDU scratch
♦ “pure” mouse input (i.e., point and click on a particular point on the screen);
♦ etc. etc.
All of these appear within the log/key files in differing formats, the exact details of
which need not concern the casual user. Their primary purpose is to indicate to
the program which is “reading” the key file the precise form of the input command.
Note, however, that .log files generally do not include any inputs made within
“external Windows” operations. For example, within P1X network editing it is
possible at certain stages to request “screen editing” to edit segments of text. The
request to enter Screen Editing would be recorded in the .log file but any changes
made to the text under screen edit itself are Windows operations and will not be
recorded in the .log file. Similarly if you ask to print a file any options selected
within the standard Windows Print window are not recorded in the .log file. It is
therefore recommended that such Windows-based operations should be avoided
if the intention is to re-use the inputs as a key file. See Section 14.5.9 for further
information.
An example of a log file generated by a run of P1X which uses several different
forms of inputs, as well as comments, is given below:
Thus the first choice made by the user was the line “Display menu” in the P1X
banner. 1056 and 90 indicate the precise pixel coordinates of the mouse when the
left hand button was clicked, 68 represents the ascii value of the character D (the
single highlighted character in that line), 0 gives a “ status” (which is a bi t too
complicated to explain and you don’t really need to know about it!) while “Display
menu” was the text in the selected banner line. Of these the only vital piece of
information is the ascii code 68 w hich is used by the program to “branch”
correctly.
The numerical value 6001 at the end of the record is a “menu check code”, i.e., a
code which may be used to uniquely identify the menu from which the choice
“display Menu” was selected (in this case the “Master Menu”). It may be
subsequently used as a check that when this record is processed from a KEY file
that it is indeed called from the Master Menu, otherwise the KEY file may be “out
of synch”. This facility was first introduced in October 2012 so that checks on KEY
files created before that date are not possible.
If you were to use this command line to run a job on a different computer with a
different screen resolution the pixel coordinates of the Display menu line might be
quite different – the critical thing is that a banner line with a highlighted character
whose ascii code was 68 (i.e., D) was selected.
The line “5 - Demand Flow Downstream” simply indicates that the 5th line from a
window containing various options was selected and that the text in that line was
as indicated. Again the vital piece of information is the 5.
The two lines following &Box indicate the precise pixel coordinates used to define
the position of the box (i.e., format (e) above). Problems may occur here if the job
To use a key file “setup.key” such as the above to “initiate” a run of, say, SATDB
one could use a command line such as:
SATDB net keyvdu setup
So that the commands in setup.key would run automatically in “background
mode”, terminating at the “break line” and leaving the user free to continue from
there.
the following file starts with an automatic delay of 10 seconds but switches to 5
seconds after the input ‘4033’:
AUTO 10
0
4
1893
4003
AUTO 5
0
...
Thus in the above example the ‘terminal’ output would be initially directed to a file,
and thus be ‘ invisible’ to the user, but would revert to the terminal part way
through. Use this option to skip over the ‘boring’ parts of a demonstration run.
Equally you can switch from terminal output back to file output by a VDU record
which is therefore a ‘ toggle’ between the two modes. N ote however that this
facility can only be used if you start with a VDU external file.
key file they are copied verbatim to the screen until a “ non-comment” record is
read.
.......
1
*
* Linear combination of distance (X1) and time (X2)
*
0.01*X1 + 0.0023*X2
FUEL CONSUMPTION IN MILLILITRES
4603
0
.........
Comments may either be inserted in a key file AFTER it has been produced by an
interactive run (i.e., into the LOG file) or else they may be directly included in the
log file by typing in records commencing with a ‘*’. Thus in the above example the
line ‘0.01*X1 ...’ is an equation which is required by the previous menu response
of 1; if the user had typed: *<enter>, * Linear .. <enter>, *<enter>, 0.01 .. <enter>
the log file would have appeared as above.
Comments are very useful for indicating the reason for the line following and are
often used within key files which are used as tutorials to demonstrate particular
features of SATURN programs since they appear directly on the screen. They are
also very useful in key files which are used within standard “macros”, just in case
later versions of SATURN have a different sequence of input commands (they
always do!) and old key files no longer work.
options such as matrix building. It has the further advantage that it does not use
key files which may become invalid with newer versions of SATURN.
The facility may be further extended and simplified (from the user’s point of view)
by creating standard “Batch Procedures” so that, for example, to dump a matrix
.UFM file TIJ.UFM into a C SV ascii formatted file (see 10.20.15) the user could
either type in directly:
$MX matrix TIJ /DUMP5
or use the as-provided batch procedure UFM2CSV:
UFM2CSV TIJ
where DUMP5 above is a special keyword which implies “dump into CSV format”.
The batch file UFM2CSV.BAT simply re-creates the previous command line in
order to run the program MX to carry out the same function.
A number of standard applications within MX based on t his methodology are
described in Section 10.20. In addition further examples may also be found using
SATLOOK, SATDB and P1X.
Currently the .XCL option is only available with MX (where it is most likely to be
needed) but, in principle, it could be used with any SATURN batch file. Requests
to DVV or Atkins for alternative applications.
Note that whenever XCL + filename are read on a c ommand line then the
processing transfers to the new file immediately; i.e., any further tokens on the
original command line are ignored. Therefore any additional tokens should be
included within the continuation record(s).
if a SATALL command line contains QUICK then MASL is set to 1, NITA and
NITA_M to 3, NITA_S to 2 and NITS and NITS_M to 5.
The basic objective of using QUICK is to test whether or not complicated batch
files which call a large number of programs and need to pass files between them
have been correctly set up before leaving them to run, say, over the weekend.
Alternatively QUICK may be s et to .TRUE. using a t oggle provided within
SATWIN, in which case it will be appl ied automatically to all programs which
recognise the QUICK option (as listed above). See 15.55.
where SATALL, SATPIJA and SATME2 are themselves .bat files which call the
equivalent .exe files.
The above three commands may themselves be subsumed into a single .bat file,
say UPME2 .bat, which could be written as:
CALL SATALL %1 %2
CALL SAPIJA %2 %3
CALL SATME2 %4 %3 PRIOR
so that typing:
would have the same effect as the original three commands. Note the use of %1,
%2 etc within the bat file to represent the successive arguments on the command
line; at execution net1 would be substituted for %1 in the call to SATALL etc
Note that .bat files may themselves call other .bat files (but see below for
problems under 32-bit Windows) which themselves call other .bat files to produce
a hierarchical structure.
Calls to standard dos functions may also be included, for example one file may be
copied into another so that UPME2 above might include a final line.
COPY %4.UFM LATEST.UFM
in order to save the “latest” trip matrix file with a s tandard name. Equally
temporary files may be deleted etc.
.Bat files may also include certain error checks and internal logic. Fo r example
one may check whether or not an e ssential input file exists and take the
appropriate action if not, or the “convergence status” of a par ticular operation
monitored in order to terminate at the required level. Dos manuals may be
consulted for further information.
Within Windows, and C ommand Prompt, one p articular problem arises which is
that Windows does not (apparently) wait for one program to terminate before
starting the next. Thus, in the above example, SATPIJA may begin before
SATALL has finished and therefore before the necessary file net1.ufs has been
created. A solution to this problem involves 2 “tricks”,
1) Use direct calls to exe files rather than to .bat files;
2) Use the command “start/W” as below.
Thus the UPME2.bat file above under Windows would become:
Start/W $SATALL %1 %2
Start/W $SATPIJA %2 %3
Start/W $SATME2 %4 %3 PRIOR %2
Empirically this guarantees that SATPIJA will only be initiated once SATALL has
terminated and all necessary files are available. For an example please look at
SATURN.bat.
There may of course be other “tricks” available within Windows to accomplish the
same ends.
Mini-Contents Page
INTRODUCTION
This section contains a series of notes on special features of SATURN and is
intended to “explain” their use and/or interpretation rather than to describe the
nitty-gritty of how, for example, to set up input files.
The justification for using the less precise buffer network description is that, if one
is interested in analysing schemes at the centre of the network, the resulting
impacts within the distant buffer network will be minimal and the extra time and
effort required to code and run the full network as simulation cannot be justified.
A further advantage of a buffer network vis a vis a simulation network is that it has
better convergence properties due t o the fact that it uses “separable” cost-flow
curves (see 7.1.3). Conversely simulation networks suffer potential problems of
non-convergence due to the fact that, by allowing for within junction interactions,
their cost-flow curves are non-separable. Very often this may introduce “noise”
into the solution which makes it difficult to accurately assess the impact of
relatively small schemes.
SATURN 11 has introduced the possibility of creating an intermediate network
band (referred to as the Peripheral Simulation Area in the diagram above) which
would lie, geographically, between the central “pure” simulation network and the
outer buffer network and which would be m odelled at a s impler and/or more
aggregate level than the normal simulation but not necessarily as coarse as the
buffer network.
Two options are available for the intermediate region:
1) Conversion into a Fixed Cost Curve network (FCF);
2) Simulation to Buffer Transformation (SBT)
Fixed Cost Curves are described in Sections 15.1.2 to 15.1.6 below and the
Simulation to Buffer Transformation in 15.1.7. They are compared in 15.1.8.
t=
AV n + t0 V <C (a)
t AC n + t0 + B ∗ (V − C ) / C
= V ≥C (b)
The parameters t0, A, n and C are all treated as fixed for individual turns rather
than as variables calculated at the end of each new simulation.
A further property of an FCF (“Fixed Cost-Flow”) description is that the same
network properties may be applied to both a “do-minimum” and a “do-something”
network in order to minimise noise between the two.
Finally we note that the structure of the “assignment network” in which simulation
turns are represented by individual “links” is also unchanged under FCF; it is only
the nature of the cost-flow curves on these turn-links which has changed. This in
turn implies that a bas ic Frank-Wolfe assignment step will require roughly the
same CPU time with or without FCF – although we would expect a reduction in
overall CPU time with FCF due t o a r educed number of assignment-simulation
loops.
and the buffer component (if any) is identical between old_base.ufs and
old_base.ufa.
Note that neither an output network data file control.kp which normally defines the
cordoned network nor a cordoned trip matrix are required in this operation; the
sole purpose of running SATCH in this fashion is to produce the new three-level
network .UFA file. (Therefore, to save unnecessary calculations and CPU, the
parameter DOMAT should always be set to .FALSE.)
To complete the first stage the file old_base.ufa should be renamed / copied as,
say, new_base.ufn and run through SATALL in order to create new_base.ufs.
(The reason for using the extension .ufn is that this is the extension required by
SATALL for an input network.) Provided that old_base,ufs was well converged in
the first place and t he cost-flow curves for the fixed nodes are stable then the
differences between old_base.ufs and new_base.ufs should be minimal. And,
hopefully, new_base.ufs will converge much more rapidly.
the inner segment remaining as simulation. So in this case we will still have the
traditional simulation/buffer “doughnut” but with an extended buffer component.
We refer to this method as SBT – Simulation to Buffer Transformation.
The SBT transformation may be accomplished by a combination of applications of
SATCH, SATBUF and SATCCS (12.1, 15.8.2 and 15.8.3 respectively) plus some
text file editing to produce a suitably updated network .dat file. Thus, assuming
that we start from old_base.ufs, we proceed as follows:
1) SATBUF old_base: to create old_base.buf with all simulation links in
old_base.ufs converted to buffer format;
2) SATCCS old_base: to create old_base.map with all simulation centroid
connectors converted to buffer format;
3) SATCH old_base control: where control.dat includes INCLUD = T in order to
produce $INCLUDE files control_11111,dat, control_22222.dat and/or
control_44444.dat to represent simulation data within the central cordoned
area.
At this stage we now have all the necessary components to create a new
network data file new_base.dat as follows:
4) COPY old_base.dat new_base.dat
5) Edit new_base.dat using a standard text editor, e.g., NOTEPAD, in which we:
a) Delete the existing 11111, 22222 an d 44444 (if it exists) data segments
and ...
b) ... replace them by $INCLUDE references to control_11111.dat,
control.22222.dat and control_44444.dat.
c) Add 2 ex tra records “$INCLUDE old_base.buf” and “$INCLUDE
old_base.map” within the 33333 da ta segment (but do not delete any of
the existing 33333 data records).
Thus, at the end of the edit, we have a network .dat file in which the 11111, 22222
and 44444 dat a segments refer specifically to the central (cordoned) network
while the 33333 data segment has had extra data added in the appropriate format
to represent the (former simulation) links and centroid connectors in the
intermediate band.
We note that the two 33333 $INCLUDE segments added in step c) above will also
include the central simulation links and centroid connectors converted to buffer
format but since the same links etc. also appear in the new 11111 and 22222 data
sets they will be ignored by SATNET under 33333.
Thus FCF retains the same basic geometry in the intermediate region whereby
each turning movement is still represented by a single link within the assignment
network with a ( fixed) cost-flow curve and therefore, in terms of route choice,
different turning movements from the same entry link influence route choice. By
contrast with BCF the distinction between different turns has been removed.
In addition the FCF formulation permits flow metering to be modelled whereas
with SBT, as with any buffer network, there is no di stinction modelled between
demand and actual flows.
We may also note that, to a first approximation, a network with a FCF conversion
gives the same results as the original simulation network. (In fact the first
assignment after the FCF transformation should give identical results to the next
assignment from the pure simulation network since the cost-flow curves are
identical; they only diverge thereafter to the extent that the simulated cost-flow
curves change). By contrast SBT networks give quite different results immediately
since the buffer-link representation is based on a quite different (and arguably less
realistic) network representation than the simulated turns.
Therefore, in terms of “realism”, FCF is preferable to SBT.
On the other hand in terms of CPU and convergence SBT is the winner in that the
reduced network size (roughly speaking including turns doubles or more the size
of the assignment network) leads to faster run times plus, arguably, faster
convergence.
Note that the original trip matrix is still valid for the transformed networks, whether
under FCF or SBT, since the zone structure has not been changed at all in the
new networks.
♦ Input the UFS file from the previous sequence on c hannel 2 to SATNET
(which may most easily be done us ing the parameter UPFILE (see section
6.1) to define the filename).
We note that this procedure is very similar to the PASSQ option (17.3.1) which
also (if UPDATE = F) extracts flow-delay data from a previous network file (in this
case, the PASSQ file from the previous time period) The difference under
UPDATE = T is that only flow-delay information is extracted from the update file,
not the queues and suppressed traffic as with PASSQ.
Note that both UPDATE and P ASSQ may be u sed at the same time but, if so,
they must use two different input .ufs files (parametric filenames UPFILE/FILUP
and FILPQ respectively). If only PASSQ is used then there is no option to cancel
the flow-delay updates.
The extended SATURN procedures may be used here - the command format is
illustrated in Section 14.4.2.
Further Notes:
1) The second network may in fact be structurally quite different from the first in
the sense that new nodes and new links or turns can be i ntroduced. The
program is set up in such a way that only information on turns and links
common to both networks are carried over. For “new” turns default flow-
delay parameters are assumed. C learly though, the more similar the two
networks are, the greater the savings in CPU time.
N.B. Both UPDATE and PASSQ (17.3.1) allow the “pre-network” to have a
different structure from the “main network” whereas – at the time of writing –
the pre-load option PLOD does not (see 15.5.1). This is likely to change in
the future.
2) Note that the UPDATE option as described here implies that only the
network is updated, although it is also permissible to introduce a different trip
matrix at the same time. If, however, one onl y wishes to change the trip
matrix then the appropriate steps are described under the Re-start Facility in
Section 15.4.
3) In order to ensure that the first assignment within the assignment-simulation
loop takes full advantage of the improved initial set of flow-delay curves the
maximum number of assignment iterations, normally set by the parameter
NITA, is set to the maximum of NITA, NITA_S and 25.
4) It is possible (post SATURN 10.6) for a file to, in effect, update itself in the
sense that an “old” UFS file, say net.ufs, may update a “new” network data
file net.dat. In other words it is not necessary to re-name the network every
time a minor change is made and the results from the previous incarnation
are used to the full.
Note as well that, if UPDATE is set to .TRUE., but the UFS file to be updated
has not been defined then it is assumed by default that the file to be updated
is net.ufs (when the data file is net.dat).
This option is particularly useful when running multiple time periods using
SATTPX (17.4.3) since, in that case, each time period has a unique filename
(e.g., neta, netb, netc etc.) emanating from a single data filename (e.g.,
net.dat). The individual time-period filenames will be automatically and
correctly invoked if UPDATE = T in net.dat but no specific .ufs filename (e.g.,
net.ufs) is set.
5) The UPDATE option may be very usefully combined – under either path-
based or origin-based assignments - with the WSTART option which adds
additional information related to path flows and which improves the initial
assignment even more than just having improved cost-flow curves. See 21.3
for further details.
♦ The final UFS file from the previous sequence (This file contains the
necessary network specifications and parameters.)
therefore very similar to the use of UPDATE within SATNET, although the use of
old simulation profiles is exclusive to RESTART.
If the new trip matrix is not much different from the old then the final flow-delay
curves, etc. will not be m uch different either. H ence by starting with good
approximations the overall number of assignment/simulation loops can be sharply
reduced.
Section 22.2.2 contains further information on RESTART, including its relationship
with other similar “kick-start” techniques.
♦ Set up a “heavies” network and carry out a full SATURN run assigning only a
matrix of heavy vehicles.
♦ Set up the “normal” network with the previous demand (i.e., not actual) flows
“pre-loaded” onto the network and treated as fixed flows in the same way that
buses are.
The second or “normal” network file would have PLOD = T in &OPTION (and,
preferably, the name of the pre-loaded file via PLDFIL) whereas the first would
have PLOD = F (the default).
In effect the PLOD option allows the heavy lorries to have the first choice of route
and implies that whereas lorries can affect the routes subsequently chosen by the
“normal” vehicles, the normal vehicles cannot in turn affect lorries. In some
circumstances this may not be a totally unrealistic assumption; however allowing
for interaction in both directions would no doubt be preferable and is provided by
Multiple User Class Assignment (Section 7.3).
While the lorry network can have different network properties from the “normal”
network, e.g., different link speeds, etc., both networks MUST be structurally
identical, i.e., have the same nodes, links and turns (unless a text file is used’ see
15.5.4). (N.B. PLOD differs from PASSQ and/or UPDATE in this respect: the
PASSQ/UPDATE networks may have a different structure from the main network;
see notes 1) in section 17.3.1 and section 15.3 respectively.) Hence, strictly
speaking it is not (yet) possible to introduce lorry bans by banning turns or
removing links in the lorry network. However lorry bans can in fact be introduced
by certain relatively simple tricks.
For example, you can effectively ban l orries from a l ink by giving that link an
extremely high travel time in the lorry network (assuming of course that there are
alternative routes available). Banned turns may be introduced by coding them as
bus-only turns even if there are no buses; the model response to a bus-only turn
is to prevent any elements in the trip matrix - in this case lorries - from using those
turns.
Some caution must be exercised when using PLOD so that other forms of fixed
vehicles are not loaded twice. For example, bus routes should not be coded as
part of the lorry network, only as part of the normal network, since any bus flows in
the lorry network will be automatically added as fixed flows to the normal network.
Clearly the same basic procedure is carried out with any combination of assigned
vehicles, not necessarily just lorries and cars.
then the relevant flows may be pre-loaded by first dumping flows from the pre-load
file into a text file; e.g., use SATDB (11.0.9).
SATURN differentiates between the two by looking it the extension of the input
file: if it is .ufs/ufa/etc. it assumes a SATURN file, if not it assumes a text data file.
See 14.4.4.
The format of the link identification may either follow standard SATURN input data
conventions, see, for example, 6.10, with node numbers in fixed columns followed
by a (single) link flow or both node numbers and flow may be input totally as “free
format” or CSV by setting a parameter PLODFF = T in the network &OPTION data
segment (see 6.1). By default PLODFF = F.
Note that pre-loaded “links” should normally include both “roads” and “turns” in a
simulation network. Including only “roads” will lead to discontinuities in flows at
simulation junctions.
Within free-format text files (PLODFF = T) a further &OPTION parameter PLFF3 =
T requires that each input record contains 4 fields – A, B , C and flow. Thus links
are distinguished from turns by always including an explicit third C-node field
which is equal to zero for a l ink and t he turn C-node otherwise.; i.e., A,B,0,link-
flow(A,B) as opposed to A,B,C,turn-flow(A,B,C).
Alternatively, if PLFF3 = F, then link records require 3 fields (A and B followed by
the flow) whereas turn records require 4 fields in total (A, B, C and flow). By
default PLFF3 = F.
For fixed column input (PLODFF = F) PLFF3 does not apply since the fixed data
columns used for a C node will simply be blank (or zero) for a link and the flow
data is in the same (fixed) columns for both links and turns.
See Section 9.12.3 for suggestions as to how the pre-load facility may be used in
combination with the parameter ZILCH to carry out a 100% pre-load.
The most comprehensive and flexible set of comparisons is available within P1X,
either under Validation (11.7.1) or SATLOOK (11.11.13). I n these cases the
observed flows are taken from the input .ufs file as originally read as 77777
records in the network .dat file. The modelled flows may be defined in a number
of different ways in order to match the precise definition of the counts used; e.g.
demand or actual flows may be us ed (actual probably makes more sense in
general), bus flows may be included or excluded, a single user class flow may be
selected, etc. etc.
Note that Validation, being newer, provides more options than SATLOOK. On the
other hand SATLOOK is probably easier to run with a key file or as part of an
extended batch file.
Alternatively, both counts and f lows may be r ead into SATDB and the standard
statistical options to compare two data columns invoked. Users may wish to
define their own difference measures based on the column- manipulation facilities
within SATDB. Within SATDB the user may select either actual or demand flows
as preferred.
Finally P1X can also display difference statistics graphically under link annotation.
Two standard items are “ABS ERRORS” which is the difference between counts
and actual flows and “ REL ERRORS” which gives the relative differences as a
percentage.
It may most easily be thought of as the square root of the product of the absolute
difference, V2-V1, and the relative difference, (V2-V1)/VBAR where the “average
flow” VBAR = 0.5*(V1 + V2).
The reason for introducing such a s tatistic is the inability of either the absolute
difference or the relative difference to cope over a wide range of flows. For
example an absolute difference of 100 pcu/h may be considered a big difference if
the flows are of the order of 100 pcu/h, but would be totally unimportant for flows
of the order of several thousand pcu/h. Equally a 10% error in 100 pcu/h would
not be important, whereas a 10% error in, say, 3000 pcu/h might mean the
difference between building an extra lane or not.
Generally speaking the GEH parameter is less sensitive to such problems since a
modeller would probably feel that an error of 20 in 100 would be roughly as bad as
an error of 90 in 2,000, and both would have a GEH statistic of, roughly, 2.
The following table gives an i ndication of various levels of GEH values, both
qualitatively and quantitatively:
priority markers described in Section 6.4.2 which differ slightly from the
assumptions made in the U.K. They are as follows:
♦ 3 - both (i) and (ii) (as for Victoria and New Zealand)
The “traditional” (i.e., dating back to the 1970’s) default value in SATURN is 0
implying that opposing right turns in the UK do hook and therefore interfere with
one another. However in the 21st Century UK the opposite is almost certainly the
norm and, paradoxically, a value of NOTUK = 1 would be recommended.
However, setting NOTUK = 1 on existing networks may not be a good idea if a
large number of individual turns have been given a Priority Modifier D which
reverses the definition of hooked/not hooked (see 6.4.2.7). I.e., if you set NOTUK
= 1 but do not change XD to X then all those turns will be assumed to hook.
are no simulation nodes there is no necessity to use the simulation stage SATSIM
and the assignment obtained from one ex ecution of SATEASY is a c onvergent
solution within the limit of the convergence parameters set. Note that one could
also use SATALL instead of SATEASY; it carries out the identical assignment
procedures and is recommended.
There are a number of reasons why one might wish to use SATURN in this way.
For example users might wish to model large-scale interurban networks for which
junction modelling is not essential. Another example would be t he user who
wishes to use the matrix update facilities within SATURN without necessarily
wishing to define all or part of his network in the detail required by SATURN. A
third example is the use of SATURN purely as a network data base.
The ASCII .dat file necessary to define such a network must commence with the
three mandatory input records (OPTION namelist, title and PARAM namelist) as
described in Section 6, immediately followed by a buffer network “header” record
of a 3 in column 1 and the buffer network description terminated by a ‘99999 card’
as specified in Section 6.6. N ode co-ordinates, route flows etc. (optionally)
follow. The final card in the file must be another 99999 card.
The use of default speed-flow curves within the 333 r ecords (15.9.5) may be
extremely useful in buffer-only networks.
Thus a “typical” file might read:
&OPTION
&END
THIS IS A PURE BUFFER NETWORK
&PARAM
BCRP=4.0,
LIST=T,
&END
33333
3 2 28 56 2500 1 100 3.1
29 2 21 42 1250 2 90
2 3 28 56 3750 1 100 3.1
C 2 59 10 50
C 3 60 10 50
C 4 61 5 25
...
99999
55555
..... Co-ordinate data
99999
99999
(End of file)
buffer speed flow curves which, since they cannot distinguish between different
turning movements, must of necessity be suitably weighted averages.
The averaging of delays may be carried out using routines within SATDB and
data for each simulation link dumped to an ASCII file. A special purpose .bat plus
.key file is provided to do this. Type
SATBUF net
to produce an A SCII file net.buf which contains for each simulation link (A,B) a
single record containing:
♦ Its A-node
♦ Its B-node
d = ∑ Vi di / ∑ Vi
where:
di = delay for turn i
Vi = simulated (actual) flow for turn i
Thus if you have a simulated right turn with a very long delay but (consequently) a
very low flow this will have relatively little effect on t he delays which would be
modelled in the buffer network (so that in a b uffer network representation you
could expect to overestimate that particular turning movement).
The capacity is that already calculated for each simulation link (see 8.9.4 for
further details) while the flow-delay power n is a weighted sum of individual turns
as with delays above.
Both the order and the format of the output variables is the correct order required
by buffer network input to SATNET (section 6.5). Thus the times, capacity and
distance are all output as “integers” although they are calculated as “reals”.
Note that SATBUF deals only with simulation links, i.e. the 11111 data input, and
that users must decide for themselves how to deal with simulation centroid
connectors - the 22222 data inputs. One very simple solution, which implies using
an editor, is to edit the 22222 records by
We consider first the range of flows less than capacity, V<C. Clearly if the existing
curves are already in the form of a power law then the problems here are minimal;
the user must simply ensure that the required value of n i s set in BCRP if it is
constant for all links or is input for each individual link.
If however the existing curves are of a different form it will be necessary to define
power-law curves which, in some sense, give a “ best fit” to the existing curves.
There are many ways in which this can be done, depending both on the definition
of “best fit” as well as on the shape of the existing curves.
Different countries may well have different recommended forms. We illustrate
here one method which may be used to convert curves of the form recommended
by the UK Department of Transport, currently referred to as DfT, but for historical
reasons also referred to as DTp.
t (V ) = d / S (V )
S0 V ≤F
S (V ) = S1 + ( S1 − S0 )(V − F ) / ( C − F ) F <V ≤ C
S1 / (1 + S1 (V − C ) / 8dC ) V >C
Where:
t is the link time (in hours),
d is the link distance (in kilometres),
S is the link speed (in kph),
V is the link flow (in PCU per hour),
S0 is the “free flow” speed,
S1 is the speed at capacity,
F is the maximum flow at which free-flow conditions hold
C is the capacity
We wish to fit the above curve, in the range V < C, with a function:
t= t0 + aV n
The three unknowns, t0, a and n, are fitted from the following constraints:
1) Free flow times must be the same (hence t0 = d/S0);
2) Capacity times must be identical, and
3) The “average” travel times must be the same.
Condition (3) is the critical one for determining n. We define the average travel
time to be:
∫ t ( v ) dv / C
0
t0 + aC n +1 / ( n + 1) C
t =
=
t0 + aC n / n + 1
t0 + ( t ( C ) − t0 ) / n + 1
=
t = t0 + (1 − F / C ) ( ln ( S0 / S1 ) / (1/ t0 − 1/ tc ) − t0 )
( (
Hence: n = ( r − 1) / (1 − F / C ) ∗ r ln r / ( r − 1) − 1 − 1 ))
=
where r S=
0 / S1 tc / t0
A section of FORTRAN code which does the above job is given below:
R = S0/S1
XN = 0.0
IF (R.GT.1.0) THEN
XBOT = (1.0 - F/C) * (R*ALOG(R)/(R - 1.0) - 1.0)
IF (XBOT.NE.0.0) XN = ((R - 1.0)/XBOT) - 1.0
END IF
and the following table gives values of n for ‘typical’ DTp parameters (where the
speeds are in kph and the flows/capacities in pcu/hr):
S0 S1 F C N
50 50 0 600 0.00
80 66 3400 4800 6.33
S0 S1 F C N
67 47 0 4000 1.27
61 27 0 3400 1.72
For the range of flows above capacity, DTp and SATURN curves both have a
linear relationship, although the slope of the curve in SATURN is determined from
the length of the time period simulated (parameter LTP) while that for the DTp
curve is set by the parameter ‘8’ in the above equation which has units of 1/hours.
To set up the same slope in SATURN it is therefore necessary to set LTP = 15,
i.e., 1/4 of an hour since the slope equals 0.5*LTP.
Having set up the buffer network the user may now begin to code parts of the
network in the format and detail required for a s imulation network, starting with
those nodes where the extra detail is most required and working outward as far as
may be required. Since any node that appears in both the simulation and buffer
networks is ignored in the buffer network nodes may be c oded as simulation
nodes without having to remove them from the coded buffer network. One
advantage of coding SATURN networks in this way is that the user gains coding
experience by degrees and thereby makes fewer mistakes overall.
Note that in following this procedure the nodes which lie on the boundary between
the simulation and buf fer networks at any stage MUST be i ncluded as external
nodes in the simulation network unless one uses the AUTOX facility as described
in Section 15.12.
S0 + ( S1 − S0 ) * (V / F ) V ≤F
S (V ) = S1 + ( S 2 − S1 )(V − F ) / ( C − F ) F <V ≤ C
S 2 / (1 + S 2 (V − C ) / 8dC ) V >C
Where:
S0 is the free flow speed
S1 is the “intermediate” break point speed
S2 is the speed at capacity C
A “best-fit” value of the power n may then be determined by the equation:
n= ( R1 ∗ R2 − 1) / ( B1 + B2 − 1) − 1
where:
B1 =
( F / C ) R1 log R1
( R1 − 1)
B2 =
(1 − F / C ) R1 ∗ R2 log R2
( R2 − 1)
R1 = S0 / S1
R2 = S1 / S2
Our thanks are due t o Yazid Arezki for working out the above formula, thus
confirming earlier numerical values calculated by Devon County Council.
In previous versions of the manual, a set of calculated values of n for “standard”
UK road classifications were provided in a Table (often referred to as ‘Table 15.9’)
with a shorthand description of each road type.
With the release of 10.9.24, the table was withdrawn as its inclusion was only
intended to illustrate a range of ‘typical’ values of ’N’ which may result, using the
formulae above, from piece-wise linear curves. The values used in the table were
originally taken from COBA data sets of circa. 1990 and were not, in any sense,
recommended as up-to-date values for different road types In practice however,
users were applying the Table 15.9 curves without undertaking the necessary
critical review required for their specific application.
To assist users, an illustrative comparison of a ‘typical’ COBA piece-wise curve
and the equivalent SATURN Power curve is provided overleaf in Figure 15.2; The
data parameters used (listed below) and the best-fit value of N are for a (nominal)
dual 3-lane motorway with 15% HGVs. Figure 15.3 re-plots the same data as
delays versus flows (which is the form in which it is applied in assignment
models).
Further advice is provided to assist in converting curves into a form suitable for
SATURN in the following section.
The equivalent SATURN parameters for the curves illustrated above (with
various assumptions on the other COBA parameters required) are shown below.
S0 S1 S2 F C N Description
Note: speeds S0, S1 and S2 in km/h whilst breakpoint F and capacity flow C are in pcus/h
Figure 15.2 –COBA11 Piece-Wise v SATURN Power-Based Speed-Flow Curve (15% HGV)
♦ Define a set of default speed flow records within the ‘33333’ data records,
identified by a ‘D’ in column 1 and with entries for free-flow speed, speed at
capacity, capacity, the power ‘n’ and a ( non-zero) capacity index in the
“normal” fixed columns; see 6.6 for the detailed format;
♦ For each buffer link to which the above parameters apply leave blank (or code
as zero) the free-flow speed/time, capacity speed/time, capacity and p ower
but include the distance and c apacity index. The program then substitutes
the default speeds, etc. for the missing records. (In fact it is not even
necessary to code the distance if the SHANDY option is in effect; see 15.10.)
N.B. It is necessary to leave all four of the above entry fields blank/zero; if
one of them is included then it assumed that the other entries of zero are all
valid entries and the default option is not applied.
Thus all links with the same capacity index will have an identical speed-flow curve
plus capacity. N ote that the actual times need not be identical since these will
depend as well on the distance which is coded separately for each link.
One advantage of this option is that you can make “universal” changes to the
speed-flow parameters for a set of links by simply changing a single record rather
than several. The option should also be extremely useful for networks which are
defined by graphical input in some form; here link distances can be calculated
from node co-ordinates so that the only input information required from the user
(apart from whether a link is one-way or two-way) is an index which determines
the remaining parameters.
An example of an i nput data file using these conventions is illustrated below
where “default” indices 1 t o 14 ar e equivalent to the “typical” DfT parameters
defined above. Thus link 6-7 has a length of 90 meters but a capacity of 1400, a
free-flow speed of 63 kph, etc. as taken from the previous “D” record for capacity
index 4.
33333
D 90 76 5200 5.9 1
D 79 70 4800 5.2 2
D 70 57 1800 1.7 3
D 63 55 1400 1.9 4
D 50 50 600 0.0 5
D 80 66 4800 6.3 6
D 65 56 4400 4.7 7
D 50 30 2200 4.2 8
D 45 25 1000 3.9 9
D 35 25 600 4.4 10
D 25 15 500 3.8 11
D 67 47 4000 1.2 12
D 61 27 3400 1.7 13
D 56 20 1800 1.9 14
....
6 7 90 4
Further Notes:
1) The “D” records can appear anywhere within the 33333 r ecords and c an be
applied to buffer links that precede them.
2) By default (see note 4) below) the five required input data fields (free-flow
speed, speed at capacity, capacity, the power ‘n’ and capacity index) must
appear within the same fixed columns as “normal” buffer links; e.g., the free-
flow speed in columns 11-15. But, N.B., note that the required columns differ
under DUTCH = T; see 15.20.
3) Note that unlike standard buffer records where either speeds or times may be
used, the default speed-flow curves are only based on speeds. It is assumed
therefore that buffer records which make use of speed-flow curves have an ‘S’
in column 29 (39 under DUTCH = T).
4) Problems associated with fixed columns and differences between DUTCH = T
or F may be eliminated by setting a parameter DCSV = T under &PARAM in
the network .dat file, in which case the 5 necessary fields may appear in free
format following the D in column 1. I.e., they must appear in the correct order
and be separated by either spaces and/or commas.
3) It is quite possible that users would wish to set up curves with characteristics
identical except for the link capacity to represent say, dual 2 and dual 3 roads
with identical speeds, in which case distinct capacity indices should be used
for different lanes. The requirement for link rather than lane capacities should
be noted.
4) D records are good candidates for inclusion under $INCLUDE, see 15.30,
such that a standard set of default speed flow curves may be recorded in a
single file and applied to a wide range of networks.
5) Default speed-flow curves may also be applied to simulation links where
record 2B (see 6.4.1) excludes any time/speed and capacity data but refers
instead to a capacity index which, as with buffer links, defines the link speed-
flow curve.
♦ If a positive value has been input it checks this against the crow-fly distance
calculated from the input XY co-ordinates and prints a w arning message
(WARNING 35) if they differ by more than 10 meters in absolute terms AND
by more than 5% in relative terms.
♦ If a z ero (or blank) value has been i nput it substitutes the crow-fly distance
calculated from the input XY co-ordinates and prints a w arning message
(WARNING 25).
Clearly these steps are only carried out for links where both the A-node and the B-
node have been correctly assigned X,Y co-ordinates.
The option works by “pre-reading” the co-ordinate data under the 55555 cards
before returning to read the simulation and/or buffer link records. T hus no
“interpolated” co-ordinates are available at this stage. If there are no co-ordinates
input then the option is cancelled.
In addition, if a GIS file is defined in the network data file (via FILGIS) and that file
contains curved link data under 77777 t hen the crow-fly distances as used to
compare against input link distances (SHANDY = T) are calculated point-by-point
along the curved links rather than end-to-end directly. See Appendix Z.
Note that this option may be usefully combined with the default speed-flow curve
facility described in Section 15.9.5 since the new distance is set BEFORE the
speeds are substituted. T hus the free-flow time is obtained from a crow-fly
distance divided by the free-flow speed. At a minimum therefore a buffer link
record need only contain an A-node, B-node and a capacity index.
It is also an integral part of the PMAKE network building options (see section 17)
when new links are created.
A summary table comparing actual and crow-fly distances is included near the
end of the line printer output file from SATNET.
2) The external simulation nodes must also be included in the buffer network
with their “buffer-only” connections - i.e., those links to or from other nodes in
the buffer network. Thus links such as E-B above would be i ncluded under
33333.
3) In constructing the joint buffer/simulation network SATNET ignores an i nput
buffer link if either of the nodes has already been de fined in the simulation
network unless both are external simulation nodes. This means that a user
progressively re-defining a section of a large network as a simulation network
does not need t o remove simulation links from the buffer network input.
However some care needs to be ex ercised here that all “inner” nodes have
indeed be defined as simulation nodes since otherwise spurious buffer links
may creep into the middle of the simulation network.
4) On the other hand the “data” on an ignored buffer link, e.g., the time and
distance, is not totally ignored in that it is compared to the comparable
simulation data in order to check for self-consistency. In addition the buffer
link data may be used to supplement the simulation data as explained further
in Sections 6.6, 15.13 and 15.14.
5) We also note that problems may occur due to U-turns from the simulation
network at the simulation/buffer boundary as described in detail in Section
18.9.
The AUTOZ option removes the need t o explicitly define simulation centroid
connectors (6.5) to external simulation nodes by automatically attaching centroid
connectors to every link terminating at an external simulation node and assuming
that the zone has the same number as the external node. Thus, in the above
example where node 99 is an external node connected to internal simulation node
22, a zone numbered 99 would be created, attached to link 99-22 at node 99 in
exactly the same way as if a record ‘99 99 22’ were included in the ‘22222 data’
as described under Section 6.5. When using AUTOZ all connections as defined
under 22222 should be i nternal connections, otherwise there will be duplication,
and AUTOZ should only be i nvoked when ALL external nodes are pure cordon
points, not when they are links between the simulation and bu ffer networks. In
effect this restricts the AUTOZ option to pure simulation networks without a buffer
network.
AUTOX and AUTOZ can both be selected at the same time - and in fact the most
useful case for applying both is the case of coding a single simulation junction as
they remove the need to code ANY external simulation nodes or zones. A n
example of coding a 4 -way junction, node 44 ( as illustrated in Section 16.1), is
given in full below. The coding implies that nodes 43, 55, 45 and 16 ar e external
nodes, each one of which is connected to an external zone, also numbered 43,
55, 45 and 16.
Note that the AUTOX option infers that the link 44-43 does not exist (i.e., is one-
way from 43 to 44) since there are no turns coded as entering it, and that the time
and distance on link 44-45 will be 7 s econds and 100 meters. Equally under
AUTOZ zone 43 is entry (or origin) only while zone 45 is exit (or destination) only.
&OPTION
&END
NODE 44 CODED ALL ITS OWN
&PARAM
AUTOX=T,
AUTOZ=T,
&END
11111
44 4 3 4 61 85 0 45
45 0 0 0
16 2 25 200 0 1700 1 1 1600X 2 2
43 2 40 300 1400 1 1 3000 1 2 1200 2 2
55 2 25 220 1400 1 1 2800 1 2
19 4 6 43 55 43 45 43 16
10 7 4 43 55 16 45
25 0 4 16 55 55 0
15 5 4 16 55 55 45
99999
99999
15.13 Supplementary Data for Simulation Links Using Buffer Network Inputs
In general all the necessary data for links in the simulation network is defined
within the ‘11111 data cards’ described in 6.4; e.g., the link travel time, link
distance and nu mber of lanes. It is however possible to use the ‘33333 data
cards’ to define extra simulation link data which is not required by the simulation
proper but which might be useful under other circumstances. One example of this
is the link capacity index which is used to distinguish certain “classes” of links in
summary statistics. If a link A-B is included in the buffer network data with a
capacity index of, say, 5 but was previously defined as a s imulation link, the
capacity index of 5 is assumed to apply as well to the simulation link A-B. Using
the BEAKER option - see 6.3.1 - the index may also be associated with turns out
of A-B; setting BEAKER to .TRUE. is highly recommended.
Similarly any extra “KNOBS” data defined for duplicates of simulation links are
also assumed to apply to those links. See Section 15.14.
A further important application concerns “external simulation links”, i.e., the
simulation link from an internal simulation node A to an external simulation node
B. By definition the travel time on the “in-bound” link B-A is fixed, being a
simulation link, with - in effect - infinite capacity; any additional delays or capacity
restraint on t hat link are associated with turning movements at A. On the other
hand assuming a fixed travel time and infinite capacity on the “out-bound”
direction A-B would not be entirely realistic since turning movements at B are not
included in the simulation.
It is thus possible to define flow-delay/capacity-restraint relationships on out -
bound external simulation links such as A-B above using exactly the same form of
link flow-delay curve as is applied to buffer links - see Section 5.4. In order to do
so the user must include A-B within the “33333 data cards”.
Note that for external links connected directly to cordon zones there is perhaps
not much point in worrying about flow-delay since all trips go to the external zone
regardless of conditions on t he link. H owever the effect can be i mportant on
external links between the simulation and buf fer networks, as otherwise it could
lead to a s ituation where there is (effective) capacity restraint in the simulation
network and in the buffer network but not at their interface.
In addition if the AUTOX option is used to define external simulation nodes and
links - see 15.12 - and the link in question is 1-way outbound (A to B in the above
example) so that times and distances are given default values then these default
values are over-ridden by any data defined under the 33333 records.
Note that it is possible to have negative values for Knobs data which contribute to
generalised cost but only if the total link fixed cost does not go negative. See
7.11.2. Negative Knobs values should be us ed with caution although they may
sometimes be useful, for example, to make certain links more attractive to traffic.
The weighting coefficient for KNOBS data defined within the 88888 data set (6.11)
is defined in the “normal” way as a positive number; i.e., it is not possible to create
a negative cost by having positive data with a negative weight.
Note that items of Knobs data which do not contribute to link generalised costs
(e,g., for applications as described in 15.14.2) should have their 88888 w eights
input as zero (or blank) to avoid being confused with, e.g., tolls.
Note that if the data was originally stored at the end of every buffer record
(KONAL= T, method 2) in 15.14.5) it is not strictly necessary to delete it from the
33333 data since, if KNBFIL is set, the “end of line” buffer data will never be
processed.
15.15.2 NUC
Different values of NUC should be us ed if it is desired to have greater or less
resolution of cyclical flow profiles at a particular junction. For example, if the entry
profiles to a roundabout are virtually flat there is no particular reason to divide the
cycle period into a large number of small time units which will be virtually identical
to each other. H ere a s mall value of NUC gives the same results at less
computing cost. On the other hand traffic signals with a large number of relatively
short stages benefit from the extra resolution of short time units, i.e., a large value
of NUC.
Traditionally, and as a very general rule in SATURN, our advice has always been
to stick to the global values unless there is a very good reason for changing NUC
locally. However, post 2007, the benefits of increasing NUC under certain fairly
specific local circumstances have become better recognised and extra parameters
have been introduced in 10.8 to help deal with these issues.
In particular using larger values of NUC at complex signalised junctions may have
benefits for improved convergence.
Thus, for example, with X-turners at traffic signals which are partially blocked by
opposing traffic during a green phase, it is important for the simulation to be able
to accurately estimate the point during the phase at which gaps begin to appear in
the opposing traffic and the X-turns can begin to clear (albeit possibly very slowly).
This is particularly so if the green phase is relatively short compared to a time unit
and/or the lane is shared.
For example, if NUC is small and the basic time unit is, say, 15 seconds and the
duration of a bl ocked phase is only 10 seconds then the simulated results may
differ if the phase is entirely contained within a single 15-second time unit or if it
overlaps two time units. (N.B. The differences between the two may not look that
large in some respects but they may not be negligible either. For example if the
calculated delays were 40 and 45 seconds the “error” of 5 seconds may be small
compared to the differences between modelled and observed times; on the other
hand a s udden jump of 5 s econds may be r elatively very important in terms of
convergence between simulation and assignment.)
Thus, for signals with X-turns, we now recommend that NUC should be l arge
enough so that the minimum-length stage time is greater than three time units.
E.g., if LCY = 100 seconds and the shortest stage time is 7 seconds then NUC
should be at least 43 ( i.e. the basic time unit should be 7 / 3 s econds or 2.33
seconds and with LCY of 100, the value of NUC set should be equal to 100 / 2.33
or 43 rounded to the nearest integer).
Indeed, there is a strong case for setting NUC = LCY at signalised junctions with
X-turns so that the time unit corresponds to 1 s econd in order to achieve
maximum “resolution” and every stage transition occurs at an “integer” time unit;
see point 3) below under AUTNUC.
In versions of SATURN prior to 10.8 there was an upper limit of 25 on the value of
NUC both globally and at individual junctions; in 10.8 this has been increased to
125 for individual junctions or for junction types (i.e., NUCJT()) but the maximum
of 25 is still retained as the global default value. Other relevant changes in 10.8
include:
1) Warning 94 and/or Serious Warning 153 have been introduced to detect
values of NUC per node w hich are judged to be too small / seriously too
small.
2) A subscripted parameter NUCJT(j), j = 1,5, has been added to set a default
value of NUC for all simulation junctions of type j. NUC continues to function
as a global default which may be over-ridden by NUCJT for specific node
types.
3) If AUTNUC = T then, in processing a net work .dat file, SATNET will
automatically choose an “optimum” value of NUC per node if the default value
is judged to be too low (up to the above-mentioned maximum of 125). Thus,
in extremis, AUTNUC will set NUC equal to the cycle time for that junction so
that one time unit equals one second.
N.B. Increasing NUC for all nodes may lead to problems with array dimensions
being exceeded and, indeed, this is one reason why in the past users may have
been forced to reduce NUC from the (former) default value of 15 down to, say, 10.
Indeed, post 11.1, the default value has been decreased to 10. There may
therefore be a strong case for using NUCJT to selectively set relatively low values
of NUC for, say, roundabouts and priority junctions (NUCJT(1) = NUCJT(3) = 5)
where resolution is not an issue but larger values for signals (NUCJT(3) = 25)
such that the overall space requirements are not increased.
Equally increased NUC values also increases the CPU time required to carry out
a simulation although, generally, this does not lead to significant increases in
overall run times since, particularly in large networks, it is the assignment that
takes up almost all the CPU time.
We may further note – see also the final paragraph in 15.15.3 - that having
different values of NUC at two adjacent junctions has no real effect on the transfer
of cyclic flow profiles between them since CFP profiles will be suitably
transformed.
Final thought: Low NUC values do not necessarily lead to “errors” in the
simulation; what they do do though is to introduce a certain level of “clunkiness”
into the simulation which may be c ounter-productive in terms of convergence.
Increasing NUC values in an existing validated network is unlikely to change it into
a non-validated network but it may improve convergence and i t may produce
noticeable changes at a small number of turns.
In addition release 11.2.4 introduced a new test to detect a simulation node with,
say, LCY = 60 while all its immediate neighbours had LCY = 70. Serious Warning
183.
Note that having different values of NUC at two adjacent junctions has no r eal
effect on the OUT-IN transformation since an OUT profile evaluated with, say, 10
time units would be s uitably expanded into an IN profile with, say, 15 units
provided of course that both junctions have the same LCY.
The “flow” on A B may, in theory, be defined in five different ways; i.e., the flow
along:
AX - the entry flow onto the link,
XZ - the exit flow to the centroid,
XY - the “mid-link” flow,
ZY - the entry flow from the centroid, and
YB - the arrival flow at the stop line at B
For uniformity throughout SATURN we assume that the “link flow” is always taken
to be the mid-link flow, i.e. the flow on the link once all traffic destined for the zone
has been removed and before any new traffic has joined from the centroid. Thus
as defined the link flow is probably lower than the flow that might be observed on
the link in reality, although the fact that the link has been c onnected to a zone
implies that the flow level probably does vary along the link.
This therefore is the definition of link flow as used, e.g., in comparing modelled
and observed flows (see Section 15.6) and is the (default) link flow as annotated
by program P1X. B y contrast the “ARRIVE FLOW” or “Downstream Flow” as
printed out by the FLOW-DELAY tables and illustrated in Table 17.1 corresponds
to the stop-line flow, YB above.
It is also possible for flows to exit/enter at either the upstream or the downstream
end of simulation links even if they are not explicitly connected to zones. T his
possibility arises with bus routes which may originate/terminate at either end of
simulation links (see 6.9.2). It may also arise, less obviously, with either pre-
loaded or PASSQ flows where the rule “flow in equals flow out” may be violated.
Thus, in effect, all simulation links are potentially bridged by exit/entry links,
although only those with explicit centroid connectors are shown as such on, e.g.,
P1X plots.
Please note that this possible ambiguity ONLY arises with links in the simulation
network that are connected to zones (or where bus routes begin or end) and not
at all to links in the buffer network where there is only one possible definition of
link flow. Note as well that the distinction between “demand” and “actual” flows as
described in Section 17.2 also applies to all the different definitions of flows along
a simulation link.
Note, however, that in order to use this facility node c o-ordinates MUST be
defined (although, strictly speaking, only for those nodes which lie on t he
interpolated path).
Warning: If two successive nodes to be interpolated are some distance from one
another and there are multiple possible routes, interpolation may not necessarily
find your desired route; the solution in this case is to define nodes which are much
nearer together and for which the route to be interpolated is unambiguous.
Currently interpolated routes may be defined within the following programs:
♦ P1X to define bus routes, joy rides and GIS alphanumeric link names.
If the route passes through more than 6 nodes the list of nodes is continued on a
second (or even third) record starting in cols. 16 - 25.
N.B. The strict column formats do not apply if EZBUS = T independent of the
value of DUTCH.
numerical data (i.e., numbers which may include a dec imal place such as free-
flow travel time above) end with a 3 (e.g., 1803). Post 10.7 real arrays may also
end with an 8 (and, eventually, integer arrays with a 9).
A second point to note is that the coded data arrays refer to either: (a), simulation
links; (b), simulation turns; or (c), assignment network links (which include both (a)
and (b) plus all buffer links) so certain DA codes will not be relevant under certain
circumstances.
The main reason for introducing code numbers is to increase flexibility without a
massive increase in programming effort, particularly since certain data arrays are
optional whereas others are mandatory. Thus free-flow travel times are always
defined whereas the link flows for user class 4 may not be.
A full list of the Dirck Access codes used within a particular network (*UFS etc.)
file may be listed interactively using the auxiliary program DALOOK or partial lists
generated by P1X etc. See also Appendix J for a full list. Each array has a short
title associated with it which specifies its contents; these titles are defined in
SATNET either as default text or as read from an ( optional) supplementary file
SATTIT.DAT which also gives very useful general information about how DA
codes are used.
Note that not all DA arrays will necessarily be useful to users, for example the
arrays containing “packed” data will be largely unintelligible (but see 11.10.6).
An explanation of the specific codes relevant to capacities is given in Section
8.9.5 and to times and delays in Section 17.10. See also Appendix J for a full list.
1103803. The effect was similar to having decimal codes such as 3803.0,
3803.1,3803.2 but retained the basic principle of integer codes.
At the moment such codes are used in networks with more than 10 user classes,
in .UFT files to store data from multiple time periods and, in addition, to extend
header records (e.g. 100104 adds extra data to 104) so that old SATURN UF files
have the same array lengths as the latest one (to ensure upwards compatibility).
Cm S m (1 − VM S M )
=
GS M
where Sm is the saturation flow of the minor arm, VM and SM are the flow and
saturation flow of the major arm and G is the gap value.
Hence C goes from a maximum Sm equal to its saturation flow at zero opposing
flows down to zero at VM = SM (or, strictly speaking CAPMIN; see 8.2.3)with a
power defined by G.SMi. In general TRRL models predict a linear relationship
between C and V M so that in order to reproduce this same form in SATURN it is
necessary to set G = 1/VM, i.e., set the gap parameter GAP to the inverse of the
saturation flow of the controlling arm(s).
Very often the GAP values derived in this way seem small, particularly when
interpreted strictly as a gap in traffic that entry traffic would “accept”. For example
if the controlling saturation flow were 3,600 pcu/hr then GAP should be one
second.
It must however be appr eciated that GAP is essentially a par ameter fed into a
model. Such models are only approximations to reality and contain a number of
intrinsic errors (“specification errors”) which, to a certain extent, can be corrected
or counter-balanced by changes to the model parameters. For example, the gap
acceptance model in SATURN assumes random (Poisson) cross traffic (ignoring
for the moment cyclical effects) whereas in reality one knows that traffic tends to
come in surges, the effect of this being that the random model tends to under-
estimate capacity. Empirically, if we accept the TRRL relationships as “correct”,
then the best value to choose for GAP is 1/SM.
We may also note that the standard default value of GAP set by SATURN is 5.0
seconds which is almost certainly on t he high side, causing the SATURN
simulation to under-estimate capacities. T he reasons for choosing 5.0 as a
default in the first place are largely historical and arbitrary. The reasons for not
changing it since are (a) the fact that best values almost certainly vary from one to
another (hence it was made a junction-specific parameter in later versions of
SATURN); and ( b) setting the default to a more reasonable value might
discourage users from deciding on more suitable values.
The same principles apply to the choice of GAPR and GAPM; i.e., that they are
first and foremost model parameters which should be interpreted only loosely as
acceptable gaps. However with priority junctions it is difficult to choose a single
value of GAP which makes the dependence on ALL major flows linear since each
major flow may have a different saturation flow.
select link analysis may not exactly equal those generated by the original
assignment.
However, it also needs to be bor ne in mind, that the “errors” associated with
SAVEIT are just one extra source of “noise” to be added t o the non-convergence
errors from SATALL proper (see 2.1 and 9.5). Essentially the SAVEIT assignment
is an appr oximation to an appr oximation. Therefore, a “ perfect” SAVEIT
assignment is not a guarantee of an “error-free” economic evaluation although it
may help.
♦ The average GEH difference statistic comparing the as-assigned flows and
the SAVEIT flows;
♦ The percentage difference between the total pcu-hrs calculated using the
assigned and SAVEIT flows;
(1) The costs stored are those from the “actual” assignment (see 15.23.3.1);
(2) Times, not costs, are stored under MUC (see 15.23.3.2).
In addition, post release 11.2, the second option is independently controlled by an
alternative parameter UFC111 such that, if UFC111 = T, then times are always
output, not costs, independent of the value of UFC109.
costs as required for secondary analysis. However, for a single user class we
continue to store cost and there is no reduction in size.
Note that the default value of UFC111 is T, meaning that, post 11.2, the option to
output times rather than costs is virtually always invoked for MUC UFC files and
indeed UFC111 should only be set to F for test purposes.
♦ If the original .ufc file did not converge sufficiently well a better level of
convergence may be achieved by increasing NITA_S.
♦ UFS files can be s ent without their .ufc files as the latter can be eas ily re-
created.
♦ By adding an argument UFO to the command line a .UFO file may be created
at the same time as the .UFC file (see 15.23.6 below).
♦ Post 10.8 it also updates the .ufs file to correctly set SAVEIT and/or SAVUFO
to T so that subsequent analysis programs such as P1X will “know” that the
.UFC/.UFO files should exist.
♦ Post 11.1 if the original network were run using OBA then SATUFC will, in
effect, generate a set of O-D paths in a .UFC file which approximate the same
final set of link flows. Thus the (newly created) .UFC file and t he (original)
.UFO file fulfil similar functions in terms of post-assignment analysis, e.g.,
select link analysis, but the .UFC file has the advantage that it may be used in
certain programs such as SATPIG where the .UFO file may not.
♦ Note that if using SATUFC with either a path-based or OBA original solution it
may make sense to copy and rename the original .ufs file so the two sets of
solutions may be used independently.
15.23.6 Alternative Formats for Saving O-D Routes: UFO and UFQ files
The .ufc files described above are relevant to assignments done using the Frank-
Wolfe link-based algorithms (MET = 0). Path-based and origin-based assignments
use their own particular techniques to preserve route flow information and, in
addition, link-based routes may also be pr eserved in an “extended” UFO (OBA)
format.
Thus path-based assignment (see 21.4) stores the exact path data in .UFQ files
while OBA stores the equivalent “splitting factors” in .UFO files (see 22.5.2). In
both cases the information saved is “exact” unlike the link-based .UFC files which
(see 15.23.2 above) may be an approximation based on an extra SAVEIT
assignment.
We note that path-based UFQ files are restricted to single user class assignments
only so that, in terms of practical applications, they are not really relevant and they
are not considered further.
In principle the same forms of analyses (such as those listed in 15.23.1) may be
carried out under all 3 methods, although the precise algorithms used to do s o
may differ. Thus .UFC-based algorithms based on a Frank-Wolfe assignment
recreate each individual O-D path used in the assignment in order to analyse
them as appropriate, path-based algorithms analyse explicitly saved paths in the
same way while UFO-based algorithms use “splitting factors” in a “ single-pass”
per origin without explicitly re-creating O-D paths (see 22.5.2). Note that, in
practice, some of the necessary programming work may not have been done yet
for certain combinations of method and analysis.
If, say, both .UFO and .UFC files are available for a pa rticular network the user
may have the choice as to which to use (for example carrying out a Select Link
Analysis in P1X, 15.19). In such cases the use of .UFO files is generally strongly
recommended as they are considerably faster than using .UFC.
In addition the UFO format used for OBA (22.5.2) may also be adapt ed for use
with link-based Frank Wolfe assignments; essentially the path flows in the UFC
file are converted into the equivalent (or, strictly speaking, nearest equivalent)
acyclic flows which are then stored in a UFO format. See 22.5.3.
UFO files, as explained in Section 22.5, have (at least) one major advantage over
UFC files in that they enable “warm start assignments” to be used under all
possible conditions. In addition the same analysis application may run much faster
with UFO than UFC files (since any analysis of all O-D routes with UFC contains a
loop over the number of iterations N which UFO avoids so that, in principle, it may
be N-times faster).
The downside of creating a . UFO file is that, if the Frank-Wolfe solution is not
particularly well converged and contains many examples of cyclical flows,
eliminating those cyclical flows may lead to a significantly different set of flows
(although arguably they may be nearer to a true Wardrop Equilibrium solution)
which causes more confusion than benefit.
Finally note that .UFO files may equally be converted into equivalent (or virtually
equivalent) .UFC files using SATUFC; see 15.23.5 above above – and that an
alternative form of .UFO file may be c reated based on aggr egated “spider”
networks – see 22,5.3 – which is generally speaking much faster to use for
analysis.
15.23.7 Creating .UFO files (SAVUFO): Batch File Procedures (SATUFO and
SATUFO_MC)
In order to create both a UFO and UFC output file from a (Frank-Wolfe, MET = 0)
run of SATALL it is normally necessary to have both SAVEIT = T and SAVUFO =
T within the original network .dat file. (By contrast OBA always produces a UFO
file as long as SAVEIT = T.) The (approximate) algorithms used to create UFO
files from Frank-Wolfe assignment are described in Section 22.5.3
However, alternatively, .UFO files may be created “after the fact” if SAVUFO is not
T in the initial assignment by either:
1) Running the procedure SATUFC (15.23.5) with an ex tra argument UFO
included in the command line, or
2) Running a procedure “SATUFO net” to create a file net.UFO on the
presumption that the file net.ufc has already been created.
Note that SATUFC and SATUFO are both batch files which call $SATALL.EXE
with particular command line parameters in order to carry out particular functions;
i.e., they are not distinct .exe files.
15.23.8 Final Comments: The Uniqueness of Route Flows and Other Limitations
In applying the various analyses available within SATURN based on specific O-D
routes users must appreciate that all such outputs must be taken with a r ather
large pinch of salt.
Firstly, it must be appreciated that O-D routes are not uniquely specified by
Wardrop Equilibrium (see 7.1.6) and that the routes generated by the Frank-Wolfe
algorithm (plus OBA) are, to a certain extent, arbitrary. Thus, strictly speaking,
Wardrop Equilibrium only identifies those O-D routes that may be assigned
positive flows but not the precise split of traffic between those routes. A simple
example is given in Section 7.1.6 to demonstrate the non-uniqueness of origin or
user class based flows between two parallel routes even when the total link flows
are uniquely specified. The final assigned route flows may simply be due to some
minor artefact of the algorithm used.
From which it follows – and this is the important point - that any outputs from a
route flow analysis such as a Select Link Analysis or skimming, say, distance from
a forest (15.27.6) are also non-unique and, therefore, prone to being arbitrary.
A knock-on impact of skimmed times, distances etc. etc. being non-unique is that
any further analyses based on t hose skimmed matrices becomes non-unique.
This therefore may introduce further problems with economic evaluation packages
such as TUBA or external demand models (VDM) which are not based on
generalised cost matrices generated by SATURN (which are unique); see also
7.8.6.
Secondly, there are potential problems with the “all or nothing” division of O-D
routes into “used” and “non-used”. Thus a “rat run” route which includes a large
proportion of very low capacity links may be al located O-D route flows if it is a
minimum cost route, whereas an alternative route along a series of high-capacity
motorway links may not be us ed at all if its generalised cost is (just) 1 second
above the minimum. Small changes in either the network or trip matrix may
reverse either allocation.
On a more positive note one could argue that, given its sequence of operations,
the Frank-Wolfe algorithm is unlikely to produce a totally unbalanced or extreme
set of O-D route flows. Equally it treats all origins equally and simultaneously and
will not therefore produce route flows which are “biased” by origin. Its outputs
might therefore be charitably described as “plausible” – but never perfect.
The situation, however, becomes worse if we consider not just the OD route
patterns in a single network but any comparison of the route flows in two networks
which differ slightly from one anot her. Here the “noise” generated by the above
two problems may render any comparisons extremely tenuous.
To a certain extent the problems with route flows are simply an inevitable
consequence of the fact that more you disaggregate data the more unreliably it
becomes. There are far more route flows than, say, link flows and the flows per
route are much smaller than the flows per link. These problems are, however,
aggravated by the problems of non-uniqueness and t he lack of an ac ceptable
behavioural model of route choice. What is required, possibly, is an extension to
Wardrop Equilibrium to deal with route choice and which would operate at a far
more disaggregate level than total link flows. This issue is discussed further in the
following section, 15.23.9.
Proportionality requires that, at any node A where there are more than one exit
links that are on m inimum cost paths to another node further downstream, i.e.,
they represent parallel route segments with the same cost, then the proportion of
trips using each segment / exit link must be the same for all origins and/or
destinations. Thus, with reference to the example of two parallel links as
described in Section 7.16, the 50:50 split between the two alternative path
segments must be maintained for all origin and/or destination flows.
Proportionality is thus only a statement of conditions which must hold, it does not
in itself provide an algorithm for achieving such a solution. However there are
certain assignment algorithms which have recently been developed which do
generate proportional solutions but which have not reached the stage of finished
products.
An alternative “principle” for specifying a uni que set of path flows is that of
“entropy maximisation” where we choose a set of path flows Tpij which maximise
the entropy measure (see equation (13.2) in section 13.1.1). To a large extent (as
I understand it) proportionality and ent ropy maximisation generate the same
solutions but there may be pathological situations where they differ. To a certain
extent the differences are academic since algorithms to solve for either are hard to
come by.
15.24.1 Introduction
P1X, SATDB and SATLOOK contain various options (with a l arge degree of
overlap) which allow “trees” or minimum cost paths to be built from an origin to a
selected destination zone or indeed to all destinations. The “cost” used to build a
minimum cost path is defined as a l inear combination of time and di stance (or
distance-related parameters) as follows:
c =a1t + a2 d + ∑ bk d k
values should be selected. These values may also have been user-class specific.
However alternative cost trees may also be i nvestigated; e.g., you may run
SATURN on the basis of minimum time trees but then look at minimum distance
trees.
Distance, KNOBS data and tolls are, by definition, fixed. However time may be
defined in a number of different ways (e.g., with or without penalties added) and
calculated at different points during the programs as elaborated below in 15.24.2,
15.24.3 and 15.24.4.
Note that these discussions refer equally to “time skims” as discussed in 15.27.
used to define minimum cost routes, since it is an integral component of the fixed
link costs)
Equally, any extra travel times associated with specific user classes calculated
using the CLICKS options (15.47) are also included by default. (N.B. CLICKS was
only introduced in 10.6.)
On the other hand there will definitely be occasions when a user wishes to
exclude 44444 penal ties and/or CLICKS in the definition of times. Thus in the
interactive menus used in P1X, SATLOOK and SATDB to define time for tree
building and/or skimming there are “toggle” options to explicitly include or exclude
CLICKS and/or penalties.
In addition the include/exclude default options may be user set using parameters
USETP and C LICKY in the appropriate preferences files (SATLOOK0.dat etc.).
Thus if USETP = T then, if “time” is selected, it will include all 44444 time penalties
(for that user class); similarly if CLICKY = T then times defined according to
CLICKS are used in preference to “normal” times. Both parameters default to T.
In order to do (1) it is essential to have invoked the SAVEIT option during the
assignment (see Section 15.23) and to then select the desired iteration number or
numbers. As long as SUET, KORN and KOB are identical to those values used
during the assignment then the routes SHOULD be identical. (But, N.B., this
reproducibility is a function of how your program has been c ompiled vis a v is
random numbers since there is a choice between using your own
machine-dependent random number generating functions, which are probably
NOT reproducible, and using a SATURN-supplied function which is. If your
programs were supplied as “executables” from Leeds or Atkins, worry not; if they
are home-compiled check.)
Method (2) may be used, for example, to see how large a value SUET can take
before the routes generated using, say, minimum time as the basis, become
unrealistic.
Note as well that forests and arboreta can only be constructed IF the SAVEIT
option is in effect - see Section 15.23.
The problem becomes more acute with quantities such as tolls which are much
more “off or on”. Thus if an O-D pair uses two routes, one of which is tolled and
the other is not, then it is somewhat hit or miss whether the single skimmed route
gives zero toll or the full toll.
Warning! Skimming O-D data from single path trees may therefore produce
unreliable or misleading results. The only quantity which may be s kimmed
absolutely unambiguously from, say, the minimum cost tree is cost itself.
In fact the only arguable advantage to skimming a tree as opposed to skimming a
forest is that it is much faster – only one t ree needs to be bui lt per origin as
opposed to a forest skim where separate trees have to be bui lt for each Frank-
Wolfe iteration; e.g., it may be 50 or 10 times more time consuming.
Cumulative link/node skims may also be obtained for individual links using the tree
building option within SATDB; in this case a distance skim, for example, would be
the summed distance from the origin to the end of a link. Similarly in P1X time
and distance skims are automatically accumulated for O-D trees plotted
continuously there.
♦ construct the skimmed quantity from elements in the base network file;
♦ select a link property which is stored in a SATDB data base column (which in
turn may be read in from an external ascii file) (N.B. This option is only
available when SATLOOK is accessed via P1X and therefore SATDB may
be accessed as well; see 11.11.19);
∑ T S = ∑V S
ij
ij ij
a
a a
where the left hand side of the equation represents the total, say, vehicle-kms
summed over ij pairs and the right hand side r epresents the same quantity
summed over links. Sij and Sa refer to the property being skimmed e.g., distance.
Note that some care needs to be ex ercised in the definition of Va in the above
equation since it must be: ( 1) the link flows from the trip matrix itself (e.g.,
excluding any fixed link flows); and (2) demand as opposed to actual flows. We
return to this point in the following section.
We may also note that forest and tree skims will give identical results for O-D pairs
where the assignment has only generated a single route. Typically this occurs for
very near O-D pairs or for very uncongested sections of the network.
For further information on SAVEIT and forests please refer to sections 15.23 and
15.26.
We also note one additional caveat with forest skims which is that, since the path
flows generated by a Wardrop Equilibrium assignment are not, strictly speaking,
unique (see 7.1.6), neither are skims taken over those paths (see 15.23.8). The
example given in 7.1.6 as to which origin(s) pay tolls illustrates the problem –
although, in practice, the problem is much more likely to be that the model shows
the two origins paying tolls in slightly different proportions rather than the extreme
“all or nothing” case where one origin pays tolls and a second does not. Note (7)
in 15.27.6 discusses this issue further.
∑ T S = ∑V S
ij
ij ij
a
a a
where the left hand side of the equation represents the total, say, vehicle-kms
summed over ij pairs and the right hand side r epresents the same quantity
summed over links (and displayed in output tables such as Table 17.3 as
described in Section 17.9).
Firstly, such an equality never holds if the flows Va correspond to actual link flows
and the summation corresponds to, say, total pcu-kms within “this time period”
(see Table 17.3). In particular, there is no such thing as an “actual” trip matrix for
use on the left-hand side, only a demand matrix.
Secondly, if the matrix Sij has been s kimmed from a ( single path) tree then the
equality will not hold in general (unless, most unlikely, all O-D trips have been
assigned to single, not multiple, paths).
The equality may hold if: (a) Tij is a demand matrix; (b) Sij has been skimmed from
a forest and (c) the link summation includes both this and the following time
periods (the “Totals” column in Table 17.3).
However, even these conditions may not be sufficient to guarantee exact equality.
For example, if the link flows Va are obtained from the “true” model run and t he
skimmed matrix is based on a forest obtained using an appr oximate SAVEIT
assignment (15.23.2) then the equality will only be approximate, limited by the
lack of perfect convergence within both the true and t he SAVEIT assignment.
More specifically, if S represents time then the parameter AFTERS must equal
0.5; see 17.6.2.
Conditions becoming slightly easier if the quantity S refers to the “generalised
cost” used by the assignment as opposed to a particular component such as time
or distance (or if, say, the assignment is based on pure time). In this situation the
skim matrix Sij is effectively the same whether it is obtained as a minimum cost
matrix or as a forest skim to the extent that under perfect Wardrop Equilibrium all
used paths have equal and minimum cost. Clearly if the convergence is not
perfect then the equality will be only an approximation.
general, reproduce the same routes and the same link flows as generated by
the assignment proper; they are only an appr oximation. The differences are
reduced by better convergence (i.e., increased values of NITA_S) which leads
to more accurate skims but it also means more cpu time. Compromises may
be required.
(N.B. These problems do not arise if the skimmed forests are based on the
actual assignment routes as opposed to an extra SAVEIT assignment; e.g., if
UFC109 = T; see 15.23.3.1)
7) Since the precise route flows generated under Wardrop Equilibrium are not
unique (see 7.1.6 and 15.23.8) neither are the average (forest-weighted) O-D
times, distances etc. cost components which are skimmed from them, even if
convergence were perfect. In addition the average OD speed matrix obtained
by dividing average distance by average time would not be unique either. This
may have implications for the convergence of linked supply and demand
models (7.8.6) or for economic evaluation models where the
demand/evaluation model is based on a different definition of generalised
cost from the assignment model and therefore requires separate skims of
time, distance, etc. The problem is most acute if a hi gh degree of
convergence is required. It may also have implications for economic
evaluation models when applied to relatively small schemes when any source
of “noise” in time and distance etc. matrices is a problem.
8) The problems of non-uniqueness may be further aggravated by the presence
of “residual path flows” in the solution used which may make skimmed
quantities considerably more unreliable than, say, flows. See 15.57.
9) The problems of non-uniqueness for time and/or distance skims may be
particularly evident when comparing skims from two different schemes where,
for example, there may be large differences in individual O-D times or
distances when none might be otherwise expected. These differences may be
due to network 1 using an arbitrarily different set of OD routes from network 2
and, if there is a large degree of variability between the times/distances on the
alternative routes (even though they may have identical generalised costs),
then there will equally be a hi gh degree of variability in the time/distance
skims.
10) The degree of variability may also depend on the relative cost “weights” (i.e.,
PPM and PPK) assigned to time and distance. Thus if PPK were near zero,
implying that distance is not very important in choosing minimum cost routes,
and an O-D pair is assigned to two routes, one with short distance and one
with long, then the skimmed distance could be any where between the
minimum and maximum distances depending on the essentially arbitrary split
between the two routes. On the other hand, the time skims in this situation
would be far more stable since time would be effectively equal to cost and the
costs on the two alternative routes would be equal. Conversely if PPM is small
then distance skims will be s table and time skims more variable. Note,
therefore, that different user classes which have different values of PPM and
PPK may well behave differently.
11) For assignments based on Frank-Wolfe (as opposed to OBA) calculating a
minimum cost matrix requires one tree build operation per origin; skimming
an average matrix from a forest requires one tree build operation per origin
per assignment iteration. Hence it may require 25, 50, 100, etc. times more
cpu time depending on the value of NITA_S. For large networks this time may
be significant. (Note that this does not apply to OBA since skimming under
OBA requires only a single pass; see 22.5.6)
♦ SATC_MAR skims marginal costs (but only from networks which were
assigned under system optimal conditions; see 7.11.9).
♦ SKIMTIME skims averaged o-d times (in seconds) from a forest as described
in 15.27.3.
♦ SKIMTOLL skims averaged o-d tolls (in pence; see Section 20.3) from a
forest.
♦ SKIMPEN skims averaged o-d time penalties (in seconds) as defined within
the 44444 data records from a forest.
♦ SATTUBA skims time, distance and/or tolls directly to a series of ascii files in
various TUBA formats; see Section 15.41 for further details
For further details on file format conventions etc. please type the names above.
Note also that routines SKIMTIME to SATTUBA as listed above may all take
advantage of multiple processors if available; see 15.53.3.2.
15.27.7.3 Command Line Over-rides for, e.g., the use of .UFO files
The command lines associated with procedures such as SKIMDIST, SKIMTIME
etc. etc. may also be u sed to “over-ride” certain default skimming options. For
example, the choice of whether or not to use a Spider Web network
representation rather than the normal network (assuming, of course, that the
SPIDER network has been created in the first place) is normally controlled by a
parameter USESPI described above and which may be set in the preferences file
(e.g., SATLOOK0.DAT). However, rather than changing the value of USESPI in
the preferences file, the choice may be made by including the “token” USESPI on
the command line. Hence:
SKIMDIST net matrix USESPI
Requests a distance skim on net.ufs with skimmed output to matrix.ufm but with
the parameter USESPI definitely set to .TRUE. independent of its default value
and/or any value set in the preferences file SATLOOK0.DAT.
Similarly the command:
SKIMDIST net matrix USEUFO
Requests the use of a .UFO file for skimming rather than a .UFC file (again
assuming, of course, that both .UFO and .UFC files are available). In this case the
default choice is set by USEUFO as defined within the network .dat file.
Other command line “tokens” include:
21000 200000
N3 ‘Standard’ 2000+ (8250)
(No change) (No change)
N3 ‘Inter’
21000 700000 2750+
(pre 11.2)
N3 ‘Large’
21000 700000 5750+
(pre 11.2)
X7 Bespoke
Note: ‘+’ the maximum number of zones is 8,250 and it is available upon request.
(N.B. there is a risk that some of the Multi-Core versions of the existing
applications may not be available in the larger sizes).
Other dimensions, such as the number of simulation links or turns, are equally
restricted but with ratios chosen such that if the above limits are satisfied then so
should the others. Beyond Level ‘K’, the number of zones available is artificially
capped at 2000 i n the standard release version to reduce excessive memory
requirements. These versions with the larger zone dimensions are available for
free to the existing Level holders. For Level ‘N3’, a s et of larger zone versions
was created to accommodate the suite of sub-regional models developed by
Transport for London with various bespoke configurations to accommodate their
increasing size over time. P ost 11.1, the internal array dimensions were
restructured to provide a new N4 to meet all the anticipated requirements but
within a smaller RAM footprint. Therefore, there may be some issues of backward
compatibility for very large networks using SPIDER Network Aggregation.
The values of the above dimensions for a pa rticular set of executables may be
established via Help/About in the P1X menu bar or the full set is contained in the
.lpn output files from SATNET.
Note that one particular array dimension, that controlling the maximum size of a
trip matrix within SATALL, may be ef fectively increased in size by the judicious
use of a parameter SPARSE; see 7.11.12.
Further details on the financial implications of upgrading your existing version are
may be found on the website (www.saturnsoftware.co.uk).
For network data files comment cards are particularly useful for, e.g., identifying
specific nodes, inserting comments when changes are made (impresses the QA
boyos!) or for “editing out” previous coding.
In practice the convention may not be 100% fool-proof as the new rule has meant
changing every single “read” statement to check for the ‘*’; almost certainly some
will have been overlooked. It should be fairly obvious when this happens - most
likely the program will crash - so the obvious solution is: (a) remove the comment
card, and (b) politely alert your friendly SATURN agent.
The same convention applies to other input ASCII files - in particular, .key files
may have comment lines inserted as may the standard graphics system file
“graf.dat”.
Blank lines in input data files are, generally speaking, handled in the same way as
comment cards, i.e., if read they are ignored and the next record read in its place.
If, on the other hand, they are allowed as input numerical records (see below) they
are interpreted by FORTRAN as a string of zeros.
Their (intentional) use is not recommended at all, in particular since there are
exceptions to the above rule. For example, numerical KNOB data contained on
extra lines in network .dat files may legitimately contain all zero entries and be
correctly represented by a blank line (15.14.5). Equally key files and GRAF.DAT
may contain all-blank records. There may be ot her examples but we haven’t
thought of them yet!
Prior to 10.5 blank lines were not explicitly detected and c ould give rise to fatal
errors, e.g., if they were meant to contain node numbers.
The original file must therefore also contain a ‘99999’ record in the normal way to
indicate the end of a data section.
The facility is available within SATNET to read any of sections 1 through 8 in the
network input data files. It is being gradually extended to other programs and/or
files (e.g., counts in SATPIJA, see 13.2.1) and may also be used within Namelist
inputs; see Appendix A.
It may also, post 10.9 be “subscripted” so as to apply to a particular time period
under multiple time period modelling (PASSQ; see 17.4.4) in SATNET. For
example:
$INCLUDE(1) bus1.dat
$INCLUDE(2) bus2.dat
in a network .dat file would indicate that two different sets of bus routes were to be
included in the first and second time periods. See Appendix B.
An example of a network .dat file which makes extensive use of sub-files is given
below:
.....
44444
$INCLUDE 444.DAT
99999
55555
$INCLUDE XY.DAT
99999
66666
$INCLUDE BUS.DAT
99999
77777
$INCLUDE COUNTS.DAT
99999
77777
45 53 52 826 60
32 33 1500 70
* COMMENT
33 34 1600 80
7 8 800 90
99999
77777
$INCLUDE COUNTS3.DAT
99999
There are many possible benefits from using sub-files. For example if you have a
large number of networks in a c ertain study, all of which have the same co-
ordinates, it is much simpler to update a single .xy file than to update every single
network file when you wish to make changes. Clearly the resulting .dat files use
less disk space as well.
Sub-files may also be c reated and/or extended interactively using P1X; see
Section 11.9.2.6 and 11.9.2.7.
15.31.1 Background
A common problem in setting up future-year SATURN networks is to determine
appropriate signal setting parameters. The same problem does not arise with
current networks since, in theory at least, the settings may be observed. However
the easy solution of carrying present day settings forward into the future is clearly
fraught with errors since there is no guarantee that “good” settings for today’s
traffic levels will still be “good” in the future. T he same problem also occurs in
present-day networks when network changes are tested.
The two main parameters of concern here are stage green times and offsets.
Cycle times generally have a s maller influence and any way can be s et as a
universal parameter LCY; inter-green times are generally fixed by reasons of
safety etc. The question of setting optimum offsets is discussed in Section 12.2
with respect to SATOFF.
However the problem of determining optimum stage green times is considerably
more complex than that of optimising offsets due to the potentially highly sensitive
feedback between stage times (which affect capacities) and flows. Basically if
one sets optimum green times for a pat tern of flow which is in Wardrop
Equilibrium given the “old” green times, those flows will no longer be in equilibrium
since those routes which have been allocated more green times will have become
faster. We must therefore reassign in order to take account of the latest green
times. However this will tend to put more flow down those links that were given
extra green time and therefore, if we re-optimise the green time in accordance
with the new flows, the more heavily loaded links will tend to be assigned more
green time. A nd more green time tends to mean more flow -a vicious circle is
thereby established.
Considerable research work has gone into the investigation of the “Iterative
Optimal Approach” whereby a loop is established between Wardrop assignment
and signal optimisation using a number of different signal control policies as given
in section 15.31.3. Interested readers are referred to the classic tome on the
subject “Route Choice and Signal Control”, Avebury Press, by Tom van Vuren and
Dirck Van Vliet. Under certain circumstances this approach can lead to
considerable reductions in total travel time, eg up to 20% compared to the initial
(and therefore potentially arbitrary) settings in the base network. H owever a
closer examination of the process shows that this is often obtained via a process
in which flows and green times move in small steps in consistent directions with
the process only terminating once the stage times reach their minimum values.
Such solutions are also characterised by near “all-or-nothing” flow patterns
whereby very high flow rates with corresponding near maximum green rates occur
on certain well-defined corridors whereas parallel routes are virtually unused.
These solutions argue: (a) a l arge degree of co-operation between drivers and
signal setters and ( b) that drivers can detect and react correctly to very small
shifts in green times.
It is therefore our belief that such solutions are not entirely realistic and may
actually over-estimate the level of performance of a network. Therefore the use of
an optimal iterative strategy must be v iewed with extreme caution. S ee also
15.31.4.
On the other hand some reaction of signals to altered flow is clearly necessary.
Perhaps a g ood compromise for future year networks is to first set signals using
“engineering judgement”, carry out one full assignment followed by a stage time
optimisation and one more assignment (where by “assignment” in this case we
refer to a full run of SATURN with assignment/simulation loops internally).
If the improvements in total network travel time are significant, this procedure
could be repeated, always bearing in mind the possibility of producing unrealistic
flow and green time patterns and even deterioration of overall travel times.
There is another possible need for a fully automated approach; this is the case
where a network is not yet in existence, and initial green times can be determined
to impose a p referred flow pattern on traffic. The traffic engineer then has the
freedom to pursue the iterative loop until the signal settings are found that lead to
the lowest network travel times.
Having re-assigned and re-simulated via SATALL the option of course exists to
loop back through P1X in order to re-optimise the signals - subject to the caveats
expressed in Section 15.31.1.
The optimisation process may also be carried out at selected nodes only
(11.9.13.2).
Alternatively, a new “batch procedure” SIGOPT has been i ntroduced in Release
10.8.16 to optimise stage times and/or offsets and which effectively supersedes
both SATED/P1X in terms of stage times and SATOFF in terms of offsets -
described in detail in 15.31.6. Thus, in the above diagram, substitute SIGOPT for
SATED/P1X.
The same note of caution should also be applied to the use of SATOFF = T within
SATALL. In particular, since the optimum offsets are most sensitive to link cruise
times which are (generally) fixed as opposed to turning delays which may vary
considerably with iterations of SATALL, the optimum offsets per node may only
change once within SATALL and the same result could be obtained by using the
program SATOFF on its own. Using SATOFF = T on its own within SATALL with
SIGOPT = F has even less to recommend it.
N.B. Optimising stage times (in particular) and/or offsets may lead to significant
improvements in the overall convergence of the assignment-simulation loops. See
Section 9.1.5.
15.31.4.1 NIPS
On the other hand, using the parameter NIPS to limit the number of times the
signal and/or offset optimisation within SATALL is called is strongly
recommended. See 9.12.2. A value of 2 or 3 is recommended.
Fildat (optional) specifies the name of an output (.dat) file containing the revised
network .dat file. Fildat may equally be specified as a Namelist parameter within
control.dat.
Note that if the input network file net.dat references $INCLUDE files within the
11111 records then the output file fildat copies these files directly into the new
11111 records; the $INCLUDE files may be recreated – and potentially renamed –
using text editing cut’n’paste. See 11.9.2.1.
The filenames for a new .ufs file and – optionally - a new .dat file must be explicitly
set within control.dat but that a file net.rgs is always output with its filename fixed
by the input network net.ufs.
PARAMETER TYPE DEFAULT FUNCTION NAME
SIGOPT LOGICAL .TRUE. If .TRUE. optimise green times
SATOFF LOGICAL .FALSE. If .TRUE. an offset optimisation is
carried out prior to green time optimisation
SELECT LOGICAL .FALSE. If .TRUE. read a set of selected
nodes from this file immediately after &END
RESIM LOGICAL .FALSE. If .TRUE. a complete simulation
is carried out prior to the output of .ufs file
MYTVV INTEGER 1 Stage time Optimisation
algorithm – See 15.31.3
NOPMAX INTEGER 1 Maximum number of internal
iterations used by the signal setting routines; see 15.31.3
MANOFF INTEGER 0 The signalised simulation node
number used as the reference point for all optimum offset set by SATOFF. See 12.2.3.
where:
f = fuel consumption in litres
d = total travel distance in vehicle-kilometres
t = total delayed (idling) vehicle-hours
s1 = total number of ‘primary’ or ‘full’ stops at an intersection; e.g. where a vehicle
arrives at the end of a queue
s2 = total number of ‘secondary’ stops; e.g. stop-starts while a vehicle moves up
in a queue
and the “weighting” parameters FLPK etc. have been assigned default values as
follows:
FLPK = 0.07
FLPH = 1.2
FLPPS = 0.016
FLPSS = 0.005
These parameters were all chosen as appropriate figures for an ‘average’ British
car in 1981. More details may be found in Ferreira. (“The role of comprehensive
traffic management in energy conservation”, PTRC Summer Annual Meeting, July
1981).
Clearly these figures are now out-of-date and take no ac count, for example, of
the breakdown of the flow into various vehicle types. The parameters may be
user-set as standard namelist parameters within SATNET.
where:
d is link distance
tc is average cruise travel time on the link
tq is the time spent “idling” in queues at junctions
s1 is number of primary stops per vehicle
s2 is number of secondary stops per vehicle
V is the vehicle flow
ai1, ai2... are (user-set) coefficients.
Carbon dioxide parameters are extracted from the fuel consumption parameters
on the assumption that “most fuel” is converted into carbon dioxide.
Parameter values may be reset by users using the namelist inputs to SATNET
within a net work .dat file. S ee Section 6.3.3; all parameters are “reals”. Their
names are constructed using the following conventions:
♦ All names commence with the characters CO, CO2, XNO, HC or PB.
♦ The final characters are K (for kilometre), CH (for cruise hour), IH (for idling
hour), PS (for primary stop) or SS (for secondary stop).
Thus HCPCH is the variable denoting hydrocarbons emitted (units of grams) per
hour cruise time per pcu.
the stop line (if there is no queue) or behind the last vehicle in the queue; that is a
primary stop. If there is a queue and vehicles depart from the head of the queue
one at a t ime then vehicles further back will move up by accelerating and t hen
decelerating to a stationary position; these are secondary stops.
Clearly this two-way split does not exactly represent all possible vehicle
movements in a queue but it may well be s ufficiently good for estimating
secondary parameters such as fuel consumption or emissions and for providing a
very broad description of the state of a junction.
The rules for estimating primary and s econdary stops are, like their definitions,
somewhat arbitrary. Thus for minor arms at priority junctions all arriving traffic
must make a pr imary stop if its turn is over capacity or if the queue per lane is
greater than 2. If the queue per lane is (in the limit) zero the probability of a
primary stop is equal to the calculated probability of there being no gap. Fo r
queues per lane between 0 and 2 pcu’s a linear relationship is assumed.
Secondary stops are calculated by assuming that all primary stops make a further
number of secondary stops equal to the queue length per lane divided by the
number of vehicles that can depart from the stop line “in a pl atoon” once a gap
occurs (assumed equal to one over the probability of a gap).
Roundabouts are treated in the same way as minor priority arms.
For major priority arms secondary stops are ignored and a pr imary stop only
occurs if the arm is over capacity or if, at the moment of arrival, the expected
queue length per lane is greater than 1.
At signals all arrivals primary stop during a red phase or, during the green phase,
if the expected queue is non-zero. Secondary stops occur whenever the lights go
red to all vehicles in the queue at that instant.
In principle the change of format facility could be appl ied almost anywhere: in
practice it has only been programmed in a v ery few places, including the buffer
network inputs illustrated above. In this case it has been done to make the data
generated under the SATBUF conversion procedure (see 15.8.2) accessible to
SATNET. Further extensions are planned.
The advantages of being able to change formats are mostly associated with the
ability to import data from other suites of programs with formats which do not
coincide with those of SATURN. Another example of the same basic principle is
the parameter XYFORM used by SATNET; see 6.3.4.
It should also be stressed that very often data may be read in a variety of forms,
provided that it appears within the column boundaries set, and that therefore the
formats specified within the Manual may not need to be absolutely strictly adhered
to. For example, the format specified in order to read in the “power” for a buffer
link speed flow is specified in Section 6.6 as FORMAT F5.1, implying that a single
digit appears after the decimal point and t hat the decimal place must appear in
column 39. In practice, since FORTRAN compilers are “forgiving” in terms of input
formats, the decimal point may appear in any column with any number of digits
following provided that the whole input appears in columns 36-40. Thus inputs of ‘
3’, ‘ 3.0’, ‘3.123’ will all be correctly read.
In addition, certain inputs which are specified as Integers, e.g., link times and/or
speeds with buffer link records, may generally have decimal places included,
again with the proviso that the full input appears within the strict column limits.
stored in DA array 943. These are then added to the assigned flows in 4953
which therefore contains total pcu flows.
2) The same treatment is not applied to pre-loaded flows (but see note 4
below).
3) In multiple-user-class assignment all user classes are combined together in
array 4953.
4) Since, as explained in 15.23, the routes re-calculated via SAVEIT may be
only an approximation to the true routes used in the assignment (due to the
effects of DIDDLE or KOMBI for example) the turning flows are “furnessed”
so that the total exit and ent ry flows on eac h arm correspond exactly to
those assigned. This procedure would also account for any “missing” turn
flows due to pre-loaded flows.
to restrict bus lanes to certain “companies” or to require that only trams may use
offside lanes.
N.B. The above rules were only added in release 11.1. Prior to that all bus
flows were assigned to a bus lane if one were available.
15.40.1 Introduction
Weaving segments on m otorways correspond to the situation depicted in the
diagram below (Figure 15.4) whereby an entrance ramp onto a motorway is
followed by an exit ramp downstream such that traffic entering the motorway and
staying on it (Flow 2) will need to “weave” with traffic which is already on the
motorway but wishes to take the next exit (Flow 3). This will lead to a reduction in
the capacity of the middle segment of the motorway if the fraction of traffic which
weaves is high and/or the distance between entry and exit is relatively short.
Figure 15.4 - Fig 2/7 from DMRB Vol. 6, Sect 2, part 1
In these situations SATURN uses formulae derived from DMRB (Design Manual
for Roads and Bridges) recommendations to reduce the saturation flow (and
hence the capacity) of the link (or links) comprising the intermediate segment.
N.B. The treatment below only applies to links coded as part of the simulation
network, not buffer. In addition it need not apply only to “motorways” (SATURN
normally does not know whether a link is motorway or not), although in practice
the required geometry of entries and exits is most likely to occur with motorways.
In addition it may not be used if the assignment is based on ei ther path-based
assignment, OBA or multi-core. In principle it could but it hasn’t been coded;
requests to DVV.
1
Lmin
=
N r Qnw + Qw1 + Qw 2 2 + 1
D Lact
Where:
Nr = Number of traffic lanes required
Qnw = Total non-weaving flow in vph
Qw1 = Major weaving flow in vph
Qw2 = Minor weaving flow in vph
(where Lact is assumed to be greater than Lmin and, if not, take Lmin = Lact such
that the factor within the bracket multiplying Qw2 = 3.)
In SATURN we need t o “invert” this equation since the actual number of lanes
provided Na is already specified by the SATURN input along with its “natural”
saturation flow (which determines capacity) and what we need to know is how
much the saturation flow/capacity is reduced by the effect of weaving.
Thus we begin by factoring all the flows Q in Equation 15.2 by a uniform factor F
such that the required number of lanes given by Equation 15.2 equals the number
of actual lanes Na ( i.e., F.Q… are the flows at capacity) :
Equation 15.4
F ( Qnw + Qw1 + X f Qw 2 ) =
Na S
Where:
F = required factor
S = the saturation flow per lane as input by the user and ignoring any effect of
weaving (replacing D in Equation 15.2)
Xf = the extra weight associated with the minor weaving flow (= 2Lmin/Lact + 1)
Furthermore at capacity the total unweighted flow should also equal the actual
number of lanes times the effective saturation flow Se:
Equation 15.5
F ( Qnw + Qw1 + Qw 2 ) =
N a Se
S
F = Na
Qw
Qw 2 F ( X f −=
1) N a ( S − Se )
whence:
Equation 15.8
Qw 2 F ( X f − 1)
Se= S −
Na
Qw 2 ( X f − 1)
=
Se S 1 −
Qw
Se Qw 2 ( X f − 1)
=
W = 1.0 −
S Qw
Q
W=
Qw
Equation 15.11
Lmin
C = 2.0
Lmax
L L
X f ( L )= 1.0 + 2.0 min − min Lmin < L < Lmax
L Lmax
1.0 L > Lmax
user decide. And if the user has an al ternative approach it should not be too
difficult to include alternative formulae within the programs.
Thus the “on” or “upstream” node will (normally) be a 3-arm priority junction with 2
one-way in-bound links feeding a s ingle one-way out-bound link; i.e., in-bound
motorway and i n-bound ramp feeding the out-bound motorway. In more precise
geometric terms there must be only one permitted turn from the entry ramp link -
the first geometrically possible turn - and only one per mitted turn from the
“motorway” - the second geometrically possible turn - so that both have the same
exit arm. Thus one cannot have an exit from the motorway onto the ramp arm -
entry and exit ramps must therefore be defined at distinct nodes.
Equally the “off” or “downstream” node will also be a 3-arm priority junction with
one one-way in-bound arm feeding two outbound one-way arms. The ent ry
(motorway) arm must have both its two possible turns defined - the first to the off
ramp, the second continuing along the motorway and t he off ramp link must be
one-way out-bound.
In practice both the on and off nodes will be 3 -arm priority nodes as described
above. However, strictly speaking, the nodes may have more than 3 arms as long
as the extra arms and t urns do not interfere with the required geometry. For
example the nodes could include both the entry and exit ramps on either side of a
motorway with the two motorway arms being two-way but the turns on one side of
the motorway could not cross those on the other side. In general such coding is
not recommended, particularly if weaving is being modelled: each direction of the
motorway should contain distinct nodes and links.
If there are one or more intermediate nodes such as nodes 11 and 19 in Figure
15.5, then each should be essentially a two-arm priority with a single one-way exit
feeding a single one-way exit. (Such nodes might be added i n order to provide
“shape” to the network although, it should be not ed, the “shape” may also be
obtained via a GIS file; see 5.7).
8.2.1. Note that the reduction factor is equally applied to all turns at intermediate
nodes (if any) between the entry and exit nodes.
Note that the weaving reduction is applied in addition to any other capacity-
reducing effects such as give-ways or blocking back.
♦ STUART - If .True. use Stuart’s formula (Equation 15.11); else use (Equation
15.12)
Note that the first two parameters are “reals” while the latter two are “logicals”. The
default values are, respectively, 300 metres, 2000 metres, False and True. Thus if
the weaving section were 300 m etres or less the maximum reduction would be
applied to saturation flows; if it were more than 2000 metres than no reduction
would apply.
15.40.6 Restrictions
The weaving calculations may not yet be applied to all possible situations within
SATURN. Thus it will not work with stochastic assignment (SUZIE = T). It should,
however, still function with, e.g., elastic assignment or multiple user classes (I
Think!).
15.41 SATTUBA
15.41.1 Objectives
SATTUBA is a pr ocedure embedded within SATLOOK which enables a set of
skimmed cost matrix files to be calculated from a .ufs network file and output in a
text format which is compatible with the economic appraisal program TUBA.
More specifically TUBA requires as input a s et of matrices giving for each O-D
pair:
♦ distance;
♦ time; and
♦ (monetary) charges.
These matrices may be further disaggregated by, e.g., user class, time period, trip
purpose etc.
Distance, time and/or charge matrices all need to be path-weighted averages, i.e.,
the travel time averaged over the paths used by each O-D pair as opposed to
being, say, the time component along a single minimum generalised cost path or
even the time along the minimum time path. In SATURN terminology TUBA
requires skimmed matrices as opposed to cost matrices; see Section 15.27.4.
Hence SATTUBA requires that the network is set up w ith SAVEIT = T and the
skims are based on forests, not trees.
We note that, as explained in 15.23.2 and 15.27.5, the forest path flows generated
by SAVEIT are not necessarily exactly equal to the path flows generated during
the “true” assignment. Thus quantities such as total pcu-hours, pcu-kms etc.
calculated using the skimmed and demand trip matrices – which is, effectively,
what Tuba seeks to do – are only approximations. See 15.23.2 for a discussion of
how these approximations may be improved.
We further note that, quite apart from numerical uncertainties arising from the
method of calculation and/or convergence, there are further theoretical problems
in that, in principle, Wardrop Equilibrium does not yield unique values of O-D time,
distance or toll. On the other hand it does yield unique values of OD generalised
cost. See below and sections 7.1.6, 7.8.6 and 15.23.8 for further discussion.
In a wider context it also has to be remembered that the “accuracy” of a skimmed
matrix is also affected by the overall convergence of the full model run, not just the
SAVEIT accuracy. Counter-intuitive results from economic evaluation techniques
such as Tuba or COBA may be s imply a c onsequence of poor convergence in
either or both the do-nothing and do-something model runs.
Note that the trip matrix necessary as an input to tuba may be “dumped” from MX
using the standard option to dump a matrix as comma-separated (CSV) output;
see 10.15.
N.B. The problem noted above with respect to the uniqueness of the sub-
components of generalised cost (i.e., time, distance etc.) is potentially a problem
for all economic evaluation procedures. There is therefore a very strong case for
basing economic evaluation on the generalised cost as used in the traffic
assignment model which has the advantage of being uniquely determined
(although there are still problems of convergence accuracy) as opposed to relying
on sub-components such as O-D time and distance which are not unique.
net_t.txt
net_m.txt
where the first matrix contains distances, the second contains times and the third
contains toll charges (if any exist).
Units are the defaults as specified by TUBA: distance is in kilometres, time is in
hours and tolls are in pence. The format used is Tuba “Format 1” - see Appendix
C of the Tuba User Manual for more details. (Essentially this outputs all O-d cells,
one record per origin, in comma-separated format. If required options to input
under formats 2 or 3 could be provided.)
♦ USETP (Logical): If .TRUE. 44444 time penalties are included within the
skimmed times (See 15.24.4); Default T
15.42 SATCOBA
SATCOBA is a procedure embedded within SATDB which enables a sub-network
of links to be de fined which is compatible with that required by the economic
assessment program COBA and, in addition, to output a text file which specifies
the network and includes flow data and selected link data as required by COBA in
the formats required by COBA.
In addition, since COBA flows would normally be the weighted sum of flows from,
say, an AM, off-peak and PM network SATCOBA accepts as input one or more
“networks” (i.e., time periods) and outputs a single flow which is the weighted sum
of each individual network flow. (It is assumed that all networks have the same
“topology”.) Alternatively, if the parameter SUMNET = F (15.42.2), each network
flow is output separately
Next SATCOBA generates a ( partial) data set which contains certain fixed data
such as the link distances. The full COBA input file requires further information
such as lit/unlit which is not available from within a SATURN network file on i ts
own.
Finally SATCOBA generates a set of turning proportions at each (internal)
simulation junction (the “turning matrix” in COBA terminology) with a directionality
flow factor for 2-way roads.
Thus the output from SATCOBA is a text file (extension .cba) which contains four
sections:
FILKNB Character Blank The input file used to define COBA link numbers ;
see 15.42.3
FILNOD Character Blank The input file used to define node numbers; see
15.42.6
Notes:
1) NAMES will default to F, i.e., sequential numbers, if the standard SATURN
node names exceed 4 di gits since 4 di gits is the maximum permitted within
COBA format
2) MUC = T will only work if (a) only one network is being processed and (b) if
the number of user classes is less than or equal to 3 in that network. If not, it
is automatically replaced by F. Note that the limit of 3 is due to a limit imposed
by COBA in its KEY056 record formats.
3) Similarly MVC = T will only work if (a) only one network is being processed
and (b) if the number of vehicle classes is less than or equal to 3. Vehicle
class flows are obtained by summing over their constituent user class flows.
(Clearly both MUC and MVC cannot be T at the same time.)
4) Post 10.9 user and/or vehicle class flows may be output as either PCU/hr or
vph depending on whether parameter PCUS = T or F.
To use a file, say net_base.cln, within another network, net_ds.ufs, you must first
create a “control file” coba_ctl.dat which might contain:
&PARAM
KNOB = 1
KNBFIL = ‘net_base.cln’
&END
and then run SATCOBA via:
SATCOBA net_ds KR coba_ctl
The output COBA file net_ds.cba would then contain, inter alia, flows on al l the
links contained in net_base.cln using the same link number conventions. N ote
that links which are in net_ds but not in net_base.cln would not appear in the .cba
file. However they are listed in the output .lpd file in order to help the user decide
whether to include them somewhere else within the coba file. Equally links which
are in net_base.cln but not in net_ds would not appear in the output .cba file.
Thus the only function of the .cln file is to supply link numbers, not network
structure.
map sequential numbers may be viewed within the SATDB node data base as
accessed within P1X by selecting the appropriate entry from the list of node
attributes.
Sequential numbers are selected within SATCOBA by setting NAMES = F in the
control file (15.42.2) or, alternatively, it will be done automatically if the maximum
node number exceeds 9999.
The second system uses an explicit input file to convert SATURN node numbers
into a more compressed system – which could indeed be bas ed on pure
sequential numbers as above but any arbitrary conversion system may be used.
To select this option (a) set NAMES = F as above but (b) define the conversion file
filename as FILNOD within the control file (15.42.2).
The conversion file consists of a series of records, one per “real” node (i.e., zones
are not included as they do not appear in COBA outputs), each of which contains:
(a) a (real) node name (which may exceed 5 digits) and (b) its equivalent output
number (4 digits or less). All COBA node number outputs are automatically
converted to the new system.
The main advantage of the second system is that it may applied to any number of
different networks, for example a do-minimum and a do-something network, which
have (some) different node numbers and therefore different sequential numbers.
In particular a new option in P1X (see 11.4.2) allows for a file to be c reated
containing the names and sequential number based on a “union” of all nodes.
If your network has more than 9999 sequential map numbers it cannot be used by
COBA in its current form and you’re in deep doodah! Try a cordon maybe?
Within this particular context bitmap files must be of either “.bmp” or “pcx” format,
as opposed to, e.g., .jpg, .gif, etc.formats (although .jpg is allowed as output; see
11.3.6). However other graphical formats may almost certainly be converted into a
.bmp format by making use of standard software such as Paint.
Where or how the bitmap file is obtained is not strictly relevant; it might be
downloaded from, e.g., OS sources, scanned from a r oad map, dumped from a
GIS software package or even output from a di fferent run of P1X for a different
network. The important thing is that it be in .bmp format and, equally important,
that the “area” which it covers be identifiable.
Thus in order for P1X to draw a bitmap background within the windowed area
covered by a network plot it is necessary to know (a) the precise area covered by
the network window and (b) the full area covered by the .bmp file, in effect the co-
ordinates of its 4 corners, so that the degree of overlap between the two may be
ascertained. This may not sound too difficult, indeed most of the time it isn’t; the
tricky thing is being able to obtain the co-ordinates of the bitmap and of the
network within the same reference system. (Note that it is the network “window”
which “controls” the region plotted and that the bitmap must be manipulated to fit
onto the area chosen by the P1X network window rather than the other way
around.)
Thus for every .bmp file used by P1X, say picture.bmp, it is necessary to set up a
further (very small) file, named picture.xyb, which specifies the 4 c orners of
“picture” using the same coordinate system as that used by the network (i.e., the
co-ordinates as used within the 55555 network data section and independent of
XYUNIT (6.8)). .xyb files consist of a single record containing 4 (real) values in the
following order:
as we have pointed out above, both should be based on the same system and the
coordinates of the four corners should be established a priori. However, in the
absence of such information, a pr ocedure has been established within P1X to
obtain this information.
In order to carry out this procedure the user must be able to identify the (network-
based) co-ordinates of two points within the bitmap display. Ideally these two
points should be as far away from one another as possible and near one or the
other diagonals. Normally the points will correspond to nodes for which the
network co-ordinates are known, although in principle they could be an y points
which can be easily identified in network terms.
Formally the bitmap is displayed with a thin red strip added along the edges and a
further red cross displayed in the centre. The user is asked, first, to move and
click the mouse over the red cross (in order to confirm the centre point in pixels)
and next to click on two points and input their X,Y network co-ordinates. The four
corner points may then be easily calculated via a simple linear transformation.
A practical problem which arises in the above procedure is that it is not possible
within P1X to simultaneously display both the bitmap and the network (prior to
calibration). We therefore recommend first viewing the bitmap (e.g., enter it within
PMAKE or use any other graphical system such as Paint) in order to identify the
two points(/nodes) to be used and then viewing the network in P1X and using the
X,Y monitoring option under Information to determine - write them down! - the two
sets of co-ordinates. Armed with this information you can return to P1X and the
bitmap display to complete the calibration. Both procedures may be carried out at
the same time by having two program windows open - or even two computers!
This process is probably most easily done by using PMAKE to select, view and
calibrate the .bmp file and then exit the program. Trying to do the same process
within P1X leads to problems of having both a bi tmap and an ( incompatible)
network both trying to define a network window.
Once calibrated a .xyb file is automatically created (so that picture.bmp spawns a
file picture.xyb) and which will from then on be opened at the same time as the
.bmp file is opened.
There is, however, no problem in dumping the current plot plus bitmap display to a
.bmp output file or the clipboard and subsequently outputting to a printer (but with
some loss of resolution).
The size and resolution of .bmp files may, I (DVV) am reliably informed, be easily
manipulated using standard Windows graphics packages such as Paint but
exactly how this is done is a bit of a mystery to me! Ask a young person.
“fool” SATURN into treating a link as though it were part of the road network while
clever old you give it characteristics more appropriate to a pedestrian than a car.
How such coding “tricks” are accomplished is of course up t o the user. One
common method (assuming that the walk networks are superimposed on a
simulation network) is to code the walk links and nodes as part of the buffer
network with (low) fixed speeds/times, a flat flow-delay curve (power = 0) and,
effectively, infinite capacity (e.g., 99999). The walk links are then connected to the
simulation network via external simulation nodes. The origin/destination zones
to/from which trips exit/enter are then connected to walk nodes rather than
simulation links.
Thus an o-d trip with a destination which requires walking will be assigned a route
which starts at a “normal” zone and initially follows a set of “normal” (i.e., car) links
until it reaches the walk links through which it can reach its destination. At this
point, in effect, the car becomes a pedes trian although as far as SATURN is
concerned nothing has really changed - it is simply finding a r oute through a
network. The same principle works in reverse for trips which start as walk trips.
If, very naturally, the point of transition from car to walk is at a car park note that
tolls (and capacities) may be associated with the car park as described in Section
20.5.3.
Certain “presentational” problems may occur in P1X if, for obvious reasons, the
nodes in the walk network have the same (or very close) co-ordinates to “real”
junctions since there will be a high degree of overlap between the walk network
and the road network. This may be avoided by assigning a unique set of capacity
indices to the walk links (a good idea anyway) and then excluding those capacity
indices from the network link plots as described in 11.6.1.4 and/or note 4, 11.6.4.
♦ Options
DA codes are always given as numerical values; For a full list of the DA codes
within a .ufs file please consult Appendix J. Note, in particular, that codes such as
3808 to represent actual flow by user class 1 are also permitted (see 15.21.4)
Options are always represented by characters beginning with a $. They may be
further sub-divided into two groups:
Including an X immediately after $ i ndicates “exclude” that link type; e.g., $XST
implies exclude simulation turns but leave the other 4 types.
For example: DBDUMP net net.txt 4503 $SL
Would dump demand flows for simulation links only to file net.txt.
Further options, still to be programmed, will control output formats, e.g., fixed
column vrs free format (CSV).
And indeed a further option introduced in 10.8 is that, if the filename of the output
file has an extension .CSV, then it is assumed that the output data format will be
CSV rather than fixed columns.
Generally speaking CLICKS is applied to links which have a speed-flow curve, but
they may equally well be applied to links which have a flat speed-flow curve. If the
link does have a speed-flow curve then it would be expected that CLICKS would
be somewhere in between the maximum free-flow speed and the minimum speed
at capacity; if not a Serious Warning 159 is generated.
In general we would expect that CLICKS(1) = 0 on the assumption that user class
1 represents cars and that cars can always travel at the maximum speed, i.e., the
free-flow speed coded for each link, and that there is no need to impose an extra
travel time on them. But, if you do want to impose penalties on all user classes,
go right ahead!
The fact that the penalty is fixed means that it is included within the travel time (for
that user class) under all conditions, i.e., all speeds and all flows. To give a simple
numerical example, consider a link 1 km long with an input free-flow speed of 120
kph (which presumably applies to cars, user class 1) but with user class 2 (lorries)
having been assigned CLICKS(2) = 100. Under free-flow conditions cars take 30
seconds to travel the 1 km. at 120 kph, lorries take 36 seconds at 100 kph. Hence
the fixed time penalty is 6 seconds for user class 2.
The end effect is identical to adding a penalty of 6 seconds within the 44444 data
records for user class 2 on t hat particular link; in both cases, the 6 seconds is
simply added to the minimum generalized cost for that link as used within the
assignment. Therefore, in both cases, the extra time may influence their route
choice. However, in practical terms, it is much simpler to set a single parameter
under &PARAM than to include explicit penalties for every link which requires it.
Although, on t he other hand, explicit penalties under 44444 c an be m ade much
more precise.
A possible modelling disadvantage of assigning a fixed penalty may be seen,
using the above 1 km long motorway link, by assuming that the speed at capacity
for that link has been c oded as 40 kph. Under capacity conditions it is perhaps
more realistic to assume that both cars and lorries travel at the same bumper-to-
bumper speed. In fact the extra 6 s econd penalty on t he lorries will bring their
effective speed down to 37.5 kph, an “error” of 2.5 kph. On the other hand it might
be argued that even under bumper-to-bumper conditions cars will still have a
slight advantage over lorries by being able to weave in and out a bit more and that
maybe a differential speed of 2.5 kph is not too bad an estimate of that effect. It is
up to user to judge whether or not this represents an “acceptable” model.
At this point, users may well be asking why there cannot be two (or more) different
speed-flow curves per link per user class which may differ at free-flow but come
together at capacity. In principle, there is no reason why such differential curves
could not be def ined. Unfortunately, for complicated theoretical reasons, the
multiple user class assignment algorithm used within SATURN (see 7.3) requires
that there can be only one cost component which is flow-sensitive and that that
component (i.e., time) is common across all user classes. Fixed cost components
may, however, differ between user classes (e.g., the evaluation of distance in
generalized cost seconds) and t he differential time penalties must therefore fall
into that category. Otherwise multiple equilibria may occur.
In practical terms, as mentioned above, the use of CLICKS may influence route
choice by user class. The extra time penalties will automatically be included within
any O-D skim that includes time.
Summary statistics listing the total extra travel time in terms of pcu-hours incurred
under CLICKS are given in the .lpt files and within the various list options under
SATLOOK and P1X. The outputs are disaggregated by: user class,
simulation/buffer, this/next/total time period and by capacity index. In principle
these totals could (and possibly should) be add ed to the cruise time etc. totals
which appear in standard output tables; however, for the time being, this has not
been done in order to allow users to think about exactly how they would wish to
have the data presented.
In summary setting a value for CLICKS is an extremely simple method to
represent differential speeds by user class but some users might feel that the
possible “errors” introduced at high flow levels may outweigh the advantages of
simplicity.
(b) include extra records within the 33333 buffer data (new with 10.9).
Note that fields (ii) and ( iv) must be i ntegers (as well as, clearly, being valid
numbers) but the speed (iii) may be i nput as a real value. Normal logic checks
that, e.g., CLICKS speeds are less than normal speeds, etc. etc. are carried out
and error messages produced as necessary.
The V-records will be ignored, in the same way that default speed-flow curves by
capacity index with a D in column 1 are ignored, when the buffer network is built.
Note as well that if any V- records are included under 33333 and KLUNK = 1 then
any reference to FILVSD is ignored; you cannot therefore use both methods to
define KLUNK = 1 data at the same time.
SATSTAT consists of two parts: (i) a For tran 32-bit program to extract the
summary statistics; and ( ii) an MS Excel spreadsheet to undertake the
comparisons.
This will load-up the SATSTAT module requesting the network(s) that you wish to
extract the summary statistics from:
We now run SATSTAT and the module will now, for each network in turn:
♦ Run SATLOOK and SATDB to determine the version of SATURN in use;
♦ Run SATLOOK and SATDB to extract the summary statistics; and
♦ Run the SATSTAT Fortran program to generate a s ummary statistics file in
CSV format.
The output(s) from the process will be a one (or more) CSV files with the same
filename as the network UFS file. In our example, the two output files will be
EPSOM98AXX.CSV and EPSOM98RXX.CSV.
We may then select each CSV file, in turn, and these will be i mported as new
worksheets into the existing spreadsheet.
Once they have been loaded as new worksheets, we may now select them to be
loaded into the reporting columns in the summary worksheet by clicking on the
Filter box at the top of each column. The summary statistics for that network will
then be summarised in the column below.
Once completed, Table 1 ‘Scenario Reports’ shows the summary statistics for two
networks side-by-side, as show below.
Extended
Whilst Table 1 w ill remain unchanged, Table 2 bel ow will now report on t he
Differences and %Differences in the summary statistics (ie this network minus the
one with the column ID just selected) as shown below.
∂c
a (Va )
c= ca (Va ) + Va a
∂Va
3) This method can give both positive and neg ative values of MECC whereas
the use of equations with separable cost-flow curves can only yield non-
negative values. Negative MECC values may seem counter-intuitive but in
fact they occur quite naturally as a result of normal give-way conventions. For
example, consider a roundabout with 4 arms (north, south, east and west)
with a very heavy flow from east to west which effectively blocks all entry
traffic from the south. In these circumstances the only way traffic from the
south can enter is when north-south traffic cuts off entry from the east. Hence
an increase in N-S flow can reduce the delays from the south leading to a
negative contribution to MECC which, in turn, can potentially drive the total
MECC negative as well.
2) If the turn is “almost at capacity” (strictly 90% < V/C < 100% then a negative
increment of 1 pcu is used in the first instance rather than an increase of 1.0.
(But see point (7) below.)
3) If the turn has zero or very low flow (arbitrarily under 5 pc u/hr) the turn is
simulated at flows of, say, 5.0 and 6.0 pcus/hr as opposed to, say, 0.0 and
1.0 pcus/hr since, very often, there can be v ery highly significant changes
between no flow and a v ery small flow. This is particularly true of X-turns at
signals, even more so when they come from a single lane with other shared
movements.
4) If the addition of +1 pcu takes a turn beyond capacity then the increment is
reduced so as to go only “halfway” to capacity.
5) In order to minimise any problems of “noise” in the two simulations (if we are
looking at two very similar flows any “errors” in delay calculations will be
magnified) we convert the value of NUC applied at signalised junctions to a
large value. In particular this has proved to be essential for junctions with
very short signal phases and/or X-turns.
6) If, for whatever reason, a node does not converge to the required limits (see
8.3.2) even with any changes to NUC, etc. its convergence is judged to be
“poor” and, rather than permit any noise to creep into the calculations, its
MECC values are calculated using its separable cost-flow curve and
equation (15.15) above. This is probably an underestimate of the total
MECC since it exclude any interactions with other turns at that junction but
this is felt to be pr eferable to introducing random errors. In most networks
the number of “poorly” converged nodes is probably well under 1%. (A
higher percentage of poorly converged nodes may be an indication of
slightly dodgy coding practice.)
7) As an ex ample of belt’n’braces and t o cope with various “noise” problems
which empirically are observed to occur even with all the above rules, for
priority and s ignalised junctions, whenever both positive and negat ive
increments are feasible, we carry out two increments, both plus and minus 1
pcu, and take the minimum of the two MECC values. (In almost all cases
the two give virtually equal answers but there are odd examples when one
result appears to be unreliable and we prefer to believe the lower values.)
8) Turns at simulation dummy nodes experience zero delay by definition and
therefore zero marginal costs. They are included in the output .mec files with
values of zero. Similarly bus-only links and/or turns are assigned zero
MECC values.
Field 5 The total MECC in seconds (N.B. marginal time, not cost)
Field 6 “Own” MECC
Field 7 “Arm” MECC
Field 8 “Interactive” MECC
For “pure” links A-B (i.e., simulation or buffer links) fields 7 and 8 are blank.
Note that Fields 1, 2 and 3 all occupy 6 columns in order to improve legibility for
networks which have up t o 5-digit simulation node numbers. This may cause
problems in input to certain SATURN programs where the convention is to have 5
columns by default. Note that the latest 10.8 version of SATDB allows either 5 or
6 column node fields under the input of miscellaneous text files.
If DUTCH = T and the maximum node number used in the buffer network exceeds
5 digits then the first two fields occupy 9 columns each and the third (which is zero
by definition) occupies 2 columns (i.e., 0 in column 20).
In general MECC values are printed with two decimal places (with units of
seconds) although, in some extreme cases, there may not be sufficient “width” in
the format to permit two decimal places, in which case MECC is printed in an E-
format.
and evening peak hour models) and to subsequent skim various permutations of
travel costs and/or demand for use in WebTAG-based compliant models.
The recent advances in PC-based desktop hardware has resulted in Intel-based
Core2Duo/ Nahlem / Sandy Bridge chips becoming the norm (amongst others)
and the existing methods of using SATURN to undertake tasks sequentially does
not utilise any of the other cores available as illustrated below in Figure 15.6 and
Figure 15.7..
Figure 15.6 – Traditional Sequential Operation
15.52.1.1 Monitor
MONITOR takes a snapshot of all running processes in Windows at regular (user
specified) intervals and checks if a user specified program is still running. The
program terminates when the user specified program is not one o f the currently
running processes. MONITOR takes two parameters:
♦ Parameter 2 – the time interval (in seconds) for taking snapshots of running
processes to determine if the SATURN program specified by parameter 1 is
still running (eg 10).
15.52.1.2 Wait
WAIT (used within a batch file) causes the batch file to pause (where it is called)
for a user specified number of seconds before the batch file proceeds to the next
command. This introduces a short pause before the next instance of the
SATURN program that is to run in parallel is called. I n other words, if the user
wishes to run two instance of $SATALL, the user should request a small pause
between the first and s econd runs commencing to prevent potential file access
errors arising. Note that WAIT has to be used within a batch file – it will not ‘wait’
as a single command line call.
15.52.2 An Example
An example of a ‘parallel’ run of the SATURN module (which runs SATNET and
SATALL) is found in the subfolder “TEST\DEMO PARALLEL” where SATURN is
installed. This is by default C:\SATWIN\ TEST\DEMO PARALLEL.
The batch file created to perform the parallel run is called PARALLEL.BAT. The
file can be modified accordingly to perform parallel runs with other SATURN
modules including $SATALL, $SATPIJA, $SATLOOK and $SATEASY.
The salient parts of PARALLEL.BAT are as follows:
1) PATH = C:\SATWIN\XEXES: sets the path to the folder containing SATURN
programs. It is not necessary if PARALLEL.BAT is run through the “Batch
Run” menu of SATWIN.
2) SET INPUT1=EPSOM5000: sets the input parameter for the first SATURN
run as an environment variable. In this example, the network and matrix file
have the same root name (i.e. EPSOM5000.UFN and E PSOM5000.UFM),
hence only one environment variable (i.e. INPUT1) is required. If the root
names were different, two environment variables would have been required:
one for the UFN file and one for the UFM file.
3) SET INPUT2=EPSOM5001: sets the input parameter for the second
SATURN run as an environment variable. The root name of the network and
matrix file is the same in this example; hence, one environment variable is
required as in 2.
In principle method a) should be faster and more efficient than method b) but, on
the other hand, it requires specially compiled versions of the .exe files whereas
method b) uses the standard exe’s but with “clever” batch files. Method a) works
by allocating tree-building etc. operations by origin between processors, method
b) works at a much more aggregate level by allocating, say, calculations per user
class to separate threads (and therefore is most efficient if the number of threads
available equals the number of user classes).
a quad-core machine, the model runtimes on various test networks were reduced
by up to a factor of four.
Note that all the tests were undertaken on the same HP XW8600 workstation (2 x
Intel Xeon X5450 3GHz with 4Gb RAM running Windows XP 32-bit). The
processors provided eight physical cores with each core able to handle one thread
each (i.e. no H yper-threading option was available on t hese particular
processors).
100%
90%
CPU Ratio
% of Existing Single Core Runtime
80%
70%
1/N
60%
50%
40%
30%
20%
10%
0%
1 Core 2 Cores 3 Cores 4 Cores 5 Cores 6 Cores 7 Cores 8 Cores
100%
90%
CPU Ratio
% of Existing Single Core Runtime
80%
70%
1/N
60%
50%
40%
30%
20%
10%
0%
1 Core 2 Cores 3 Cores 4 Cores 5 Cores 6 Cores 7 Cores 8 Cores
100%
90%
CPU Ratio
% of Existing Single Core Runtime
80%
70%
1/N
60%
50%
40%
30%
20%
10%
0%
1 Core 2 Cores 3 Cores 4 Cores 5 Cores 6 Cores 7 Cores 8 Cores
15.53.4.1 Options
To activate the multi-threaded operations within SATALL and SATLOOK once
installed, the &PARAM namelist parameter MULTIC is set to TRUE in the network
.dat file and the Windows Operating System handles the allocation of the
computational calculations between the available threads available. The value of
MULTIC parameter is stored in the network binary files (.ufn/s) and the value read
by SATALL, SATLOOK, etc. where necessary.
An additional (integer) namelist parameter MCALG selects one of a set of optional
algorithms which are basically provided for internal testing. We recommend the
default value of 1.
A further (integer) &PARAM Namelist parameter MCNUM defines the maximum
number of core processors to be used on the computer; default 0 (meaning use all
available threads). See 15.53.4.2 below.
For the other Multi-Core programs (i.e. SATPIJA, SATCH and SATUFO), the
Multi-Core batch files have to be used.
15.54.1 Overview
CASSINI is a Visual-Basic program developed to significantly reduce SATURN
runtimes when SATURN is used within a V ariable Demand Model such as a
simple DIADEM model or a more complex, bespoke modelling system. See
Section 7.4.1 for a general discussion of the problems of convergence between
supply (i.e., assignment/SATURN) and trip matrix demand models and Section
7.4.5 for a description of the iterative “cobweb” loops between supply and demand
models whose runtimes CASSINI seeks to “optimise”.
CASSINI enables the user to automatically adjust the convergence targets set for
each run of SATURN to match the current level of convergence achieved for the
supply-demand “cobweb” loops. Typically, a ‘relaxed’ set of convergence criteria
would be s et for the initial loops when supply-demand convergence is poor and
the trip matrices are still highly uncertain but these would be s ubsequently
tightened as the overall model convergence improves; in other words, reducing
the ‘over-convergence’ within the supply model (i.e., SATURN).
See section 7.4.5.3 for a more general discussion of the principles applied by
CASSINI.
Appendix R contains a c opy of the ETC2009 paper that describes the practical;
benefits of CASSINI within a full WebTAG-compliant demand model.
9.00%
8.00%
7.00%
6.00%
5.00%
%GAP (Assignment)
4.00%
3.00%
2.00%
1.00%
0.75%
0.50%
0.25%
0.10%
0.05%
GAP − SD =
∑ ijctm ( )
C ( X ijctm ) D C ( X ijctm ) − X ijctm
*100
∑ ijctm
C ( X ijctm ) X ijctm
where:
♦ D(C(Xijctm)) is the flow vector or matrix output by the demand model, using
the costs C(Xijctm) as input; and
is that that increase will be more than offset by the CPU saved on earlier loops
where internal SATURN convergence is much faster.
We may note that this process of “relaxed convergence” is very similar to that
used by AUTONA (see 9.5.4) whereby we set “easy” assignment stopping
conditions when the assignment-simulation loops are poorly converged (in order
to minimise assignment CPU) but tighten them up as the assignment-simulation
convergence improves.
By setting a more relaxed highway convergence target for the early cobweb loops
using CASSINI, considerable savings in CPU time may be achieved as the ‘over-
convergence’ of the highway assignment is reduced. T hese two convergence
profiles are also shown below in Figure 15.12.
Figure 15.12 – Typical Demand Model Convergence Profile
70%
60%
Demand Model (%GAP)
%GAP (Supply/Demand
50%
SATURN-CASSINI Convergence
(%GAP=Variable)
40%
(%GAP=0.05)
20%
10%
0%
1 2 3 4 5 6 7 8 9 10 11
Demand Model Loop
Standard
20.00 CASSINI
Cumulative SATURN CPU (hrs)
15.00
Time Saving
10.00
5.00
0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Demand Model Loops
35.00
Total CPU for all Operations (hrs)
30.00
25.00
20.42
Time Savings
SATURN
20.00
Demand
47% 63%
15.00
8.78
4.03
10.00
13.82
5.00 9.52 9.52
0.00
Standard Method (Parallel Plus CASSINI Plus CASSINI & Multi-Core
Assignment)
Specifies the type of demand model used and the file format (and other
CASTXT operations) that CASSINI will expect. T here are currently two options
either:
‘DIADEM’ file format and CASSINI will extract the convergence of the
demand model from a s tandard DIADEM report file a illustrated below –
this is the default option, or
A simpler ‘OTHER’ file format with the file consisting of two data fields in
CSV format. The first value is the demand model loop number whilst the
The “file name” of the CASSINI Control file defining the convergence
FILCAS strategy to be applied (see below for more information).
The “file name” of the ASCII CSV file reporting the convergence of the
FILGAP demand model
Note that the convergence parameters in the SATURN network file should be
relaxed as these will be applied for the assignment of the first demand model loop.
These will be subsequently overwritten by .XCP produced by CASSINI.
♦ Read the demand model convergence file (as defined by FILGAP) and
determine the number of loops undertaken (so far) by the demand model and
resulting demand model convergence;
♦ Match the number of demand loops undertaken and the strategy to apply (as
defined by the Loop Threshold). So, for example, if there are two strategies:
an initial strategy for the first loop and a second defined for loop 5 onwards
[i,e., LoopThreshold 5], and four loops have been undertaken so far, the first
strategy will be applied;
♦ Within that strategy, compare the current demand model GAP-SD value
against the various %GAP-SD ranges [GAPVALUE] and export the
parameters to the XCP file.
An example of the control file is provided below.
XCP File
Once QUICK and/or QUIET is toggled ‘ON’, the option remains active for
subsequent SATURN commands within SATWIN until they are toggled to ‘OFF’.
The QUICK and/or QUIET settings in SATWIN are also applied to DOS command
line runs created by the SATWIN (ie via the “TOOLS/SATURN DOS Command
Shell” menu option). The SATWIN settings can be ov erwritten if QUICK and/or
QUIET is subsequently explicitly set on the command line.
times; network aggregation achieves this by reducing the number of nodes and/or
links.
In addition network aggregation reduces the cpu time involved in building trees
during post-assignment analysis such as skimming, select link analysis, etc, etc.
See Section 15.56.7.
A condensed version of the material that follows was presented at the ETC
(European Transport Conference) in Glasgow, 2010, by Wright et al and
reproduced in Appendix S (.pdf version only).
Such that the cost on the aggregate link A-C is the sum of the original costs on A-
N plus N-C. (Note that it is not necessary to create a “U-turn” link, say, from A to A
equivalent to A-N plus N-A since, even though the movement may be valid in the
original network, it can never be part of a shortest path tree.)
Note that in this case, if all the original links are 2-way, then the original network
segment contained 6 links as does the aggregated segment. So, if we have not
managed to reduce the number of links, we have at least removed one node
which, given the form of equation (15.x), should still lead to an overall reduction in
cpu time.
On the other hand i f one of the original links were one-way - imagine that A-N
were one-way for example - then the original segment has 5 one-way links but the
aggregated segment has only 4 ( A-C, A-B, B-C and C -B) and therefore the
numbers of both nodes and links has been reduced.
A common example of a 3-arm node might be an entry ramp onto a motorway
where A-N would be a one-way entry onto a motorway with one-way links B-N and
N-C. In this case 3 links are reduced to 2.
The entry ramp configuration may be generalised to any node t hat has a single
one-way exit and n one-way entries such that n+1 links are reduced to n. Equally
all nodes with a s ingle entry and m ultiple exits may be ag gregated to save one
node and one link.
Indeed a node with any number of entry/exits may always be removed by
aggregating pairs of entry/exits. The example of a 4-arm node is illustrated below.
Note that here, if all arms are two-way, then we actually increase the number of
links from 8 to 12 in order to remove 1 node, although if one or more of the arms
are one-way the increase in links is reduced and may even represent a reduction.
(E.g., 2 one-way entry links and 2 one-way exit links reduce 4 links to 2.)
We therefore note that traffic leaving the network from zone Z has only two
possible paths available to it: Z-S1-M1-M3-B2 or Z-S2-M2-M4-A2. Equally there
are only two possible paths into Z from A1 or A2. Thus, in this situation we may
aggregate the network into 4 aggregate links – Z-B2, Z-A2, B1-Z and A1-Z – while
at the same time removing all the mini nodes at S and M. (Assuming all links are
two-way this removes 8 nodes out of13 and 8 links out of 14.)
Note that if the spigot node S has been coded as a buffer node under 33333 (see
Section 16.6.3) then a third mini-node is created at S has shown below. This
however does not change the general principle that zone Z i s connected via
aggregate centroid connectors to nodes A and B but it does increase by 2 t he
number of assignment links replaced.
We may further note (see also 16.6.4) that the above buffer node connector
allows possible U-turns via S1-S3-S2 in the full network but that this possibility is
explicitly excluded in the aggregate network since, e.g., there is no aggregate link
created from A1 to A2 which would correspond to a U-turn.
1) Aggregate certain “priority” nodes, i.e., buffer nodes where there are
banned/penalised turns and w eaving sections, where aggregation is
essential for the modelling (see 15.56.7.3);
2) Aggregate all “spigot” centroid connectors (15.56.2);
3) Aggregate stub link centroid connectors to external buffer zones (see
15.56.2)
4) Remove any bus-only links (since they will never form part of minimum
cost paths for trips in the trip matrix)
5) Aggregate all nodes which have a single exit with one or more entries
(N.B. this will include all “dummy” 2-arm nodes)
6) Ditto but with nodes with a single entry and / or more exits
7) Aggregate all nodes with, progressively, 3 arms, 4 arms, etc. etc. up to a
maximum of MAXSPA arms
Thus at the end of each step a new aggregated network is created and passed to
the following step for further aggregation. Steps 5) to 7) are repeated iteratively
with the maximum number of arms increased by one on eac h pass. Thus on the
first pass all 3-arm nodes are aggregated in step 7), on pass 2 all 3- and 4-arm
nodes are aggregated, etc. etc. The iterative loops are repeated until no f urther
aggregation is feasible or the maximum number of arms per node which may be
aggregated reaches MAXSPA as set in &PARAM..
A further rule is applied in step 7) which is that a node i s only aggregated if, in
addition to having less than a certain number of arms, it also satisfies the (highly
empirical) rule that:
Nnew =< 23 + Nin + Nout + N2w / 2
Where: Nin = the number of in-bound directional links
Nout = out-bound links
N2w = number of two-way arms
Nnew = number of new direct links that will be created = Nin * Nout - N2w
For example, aggregating a 6-arm node with 2 two-way arms, 2 one-way inbound
and two one-way outbound would create 14 new links from 8 existing links (i.e.,
we add 6 links and lose 1 node) but the above rule says to go ahead regardless.
In fact this rule allows nodes with up to roughly 20 arms to be removed even if this
seems totally counter-intuitive – empirically it saves CPU!
Note that there is a large degree of overlap between some of the steps. Thus the
nodes which are aggregated under steps 5) and 6) would also be picked up under
step 7) but there may be a benefit to identifying the simplest structures and
aggregating them first before eliminating the more complex node structures.
Note as well that the number of links per node is not fixed but potentially grows
with each successive step. Thus node A may have initially have 4 arms but if one
of its neighbouring nodes B is aggregated then A will have additional links added
to all of B’s other neighbours.
At the end of the process the aggregated network structure is stored within the
.ufn/.ufs files so that it may be optionally used within subsequent assignments
and/or analyses.
not because they are judged not to exist but due to the technical problems of
being able to uniquely identify links by their A-node and B-node; e.g., in a counts
file.)
The reason that duplicates can arise in aggregate networks is illustrated below
with a segment of a “grid network”.
Eliminating zero-flow links can substantially reduce CPU time in all instances
since, empirically, it appears that over 50% of aggregate spider links may be
unused.
N.B. In principle it is possible to apply the same rules to “basic” networks but
since, in practice, there are very few if any “proper” links with zero flow then it is
not worth the added effort.
♦ The number of zones and user classes (which are the same for both basic
and aggregated networks)
♦ The number of (assignment network) nodes and links in the base network
♦ The number of newly created aggregate links which are duplicates (joining
the same A- and B-nodes)
♦ The total number of equivalent base links which the aggregate links map into
Aggregate
Original Network CPU
Network Zones UC Network Duplicates Equivalent
Ratio
Nodes Links Nodes Links
New
(5) 115 2 1,964 3,022 308 2,858 362 24,232 3.2
Town
York 176 1 1,246 2,329 340 3,026 413 16,379 2.2
(4)
Horley 229 2 4,263 6,440 621 6,313 1,063 5,89 3.3
East
1,348 7 30,633 52,277 4,926 53,363 17,028 387,600 8.6
London
M25 1,417 5 75,178 109,568 9,992 68,584 5,601 556,742 9.6
Central
1,638 7 28,587 60,325 6,064 61,922 22,645 335,510 6.0
London
South
(3) 2,520 5 57,877 93,905 8,833 96,296 23,593 753,240 2.9
London
♦ Multi-Core Frank-Wolfe;
0.50
Model 5 0.40
0.33
0.44
Model 4 0.44
0.31
0.28
Model 3 0.36
0.07
0.27
Model 2 0.15
0.06
0.26
Model 1 0.18
0.05
For example, O-D skims of, say, times along a forest may equally be calculated
on an aggregated network following the same basic procedures as for standard
networks but with one preliminary step: calculate the time (or whatever quantity is
to be s kimmed) per aggregate link. CPU savings accrue from being able to
reconstruct the minimum cost paths per iteration using the much more compact
aggregate network such that similar time savings to those illustrated above for
assignment should also be achieved for skimming.
See Section 15.27.7.2 for information on aggr egate skims within SATLOOK as
selected by a parameter USESPI.
Aggregated networks are also optionally used for Select Link Analysis within P1X
- see 11.8.1.12; also controlled by a parameter USESPI..
but it would be nec essary, near the end o f the process, to re-introduce all links
just to confirm that none of the improbable links should be reclassified. (As long as
Frank-Wolfe finds lower cost auxiliary solutions on eac h iteration it should not
matter if it finds the absolute minimum cost auxiliary as long as no potential paths
are being ignored in perpetuity.)
The above thoughts on eliminating certain links are based on t he empirical
observation that in most spider web networks less than 50% of all aggregate links
are assigned flows so that, had they been eliminated a priori, the ultimate solution
would be the same but achieved more quickly.
Several good topics for further research!
residual flows then the differences between including or excluding the residual
flows is arguably minimal.
On the other hand the impact of a small residual flow may be considerably
amplified in certain circumstances. Consider, for example (and this is based on an
example found in a r eal-life network), an O -D pair separated by a s ingle link of
100 metres with signals at the downstream end such that, at equilibrium, the
correct solution is an all-or-nothing flow along that link even if the signals turn out
to be over capacity. (Since in that case more distant O-D pairs would have options
to divert further up/downstream to avoid the congested signals but the only option
for the “local” O-D pair might involve a relatively long and costly diversion.) Hence
a distance skim along the used path should give 100 m for that O-D pair.
If, however, on the very first all-or-nothing Frank-Wolfe free-flow assignment the
initial assumption is that the signals are operating under capacity then that first
assignment may “optimistically” severely over-assign multiple O-D trips along that
link, resulting in the downstream signals have a V /C ratio of, say, 2.0 and a
queuing delay (LTP = 60) of 30 minutes. Hence an alternative route of 30 km at an
average speed of 60 kph (assuming time-only assignment, PPK = 0) could be
lower cost and t hat path would be selected on t he second FW iteration and
therefore become part of the final solution, even if its contribution may have been
diluted to, say, 1% by the end of the Frank-Wolfe iterations. Thus, in terms of
distance skims, that path would add 0.01 * 30,000 = 300 m to the average
distance so the skimmed distance would be 400 m, not 100.
In this case a small difference in flow has been magnified to produce a very much
larger difference in outputs.
which have been included within the .ERL file but with extra tests based on values
stored in the first and/or second “extra” data fields.
In both cases a “critical” value needs to be defined by the user but its application
differs between whether data from Field 1 or 2 is to be used. Thus with Field 1 the
test is based on equality; i.e., if you set a critical value of 1 onl y those error
records which have a 1 in Field 1 will be selected. Under 2 the test is “greater than
or equal”; i.e., all entries whose Field 2 value >= the critical value are selected.
In addition the second field differs in that the colour used to highlight the selected
nodes depend upon the value in the second field. Thus a low value might be
displayed with a l ight colour and pr ogressively higher values with progressively
darker colours in order to indicate possible degree of urgency as set by the user.
The pens to be used for different numerical values are pre-defined within the
program but may be ov er-written using parameters NP_ERL(n) within the (most
recent) preferences file P1X0.DAT.
We repeat the information given above that, at the moment, Field 1 is set as either
0 or 1 within SATNET depending on whether an error is “old” or “new”, whereas
Field 2 is intended to be manipulated externally by the user via, say, Excel, prior
to its use in P1X.
Mini-Contents Page
INTRODUCTION
Section 6 is complemented here by means of examples on how to code each of
the five types of intersections that can be handled by SATURN plus examples of
coding centroid connectors.
SECOND RECORD (RECORD TYPE 2) - DATA FOR THE LINK FROM NODE
45 TO 44
Col. Nos. Input Remarks
9 - 10 45 Node at the other end of the link
15 0 Number of entry lanes equal to zero here means a one-
way outbound road
20 0 *
25 0 *
* Link times and lengths are not relevant for one-way streets nor is it necessary to
code any information regarding turns which clearly do not exist.
THIRD RECORD (RECORD TYPE 2) - DATA FOR THE LINK FROM NODE 16
TO 44:
Col. Nos. Input Remarks
1–5 blank Stacking capacity for this link is to be estimated by default
as 2 x 200 / ALEX (2 = lanes, 200 = dist.
9 - 10 16 A-node for this link
15 2 Two approach lanes
19 - 20 25 Link free run time is 25 seconds
23 - 25 200 The link is 200 meters from middle of 16 to middle of 44
30 0 Left turn to node 43 is banned
31 blank No priority marker and
33 blank no lane specification needed for
35 blank missing turns.
36 - 40 1700 Sat. flow for straight-ahead movement
41 blank No priority marker required
43 1 This turn can only be made
45 1 from lane 1.
46 - 50 1600 Sat. flow for right turn to node 45
51 X Opposed right turn
53 2 This turn can only be made from
55 2 lane 2.
The fourth and fifth records contain similar data for each of the other two links to
node 44 in clockwise order, i.e. 43 and 55.
(N.B. The coding above could have been simplified by specifying 43 in cols. 29 &
30 and zero in column 35 as this would imply that all turns from 43 were green. In
this case NGM in column 25 would be 2.)
Records 7, 8 and 9 for this node contain similar data for the subsequent stages.
The effect of the stage definition records is briefly as follows. During the first stage
all three movements from node 43 are permitted, but after 19 s econds the
straight- ahead and right turns go red. After a further 4 seconds a right filter arrow
is displayed for turn 16-44-45, this display continuing for a further 10 s econds.
Note therefore that the left-hand turn 43-44-45 is continuously green for 33
seconds from the start of the cycle, i.e., it is green during the first i nter-green
period of 4 seconds. Since there are no common movements between stages 2
and 3 all displays must be red for 7 seconds. The inter-green time of 0 in stage 3
implies that stages 3 and 4 run smoothly from one to another, the only difference
being that movement 55-44-16 becomes red during stage 4. Finally since there
are no c ommon movements between stages 4 and 1 t he 5 s econd inter-green
period after stage 4 is red for all movements.
16.2 Roundabouts
Considering the same junction sketch and as suming that node 44 r epresents a
roundabout without U-turns we would code it as follows:
44 4 2 4 3600
45 0 0 200
16 2 25 300 0 1700 1 2 1700 1 2
43 2 40 220 3000 1 2 3000 1 2 3000 1 2
55 2 25 2800 1 2 2800 1 2
FIRST RECORD
Col. Nos. Input Remarks
5 44 Node number
10 4 Number of links
15 2 Node type
20 4 It takes 4 seconds to fully circle the roundabout.
22 - 25 3600 Maximum permitted flow at any point on t he
roundabout.
26 on blank Default values for LCY, NUC, GAPR and GAPM
to be used at this node.
The next four records (Record type 2) contain the link data for the four links as
described in 16.1. Since it is a roundabout records Type 3 are not required.
Notes:
1) All turn capacities from a single link should either be eq ual to the link exit
capacity or zero if they are banned t urns. T his is because the program
assumes that all turning movements have equal entry onto the roundabout
and hence that no one turn can have a greater capacity than any other.
2) Note that the roundabout capacity, 3600, is greater than any of the individual
entry arm capacities. This will have the effect of always allowing some flow
to enter from an a rm even if the flow across the arm were at the nominal
capacity of its entry arm. Fo r example if there were an as signed flow of
3000 pcu/hr from node 43 to node 16 (with no cross flow at its entry point so
that the actual flow would also be at capacity) entry from nodes 55 and 45
would not be entirely blocked. If however the maximum roundabout flow
had been defined as 3000 there would be no entry permitted from either
node.
3) The lane allocations are not in fact used yet by the program although it is
anticipated that eventually they will be.
4) None of the priority markers refer to roundabouts.
5) Note that no stacking capacities have been explicitly given in columns 1-5;
hence they will be calculated by default from the number of lanes, the link
distances and ALEX.
6) Had the node been c oded as junction type 5, roundabout with U-turns, no
extra data would have been required on the link data records - the program
would automatically generate U-turns to and from nodes 55 and 16 s ince
these are 2-way roads.
7) The coding above would almost certainly generate a S erious Warning 138
because the saturation flow from 2 lanes from 16 is 1,700 whereas for two
lanes from 43 it is 3,000; i.e., 850 per lane vrs 1500 per lane. While this is
not an i mpossible “on the ground” situation it is unlikely that two different
entry arms at the same roundabout would have such different saturation
flows per lane; i.e., they would be c onstructed with much more similar
engineering design.
FOURTH RECORD
Similar to the above two; note that the X implies that the turn from node 4 toward
node 6 is an opposed right turn off a major road and therefore gives way to turns
3-5-6 and 3-5-4, but not to turns out of 6-5 which is a minor link.
In this case one would expect either that node 58 would be directly connected to a
zone via an external simulation centroid connector as illustrated in 16.6.2 or that it
would be part of the buffer network. But preferably not both! And certainly not just
to another simulation node as this is a fatal error; see 18.8.
Assuming that node 5 is a dummy node inserted in the middle of the two-way road
between nodes 4 and 6 it could be coded as:
5 2 4
4 1 50 500 1500 1 1
6 1 40 500 1500 1 1
FIRST RECORD
Cols. Input Remarks
1-5 5 Name of the node
6 - 10 2 2 entry links
11 - 15 4 4 implies that 5 is a dummy
SECOND RECORD
Cols. Input Remarks
1-5 blank Stacking capacity to be calculated by default
6 - 10 4 The link from 4 to 5 has ...
11 - 15 1 ... a single lane ...
16 - 20 50 ... a travel time of 50 seconds and ...
21 – 25 500 ... a distance of 500 meters.
26 - 30 1500 The first turn, i.e. 4-5-6, exists with a ( nominal)
capacity of 1500 pcu/hr, and ...
33 1 ... uses lane 1 only
35 1
5 3 5
and would imply that zone 5 i s connected to link (3,5). I n terms of traffic
movements the implication is that traffic TO zone 5 leaves from a point just
beyond node 3 and that traffic FROM zone 5 enters the link at a point just before
node 5, as indicated in both cases by the dashed lines. T he effect is as though
traffic were parking on the link somewhere between nodes 3 and 5.
Note that in this case we have a zone numbered 5 (denoted by a triangle) and a
node numbered 5. Since these numbers appear in quite different positions in the
input the computer at any rate will always be abl e to distinguish them.
Nevertheless the user may become confused by exactly what 5 does represent,
so that the practice of having identical node and zone numbers is not necessarily
recommended. ( Although there might well be situations where the zone is very
closely associated with one node so that it would be useful to give them the same
numbers.)
As indicated above link (3,5) is a one-way street from 3 to 5. The movements to
and from the zone would be the same if (3,5) were a two- way street - a separate
connector would need to be defined to allow for entry to the zone from node 5 and
exit to node 3. In this case the coded data would read:
5 3 5 5 3
However, were the link one-way in the opposite direction an er ror would result
since in that case there would be no such one-way link as (3,5).
In the diagram above we shall assume that 7 has been coded as an external node
but that nodes 3, 6 and 5 are all internal, so that one might think of there being a
cordon cutting link (7,6) with the simulated network of interest lying to the right. In
this case the centroid connector may be defined under 22222 by either:
5 7 6 or 5 6 7
In either case it would be assumed that traffic from zone 5 enters the network at
node 7 and proceeds along link (7,6), while traffic to zone 5 exits from node 7 after
taking link (6,7).
Note that in this case we are assuming that (7,6) is in fact a two-way link. Were it
a one-way link in the direction 7-6 then only one centroid connector representing
traffic leaving zone 5 would be created, and similarly if it were one-way in the
opposite direction only the entry connector would be created. In such cases the
link could be c oded as either (6,7) or (7,6) since, having identified node 7 as
external, the computer will make the appropriate checks as to whether the link is
one-way.
As above we use 5 t o denote both a z one and a node, although in this case it
would appear to be more sensible to denote the zone by 7 since that is the cordon
point node at which it enters and/or leaves.
Note that this configuration corresponds to a “spigot” centroid connector as
described in section 5.1.8.1.
16.6.3 Zones connected to an External Simulation Link via a Buffer Node (33333)
The (spigot) configuration depicted in Fig 16.6, where zone 5 is connected to an
external simulation node 7, may also be achieved by including node 7 within both
the simulation and the buffer network definitions with the actual centroid connector
set within the 33333 data records, not the 22222 records. Thus node 7 w ould be
included as an external simulation node within the 11111 records (possibly
making use of AUTOX = T) while the 33333 data set would include a record such
as:
C 5 7 …. (times, distances etc. to follow)
When viewed at the level of the “map network” (i.e, as plotted by P1X) both the
22222 and 33333 i nputs would appear to be e xactly the same (e.g., as in Fig.
16.6). In both cases traffic leaves the zone and enters the simulation network
proper along link 7-6 and conversely, exits the network and enters the zone along
6-7.
However there are subtle differences. Thus in Fig. 16.7(a), 33333 coding, it is
possible for traffic to make (in effect) a U-turn A1 to C1 to C3 to C2 to A2. By
contrast when the connector is defined within 22222, Fig. 16.7(b), node C 3 does
not exist and direct links C 1 -Z and Z-C 2 do not permit a U-turn at Z.
Since, generally speaking, U-turns are undesirable the 22222 r epresentation of
Section 16.6.2 is to be (strongly) preferred to an entry under 33333.
It also worth noting that as the final link to the zone is in the buffer network, rather
than the simulation network, any queued traffic travelling to this particular zone
and held up i n the simulation network will ‘re-appear’ on t he buffer link (see
section 8 for more details on do wnstream flow metering that only occurs in the
simulation network).
There are also extra overheads created by having an extra buffer node within the
assignment network and (up to) 2 extra assignment links; for example it increases
the assignment CPU time necessary to build and load minimum cost O-D routes
by, typically, a few percent.
On the other hand i t is easier using the 33333 r ecords to ascribe specific
properties of time, distance and, e.g., tolls to a centroid connector whereas the
22222 representation implicitly assumes zero time and distance. Note that this
does not, however, apply to KNOBS data defined via an external file; see section
15.14.5.
defines the point of entry/exit much more precisely than 16.6.1. This extra
precision is very often useful if, for example, one has counts on the entry/exit
flows at the car park which one w ishes to use to estimate the trip matrix using
SATME2. In 16.6.1 one cannot unambiguously associate these flows with a link,
in 16.6.2 one can.
This form of coding also allows one to assign a “time” to link 6-7 to represent, say,
a parking charge on en try, or even to assign a link capacity-restraint curve as
described in Sections 20.5.3 and 15.13 respectively.
Another example of a case where one might wish to use the more precise location
of zone connectors would be where link (3,5) was a relatively long link with
exit/entry mainly near one end. A further disadvantage to the internal style
connections is that the actual flow on ( 3,5) is underestimated by ignoring the
beginning and ends of trips. Again, if the link is a particularly long one, this may
lead to significant understating of travel times and distances. See Section 15.16.
(An alternative, and i n some respects simpler, coding solution to the above
problem is to code two dummy nodes in the middle of a long link with a very short
‘dummy link’ in between to which the zone is connected.)
Thus if the user anticipates (or observes) speeds of, say, 50 km/h on a
motorway as opposed to say the speed limit of 100 km/h he should use the
former value. Alternatively one may use the option to define link speed-flow
curves (6.4.12) to represent the relationship between speed and flow on the
motorway link (as distinct from junction delays); indeed this facility was
created largely with motorways in mind.
5) Weaving sections between a motorway and a s lip road (joint entry and exit)
may be modelled using a W turn priority marker; see 6.4.2.5.
Mini-Contents Page
INTRODUCTION
This section describes the manner in which over-capacity queues are “passed”
between time periods enabling SATURN to be used as a “quasi-dynamic” model.
Methods for modelling time-dependent matrices, e.g. models of peak spreading
are also included.
Let us further imagine that each junction has a capacity of 1,000 pcu/h and that
the trip matrix to be assigned consists of an hourly demand of 2,000 pcu/h from
left to right (i.e. from A to D) with no alternative routes and no other traffic. (We
might well question at this point what we actually MEAN by the trip matrix. We
shall assume that the hourly demand of 2,000 implies that 2,000 pcus arrive
uniformly at A during the hour to be modelled, even though clearly less than half
will actually complete their trip during the hour. Whether this picture of the demand
is realistic is not a question that is normally resolved during the assignment stage,
but one w hich needs to be m ore closely considered elsewhere in the overall
modelling procedures.)
What would clearly happen under these circumstances is that a queue would
develop at A such that the 2,000 pcus would require 2 hou rs to clear. The
average delay at A would be s omewhat in excess of 30 m inutes (since the first
pcu to arrive would suffer only a small delay and the last pcu to arrive would
queue for an hour with a linear increase in between), and a proper flow-delay
relationship should give this value. H owever there should be no comparable
queues building up at any of the 3 remaining junctions and they would operate at
capacity over the next two hours. Hence their average delays would be relatively
small, i.e., much less than 30 minutes.
Conventional assignment models would assign an hourly flow of 2,000 to all four
junctions and therefore, if they are to model the delay at A correctly, calculate
delays of 30 minutes at B, C and D as well. They, therefore, “double-count” the
queuing delays downstream of the “actual” queues.
In SATURN terms these problems do exist in the buffer network but – as we shall
see in the next sub-section – are dealt with by the simulation. (Although the
problems may be reduced in buffer networks via the UNIQUE option; see 15.48.)
Conventional / buffer network assignment models are therefore faced with two
problems:
♦ The spreading of queued traffic over a longer time period than that implied by
the input trip matrix.
1
N.B. We differentiate here between “permanent” queues at over-capacity junctions and
“transient” queues which build up and dissipate, for example during the red cycle at traffic signals.
calculated within the simulation. Thus if an assignment link has a QRF of 0.9 this
implies that only 90% of the total number of trips wishing to use that link will
actually arrive during the time period s imulated and t herefore the delays are
calculated corresponding to 90% of the assigned or demand flows.
Actual and Demand Flows by User Class
We note that the same distinction between actual and dem and flows applies
equally to user-class specific flows as to total flows. Actual user class flows are
obtained by applying the same single link-specific factor as obtained for total flows
to user-class demand flows.
Note that this is only an approximation to the “correct” values which would be
obtained if the assigned O-D routes for each user class were reloaded but with the
route flows reduced every time an over-capacity simulation link was encountered.
However it should be a reasonably good approximation, particularly if the overall
differences between actual and demand flows are not great.
Equally actual user class link flows at individual simulation junctions may violate
Kirchoff’s Rule, i.e. total flow in does not equal total flow out, in particular if there
are multiple entries and exits in which case the estimation of the turning flows is
“under specified”. But if, for example, you have two entries and t wo exits and
therefore four “unknown” actual flows you also have four constraints on the total
in-bound and out -bound flows so the problem does not arise. However the
demand-based user-class flows must always satisfy Kirchoff’s Rule as will the
total demand flows.
♦ The residual queues at the end o f the first time period and t he
“suppressed traffic” (as defined above in 17.2) are calculated from
the input UFS file.
♦ In addition the residual queues per turn (which are in pcus) are
converted into an “effective” fixed flow (in pcus/hr) equal to Q/LTP
which is added to the link “entry flow” for the purposes of the
assignment
♦ The residual queues from the previous time period are also taken
into account in the delay calculations for the current time period for
those specific turning movements.
period, rather than starting “cold” with default values. This has the
advantage that the number of simulation-assignment loops in the
second time period may be c onsiderably reduced with obvious
savings in terms of CPU times. N.B. If both PASSQ and UPDATE
are T then the flow-delay data is taken from the update file, not the
passq file.
Thus starting from zero queue at the start of time period 1 it grows linearly over
the first time period, continues to increase in the second, stays constant in the
third and disappears during the fourth.
FURTHER NOTES:
1) The networks defined in different time periods need not be identical.
Thus it is permissible to introduce, say, tidal flow schemes or new traffic
control settings. Suppressed flows on link A-B in one time period are
transferred to a link A-B in the next time period; if A-B does not exist then
no flow is transferred.
Thus problems may exist if, say, A-B is divided into two links A-C and C-
B in the second time period; the solution here is to ensure that node C
exists in all networks, even if sometimes it is only a dummy node
2) Equally the trip matrices may differ as well, although how this is done is
left to the user.
4) Given the difficulties of getting “good” trip matrices for even one time
period we would recommend that, unless peak spreading models are
being applied, trip matrices for successive time periods be set by simply
So, final recommendation for those who can’t make up their own minds: not less
than 15 minutes, no more than 1 hour. And please remember point (4) in 17.3.2
as regards how to define LTP.
*
N.B. Under DOS this requires that the "name" of the base network file must be 7 characters or less
in order that the suffixes A, B, C etc may be added and still be 8 characters or less.
SATTPX is therefore a far more flexible method than that described in 17.4.2 so
that SATTPX effectively supersedes SATTP and the use of time-period subscripts
in data files also supersedes the need for users to set up specific .ps files. (.ps
files are still used - they are merely invisible to the user.) The file structure under
SATTPX is identical to that under SATTP as illustrated in Figure 17.3.
Note that, with later releases of the bat file (10.4 onwards?), SATTPX also
explicitly runs SATSUMA (see 17.5 next) at the end of multiple time period runs in
order to save the user having to call another bat file.
17.4.4 Multiple Time Period Network .Dat files: The use of Subscripts
The use of subscripts has been mentioned above in connection with the definition
of different trip matrices per time period and different LTP values; the procedure is
in fact general and m ay be applied to almost all parameter values set under
&PARAM in a network .dat file. See Appendix B.
♦ Add, as with fuel consumption which is stored in absolute terms, not as rates.
♦ Take data from the final time period, as in queue at the end of the time period.
In addition time - independent data such as link lengths are only stored once in
order to save space.
However, partly in order to save space, .uft files do not store full simulation data
such as cyclical flow profiles from each time period so it is not possible for
example, to edit and re-simulate individual nodes. Neither is the SAVEIT option
valid within .uft files so it is not possible to recreate routes from individual time
periods. For detailed analysis of these sorts the individual files networka.ufs etc
must be accessed.
Within standard bat files “T” and “UFT” may be used in virtually the same way that
“S” and “A” or “UFS” and “UFA” are used. See 14.2.2. For example you may use:
SATLOOK network UFT
Or
SATDB net1 UFT T 2 net2
Thus in the first time period (0<t<LTP) Q t represents an average transient queue
(see 8.4.8) while the permanent or over-capacity queue grows from O to Q 1 (so
that the average over-capacity queue would be Q 1 /2). Note that the growth of this
queue may be limited by blocking back, in which case the queue effectively
continues to grow on t he preceding link(s) and, possibly, on i nbound centroid
connectors. However in this case those delays are associated with the preceding
link(s), not the link at the “head” of the queue.
During the second time period, as illustrated here, the newly arriving flow is less
than capacity so that the permanent queue declines (line AC) but has not gone to
zero by the end of the second period. If however we just consider the Q 1 pcus
present at the start of the second period they decrease linearly (line AB) at a rate
equal to the capacity such that at time t x they have all passed through.
The delays experienced by the traffic arriving on t his link in time period 1 m ay
therefore be subdivided into four components.
1) Transient delays in time period 1, with total pcu-hrs given by the area (1),
the product of Q t and LTP.
2) Permanent queuing delay in time period 1 represented by the triangular area
(2) equal to Q 1 x LTP / 2.
3) The time spent by the Q 1 pcus in the permanent queue in the next time
period, triangle (3), plus....
4) ....the time spent in the transient queue in the next time period, rectangle
(4)**
The situation becomes more complicated in the second time period where not
only do we have queued traffic from the first time period but also newly arrived
traffic from the second period. Their delays are represented by areas (5) and (6)
with the possibility of extra delays in even later time periods. A nd to further
complicate matters the newly arrived traffic may be partly made up of traffic from
time period 1 which was caught up in queues upstream and arrivals later on in the
time period. T hus a por tion of the over capacity queue (5) and t he transient
queue (6) in the later time period(s) may be associated with queued-up traffic from
time period 1. Section 17.6.2 elaborates further on this topic.
Queue lengths are converted into delays by dividing by an appr opriate flow -
generally the capacity for over-capacity movements or the arrival/departure flow
otherwise.
However in defining delays we may need t o differentiate between the delays
experienced by traffic originating and/or arriving within that time period (part of
which may take place in later time periods) and delays purely within a single time
period (to include previously queued traffic).
Different functions may require subtly different definitions. T hus for assignment
purposes - where we are concerned with establishing routes for the new traffic on
the network - the relevant definition of delay per turn would need to consider:
**
For ease of illustration we have shown the transient queues in time periods 1 and 2 to be
equal; they need not be.
Delays to newly arriving traffic (as opposed to traffic in queues at the end of the
previous time period).
Delays incurred in later time periods by the newly arrived traffic (if there are
queues at the end of this time period).
For the purposes of assignment the most relevant delay is that experienced by the
traffic generated within that time period since that determines their route choice.
However for simulation purposes a more relevant definition of delay would include
both the new traffic and the previously queued traffic. For further discussion on
this point please see sections 17.8 and 17.10.
Note however that these problems only occur with over-capacity queued turning
movements and not with transient queues.
♦ TOTAL TRAVEL TIME: The sum of both link and junction times.
Here absolute totals, e.g. pcu-hrs, are subdivided by link type - simulation (S)
which here includes queues on simulation centroid connectors, buffer links (B)
and buffer centroid connectors (BCC) - and by this time period / later time periods.
Thus the simulation-based totals are not as disaggregate as those in Table 17.2
but are similar to those defined in the buffer networks.
In the buffer network link times are divided into three components to provide
comparability to simulation statistics:
results which would reduce the “noise” inherent in imperfectly converged solutions
could be obtained by averaging the data over, say, the final 4 loops.
This, post version 10.3, may be achieved as an option within SATLOOK (either on
its own or accessed from within P1X) through option 3 which allows both
averaging over the final n (user set) loops and/or printing of data (in the form of
Table 10.3) from a particular loop, not necessarily the final loop. The necessary
data from each loop (up to a certain maximum) is accumulated within SATALL
and included within the output .ufs files; see 9.7.
It has to be said that I have certain misgivings about this practice. In particular I
cannot see any advantage to using averaging data while the numbers being
averaged are consistently changing in one direction. For example, if the total
travel times on the final 4 loops were 102.0, 101.0, 100.5 and 100.0 then I would
much prefer to take 100.0 as my “best” answer than the average of the 4, 100.9.
On the other hand if the final 4 numbers were, in order, 101.0, 100.0, 102.0 and
100.5 then I can see the case for using 100.9. It’s up to the users to make up
their own minds! Printing the data from several final iterations may certainly help
you decide.
therefore represents the minimum possible values for total turn delays
in, say, 1633 or 4003 and it is definitely considered as a del ay. On
the other hand for all other assignment links which have a distance
(i.e., including simulation links) 1803 represents the cruise time at the
maximum link speed and in these cases should not be considered as
a “delay” component.
1853 - DATC: The delay at capacity, i.e. the difference in travel times
between flow= capacity and flow= zero. This may be used to
“parameterise” the flow-delay equations: see ??
4003 - Assignment Time: The times for each assignment link as calculated
during the assignment process as given by equations (8.5) (or, strictly
speaking, their more complex forms (8.11)).
4013 - Simulation Time: As 4003 but with the times for simulation links or
turns updated according to the simulation which follows the
assignment; i.e. using the data in 363 and 1633.
4023* - Simulation Time by link: Identical to 363.
The totals above may be calculated from the formulae given below, thus rendering
all output statistics totally transparent to the users. It also makes it possible for
users to calculate statistics for, e.g., a subset of links or for a particular user class.
Elements such as X1653, X4513 refer to the data contained in DA arrays 1653,
4513 etc, parameters such as LTP and A FTERS refer to standard namelist
parameters described in 6.3 and the numerical values such as 3600 and 60 are
necessary to convert, e.g. seconds into hours. Division by 2 is sometimes used
(e.g., in CQL.1) to calculate an average queue which is half the final queue.
WARNING: The formulae given implicitly assume that multiple time periods and
PASSQ are not being used such that the queues at the start of the time period
are zero. In particular this affects the queuing statistics CQ.1 etc. and other
formulae, e.g., fuel consumption, that make use of them. In principle it would be
possible to write down the correct formulae but it would be complicated!
In addition they do not include any contribution from buses on reserved lanes
which must be added some (not all) of these categories. A separate set of
equations is given in 17.11.3.
To calculate any of the quantities below it is necessary to first read the required
DA arrays into, say, SATDB or an eq uivalent spread sheet, calculate new data
columns following the formulae given and then sum individual link values over a
certain subset. Thus to calculate TQ.1, transient queues in “this” time period, first
read in DA arrays 1643 (turn capacity), 1653 (transient delay per pcu) and 4513
(actual flows), perform the calculation indicated and sum over all simulation turns.
Note that in certain cases not all simulation turns or links should be included but
an extra condition needs to be appl ied; e.g. that there is a pe rmanent queue
greater than zero on that link or turn, as with CQL.2. The select rules are given on
the far right.
In addition certain sums, e.g. CQL.2, are best calculated via certain “intermediate”
variables. T hus Q represents the number of queued pcus at the end of a t ime
period.
Quantity Formula Sum Over Select
TQ.1 X1653/3600 * min( X4513, X1643 ) * LTP/60 Sim Turns
TQ.2 TQ.3 - TQ.1
TQ.3 X1653/3600 * X4503 * LTP/60 Sim Turns
CQ.1 CQL.1 + CQC.1
CQ.2 CQL.2 + CQC.2
CQ.3 CQL.3 + CQC.3
CQL.1 X1483 * (LTP/60) /2 Sim Links
CQL.2 V * Q / X1663 Sim Turns Q>0
=
TQi X 4003 − X 1803 − 0.5 ∗ ( X 4503 / X 1833) − 1.0 ∗ ( LTP / 60 ) ∗ 3600
Then, sum the product of TQ i and the length of the over-capacity queue at the end
of the time period LTP over the same over-capacity buffer links as above to
obtain:
Where the first term above (which gives the total vehicle delay in pcu-hr) must be
summed over all buffer links, independent of whether or not they are over
capacity. Again division by 3600 is necessary to convert pcu-sec to pcu-hr.
Mini-Contents Page
INTRODUCTION
This section should be read in conjunction with Section 11.9 which documents, in
effect, a “sub-set” of the editing functions within SATURN, specifically the editing
of “properties” as opposed to structure. This chapter deals with the more general
problem of editing the network topology in addition to properties.
It could be argued that using ascii-based data files as the ultimate data source is
an out-moded form of operation in the 21st century and that a “proper” data base
system should be u sed instead. F air point! In their favour ascii files have the
advantages that: (a) they work and (b) they are perfectly transparent to the user
who can alter the network properties using an editor and “see” exactly what the
data base contains. Thus a 1 in column 28 of a buffer link record (see 6.6)
unambiguously defines that link as 1-way, 2 implies 2-way, etc. etc. What you see
is what you get!
A further less obvious point which occurs during editing is that if the underlying
network topology is changed, e.g. by adding or deleting links, then all the various
pointers that relate, say, simulation data to map data or assignment data are no
longer valid and that they must be reconstructed by, in effect, re-running SATNET.
one is editing an e xisting network, the internal .dat file is simply a copy of the
original network .dat file; if the network is being created from scratch a prototype
.dat file is created.
External copies of the .dat file may be “ saved” at any point within the editing
process (as shown in Fig. 18.1). Thus an out put .dat file is simply a s traight
forward copy of the internal .dat file. In the same way that you are strongly
advised to take frequent back-up copies of, say, word document files it is also a
very good idea during editing to periodically take copies of the .dat file, just in case
something terrible happens.
The internal data may also be output or “saved” in other formats, in particular as
.ufn file as described in 18.2.6 below.
It is also possible to screen edit over more than one data segment by specifying
the first line in the .dat file and up to 200 (roughly) lines following.
Equally, of course, .ufn files may be created by running SATNET directly on a .dat
file output by P1X/PMAKE but, in order to do this, it may be necessary to exit from
P1X first.
18.3.1 Objectives
PMAKE is the name given to a bat file which in fact runs P1X but without its
normal input .ufs file(s) such that the network is built entirely interactively on the
screen. In the context of figure 18.1 PMAKE builds (internal) map and .dat files
simultaneously such that at the end of the building/editing stages the internal .dat
file may be s aved as a proper .dat file for input to SATNET (or for “internal”
rebuilding of a .ufn file).
Thus the main objective of PMAKE is to create a .dat file for input to SATNET - or,
perhaps more accurately, to help in the creation of a .dat file. While PMAKE is
very good at certain operations, such as defining nodes and links, it is not perfect.
Users must therefore expect that at some stage in preparing a ne twork .dat file
they are going to have to “get their hands dirty” by doing some manual editing of
their dat file. Sorry, but life's like that!
Having, as a first stage, created a .dat file and, via SATNET, a .ufn file further
network editing may be continued by using the .ufn file as an i nput to P1X and
then choosing Network Editing from the top P1X menu as per 18.2 and 11.9.
Further topological changes may be m ade by entering PMAKE from the Edit
Menu.
PMAKE also maintains internally a pur ely buffer-style representation of the
network being created with its topology stored correctly but with only limited data.
This means that having built a network via PMAKE some of the normal analysis
functions of P1X become available, e.g. you may display link data or (possibly)
display shortest path trees. On the other hand, although you may define
simulation-nodes within PMAKE, it does not set up a simulation network structure.
All simulation-based data is stored only on the direct access .dat file.
However, by using the rebuild option to create a .ufn file, it is possible, without
exiting from PMAKE, to create a network with full simulation network details
included.
The namelist parameters to be eventually included in the output .dat file under
&OPTION and & PARAM may also be s et at any point during building; see
11.9.10.
Note that it is highly recommended that, as with word processing for example,
frequent copies of the current network are created using the “Save to a dat file”
options. T hus if mistakes do oc cur - whether yours or ours - the whole editing
session should not be lost.
In addition there may be advantages, having saved a .dat file, to exit
PMAKE/P1X, use SATNET to build a . ufn file from the latest .dat file and t o
continue the editing from P1X as described next.
“error listing” options process the current node coding and pr ints both the total
number and the explicit messages.
In theory the errors should be the same in both cases (or until you begin to correct
them); in practice there may be s light inconsistencies in that SATNET probably
checks for a wider range of errors per node since it considers the network as a
whole rather than a single node on its own. T hus it is always wise to check the
.lpn files for error messages even if the editing options in P1X used to create the
.dat file do not indicate any problems.
Note too that it is possible to have fatal errors at nodes in P1X (which may be
treated as semi-fatal in SATNET). T hese may limit the options available; for
example it may not be permitted to simulate a node if it has some fatal errors or to
optimize traffic signal stage times if there are fatal errors in the stage definitions.
The default values may be user-controlled by the use of “capacity indices” where
each capacity index will have its own set of free flow and c apacity speeds, a
capacity and a cost-flow power as required to define a buffer link time-flow curve.
New links may be either simulation or buffer, depending on the “status” of the A-
node and B-node. If buffer, an extra record is created in the 33333 data section. If
simulation, both the A-node and the B-node are updated to include the extra arm,
using default link properties. The user is then given the option to immediately edit
the new node codings via standard node editing.
In addition new links may also represent centroid connectors but only in the buffer
network (entered under 33333) or as external simulation node c onnectors (in
which case only is the data entered under 22222). New centroid connectors to
internal simulation links may only be entered via the simulation update facilities as
described in 18.7.
The reason why U-turns can occur at node C lies in the manner in which external
simulation nodes are “expanded” when they are introduced into the assignment
network. (In a similar fashion to the expansion of internal simulation nodes; see
Figure 5.2). Thus in the above network segment the assignment network
representation at node C is as sketched in Figure 5.2b. A ssignment nodes C 1
and C 2 represent the “ends” of the 1-way simulation links; C 3 represents the node
within the buffer network. Links C 1 C 3 and C 3 C 2 are one-way “dummy” links which
allow trips to pass between the assignment and simulation networks. Hence the
mini-path C 1 - C 3 - C 2 is a pe rmitted sequence of nodes in the tree building
algorithms.
(B) The assignment network representation of a combined external
simulation and buffer node
The problem is inherent in the SATURN network data structure and t he tree
building algorithm used; it could be removed but only by explicitly “expanding” all
turns in the buffer network as well as the simulation.
The problem becomes particularly acute if the external link B-C has been given a
purely notional travel time of, say, 1 second with the “real” travel time on that link
being coded as part of a buffer link.
The assignment tree-build algorithms detect and ban sequences such as C 1 - C 3 -
C 2 above under MOST circumstances but not, for technical reasons, ALL. What
is not that clear is how often such undesired U-turns are likely to occur in practice;
it should not be too often. Certainly it is only possible in networks which combine
simulation and buffer networks and at two-way links between the inner and buffer
networks.
A not-uncommon example of the situation depicted in Fig 18.2(A) occurs if the
local “buffer network” consists only of a zone as explained further in Sections
16.6.3 and 16.6.4.
A secondary problem (although, again, not very common) arising from U-turns is
that they may conceivably affect the convergence of the assignment–simulation
loops if a U-turn is used on one loop but not on the next.
1) Try to choose your external simulation nodes such that the links between
them and the simulation network are one-way.
2) Otherwise try to make the links to external simulation nodes as long as
possible.
3) If neither (1) nor (2) is practical try extending the definition of the buffer
network well away from the anticipated trouble spot.
4) Avoid connecting zones to “stub links” via a centroid connector defined under
the 33333 buffer link records as opposed to the 22222 simulation centroid
connectors; see the discussion in 16.6.4.
with no connections between X1, X2 etc; hence X1 and X4 have no exits. Had X
been connected to either a buffer node or zone Z then there would be “dummy”
links as in Figure 5.2b from X1 and X4 to Z.
A “solution” to the above problem is to re-code X as an internal simulation node,
the most obvious candidate being a priority node. In fact this correction is made
automatically within PMAKE under certain circumstances; see 11.9.11.
A more general discussion of network connectivity is given in Section 5.5.4.
Mini-Contents Page
INTRODUCTION
19.1 Introduction
This section considers how to run interactive programs, primarily P1X and MX,
using the mouse and/or keyboard once they have been s tarted using, e.g., the
command line approaches outlined in Section 14. The same programs may also
be run in a more batch-like style using KEY files as explained in 14.5.
19.3 Menus
Menus within SATURN appear in four basic forms:
♦ “Menu bars”: menus with pull-down menus which appear along the top of
(some) graphics screen and which supplement choices in the banner. (19.5)
♦ the “text-based” form whereby the menu occupies the entire screen (or
window) and user input is from the keyboard (19.6);
♦ further sub-menus;
♦ executable routines;
♦ numerical variables;
♦ scrollable variables
Thus a sub-menu choice takes you into a further menu system while an
executable routine initiates a par ticular “do this next” option (although the
distinction may be somewhat arbitrary as a do-this next routine may well start with
a menu).
Variables come in several forms although all have the basic property of
associating a value with a par ticular parameter, e.g. origin zone = 67. Thus
numerical variables can take on a w ide range of values as with a par ameter
associated with zone numbers. By contrast a logical variable can only have two
values, effectively true or false, on or off etc. Fi nally a scrollable variable is
basically numerical but one that takes on a relatively small number of values, e.g.
a parameter which defines one of three or four allowable options.
If a nu merical variable is selected you will next either be prompted for the new
value or, possibly, choose from a l ist of allowable values. A logical variable
requires no further action, it simply changes or “toggles” to its logical opposite. A
scrollable variable changes to the next value in its list, returning to its “top” value if
the bottom of that list is reached.
The distinction between the two has implications for the terminology used to
describe “exits” from menus as discussed next.
In addition to the “normal” menu exits of forward, back and next referred to above
it is also possible to “quit” a menu abnormally which effectively terminates the
current operation and goes back one or more levels in the menu structure. I n
most situations “quit” has the same effect as “return” or “back”. H owever when
the normal return operation is to the “next” menu quit aborts that step and
definitely returns you to an upper level.
19.3.2 Terminology: Exit, Return, Continue, Next, Quit, Back, Cancel, etc.
The terminology used to describe the different exit modes may differ between
different parts of the programs and some explanation of the terms used may help.
“Return” is used, mostly in text menus, to indicate either “back” or “next” - the
context of the menu decides which. Somewhat unfortunately, given what comes
next, in graphical banners it is referred to as “Q-return”, the primary reason being
that the letter Q is not very often needed to denote other operations whereas R for
“Return” could conflict with, say, R for “Repeat”. “ Q-continue” is also used to
signify continue to the “next” menu.
The abnormal or “quit” exit is also referred to by more than one term or letter -
generally Q for Quit in text menus but also as QUIT when asked to set file names
from the keyboard or “Cancel” when setting them a Windows dialogue box.
Generally speaking abnormal quits are not present within graphical banners.
To exit fully from a program you must successively “return” back up to the master
menu where the quit/return option now signifies exit from the program.
Alternatively, you may exit at any stage by clicking on the exit cross (upper right)
in the current “background” window or by choosing Exit under Files in the menu
bar.
19.4.2 Focus
A particular problem encountered within 32-bit Windows SATURN is that under
keyboard control the input from the keyboard is directed to an “invisible” window
which, in effect, only exists as a minimized token on the tool bar at the bottom of
the screen with the title “Key Input”. When this token is “highlighted” or “in focus”
the program is waiting for a keyboard input to the banner menu; when it is not
highlighted it is expecting other forms of input.
Or so it should be. The problem that arises is that when the key input token has
been set in focus by the program the user may accidentally transfer focus
elsewhere by clicking with the mouse somewhere else on the screen. When this
happens the program will “hang” - it wants a keystroke command but the system's
attention is elsewhere.
The solution is simple - click on the “key-Input” token in order to highlight it, hit the
key you want and off you go.
Note in particular that the menu bar contains a “Back” option which is equivalent
to Q-return in the banner proper and both are generally present. Users may find
“Back” easier to use for going back over several menus, e.g. to return to the
“master menu”, since its position on the screen is fixed.
Alternatively under Back one may also return directly to the Master Menu or to any
of the 13 sub-menus choices normally contained there.
Note that the menu bar is NOT active under keyboard control.
enter the help mode simply type ‘H’ in response to a text menu or click on ‘Help’ in
the banner or menu bar.
Essentially the help mode is a form of on-line editing system whereby the program
reads from a pre-prepared “.HLP” file at the relevant spot for the particular menu
from which it is called. The user is then able to “browse” through the help file by
commands which move the screen up or down in the file, e.g. with the cursor
keys. Exit to the original program is as indicated on the screen.
A special feature of all Help files is that a general program description is contained
at the very top of the file - this can be accessed by hitting the <home> key so that
the “screen” will be s hifted to the top of the help file no m atter where you are
currently positioned.
Unfortunately not all menus have a corresponding pointer into a help file; thus
sometimes a request to enter help will only get you a slightly rude message -
better luck next time!
A further use of the Help files is to obtain help on the output from an interactive
program AFTER the output has been produced - as opposed to obtaining it
beforehand whilst viewing the menu. The help in this case describes the
interpretation of the previous output.
Since .hlp files are ascii or “text” files it is quite feasible for users to edit them so
as to add their own site-specific information. However it must be noted that, from
version 9.2 onwards, .hlp files are stored as “direct access” files, which basically
means that all lines must be the same length. Standard edit programs may well
truncate short added l ines such that the edited version is no longer valid under
direct access. If this happens, use the MAKEDA77 facility supplied as part of
DBOS to recreate the direct access format.
Mini-Contents Page
20.1 Introduction
Increasingly these days motorists are being asked to pay directly to drive along
specific routes or to specific locations and the location and scale of these charges
are planning issues. This section describes how such charges - or “tolls” as we
prefer to call them - may be modelled within SATURN, with particular reference to
new facilities introduced in SATURN 10.3.
Tolls arise in a num ber of different contexts, for example, fixed tolls to cross a
bridge or to use a section of motorway, tolls levied to enter a particular area of a
city (whether collected directly at a toll point or indirectly via electronic methods) or
entry-to-exit motorway tolls. Other less obvious examples include parking
charges.
One common feature of most tolling systems is that their impact is differential
across the population of all drivers. For example tolls may differ between cars and
trucks, parking charges will differ between short-stay and l ong-stay, etc. etc. In
addition the “perceived” cost of a toll may depend c ritically on w ho is paying it.
Thus most studies of charges in SATURN are carried out in the context of
“multiple user classes” (see 7.3)
Note that this file contains two knob data fields (the columns headed by 4 and by
3.0), either or both of which may be us ed to define tolls; how this is done i s
described below. In addition tolls are applied both to links (73-37 etc.), turns (24-
26-1) and centroid connectors (the zone being indicated by the letter C).
Both inputs use the convention that tolls are indicated by either the £ or $ symbol
although in slightly different locations. Thus within the 44444 r ecords the toll is
entered within the appropriate user class columns of a pa rticular link record as,
say, “ £50” or “ $50” to indicate (somewhat perversely - see below) a toll of 50
pence. Hence each and every toll has to include the £/$ symbol. An example is
given below:
44444
22 21 $ 25
21 22 $ 50
7 63 $ 50
32 33 $ 50
99999
The position of the entry $10.0 (columns 31 to 35 in the original) indicates that it
applies to the second knob data field and that all entries in that field are: (a) to be
interpreted as monetary and (b) multiplied by 10.0. Hence link 75 to 37 above will
have a charge of 10x3.0 = 30 “pence” levied against it, link 22 to 26 has no toll
since its second field is 0.0 (the first knob field is presumably used for some other
purpose), etc, etc.
(We note that the weighting factor above should, see 6.11, be input as a “real”
value, i.e., with a decimal place, but that, post 10.6, an integer input will be read
as an integer. Thus $10 would be interpreted as 10.0, not 0.10)
The other clear advantage of defining tolls within a s eparate KNOBS file rather
than within the .dat file itself is that it will be much simpler for users to re-define
tolls or to interface SATURN with other programs which, for example, are setting
optimum tolls.
equal one of the larger. We have further assumed that it will be more convenient
for users to think in terms of individual charges being integer numbers of pence,
say, rather than fractions of pounds - 50p rather than £0.50 - but that in terms of
reporting total revenue collected through tolls they would prefer £2567.50 to be
output rather than 256750p.
This means that individual tolls are always input in units of pence/cents etc. but
that aggregate output statistics are always reported in pounds/dollars/euros/etc.
The “names” of the units may be user-set via the namelist parameters CURNCY
and COINS under &PARAM in network .dat files - defaults are “pounds” and
“pence” respectively.
The one unfortunate aspect of these conventions are that the £ or $ symbols are
used to indicate whenever monetary units are being used as inputs but the inputs
themselves will not be in pounds or dollars but in pence and cents. You get used
to it! The reason for this (as well as the absence of a euro symbol) is simply that
the $ and £ symbols are much more common on keyboards than any other
monetary symbols.
C= K ∗V 8k / ( PPM / 60.0 )
where K is the value of the KNOBS entry, V8k is its multiplier in the 88888 data
records (where it would be preceded by $ or £) and PPM is pence per minute. If
there were more than one KNOBS entry then C would be summed over all entries
and, with multiple user classes, the values of V8k and PPM would be user-class
specific.
Note: SIMULATION (S), BUFFER (B) AND BUFFER CENTROID CONNECTORS (BCC)
Thus we note that in this example that of the total 1,456 euros generated by
vehicles passing through various toll points 349.4 were from tolls on s imulation
links, 479.9 from tolls on buffer links and 626.7 on buffer centroid connectors. In
addition the simulation totals may be further disaggregated into tolls generated
during the time period simulated and through queued trips which would pass the
actual toll points in a later time period. (The units of “euros” will have been defined
by the Namelist parameter CURNCY.)
Although not strictly relevant here the total pcu-hrs on (time) penalized links are
also shown above to emphasize the point that monetary tolls are distinguished
from the (possibly nominal) time penalties.
A .ufm matrix of tolls may be obtained using the standard batch file SKIMTOLL as
described in 15.27.4.
We may first note that car parks in SATURN may either be represented either as:
♦ zones whereby all traffic in the trip matrix to or from a zone is assumed to be
to or from the equivalent car park, or
♦ as nodes which are not themselves zones but are connected to zones via a
further series of links which represent walk links (See 15.46).
The simplest method to apply parking charges is to ensure that every entry point
to a c ar park (whether zone or node) goes through a l ink (not a centroid
connector) whose exit leads to a c ar park and t hat an appr opriate “toll” (equals
parking charge) is levied on that link.
Note that the entry links to car parks may be as signed speed-flow curves with
capacities appropriate to the capacity of the car park. If there are multiple en
tries/links to the car park then it may be bes t to “channel” them all into a single
entry link where the capacity is applied, otherwise with multiple entry capacities
the total capacity may be over-estimated.
1) Rather than randomising the perceived cost on each link, a single perceived
VOT (i.e., PPM) is generated once per origin;
2) The randomised VOT is applied only to those links with tolls and only to their
toll component.
Thus all steps in the algorithm described in Section 7.2.2 are retained except that
the randomisation of costs in step 2(a) proceeds as above.
Thus, whatever VOT/PPM is generated per origin, that value is applied to all tolls.
With standard SUE it is possible that a randomisation of all link costs may imply
that, in effect, a driver applies a high value of time to one toll but a low value to
another. Logically a s ingle driver should perceive all monetary tolls in the same
light.
To use the above method in SATURN the user must set both SUZIE and (a new
variable) STOLL (for StochasticTOLLs) to T under Namelist &PARAM. In addition
a choice of randomisation method must be made through the choice of KOB; see
Section 7.2.3 for further details.
The use of cumulative density functions (CDF) (KOB = 3) to describe the
distribution of VOT/PPM was specially introduced to be us ed with STOLL, in
particular to deal with asymmetric or skewed distributions of VOT. See 7.2.3.2 for
further details. (Note in particular that the CDF represents the distribution of a
unitless multiplier which is used as per equation (20.2) below to create
randomised perceived tolls.)
Thus the equation by which a monetary toll M (in units of pence) is converted into
an equivalent generalised time penalty T (in seconds) is given by:
T = 60.0 * M / (PPM x R) (20.2)
where R is the PPM multiplier randomly selected from the CDF (whose “central”
values should therefore be around 1.0).
We therefore note that, within the STOLL algorithm, the random multipliers
selected from a distribution are actually used to convert tolls into time units, not
the other way around. Hence the distribution of perceived tolls is really the
inverse of the VOT distribution which the user inputs, Generally speaking, a value
of time distribution will be pos itively skewed towards higher values. Users
therefore need to be careful that they define a CDF with the correct skewness. For
example the .cdf file (see 7.2.3.2) might look something like:
0.5
1.0
1.5
2.5
5.0
in order to generate a preponderance of high effective values of PPM. Note that in
this case the mean value of PPM will therefore be greater than 1.0.
Mini-Contents Page
21. Alternative Network Data Structures and Assignment Methods: Origin Based
(OBA) and Path Based Assignment 21-0
21.1 Network Data Structures 21-1
21.2 Advantages and Disadvantages of OBA and Paths 21-2
21.3 Perturbation Assignment (WSTART and/or IPERT) 21-3
21.4 Storing Path Files: UFO and UFQ 21-5
21.5 Practical Restrictions within SATURN 21-5
21.6 Additional OBA Output Files 21-6
21.7 Practical Considerations 21-7
21.8 Examples of OBA Applications 21-8
21.9 Further Information 21-11
21.10 Version Control 21-12
INTRODUCTION
21.1 Network Data Structures
Traditionally SATURN has always stored network data required for the
assignment in arrays based on network links, e.g., V a . This is not to say that the
algorithms used such as Frank-Wolfe (7.1.2) only consider link-based data. For
example, Frank-Wolfe explicitly calculates and loads minimum cost paths (step (3)
in 7.1.2) in order to generate new sets of link flows; it does not, however, actually
store path flows explicitly since, for computational reasons, they are not required.
It is, however, possible to formulate alternative data structures in which additional
data is stored at a higher level of “disaggregation”. Thus we may store either:
(i) link-based data (as above),
(ii) path-based data,
(iii) origin-based data.
Thus under ii) we explicitly store information on every path generated plus its
assigned flow T pij in addition to link-based data such as V a .
Origin-based data (BarGera, “Origin-based algorithm for the traffic assignment
problem”, Transportation Science 36(4), 398-417, 2002) is, in a c ertain sense,
intermediate between link-based and path-based in that it stores the link flows as
generated by each individual origin:
Equation 21.1
where P ija is the proportion of the trips T ij from origin i to destination j which use
link a.
Neither path- nor origin-based methods preclude link-based data: indeed link
flows may always be o btained by suitable summations of either path or origin
flows. The extra information stored may often be usefully applied to improve our
understanding of the solutions generated.
However, the main advantage of the alternative data structures is that they allow
fundamentally different assignment algorithms to be constructed which, as we
shall see below, have been shown empirically to be superior to link-based Frank-
Wolfe in a number of respects (although they also have disadvantages as
discussed below).
Parameters which specifically control the choice and appl ication of path-based
assignment are described in 21.7.1; in brief, set MET = 1 under &PARAM.
In addition all (or almost all) standard post-assignment analyses such as trees,
forests, select link analyses etc. are also available with OBA with the added
advantage that the solutions being analysed are exact, not approximations to
previous solutions. In addition the various problems created by “residual path
flows” under Frank-Wolfe (15.57) are virtually non-existent under OBA and very
much less common under path-based algorithms (where social-pressure based
algorithms, see Appendix H, preferentially remove residual flows).
Path-based assignments, on the other hand, may significantly improve the
accuracy of an i ndividual assignment but without, however, achieving the same
ultimate convergence as OBA. N evertheless there are much more significant
improvements in carrying out perturbation assignment with path-based methods.
See 21.3 below.
Disadvantages, certainly for OBA, are due to limitations in the computer code
rather than to absolute theoretical restrictions. Whilst the previous limitation to
single-user class applications was overcome with the full release of the multiple-
user class version as part of SATURN v10.9 in September 2009, OBA cannot be
currently used for elastic assignment (and it is unlikely to be extended in the near
future).
The major practical problem with path-based assignment is the heavy requirement
for computer memory (RAM) to store the individual path information. This sets an
upper limit on the size of network that can be handled although as the available
RAM within computers increases through technological developments the upper
limits will increase correspondingly.
name of the file from which the warm start data is to be extracted is specified by
the &OPTION parameter UPFIL.
There are, however, certain restrictions in that an OBA perturbation is only
possible if both the “old” and “new” networks have an identical network structure in
terms of nodes and l inks; path-based perturbations can “translate” non-identical
network structures.
only work for a s ingle user class while OBA (post 10.9) allows multiple user
classes. In addition OBA will also only work for a fixed trip matrix whereas path-
based allows elastic demand models.
In addition, while virtually all “SAVEIT-based” analysis options described in 15.23
have been extended to use .UFP or .UFO files instead of .UFC., a few have not.
Thus OBA assignment cannot be used to generate cordoned matrices within P1X
(although they do work within SATCH) nor does it work with SATPIG.
However, post 11.1, it is now possible to create a Fr ank-Wolfe equivalent .UFC
file from an .OBA solution using the procedure SATUFC described in 15.23.5 such
that programs such as SATPIG etc. may be applied indirectly to OBA solutions.
♦ New links – sum over all origins of the number of new links added to the
restricting subnetwork.
♦ Removed links - sum over all origins of the number of links that has been
removed from the restricting subnetwork.
♦ Merge nodes – sum over all origins of the number of merge nodes, i.e. nodes
with more than one approach (entering link), in the restricting subnetwork.
Non-basic approaches – sum over all origins of the number of non-basic
approaches in the restricting subnetwork; where for every node one approach is
considered basic, and all others (if there are any, i.e. if it is a merge node) are
considered non-basic.
Net.olg – Log file in text format that includes various messages mainly for
software development and debugging. Please send this file with any support
request.
Net.ost - Stores the complete OBA solution in compact binary format as used by
program segments written in C. The same basic information is also stored in .UFO
files but these are used by programs written in FORTRAN. Thus P1X reads .UFO
files whereas SATALL, when run in “perturbation mode”, reads .ost files (See
22.5.4).
Net.ofn – Stores the complete OBA solution in expanded text format. (This can be
an extremely large file even for networks of modest size and i t is normally
excluded.)
21.7.1 Parameters
The following parameters defined within the network .dat &PARAM records control
the choice of method / data structure plus various sub-options:
MET 0 Use link-based methods (Default)
1 Path-based
2 Origin-Based Assignment
IPERT 0 Non-perturbation assignment (Default)
1 Perturbation assignment
ISP 0 Path-based Frank-Wolfe algorithm (Default)
1 Social Pressure
2 “Enhanced” Social Pressure
N.B. IPERT and I SP only apply to path-based assignment, i.e., when MET = 1,
and therefore are virtually never required. To request OBA the only parameter
that needs to be set is MET = 2.
Alternatively, the choice of perturbation or not may also be set within &OPTION
using the logical parameter:
WSTART F Non-perturbation assignment (Default)
21.7.2 FTN95_NEW_MEMORY
In order to run OBA with relatively large networks (in practice this means virtually
all networks) an env ironmental parameter FTN95_NEW_MEMORY has to be
turned “on” such that the internal memory used by the OBA calculations (which is
programmed in C) is released and r ecycled when it is no l onger needed. If this
parameter is not set then SATALL will almost certainly crash, in a random
manner, due to memory allocation problems.
Since the release of SATURN v10.9.12, the parameter is automatically set either
by SATWIN or within the SATURN (or SATALL) batch file so it should be
“invisible” to the user. However, if for any reason the versions of satwin.exe
and/or satall.bat being used are not up-to-date, problems may result. I f you
encounter problems, please contact us in the first instance.
There may also be instances where the amount of memory required to store the
path information is beyond the physical limit available to individual programs
under 32-bit Operating Systems (circa 1.6Gb RAM). This has occurred once with
a very large network (i.e. 30000+ nodes, 1500+ zones, 7+ user classes and
mostly non-zero demand ij pairs). Again, if you encounter problems, please
contact us in the first instance and it is very likely that the model will need to be
run within a 64-bit operating system.
♦ Headingley: a s ingle pcu per hour was added to one par ticular O-D pair
(equivalent to 0.5 pcu’s since LTP = 30 minutes);
Results for Headingley are given in Table 21.1. Thus we note that, from the OBA
results, adding one extra pcu/hr, has increased the total pcu-hrs by 0.39 whereas,
from the Frank-Wolfe results the extra trip has, counter-intuitively, reduced the
total pcu-hrs by 0.15. Given that the assignment delta values for OBA are roughly
3 orders of magnitude better than those for Frank-Wolfe we may safely assume
that the OBA results are the “correct” results. Thus, despite a relatively large
number of assignment iterations, the “noise” in the Frank-Wolfe solutions has
rendered the results somewhat meaningless.
We may also note that, although it is not highly relevant here, that OBA requires
many fewer iterations and roughly half the CPU time as Frank-Wolfe so that its
improved convergence is not simply the result of extra number crunching.
Table 21.1 - Headingley (Before and After)
Frank-Wolfe OBA
Comparable results from York are given in Table 21.2. (The format is slightly
different from Table 21.1 since the York network contains a simulation component
so that we give assignment-simulation loops rather than assignment iterations and
add Gap values.)
The overall conclusions are similar to those obtained for Headingley. OBA
predicts a reduction in total pcu-hrs of 2.4 (as would be expected by adding an
extra lane on a congested road) whereas Frank-Wolfe predicts an increase of 6.0
pcu-hrs. Again one would interpret the discrepancy between the signs of the two
sets of figures as being a result of the increased “noise” in the Frank-Wolfe
solutions.
In this case OBA does require more CPU time than Frank-Wolfe (particularly, for
no obvious reason, in the after case).
Frank-Wolfe OBA
Loops 37 39 31 68
CPU (secs) 170 177 234 551
Finally, results from ”Inkton” (not its real name!) are given in Table 21.3.
Somewhat paradoxically, given that the scheme locally “optimised” a set of traffic
signals, both OBA and Frank-Wolfe agree that total pcu-hrs will increase, by 8.5
and 5.4 respectively. Again, given that the OBA Gap values are an or der of
magnitude better than Frank-Wolfe, we would assume that there is less “noise” in
the OBA results and that 8.5 is a better estimate. Frank-Wolfe is therefore “in
error” by 3.1 or 36.5%
In terms of cpu times three of the four runs were very close to one another, the
one exception being OBA After which took roughly twice as long.
We may note a f urther “interesting” feature of the Inkton results which is that
Frank-Wolfe and OBA have converged to two significantly different solutions, as
evidenced the differences in the total PCU-hrs (e.g., 6838.1 vrs 6977.1). Thus we
have an example of multiple equilibria which, theoretically, are certainly possible
within SATURN given the “interactions” between flows and delays at intersections,
although very difficult to predict. (Their existence in this network may be somehow
related to the fact that local signal improvements do no t lead to global
improvements.)
We may further note that the two sets of equilibria appear to be “stable”, in that if
we start OBA off from the final Frank-Wolfe solution it converges to the same point
and, equally, if we start Frank-Wolfe off from OBA. In theory, it might be possible
for the before and after solutions to converge to different equilibria with the same
algorithm and therefore give very different benefits (/disbenefits) but, in this case,
it appears not to have happened.
Frank-Wolfe OBA
In general, we conclude that, for these relatively small schemes, the estimates of
benefits given by Frank-Wolfe are widely in error with 2 out of 3 having the wrong
sign. In addition the “correct” OBA results are obtained with broadly comparable
cpu times.
In practice, of course, schemes this small will be the exception rather than the rule
and we would expect that the influence of noise in Frank-Wolfe would decrease
(relatively speaking) as the magnitude of the benefits increased. Nonetheless it is
always reassuring for a modeller to know that results are as accurate as possible
across all schemes, not just for large schemes.
♦ the 2010 follow-up paper ‘The Practical Benefits of the SATURN Origin-
Based Assignment Algorithm & Network Aggregation Techniques’. A copy of
the paper may also be found in Appendix T.
Mini-Contents Page
22. Kick Starts: Updating, Warm Starts and Continuation Techniques 22-0
22.1 Introduction to Kick Starts 22-1
22.2 Review of Traditional Kick Start Options 22-2
22.3 Warm Starts (WSTART = T) 22-4
22.4 WSTART with Topologically Identical Networks and Matrices 22-6
22.5 WSTART with Altered Networks and/or Matrices: UFO Files 22-7
22.6 Warm Starts with Elastic Assignment 22-12
22.7 Advantages of Kick-Starts 22-12
22.8 Version Control 22-13
INTRODUCTION
22.1 Introduction to Kick Starts
Any methods within SATURN which permit an assignment to start with useful
information regarding the ultimate solution will be referred to, in the most general
terms, as “kick starts”. (The term “warm start” might be more appropriate but, as
we shall see below, warm start is used to refer to a particular technique.)
Thus two “assignment problems” A and B (where we define an as signment
problem as a c ombination of an input network and trip matrix as illustrated in
Figures 3.1 and 3.2) may either be the same or differ in terms of their:
♦ network properties,
♦ trip matrix.
Where, under network properties, we include both node and link properties such
as distances or capacities etc. and SATURN parameters such as GAP, NITA, etc.
If problems A and B are the same or “similar” in all or some of the above respects
then it may be possible to use information from the solution of A to help us solve B
more efficiently.
Examples of the sort of information which may be useful include (in no particular
order):
♦ link flows
blocking-back factors and queue reduction factors (QRF). (In addition it also
transfers simulation CFP’s which UPDATE does not, but that only affects the initial
simulation and does not play a major role in overall convergence.)
RESTART may only be used when the only change has been t o the trip matrix
and there is therefore no need to re-run SATNET in order to re-create a network
file.
Both, in fact, function in a v ery similar fashion to the Frank-Wolfe based Warm
Start option (described below)
UPDATE No No No
REDMEN No No No
DIDDLE Yes Yes Yes
Perturbation No No No
Equation 22.1
Va ( 2) = Va (1)
where (2) refers to the “new” network and (1) to the old. This situation is likely to
arise, for example, if a network has been “edited” so that certain link properties
such as saturation flows or lane allocations have been altered but no links added
or deleted or if certain parameters under &PARAM have been re-set. These are
typical of the “network calibration” stage.
However, if there are either any topological network changes or changes to the
trip matrix then it will be nec essary to create a “ guesstimate” of the initial flows
obtained by assigning the “new” trip matrix to (as far as possible) the previously
assigned paths and in the same proportion:
Equation 22.2
Va ( 2) = ∑ Tpijδ pij
a
pij
Where P pij (2) represents the (estimated) proportion of trips from origin i to
destination j using path p in the “new” network, T ij (2) is the “new” trip matrix and δ pij
= 1 if path pij uses link a, else it is equal to 0.
If only the trip matrix has changed then applying equation (22.2) is relatively
simple since any paths in the old network must exist in the new network with the
identical structure and we can equate P pij (2) = P pij (1).
However, if certain links have been de leted in the “new” network, then an “old”
path pij may no l onger be “valid” in the “new” network and it must be s omehow
“spliced” to fit into the new network; hence extra complications arise since we will
need to somehow estimate P pij (2) from P pij (1). (N.B. Adding links introduces fewer
problems since all old paths must still exist although there are minor problems in
translating link numbers etc. between the two systems and/or deciding whether or
not any traffic should be assigned to the new links.)
A common example where the trip matrix changes but not the network occurs
when SATURN is being used as a pure assignment model in conjunction with an
external demand model (see Section 7.4.5). Alternatively changes to the network
with the trip matrix fixed occur routinely during network calibration (in addition to
changes in link properties).
In either case the initial set of flows V a (2) should provide a m uch better starting
point than an all-or-nothing solution and consequently result in considerably faster
convergence of the assignment (in addition to any benefits obtained by using
UPDATE = T, e.g., improved cost-flow curves)
We briefly note here that the equations such as (22.2) constitute the crux of the
problem as far as link-based Frank-Wolfe algorithms are concerned where
calculations involving path flows are difficult; by contrast they are “meat and drink”
to either path-based assignment or OBA. The introduction in 10.6 of UFO files, as
described in detail in 22.5, is the critical addition that allows warm starts to be
applied across the board.
Sections 22.4 and 22.5 below describe respectively how both functions are carried
out with particular reference to link-based Frank-Wolfe assignment; path-based
and OBA are dealt with in Section 21.3.
by the use of 44444 ba nned turns. In this way the do-nothing network might be
used to warm-start the do-something using the simpler methods described here.
As we shall see in the next section running a warm start when there have been
topological changes is more complicated and may require more CPU time.
An interesting extension of the idea of applying a w arm start on a t opologically
unchanged network occurs when none of the network changes affect the
assignment at all; for example when a network is updated by simply adding a new
or different set of counted flows to the .dat file or a different set of timed routes for
validation purposes. In this situation there is no need t o carry out any form of re-
assignment since the flows from the previous network are equally valid in the new
network. To take advantage of this fact set WSTART = T and MASL = 1 in the
updated network (and preferably SAVEIT = F since the old .UFC file is still valid as
well) in which case all SATALL will do is to copy the old flows over, run a single
simulation and one can go directly into analysis in P1X with the new counts and/or
timed routes available.
Finally we note that, in particular, WSTART may be very efficiently applied in the
“topologically-equivalent” mode when a network which has been run under a
previous release of SATURN is run under a later release (i.e., currently only 10.6
since this was the first release where WSTART was provided).
22.5.1 Introduction
As mentioned in 22.3.1, if either the network or the trip matrix differs between the
“new” and “ old” networks, then the previously assigned flows (equation (22.1))
may not be us ed as a prior estimate of the new assignment and t he more
complicated path-based equations (22.2) and (22.3) must be used. These
situations arise routinely during network and/or matrix calibration and during links
between SATURN and external matrix demand models.
With either path-based or origin-based assignments it is relatively straightforward
to re-assign a (potentially new) trip matrix to the formerly assigned paths. For
technical details please see Section 21.3. However there are problems carrying
out these calculations with link-based Frank-Wolfe (which, unfortunately, is what
most SATURN applications use).
These problems have been successfully overcome within 10.6 by the introduction
of “UFO files” as an alternative method to UFC files (see 15.23.6) to store
assignment path flows by using techniques developed under OBA (see 21.4).
(Basically that is all you need t o know about UFO files so, if you feel that is a
sufficient explanation, feel free to skip over the more detailed description in 22.5.2
to 22.5.6 and go straight to 22.5.7!)
Note that UFO file are created routinely and with, effectively, very little extra CPU
time under OBA (met = 2) whereas to create UFO files from the starting point of a
Frank-Wolfe assignment (met = 0) may require considerable extra CPU time. In
the latter case the extra CPU time to create the UFO file in the first place may
actually be greater than the CPU time saved by subsequent applications. This is,
therefore, a major benefit in using OBA assignment.
22.5.5 Estimating Initial Flows with a New Network and/or Trip Matrix
Having obtained a “ best estimate” UFO solution by origin we may now simply
apply equations (22.2) and (22.3) in order to obtain an i nitial solution for the
assignment algorithm (whether Frank-Wolfe or OBA) which may then proceed as
normal – except, hopefully, an awful lot faster!
Note that this application of a warm start may be applied if (a) only the network
has been topologically changed or (b) if only the trip matrix has been changed or
(c) both. Situation (a) occurs routinely during network calibration; situation (b)
occurs not only during matrix calibration for a base year but also, very importantly,
with VDM when SATURN is being linked with an ex ternal demand model (see
7.4.5).
In the case of VDM the use of warm starts may lead to considerable reductions in
CPU time. However, to repeat the warning on CPU time given at the bottom of
Section 22.5.1, it may well be that, under Frank-Wolfe assignment, the extra CPU
time required to create a .UFO file at the end of one assignment in order to warm
start the next assignment may in fact be greater than the CPU time subsequently
saved. However, this does not apply to the use of origin-based assignment (OBA)
where the extra CPU to create a UFO file is minimal and the time savings may be
significant.
We therefore strongly recommend the use of OBA under external VDM.
♦ Reduced cpu time for analysis, e.g. select link, skimming etc.
Mini-Contents Page
INTRODUCTION
23.1 Introduction
This section discusses various ways in which SATURN users may interface their
SATURN data with “proper” GIS systems such as MAPINFO and ARCINFO and
vice-versa with a view to obtaining the best possible outputs by the using two sets
of systems in combination.
We note that SATURN has its own system of “.GIS files” which should not in any
way be confused with “proper” GIS systems such as ARCINFO. What a .GIS file
provides is a very simplified form of data coding whereby useful data such as
information on t he shape of curved links, node text names, etc. etc. may be
accessed by SATURN programs to make their outputs more meaningful. Indeed
one of the objectives of this section is to suggest ways by which SATURN .GIS
files may be set up automatically from (proper) GIS systems and their associated
data bases.
A slightly different form of software with which SATURN may be us efully linked
are packages such as GoogleEarth which can provide background .bmp files for
network plots as well as extremely useful network information such as lane
structure at intersections.
♦ Matrix data
♦ Link-based data
Of these the third is the most common whereby a SATURN user wishes to export
assignment outputs such as link flows or speeds for display or manipulation in a
GIS system. The simplest and most common way to do so is to use an ASCII file
dump from a program such as SATDB or P1X (11.10.9) or utilities such as
DBDUMP (see 15.46) to create text (ASCII) files which can be read by a GIS
system.
One problem that arises here is that SATURN identifies links in terms of their A-
node and B-node numbers but a GIS system may not have the same information
but prefer to have its data geo-coded by co-ordinates. There is a v ery useful
option within “Read Miscellaneous Data” in SATDB where option 6 creates 4 data
columns consisting of the (X,Y) co-ordinates for both the link A-node and B-node;
clearly these may then be included on an out put ASCII file to geo-code each link
entry. Alternatively a separate file of node numbers plus X,Y co-ordinates may be
created; see 11.4.2 and 11.9.7.
Topological network data is generally already available and more easily accessed
in GIS packages than in SATURN but there are circumstances, as illustrated
below in Section 23.4 for MapInfo, where it is useful to build a G IS network
starting from a basic SATURN network data base.
We may also note that topological data describing a SATURN-based network may
be transferred to an al ternative GIS system by “dumping” it into text files which
specify the essential node and link structures. See Section 11.4.2 for using P1X to
dump data. Further data manipulation may then be required to convert the data
into a form from which the GIS system can create its own networks.
♦ Use of Data Field Editing for e.g., link distances in P1X (See 11.9.17)
♦ Trip ends (e.g., for use in matrix Furnessing and/or factoring; see 10.7.5)
♦ MapInfo should be i nstalled (No known problems with MapInfo versions 6.x
through to 10.x).
♦ SATURN *.dat file (for displaying network) and SATURN *.lks file (for
displaying assignment results such as flows.
♦ SaturnTools.mbx,
♦ AtkinsSaturnTools.chm,
♦ AtkinsModelTools.Icons,
♦ AtkinsModelTools.exe
♦ SaturnTools.ini
♦ SaturnTools.log
Start the program by double clicking the SaturnTools.mbx this will automatically
start up MapInfo with the SaturnTools Menu under Tools >> SATURN tools.
Figure 23.1 – SATURN Model Tools
In addition, SATURN Tools can be found under a new menu called Atkins
Modelling Tools or alternatively the most commonly used tools can be accessed
directly from the SATURN Toolpad menu buttons.
♦ Press OK.
3) Make sure Saturn Tools is in the Tools list on the Tool Manager form. Check
the Autoload check box.
Figure 23.3 – Tool Manager
4) Press OK.
MapInfo will now load Saturn Tools every time it is started
Saturn Tools or alternatively the most commonly used tools can be ac cessed
directly from the new Saturn Toolpad menu buttons.
1) Accessing the menu from the new toolpad
Figure 23.4 – SATURN Toolpad
On first use after starting Saturn Tools will prompt the user for an output path.
♦ Create Nodes
♦ Import Network
♦ Create Bands
♦ Create Turns
♦ Label Links
♦ Settings
♦ Styles
♦ Log
♦ Instructions
♦ SATURN batch files
2) Accessing menu from the Tools >> SATURN Tools.
Figure 23.5 – SATURN Tools Menu
3) Accessing menu from the a new menu called Atkins Modelling Tools >>
SATURN Tools.
Figure 23.6 – Atkins Modelling Tools Menu
CREATE NODES
The first thing stage is to create a N ode table. This is done by clicking Create
Nodes and the specifying a SATURN *.dat file. SATURN Tools then extracts the
node coordinate information from the 55555 section of the Dat file and plots them
in a new map window.
SATURN Tools also reads the following settings from the &PARAM section of the
*.dat file and uses them to interpret coordinate information.For this reason, users
are expected to have some knowledge of the SATURN parameters:
♦ DUTCH - Thus being able to read both DUTCH= True and D UTCH= False
files.
♦ XOFFSET and YOFFSET which are parameters that SATURN Tools will read
and use in shifting / translating the coordinates for the points. The tools will
offset/shift the coordinates read by the value given to XOFFSET and
YOFFSET respectively. This is useful since some models strip the first digit of
a number (e.g. 4561 represents the real coordinate 545610 so an XOFFSET
of 500000 is needed joined with an XYUNIT of 10.
use the NodeLabel field where centroid number are stored as "C 12" where 12 is
the centroid number. The column NodeType will contain "C" for centroid nodes.
The table uses following MapInfo files:
The network file must be a dump from SATURN with the format described below.
The node t able can be any table containing points with fields named NodeId, X
and Y with IDs corresponding to the chosen *.lks file or *.kp file.
To make SATURN Tools automatically create a Turn Layer, check the Generate
Turn box option.
The Generate Centroid Connectors option allows users to turn off the generation
of Connectors.
An example of a network with turns and nodes are shown below:
Figure 23.8 – Turns and Nodes Network Example
SATURN tools reads the column names from the Column header section and
automatically substitutes illegal characters such as -,?,+,/,! etc. If the import
malfunctions you can modify this section to have unique names (not starting with
a number) to see if it helps. SATURN Tools may not be abl e to establishes the
DUTCH Setting within the *.kp or *.lks file and will present the user with a choice
that should be the same as the settings within the *.dat file otherwise the program
fails.
LOGFILE TRACE
Create Network leaves the following type of information in the SATURNTool.log
file
Date: 20030311 09:47:56,Create Network
,Network Inputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Dutch=T.FLW\AMNETEXT.lks
,Node Inputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Node_Amnete_f.TAB
,Centroids: T,Turns: T
,Net Outputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Net_AMNETEXT
,Turn Outputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Turn_AMNETEXT
To use the Create Band tool, click Create Bands and the following form then
appears:
Figure 23.10 – Create Bands Screen
First select a Link Table (any table containing lines or poly lines will do). Link
tables created by SATURNTools will have a Net_ prefix. Once the table has been
selected you must select a field containing a number by which value the
bandwidth is determined. If the selected field is not a num ber you get an error
message asking you to select a numerical value.
As soon as a proper field has been selected a series of statistics are presented on
the form:
♦ Max width: - specifies the width of the band for the given maximum value.
BANDWIDTH INFORMATION
These values allow the user to specify the some form of scaling of the attribute to
be displayed as Bands.
♦ Units: This value specifies how values, used for labelling, are rounded. A
value of 1 would be suitable for variables such as vehicle flows for example;
♦ Meters per Unit - this value specifies the width of the bands per unit. e.g.
Units 10 and M eters per Unit 1 gives a band w idth of 10 for a v alue of 1.
Fixing the units and changing the Meters per unit allows one to decrease or
increase the band widths of the network at map scale. By clicking recalculate
settings after a change, max bandwidth on the network is calculated based on
these settings; and
♦ Offset: - This value specifies a parallel offset from the link to the band.
LEGEND CHECKBOX
If this checkbox is ticked a l egend will be add ed to the Bandwidth table. The
legend will be place in the lower left corner of the Mapper window. The attribute
SIDE will have the value “LEGEND” for all legend items. The legend can be
moved in MapInfo by setting the band layer editable then selecting the items with
Side=”LEGEND” and selecting the pointer tool.
The easiest way to use this function is to zoom in to your network with the Lower
Left corner in the Mapper placed where you want your legend to be t hen run
Create Bands. To show the values set the label for the bands to Value and use
the label placer tool in MapInfo. To change the Legend entries click the settings
button.
SETTINGS
The settings button opens the Bandwidth settings form.
STYLES
The styles of the bands can be c hanged using the style selector buttons under
Positive and Negative values.
CREATE BANDS
Pressing this button will create bands for the selected link table.
♦ <Inputfile name>_bands.TAB
♦ <Inputfile name>_bands.MAP
♦ <Inputfile name>_bands.ID
♦ <Inputfile name>_bands.IND
♦ <Inputfile name>_bands.DAT
LOGFILE TRACE
Create Bands leaves the following type of information in the SATURNTool.log file
Date: 20030311 09:51:09,Create Bands
,Network Inputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Net_AMNETEXT.TAB
,Band Outputfile:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Net_AMNETEXT_Bands
Stars represent Turns between coinciding nodes (allowed in SATURN, but not
displayable in MapInfo).
TURN SPECIFICATIONS
The Turns that are created are what is called Unit Turns. They have the following
default properties:
Note that it is possible to use the tools on a selection from a turn table created by
SATURN Tools (so you don’t have to wait hours for all 35.000 turns to map if you
just want to see one a rea). Below is a zoom in from MapInfo showing you the
detail you can get
LOGFILE TRACE
Create Turns leaves the following type of information in the SATURNTool.log file
Date: 20030311 09:59:05,Create Turns
,Turn Inputtable:
C:\wsatkins\MapBasic\SATURN2MI\Data\Results\Turn_amnete_F.TAB
Round to nearest: value rounds the value from the chosen Label field to the
fraction entered here. (eg set to 1000 a v alue of 123456.789 will be displayed as
123000 and set to 0.5 this displays as 123457.0)
Label Box Chars: value decides how many characters will be reserved for creating
the box highlighting the value.
Figure 23.17 – Label Box Characters
Distance to Link: Value specifies the distance from the link to the label centre.
Threshold: When ticked this box enables the Neutral and Negative Values Style
buttons. It also creates three layers to label.
23.4.8 Settings
The SATURN Settings menu allows you to set style of the map objects that
SATURN Tools creates. It also allows you to specify the output directory for
MapInfo tables that it creates. You can save your settings to the ini file that loads
automatically on start up. If you are unhappy with your settings press the default
settings button to revert to the hardcoded standard.
SET STYLES
The Settings menu option Set Styles gives the user the possibility of changing the
styles of the SATURN network elements that are to be i mported. See Styles
below.
BANDWIDTH SETTINGS
The Settings menu option Bandwidth Settings gives the user the possibility of
changing the variables of SATURNTools Bandwidth tools. See below.
Figure 23.19 – Bandwidth Settings
Pressing the Edit LegendList button gives the user the option to enter new values
or a different number of Legend entries. The text string to be entered must be a
OUTPUT FOLDER
The Output Directory Browse button allows the user to specify a folder for MapInfo
tables created by SATURN Tools. In other words after setting this folder Nodes-,
Network- and Turn-tables that you import will be saved in the specified folder.
Figure 23.20 – Output Folder
Do as instructed select the desired directory and click the Save button. (I know it’s
not logical, but this is the best work around in MapBasic that I could think of – if
you’ve got a better solution don’t hesitate to let me know - Erik).
GENERATE TURNS
This check box indicates if turns will be created along with the network creation.
The default is unchecked.
SAVE SETTINGS
By clicking this you save the current settings to an I NI file in the application
directory. This is the path where your mbx file is located. The INI file is named
SATURNTools.ini
DEFAULT SETTINGS
The Default Settings button resets all Styles and sets the output directory to the
path of the SATURNTools.mbx plus \Data. The values used in Create Band are
also reset.
23.4.9 Styles
Using this menu option allows you to change the Style setting for all the features
created by SATURN Tools. These settings are reset if you choose Default
Settings in the Settings menu. The Styles are not saved in the INI file.
Figure 23.21 – SATURN Style Settings
23.4.10 Log
SATURN Tools are now equipped with an ev er growing log file. It is the
responsibility of the user to clear this log to prevent it from growing to unheard
proportions. The log keeps track of time of execution as well as input and output
files from the following processes:
♦ Create Node
♦ Import Network
♦ Create Bands
♦ Create Turns
Figure 23.22 – SATURN Log Tools
To view the log entries select Log in the menu and then press View Log.
To clear the log press Clear Log.
To exit the Log screen press the X in the upper right corner.
23.4.11 Instructions
Will open this help file.
23.4.12 Example
An example MapInfo workspace has been provided with the tools. SATURN data
files are kept separate from the MapInfo files. Use the help file to run a test on this
data.
Figure 23.23 – MapInfo Workspace Example
MAKEDATA.BAT
Produces network and link data for MapInfo based on DA Codes. The Command
is:
MAKEDATA .ufs file DACODE (eg MAKEDATA DS2011v1 4513).
This will produce a file containing actual flow information for the UFS file
'DS2011v1'.
MAKELINK.BAT
Dumps network link list for MapInfo. Command is MAKELINK .ufs file eg,
MAKELINK DS2011v1. This would produce a file containing link information for
the ufs file 'DS2011v1'.
MAKEFLOW.BAT
Dumps link flow list for MapInfo. Command is MAKEDATA .ufs file eg,
MAKEDATA DS2011v1. This would produce a file containing link flow information
for the ufs file 'DS2011v1'.
File Inputs may be obtained by typing the name of the batch file eg MAKEDATA
will produce:
C:\>MAKEFLOW <return>
SATURN v10 (SATWIN) BATCH FILE TO
Atkins September 2006:
TO DUMP NETWORK LINK ^& FLOW LIST FOR MAPINFO
#1 = Assigned Network File = %1.UFS or %1
#2 = Assigned Network File = %2.UFS or %2
Output Network FLOWs file called #1.LKS
^<Difference = #1 - #2^>
C:\>
To run, simply enter assigned network filename(s)
REQUIREMENTS
♦ MapInfo should be i nstalled (No known problems with MapInfo versions 6.x
through to 10.x).
♦ A SATURN Network, typically imported into MapInfo using Atkins Model Tools
(SATURN Tools) or any other network table containing Anode and B node
columns representing the SATURN Anode and Bnode.
DISCLAIMER
Atkins SATURN GIS Creator Tools are provided to the SATURN Community by
Atkins Transport Planning and may not be passed to any third party without the
consent of Atkins, contact information is provided in Comments and Suggestions.
These tools are provided as is subject to the condition that users use them at their
own risk and any express or implied warranties are disclaimed.
♦ AtkinsSATURNGISCreator.MBX
♦ AtkinsSATURNGISCreator.chm
♦ AtkinsModelTools.Icons
♦ AtkinsModelTools.exe
To learn about the different functions use this Help file.
Start the program by double clicking the AtkinsSATURNGISCreator.MBX this will
automatically start up MapInfo with the SATURN GIS Creator menu under Tools.
For information on i nstallation refer to the more detailed help file for the main
SATURN Tools or your MapInfo Manuals.
Figure 23.24 – SATURN GIS Creator Tool
23.5.2 Instructions
Once installed the SATURN GIS Creator Tool creates a s pecial menu under
Tools, this menu can also be found under Atkins Modelling Tools. Alternatively the
most commonly used tools can be accessed directly from the new SATURN GIS
Creator Tool pad.
Figure 23.25 – SATURN GIS Creator Toolbar
♦ Move Node
♦ Adjust Links
♦ Match Networks
♦ Instructions
Clicking OK will open a mapper window with the two selectable tables. Editing can
be done in any mapper window where both tables are open and selectable. If you
have not set the tables you will get a message in the Message window.
NODES
♦ X Float ;
♦ Y Float ;
NETWORK (MASTERNETWORK)
♦ BNode Integer ;
♦ CNode Integer ;
Click the button, hold and drag to new location. Easy as that.
Figure 23.28 – Move Node
Click the link and hold and drag cursor to the location of the new vertex.
Figure 23.31 – Creating a New Vertex
A vertex is added t o all links found under the cursor on t he first click. Undo will
only undo the last of these actions and should as a rule not be performed when
using these tools.
Press CTRL and click the link and hold and drag cursor to the new location.
Figure 23.33 - Moving an Existing Vertex
Vertices are moved in all links found under the cursor on the first click. Undo will
only undo the last of these actions and should as a rule not be performed when
using these tools.
♦ GIS File
Once open pl ease make sure that the heading in the right-hand menu reads:
Curved lines. If it does not, then change this by toggling the No Curves heading.
Then click on Re-Plot.
♦ DUTCH
♦ XYUNIT
♦ XOFFSET
♦ YOFFSET.
A wrong input of any of these parameters will mean that SATURN may not be
able to find the matching link’s start and end or most likely will display unexpected
results.
Details of the parameters are provided in the main SATURN tools help file.
After a successful export the following message box appears
Figure 23.35 – Successful Export Screen
Clicking Yes will open the file in Notepad. If Notepad is not installed this may
cause an error.
The tool exports both links (up-stream and down-stream) SATURN will only use
one of them to represent the flows depending on SATURN parameters this may
be the first or the last link occurring.
A sample SATURN GIS file is shown below.
**************************************************************************
********************************
&PARAM
DUTCH = F
FREEXY = T
XYUNIT = 1
XOFFSET =0
YOFFSET =0
&END
77777
90220 90252
500047.76 303737.34
99999
88888
C 1 457210 339820
C 2 456930 340170
C 3 456580 340150
99999
This tool is useful for a lot of purposes. You can use it to identify link differences
between two SATURN Networks (e.g. by creating a thematic map showing
Matched 0 as thick red).
You can also use it to put objects to a table containing ANODE, BNODE fields
without having to do complex queries and update statements. (e.g. if you have a
fixed Band table of your whole network, you can still use this tool to get the
polygons across from one table to another while keeping the attributes of the
destination table).
BACKGROUND INFORMATION
The SATURN Tools allow you to import result files from SATURN as straight line
links.
In order to apply your curved links to the results you will use the Match Networks
function.
Once you have shaped your network in MapInfo using the SATURN GIS Creator
Tools you should save a master copy of the Links and the Nodes. The prime
function of the master tables is to store the line shapes and node locations used in
any of your scenarios and it is highly recommended that you use one file to store
the links for all scenarios for a model area.
REQUIRED PARAMETERS
Maximum Output Width or Height (pixels) - Reduce this number to create smaller
BMP files - below 96 is not recommended as the image will appear rough even at
the same scale as you see it on the screen now.
Font Size - decides the size of the Copyright notice that will be adde d to the
image.
Copyright Notice - Text to be put on the output image.
BMP and XYB File Name (no extension) - the filename of the bmp file and the XYB
file.
Find Tiles - a check box to indicate whether the program should open tiles that fit
the window or not to do s o (in all cases the tiles needed will be listed in the
message window).
1st Tile Path - The first folder to be searched for Tile tables if tile is not found here
the next folder will be searched and so on.
2nd Tile Path, 3rd Tile Path, 4th Tile Path - As above but lower priority.
You will then get a confirmation that the file was saved
Figure 23.42 – Save Confirmation
The XYB file might need to be modified to match your SATURN XYFORMAT and
XYUNIT settings.
The contents of the XYB file is minx miny m axx, maxy taken from the Mapper
window corners.
To modify this open XYB file in Notepad.
Note the all paths must end in a '\' character or the tools may fail.
Index
24. INDEX
32-bit / 64-bit Operating System, see Hardware/Soft- 1.2
ware Requirements
ACCEPT Profiles and Capacities 8.2
Actual Flows 5.1.11, 17.2
Actual Flows by User Class 15.21.4
A – Coefficient in flow-delay curves 8.4.2
ADEL 11.7.2.1
Advice Note 1A Speed-Flow Curves 15.9.2
AFTERS (Queues in future time periods) 17.6.2
AGAIN (Repeat Bat files using KEY) 14.5.8
AK_MIN 9.3.2
ALEX 6.3.3, 6.4.11, 8.5
All-or-Nothing Assignment 7.11.3
Alt + key input 19.4
AMY 6.3.1, 7.11.4
Appended data files 10.14
APRESV 8.8.3.1
Link-specific values in SATNET 6.4.14, 6.13.4
Arboreta 11.8.3, 15.26
Array Dimensions and Versions 15.28
ARRIVE Profiles 8.1.3
ASHORT 6.3.1
Assignment 2.1, 7
Assignment networks 5.5.1
All-or-nothing 7.11.3
Burrell; see Stochastic
Convergence Statistics 9.9.2
Continuation runs (WIDDLE) 7.11.6
Elastic 7.4, 9.6, 9.10
Choice of technique - Wardrop/Stochastic 7.2.6
Fixed travel times 7.11.4
Flat Trip Matrix 7.11.5
Generalised Cost 7.11.1, 7.11.2
Link listings 11.10.4
Multiple User Class 7.3, 9.11
Networks 5.5.1
Partan 7.11.7
SATEASY 7.2.6
Shadow Networks 7.11.10
Summary Statistics 11.11.5
Stochastic User Equilibrium 7.2
System Optimal 7.11.9
Wardrop Equilibrium 7.1
Atkins MAPINFO Tools 23.4
ATLAS 6.3.1, 18.5.6
AUTNUC 15.15.2
Automatic Timer (AUTO) 14.5.4
Index
Changes to 14.5.6
AUTOK 9.3.1
AUTONA 9.5.4(4)
AUTOX 6.3.1, 15.12
AUTOZ 6.3.1, 15.12
Auxiliary Network Plots 11.5.4
Averaged simulation/buffer statistics 9.7, 17.9.2
AVERK: Average Kirchoff violations 13.3.3.3
A-Z Banners 11.6.9
Bandwidth (proportional) annotation in P1X
Link-based 11.6.3.2
Node-based 11.6.5.1
Fixed width, variable colours 11.6.3.8
Banned/Penalised Turning movements 6.9
Simulation Networks 5.5.1, 6.9
Buffer Networks 15.56.7
Banner Displays 11.15
Banner Menus 19.4
BAT Files 14
Batch Procedures 14.7
Creating DIY batch files 14.11
BB109 (new release 10.9 blocking back rules) 6.3.1, 8.5.5, 8.5.6
BBKING 8.5.6
BCRP 6.3.3, 5.4
BEAKER 5.1.9, 6.3.1, 15.13, 17.8
BETA 6.3.3, 7.7.1
Units 7.7.6
BETA-2 6.3.3
BETA-D 6.3.3
Bitmap (.bmp, .pcx, .jpg) graphical image files 11.3.6, 15.43
Blocking Back 5.1.11, 8.5
Convergence tables 9.9.1
Boroughs: See Traffic Boroughs
Break Option in KEY files 14.5.5
Buffer networks: 5.2, 5.3
Flow-delay curves 5.4.1
Queues and Bottlenecks 5.4.2
Summary Statistics 11.11.4, 17.9
Capacity restraint 5.4
Conversion from Simulation (SATBUF) 15.8.2
Conversion to Simulation (P1X) 11.9.12
Link data formats in network .dat files 6.6
Turning flows at buffer nodes (see also REFFUB) 11.11.12
Bugs in Previous Releases App. E
BUSKER 6.3.1, 6.9.2
BUSPCU 6.3.3, 6.9.3
Bus-only Roads and Turns 6.4.4
Bus routes 6.9
Bus companies 6.9.3
Bus Lanes 6.4.9.2, 15.39
Route definitions 6.9.2
Index
Index
COMPAS 6.3.1
Comma Separated Variables; see CSV
Command Line Namelist Parameters 14.6
Comment cards in dat files 15.29
Comparing 2 matrices (M2) 10.9.2
Comparing 2 networks
Simulation Nodes: P1X/SATLOOK 11.11.18
Highlighting coding differences 11.6.5.4
DACHEX 12.4
Connectivity of networks and/or trip matrices 5.5.4
Continuation Runs with SATALL 9.12.1, 22.2.3
Control Procedures 14
Convergence:
Within Wardrop Assignment 7.1.5
Within Elastic Assignment 7.5.5
Of Stochastic Assignment 7.2.5
Simulation convergence 8.3
Simulation-assignment convergence 9.2, 9.5, 9.8, 9.9
Guidance 9.2.5
Improved SATALL Convergence 9.5.1
SATME2 with Assignment 13.1.6
Display within P1X (10 Worst) 11.15
Display per node within SATLOOK 11.11.1
Of O-D routes 11.8.3.4
Relaxed control parameters 7.4.5.3, 9.5.4, 15.54
Supply-Demand (VDM) Models 7.8.6
Co-ordinates: 6.8
Choice of Units, etc. 15.43.2
Used to calculate distances 15.10
.xy sub files (in P1X) 11.9.6
Interpolating 6.8
Within GIS files App. Z
Cordoning (see SATCH) 12.1
Within PIX 11.13, 12.1.4
Multiple User Classes 12.1.6
Cost-flow curves: See flow-delay curves
Cost matrices 15.27.1
For Elastic Assignment, base-year 7.8.1
Use within Supply-Demand Models 7.8.6
Minimum Cost 11.11.14
Average costs (Forest skims) 11.11.9
Costs (generalised) 6.11, 7.11.1, 7.11.2
Units: time or pence 15.24.4
Fixed link costs 7.11.1
Defined within Supply-Demand loops 7.8.6
Counts:
Input to SATNET 6.10
Input to SATME2 13.2.2
On links with centroids 15.16
.mcc externally input sub-files 11.7.1, 11.11.13
Compare to modelled flows 15.6, 11.7.1, 11.11.13
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Index
Files 12.1.2
Creating files with P1X 11.13, 12.1.4
SATCH_MC: Distributed processor version 12.1.6, 12.1.12, 15.53.3.6
Creating FCF files 12.1.11, 15.1.4
SATCCS (Simulation CCs to buffer format) 15.8.3
SATCOST 15.27.7
SATCOBA 15.42
SATDB: 11.10
Miscellaneous data inputs 11.10.6
Node Data Base 11.10.5
Technical Specification 11.18
SATDYSK (Dynamic Skims) 12.7
SATEASY: 7, 7.13
Control File 7.13.2
Convergence Measures 7.5.5
Files 7.13.1
File Structure 7.12.1
Running via BAT file 7.12.4
SATED: (Discontinued post 10.9) 11.12
Sat95key.dat; See SAT10KEY.dat App. Y
SATKK (Time Period Choice Modelling) App. V
SATLOOK: 11.11
Control Files 11.17.2
Files 11.17.1
Multi-core operation 15.53.3.2
SATME2: 13, 13.5
Data Input 13.2.2
Files 13.5.1
Stacked MUC Matrices 13.4.4, 13.4.5, 13.4.6
Combined counts: Screenlines, cordons etc. 13.1.8
SATNET: 6
Data Inputs 6.1 to 6.11
Files 6.16
SATOFF: 12.2
Optimum offsets 12.2.1, 15.31.4
Files 12.2.3
Optimisation within SATALL 9.12.2, 15.31.4
SATPIG: Dump Route Flows 12.6
SATRAP: Re-assignment to previous routes 11.10.7.4
SATPIJA 13.1.2
Control file 13.2.1
Technical Specifications 13.6
SATPIJA_MC: Multi-core operation 13.4.9, 13.6.3, 15.53.3.3
SATSIM: 8
Control File 8.9.2
Files 8.9.1
SATSTAT 15.49
SATSUMA 17.5
SATTIT.DAT 6.3.1, 15.21.1
SATTP (Running linked time periods with ps files) 17.4.2
SATTPX (Running linked time periods automatically) 17.4.3
Index
SATTUBA 15.41
SATUFC – Re-creating .UFC files 15.23.5
SATUFO – Converting .UFC to .UFO files 15.23.7
SATUFO_MC – Multiple processor version 15.23.7, 15.53.3.7
SATU2 13.7
Saturation flows:
Roundabouts 6.4.7
Turns 6.4.6
Set as a “Global Data Field” from a text file 11.9.17
SATURN:
8.1 App D.1
8.2 App D.2
8.3 App D.3
8.4 App D.4
9.1 App D.5
9.2 App D.6
9.3 App D.7
9.4 App D.8
9.5 App D.9
10.1 App D.10
10.2 App D.11
10.3 App D.12
10.4 App D.13
10.5 App D.13
10.6 App D-15
10.7 App D-16
10.8 App D-17
10.9 App D-18
11.1 App D-19
11.2 App D-20
Procedure(s) 14.3, 9.14
Suite contents 1.5
SATWIN 3.6
SAT10KEY.DAT App. Y
SAVEIT 6.3.1, 15.23.1
The (extra) SAVEIT Assignment 15.23.2
Accuracy of SAVEIT O-D routes 11.8.47, 15.23.2
Application of Aggregated (SPIDER) networks 15.56.5.3
SAVUFO 15.23.7, 22.5.7
Application of Aggregated (SPIDER) networks 15.56.5.3
SBT (Simulation Buffer Transformation) 15.1.7
Scatterplots (P1X) 11.7.1
Screen editing (Windows) 19.9
Implications for LOG and KEY files 14.5.9
Screen lines
Count Sets 6.10
Select Link Analysis 11.8.1.9
SDM (Simple or Separable Demand Models) 7.4.1
SECRET 6.4, 11.4.2
Sectors 5.1.7, 6.8, 10.2.5
Co-ordinates 6.8
Index
Index
Index
Index
Index
UPBUS 6.9.2
Application to joy rides 11.7.2.2
Application to timed routes 6.9.4, 6.9.5
UPDATE 14.4.2, 15.3, 22.2.1
UPFILE 6.1, 14.4.2
User Classes 5.8.1
Names (UCNAME) 6.3.4
Actual Flows 15.21.4
USESPI, USEUFO etc. 15.27.7.3
U-turns: At internal simulation nodes 5.1.4
At external simulation nodes 18.9.1, 16.6.2, 16.6.3
ILOVEU 18.9.2
Validation 11.7
Counts 11.7.1
Travel Time Routes 11.7.2
Variable Demand Models 7.4
Convergence issues 7.8.6
Variable Program Dimensions 15.28
Variational Inequalities 9.2
VCPCU (PCU factors by vehicle class) 15.17.2
VDM (Variable Demand Models; see also Supply-Demand) 7.4.1
External Loops with SATURN (Cobweb) 7.4.5
Convergence issues 7.8.6
VDU files 3.3, 11.1.3
Change the VDU mode 14.5.6
Vehicle Classes 5.8.2
Names (VCNAME) 6.3.4
PCU Factors 15.17.2
Updating trip matrices 13.4.6
Vertical editing of network data fields 11.9.17
WAIT (Parallel operations) 15.52
Walking Networks 15.45
Wardrop Equilibrium 7.1
Choice vrs. Stochastic 7.2.6
Delta Function for measuring success 7.1.4
MSA 7.2.2, 7.11.8
PARTAN variation 7.11.7
ROSIE option 7.1.3
Stopping criteria 7.1.5
Uniqueness 7.1.6
Warm Starts (WSTART/IPERT) 21.3, 22.3
Altered Networks and/or Matrices 22.5
Identical Networks 22.4
With Elastic Assignment 22.6
Warnings 2.9, App.L
Weave Priority Markers (W) at a single junction 6.4.2.5, 15.40.7
Weaving on Motorways (between junctions) 6.4.9.4, 15.40
Using Network Aggregation 15.56.7
WHATHO 7.11.9
WIDDLE 7.11.16
Wildcard entries on KNOB Files 15.14.5.2
Index
Index
Contents
Contents
Section Page
A. Data Input Using (Pseudo) Namelist A-1
A.1 Version Control A-5
B. Time Period Specific Data Using Namelist B-1
B.1 Version Control B-2
C. Additional SATURN Documentation C-1
C.1 Version Control C-5
D. Changes in SATURN Versions 8.1 - 11.1 D-1
D.1 Changes in SATURN 8.1 D-1
D.2 Changes in SATURN 8.2 D-5
D.3 Changes in SATURN 8.3 D-8
D.4 Changes in SATURN 8.4 D-12
D.5 Changes in SATURN 9.1 D-14
D.6 Changes in SATURN 9.2 D-28
D.7 Changes in SATURN 9.3 D-35
D.8 Changes in SATURN 9.4 D-43
D.9 Changes in SATURN 9.5 D-48
D.10 Changes in SATURN 10.1 D-55
D.11 Changes in SATURN 10.2 D-58
D.12 Changes in SATURN 10.3 D-62
D.13 Changes in SATURN 10.4 D-69
D.14 Changes in SATURN 10.5 D-74
D.15 Changes in SATURN 10.6 D-86
D.16 Changes in SATURN 10.7 D-94
D.17 Changes in SATURN 10.8 D-100
D.18 Changes in SATURN 10.9 D-116
D.19 Changes in SATURN 11.1 D-136
D.20 Changes in SATURN 11.2 D-143
E. SATURN Bugs E-1
E.1 SATURN 10.4 Bugs E-1
E.2 SATURN 10.5 Bugs E-5
E.3 SATURN 10.6 Bugs E-12
E.4 SATURN 10.7 Bugs E-18
E.5 SATURN 10.8 Bugs E-23
E.6 SATURN 10.9 Bugs E-28
E.7 Version Control E-37
F. Unused F-1
5109341 / Mar 13 i
Master Appendices Document.docx
SATURN MANUAL (V11.2)
Contents
5109341 / Mar 13 ii
Master Appendices Document.docx
SATURN MANUAL (V11.2)
Contents
− ROSIE=T, &END.
Note that the ‘,’ and blank following the final variable are recommended but
not essential; see note 5 below. If &END appears on a new record it must
have a blank in the first column.
Thus a complete input record for data input using namelist might be:
− &PARAM
− ROSIE = T
− AMY = .FALSE.
− ALEX = 5.2
− END
− MCGILL (2) = 3
would refer, in this case, to the value of a parameter MCGILL for user class
2. (But see Appendix B for another application of subscripts to multiple time
periods.)
Subscripted variables or “arrays” may also be defined in a single record by
an entry such as:
of the last record. Trailing blanks at the end of one record or initial blanks at
the start of a new record are ignored.
18) Namelist records may also make use of the $INCLUDE facility described in
15.30. Thus if the name list records contain a line
− $INCLUDE newlist.dat
the file ‘newlist.dat’ is opened and the program continues to read from that
file until the end of the file is encountered, at which point the program returns
to reading from the original file. The record $INCLUDE must commence in
column 1 and be in upper case. Any text on the remainder of that line is
ignored.
Note the same rules of syntax apply within the ‘included’ file and that it should not
contain either the ‘name’ or ‘end’ identifiers e.g. &PARAM or &END. It is most
usefully used for large namelist segments containing standard definitions, e.g.
emission rate parameters that may be applicable to a large number of data files.
Post SATURN 10.4 a check is made as to whether the same variable “name”
appears more than once. If so, an error plus message is generated. Note that the
error is generally non-fatal but in SATNET it is semi-fatal.
EXAMPLES
For example the parameter records input to program SATME2 might read:
&PARAM
PRINT = F
SEED = 0.00,
* This is a comment
XAMAX = 5.00 * as is this
ITERMX = 10,
&END
A “null” entry could consist of any of the following:
&PARAM
&END
or
&PARAM &END
The first is the “recommended” form.
There are also some computer text files which complement the User Manual,
dating from the 1980’s and have limited relevance these days. The files, labelled
as SATURN NOTES (filenames notes.all and tech.n, n = 1,...9), contain a general
description of various theoretical aspects, special features, etc. of the model. The
most relevant sections of the notes are now included within the manual, although
certain detailed pieces of information, e.g. how the lane choice model algorithm
works, the probabilistic modelling of queues and delays at give-ways, are still only
available within the notes. Copies are available from either DVV or Atkins.
Appended Text Files
In the .pdf versions of Appendix C the following files are included below:
(1) Demand responsive assignment in SATURN. (*)
M.D. Hall, T. Fashole-Luke, D. Van Vliet and D.P. Watling
Stream E, pp25-39, PTRC Summer Annual Meeting, September 1992.
(2) A Full Analytical Implementation of the PARTAN/Frank-Wolfe Algorithm for
Equilibrium Assignment (*)
Y. Arezki and D. Van Vliet
Transportation Science 24, 1, 58-62 (1990)
(3) The Frank-Wolfe Algorithm for Equilibrium Traffic Assignment viewed as a
Variational Inequality (*)
D. Van Vliet
Transport Research 21B, 87-89 (1987)
(4) A Validation of SATURN using Before and After Survey Data from
Manchester (*)
A. Matzoros, J. Randle, D. Van Vliet and B. Weston
Traffic Engineering and Control 28, 641-643, 1987.
(5) Equilibrium Traffic Assignment with Multiple User Classes (*)
D. Van Vliet, T. Bergman and W. H. Scheltes
P.T.R.C. Summer Annual Meeting, July 1986.
(6) SATURN - A Modern Assignment Model (*)
Dirck Van Vliet
Traffic Engineering and Control, 23, 578-581, December 1982.
(7) SATURN - A Simulation-Assignment Model for the Evaluation of Traffic
Management Schemes (*).
M.D. Hall, D. Van Vliet and L.G. Willumsen
Traffic Engineering & Control, 21, 168-176, April 1980.
(8) The Common Man’s Guide to Equilibrium Assignment
Dirck Van Vliet, Technical Note 13, ITS Leeds, May 1979
by
*
Paper prepared for Transportation Research A
DRACULA: a microscopic, day-to-day dynamic framework
for modelling traffic networks
Institute for Transport Studies, University of Leeds, Leeds LS2 9JT, U.K.
Abstract
1. INTRODUCTION
Recent years have seen a massive increase in “real-time” advanced technological strategies
designed, for example, to reduce congestion, improve network efficiency, promote public
transport, decrease pollution and/or increase road safety. At the network-wide level, these
include: responsive, optimized traffic signal control, e.g. SCOOT (Hunt et al., 1981);
congestion-based road pricing (Oldridge, 1990); dynamic route guidance/information and
variable message signs (Emmerink and Nijkamp, 1999); congestion management strategies,
e.g. freeway ramp metering, gating (Papageorgiou et al., 1989; Shepherd, 1991); and
responsive priority measures for public transport (Quinn, 1992; Liu et al., 1998).
2
A general property of all these strategies is that they both respond to – and in turn influence -
actual prevailing congestion levels, rather than being designed on the basis of long-term
average conditions. That is to say, the variation in traffic conditions is just as important a
consideration as the mean. Variabilities include the temporal distribution of flows both
within and between days, as well as the variation in travel times and delays both within and
between days. It includes not only “natural” variability associated with normal trip making
decisions but also “unnatural” variability associated with incidents or accidents. In order to
evaluate these systems and to determine the best strategy for implementation, it is crucial to
have a reliable evaluation model that fully incorporates the effects of variability.
For many years, models for assessing traffic networks have been based on the Wardrop
equilibrium principle (Wardrop, 1952), predicting a long-term average state of the network.
They assume steady state network supply and demand conditions from day-to-day and within
different periods of a day, and therefore have had great difficulty in the representation and
evaluation of the above real-time policies whose major purpose is to deal with variability in
demand and traffic conditions. In addition there is strong evidence that by ignoring most
sources of day-to-day and within-day variabilities, conventional equilibrium models tend to
over-estimate network performance and therefore to produce biased results (Mutale, 1992).
This paper describes a new traffic network model framework, DRACULA (Dynamic Route
Assignment Combining User Learning and microsimulAtion), which attempts to represent
directly the behaviour of individual drivers and vehicles in real-time as these evolve from day
to day. It combines an individual driver travel demand and route choice model and a network
learning model with a microscopic traffic simulation model. The demand model represents
the day-to-day and within-day variability in total demand within a fixed departure time
period. The traffic simulation model determines the space-time trajectories of individual
vehicles according to car-following, lane-changing rules and intersection regulations. In
combination they model the evolution of the traffic system over a representative number of
days so that both within-day and between-day variabilities are included.
DRACULA does not explicitly set out to predict, for example, the day-average hourly flow or
delay on a certain link, but to examine the full distribution of flows and delays over the
period modelled. Aggregate measures are then obtained by averages over the full number of
days simulated (less any warm-up period). There is therefore no intrinsic requirement that
the system will settle down to a single self-consistent equilibrium state (as implied by models
based on Wardrop equilibrium principles); indeed, given the variabilities in the model inputs,
variabilities in the outputs are virtually guaranteed.
A brief review of the analysis of traffic networks is presented in the next section. The
proposed microscopic framework of day-to-day dynamic network models is then described.
Potential applications of such a model framework and a number of examples are given,
followed by concluding remarks.
2. BACKGROUND REVIEW
Traditionally the analysis of traffic in urban road networks is based on the concept of
equilibrium whereby a fixed trip matrix is assigned to equal minimum cost routes between
each origin-destination pair based on perceived link costs. Thus it is making very precise
assumptions not only as to how many drivers travel between each origin-destination pair but
3
also as to which routes they use and what the consequent travel costs will be. In addition
temporal variations within the study time period are generally ignored.
There have been many sophisticated equilibrium models developed and indeed widely used
to study the average effect of long-term changes in ‘supply’ conditions (such as the provision
of a major new road or junction design improvements) and/or long-term changes in ‘demand’
(such as that due to a new development or growth in car ownership). SATURN (Van Vliet,
1982) and EMME/2 (INRO, 1998) are two examples of commercial products based on sound
theoretical principles. The major assumptions such models generally make are:
(a) constant (between day) supply and demand conditions;
(b) inelastic demand, in particular departure time choice neglected;
(c) the ultimate prevalence of a stable equilibrium state of the system;
(d) choices made after a measure is introduced are independent of those made before;
(e) all drivers have the same choice objectives and constraints;
(f) drivers acquire perfect knowledge of traffic conditions, including variability over time;
and
(g) queuing is adequately represented by averages over short time intervals.
In addition the supply-side assumptions made in most models are often gross over-
simplifications. For example, the “separability” assumption that the travel time on a link is a
function only of the flow on that link clearly ignores any interaction effects at junctions but is
tolerated due to the fact that it leads to soluble mathematical models.
It is clear that this picture represents an over-simplification of real life. The composition of
the driver base varies from day to day, and in practice drivers do not all find optimum routes,
particularly infrequent drivers. Equally travel conditions vary (sometimes widely) from day
to day, partly due to fluctuating demand but also due to factors such as weather conditions,
incidents etc. There is strong evidence that, due to the non-linearity of cost-flow
relationships, the net effect of variability in supply and demand conditions is to significantly
increase the mean values of traffic outputs such as travel time and fuel consumption. For
example, Mutale (1992), based on a different modelling technique to that used here,
estimated a 14% increase in mean total travel time over equilibrium due to the expected
variability in a north Leeds network.
Partly in response to these deficiencies, enormous advances have been made in the way in
which traffic networks may be modelled. Stochastic equilibrium models try to represent the
uncertainty in drivers’ choices by assuming that perceived utilities are random variables
(Maher and Hughes, 1997; Maher, 1998). Multiple user-class models attempt to differentiate
between drivers (Dafermos, 1972; Daganzo, 1983; Van Vliet et al., 1986). Theoretically
sound dynamic equilibrium models (e.g. Friesz et al., 1989; Ran and Boyce, 1994)
incorporate the within-day dynamics of trip demands and choices although the difficulty in
ensuring the temporal and spatial consistency in the resulting dynamic flows has hampered
the development of efficient and reliable solution algorithms. On the other hand more
heuristic models such as CONTRAM (Taylor, 1990) have successfully incorporated within-
day dynamics. Finally simulation models such as SATURN incorporate traffic interactions at
junctions.
A number of studies have attempted to model "real time" policies by attempting to modify
existing models; see, for example, Van Vuren and Watling (1991) for work on route
4
guidance. The appeal of such methods lies mainly in the production of (hopefully) unique,
stable predictions.
In general terms all such models are constrained to make compromises between the desire to
accurately reflect the behaviour of individual drivers and of the road infrastructure and the
need to design algorithms which can solve the specific model. Very often one feels that the
solution method comes first and the model specification comes second. In particular existing
approaches, all of which are - to a greater or lesser extent - equilibrium based, struggle to deal
with schemes whose main objectives are to deal with variability (e.g. real time information
systems). The success of these real-time strategies depends upon reacting to variability,
which occurs between days, and within days - precisely the variability which equilibrium
models neglect. Furthermore, the range of short-term responses induced will be wider than
route choice, including choice of time to travel and of mode to travel. The nature of these
responses is likely to be highly individual-specific, depending on personal characteristics of
the individual, the nature of the trip, the time-dependent and imperfect knowledge of the
driver, and the driver’s own choice criteria and constraints.
However, fundamental new approaches have arisen in recent years. Firstly the theoretical
work of Cascetta (1989) on stochastic process models of traffic networks signified the birth
of a logical successor to equilibrium models – he derived conditions guaranteeing properties
that are the equivalent of equilibrium uniqueness and stability. Advances have also been
made in representing drivers’ spatially and temporally varying perception of a network
structure (Dehoux and Toint, 1991) and a driver’s habitual tendencies by using appropriate
decision rules (Mahmassani and Jayakrishnan, 1991).
There have been recent efforts to explicitly represent the day-to-day dynamic adjustments in
driver behaviour, based on various behavioural principles and various sorts of static or
dynamic traffic flow relationships (such as DYNASMART, Hu and Mahmassani, 1997;
Cantarella and Cascetta, 1995). Those proposed give great flexibility on the behavioural
choice side, yet are more limited in their traffic flow modelling capabilities. For example, the
traffic simulation in DYNASMART is based on a mesoscopic simulator that treats traffic
individually but moves them according to macroscopic flow principles (Jayakrishnan et al.,
1994). Vehicles move in segments on a link at a speed determined from a speed-flow
relationship and the prevailing density on that segment of road. There is no representation of
vehicles’ lane-changing and car-following behaviour, making it difficult if not impossible to
model complex traffic intersections, responsive signal control, selective vehicle priority
systems, traffic responses to incidents, buses stopping at bus-stops or bus-laybys.
In parallel, there have been large numbers of pure microsimulation models developed, such
as NEMIS (Mauro, 1991), AIMSUN2 (Barcelo et al., 1995), PARAMICS (Cameron and
Duncan, 1996), TRAF-NETSIM (Rathi and Santiago, 1990), MITSIM (Yang and
Koutsopoulos, 1996), and TRANSIMS (Nagel, 1996). These approaches are based on car-
following, lane-changing and gap acceptance rules, and have shown themselves capable of
representing the detailed traffic features just mentioned. However, these models are unable
to address route choice responses in any consistent or acceptable manner. They either have
no concept of a route (with choice behaviour represented by mean turning percentages, which
can lead to paths being traced out with repeated cycles), or have routes determined
exogenously by an assignment model operating at a different level of traffic flow detail. Nor
do they explicitly address the issue of day-to-day demand variability.
5
Unlike the models described above, DRACULA aims to take the best elements of both the
latter two approaches (i.e. day-to-day dynamics and traffic microsimulation) and to set these
in a single, consistent framework. It is a microsimulation of both the demand and the supply.
As with conventional models the DRACULA approach begins with the concept of demand
and supply (or performance) sub-models that interact with each other. However, by contrast
with conventional models, in DRACULA both the demand and supply sub-models are based
on microsimulation and both evolve from day to day. In DRACULA, trip makers are
individually represented and their daily route choices (demand) are made based on their past
experience and their perceived knowledge of the network conditions. Individual vehicles are
then moved through the network (supply) following their chosen routes according to car-
following and lane-changing rules. The demand stage predicts the level of individual demand
for day n from a full population of potential drivers and the supply model for day n
determines the resulting travel conditions. The costs experienced by drivers are then re-
entered into their individual ‘knowledge bases’ which in turn affect the demand model for
day n+1. The process continues for a pre-specified number of days.
The framework combines a number of sub-models of traffic flow and drivers’ choices for a
given day with a day-to-day driver learning sub-model. In its most general form it has the
following structure although, as we shall discuss later, certain alternative methods or
simplifications are possible within most stages.
2. [OD Demand] Select the total day-n demand for each origin-destination pair according to
some given probabilistic rules.
3. [Departure Time Choice] Individuals travelling on the day choose their departure time to
travel.
4. [Route Choice] Each driver travelling on the day chooses a route based on their current
perceptions of traffic conditions and previous experiences. The travel time component of
the cost is based on the individuals' departure time and their predicted arrival times at each
link/turn.
5. [Supply Variability] “Global” network supply conditions are selected for day n prior to
loading by some given probability laws to simulate effects such as weather and lighting
conditions. “Local” variations in network conditions (representing road works, incidents
etc.) are also specified.
6
8. [Stopping Test] If some stopping condition is satisfied, terminate; otherwise increment the
day counter and return to step 2.
Note that this process need not – and indeed almost certainly will not – converge to a single
precise equilibrium point but will vary from one day to the next. However, due to the
interactions between the demand and supply models, it will – arguably – reach a state where
they are broadly in balance and, at the more theoretical level, our objective is to determine the
probability distribution of individual day-to-day states.
Similar models of this structure have been considered previously by Alfa and Mink (1979),
Ben-Akiva et al. (1986), Cascetta (1989), Vythoulkas (1990), Emmerink et al. (1994), and Hu
and Mahmassani (1997).
As opposed to the traditional concept of a fixed matrix of trips from origin to destination, the
DRACULA approach is based on the concept of a large “population” representing all the
potential drivers in the study area. Each individual member of this population has certain
characteristics (such as household origin, work place, car-ownership status, driving style etc)
and a “history file” in which the accumulated experience of previous choices and travel
conditions encountered is stored. Equally the vehicle they drive will have certain fixed
characteristics such as vehicle size and engine type (see Section 5.2 for the full list) which do
not change from day-to-day. As far as feasible the distribution of characteristics should
match as closely as possible that of the area being modelled. In practice, however,
simplifications and compromises will need to be made. More pragmatically therefore we aim
at generating a population whose trip making behaviour at the aggregate day-to-day level
matches the averages and variances observed in real life.
For all applications to date the population has been derived from an existing conventional trip
matrix Tij from origin i to destination j. We then assume (see also Section 4.2 below) that the
day-to-day variability in the number of trips may be described by a normal distribution whose
mean is Tij and whose variance is βd2Tij2 where βd > 0 is a user-set coefficient of demand
variation. Hence the demand for ij trips on day k is:
and we define our population of potential ij travellers to be Tijmax, the pragmatic maximum
number of trips generated by Eq. (1). In practice we use:
By default, each driver’s choice on the first day of travel is based on average free-flow travel
times, and for each link the perception is unchanged until that link is used by the individual.
7
However the initial choices may also be specified to be those resulting from a previous model
run. The most obvious application of this is in a before-and-after study of a scheme, in which
the initialisation of the ‘after’ run is based on the final conditions of the ‘before’ run.
Similarly, the initial “histories” of drivers - ie. their remembered experiences on the network -
may be set to be their accumulated experiences in the previous run.
In addition to “drivers” the modelled population also include elements such as buses
following fixed routes, for which clearly route choice and a “knowledge base” are not issues.
They will, however, require their own appropriate vehicle characteristics.
On any particular day within the evolution of the model each member of the population
makes a decision as to whether to travel or not. In principle the decision could - and should –
be based on the individual characteristics of that member of the population, so as to
differentiate between regular commuters and one-off shopping trips and to include elements
of their knowledge base. In practice a more pragmatic approach has been used whereby
individual decisions are constrained by the predicted daily trips for their particular origin-
destination pair.
Note that clearly, any reference to drivers’ histories or choices made during the simulation
relates to the fixed pool of potential travellers who keep their identification through the
simulation, rather than the day-to-day varying pool of individuals who actually make a
journey through the network.
A generalisation of this method is also permitted, in which different ‘user classes’ are
defined, which differ only in their propensity to travel (representing, for example, shopping
trips which may be made less frequently than journey-to-work trips).
The choice of departure time within DRACULA may be handled in a number of different
ways. The default and simplest method is to randomly assign a desired departure time for
each potential driver in the modelled population; when drivers choose to travel on day n they
will depart at their desired departure time, independent of their experiences and route choice.
The departure time profile could be flat or distributed probabilistically according to some
user-specified distrbution (e.g. a step function over time slices).
A more complex departure time choice in response to travellers’ experience has also been
incorporated within DRACULA whereby departure time selection takes place at the start of
every day based on a traveller’s preferred arrival time and on the previous day’s experiences
(anyone not travelling on the previous day will keep the same preferred departure time). A
simple continuous adjustment is made for each individual m on each origin-destination
movement i-j in turn, based on that individual’s:
8
(a) preferred arrival time at the destination, aijm;
(b) trip time from the previous day tijm(k); and
(c) departure time on the previous day dijm(k).
For example, aijm could be randomly drawn at the start of the simulation from a specified time
profile as in the first method.
The difference between the desired and actual arrival time on day k is then:
The driver is assumed to (independently between days and from other drivers) be indifferent
to a lateness of em tijm(k), where em is drawn from a uniform [0, ε] distribution. Hence, we
define the perceived lateness as:
If ∆ijm(k)>0, the users adjust their departure time so that the perceived lateness would be zero
if yesterday’s trip time were repeated, then,
Otherwise,
Thus, in the present version of the model, no early arrival correction is made, but this is
trivial to change, as we would just then always set dijm(k+1) according to Eq. (5) regardless of
the sign of ∆ijm(k). The flexibility of the framework enables a more general (experience-
dependent) departure time choice to be implemented easily at a later stage.
A third, even simpler method, would be to randomly generate a day/trip departure time from
a pre-specified profile, independent of past history.
By default, each driver travelling on a particular day chooses their minimum perceived
generalised cost route based on the traditional concept of utility maximisation that underlies
virtually all current traffic assignment models.
9
where Cp1 and Cp2 are costs along the habit and the minimum cost routes respectively, η and
τ are global parameters representing the relative and the absolute cost improvement required
for a route switch.
These rules are only intended as an example of the range of rules that could possibly be
implemented in a flexible approach such as DRACULA. Alternative behavioural rules that
could be provided in the future include the concept of risk minimization, with drivers
perceiving cost variances as well as means.
The route choices are made and fixed before the trips start; drivers follow their chosen routes
through the network to their destinations and will not (within the current state of model
development) make en-route diversion when, e.g., encountering congestion.
4.5. Learning
After each journey individuals use their experienced travel times on the links used on that
journey to update their perceived link travel times according to the following conditions:
(a) experiences more than M days old are forgotten; and
(b) the perceived travel cost is the average of (at most) the last N remembered
experiences on that link.
Here M and N are global parameters set at the start of simulation, although their effect will be
specific to each individual’s experience. It may reasonably be argued that these parameters
should be allowed to vary with the driver and/or trip type. Such options can be added to the
program if future research suggests so.
Generally, it is expected that N will be the main parameter affecting perceived cost; M is
intended mainly as a device for drivers to ultimately forget a single bad experience of a link
which may occur particularly in the atypical, initial warm-up days. Therefore, it is expected
that N < M.
The effect of day-to-day variability of network condition is represented at two levels. The
global variability represents the effects of weather, daylight etc, and is represented in the
model by a variable link cruise speed through a normal distribution:
where vm is a random variable representing the daily cruise speed of link m, Vm the average
cruise speed for the link and βs a global coefficient of variation representing the daily
variation in link speed.
Locally, incidents (e.g., breakdowns or road closures) may occur one day but not another.
This is represented before loading by specifying the location and duration of the incidents.
The global and local variabilities will affect (through the traffic simulation described in the
next section) the travel times of vehicles travelling on that day, but not on the routes
individuals take.
10
5. THE TRAFFIC SIMULATION
The simulation is based on fixed time increments; the speeds and positions of individual
vehicles are updated at an increment of one second. Spatially, the simulation is continuous in
that a vehicle can be positioned at any point along a link. The model includes an animated
graphical display of vehicle movements in the network.
The simulation starts by loading the simulation parameters, network data including global
and local variations and trip information (demand and routes determined by the demand
model). It then runs through an interative procedure at the pre-defined time increments,
within which the following tasks are performed:
1. Update the state of traffic signal controls, and check if any incident starts or ends;
2. Generate new entry vehicles and place them on their entrance links;
3. Loop through all vehicles in the network, and for each one of them:
(a) check if the vehicle wants to change lane and, if so, whether the gaps are acceptable;
(b) update the vehicle’s speed and acceleration and advance it to its new position. At the
end of the link, either remove the vehicle from the network (if it arrives at its
destination) or pass it to its next link en route;
(c) calculate vehicle emissions and fuel consumption, and record traffic performance
measures;
4. Update the graphical display if required;
5. Update the simulation clock and return to step 1.
Two additional time periods are simulated for each study (for example peak) period on each
day: a warm-up period to ensure that the simulation does not start with an empty network and
a cooling-off period which represents, say, the off-peak period. In the warm-up period trips
are generated with flow rates increasing linearly from a pre-peak level (which is assumed to
be half of the starting peak level) to the level at the start of the study period. During the study
period trips generated by the demand model arrive on the network. In the cooling-off period
flows arriving on the network are reduced gradually to an off-peak level, and the run
continues until all trips generated by the demand model complete their journey.
11
The network is represented by nodes, links and lanes. A node is either external, where traffic
enters or leaves the network, or an intersection. There is no restriction on the number of
roads connected to an intersection.
A link is a directional roadway between two nodes and consists of one or more lanes. A link
is specified by its upstream and downstream nodes, cruise speed, number of lanes, and turns
permitted to other outbound links from the downstream node. For each permitted turn, the
lane(s) in the link that can use this turn are specified and a marker describing its priority over
opposing flows is given.
In the model traffic moves in lanes. A lane can be reserved for a particular type(s) of
vehicles only (for example a reserved bus lane). The reservation is specified by its start and
end position on the lane and, optionally, by a start and end time of its operation.Vehicles
travel through an intersection along “inter-lanes” which are straight lines connecting the
stopline of an inbound lane with the entrance of an outbound lane; the crossing point of two
inter-lanes is a conflict point.
Vehicles are individually represented; each has a set of individual characteristics including
vehicle type (car, bus, guided-bus, taxi, heavy goods vehicle); vehicle length; desired
minimum distance headway; normal and maximum acceleration; normal and maximum
deceleration; desired speed (relative to the mean speed on any individual link) and acceptable
gap. These characteristics are randomly sampled from normal distributions representative of
that type of vehicle:
where pt is a random variable representing vehicle parameter p for vehicle type t and Pt is the
average value for the type of vehicles. βv is a user-defined coefficient of variation and is
assumed to be independent to vehicle types. The characteristics for each vehicle are chosen at
the start of a model run. The default values are based on a number of sources, including May
(1990), Institute of Transportation Engineers (1982) and Gipps (1981).
Public transport vehicles are represented with additional information such as service number,
service frequency, bus stops and average passenger flows at each bus stop, etc.
Vehicles enter the network at the upstream end of the entrance link (the first link en-route),
with initial position and speed based on the position and speed of the preceding vehicle. If
there is no space available in the entrance link, vehicles wait in a vertical queue at the
upstream end of the link to enter the network at a later time.
Vehicle movements in a network are determined by its desired movement, response to traffic
regulations and interactions with neighbouring vehicles. The simulation maintains a linked
list of vehicles in each lane and moves individual vehicles according to a car-following model
and a lane-changing model, and their response to traffic controls at intersections.
12
The car-following model calculates a vehicle’s acceleration in response to its desired speed
and the relative speed and distance of the preceding vehicle. Depending on the magnitude of
the relative distance, a vehicle is classified into one of three regimes: free-moving, following
or close-following.
Free-moving: when a vehicle is the leading vehicle in its lane and its position relative to the
stopline of the link is larger than a pre-defined threshold dh, or if it is a following vehicle with
a space headway larger than dh, the vehicle accelerates or decelerates freely in order to
maintain its desired speed.
Following: when the space headway becomes shorter than dh but longer than a lower
threshold dl, the vehicle will take a controlled speed which is derived from the relative speed
and distance of the preceding vehicle in a manner similar to that used in NEMIS (Mauro,
1991):
where i and i-1 denote the subject and its preceding vehicle, v and x the speed and position of
a vehicle, τ is the reaction time, Li the length and simin the minimum safety distance of the
vehicle. Parameters c1, c2 and c3 are constants.
Close-following: when the space headway is below dl, the following vehicle will prepare to
stop in case the preceding vehicle brakes suddenly. A Gipps’ (Gipps, 1981) safety speed is
used which has the following form:
close
vi (t) = d i τ + di 2τ2 -di {2[x i-1 (t -τ)- x i (t -τ)-Li-1-si min ]- vi (t -τ) τ- vi-1 (t -τ) 2 /d'i-1} (11)
where di is the maximum deceleration of vehicle i and d’i-1 is the deceleration of vehicle i-1
perceived by vehicle i; the latter is assumed to be the minimum of -3.0 and (di-1-3.0)/2 m/s2.
In the model, the vehicle’s reaction time (τ) is assumed to be the same as the simulation step.
The actual speed of the following vehicle i is:
In all cases, drivers will not want to move at a speed exceeding their desired one, accelerate
at a rate exceeding their maximum acceleration, or decelerate above their maximum
deceleration rate. When a vehicle moves at a speed below a minimum speed, the vehicle is
regarded as stationary.
The lane-changing model contains three steps: (1) obtain the lane-changing desires and define
the type of changing, (2) select the target lane, and (3) change lane if all gaps are acceptable.
The model divides drivers’ lane-changing desires into one of five types when drivers have to
or want to change lane in order to:
(a) reach a bus stop on the link;
(b) avoid a restricted-use lane or incident;
13
(c) make their turn from the next junction;
(d) move into a lane reserved for their type; or
(e) gain speed by overtaking a slower moving vehicle.
The first three types are “mandatory”, i.e. the lane-changing has to be carried out by a certain
position on the current link; the other two types are “discretionary”. Whether a discretionary
lane-change can be carried out depends on the actual traffic conditions. For example, a
vehicle would only change lane to gain speed if the speed offered by the adjacent lane is
higher by a pre-defined factor.
When a vehicle wishes to change lane, it looks for a target lane. The target lane is generally
determined by the lane-changing requirement, except in the case of overtaking which is only
permitted from the nearside to the offside. Once it has chosen a target lane, it examines the
“lead” and “lag” gaps in its target lane, and makes the lane-changing movement immediately
if both lead and lag gaps are acceptable. For discretionary lane-changing, a gap gi for vehicle
i is acceptable if it is greater than a minimum safety distance Gimin which the vehicle wants to
keep in case the preceding vehicle breaks suddenly:
The acceptable gap for mandatory lane-changing decreases as the vehicle gets closer to its
‘target point’. The target point can be a bus-stop, the position of an incident, or the end of the
queue from the stopline (in the case of lane-changing for next junction turning). If a vehicle
gets nearer to its target point but has not been able to change to the target lane, the vehicle
may slow down and eventually stop and wait for an opportunity to change lanes. When the
speed on the target lane is below a pre-defined threshold, some drivers on the target lane may
deliberately slow down in order to create gaps for the subject vehicle to join. These drivers
are randomly selected from a pre-defined proportion which is related to the type of subject
vehicle (for example, there might be a higher proportion of people willing to giveway to
buses than to cars).
Vehicles can only change one lane at a time. After one such manoeuvre, the vehicle has to
wait for a pre-defined period of time before making another lane-changing attempt.
At a signalised intersection, when the signal has just changed to green, the head of the queue
checks whether its path is clear before moving off. During the remaining green period,
vehicles move across the intersection at a speed determined by the car-following rules: the
lead vehicle follows the last vehicle in the outbound lane it turns into. At the instant the
signal changes to amber, the vehicle nearest to the stopline will consider whether to stop. If it
is too close to the stopline, it will either go ahead if it can pass the stopline within the amber
period with its current speed, or alternatively make a random decision whether to carry on
moving or to stop. If the decision is to stop, it applies its maximum deceleration if necessary;
14
similarly, if it decides to go on, it may accelerate at its maximum acceleration rate. This
decision is then maintained throughout the remaining amber period. A vehicle is allowed to
move across at the start of a red signal only if it can not stop at the stopline with its maximum
deceleration.
Travelling towards a giveway intersection, vehicles will aim to stop just before the stopline,
and only when they are a few metres away from the stopline where they can see the situation
on the major road will they start to look for gaps to join in or to cross the major flows. The
acceptable gap is individual based and can vary with the length of time the individual has
waited at the giveway sign. Vehicles approach a roundabout as though approaching a priority
junction and give way to circulating traffic on the roundabout.
The traffic simulation records the link travel times for each demand trip and passes this
information to the driver learning process where the individuals update their perception of the
network incorporating today’s travel experience.
As a measure of network performance, the simulation also outputs (by default) network, link
and route specific measures such as average travel time, speed, queue length, fuel
consumption and pollutant emission over regular time periods defined by the user. At the
user’s request, the program may also output vehicle trajectories. A graphical animation of the
vehicles’ movements can also be shown in parallel with the simulation, giving the user a
direct view of the traffic condition on the network.
6. IMPLEMENTATION
In practice, however, it may be desirable to run the model with a number of simplifications.
Thus, the traffic supply model may be based on a more conventional static network model
with macroscopic flow-delay functions but with variable parameters such as link capacity,
while the demand model is based on the full evolution of driver choices from day to day. An
application of the latter approach is described in Section 7.2.
Similarly the demand route choice can be derived from a static equilibrium assignment, but
applied to the vehicle-by-vehicle simulation. DRACULA is compatible with the equilibrium
model SATURN such that it can use the network and route assignment from SATURN and
combine that with its detailed microsimulation to model the supply-side effect of some real-
time strategies. The microsimulation model requires essentially the same basic data as a
macrosimulation model such as SATURN - nodes, links, number of lanes per link, lane
markings, signal operations, giveway rules, etc., with some extra data related to the geometry
and size of intersections for example.
15
The flexibility of the framework ensures that, while keeping its novel aspects in one way or
the other, DRACULA can be integrated to a greater or a lesser extent into existing models.
Current data bases will almost certainly provide the best starting points for new models.
Figure 1 shows the simulation processing speed (measured as the ratio of the time simulated
to CPU time) as a function of traffic density in a network using a Pentium II-300 PC. The
network is the north Leeds network described in Section 7.5. It can be seen from the figure
that the processing speed decreases exponentially as flow density increases. Even at the full
demand (23,000 vehicles/hour) the simulation ran 20 times faster than real time.
7. APPLICATIONS
7.1. General
While in theory DRACULA could be applied to studies of long term and large scale network
changes, such as the construction of new motorways or a bypass, this is an area where
conventional aggregate equilibrium models are likely to be satisfactory (although the difficult
question of demand responses such as departure time changes arises even here). However the
behaviourally sounder microscopic models could be used to test certain key assumptions of
macroscopic models, and to suggest alternative methods (possibly empirical modifications)
which might improve conventional techniques. Certain fundamental questions related to the
stability of solutions and the existence of multiple equilibria may also be addressed by such
models (Watling, 1996).
However, it is in the general area of testing real-time policies that we feel the use of
microscopic models to be essential. For example it is an ideal environment for a detailed
simulation of responsive signal control systems (such as SCOOT), including the potential
effects on driver re-routing. Similarly it can be used to model congestion pricing schemes
such as those proposed by Oldridge (1990) where the charge - if any - is determined by the
precise space-time trajectory of individual vehicles. Aggregate network models have
singularly failed to come to grips with such policy tests (May et al., 1997). In addition
disaggregate demand models, in which each individual’s propensity to pay for travel may be
represented, offer a sounder behavioural basis than aggregate models.
A key feature of the model is its ability to consider multiple classes of users, which may
differ in one or more of the following characteristics:
(a) informed or non-informed, and the nature of information available;
(b) speed-control equipped or not;
(c) behavioural response rules;
(d) traffic performance characteristics (length, acceleration, deceleration, risk);
16
(e) vehicle types which determine their access to physical facilities (such as bus lanes,
HOV lanes and guideways for guided buses).
Next we present some results from applications of DRACULA in studying the variability
effect, in modelling dynamic systems on drivers route choices and system performances, and
in scheme evaluation. The results and discussion are primarily intended to illustrate the
applicability of the DRACULA approach, and to show that the model responds logically to
changes in model parameters.
In this section, a simplified DRACULA model is used to study the sensitivity of the model
predictions to day-to-day demand and supply variability. A highly simplified traffic model is
used, with a static flow-delay relationship for each link and no junction-based delay. In
particular, below capacity travel time is assumed to increase with flow according to a power-
law, with delays increasing linearly above capacity according to deterministic queuing
theory.
On the demand side, the full evolution of driver choices from day to day (as described in
Section 4) is modelled. On the supply side, link capacities vary randomly (according to a
uniform distribution) from day-to-day to simulate crudely the effect of parking, accidents etc.
Preliminary tests with the above model have been performed on a number of networks,
ranging from small artificial ones to a real-life network (created originally for the SATURN
equilibrium model) containing some 440 links and 20000 individual trips on average per day.
Because neither the method of generating the variability, nor the actual levels of variability
assumed, were calibrated from real-life data, the work was considered to be more of a
sensitivity analysis. For this reason, it is not appropriate to report absolute figures. Instead,
the general themes arising from the tests are reported. These will serve as hypotheses, to be
tested in the next sub-section on different scenarios.
Stability of the model was examined by comparing day-averaged link flows and travel times
from runs with different numbers of total days simulated, different numbers of “warm-up”
days discarded, and different pseudo-random number seeds. In addition, successive n-day-
average flows were compared (n=10) as a measure of 'stability'. Different networks tended to
need a different number of days to stabilise to the same level, although 50-100 was generally
found to be adequate. The apparent stability was verified by comparing runs with different
random number seeds, where it was confirmed that the differences in mean flows were
attributable purely to sampling variation.
(a) As might be expected, link flow variances generally increased with a decrease in the
behavioural parameter M (see Section 4.5) over the range 5 to 20. Provided M was
somewhat less than the number of (non warm-up) days simulated, mean flows were not
17
greatly affected. For large values of M, certain pathological cases existed where single
very bad experiences in early days had a significant effect on final flows.
(b) When the behavioural parameter N (Section 4.5) was set to 1 (in practice, this is
something akin to a network full of “tourists”), the model produced unstable - and
perhaps implausible - flows for long periods. However, for larger values of N (3 ≤ N ≤
10) this instability was not evident. The mean flows did not vary greatly with N in this
latter range.
(c) Increasing the variability in OD demand was found to increase the variance in link flows,
though it did not substantially affect mean flows. For 3 ≤ N ≤ 10, these mean flows were
found to be well-approximated by a deterministic equilibrium model applied to the
average OD matrix.
(d) Variability in capacity, when applied to certain critical links, was found to have the
greatest effect on long-term mean flows, these being rather different to the equilibrium
prediction from average capacity values.
(e) Generally, even in cases where equilibrium and mean day-to-day flows were similar, the
former model consistently under-estimated average total travel time in the network (as
expected - see Cascetta, 1989; Mutale, 1992).
Further to the tests reported above, the full DRACULA model was used to further study the
effects of demand and supply variability on network performance. The full model, which
contains the main features listed in Sections 4 and 5, was applied to the network of Otley – a
real-life network with some 50 links and 2,500 individual trips in a one-hour morning peak.
Six simulation tests were conducted with various level of variability in day-to-day demand
and network supply conditions (including vehicle characteristics). The detailed parameter
settings are listed in Table 1. For each test a total of 100 days were simulated.
Figure 2 shows the day-to-day total vehicle travel times (in vehicle-hours) over the 100 days
simulated for tests 1-4. It demonstrates a general feature of DRACULA results: the results do
not converge to a single equilibrium state but continue to vary ad infinitum. Figure 3
compares the relative impacts of demand and supply variability on the averages and variances
in daily vehicle travel times; the comparison is made under the assumption that a demand
variability range of 0<βd<0.2 is comparable to a supply variability range of 0<βs+βv<0.2.
Both Figs. 2 and 3 show that the day-to-day total vehicle-hours are much higher on average at
higher variability than at lower variability. More specifically Fig. 3a shows that the demand
variability on its own does not substantially affect the average travel times, most of the
increases being due to supply variability. However, the demand variability introduce greater
variation in day-to-day travel times than does the supply variability (Fig. 3b). This implies
that a network becomes more unreliable as the demand variation increases.
18
A further study was carried out on the Otley network, with βd, βs, and βv all being set at 0.2
and a total of 1000 days being simulated. Figure 4 shows the frequency distributions of total
network travel times by day over the 1000 days simulated. It can be seen that the distribution
is skewed towards higher travel times, illustrating the existence of a small number of “very
bad” days. These days, although relatively few, have a significant impact on the average
result since they are not compensated by any “very good” days. Thus the mean travel time of
98.6 is significantly greater than the mode of 88.7 and the median of 95.0
The signals may be set by a simple responsive “equi-saturation” policy where the green
proportions allocated to each stage are determined based on the number of vehicles
discharged in the previous cycle. Here, signal cycles were kept constant and a minimum
green period of 8 seconds was maintained. In addition, a fixed plan optimised to the average
traffic condition is used for comparision. A total of 100 days and two levels of variability in
daily demand (βd = 0.05 and 0.2) were simulated. The averages and standard deviations in
network total travel times (in vehicle-hours) are summarized in Table 2. Day to day total
vehicle-hours are shown in Figures 6(a) and 6(b) for the low and high levels of variability
respectively.
(a) Under both signal control policies, both the average and variance in vehicle-hours are
higher at higher demand variability. This conforms with the results found in the above
two studies;
(b) Average travel times are lower under the responsive policy than under the fixed plan; and
(c) The responsive policy performanced even better over the fixed signals under higher
demand variability; the average difference in travel times between the responsive signals
and the fixed plans is 26.7sec with βd=0.2 compared with 20.4sec when βd=0.05 (Fig. 6).
19
The better travel performances produced by the responsive signals have also played an
important role in drivers’ route choice. Changes in signals were seen to attract drivers to the
more direct routes. With the responsive plans all drivers were assigned to the two minimum
distance routes by the end of 100 days, whereas with the fixed signal all four routes were
used.
In this example, we apply the full DRACULA model to a large, real-life network to examine
the short-term effect of a demand-management measure on drivers’ route choice and network
performance. The network (cordoned off from the SATURN Leeds model) covers a triangular
area (in the north of Leeds) between the outer ring road and the city centre (see Figure 7).
There are some 200 intersections, 400 links and 23,000 car trips per hour in the morning peak
period. The radial routes carrying most of the traffic to the city centre in the morning are
Kirkstall Road on the east, Meanwood Road on the west, and Otley Road and Spen Lane in
the middle.
The proposed scheme introduces bus-only lanes on Otley Road in-bound from the ring road to
Shaw Lane (shown as zigzag links in Figure 7). The road space available to general traffic is
hence reduced from two lanes to one. The remaining lane is further narrowed to reduce the
free-flow speed. The full DRACULA model is used to compare the route switching and
travel time changes for the before and after scenarios. A total of 100 days were simulated with
βd, βs and βv all being set to 0.1. Only the car trips were simulated.
With the severe reduction on road capacity along Otley Road, it is expected that some route
switching to alternative routes must take place. Figure 8 shows the differences in average link
flows between the base and the scheme scenario over the last 50 days simulated. It can be
seen that flow through the upper Otley Road was significantly lower in the scheme network
than in the base network and that much of those flows were diverted to nearby Spen Lane or
Meanwood Road. An analysis of trips from the top of Otley Road just outside the Ring Road
to the City Centre (an OD pair whose minimum distance route is along Otley Road) reveals
that the average journey time has increased from 10.5min to 11.5min in the scheme network.
9. CONCLUSIONS
The methodology described here is similar to conventional models in that it starts with the
same basic behavioural assumptions, eg. that drivers attempt to choose maximum utility
routes and that they wait for gaps in the major flows at priority junctions, and outputs the
same aggegated statistics such as average link flows and times. However it differs
significantly in that it operates throughout at a very disaggregate level and aggregates by
20
explicit summation at the end rather than trying to infer aggregate system properties via
deductive mathematical formulae and algorithms as conventional models do. This approach,
we believe, offers several distinct advantages as outlined below with particular reference to
areas where, we believe, conventional models experience problems. Inevitably, it suffers
from a number of disadvantages which we also list.
2. It produces a much greater range of outputs, not just means but also variances and
probability distributions both within and between days.
21
7. Furthermore it has the potential to provide a mechanism for modelling departure time
choice which clearly is an important issue in over-capacity situations, and one which to
date conventional models have significantly failed to address. A relatively simple and
preliminary specification was given in Section 4.3, although the tests reported here used
pre-determined departure times.
8. Multiple user classes are straight forward to model at virtually any level of disaggregation
and at virtually no extra computational effort, simply by associating particular
characteristics with each member of the "population". Indeed, since each member can be
assigned a whole "vector" of characteristics, there is great flexibility in aggregating travel
statistics by "class". Contrast this to conventional models where each user class requires:
(a) a distinct trip matrix (or, more often than not, a distinct factor) and (b) a separate set of
shortest route calculations; so that the total cpu time increases roughly in proportion to the
number of classes.
9. By operating in real time DRACULA may be used to provide inputs to other real-time
models such as vehicle emission and dispersion models or noise models. Since these
processes do not directly affect driver behaviour they can be thought of as add-ons - albeit
very important ones - rather than integral components.
1. It requires large quantities of computational time and memory, which increase roughly
linearly with the size of the problem. Nevertheless, as demonstrated in Figure 1,
DRACULA can run moderately sized networks on standard PCs much faster than real
time and, given the rapid improvements in computer technologies, computational
requirements will become less of an issue in the future. It should also be noted that, once
beyond the initial warm up period, all calculations in DRACULA are useful, unlike
conventional assignment models where early iterations only serve as a means to approach
the final "correct" iteration.
2. As with all "stochastic" models its outputs are subject to statistical uncertainties and are
sensitive to the precise stream of random numbers used. Deterministic models do have
the advantage of providing an exact "point" solution (within convergence errors, of
course).
3. Calibration is difficult, particularly given the wide range of input variables and the fact
that it is generally not possible to associate a directly observable output with a single
input. For example, if one were to measure the day-to-day variance in link traffic flows
and speeds it might be possible to "match" these variances by varying any one of a
number of input parameters such as the ß's in Eqs. (1), (8) and (9).
4. Similarly, since its input parameters are almost all "universal", it may be difficult to
calibrate more "local" parameters, for example, the capacity or the saturation flow of a
single link, which would normally be provided as input data in conventional models.
5. Since there is no direct analytical functional relationship between inputs and outputs it is
difficult to use DRACULA as a "normative" model, e.g. to use it to suggest improved
strategies for setting traffic signals or providing route guidance. Its role is firmly in
evaluation.
22
Overall we would argue that a microsimulation framework such as that embodied within
DRACULA offers a viable alternative for futher developments compared with the more
traditional equilibrium or aggregate models. The applications described here show that it can
handle realistically sized networks on standard PCs and that it responds logically to various
sources of variability.
The framework is undergoing further research and development, reflecting on-going research
in developing real-time strategies and in the dynamic evolution of traffic networks.
Improvements have been made to the simulation of public transport networks (including bus
service routes, bus stops and reserved bus lanes), selective vehicle detection and journey time
prediction and responsive signal controls for public transport priority (Liu et al., 1998).
Research is under way to study the effect of external vehicle speed control systems on
network congestion, pollution and safety, where the DRACULA model is used to model the
complex interactions between speed-controlled and non-controlled vehicles (Liu and Tate,
1999). It is also planned to connect the simulation model to a real-time signal control system
(such as SCOOT) and to incorporate dynamic en route diversion into the framework. A
traffic emission model has been developed under the general framework which takes
individual vehicles’ instantaneous speed and acceleration and derives pollutant emissions.
Acknowledgements
We wish to acknowledge a grant from the UK Engineering and Physical Science Research
Council and useful discussions with a large number of colleagues both at ITS and elsewhere
over a long period of time.
References
Alfa, A.S. and Mink, D.L. (1979) A stochastic model for the temporal distribution of traffic
demand - the peak hour problem. Transportation Science 13, 315-324.
Barcelo, J., Ferrer, J., Grau, R., Florian, M. and Chabini, E. (1995) A route based version of
the AIMSUN2 micro-simulation model. 2nd World Congress on ITS, Yokohama.
Ben-Akiva, M., De Palma, A. and Kanaroglou, P. (1986) Dynamic model of peak period
traffic congestion with elastic arrival rates. Transportation Science 20(2), 164-181.
Cameron, G.D.B. and Duncan, G.I.D. (1996) PARAMICS, parallel microscopic simulation of
road traffic. J. of Supercomputing 10(1), 25-53.
Cantarella, G.E. and Cascetta, E. (1995) Dynamic process and equilibrium in transportation
networks: towards a unifying theory. Transportation Science 29(4), 305-329.
Dafermos, S.C. (1972) The traffic assignment problem for multiclass user transportation
networks. Transportation Science 6, 73-87.
23
Daganzo, C.F. (1983) Stochastic network equilibrium with multiple vehicle types and
asymmetric, indefinite link cost Jacobians. Transportation Science 17, 282-300.
Dehoux, P. and Toint P. L. (1991) Some comments on dynamic traffic modelling in the
presence of advanced driver information systems. In Advanced Telematics in Road
Transport, Elsevier, 964-980.
Emmerink, R.H.M. and Nijkamp, P. (ed.) (1999) Behavioural and Network Impacts of Driver
Information Systems. Avebury, Aldershot, UK, in print.
Friesz, T.L., Luque, J., Tobin, R.L. and Wie, B. (1989) Dynamic network traffic assignment
considered as a continuous time optimal control problem. Operational Research 37(6), 893-
901.
Hu., T.-Y. and Mahmassani, H.S. (1997) Day-to-day evolution of network flows under real-
time information and reactive signal control. Transportation Research 5C, 51-69.
Hunt, P.B., Robertson, D.I., Bretherton, R.D. and Winton, R.I. (1981) SCOOT – a traffic
responsive method of coordinating signals. TRRL Laboratory Report 1014.
Jayakrishnan, R., Mahmassani, H.S. and Hu, T.-Y. (1994) An evaluation tool for advanced
traffic information and management systems in urban networks. Transportation Research 2C,
129-147.
Liu R., Clark S.D., Montgomery F.O. and Watling D.P. (1998) Microscopic modelling of
traffic management measures for guided bus operation. Paper presented at the 8th World
Conference on Transport Research, Antwerp, Belgium, July 1998.
Liu, R. and Tate, J. (1999) Microscopic modelling of external vehicle speed control systems.
Paper presented at the 1999 UTSG Annual Conference, January 1999, York.
Maher, M.J. (1998) Algorithms for logit-based stochastic user equilibrium assignment.
Transportation Research 32B, 539-549.
Maher, M.J. and Hughes, P.C. (1997) A probit-based stochastic user equilibrium assignment
model. Transportation Research 31B, 341-355.
24
Mahmassani, H.S. and Jayakrishnan, R. (1991) System performance and user response under
real-time information in a congested traffic corridor. Transportation Research 25A, 293-308.
Mauro, V. (1991) Evaluation of dynamic network control: simulation results using NEMIS
urban microsimulator, Transportation Research Board 70th annual meeting, Washington DC.
May, A.D. (1990) Traffic Flow Fundamentals. Prentice Hall, Englewood Cliffis, New Jersey.
May, A.D., Milne, D.S., Smith, M.J., Ghali, M.O. & Wisten, M.B. (1997) A comparison of
four alternative road pricing systems, Proc. of the 7th World Conference on Transport
Research, Sydney, (ed. Hensher, D.A., King, J. & Oum) Pergamon.
Mutale, W. (1992) Effect of variability in travel demand and supply on urban network
evaluation, PhD Thesis, University of Leeds, U.K.
Nagel, E. (1996) Particle hopping model and traffic flow theory. Physics Review E53(5),
4655.
Papageorgiou, M., Hadi-Salem, H., Blosseville, J.M. & Bhouri, N. (1989) Modelling and
real-time control of traffic flow on the Boulevard Peripherique in Paris. IFAC Control,
Computers, Communications in Transportation, Paris, Pergamon, Oxford, 205-211.
Quinn, D.J. (1992) A review of queue management strategies, Traffic Engineering + Control,
33(11), 600-605.
Ran, R. and Borce, D.E. (1994) Dynamic Urban Transportation Network Models. Springer-
Verlag, Berlin.
Rathi, A. and Santiago, A. (1990) The new NETSIM simulation program, Traffic
Engineering + Control, 31(5), 317-320.
Shepherd, S.P. (1991) The development of a real-time control strategy to reduce blocking-
back during oversaturation using the microsimulation model NEMIS. Proc. of the 24th ISATA
International Symposium on Automotive Technology and Automation, Florence, Italy,
Automotive Automation Ltd, 151-158.
Taylor, N.B. (1990) CONTRAM 5: an enhanced traffic assignment model, TRRL RR 249.
Van Vliet, D. (1982) SATURN - a modern assignment model, Traffic Engineering + Control,
23(12), 578-581.
Van Vliet, D., Bergman, T. and Scheltes, W. (1986) Equilibrium traffic assignment with
multiple user classes. Paper presented at the 1986 PTRC Summer Annual Meeting, Brighton,
July, 1986.
Van Vuren, T. and Watling, D. (1991) Multiple user class assignment model for route
guidance. Transportation Research Record 1306, 22-32.
25
Vythoulkas, P.C. (1990) A dynamic stochastic assignment model for the analysis of general
networks. Transportation Research 24B, 453-469.
Wardrop, J.G. (1952) Some theoretical aspects of road traffic research. Proceedings, Institute
of Civil Engineers, Part II(1), 325-378.
Yang, Q. and Koutsopoulos, H.N. (1996) A microscopic traffic simulator for evaluation of
dynamic traffic management systems. Transportation Research 4C, 113-129.
26
Table 1
Coefficient of variances used in the simulation tests.
Test Number βd βs βv
1 0.05 0.05 0.05
2 0.10 0.10 0.10
3 0.15 0.15 0.15
4 0.20 0.20 0.20
5 0.05 0.20 0.20
6 0.20 0.05 0.05
Table 2
Summary results of network total travel times (in vehicles-hours) under the two signal control
policies.
27
Figure Captions:
Fig. 2. Daily network total travel time (in vehicle-hours) over 100 days simulated under
variable demand and supply conditions. Four levels of coefficient of variation (CoV=0.5, 0.1,
0.15 and 0.2) are introduced to both the day-to-day demand (βd) and the supply (βs and βv).
Fig. 3. Average (a) and standard deviation (b) in daily travel times as a function of demand
and supply variability.
Fig. 4. Frequency distribution of average daily travel time (in vehicle-hours) for the Otley
network, based on a simulation of 1000 days.
Fig. 5. The network for testing the signal control policies. Intersections C, D, E and F are
signalized and the two OD pairs are A to B and B to A. One-way streets are indicated by
arrows.
Fig. 6. Network total travel time under the fixed and the responsive signals, for demand
variability of 5% (a) and 20% (b).
Fig. 7. The North Leeds network. The proposed bus-lanes run along the links shown as zigzag
lines. One-way streets are indicated by arrows.
Fig. 8. Flow differences between the base and the scheme network averaged over the last 50
days. Black and gray indicate an increase and decrease of flow from the base to the scheme
network respectively. The bandwidth is in proportion to the flow difference.
28
Figure 1.
140
Simulation Speed Factor
29
Figure 2.
CoV=0.2 CoV=0.15
60 CoV=0.1 CoV=0.05
50
Total Travel Time
40
30
20
0 20 40 60 80 100
Day
30
Figure 3(a)
50
supply only
Av. travel time (sec) 45 demand only
demand+supply
40
35
30
25
0 0.05 0.1 0.15 0.2 0.25
Coefficient of Variation
Figure 3(b)
4
Stdev. of travel time (sec)
supply only
demand only
3
demand+supply
0
0 0.05 0.1 0.15 0.2 0.25
Coefficient of Variation
31
0
0.
21
0
0.
20
0
0.
19
0
0.
18
0
0.
17
0
0.
175
150
125
100
75
50
25
0
Frequency
Figure 4.
32
Figure 5.
C D E F
A B
33
Figure 6 (a)
250 Responsive
Fixed
Total Travel Time
200
150
100
50
0
0 20 40 60 80 100
Day
Figure 6(b).
Responsive
250
Fixed
Total Travel Time
200
150
100
50
0
0 20 40 60 80 100
Day
34
Figure 7.
Otley
Road
Meanwood
Road
Kirkstall
Road
Spen
Lane
City
Centre
Figure 8.
150 vehicles:
35
SATURN MANUAL (V11.2)
D.1.3 SATNET
1) 5 digit simulation node numbers now permitted.
2) Turn priority “modifiers” have been added to change the impact of priority
markers in certain (probably unusual) situations; see 6.4.2.
3) Each record in a UFS file now has a “title”; a new data file (SATTIT.DAT) is
therefore needed as input to SATNET to define them.
4) Users are recommended (as a consequence of allowing 5 digit node
numbers) to use 99999 instead of 9999 to mark the ends of data segments
in the input to SATNET.
5) Roundabouts may now be coded as simulation node type 5 which implies
that U-turns are permissible.
6) New parameters include KORN, KOB
See Section 6.3.
D.1.4 SATASS
1) An improved multiple user class assignment algorithm has been introduced
which should improve the division of link flows between user classes.
2) New options ROSIE and DIDDLE introduced, largely as yet for
experimentation; see Sections 7.1.3 and 7.8 respectively.
3) The method by which random costs in stochastic assignment are
determined has been changed to make them capable of being repeated later
on for analysis purposes; refer to parameters KORN and KOB in Section
7.2.3 and 7.2.4.
D.1.5 SATSIM
1) The lane choice mechanism has been updated, maybe EVEN improved!
2) Delays to turns in shared lanes are more self-consistent, reflecting the fact
that they share the same queue.
3) Unblocked vehicles at the head of a lane when lights go green can now “go”
before a blocked vehicle arrives.
4) Output statistics now include estimates of, e.g., vehicle-kms in later time
periods due to queued traffic.
D.1.6 SATLOOK
1) A new option provided to give summary statistics of errors and convergence
parameters from a full SATURN run.
2) The tree building options have been considerably extended.
D.1.7 P1
1) A new option to automatically display ALL trees from an interactive
assignment for a single O-D pair.
2) Forests may now be built and displayed directly in P1 (rather than
transferring them from SATLOOK).
3) Options to “shift” the window, e.g., to the left or right, and to “zoom” or “pan”.
4) Turn data may now be annotated, e.g., turning volumes.
5) Similarly node data other than simply node numbers may be displayed.
6) An informative “banner” giving details of the plot is available.
7) The “scale” of the plot is calculated, e.g., 1:10000, and may be used to set
the window size.
8) 2-way flows may be chosen.
D.1.8 SATED
1) Node graphics introduced.
SATDB
Although introduced in later versions of SATURN 7 SATDB is now offered
“officially” as part of SATURN 8. See Section 9.5 for a more complete description
of its extensive data base facilities.
SATCH
Equally the cordon program SATCH was included in later versions of SATURN 7
but is now released in a more polished form as part of SATURN 8. See Section
12.1.
SATOFF
A totally new program in SATURN 8, SATOFF optimises signal offsets, mainly
with a view to deciding on appropriate offsets in future networks with very different
flow patterns from the present. See Section 12.2.
SATU2
SATU2 is a supplementary program for PIJA analysis which converts PIJA values
calculated by SATASS into matrices of trips using the selected links. See Section
11.6.
Various “major” program specific changes are noted below; “minor” changes such
as the re-ordering of menus are ignored.
D.2.1 SATNET
1) The parameter FOZZY is introduced to enable bus routes to be defined via
“interpolation” - a godsend for users with many routes! See 6.3.1 and 6.9.
2) “Sectors” definition has been introduced as (an optional) part of the co-
ordinate data input section. See Section 6.8 and the new parameter
IROCKY in 6.3.2.
3) Link/turn count data may be sub-divided into several different “sub groups”,
generally referred to as “screen lines” by using the ‘777’ data input records
more than once. See 6.10.
4) The new parameter BEAKER allows capacity indices to be defined for turns
in the simulation network as well as links. See Section 6.3.1.
5) Nodes not given co-ordinates may now have them worked out from the co-
ordinates of their neighbours.
D.2.2 SATDB
1) The facilities to carry out “selected link assignment” have been considerably
extended, e.g., to allow the analysis of trips crossing any one of a set of
screen line links (as defined in SATNET) in addition to trips using a single
link/turn. In addition a “selected trip matrix” may also be created and sector-
to-sector trips may be printed.
2) A new “miscellaneous” option permits link and/or turn data to be read from
an input “text” or “data” file, stored in the internal data base and from there
stored in a UFS file (if required). This provides a relatively simple method
for transferring data into a SATURN file, e.g., from another suite of
programs.
D.2.3 P1
Although substantially re-written to make use of the “map network”, P1 will appear
much the same to users - although there has been a certain amount of “shuffling”
of options between menus. In addition a number of new facilities have been
added:
1) Terminal output (screen size permitting) now includes a text banner down
the right-hand side with, e.g., a list of the parameters being annotated,
origins and destinations from trees, etc.
2) Tree selection has been considerably enhanced and includes both
isochrones, skimmed times and distances plus an “animated” link-by-link
display of minimum routes.
3) “Interpolated routes” - see above - may be directly selected and displayed by
nominating end nodes.
D.2.4 SATED
1) Two new methods of defining and editing data for a single simulation node
are introduced:
(i) the data may be read entirely from a .dat file (e.g., as input to
SATNET), or else
(ii) a buffer node in an existing UF file may be converted into a simulation
node, making the maximum use of the information already coded
within the buffer network.
2) The node graphics have been extended to allow the animated display of
cyclical node profiles, e.g., the change in the queuing pattern over a single
cycle of the traffic signals.
D.3.1 SATEASY
SATEASY is essentially the latest version of SATASS and will in time replace it
completely. However for the moment both will exist in tandem.
The main extension in SATEASY is that it allows an elastic Wardrop assignment
for one user class; e.g., assignment plus modal split. A number of notes
describing the theory, options, inputs etc. are available on hard copy - please ask
DVV for copies.
A further extension allows for multiple-user-class elastic assignment, so that you
can model the differing reactions of work trips and shopping trips to increased
congestion.
What SATEASY does not have is any sort of selected link analysis and therefore
no PIJA analysis. My intention is to set up a new separate program, say
SATME1, that will do the PIJA analysis based on the SAVEIT principle. It also
does not allow “quantum assignment” which is now felt to be counter-productive
for the reasons given in 7-4-5.
It does however also contain a new PARTAN option (which may be set as a
parameter on the .dat files input to SATNET) which carries out “PARTAN”
assignment as a variation on Frank-Wolfe for Wardrop equilibrium with a single
user class. I have an article by Yazid Arezki and myself from Transportation
Science which gives the theory and I can send that to anyone interested.
PARTAN may significantly speed up the rate of convergence and as far as I am
aware (famous last words!) is bug-free. Try it and see if it works - I would be very
interested to find out how it performs.
No documentation on PARTAN yet included - be patient.
D.3.2 SURI
SURI is a SATURN-URECA Interface program developed jointly by Leeds and
WS Atkins. Unlike other programs in the Suite it is only available via an extra
purchase from Atkins since only UK users will be interested.
D.3.3 MX
MX is a prototype matrix data base program which will do for matrices the sort of
things that SATDB does for networks. The idea is to eventually include most of
the functions now carried out by M1 to M7 within one, essentially interactive,
matrix manipulation program, MX.
At the moment MX is all there but with very little documentation and a bit like a
brand new house with a roof and all the windows in place but with the distinct
possibility that it you switch on the hall light the loo may flush! New facilities are
being continually added.
One totally new option is the facility to create a new matrix from one or more
existing matrices using FORTRAN style equations. Hence it can be used instead
of the ADD, DOT, etc. options in M1, as well as doing more complicated functions.
For example if you wanted to set up a “deterrence function” matrix defined by
EXP( -B * C(I,J) then MX can do that for you.
Basic documentation is included in 10-9 and the help file is mostly done. In
addition there is an MX.bat file so type MX or MX I and see how you get on. Ring
DVV with any queries - or suggestions/requests!
sort of features are desired by users. However I'm very keen on the whole
concept so any suggestions are very welcome.
See Section 9.4.6 for reasonably comprehensive documentation.
6) At certain points in certain programs where the program has “paused” it is
now possible to move immediately on to another output display by pressing
a single key. For example in P1 you may shift the window upwards by either
pressing U or the cursor control up-arrow once the current plot is finished;
previously you would have had to hit ‘return’ to get to the main menu and
then request the “up” option there.
The facility is only (currently) used at four different points; in P1, MX,
SATDB and SATED, but more will be added later. See Section 9-1-4.
7) SATASS and SATLOOK now provide summary statistics for total flows
through penalised links or turns (as defined under the 44444 cards input to
SATNET) in terms of total pcu-hrs/hr.
8) A third form of randomised cost distribution is now available under SUZIE; a
value of KOB = 2 uses normal distributions where SUET now defines the
coefficient of dispersion (variance to mean) as opposed to the coefficient of
variation (standard deviation to mean) as under KOB = 1. Theoretically this
has nicer properties, in particular for links ‘in series’. It may be used in
SATASS, SATLOOK, SATDB and P1.
SATNET
Link capacity restraint/speed-flow curves introduced on internal simulation links.
This, for example, enables motorway-style links to be included within the
simulation network. See 6.4.12.
SATED
The node graphics provide an option to print out link data (e.g., flows) in addition
to turn data for the selected node.
M1
1) The “stack” option now allows up to 10 single matrices to be stacked (the
previous maximum was 4). In addition, under MS-DOS a new procedure
“STACK” is provided to make stacking matrices easier. Type STACK for
details.
2) A new “unstack” option now allows you to convert a stacked matrix into its
constituent parts. See the parameter UNSTACK in 10.2. In addition, under
M6
New option ‘NEWT’ allows for the input of selected row/column totals instead of
having to define them all.
P1
1) GIS (Geographical Information Systems) input files introduced. See Section
9.4.6.
2) A supplementary node co-ordinate file can now be input to update node co-
ordinates; useful for correcting plots without having to go all the way back to
SATNET. Accessed from the Files Option in P1; details under Help and in
9-4-8.
3) An option to interactively change node co-ordinates within P1 has been
added, entered either from the Files Option or - 386 users only - by typing E
(for Edit) when closing a plot on the screen (an example of point 6 under
General Features above). Sector-based co-ordinates may be defined at the
same time. In addition the complete set of (new) co-ordinates may be
“dumped” to a card image file suitable for direct inclusion in a network .dat
file.
4) The matrix display facilities have been extensively updated and extended.
For example you can now look at two matrices at once and select ranges of
rows and/or columns to display. Using the latter facility it is possible to
examine, in effect, individual matrix
5) The node display menu has been updated and various new options
introduced.
6) Options to “force” the banner to appear either on the right or the top of the
plot are now available - previously the program choose for itself where - and
if - to put the banner.
g) Link “selection” may now be based on data being annotated (previously this
could be done but only be “re-creating” the same data within the Select
Menu)
h) Bandwidths on hard copy output device may now be “in-filled” by a set of
parallel lines 1 mm apart.
i) An option has been added so that, when numerical annotation is included
with a bandwidth, it may be either inside or outside (i.e., on top of) the
bandwidth.
SATSIM
The output summary statistics, e.g., total vehicle-kms., are given more
comprehensively by including both figures for the time period simulated plus
estimates for any queued traffic, as well as being disaggregated by type of flow
(e.g., buses, user class) and by capacity index (if used).
SATED
The node graphics are considerably improved (as well as being included within
P1X; see above). In particular the flexible band-widths or “tubies” for displaying
turn data is a major improvement. In addition:
1) Stage diagrams may be “inserted” at the top of the plot.
2) SATLOOK-style numerical output now directly accessible from the graphics
menu.
3) Salford PC versions now include an option to “define” node data via
“windows” which are superimposed on a node graphics plot.
SATLOOK
The convergence statistics summary tables are a bit more “clever” in that they
exclude parameters which cannot be measured under certain options.
SATME2
1) Selected elements within the trip matrix may be “fixed”.
2) Constraints need no longer be “equality” constraints; counts may be
interpreted as upper or lower limits.
N.B.The current version of SATME2 was previously available under the name
“SATME3”; it now replaces SATME2 as the new facilities have now been
sufficiently well tested. Data files previously used may need minor alterations to
conform to the new input conventions and/or variable names.
♦ When opening a new file programs now check whether or not that file is
already “open”, in which case it will request another file. Previously this
resulted in a fatal error.
10) The number of multiple user classes has been increased to 32 from 10. To
accommodate the extra arrays needed in UF files a system of “extended”
Dirck Access codes has been created; see 15.21.1.
11) The interactive programs P1X and SATED now require mandatory namelist-
based parameter definition files in order to define default values for internal
parameters. For example if you want node numbers to be displayed by
default by P1X you may set a relevant program variable to 1; if it is 0 node
numbers are not displayed. Files may be saved from within the programs
once you have modified the menus to your own requirements so that from
then on the program will have been “customised” to your specifications. See
Sections 9.7.3 and 9.9.2.
12) Ascii data “sub-files” have been introduced whereby a sub-file might contain
the complete set of bus route data as normally contained with a full network
.dat file - hence a “bus sub-file”. Sub-files may be “called” from a network
file using a $INCLUDE option described in Section 15.30 within SATNET.
The use of .xy files in SATURN 8.4 is an early example of a subfile
Sub-files may be created in the usual ways with an edit program or
alternatively some may be created interactively within P1X; see 9.4.12.
13) Matrices with greater than 1,000 rows may now be read as standard without
generating a programming error, although not all programs can necessarily
handle matrices of this size. For example the standard acceptable matrix
size in MX is 600 x 600. As always larger-dimensioned programs are
available on request for those willing to part with additional licence money!
14) The conventions by which array dimensions are defined has been altered
such that multiplely-dimensioned array lengths such as (3,3000) are now
coded as (3,(3000)) in order to simplify re-setting maximum network
dimensions. This is only of interest to programmers who will no doubt be
wondering why I am so obstinate in not using “parameters” - old habits etc.
etc.
15) Both SATDB and P1X now match links which are, e.g., simulation in one
network but buffer in another or vice-versa. Thus if you convert a buffer
network into simulation it is now possible to compare flows in the two
networks either graphically or in tables.
16) A series of tutorial or “how to” batch files has been set up in order to
demonstrate specific features of SATURN interactive programs. For
example, there is a How procedure to demonstrate how to obtain a Selected
Link Analysis within P1X. See 9.1.8.
can be opened and accessed when and as required. Thus, for example,
SATLOOK now has access to the link and node name information held on GIS
files and prints this information out as appropriate. To enable this to happen new
(character) parameters GISFIL have been added to the Namelist parameters read
from .dat files by SATNET, M1 and MX. See Sections 6.3.4 and 10.2.3.
Data encoded within GIS files has been extended to include the following:
♦ Link names.
♦ Co-ordinates for links which are “curved” as opposed to straight lines. (See
section 9.4.2.7)
D.5.4 SATNET
1) Default speed-flow curves as identified by the capacity index may be defined
within the 3333 buffer network data. This facility removes the need to code
speeds and capacities more than once for similar buffer links. See Section
15.9.4.
2) Capacity indices for simulation links may be included on the mid-link
capacity restraint records. See Section 6.4.1. They may also be used in
conjunction with the default speed-flow curves coded under the 333 records
to define simulation mid-link speed-flow or capacity-restraint data. See the
specification for Record Type 2B in Section 6.4.1 plus Sections 6.4.12 and
15.9.4.
3) The “SHANDY” option allows input link distances to be checked against
crow-fly distances calculated from node co-ordinates and zero-coded
13) Under certain circumstances the output binary file from SATNET is now
given an extension .UFN rather than .UFS so as to avoid confusion with the
output files from SATALL and/or SATURN.
14) Bus names may now be “alpha-numeric” as opposed to pure numbers as
previously. This means that the manner in which they are referenced, e.g.,
in P1X, has changed in that they are now referred to by their SEQUENTIAL
number.
15) An “informative title” may be included after the 77777 record (but on the
same line) to give a title for, .e.g., the set of screenline counts that follow.
However the name is not used in very many displays as of yet.
16) A new parameter NUCMIN introduced to set a lower limit on permitted
values of NUC. See 6.3.2.
17) A new parameter BUSKER allows a complete set of bus route data with
every node included to be output to a “network.bus” file.
18) Bus route names are now stored as “alpha-numeric” rather than as pure
numbers. Existing dat files are still acceptable; the differences only become
evident in the way in which bus routes are selected, e.g., in P1X. See 6.9.
D.5.6 SATSIM
1) Fuel consumption statistics per simulation link as calculated within SATSIM
are now stored as a Dirck Access array 1503 in UF* files in units of total
litres within the time period.
Equally the numbers of primary and secondary stops per turning movement
are stored as arrays 1523 and 1533, and the mean simulation link delay in
seconds per pcu is stored as array 1513.
Thus all 4 are now available for, e.g., graphical display within P1X or for
manipulation within SATDB.
2) Output simulation statistics explicitly differentiate between totals which are
accumulated WITHIN the time period simulated and those which occur in the
next time period due to queues at over-capacity junctions. These are stored
within the UFS files so that the same data may also be displayed by
SATLOOK. See Section 15.1.4.
D.5.7 SATALL
The new program SATALL in effect combines the programs SATEASY and
SATSIM into a single program as well as carrying out a full convergence loop
between the two. Thus the output file contains both converged assigned flows
plus the corresponding simulated delays.
By combining two programs into one SATALL should be both faster and,
ultimately, “more clever” in terms of the steps that can be automatically introduced
in order to improve the rates of convergence. However at the time of writing
SATALL simply follows the simple logic of the SATASS/SATSIM loops.
Documentation is contained in Section 18.
1) SATALL features better screen report formats, including loop convergence
statistics from the assignment-simulation loop as well as convergence
statistics from each procedure individually in a format that does not “scroll
off” the screen before you can read it.
2) It also requires an input file (from SATNET) with extension UFN rather than
UFS and outputs a final file with standard extension UFS even if the network
is pure buffer. (N.B. The renaming of the output file from SATNET from
.UFS to .UFN is taken care of within the bat procedure.)
3) Convergence statistics comparing simulation totals between successive
simulations are included within the SATALL line printer output and provides
another method for gauging the overall convergence of the assignment-
simulation loops.
4) The statistics for comparing flows between successive assignments (in
addition to “ISTOP”) now include a mean GEH statistic, relative mean
absolute difference and relative standard deviation. The GEH statistic also
appears in the new screen report mentioned under 1 above.
D.5.8 P1X
1) A large number of input and/or choice operations may now be executed via
the use of a mouse (see Section 9.1.7). In general these are entered
through the key stroke M following a standard network plot; subsequent
choices are indicated by the menu in the banner. In particular the mouse
may be used to:
a) change XY co-ordinates
b) re-define the window
c) define a cordon (and produce a control file for SATCH)
d) select nodes for graphical display
e) request select link re-assignment
f) define bus routes (for output to a file)
g) define joy rides
h) define counts (for output to a file)
i) display trees, forests, etc.
j) create/edit GIS files
k) request link or node based information for display in the banner.
Further information on these options is best obtained by direct
experimentation; some help menus are being prepared but if they are not
available, please be patient!
Note that option M is only displayed if the mouse option is “activated” within
the system/device menu (option 15); the default setting on/off is controlled
by a parameter set within P1X0.DAT which may be customised by users.
2) The manner in which annotated link data is handled has been brought into
line with the concept of a data base as used in SATDB with the
consequence that the majority of options from SATDB are now included in
P1X. Hence P1X and SATDB have been effectively merged.
For example data may be viewed in a tabular format on the screen or
dumped to the line printer file, statistical tests may be carried out, etc.
Link annotation data, as selected from a menu, may now either be stored in
the “permanent” data base or, under a “pick and plot” option, it may appear
directly in a plot without being permanently saved. This saves a good deal
of time if you are simply “browsing” through the data by reducing the number
of instructions necessary to get data up on the screen. In addition, if you
are happy with the data, you may ask to have it permanently stored in the
data base.
3) In a similar manner the “node graphics within P1” options have been
extended such that many of the options within SATED may now be
accessed from P1X. For example you may now “edit” simulation nodes from
within P1X, although for the moment this may only be done on an
“experimental” basis - options to permanently save changes will be added as
time permits.
4) More options now use data stored on the GIS files in addition to there being
a greater variety of data on the GIS files themselves; see H.2 above. Thus
P1X can now display:
alphanumeric names for links
node names
curved roads
more “IKONS”: Church, car park and hospital
5) Options have been added to update existing network .dat files by adding, via
the mouse, new bus flows and/or new count data. Thus P1X complements
the use of SATED to update the simulation network data within a .dat file.
The intention is that eventually a single graphics-based program will be able
to update/create all sections of a network .dat file working solely with mouse
and/or screen editing facilities. Equally a .gis file may be updated or created
from scratch; see 9.4.6.2.
6) Sub-files containing bus, count and xy data may be created directly within
P1X.
7) A wider range of node data, e.g. V/C ratios, is available within network
plotting.
8) An “overlay” option has been added within the tree menus such that
successive trees appear superimposed upon the same plot with each tree
appearing in a different colour.
9) Desire lines for matrices may be plotted, i.e., lines directly linking an origin
and destination whose width is proportional to the trip matrix element.
Options also exists to direct the line via an intermediate point so that a trip
matrix representing trips through an interview station will actually pass
through that point. Enter the matrix option menu for further explanation.
10) When matrices are displayed it is possible to “filter out”, say, rows/columns
with very low values to avoid “cluttering up” the display.
11) Stacked matrices may be displayed (but only a single level can be selected
at a time).
12) A number of additional methods to highlight “selected” links have been
added, largely replacing the use of “zig-zag” lines by solid in-filled bands.
13) Similarly the width and/or colour of a link may be determined by its link
capacity index; e.g., motorway links may appear as solid blue lines, etc.
Default widths/colours may be entered in the default parameter file
P1X0.DAT or edited interactively using a screen edit window.
14) Data annotation may be requested only on selected links.
15) Data from two networks could previously only be annotated by, e.g., 2/1
ratios; now they may also be annotated “in reverse” as 1/2, etc.
16) More options have been added in order to “force” annotation to appear.
17) Mid-link capacity has been added to the list of “standard” data items such
that information on such links may be more easily obtained.
18) A further standard data entry is the difference in link flows between
successive assignments (runs of SATASS) plotted as a GEH error statistic.
This allows the user to help to identify those sections of the network where
the SATASS/SATSIM convergence is poor.
19) Numerically annotated link data, as well as appearing as numbers parallel to
the link, may now also appear “horizontally” within “data boxes” which are
joined to the centre of a link by a “twig”. This removes some of the problems
associated with poor resolution of numbers on the screen when written at an
angle.
20) Demand/accept flows are now distinct options for annotation to avoid the
previous confusion.
21) Simulation link arrays may be selected for annotation using their DA code,
not just assignment links.
22) The mouse-based cordon selection may also be used to blank off selected
areas; e.g., mouse cordon.
23) Plots may be overlaid by grid lines, either at fixed intervals or a fixed number
per side
24) Plot titles may now be up to 76 characters long (the previous limit was 40).
25) The default parameter file P1X0.DAT has been set up in order to allow users
to “customise” default options; see 9.4.10.
26) A parameter in P1X0.DAT determines whether or not you start with a full
network plot or go straight into the first menu.
27) As a consequence of the new methods for handling annotated data the two
scratch files 3 and 4 are no longer used; non-programmers will notice no
difference whatsoever!
28) A simple option to reverse the selection has been included; e.g., if you select
all links above 500 pcu/hr you can “toggle” to those below.
29) Turn-based data held in the (SATDB) data base may be displayed either as
“turn data” within a network plot or as part of the node graphics.
30) Nodes to be annotated may be selected by their node type; e.g., traffic
signals only.
31) An option to obtain scatterplots of one variable data column in the data base
against another (e.g., modelled flows versus counts) may be obtained
through the STATISTICAL ANALYSIS options shared with SATDB.
D.5.9 SATED
The role of SATED has changed significantly. Originally it was very much a
program that could only be run AFTER a full run of SATURN in order to
experiment with alternative simulation node definitions. Gradually options were
introduced so that the experimental changes could be stored in either the UFS
files or (partial) network data files.
The latter function has been extended so that SATED may now be used
essentially as a SATURN-specific editor to prepare network data files prior to
input to SATNET. This is done via a series of screen-editing window-based
options in which correctly formatted node data files may be created on-line or
existing data files may be edited. Both functions are entered via option 5 in the
master menu. It is hoped that this function will be of great use to users who have
to prepare simulation node data for a large network.
More specific changes include the following:
1) A bug in previous versions whereby simulation link speed-flow data was not
output by SATED has been corrected and full facilities to set and/or edit
such data are included.
2) If a distance is changed for a link (A,B) it is also changed by default for (B,A)
3) Simulation node co-ordinates may be set/altered within SATED.
4) An option has been added to allow the user to automatically loop over all
entry links at a node/all turns from a link when in “edit mode”.
5) A default parameter file SATED0.DAT is required in order to allow users to
“customise” any default parameters.
6) The master menu now offers explicit sub-menus for both Files and
Parameters.
7) Three new options have been added for signal optimisation (although the
three new ones are basically research only and should probably be avoided)
and maximum stage lengths may be specified (in addition to minima) for the
“standard” option. In addition the choices are now made within a menu.
D.5.11 SATDB
1) A major change is to introduce a screen--edit function within the “view data
on the screen” option, thus allowing users to change data within SATDB
rather than having to export it to a different program, e.g., a spreadsheet or
editor.
2) One of the “create new data column” options allows you to “transfer” data
either from a link to its exit turns or from all turns to a link, e.g., to aggregate
turn data and to store it as link data. Thus one could aggregate turn delays
to produce a total link delay, or divide link flow between its turns. This opens
up a range of operations which previously could only be done by
“programming”.
3) An option has been introduced to automatically loop over multiple user
classes within selected link assignment.
4) Multiple data columns may now be read from input .dat files instead of just a
single data entry with the data read in free format; see 9.8.3.
5) Non-defined links under miscellaneous input may now be set to a default
value, e.g., 0, instead of being assigned missing values.
6) Alphanumeric link names from a GIS file may be set up as a “data column”
in the link data base.
7) Option 8 under the Assignment/Tree Build option calculates turning volumes
at buffer nodes, stores them (not very usefully) in the data base and (more
usefully) prints turn matrices at selected nodes or for all nodes to the line
printer.
8) This option does not “sit very comfortably” within SATDB so that it will
reappear elsewhere in due course.
9) Both counts and the associated count set number may be read in
simultaneously.
10) Statistical analysis may be disaggregated BY values in another data column,
e.g., disaggregated by capacity index or by count set number.
D.5.12 SATLOOK
1) Options have been introduced to allow users to skim generalised costs in
cost units as opposed to effectively forcing them to appear in units of
generalised time as previously.
2) Skimming “forests” as opposed to skimming “trees” is now allowed; see
Section 15.27 for a full description. This is now option 9 so that the old
option 9, the very early version of SATDB, no longer exists. Any facilities
there are now much be more easily handled within SATDB itself.
D.5.13 MX
MX has been greatly extended under 9.1 so that not only does it incorporate a
number of entirely new functions, it also includes virtually all of the functions
previously carried out by the individual programs M1 to M7. Thus, although the
latter programs are still included within SATURN 9.1, they are only there to
provide continuity and users are advised to migrate to MX whenever feasible. It is
intended, at a later stage, to produce a set of “M1 etc emulation” bat files which
have the same format as the current M1, M2, etc, bat files but will actually work by
calling MX with a relevant key file.
1) A screen-edit/window option to interactively change data is now included as
a sub-option available from within the “display on the screen” option. In
addition to editing an existing matrix on a cell-by-cell basis this also means
that you can create a matrix entirely “on screen” without first producing a
correctly formatted .dat file. This should be of great benefit to users
producing either small matrices from scratch or making minor changes to
larger existing matrices.
2) The internal matrix file within MX may now be built directly from an input .dat
file, not just .from ufm files. This enables MX to perform the essential
operation, previously only handled within M1, of creating a .ufm file from a
.dat file. In addition a wider range of input data formats can be handled,
thus making the job of accessing matrix data from other suites potentially
easier.
Alternatively a “flat” matrix can be created with equal values in each cell as
a starting point.
3) MX now can dump output ASCII files in the form: I J Tij with one record for
each non-zero matrix element. The same format is also allowed for input.
The precise format may be user-set. This should improve transferability of
data between SATURN and other similar suites of programs.
4) Row and column totals are now included as the last row/column in ij print-
outs.
5) Any screen listing of matrix elements now goes to the line printer file as well
as to the terminal.
6) MX now reads from a GIS file associated with the matrix. In particular
alpha-numeric zone names are read from an input GIS file and these are
included in the print out of row and column totals.
7) New trip ends for matrix furnessing may now be set up using a screen edit
or window-style input format.
8) A new unified format has been created for the input .dat files used in M6
matrix furnessing to define new trip ends; see Section 10.9.4.2. This
includes, e.g., both definitions of row and column totals directly plus row and
column changes; previously different sorts of information were contained in
distinct files. Equally an option has been created which outputs trip end
totals in the same “standard” file formats.
9) The STACK and UNSTAK options from M1 have been included in MX under
option 15 from the Master Menu.
In addition if you wish to modify any help files for local conditions you must
ensure that the edited file is a correctly formatted direct access file. A DBOS
facility, MAKEDA77, is included on your DBOS disc - type MAKEDA77 and
follow instructions.
See Section 9.1.2.
5) Fuel consumption equation coefficients may now be user set via namelist
parameters input to SATNET, see 15.32.
6) Bat files MXM1, MXM2, etc. duplicate the original functions of M1, M2 etc
but use MX - see 10.1.5.
7) In order to provide compatibility between runs of 9.2 and previous runs a
logical variable PRE92 is introduced. If TRUE this “de-activates” a number
of new features introduced in SATURN 9.2, e.g., any new checks on
recently discovered potential bugs.
Note that this does not guarantee that you will get 100% strict agreement
with previous runs (and equally the results might well not differ even with
PRE92 = FALSE); the use of new compilers and/or new machines also has
an effect.
This is intended to become a standard feature with each new release. Thus
a PRE93 parameter in 9.3 will similarly de-activate any new code in version
9.3 when released.
8) An option to automatically optimise green times at all signalised junctions
has been introduced into SATED to complement SATOFF which optimises
offsets. This is a much requested feature, but one which should be used
with caution as its repeated use may well give unrealistic results. See
15.31. Try HOW6.
9) The number of “HOW” tutorial files has been extended; users are strongly
encouraged to try it out! Type “HOW”. See 9.1.8. Where specific HOW
files have been created in order to demonstrate near features of 9.2 these
are indicated below.
10) Extremely rough ‘n’ ready estimations of standard emissions - CO, CO2,
NOX, hydrocarbons and lead - are now provided; see 15.33.
11) Standard pc versions are now compiled under version 3.0 of Salford FTN77
and also user version 3.0 of DBOS. You will therefore need to install the
new version of DBOS.
12) The format of GRAF.DAT has changed (although old versions are still
compatible) and a new option to allow “proper” infilling on devices such as
laser printers has been included. See GRAF.DAT itself for details.
SATPIJA + SATME3
SATPIJA is a new program which produces a UFP file from an existing UFS (or
UFA) file created with SAVEIT = T. It therefore duplicates the role of SATASS
and (see I.4 below) means that all functions of SATASS are now carried out by
either SATEASY or SATPIJA (plus other functions of course).
However the exact form of the new UFP files differs from those produced by
SATASS; hence an upgraded version of SATME2, called SATME3, is provided to
be used in conjunction with SATPIJA. Otherwise SATME2 and SATME3 are
indistinguishable.
See 11.7 for a full description of both programs.
SATSUMA
SATSUMA combines together a series of .ufs files from successive time periods
run using the PASSQ option in order to produce a new form of UF file, a .uft file, in
which, for example, the flow record gives a suitably averaged flow, the summary
totals add together each time period without double counting any effects due to
vehicles queued at the end of one time period, etc.
It is hoped that this program, along with the easier options for running multiple
time periods introduced in 9.1, will make applications of PASSQ far more user
friendly, and that a quasi-dynamic version of SATURN will more accurately reflect
some of the detailed behaviour of time-varying flows in peak periods. See 15.2.6.
SATNET
1) An increased range of namelist parameters has been provided, most of
which are “carried forward” and used in later programs. These include:
from PIJA analysis which is now handled by SATPIJA (see I.2 above). Thus
the 9.2 SATURN bat file calls SATEASY rather than SATASS.
2) All elastic equilibrium parameters such as MCGILL may now be defined
within SATNET and transferred via the .ufs files through to SATEASY
including a character variable CIJFIL that pre-defines the cost matrix file
name (see I.3 above).
3) The stopping criteria for Wardrop equilibrium may now be user set; see
10.1.5.
4) A new parameter ASHORT has been introduced in order to optionally
replace the assignment statistics listed at length within the output line printer
file by a much briefer summary table at the end. See 6.3.1.
5) A logical option, ERTM, to allow negative T ij’ to be assigned has been
created but is definitely not recommended; see 6.3.1.
D.6.5 SATALL
1) The length of the LP output file may be significantly reduced by making use
of summary tables for assignment statistics by iteration via the new
parameter ASHORT described above.
2) By setting a parameter SIGOPT = T it is now possible to automatically
optimise signal stage green times once within each simulation. This is still
very much an experimental research-only facility but it is available; see
15.31.
D.6.6 SATED
1) Nodes may be edited using full graphical display and with instructions in the
banner, in particular signal stages may be so defined and stage inserts
appear as they are created.
2) A choice of stage length signal optimisation algorithms is now available; see
15.31.
D.6.7 SATDB
A preferences file SATDB0.DAT has been introduced; see 9.1.9.
D.6.8 P1X
1) The way in which GIS files may be either created or extended has been
made more “random access” in that the various sub-sections may be
amended in any order or more than once. The banner display has been
generally improved as well.
2) Options to cancel all current link annotation added.
3) There is a new facility to store/recall former window definitions including the
previous window definition; see 9.4.2.1. It is planned to extend this facility
such that useful window definitions, once created, can be permanently
stored, e.g. as part of the preferences file.
4) There have been minor changes in GIS file definitions:
9) A limited number of options from SATLOOK are now available via an option
(27) within the main text-based menu.
10) An option to output an updated .ufs file which can include modifications to
simulation nodes introduced via the node graphics has been introduced.
(Previously you could “edit” nodes but could not “save” the results.)
11) An option to issue a “DOS” command from within the graphics
system/device menu allows you to, e.g., print files without exiting from P1X.
12) An explicit left-hand margin has been added for better printing for bound
reports (within the General Display Menu).
13) Output devices may be connected via ports COM1 to COM4 or LPT1 to
LPT4 (within the System/Device Menu).
14) Rectangular plots may be “centred” within the plot so that the full
height/width is available for the banner.
D.6.9 MX
1) The options available to either dump .UFM files into ASCII files with user-set
formats, or equivalently to read matrix input from ASCII files in non-SATURN
format have been considerably extended. See 10.9.4.7.
2) Row/column sums may be disaggregated by level for stacked matrices.
3) A preferences file MX0.DAT has been introduced; see 9.1.9.
4) A new bat file, MXX.BAT, has been created with an easier format for
multiple matrix input. Type MXX for information.
D.6.10 SATLOOK
1) Both assignment and simulation summary totals are optionally printed in
both “F” and “E” formats, where E-formats are particularly useful for very
small numbers which tend to otherwise be printed as 0.00 or very big
numbers which appear as *****.
2) When producing cost or skimmed matrices from multiple user class
networks it is now possible to produce stacked matrices directly with one
level per user class. Useful for input to elastic multiple user class
assignment using SATEASY.
D.6.11 BUGS
A number of “bugs” have been detected in the calculation of simulation delays in
SATURN 9.1 and, by implication, in earlier versions. These range from the
correction of extreme anomalies with few practical implications to what could most
accurately be described as “silly errors”, particularly with respect to give way
turns, which, under the most unfavourable conditions, can give quite significant
changes in calculated delays. Overall, however, differences in, say, total
simulated vehicle-hours between SATURN 9.2 and earlier versions are, generally
speaking, not large.
One example of “anomalous delays” occurred at signals with shared lanes and
zero or extremely small flows (e.g. 0.00001 vph) with reported delays of 5 or 6
figures. Since the product of flow and delay was either zero or near zero this had
no effect on summary statistics, but still looked fairly dubious.
One positive result of the “tightening up” of delay calculations within the simulation
is that the overall level of assignment - simulation convergence can be improved.
Further information is given in I.5.
D.6.12 DOCUMENTATION
In addition to minor alterations throughout and new sections noted above the
following sections and/or sub-sections have been added:
9.1.9 Preferences Files
10.9.4.7 Non-Standard MX Data Input
11.1.5 Convergence of Matrix Estimation and Assignment
13.1.5 Stopping and/or Convergence Criteria for Wardrop Equilibrium
13.2.5 The Convergence of Stochastic Assignment
13.5.7 Partan Assignment
14.7.4 Comments in Key Files
14.7.5 Ascii Keys and Mouse Commands within Key Files
15.1.4 Network-based Simulation Summary Statistics
15.27 Skimming Trees and/or Forests
As always readers of the hard copy, word processed documentation need to be
aware that, since these are only released at intervals, the ASCII documentation
files supplied on disk with the .exe files may well be more up to date. In case of
discrepancies between the two believe the ASCII files!
SATPIG
A new program SATPIG produces a complete set of route flows output to an
ASCII file, i.e., for every route used by (positive) ij trips the number of trips
assigned plus the node-by-node definition of the route is given. This may be
used, for example, to interface SATURN with various micro-simulation packages.
See 12.6.
SATNET
1) The output UF file is now always a UFN file, not UFS, and both the program
and associated bat files have been so modified.
2) All variables used under elastic assignment or simulation may now be
defined within SATNET and “carried through” as defaults. Hence the list of
variables in Section 6.3 is considerably longer. The intention is now to
minimise the use of separate control files at later stages in the
assignment/simulation loops by setting all parameters for a network with
SATNET.
3) Equally all file names which are used in subsequent programs, e.g., the cost
matrix file for elastic assignment, may now be defined as namelist
parameters in SATNET and “carried through” via the uf* files; subsequent
jobs require fewer parameters in the command line. For example, it is
possible to run an elastic assignment with a command such as “SATEASY
network” without having to specify any further file names. See 6.3.4.
4) Certain default parameter values have been changed to reflect current
usage more accurately, in particular:
5) SAVEIT (F to T), MASL (5 to 15), NITA (10 to 20), NITS (6 to 10), ISTOP (85
to 90)
6) New namelist parameters has been provided, including:
♦ FRED: to set an estimated trip matrix for elastic assignment, see 7.5.3;
♦ TIJMIN; lower limit on trip matrix cell values to be assigned; see 6.3.3
and note 3 at the end of Section 4.
7) The data formats used for any data input section may now be user-defined
within the .dat files themselves. For example if you wish to have co-
ordinates or link counts defined in different columns from the SATURN
standards you may do so by inserting an extra record with the required
format. See 15.35.
8) The value of MAXZN is automatically increased in line with the maximum
zone number actually coded so that, in effect, it has become a redundant
parameter.
9) The supplementary file SATTIT.DAT is no longer mandatory; if it cannot be
found then default DA titles are taken from the program. In addition a name
list parameter SATTIT has been included such that if SATTIT = F the file is
not referenced at all.
10) If the trip matrix is defined within SATNET checks on its validity are carried
out in SATNET in addition to SATALL such that possible errors, e.g.
inconsistent number of zones, are picked up at an earlier stage.
D.7.5 SATALL
SATALL is now the “standard” procedure for running simulation networks as
opposed to explicit loops over SATSIM and SATASS/SATEASY. It contains all
previously available simulation/assignment options and has been proved to be
sufficiently robust.
1) The length of the LP output file has been significantly reduced by the
inclusion of summary tables for convergence statistics.
2) A greater range of convergence statistics are now ouput, for example in line
with the latest British requirements in the Traffic Appraisal in Urban Areas
Manual; see 9.8.
3) Automatic green splits may be calculated within SATALL via the parameter
SIGOPT (and works better than before); see 15.31.4.
4) The option to run elastic MUC now works. See 9.11.
5) Turning flows at buffer nodes are now calculated and stored on the output
UFS file (if SAVEIT and REBBUF = T) where they may be printed using
SATLOOK; see J.10 and 15.36.
6) A gap function is calculated under (Wardrop) multiple user class and elastic
assignment.
7) A “hot key” to stop runs has been introduced, i.e.; typing Q terminates an
iterative run at the next simulation. See 9.7.
8) DIDDLE works under both elastic and fixed trip matrix and answers every
user's prayers for improved convergence. Trust me! See 9.4.
9) “Continuation” runs of SATALL are now possible; e.g. if you run 20
simulation/assignment loops and think you would like 25 you can run 5 extra
loops without having to re-run from scratch. See 9.7 and 9.12.
D.7.6 P1X
1) P1X has continued to swallow up large chunks of SATLOOK, SATDB and
SATED such that most of the first two programs are now available within
P1X and the node graphics in P1X already covers much of SATED. In
addition most of the cordon facilities in SATCH may also be accessed via
PIX; see 11.13.
2) The facilities to either create or extend GIS files have been enhanced, for
example GIS items may be added in any order.
3) Excess travel time (i.e. delay) is accumulated and displayed on joyride
routes.
4) The control file GRAF.DAT is now optional; if not found for any reason an
internal default version is set up. See 11.3.1.
5) Banner menu choices may be made by mouse if a parameter “mini mouse”
is toggled to “maxi mouse” within the System/Device menu. See 11.1.7.
6) An “arboretum” option has been added to the tree options - basically an
arboretum is like a forest without the repetitions so it displays each distinct
route used by an O-D pair and its proportion. See 15.26.
7) An option to provide interactive bus information is available through the
Analysis Options; see 11.8.4.
8) Contour isochrones with in-filling added to the tree-build options - “a glorious
riot of colours” (The Guardian).
9) A completely new set of “edit” functions have been added; e.g. to convert
buffer nodes into simulation nodes (similar to old routines to SATED but
better). Both the .dat files and the .ufs files may be updated. See 11.9.
10) The options by which the window may be interactively set using the mouse
have been extended to allow the user:
17) Annotated link data may be “selected” by specifying upper and lower limits
for inclusion; e.g. don’t include zero’s. See 11.6.2.
18) Networks which are, e.g., long and narrow may now optionally be “centered”
within the full available screen to avoid problems with the banner being
“squeezed” along the shorter dimension of the plot so that full information is
not given. See 11.5.
D.7.7 SATDB
1) An option to selectively assign trips relative to their distance from the origin,
i.e., to differentiate cold starts, has been incorporated in SATRAP. See
15.37.
2) Turn data may be aggregated up into link data, either as a straight
summation or as a flow-weighted sum. For example, you may add up stops
per turn to obtain total stops per link.
3) The % green time per turn or link is available as standard data.
4) The option to read in miscellaneous input data from an ascii file will now (a)
read centroid connector data (in the same format used to dump it from
SATDB) and (b) not exit if it comes across any text in the file (such as
namelist data). This provides an alternative, and in some respects more
natural method, to “dump” data (using option 13) and to read it back again
(e.g., post editing) via the miscellaneous facility. See 11.10.3.
5) Four columns containing the X and Y co-ordinates of the link A-node and B-
node may be added from within the Miscellaneous Options; this is useful for
passing link data into external GIS systems.
6) Various options now facilitate replacing missing values - either in existing
columns or when created - by default numerical values, e.g. zero.
D.7.8 MX
Note that the traditional matrix manipulation programs M1 to M7 have been
relegated to the SATURN reserve side and that MX now handles everything. The
programs, however, still exist and may be obtained on request from either DVV or
Atkins.
1) There are considerably more options available to deal with stacked matrices;
e.g. printing multiple levels “inter-leaved” in a single ij cell, printing row and
column totals by level, aggregating all levels into a single internal matrix.
See 10.10.2 and 10.11
2) Limited graphics have been introduced - more to follow. See 10.12
3) Selection may now be based on “cell values” as well as “area”; see
10.6.Thus, for example, factoring may be selectively applied to ij cells based
on their current values. See 10.7.1.
4) An option to include row/column totals on every screen, not just on the
bottom/RHS screens, is introduced. See 10.10.1.
D.7.9 SATLOOK
1) Turning flows at buffer nodes may be displayed from within option 2, either
at individual nodes on the screen or en masse to the line printer file; see
note 4 under J.6 and 15.36.
2) Simulation summary statistics now include a breakdown into, e.g. total
vehicle hours, within the time period and beyond the time period in terminal
outputs (previously they were available in the LP file only), plus a new set of
statistics which brings together totals for the simulation network with the
equivalent totals from the buffer network. The latter provides a better single
estimate of, e.g., total vehicle hours over the whole network, than was
previously available from the assignment network summary statistics. See
17.9.
D.7.10 SATME2
While the matrix update program SATME2 has not changed significantly the
method of interfacing with SATURN has. In 9.2 a new program SATPIJA was
introduced to provide an alternative method to SATASS to create a UFP file and,
since the UFP files created by SATPIJA had a different format to those created by
SATASS, an extended version of SATME2, SATME3, was also created. Since
the new SATPIJA/SATME3 route has now been successfully validated the old
D.7.11 BUGS
A separate list of bugs in 9.2, none very serious but as ever potentially annoying,
is available and is routinely sent out via email.
D.7.12 DOCUMENTATION
In addition to minor alterations throughout and several new sub-sections covering
new features noted above several sections have been re-numbered and the old
section 7 on SATASS has been replaced by section 13 which covers SATEASY.
The documentation supplied to users on computer files is now given as WORD 6
files instead of as ascii files as was the previous convention.
D.8.2 SATNET
1) Separate sets of bus route 66666 definitions disaggregated “by company”
are allowed. 6.9.
2) A new extra input data file, the “X-file”, has been introduced which allows
link-dependent values of TAX and turn-dependent GAP values to be
defined. 6.13
3) A new class of give way movements denoted by W for weaving segments,
e.g. on motorways with slip roads, has been added. 6.4.2.5.
4) The following new parameters have been added and their functions
described in 6.3:
KINKY; 15.38
MAXLSF
QUEEN; 8.5
SATTM; 15.21
SHADOW; 7.11.10
SOWHAT; 7.11.9
XFILE; 6.13
5) A “history file”, basically an extended title, may now be included in the
network.dat file and stored in the uf* files. See 6.2.
D.8.5 SATALL
1) An option is now provided, primarily via the .bat file, to carry out one or more
continuation assignment-simulation loops to an existing .ufs file rather than
starting all over again from scratch. See 9.12.2.
2) The tricolour “window” display when the program is running now adds the
file name at the bottom of the screen.
D.8.6 P1X
PIX has been extended and considerably altered in several respects. In particular
the conversion of text-based menus into banner as opposed to graphically-based
menus has been largely completed. Some text menus remain but only when they
are much more convenient in that format. The network editing options have been
extended and generally “tightened up”; more to come. In addition virtually all of
the remaining “useful” components of SATLOOK, SATDB and SATED are now
accessible from within PIX.
1) Data for turns may now be displayed as horizontal numbers within boxes
and the choice of turn data has been extended, e.g. to include GAP values.
2) Simulation links may be drawn with a finite width and the lane structure
illustrated as opposed to being simply single lines.
3) The size of the 1-way arrows may now be user set or suppressed entirely by
putting the size to zero.
4) Mouse-based selections from a banner may be over-riden using a “hot key”,
alt + a key. 11.1.2.
5) A new form of banner has been introduced, the “A-Z banner”, in both
network and node graphics plots giving full information on what the current
plot displays as both network and node graphics plots opposed to a banner
indicating choices. 11.6.9.
6) The choices listed in the banner may optionally be suppressed from outputs
to hard copy devices. 11.3.5.
7) Node-based data may be plotted as proportional “bandwidth” circles. In
addition the set of available node-based data has been considerably
increased. The options to select the nodes to be displayed have also been
extended. 11.6.5.
8) Select link analysis may be carried out on centroid connectors as well as
“real” links. 11.8.1.
9) A parameters sub-menu has been added to isochrone displays. 11.8.3.
D.8.7 SATDB
1) A variable number of decimals per output column may now be selected
under the “Housekeeping” menu.
2) A node-based data base is included in addition to the traditional link-based
and with all the standard options. See 11.10.5.
3) Selected links may be identified by a 0/1 in a new column.
4) Options to “unpack” simulation link and turn data have been added, e.g. to
allow priority markers on lane restrictions per turn to be displayed.
5) A “parameters/options” sub-menu has been added to the terminal display to
allow, e.g. lines with only missing data values or centroid connectors to be
excluded from the listings.
D.8.8 MX
1) Ascii data files with “Spreadsheet-style” formats (values separated by
commas) are now available for both output and input; 10.5 and 10.15.
2) The graphical-output facilities have been extended to include pcx files and
scatterplots.
3) Most facilities previously available on a cell-by-cell basis, e.g. display on
screen, are now equally available for sectors.
4) Matrix dumps to ascii files may now include only a subset of all elements,
e.g. vertical strips to avoid very long record lengths per record. See 10.15.
5) Equally input from ascii files need not be based on full matrices so that the
matrix may be input and/or updated in stages. 10.5.
6) Matrix totals (i.e. the sum of all elements) may now be “dumped” to an
external ascii file. 10.14.
7) The FORTRAN-based matrix manipulation equations may now use row and
column totals as variable names; this can be very useful in emulating trip
distribution models. 10.8.1 and 10.19.1.
D.8.10 DOCUMENTATION
The documentation has been extensively revised throughout and issued as hard
copy in ring binders by WS Atkins.
1) Sections 15.1 and 15.2 on queues and PASSQ have been put in a separate
section, 17, and expanded considerably.
2) Documentation is now held as WORD 7 documents.
2) A new program PMAKE (strictly speaking PIX run from a different bat file)
allows networks to be defined interactively on screen using the mouse to
define nodes and links. For instructions how to use PMAKE (which is in fact
included in 9.4) please consult Mike Hall or Dirck Van Vliet.
D.9.3 SATNET
1) Bus lanes may now be defined as part of simulation links by adding a B
before or after the number of links entry per link. Thus 2B instead of 2 (or 3)
implies 2 lanes for “normal” traffic plus one off-side bus lane; B2 is the same
except that the bus lane is on the near-side. See 6.4.9 and 15.39.
2) “Bus route” inputs may now be used to define routes in a much more
general sense; e.g. routes over which timed observations have been taken
and which will be used for validation. Timing points are included within
closed brackets after the relevant nodes. See 6.9.4.
3) A new parameter UPBUS allows (bus) routes which commence on a
simulation link to start at the upstream end of the link as opposed to buses
entering at the downstream end. Similar rules apply to the ends of routes.
See 6.9.2, note (1).
4) Bus routes may now be coded “in reverse”. If you have a bus route which
goes through slightly different nodes “out” and “back” you can define “back”
with the same basic set of nodes as “out” rather than having to put them all
in reverse order. See 6.9.2, note (7).
5) Data checking on input bus routes has been tightened up. In particular a
long-standing “bug” whereby a bus route could execute a U-turn at a
simulation node where U-turns were not permitted (i.e. any node apart from
a type 5 roundabout) has been (correctly!) identified as a fatal error. Hence
error-free networks under 9.4 may fail under 9.5. The quickest and simplest
solution is to delete the offending routes; the recommended solution would
be to redefine the route to avoid U-turns.
6) If a network has Fatal Errors, leading to an “Abnormal Termination”, a
summary of the Fatal Errors messages is given at the end of the .lpn file and
- 32-bit version - in a separate window.
7) The format of the 88888 data records has been modified to allow a “vehicle
class” to be inserted in columns 6-7; see 6.11. This could create problems
in existing data files if the matrix level, previously columns 6-10, was not
right justified. Not very likely.
8) The default values of certain input variables, in particular DIDDLE, have
been changed to reflect “best practice”; this may mean that old network files
will give different results. In addition other variables have new default values
“recommended” although not actually changed from previous versions. See
6.3.
Σ Tij = O i
j
Furthermore these may be combined with the “simple” elastic logit models
for MCGILL = 5 or 6 to provide joint distribution/modal split/assignment
models. See 7.10.4.
Both these extensions were developed under a DETR-sponsored research
project carried out by MVA and John Bates Associates in conjunction with
DVV; their input gratefully acknowledged.
3) Estimated or empirical values of elasticities (disaggregated by user class if
appropriate) are calculated within SATEASY/SATALL and printed both in
the lpa/lpt files and within the network parameters output by SATLOOK
(7.7.5 and 11.11.7).
D.9.6 SATALL
An option to “continue” previous SATALL runs has been introduced. See 9.12.1.
D.9.7 PIX
1) The main menu now contains a “Validation” option which in turn comprises:
The latter is new in 9.5 and works on the principle that timed routes may be
defined as a subset of the bus routes in which (a) the frequency is zero and
(b) observed cumulative times to individual nodes are defined in the original
.dat file input to SATNET.
Count validation is essentially the existing statistical analysis of observed
vrs. modelled flows but with various options, e.g. demand or actual flows.
(See also L.9, note 3.)
2) Node numbers may be annotated “offset” from their junctions independently
of any annotation which traditionally appears “at” the junction.
3) Several other options permit time vrs. distance diagrams to be created; e.g.
joy rides, bus routes, o-d trees, all under Analysis.
4) Select link analysis options have been considerably extended, e.g. to select
actual, demand or queued up flows or to output selected trip matrices (which
previously was only available within SATDB). Also flows to origins or from
destination zones may be selected.
5) Bus route analysis may optionally include all of the first and last links;
previously a bus route defined by A-B-C-- X-Y-Z began at the downstream
end of link A-B and terminated at the upstream end of Y-Z; links A-B and Y-
Z may now be included.
6) The Editing options have been extensively revised. See 11.8 and Section
18. In particular the PMAKE procedure which allows the “topology” of
networks to be created interactively on screen and which has been “under
development” for some time is now operational. The same procedures may
also be used to edit network properties on screen and to create new
scenarios for testing on network .dat files.
7) BMP outputs are now allowed under 32-bit versions. Technically the bitmap
outputs have now become “generic” so that you may select whether a “PCX”
output option produces a PCX or BMP file or, thirdly, output to the clipboard.
8) It is devoutly hoped, though not conclusively proved, that printing to external
devices will be considerably simpler under WINDOWS 32-bit systems in that
the drivers within Windows can be used. This also means that graf.dat can
be essentially reduced to 2 devices, the screen and the printer.
9) A facility to “dump” the information on a network .ufs file into an equivalent
(or nearly so) .dat file has been added. Useful if one of your colleagues
(never you!) has been a bit over enthusiastic with the delete key!
D.9.8 MX
1) A new set of “Demand Calculations” has been added which effectively
mirrors the elastic demand models available through SATEASY and/or
SATALL. The latter programs calculate the cost of travel by road as part of
the assignment program; within MX the road costs - and indeed any other
cost matrices which are needed within the model - must be input .ufm files.
Thus to carry out a simple modal split model input a trip matrix plus two cost
matrices, define the relevant parameters within MX and create a demand trip
matrix. See 10.18.
2) Both input from and output to an external .dat file may now be “partial” such
that only a part of the matrix is affected. These options are useful if, for
example, it is desired to dump a SATURN matrix into a spreadsheet, e.g.
EXCEL, for further manipulation but that program cannot accept a large
number of “columns”, in which case one can dump and re-read the matrix in
vertical “strips”. See 10.5.4 and 10.15.
3) New style screen editing is available under Furness options to define new
trip ends etc, but not (yet) to edit individual cell or sector values.
4) Under Row and Column Totals, both listing (option 9) and dumping (option
12), the grand total of all matrix cells may be output on its own. In addition,
when writing to an external file the data may be “appended” to an existing
file which can be quite useful when collecting data from a series of runs
under a batch procedure. See 10.14.
5) The options to print to alternative devices under matrix graphics has been
extended so as to be comparable with standard facilities in PIX.
6) Editing of zones, e.g. adding or deleting rows and columns may now be
done directly to the internal matrix "in situ" rather than applying the changes
while copying from an external .ufm file. (Although we do cheat a bit by first
copying the internal matrix to a “scratch” .ufm file and then re-copying as
before). See 10.4.
7) Conversion options to and from EMME/2 have been created (although not
extensively tested). Thus input from a .dat file may use a standard EMME/2
format; equally output to a .dat file may use the same format. See 10.5.5
and 10.15.
D.9.9 SATLOOK
1) Option 4, Simulation Summary Statistics, has been extended to cover not
only buffer plus simulation statistics but also to output statistics for buffer-
only networks. Option 5 - assignment summary statistics - becomes virtually
redundant as a consequence.
2) Simulation statistics may now be calculated “on the hoof”, not using pre-
calculated statistics from SATALL as stored in the .ufs files. This enables
standard summary statistics to be calculated for only a set of PIX/SATDB -
selected links.
3) Comparison statistics between observed and modelled flows are now much
more flexible with options to distinguish e.g., actual or demand flows or
counts on links or turns. See 11.7.1.
D.9.10 SATDB
1) An option, to be known henceforth as One Song to the Tune of Another, has
been created whereby one trip matrix is assigned and loaded according to
the routes and route proportions of another network (to which, presumably, a
different matrix had been loaded). An output .ufa file is produced and may
next be simulated via SATSIM.
2) This represents a form of perturbation assignment whereby the impact of
loading a (slightly) different matrix to fixed routes may be determined. See
11.10.6.
D.9.13 Documentation
1) This has been extensively rewritten, in particular with Windows applications
in mind, and is now produced using Office 2000. Illustrations of SATURN
screen images are now included.
2) Note that the files are in 14-font and have margins set for alternate left - and
right-hand pages. They are therefore best printed as two pages per A4
sheet “side by side”.
3) The files will be included with any releases but users are encouraged to
download the very latest versions from our web site as these will be
continuously updated. See note 2 under L.2.
4) Note in particular that a Beginner’s Guide to Network Coding has been
introduced, section 5.6, plus two new sections: 18 which describes the new
interactive network editing and building procedures and 19 which describes
interactive procedures in general (formerly part of Section 11).
D.10.2 SATNET
1) Fatal coding errors in SATNET are now sub-divided into “fatal” and “semi-
fatal” such that semi-fatal errors prohibit the network from proceeding into
SATALL but allow it to be processed by P1X so that the errors may be
interactively corrected, 6.12 and 18.4.
2) The maximum length of a “pathname” which may be stored for a file is
increased to 256 characters from 96.
D.10.4 PIX
1) Interactive network editing facilities, in particular the topological editing
functions under PMAKE, have been extensively tightened up and extended.
Try them! Section 18.
2) An auxiliary network plot is available to indicate, e.g. the location of the
current window within the full network. See 11.5.2.
3) Parameters, e.g. height and width, of the “alternative device”, i.e. the printer,
may now be set interactively during a program run; see 11.3.4.
4) Network-wide signal optimisation routines within P1X have been enhanced
to allow the joint optimisation of both stage times (green splits) and offsets
as well as the option to introduce a re-simulation loop. See 11.9.12 [10.1.6].
5) In addition the above optimisation may only cover selected nodes [10.1.6].
6) Trees may now be defined by the destination-end as opposed to origin only.
See 11.8.3 [10.1.8].
7) The interactive editing of simulation nodes (or of buffer nodes converted to
simulation) now allows bus-only links and/or turns to be defined more easily.
[10.1.8]
D.10.5 MX
1) The demand calculations have been generally “beefed up” and made more
user friendly such that they are now essentially functional rather than
experimental. See 10.18.
2) A new form of stacked matrix by “blocks” as opposed to “levels” has been
introduced. Its first application is to store trip matrices by multiple time
periods within a single .ufm file. See 10.2.4 and 17.4.3.
3) Inputs from EMME/2 produced ascii matrices have been “tightened up” and
made more reliable; 10.5.5 [10.1.6].
4) The option to read non-zero matrix elements off a single record now allows
for a matrix level to be explicitly included in order to make it easier to
update/define stacked matrices; 10.5.3 [10.1.6].
D.10.7 SATDB
An explicit GEH function is now included within the “FORTRAN equations” to
calculate new data columns 11.10.8.
D.10.9 SATLOOK
Count vrs modelled flow comparisons now include explicit output statistics for
three validation criteria as recommended by the UK DETR. 11.7.1.
D.11.2 SATNET
The default values for MAXDTP and MAXQCT have been changed to the
“sensible” values of 10 and 60 respectively. If you have not previously used these
parameters - which you should be doing! - then re-running old jobs will give
different answers unless these parameters are explicitly re-set to their old default
values of 0.
D.11.5 PIX
1) Link annotation display now allows geometrical displays to use a variety of
colours dependent upon the numerical values which are being annotated
e.g. flows of 0-200 in red, 201 to 400 in blue, etc. etc. 11.6.3.4.
2) The “Variable Intensity” display now allows the maximum intensity value to
be set to zero, in which case all displays are at maximum intensity so that all
link data is displayed as a solid bar of fixed width, full length. So it only really
makes sense to use it when you are also using variable colours! 11.6.3.2.
3) Tree-based analysis has been extended such that trees based on routes
used in networks other than network 1 may also be displayed provided that
the “other” network is structurally identical to network 1. (To be extended to
allow for structurally different networks “soon”.) 11.8.3.3.
4) Plot windows may now be defined by explicitly defining the values of the
min/max X and Y co-ordinates within 32-bit windows.
5) The set of plot window definitions as used in a particular run may now be
saved and stored in an external “.wxy” file which may subsequently be read
within another run such that “standard” windows may be re-created. 11.5.2.
6) The process of selecting a sub-set of selected nodes has been redesigned
and, in particular, now allows the user to select nodes by clicking on them
with the mouse.
D.11.7 MX
A number of minor changes and additions have been made. For example the
procedures to define new zones have been extended and, hopefully, made more
intuitive.
D.11.10 SAT10KEY.DAT
The standard identification file has been re-named from SAT95KEY.DAT to
SAT10KEY.DAT; see Appendix Y. Note, however, that for the time being
SAT95KEY.DAT files will continue to be accepted.
D.12.2 SATNET
1) The KNOBS facilities has been extended in several ways (15.14), both in
terms of inputs (described here) and applications (notes 2 and 3):
♦ They may be included in the 333 records on the same line as the link to
which they refer as opposed to being a second record which must
always appear (parameter KONAL).
♦ The data may be input as part of a separate input file (defined by the
namelist parameter KNBFIL).
2) Tolls may be explicitly defined within the 44444 records in monetary units as
opposed to equivalent time units and also defined through the KNOBS
inputs. 20.3.
3) The extra time spent by buses at bus stops along links may be explicitly
defined using KNOBS data. 15.44.
4) New namelist variables NOXYC and NO333C allow zones to be
distinguished by their absolute value rather than using a C in column 1
(useful in converting existing data sets). 5.1.6, 6.6 and 6.8.
5) The output .lpn file now gives the line number in the input .dat file any time
that it reproduces that a data line. This makes locating errors in the .dat file
much simpler.
6) Certain input fields (e.g., link times or speeds) on either the 11111 or 33333
data sets which are implicitly integers may now be input with decimal places
for greater accuracy if required. 6.4 and 6.6 (Note 10).
7) Bus lanes may be explicitly defined as parts of simulation links for the
exclusive use of buses. They are coded by adding the letter B to those
columns on a link data record which define the number of lanes. 15.39 and
6.4.9.
8) The SHANDY option has been extended so as to “suggest” correct values
for XYUNIT if the input link distances disagree consistently with those
calculated from crow-fly distances, e.g., by a factor of 10 implying that
XYUNIT is out by a factor of 10.
2) When the output .ufc (SAVEIT) file is based on a final re-assignment rather
than the “actual” assignment (as happens with, e.g., DIDDLE) and therefore
use of the SAVEIT-based analyses is only approximate a table of statistics
comparing the “true” link flows and the “SAVEIT” link flows is produced
within SATALL. The same data may also be accessed from within
SATLOOK (main option 8) and in P1X. 15.2.
3) The total number of trips assigned (total and disaggregated by user class
where appropriate) is now stored on the output .ufs file and are reported
within the output simulation/buffer statistics by SATLOOK etc. A useful
output statistic under elastic assignment. 17.9.
4) The elasticities calculated for shared demand functions (e.g., logit models)
where MCGILL > 10 are now done after the assignment using output road
costs rather than pre-assignment using essentially guesstimates of the road
costs; the two methods may give quite different values and the new method
is more appropriate. 7.7.6.
D.12.6 PIX
1) Geometric link annotation (e.g., bandwidths) allows a full choice of colours
based on link values through, e.g., user-set ranges. 11.6.3.4.
2) Link annotation may consist of fixed width bars with variable colours to
denote ranges of values; e.g., links whose speed is 0-10 kph will be in one
colour, 10-20 kph in a different colour, etc. 11.6.3.5.
3) Node annotation can be displayed within “boxes” such that more than one
data property can be annotated. 11.6.5.1.
4) An option has been added to the Windows menu bar to return directly to the
“top” menu from anywhere in the program and/or to further directly select
any of the standard “top” choices. E.g., you can go directly to the Analysis
menu from anywhere within P1X. 11.2.
5) Select link analysis allows multiple user class stacked matrices to be output
in a single run. 11.8.1.
6) Select link analysis now outputs a table showing the demand flows from all
possible entry points to the first node to all possible exits from the final node.
11.8.1.
7) The node bandwidths displays may be in multiple colours; e.g., set by range
bands, positive vrs negative, etc. 11.6.5.2.
8) Pen colours for the secondary device (i.e., printer) may be defined internally
in the same way as the standard pen colours may be defined for the screen.
11.3.7.
9) The log files produced by P1X - which in turn become key files - have been
“tightened up” and are less prone to random crashes.
10) A selection of links and/or nodes (in the sense of selecting a sub-set of links
for display) by pointing and clicking with the mouse. 11.6.1 and 11.6.5.3.
11) With multiple user classes the annotated link data may either be selected for
a single user class or for all classes. 11.6.2.
12) The definition of devices has been tightened up so that now the “primary”
device is always the terminal screen and the “secondary” device is always a
printer accessed using the Windows drivers. This further reduces the
importance of the graf.dat file in that you may still select various devices
from graf.dat but the only information taken on board is information relating
to device dimensions (e.g., distinguishing an A4 from an A0 printer) etc. so
that there is no difference for example between a “PLOTTER” and a “LASER
PORTRAIT FILE”. 11.3.2.
13) A problem with Windows List Boxes (e.g., menus) has been corrected
whereby scroll bars sometimes appear on even very short lists with the final
item “off the bottom”. By optionally adding an extra blank line on the bottom
the problem disappears. 19.7.
14) It is now possible to include/exclude links from the plots by virtue of their
capacity index, a sort of halfway house between “link selection” and “link
display”. 11.6.1.4.
15) O-d desire lines are still restricted to a maximum number of 502 but now, if
there are more than 502 possible entries, the 502 maximum values are
included. 11.6.7.
16) Bitmap background displays “move” as the network window “moves”. 15.43.
17) A “routes file”, similar to that produced by SATPIG, may now be produced
for a cordoned network (with a view to passing it on to a micro-simulation
framework such as DRACULA; see next point). 11.13.2.
18) A short demonstration of the DRACULA micro-simulation program may be
run either using the cordoned network or node graphics. 11.13.7.
19) The Information options have (a) been added as one of the choices from the
“master menu” (and also retained under Analysis) and (b) been extended to
include most of the convergence and/or error summary statistics available
from SATLOOK.
20) The choice between Network and GIS editing is now made within the Master
Menu rather than one sub-menu removed.
21) An extra option under Display allows direct control of bitmap files used as
background. 11.6.10 and 15.43.
22) The secondary device (i.e., printer) dimensions may now be set
automatically by defining the device as, e.g., A0 or A3. 11.3.4.
23) An option under Information allows the user to “monitor” the user co-
ordinates of points within a plotted window by pointing with the mouse; the
co-ordinates appear in the banner. 11.8.6.
24) A DRACULA micro-simulation demonstration of flow patterns of traffic at a
single junction is available under Node Graphics. 11.12.?
25) A new option to “mark” the various network parameters and to print warnings
of any apparently “weird” choices (as judged by DVV and MDH!) is available
under Information.
26) When using the mouse, e.g., to define a “window box”, the co-ordinates of
the current mouse position generally now occur within the banner as a guide
to the point to be selected.
D.12.8 MX
1) Spreadsheet (comma separated CSV) input now allows zone names and/or
sequential numbers to be optionally included on each “row” record.
(Previously they could be output but not input.) 10.5.4.
2) Errors in editing the zone structure have been corrected and more options
included for compression/renaming. 10.4
3) The identification of intra-zonal cells has been “tightened up” for stacked
matrices so that the totals printed under row and column totals are
improved. 10.11.
4) An option under Matrix Manipulation allows the log-sum of two or more cost
matrices to be created; e.g., for application within hierarchical logit models.
10.8.5.
D.12.10 SATDB
1) SATCOBA allows a sub-network with the specifications required by COBA
(e.g. 2-way links appear only once) to be created from a SATURN network
and a correctly formatted data file including flows from multiple time periods
to be output. 15.42.
2) Options have been added to allow link or turn data to be aggregated by
node. 11.10.5 and 11.10.8.4.
3) The aggregation of, e.g., turn data to links or link data to nodes may be
based on maximum or minimum values in addition to straight forward
summations or averages. 11.10.8.4.
4) The option to do an all-or-nothing assignment also now calculates a delta
function value as would have been done within the original assignment itself.
11.10.7.3.
5) A new DA array numbered 4053 has been added and represents the
average link speed including - for simulation links - the flow-weighted
average delay at the downstream junction.
6) The “rules” for calculating reverse link values, in particular those to obtain
two-way flows from one-way flows, have been “tightened up” to cope with
one-way links and to better satisfy what would be required under the
SATCOBA facility mentioned above. 11.10.8.2.
7) An option has been added under “dump to a text file” to include a blank C-
node entry for links under CSV format (in effect an extra comma). Thus both
links and turns have three initial identification entries prior to the data proper.
11.10.9.
8) In addition the “width” of the individual records dumped to a text file has
been increased so that up to 24 data items may be dumped. 11.10.9.
D.12.11 SATLOOK
1) A new .bat file plus internal operation SATTUBA outputs the time, distance,
and monetary tolls (as required) matrices in the format required by the latest
evaluation program Tuba. 15.41
2) The output tables which include both buffer and simulation summary
statistics (e.g., total vehicle-hours) now also include totals for time penalties
(input under the 44444 records) and for all monetary charges. 17.9.
3) The output tables under Error/Convergence Stats now include the summary
table from SATALL which includes, e.g., the average absolute difference
between flows from one loop to the next as well as the table which gives the
“ISTOP statistic”. That table has itself been extended to include the Relative
Average Absolute Difference (RAAD) as required by DfT validation
procedures. 11.11.8 and 9.9.1.
D.12.12 SATCH
1) Several “bugs”, both in SATCH on its own and in cordoning within P1X,
have been corrected.
2) A “spine” option, similar to that already in SATCH, has been added to the
cordon options within P1X so that, e.g., a section of motorway may be
“cordoned off” and the matrix of all trips entering/exiting along that stretch of
motorway calculated. 11.13.5.
3) Within P1X the cordoned trip matrix may optionally be printed to a window
while output to a .ufm file is also optional. 11.13.6.
4) A “routes file” similar to that produced by SATPIG (except that SATPIG runs
for a full network) and intended for input into DRACULA may now be output
within P1X. 11.13.7.
5) A demonstration run of the DRACULA micro-simulation model over the
cordoned sub-network may be generated automatically from P1X. 11.13.8.
6) The cordon may now be interactively set in P1X by a rectangle set by
“rubber banding” (similar to the “box” option under windowing).
D.12.13 SATPIG
1) SATPIG now produces an output “.kp” file in addition to the .lpg file
containing the route data. 12.6.
2) The route data file has an extra (.trp) format suitable for direct input into
DRACULA.
D.12.14 DOCUMENTATION
1) The manual has been fully updated to include the new facilities reported
above. In particular one new section, 20 on tolls, has been included and
several other subsections have been extensively revised, e.g., 15.14, or
added, e.g., 15.40 to 15.45.
2) Previous appendices D to N which contained details on improvements from
SATURN 8.1 up to 10.2 have now been aggregated into a single Appendix
D and denoted D1, D2, etc. up to the current section D12.
D.13.1 P1X
1) The Validation options have been extended to allow a set of summary tables
for each route with timing points to be printed automatically to the .lpp file
and to a window with appropriate statistics for the goodness of fit between
observed and modelled times included. Statistics include a test for the DfT
criterion of +-1 minute or 15%. 11.7.2.3
2) GEH statistics comparing observed and modelled flows under Validation
may now have a “sign” added; i.e., positive or negative depending on
whether the observed flows are greater or less than the modelled flows.
3) The choice of turn annotation data has been extended to include input turn
count data and error statistics such as GEH which compare modelled and
observed counts.
4) Turn goodness of fit statistics (e.g., GEH as above) may also be displayed
under Validation in addition to (/instead of/without) link validation statistics.
5) The turn annotation choice menu is entered directly if numerical data is
selected.
6) Cordoned trip matrices may be “Furnessed” in order that the new origin /
destination totals at the new crossing points correctly equal the assigned
flows at those points (correcting for approximate routes). This also applies
to SATCH. 12.1.7.
7) A confirmation “OK” box has been added once a select link choice has been
set. E.g., if you make a mistake setting a sequence of nodes you can
“cancel” rather than having to go through the full SLA calculations.
8) Outputs under DUTCH are improved by checking for maximum node length
actually used rather than allowing for 8 columns and restricting the
remaining data output (e.g., GEH stats under count comparisons)
9) U-turns at external simulation nodes may be printed under Information
options and/or displayed as plotted node data. 11.8.4.5.
10) The format of the Graf.dat file has been altered to allow extra parameters
such as the “rotational shift” to be entered as user-set defaults. 11.3.4.4.
11) An option under the Window Menu to return to (up to 10) previously selected
windows (whether or not the windows have been specifically “saved”) has
been added. 11.5.3.
12) The co-ordinates of any point within the on-screen network may be
“monitored” to show the user-defined X,Y. 11.8.4.2.
D.13.2 MX
1) The bat files MXM5 and MXM7 which were included in SATURN versions
prior to 10.3 have been resurrected.
2) The options to edit the zone structure of a matrix have been extended and
generally tightened up so that it is easier to edit stacked matrices (although
not necessarily recommended).
3) The matrix build batch file MXM1 now allows the input “data” file to have any
extension, not just .dat, although .dat remains the default. Thus the
command “MXM1 trips.kp” will read from the file trips.kp.
4) The batch file mx.bat now includes an extra keyword “OUT” to define the
output .ufm matrix and the options which may be used in conjunction with
“MX I” have been extended to include all standard keywords, e.g., including
OUT. 10.16.
5) A CSV input option is included under the M5 option for .ufm outputs.
Appendix W.3.
6) The maximum array dimensions for rows and columns have been modified
such that the maximum number of columns permitted is 3 times the
maximum number of rows. This means that, with the maximum number of
zones for your SATURN level, a matrix with three stacked levels may be
processed by MX.
D.13.3 SATNET
1) A new parameter ILOVEU allows U-turns at external simulation nodes
connected to buffer nodes to be either fully accepted or banned (as far as
possible). Previously U-turns were always banned, although not with a 100%
guarantee. 18.9.
2) Extra checks have been included on signal settings/lane choice that may
impede convergence.
3) Zones for which sectors have not been explicitly defined are now assigned
to sector 0. (But only when some sectors have been defined; if no sectors
are defined all zones default to sector -1.)
4) The rules concerning the definition of Y-merges have been tightened up to
avoid confusion between entry ramps on a motorway (for which a single M is
advised) and the merging of two motorways (for which 2 M’s are allowed).
5) Namelist input is checked as to whether the same variable “name” appears
more than once and a semi-fatal error generated if so. (In fact the check is
done automatically for all namelist inputs but is only semi-fatal in SATNET.)
Note 17, Appendix A.
6) The pre-load input file may now either a .ufs file (as before) or a text-based
file containing link identification and flows. In other words it is no longer
necessary to set up the pre-loaded flows via a SATURN run, they may be
obtained directly from some other data source. 15.5.4 and 14.4.4.
7) Both the UPDATE and PASSQ options may be used simultaneously and a
new input &OPTION parameter PQFILE has been introduced in order to
define the PASSQ input file (in addition to UPFILE for UPDATE).
8) Minimum and maximum green stage lengths (as used during signal
optimisation) may now be defined within the network .dat files and/or edited
within P1X. See 6.4.13 and 15.31.
D.13.4 SATALL
1) A new option “AUTOK” has been introduced which removes the need to set
KOMBI in advance and which appears to considerably improve the
convergence of the assignment-simulation loops. AUTOK automatically
selects the “optimum” weighted average of two successive loops as
opposed to KOMBI which uses a fixed 50:50 average whether or not it is
actually required. 9.3.2.
2) New default values of the blocking back parameters set at the start of each
new simulation are based on the previous blocking back factors plus latest
assigned flows in order to reduce the time taken to calculate blocking back
factors and to improve convergence when the changes to the assigned flows
are small (as occurs under AUTOK).
3) The transfer of delays between the simulation and the assignment, i.e., the
creation of new cost-flow curves following each simulation, has been
“tightened up” in a number of relatively minor ways which, in some cases,
allows improved convergence.
4) A potential (and hopefully rare) problem of using the REDMEN option in
conjunction with frozen cells (ICING = T) has been spotted and dealt with.
7.5.6.
5) A measure of the strength of the relationship between (aggregate) network
travel times and trip matrices which conforms to the parameter “g” as used
by VaDMA (paragraph 4A11 in Appendix 4A) is now calculated at the end of
every assignment. It is printed out in the .lpt files and may also be accessed
via the “Convergence etc.” statistics in SATLOOK/P1X. 7.11.11.
6) A new “convergence” table has been introduced into .lpt files which shows
the 10 biggest changes in blocking back factors from one loop to the next
D.13.5 SIMULATION
1) APRESV, as used to control lane choice for merges, is now handled slightly
differently. i.e., it’s improved and has more impact!
2) A new turn-based variable has been added which, for signalised junctions,
monitors the ratio of delay with signal co-ordination to signals without co-
ordination. This is also one of the “tightening up” measures referred to in
note 4 under SATALL which can lead to improved convergence.
3) X-turns at signals (i.e., traffic which gives way to straight ahead opposing
flows in the same stages) are handled differently when the opposing traffic is
being blocked back from its exit link. Previously it was assumed that the
opposing traffic flowed continually across the junction at its maximum rate
and did not leave any gaps for the X-turners. 10.4 assumes “yellow box
conditions”, i.e., that the opposing traffic only crosses the junction when
there is space downstream and that therefore it leaves gaps for the X-
turners. 8.5.2.
D.13.6 ASSIGNMENT
1) The total U-turn flows through external simulation nodes is now recorded
and stored on the .ufs files. 18.9.
2) Output Tij matrices from incremental elastic assignment (i.e., MCGILL <10)
now include input intra-zonal trips unchanged. 7.4.4.
3) Uncertainties regarding what happens under elastic assignment for O-D
cells which have positive trips input but which are unconnected have been
resolved. Thus (as with intras above) they are included in the output trip
matrix at their input values under simple incremental demand models. See
7.5.7.
D.13.7 SATDB
1) The minimum number of data columns has been increased from 5 to 8.
2) SATCOBA now accepts a control file as input which allows a choice of
certain options and/or parameters to be set. 15.42.2.
3) Turn data may now be aggregated to link data by their exit link as well as
their entry link, i.e., turn A-B-C is added to link B-C as well as A-B.
4) New “skimming” .bat files SKIMTIME, SKIMDIST and SKIMTOLL have been
created in order to automatically skim average time, distances and tolls from
a network .ufs file. 15.27.4
D.13.8 SATME2
1) “Frozen zones” may now also be defined as “frozen sectors”; similarly
frozen i-j cells may also be defined at the sector level. 13.2.2.
2) Table numbers have been inserted in the output .lpm and are cross-
referenced within the Manual.
3) A new parameter ODXMAX is introduced which in effect frees the o-d
balancing factors from the upper/lower limits set by XAMAX. However, if you
need to use it, it probably means that you need to look more carefully at your
inputs. 13.3.1 and 13.3.2.
D.13.9 SATPIJA
A new option PIJAKP allows the PIJA factors to be output as a text file (default
extension .kp) in addition to the .ufp file output. The option is useful if it is desired
to transfer PIJA data to another suite of programs or, e,g., EXCEL.
D.13.10 SATOFF
A new parameter MANOFF (MAster Node for OFFsets) has been introduced
(12.2.3) which “fixes” the offset for a particular signalised node such that all new
optimised offsets are taken relative to that point. The change is purely cosmetic
and does not affect the simulation.
D.13.11 SATWIN
1) A direct link to the SATURN Website has been included on the SATWIN
interface.
2) Dropdown boxes have been introduced for the various Settings choices,
allowing, for instance, users to select previously used Working folders more
conveniently. An edit function also lets users delete previously used folders
from the lists. The default file editor may also be changed through the
Settings option.
3) Lines in the ‘Events Log’ window may now be edited directly to change or
correct commands.
4) Any command may be typed directly into the ‘Events Log’ and executed
immediately. This can include functions such as Notepad for network editing
eg. Notepad LIV10.DAT
5) A direct call to DRACWIN, the DRACULA front-end, is available to users
from the main SATWIN Toolbar.
D.14.1 P1X
1) Arrows added to bus lanes in node graphics.
2) An option to define the default title as filename + date in addition to network
title + date added.
3) Link data for annotation sub-divided into 5 sub-sets and the order of items
rationalised (plus several new items added). 11.6.2.1.
4) Maximum transient queues by links, turns and lanes added within
SATLOOK simulation node analysis options.
5) Various improvements/bug fixings have been added to PMAKE; for
example:
♦ making sure that altered junction types appear correctly on refresh plots
♦ ensuring that text Namelist parameters are not repeated in output .dat
files;
♦ curved links (as per GIS files) may be immediately defined as new links
are added (see also note 15 below);
♦ GIS files may be created at the same time as new networks are being
created and the user is prompted to save such files before exiting;
18) GIS curved links may now be drawn as the partial arc of a circle by defining
a centre of curvature as opposed to a set of explicit points. An extension is
to define a set of links which constitute a closed loop as a full circle, e.g., to
correctly represent roundabouts which have been broken down into a series
of sub-nodes. 5.7.3.
19) The edit options to optimise signals and transplant signal timings are now
“grouped” into a single “Global Operations to Signals” sub-menu which has
been extended to include the “update” option described next.
20) Signal stage times and/or offsets may be “updated” from the .ufs file to the
internal .dat file under Network Editing, specifically so that changes made in
SATALL by using either SIGOPT or SATOFF parameters or in SATOFF
may be transferred into a .dat file.
21) The set of available bus-based link flows for annotation has been increased
to include, e.g., entry flows upstream and downstream.
22) Isochrones may now be output much more quickly by plotting different
coloured circles at zones and/or nodes in order to denote equi-distant bands
from the origin or destination. 11.8.3.4
23) Link flows at the downstream stop line, both demand and actual, have been
added to the standard list of link annotation choices. These may be used in
preference to the existing link flows which, in the case of simulation links
which are “bridged” by centroid connectors, are the mid-link flows.
24) Namelist parameters changed via P1X network editing (e.g., changing
ISTOP) may (optionally) now be included on an output .ufs file. Useful for
changing parameters prior to doing a continuation run with SATALL, for
example. 11.9.11 and 9.12.2.
25) A “select” option has been added to the turn annotation based on the node
selection in force. 11.6.5.3 and 11.6.6.
26) Select Link Analysis of Screen Lines has been extended in two ways. Firstly,
the screen line may be defined using a 7777 input data set or as the
currently selected links (as also available within SATDB SLA) and also as
an input (free-format) file. Secondly, the “selection” criteria in the event of
multiple crossings may be set either to a minimum or an exact number of
crossings and the critical number of crossings may be varied. 11.8.1.8 and
11.8.1.9.
27) Under the choice of link annotation (flows) the first three user classes are
explicitly listed for both actual and demand flows. 11.6.2.1
28) The “line drawings” of simulation nodes as included within a network plot
have been re-scaled so that the lane widths etc. at the junction are at the
same scale and line up with the lanes plotted on the links. See also #37
below. See 11.6.4 (7) and 11.6.5.1 (4).
29) The format of the .rgs files has been changed such that the cycle time is
included as well. 11.9.14.
30) The bandwidth colours for one plotted variable, say flows, may now be set
with reference to a second variable, say speed. 11.6.3.4.
31) The numerical value printed outside a bandwidth now takes the same pen
colour as the bandwidth plot.
32) If, say, the differences in flows between networks 1 and 2 is being plotted
and a link in network 1 is not present in network 2 it is now possible to define
a default flow for the missing link, the obvious value being zero. Previously
no data at all was plotted for the unmatched link. 11.6.2.4.
33) Saved Windows co-ordinates (as in .wxy files) may now have a text name of
up to 28 characters recorded on creation to assist in later identification.
11.5.2.
34) The Information menu prints comparative simulation summary statistics for
either multiple networks or multiple time periods (as already available in line
printer or terminal output from SATLOOK). 11.8.4.4.
35) Count validation statistics of multiple count sets (“disaggregation”) may now
be applied to a single set only. 11.7.1.
36) The positions of the pop-up windows which are used, e.g., to set device
parameters, are now centred better by taking account of the screen
resolution.
37) The angles of the arms as used under basic node graphics are now
determined by the initial directions of any curved links defined within GIS
files, not simply as “crow fly” to the adjacent node. 11.6.5.1(4).
38) The preferences file P1X0.DAT has been reformatted with one entry per line
and with an explanatory text added as a comment at the end of each line (or
some lines – work in progress!). 11.4.3.
39) If a timed route has been included within the 66666 routes which is not a
bus route (i.e., it has a frequency of zero) and it uses one or more links with
bus lanes then the times/delays on those links taken within a joy ride are
now the “car” times/delays rather than the bus lane times/delays as was
previously assumed.
40) A new “menu entry” has been added at the top level, “Convergence”, whose
objective is to display data relating to the convergence of the assignment-
simulation loops. To a certain extent it contains the same information as
given under option 8 in SATLOOK or the convergence option within P1X
Information, but broken down into smaller chunks. However it also contains
a number of new convergence indicators such as 42 below as well as a
useful short summary table of the main convergence indicators for one or all
of the input networks. 11.15.
41) The definition of the blocking back factor BBF displayed as link data has
been “reversed” so that it is now 1.0-BBF that is plotted (as a percentage)
instead of BBF. Thus if a link is not blocking back, in which case BBF = 1, a
value of 0 is displayed; but if a link is strongly blocking back, say BBF = 0.2,
then a “positive” value of 0.8 (80%) is displayed. This makes it much easier
to identify those links that are blocking back.
42) A table listing the 10 biggest changes in blocking back factors over the final
two assignment-simulation loops is included both within the Convergence
Statistics within Information and within the Convergence Menu (#40 above).
The same table appears in the .lpt files.
43) The KEY and VDU commands on the command line may now be combined
into a single keywork KEYVDU such that “KEYVDU X” is equivalent to “KEY
X VDU X”. Useful if the command line is near its maximum number of
entries. 14.5.1.
44) Select Link Analysis may now be based on a network other than the “base”
network 1 provided that the second network is structurally identical to that on
network 1. 11.8.1.7.
45) A (normally hidden) message has been added whenever you go from the
graphics screen to the text screen (e.g., when entering SATLOOK) such
that, if the text screen is automatically maximised (as it should be), the
message is hidden; if not, the message tells you to maximise it yourself.
46) The “rubber band” rectangle which indicates the choice of a new window
under Boxes now has a 2 mm width if there is a background bmp file (so that
it is more prominent).
47) Links which have been selected as part of a screen line under Select Link
Analysis may be “de-selected” by clicking on a link which has already been
selected.
48) Cumulative penalty times (i.e., 44444 data) and tolls are now included in the
joyride tables in the .lpp files as well as being listed in the banner.
49) The list of link properties which may be annotated has been extended to
include:
♦ The differences between the last two sets of blocking back factors;
D.14.2 MX
1) If sectors are used and certain zones are undefined (sector = –1) then an
option is added to convert their sector definitions to 0 (which, post SATURN
10.4, is the standard default value for undefined sectors).
2) However it may be somewhat difficult to have undefined (-1) sectors in the
first place since any input values of –1 (presumably from pre 10.4 network
files) are automatically converted to 0 on input in order to conform with what
SATNET does.
3) A new batch file MXWEIGHT has been added to take a weighted average of
two .ufm matrices (as opposed to MXAVER2 which always takes a 50:50
average). 10.20.12.
4) The control (text) file used to input Furness trip ends may be in CSV format
as well as fixed format to avoid any problems with the number of decimal
places being limited. (In fact all numerical inputs into MX should now not be
restricted in this way.) 10.7.5.
5) The options to “dump” to ascii/text files now explicitly includes Tuba Formats
1, 2 and 3 (but with some limitations). 10.15.
D.14.3 SATNET
1) Extra warnings have been added to deal with the improper use of the
parameter KINKY (i.e., setting KINKY = F is bloody dangerous!)
2) Warnings identify the situation where a namelist variable name is correctly
identified but the wrong data type is used; e.g., a text parameter is assigned
an integer value.
3) The rules whereby bus routes are allowed / not allowed to make U-turns
have been made (hopefully!) more realistic. This may also affect the way in
which routes are interpolated between non-adjacent nodes.
4) An explicit check has been added on the maximum number of KNOBS, 8.
5) FORTRAN read errors encountered when processing extra KNOBS data
lines within the 33333 records are now semi-fatal errors.
6) A new parameter (FREEKY) has been added to allow KNOBS data to be
read in as “free format”, e.g., in CSV format.
7) Extra error checks are incorporated when reading 33333 KNOBS data, e.g.,
that there are not multiple entries in a single block of 10 columns. (Which
may happen if the record being read is in fact a new link record, not a
KNOBS record.)
8) Users may wish to note that 5-digit zone “names” are now permitted – and,
in fact, have been for some time although not documented. 5.1.6.
9) The extra line input following a simulation link record to define a link speed-
flow or capacity-restraint function may now explicitly code an ‘S’ or ‘T’ in
column 29 to indicate whether the two data fields in columns 11-15 and 16-
20 are speeds or times. If blank the parameter SPEEDS decides. This
means that buffer network 33333 link records may be copied directly for this
purpose without worrying about whether they use the same conventions
about speeds/times as simulation link records. 6.4.12.
10) Completely blank lines in network .dat files are now explicitly detected and
treated (mostly) as comments. Previously they were read as blanks (doh!),
i.e., one or more zeros, which might cause fatal or semi-fatal input errors, for
example if they were link count records which had to contain non-zero A-
node and B-node entries. The one exception to this rule is KNOBS data
contained on a separate line following a buffer link, in which case a full set of
♦ BEAKER from F to T
♦ SHANDY from F to T
♦ ISTOP to 95 from 90
♦ MAXDTP to 10 from 0
♦ MAXQCT to 60 from 0
♦ NISTOP to 4 from 1
D.14.4 SATALL
1) The table printed at the end of each assignment-simulation loop listing the
10 turning movements with maximum differences in delays has been
D.14.5 SIMULATION
1) Minor improvements made to the “yellow box” rules whereby X-turners at
signalised junctions are opposed by traffic which is blocked back. See 8.5.3
and point 3 under Simulation in Appendix D-13.
2) A number (but not all) of the new simulation options introduced in 10.4 may
now be excluded by setting NFT = 103.
3) The internal convergence of priority junctions with shared lanes has been
improved in certain (probably not very common) situations where there is a
local “surge” in arriving traffic, due, for example, to traffic signals very near
upstream.
4) Blocking back rules have been changed in a number of ways to deal with
situations where what is, in effect, a single link is coded as a series of links
through 2-arm nodes (e.g., by including mid-link pedestrian crossings).
Firstly, if the node at the upstream end of the “full” link is an external node
then no blocking back is modelled at the downstream end. Secondly, if the
“full” link ends at another internal simulation link then the stacking capacity
considered is the sum of the stacking capacities of all the links in series.
8.5.4.
5) A potential problem in the lane-sharing sub-model has been corrected (see
note 24 in the list of Bugs in 10.4) and will lead to marginally different results
between 10.4 and 10.5 (as do points 1 to 4 above as well).
D.14.7 ASSIGNMENT
1) A new parameter NITA_M has been introduced which sets a minimum
number of iterations within the standard assignment methods. This may be
used to help to obtain very high assignment-simulation convergence levels
which are otherwise prevented by the assignment itself converging after only
1 or 2 internal iterations as the overall process nears convergence. 7.1.5
and 9.5.1
2) The use of MAXQCT to limit queuing delays in the simulation has also been
introduced into the assignment so that the upper limits on delay are taken
into account in working out route choice. This also potentially improves the
convergence between the assignment and the simulation. 8.4.6.
3) The number of assignment iterations on the very first assignment-simulation
loop when using an UPDATE network has been (potentially) increased in
order to take full advantage of the potential benefits of UPDATE. See also
D.14.3 (12). 15.3.
4) An extra demand-based convergence parameter for elastic assignment has
been added, TxCij-AAD, which is based on the absolute differences
between current o-d trips and the corresponding values calculated from the
o-d costs and weighted by trip costs. It is very similar to an existing
convergence parameter, TIJ-AAD, which, however, is unweighted. The new
parameter is effectively the same as that used by DIADEM. 7.5.5.
D.14.8 SATLOOK
1) The list of the 10 worst-converged simulation nodes is now included within
the standard convergence statistics.
2) An extra skimming batch file, SKIMPEN, has been added to SKIMTIME etc.
in order to skim time penalties as set under the 44444 records (and which
may have been used in the past to model tolls). 15.27.4
3) Various messages have been added for simulation links where the cycle
times are different at the upstream and downstream nodes such that any
signal co-ordination is lost. E.g., 17.7.
4) The various components of the calculation of a simulated delay (e.g., delay
spent in cyclical flow profiles as opposed to over-capacity queues) may now
be explicitly printed under node data. 11.??
D.14.9 SATDB
1) The link numbers as used for setting up a COBA network may now be
created with the Miscellaneous Data Input Menu and also displayed using
P1X. 15.42.4
2) When reading data from an external ascii data file an additional data column
may be created which stores the line number for each input link. This may
be used, for example, to display the data in the same order as input (by
sorting on the line number column in ascending order).
3) An option has been added when inputting a DA column from two input files
to automatically create a third column equal to their differences. This makes
it quicker to look at, say, flow differences without having to explicitly create a
differences data column.
D.14.10 SATOFF
The batch file satoff.bat may now automatically run SATSIM after running
SATOFF in order to update the simulated cost-flow curves in order to make
repeated loops with SATALL simpler. 12.2.4. (But see also point 4 under
SATALL above for an alternative method of linking the two procedures.)
D.14.11 SATME2/SATPIJA
1) Extra documentation has been added to Section 13 of the Manual to give
(we hope!) useful advice on common problems encountered in using
SATME2; e.g. starting from a “good” prior matrix (13.1.9), what sort of
counts to include (13.3.9), etc. The added warning messages (see below)
reflect this new advice.
2) Warning messages are included in the SATME2 LPM file if the flows from
the input trip matrix differ “significantly” from the counted flows; i.e., if the
prior matrix is a poor starting point and needs to be improved.
3) Equally warning messages are included in the SATPIJA LPJ file if the set of
counts used appears to have problems.
4) A check is introduced as to whether the input prior trip matrix has been
produced by SATME2 in order to try to prevent users continually updating
matrices through multiple loops through SATME2. Doing so is now a fatal
error (although it may be allowed by explicitly setting a parameter ENCORE
to T in the namelist parameters). 13.3.5.
D.14.12 SATCOBA
1) An option to add together the link flows from two or more input “networks”
(presumably different time periods during the same day) and output a single
weighted flow as opposed to the full set of multiple flows is now available.
15.42.2. (In fact this was the original intention of SATCOBA and what the
manual says it does!)
2) An extra table of link turning proportions (COBA KEY 082) has been added.
This is useful for generating accident statistics. 15.42.1
3) Extra documentation describing how to display the link numbers generated
by SATURN for coba links within P1X has been added. 15.42.5
4) Link flows on simulation links which are “bridged” by centroid connectors
may now either be defined as mid-link flows or (the recommended default)
as stop-line flows at the downstream end (i.e., to include entry flows from
centroid connectors). Parameter MIDLF. 15.42.2
5) The necessary “knobs” data to define user-specified link numbers may now
be input directly to SATCOBA rather than through SATNET. 15.42.3
6) Documentation explaining how to use a common system of link numbers for
both, e.g., “do-minimum” and “do-something” networks using KNOBS data
has been added. 15.42.4.
D.15.1 P1X
1) An option to select from multiple count fields added in the plotting options
under Validation/Counts
2) Select Link Analysis may now be undertaken for “All OD pairs”, i.e., with no
test on whether or not an OD pair should be included;
3) The width of a lane (which defaults to 3.75 m) may be altered with the effect
of making the roads appear wider when plotted with explicit lanes; the same
effect applies to junction line drawings. 11.6.4(8).
4) Various options to calculate and display the “worst” O-D paths in terms of
having the maximum cost in excess of the minimum have now been added.
These help to identify where convergence problems are arising
5) Options have been included under Node and Link Information to list all the
link data currently stored in the data base.
6) The input format of curved links on .gis files (77777 data) has been modified
such that it is no longer strictly necessary to include blank records at the end
of links where the number of X,Y points is a multiple of 4. This may make it
easier to import data from external data sources such as Mapinfo files, etc.
Appendix Z, BLOCK 7.
7) The convergence options will now print the standard convergence tables 1
and 2 for all input networks (if more than one).
8) Enclosed polygons in GIS files may now have a line width associated with
them. Appendix Z, Block 1.
9) The “intensity” of a .bmp may now be defined within its .xyb file. 15.43.6.
10) Plotted count data under Validation/Counts may now be selected by the
7777 set number in the same way that selection may be done under “Go”.
11) The “link selection rules” may now be applied to the analysis of counts under
Validation/Counts.
12) Links selected under Information may now either be 1-way or 2-way; in the
latter case, once selected, the properties of both directions of a link are
given.
13) Link information now lists all bus routes which go through that link.
14) An Appendix I.1 has been added which lists (or will eventually list when it is
finished) all the various link data items available in P1X with a potted
explanation of what each contains. Similarly Appendices I.2 and I.3 list node
and turn data respectively..
15) Extra simulation link data is provided, for those links with capacity-restraint
speed-flow curves defined, to differentiate delays associated with the link
capacity restraint, those associated with turning movements at the stopline
and the sum of the two. Previously what was being plotted when was
somewhat ambiguous in that situation (it was actually the sum although it
was misleadingly titled “delay at jcn”).
16) A negative link width by capacity index implies that links with that capacity
index will not be plotted. The negative values may usefully be input via the
preferences file to automatically suppress the plotting of certain classes of
links. 11.6.4, note 4.
17) Under Node Graphics it is now possible to output some of the numerical
SATLOOK-based tables (E.g., the table of turning flows and delays) directly
to windows which may be cut, pasted etc.
18) Hard copy plots are now scaled to use 100% of the plotter paper if required.
Previously only 95% was used. This is probably only important if a .bmp
background file is being printed as well since, previously, the .bmp file was
scaled to 100% and therefore came out 5% larger than the network plots.
19) As mentioned above, 18, hard copy outputs may now include .bmp
background files to the correct scale. 15.43.4.
20) The main Window bar choice “Back”, which previously had two pull-down
sub-menus for either going “back” one level or going directly to an option in
the “master menu”, now appears as two separate items in the Window bar –
“Master Menu” and “Up1”. Up1 is equivalent to “Return” or “Quit” in the
banner and has the advantage that it always remains in the same position to
make multiple returns simpler.
21) Three extra link data items have been added under “Times” in P1X in order
to display the value of CLICKS per link, the extra time penalty per link due to
CLICKS and the cruise speed with CLICKS included. 10.6.16.
22) Improvements have been made to prevent the “Master Menu” and/or “Up1”
options on the Windows command bar line from being “greyed out” when
they need not be. 24/05/06
D.15.2 MX
1) The outputs obtained from dumping “Grand Matrix Totals” have been
extended, particularly with multiple matrices with multiple levels
2) New “batch” procedures UFM2CSV etc. have been introduced in order to
easily “dump” .ufm matrix files into “text” or “ascii” with a number of standard
formats; e.g., UFM2CSV creates a CSV file for transfer into Excel,
UFM2SATL dumps into the standard “long” SATURN format, etc. 10.20.13.
3) Equally CSV2UFM automatically builds .UFM matrix files from a CSV text
input such that, by combining with UFM2CSV, it becomes much easier to
transfer SATURN matrices to and from, e.g., EXCEL. 10.20.14
4) The number of decimal points used to “dump” matrices to text files under
Tuba formats 2 and 3 is now user-defineable. The number may also be set
by default in the MX preferences file mx0.dat (using namelist parameter
name NDPS). 10.15.2.
5) Equally matrices may now be “text-dumped” with E-formats (e.g., 0.602E+02
as opposed to 60.2) and a user-set number of decimal points with most
output formats (i.e., not just Tuba formats). The advantage of E-formats is
that all output numbers have the same “precision” independent of their
absolute value.
6) Explicit options to read in text files with Tuba formats 1, 2 and 3 are now
included. 10.5.6.
7) The standard “batch” procedure MXM1 (aka M1) will now read data files in
which the standard header records are combined with cell values given in
CSV formats (which therefore includes Tuba Format 1). This facilitates the
direct input of matrices from other suites of programs such as EXCEL. 4.4.
This option uses a new Namelist parameter KROPT (to be documented
eventually within 10.5.1).
8) The “automatic” batch procedures such as MXFACTOR, MXSTACK, etc.
have been modified to be 100% background. Previously they would open a
terminal screen and write file details to it; they now create a file dummy.vdu
instead so that they function in the same way as KEY + VDU. N.B. Similar
changes have been made to batch files using SATLOOK and SATDB etc.
9) The facilities to create a .ufm file by reading a text file with one record per
line have been improved, in particular to allow stacked matrices to be
created in this manner with the level explicitly input. 10.5.3.
10) An option to allow “lines” of row and column zone names to be embedded
within the screen display during screen editing (as opposed to only
appearing at the edges of the display) has been introduced. Equally buttons
to shift the screen edit area up, down, left and right have been added.
Version 10.6.15 07/03/06.
11) The batch file MXSTACK will now accept up to 8 input matrices to be
stacked; previously the (unstated) maximum was 7. May 2006.
12) New batch files STACK and UNSTACK have been added with consequent
changes to MX. UNSTACK automatically unstacks a stacked matrix mat.ufm
into square matrices mat1.ufm, mat2.ufm, etc. while STACK does the
opposite, i.e., creates a stacked matrix mat.ufm from mat1.ufm, mat2.ufm.
This avoids having to explicitly name the sub-matrices. Both require the
10.6.17 version of MX. 03/06/06. 10.20.11 and 10.20.12.
13) The “internal” unstacking option within MX now offers three options for
naming the output unstacked matrices: (1) fully interactive (as now); (2)
mat1.ufm, mat2.ufm … where mat.ufm is the matrix being unstacked, or (3)
D.15.3 SATNET
1) Extra arrays in the output .ufn/.ufs etc. files contain a list of all link tolls (as
opposed to previous versions where only the tolls entered under 44444 were
explicitly stored). This means that a number of analysis options such as Joy
Rides in P1X now give complete summations of link tolls en route.
2) A new semi-fatal error has been introduced whereby, if the network and the
trip matrix have the same number of zones and the zones in each are
“named” (i.e., they have non-sequential numbers), the same zone name
appears in different positions in both. For example, if the network zones are
1,3,4,5 … and the matrix zones are 1,2,3,5… then zone 3 appears as either
the 2nd or 3rd zone. Highly suspicious! 5.1.6.
3) If UPDATE is set to .TRUE. in &OPTION but no update file is explicitly set
(either via UPFILE or the command line) then the program looks for a .ufs
file with the same root; ie., after ‘SATNET net’ it seeks to update the file
net.ufs. This ensures that if a network data file net.dat is being continually
edited each new version will be updated with the results from the last run of
SATALL with (hopefully) reductions in the subsequent SATALL run times.
4) A new option WSTART (for Warm START) has been included within
&OPTION to enable the first assignment to be a “warm start”, i.e., one which
commences from a previous assignment solution. In addition the
documentation and advice relating to warm starts has been enhanced and
users are strongly recommended to read Section 22.
5) Networks may now be built under ATLAS = T with only 55555 X,Y node co-
ordinate data included (i.e., no simulation or buffer links at all) in order to
prepare a network to be edited under PMAKE – presumably from an existing
data base consisting of node names and co-ordinates. 18.5.2.
6) Setting an XFILE which cannot be opened (for whatever reason) is now a
semi-fatal error, not a non-fatal error.
7) Coding the first turn from a link at signals as an X-turn rather than the last
turn (i.e., the left turn as opposed to the right turn under drive on the left) is
now a semi-fatal error.
8) BUSKER now uses a different “compressed” format for very long bus routes
in order to fit them within the maximum allowed 20 records. 6.9.2, note (10).
9) An option to define variable maximum free-flow speeds by user class, code
name “Clicks”, has been introduced. This allows, for example, heavy lorries
to have lower speeds (and therefore higher times) than cars on high-speed
motorway links. In turn this may influence their assigned route choice. 15.47.
10) The total number of error checks (in addition to the specific check noted in 2
above) has been increased. Thus Warnings 80 to 85, Serious Warnings 41
to 48, Non-Fatal Errors 63 to 65 and Fatal Errors 74 to 84 are all new. Users
are strongly encouraged to check out these errors in particular in the .lpn
files. In addition, since the fatal errors have been extended, it is quite
possible that network data files that previously “passed” will now “fail” and
the necessary corrections will need to be made before that network will run
under 10.6.
11) Checks have been added for negative weights (e.g., PPM, PPK, etc.) used
under 88888. 02/06/06
12) Extra error checks have been added for potential problems reading default
speed-flow curves under 33333 with DUTCH = T. The problem is that if you
do not include the extra columns required under DUTCH the speeds etc. get
misread and it is possible that all default speed-flow curves are missed out
with no error message printed. This one has been around along as the
default speed-flow curves under 33333 have been. Corrected in 10.7.1 only.
09/06/06
D.15.4 SATALL
1) The convergence rules for terminating the assignment – simulation loops
have been extended to include both gap values and total cpu time. 9.2.3.
2) The SAVEIT assignment for a single user class now automatically uses the
PARTAN option (7.11.7) which should provide a more accurate assignment
and therefore better post-assignment analysis of route flows. 15.23.4.
3) A “morning after pill/procedure” SATUFC based on SATALL has been
created which will build a new .ufc file containing a new set of assignment
routes under SAVEIT. This can be useful if, for example, the original
SAVEIT assignment was not accurate enough or was not carried out at all
(SAVEIT = F). 15.23.5.
4) CODMIN = T (as set in the network .dat files) automatically generates a
matrix of O-D minimum costs at the end of the assignment.
5) Frozen cells may now be used with incremental distribution (i.e., ICING = T
with MCUBC = 1).
6) The WSTART (Warm Start) option now allows the very first assignment
within SATALL to be based on the flows from a previous assignment,
leading to potentially major improvements in convergence and cpu times.
Section 22.
7) Related to WSTART, assignment solutions may now be stored as “UFO
files”, a description based on OBA methodologies which enables warm
starts to be carried out even if the network and/or the trip matrix have been
modified. Section 22.3.
8) Multiple corrections have been added under WSTART as per Appendix E.4,
note 7. 10.6.15 onwards.
9) Multiple corrections have been added under CLICKS as per Appendix E.4,
notes 10 and 14. 10.6.15 onwards.
D.15.5 SIMULATION
1) Print-outs of blocking back factors now differentiate between whether the
link is the first in a chain of links which block back or somewhere after the
first. This may be useful information to analyse non-convergence of blocking
back patterns.
2) Minor modifications have been introduced into the simulation of roundabouts
to deal with an extremely rare possibility that the capacity of an arm could go
to zero and cause divide-by-zero crashes. A bi-product of these changes is
an improvement in the rate of internal convergence. The “old” form of
simulation may be retained by setting an &PARAM parameter RB106 to F.
8.7.3.
3) The rules by which turning movements which are green in two successive
stages are assumed to be continuously green during the inter-green have
been extended to exclude double-phasing at pedestrian signals and the
rather unusual case of X-turns which are green in all stages. 6.4.3.
4) Various changes have been introduced in the simulation from 10.6.15 thru
10.6.17 to prevent program crashes; see item 11 in Appendix E,4. It is
expected – although not guaranteed – that these changes will not have any
effect on networks that currently run happily, only on those that currently
crash
D.15.6 ASSIGNMENT
1) A new form of distribution is introduced for stochastic assignment defined in
very general terms via a “cumulative density function”. For example, one
may use this option to define a gamma distribution, a log-normal distribution,
etc., etc. See 7.2.3.
2) The upper limits on NITA and NITA_S have been increased to the minimum
of 1001 and 4004/NOMADS so that clearly the second restriction will only
apply if the number of user classes (NOMADS) is five or greater. In addition
this restriction should only really affect NITA_S since the values used for
NITA should be much smaller than these limits anyway.
3) If both AUTOK = T and NIPS > 0 so that the assignment-simulation loops
are repeated with updated signal settings the AUTOK averaging is not
applied on the first loop post updating. May 2006. 9.12.2
D.15.7 SATLOOK
1) Total network statistics such as total vehicle-hours, vehicle-kms, etc. are
now printed disaggregated by user class for buffer-only networks.
2) Joy ride statistics as printed to the .lpl file (but not to the terminal) now
include total penalties and tolls.
3) Forest skims output as text files (Tuba Formats) may now be optionally
written in E-formats and/or with a variable number of decimal points for
maximum precision.
4) The definition of “costs” either for building trees or for skimming has been
extended to explicitly include monetary tolls. This applies to be both “forest
skims” and to single minimum cost paths (options 9 and 14 respectively).
Later versions of 10.5 may contain the same facilities.
5) The output menu for simulation nodes now includes an option to print all
capacity-reduction factors associated with motorway link weaving. 15.40.8.
6) GO4IT has been added to SATLOOK0.DAT to make it easier to avoid
problems with key files and whether or not new files are automatically over-
written. 10.6.17. See also notes 3 and 4 under D.15.8 which make it less
necessary to worry about GO4IT.
7) Explicit options have been introduced to include/exclude 44444 penalty
times and/or extra CLICKS time in the definition of skimmed “time”. (See
item 13 in Appendix E.4.) May 2006. 15.24.4 and 15.27.7.
D.15.9 SATCOBA
1) The order of links at priority junctions used to output turn proportions may
now be optionally adjusted such that the first two links are, in order, major
and minor. Parameter MAJORM, 15.42.2
2) Flows from (up to 3) multiple user classes may now be output. Parameter
MUC, 15.42,2
in each are “named” (i.e., they have non-sequential numbers), the same
zone name appears in different positions in both. For example, if the network
zones are 1,3,4,5 … and the matrix zones are 1,2,3,5… then zone 3
appears as either the 2nd or the 3rd zone. Highly suspicious! See 5.1.6
2) New statistics listing the maximum / minimum changes by O-D pair / origin /
destination are given under Table 14. These may be compared with values
of input parameters such as XAMAX.
D.15.11 SATCH
1) A new parameter INTRAS has been added such that, if INTRAS = T, any
intrazonal trips from the input trip matrix are included in the cordoned trip
matrix. 12.1.4, note (14)
2) The cordoned bus routes “respect” the use of FOZZY in that, if the nodes in
the “full” network are not consecutive but require intermediate nodes to be
interpolated, the intermediate nodes are also excluded from the cordon
routes. 12.1.4, note (15).
3) Potential problems associated with using either GONZO or explicit user-
class factors within the 88888 records have been identified and corrected.
See 12.1.6 and 12.1.7. The basic problem is that it was possible to “double
count” the effect of GONZO by including it both (explicitly) within the
cordoned network .dat file and (implicitly) within the cordoned trip matrix.
D.15.12 Documentation
1) The Manual has been extensively upgraded and extended to cover not only
the new options listed above but also to explain in greater detail existing
features of SATURN. See, in particular, sections 4.4, 8.4.8, 9.2, 9.5, 11.15,
15.3, 15.4, 15.23, 15.27, 15.46, 21.3, 21.8, 22 and Appendix E, in addition to
specific sections above.
D.15.13 SATPIG
1) Route data is now output only to the .trp (or .kp etc.) ascii text file, not to the
.lpg file, in order to save creating two potentially very large files when only
one is really necessary.
D.15.15 SATTUBA
1) SATTUBA has been extended to treat individual user classes under MUC.
D.16.1 P1X
1) “Default” link capacity-restraint records may be defined for simulation links
under Network Editing. I.e., you define simply a capacity index and the
parameters of the speed-flow curve are taken from a “default” (D) record
defined under the 33333 data records. 20/06/06.
2) Link travel times and/or speeds as calculated by P1X during tree building
and/or joyrides and displayed in the banner now (optionally) include the
effect of CLICKS. 10.7.1 09/06/06
3) Options added within P1X network editing of simulation nodes/links such
that a default speed-flow curve (i.e., one based only on the capacity index
and curves defined under 33333) can be created for a simulation link rather
than explicitly setting a free-flow speed, capacity speed, etc. etc.. 10.7.1
14/06/06
4) Banned turns displayed within P1X as “blocked arrows” previously only
included turns with zero saturation flow as coded under 11111 but not any
turns for which a banned movement was defined under 44444. The latter
turns are now included as well. 16/08/06
5) Filenames as listed under “Show A-Z” now contain up to 24 characters on 2
lines in the banner if necessary. 24/08/06
6) The (text-based) options within SATDB to input data (e.g., flows) for ALL
user classes now allow the total number of user classes to be greater than 4
and data for ALL classes are added to the data base. 06/10/06
7) Nodes may now be “marked” or “highlighted” with a small circle to indicate
where either (any) warnings or certain specific warnings, etc. have occurred
during the network processing in SATNET. This can therefore act as a guide
to locating nodes where particular errors have occurred so as to make it
easier to correct those errors through Network Editing. See 11.6.5.4.
30/10/06
8) The use of the “mouse” has now been effectively turned off when P1X is run
with both KEY and VDU options on so as not to interfere with the use of the
mouse by any other currently running windows. 01/11/06
9) The number of scatter plots and tables within windows which appear under
the Validation of Counts disaggregated by count sets is now strictly limited
since, with up to 120 different count sets now permitted, the number of
active windows created becomes prohibitively large.
10) The total number of individual Warnings, Serious Warnings, etc. etc.
generated within SATNET along with informative titles may be displayed in a
window as an option under Information. A summary table of warnings etc. by
data input segment is also included. 11.8.4.9. 06/12/06
11) The option under Information to display “Convergence errors etc.” has been
replaced by a shorter option that simply list CPU times and other
miscellaneous network data such as elasticities etc. since Convergence
statistics are provided within their own main menu and the error messages
are now given separately under #10 above. 11.8.4.8. 07/12/06.
12) User Class Flows may now be optionally annotated in units of vehicles per
hour as opposed to PCUs per hour provided that: (a) the user class has
been assigned a vehicle class and (b) that that vehicle class has a value of
VCPCU different from 1. N.B. This option does not apply to total flows
where, for certain components such as PASSQ flows, it is more difficult to
establish PCU factors. 16/12/06
13) Extra link and turn data annotations have been made available, for example
the average queue lengths associated with V>C queuing may now be
displayed in addition to the total average queue length previously available.
Full lists available in App. J. See also D.16.3 (3). 28/01/07.
14) A new set of options has been added under Tree Building to identify the
“Worst O-D routes”; i.e., those paths where the difference between the path
cost and the minimum O-D cost is maximised. Identifying such paths may
help to pin-point the sources of convergence problems. 11.8.3.4.
15) The default “user class” for SLA has been set to zero so that, for multiple
user classes, all user classes are analysed. For a single user class it
defaults to 1. Also added as a parameter MADSLA in the preferences file.
Similar changes are made in SATDB. 10.7.8. 17/02/07.
D.16.2 MX
1) The MXM5 options now allow zones to be deleted from an existing matrix.
(Or, strictly speaking, the documentation makes it a bit more clear how to do
it.) See Appendix W.3. 03/06/07
2) MXM5 permits newly created zones to have user-defined row, column and
intra values set; previously all new zones had their cell values set to zero.
Appendix W.3.
3) MXM5 will now operate on both “simple” square matrices and stacked or
blocked matrices. Appendix W.3.
4) The “interactive” zonal editing options within MX now allow you to create an
equivalent input file for MXM5 to make it easier to repeat the same editing
operation on other matrices. 10.4.1.
5) The numerical Trip Length Distribution options have been extended (a) to
allow more options (e.g., include/exclude intra-zonals) and (b) to output
D.16.3 SATNET
1) Bus routes are now allowed to make a U-turn at all types of simulation
nodes, not just simulation type 5 roundabouts or buffer nodes as before. The
U-turn is treated as a “free turn” with no delay added. See note (10), section
6.9.2.
2) Bus routes are now allowed to exit the network at one external node and re-
enter at another (where an “external node” in this context may be either an
external simulation node which does not lead into the buffer network or a
buffer node which exits only to a zone. This will probably have more
applications within cordoned networks where routes in the main network
may snake in and out of the cordoned network. See note (11), section 6.9.2.
3) If a parameter WRIGHT is set to T then certain existing warnings, serious
warnings and/or non-fatal errors may be upgraded to semi-fatal (NAFF) on
the basis that there is no conceivable reason that could explain these errors
even though SATURN can manage to run with them included in the network
coding without crashing. At the moment only a small number of Serious
Warning (139 and 140) and Non-Fatal Error 227 have been so identified but
the number will increase. N.B. The default value for WRIGHT has been set
to .TRUE. in the release version 10.7.8: attention! 6.12.2. 09/10/06
4) All warnings, serious warnings, etc. that occur at nodes are now cross-
classified by node numbers so that the final error summaries in the .LPN
files not only list the number of times a particular error occurred but also the
nodes at which those errors occurred. The information is also added to the
.uf* files for display in P1X under Information. 26/10/06
5) Links which appear in more than one set of 77777 counts are now recorded
as appearing in both/all sets and will appear as such within the Validation
etc. summary statistics in P1X, SATLOOK etc. However links which appear
twice within the same count segment are still errors. 30/10/06
6) The maximum number of individual 77777 count sets has been increased
from 20 to 120. 12/11/06
7) Setting ERRYES(437) = F converts a Semi-Fatal Error for an unidentified
link within the 77777 records into a Serious warning 269 such that the
assignment stage may still be invoked. 11/11/06
D.16.4 SATALL
1) The simulation summary statistics such as total pcu-hrs etc. may differ
marginally from those calculated previously due to a bug discovered in
previous releases. See Appendix E.4, #26. 14/11/06.
2) .The CLICKS option to allow differential speeds by user class has been
extended to allow CLICKS to be disaggregated by link capacity index. As
selected by setting an &PARAM parameter KLUNK = 1. 15.47.2. 03/12/06.
3) The number of simulation data arrays stored by SATALL on the .ufs file has
been extended to include:, e.g., queues due to V>C per simulation link
and/or turn. These new data arrays may be viewed within P1X. Many of
them make use of the extra space available for DA codes in 10.7 as noted
D.16.9 below. 28/01/07
4) The rules for using a stacked trip matrix under MUC have been tightened up
so that if, for example, the trip matrix has 5 levels but the network has only 3
user classes or if one of the levels of the trip matrix is not selected by any of
the user classes it is a fatal error. Check the definitions of matrix levels in the
88888 records of the network .dat file.
D.16.5 SIMULATION
1) The procedures by which delays are calculated for X-turns at priority
junctions which share lanes have been revised slightly in order to remove a
possible discontinuity in the outputs which was adversely affecting the
assignment-simulation convergence. 02/07/06.
D.16.6 SATLOOK
1) Comparison statistics between modelled flows and input counts may
optionally not appear on the terminal screen in otherwise interactive modes
but only in the LP files. This can be useful when there are a very large
number of counts and/or count sets. 12/11/06.
2) The tests for DETR-compliance have been (correctly) extended to include
the separate category of counted flows above 2700 and the default is now
for DETR compliance to be included by default (but this may be changed, if
desired, via the preferences file). 21/11/06
3) A number of other improvements have also been made to the comparison of
observed and modelled flows, particularly when the counts have been
divided into multiple count sets under the 77777 network data. In particular a
CSV file containing “headline statistics” for each input count set has been
introduced and which contains a summary of all the most important statistics
in a CSV format. 03/12/06
4) It is possible to carry out count comparisons using an input file of count data
rather than relying on counts input under the 77777 data records in the
original network .dat file. See 11.11.13. 04/03/07
5) Extra options which indicate when and my how much the link capacity, as
defined on a link speed-flow record, “actively” restricts the junction stop-line
capacities. See 8.4.4. 23/12/06
D.16.7 SATTUBA
1) New versions of the batch file sattuba0 and sattuba3 added to request
output files in .ufm format or tuba-3 format respectively. 15.41.4.3 15/08/06
2) Files for all user classes may be output from a single command by using
“UC *”. 15.41.4.2. 27/08/06
D.16.8 SATME2/SATPIJA
1) A new method to “freeze” cells has been introduced whereby a matrix of
frozen cells may be input in much the same way that frozen cells may be
introduced into the elastic functions within SATALL. 13.1.6. 26/11/06
D.16.9 SATWIN
1) The initial SATWIN start-up screen as been replaced by a new menu to
select the various versions of SATURN Executables installed on the
machine. See 3.6. 18/02/07
D.16.10 DA Codes
1) The conventions by which DA codes represent different styles of data have
been extended such that “real” data (i.e., numerical data which includes
decimals) can be stored in codes ending with an 8 as well as a 3. Effectively
this doubles the number of available codes and the number of data arrays
that can be stored. See 15.21. 28/01/07
D.16.11 SATDB
1) An alternative method of representing bus route data in the data base has
been introduced whereby the new data column stores the order of the link
or turn in the route, i.e., the first link in the route is 1, the second is 2, etc.
etc.. The old method simply stored the route number. This option is useful if
you wish the data display on, e.g., the screen to appear in route order.
2) SATRAP (full multiple route re-assignment) now allows a sub-matrix of O-D
trips to be specified in terms of sectors in addition to zones. This permits one
to calculate, in effect, a “forest” of loaded trips between two sectors. 10.7.4.
15/12/06
3) If there are more than six columns of data to be displayed to the terminal
screen then Left and Right control buttons have been added to the menu
bar. Equally a Formats button has been included to directly change the
format (number of decimal places) of an individual column. 10.7.8. 21/02/07
D.16.12 Documentation
1) The Manual has been extensively upgraded and extended to cover not only
the new options listed above but also to explain in greater detail existing
features of SATURN. Note, in particular, Appendices I and J, which
document what is contained in DA codes and what P1X annotation consists
of, and Appendix K, a list of all available batch files, has been added.
2) The Manual is now in A4 PDF format and is updated on a regular basis –
typically every quarter – and is available for download from the SATURN
website.
D.17.1 P1X
1) Dumping isochrones as data files. Isochrone data, i.e., the minimum “cost”
from a selected zone to all other nodes/zones/ may now be dumped either to
an external text file or stored internally in a node data base column. The
basic intention is to be able to export the data into a GIS system to produce
a “proper” isochrone plot. 11.8.3.3.
2) An option to include the “map sequential number” has been added under
annotated Node Data. This is potentially of interest since it is the map
sequential numbers which are used under SATCOBA if sequential node
numbers are used for output.
3) The difference between a link/turn count and its capacity, when the count
exceeds the capacity, may now be plotted under either Count Validation or
ME2 Analysis.
4) Plotted data under either Count Validation or ME2 Analysis may now be
restricted to the “Top Ten”, e.g., the 10 links with the maximum error, and
the top ten data displayed in a window.
5) Converting a buffer node with more than 6 arms to a simulation node under
PMAKE is not permitted; previously it caused a crash. 22/03/07
6) Critical GAP values when reported/displayed by turn now differentiate
between merges and non-merges; in the former case GAPM is reported, in
the latter, GAP. 02/04/07
7) The editing of GAP values by turn within network editing has improved in
several respects; e.g., a change to a single turn can optionally be transferred
into the “nodal value”. 02/04/07
8) Network edits now accept input files to list all those buffer nodes to be
converted to simulation with their new junction type indicated. See 11.9.12.4.
Equally files containing lists of links (A,B) and turns (A,B,C) plus data may
be input to automatically edit various link and/or turn properties. See also
#24 below. 30/03/07
9) Node selection now allows nodes to be selected on the basis of whether or
not they had any Warnings, Serious Warnings, etc. etc. during network
building. 09/04/07
10) The editing of simulation nodes under Network Editing of the .dat file now
allows a “loop” to be set up whereby all selected nodes are processed in
order, rather than having to select each individual node with the mouse. In
particular, this may be combined with the new option (#9 above) to select
nodes with particular levels of coding errors so that you may now simply
select all nodes with, say, a particular NAFF error and loop over all
occurrences of that error. 09/04/07
11) Editing bus routes which have errors already has been made simpler.
10/04/07
12) Dummy nodes may now be optionally represented by a “star” rather than left
as a “hole” as previously. Controlled on/off by a parameter 4STAR = T/F in
P1X0.dat. See 11.6.5.1. 18/04/07.
13) A new “search option” MOVE has been added under Window to allow the
current window to be moved incrementally in any direction from the current
window – a sort of generalization of the Left, Right Up and Down
26) The automatic node graphics loop over selected simulation nodes as
mentioned under 10) above has now been extended to cover non-editing
mode. For example, you can automatically loop over all nodes which have
been selected on the basis of having a particular error. See 11.12.1.
17/02/08
27) .Dat files dumped from P1X, e.g., from network editing or re-created from an
existing .ufs file, now contain a full list of all &PARAM parameters, not just
those that differ from their defaults. 10.8.16 only. 11/03/08
28) An explicit option has been added when a new .ufs file is output under Files
to set the parameter SECRET = T on output (the default is F) so that the .ufs
file cannot then be used to re-create the basic .dat file information. 10.8.16
only. 11/03/08
29) An “UNDO” option added within the interactive definition of nodes in both a
joy ride and the definition of bus routes within network editing. 10.8.16.
30/03/08
30) Joy ride definitions set interactively may now be “dumped” into a text KEY
file that may be input into SATLOOK to, effectively, repeat the same
operation with, e.g., a different network. 10.8.16. 30/03/08
31) The input .UFC file may now be re-set interactively under the Files Menu.
This could be useful if filenames have been changed and the “correct” .UFC
file cannot be located automatically; on the other hand it opens up the
possibility of selecting the “wrong” .UFC file. Be careful! 10.8.16. 17/04/08.
32) An option has been added in the Master Menu to enter Node Graphics in an
automatic loop over all “highlighted” nodes. E.g., you can choose under
Display to highlight all nodes with a particular Serious Warning and then
examine all nodes with that particular error. See 11.6.5.4. 10.8.16.
18/04/08.
33) Equally a node-graphics loop over all “highlighted” nodes may be requested
within the simulation node sub-section of Network Editing. (At the moment
you can do the loop but only have first selecting the highlighted nodes.)
10.8.16. 19/04/08.
34) The Network Editing of 33333 Buffer Links now contains an option to
automatically delete all “second records” containing KNOBS data. This is
part of several new facilities to assist users to transfer KNOBS data into an
external ascii file. See 15.14.7. 10.8.16. 18/04/08
35) Node Graphics and SATLOOK simulation node analyses now allow the user
to list a table of the original input delays at a node, i.e., not the delays
which may have been re-calculated due to a selected node having been
through a re-simulation process. Normally the two are identical (or
extremely close). However, if you are looking at a .UFS file from an older
version (i.e., 10.7 or earlier) then the 10.8 simulation may be slightly different
from the previous simulation due to the new rules in 10.8 and therefore give
different delays. Which can be confusing! 10.8.16. 08/05/08.
36) The set of “10 worst” statistics now contains a list of the 10 worst “gaps”
where the gap is defined to be the difference in delays as calculated by the
simulation and the previous assignment multiplied by the flow. See 9.9.1.
10.8.16. 24/05/08.
37) A Gap or Delta contribution by individual link may now be calculated under
Analysis / Trees and should prove useful in helping to identify problem areas
in terms of convergence. See 11.8.3.5. 10.8.16. 27/05/08.
38) The validation of count data may now be carried out using count data (of the
format used for 77777 data in network .dat files) may now be directly input to
P1X as opposed to using only the counts pre-set in the original network .dat
file. 10.8.18. 18/07/08.
39) Node graphics data display now allows (basic) data extracted from a second
input .ufs file to be displayed as well as that from the main network. This
applies to both turn-based and link-based data displays. 10.8.19. 22/07/08.
40) “Navigation options” have been added to the Menu Bar which replicate
standard window options such as move Up, Down, etc. etc. but which
enable those steps to be carried out repeatedly from a fixed position of the
mouse with multiple clicks. Try it! See 11.5.5. 10.8.19. 31/07/08.
41) The Convergence Options now include two new options: (1) to highlight the
nodes printed under any of the “10 worst” categories, e.g., delay differences;
(2) to enter a node graphics loop over the (up to) 10 worst nodes in order to
examine the source of the problem more closely. See also 7) under
SATLOOK in D.17.6 and section 11.15 of the Manual. 10.8.19. 04/08/08.
42) In addition the edit simulation node options under Network Edit also allow a
loop over, say, the 10 worst converged nodes in terms of turn delays as in
41) but with the extra possibility to edit the .dat file directly. See section
11.9.3. 10.8.19. 18/08/08.
43) Extra navigation options (see 40) above) added to allow: (a) a single mouse
click to set the centre of the plot and (b) the last window. 07/10/08. Release
10.8.20
44) Background bitmap images from .jpg format files is now permitted. See
11.3.6. 07/10/08. Release 10.8.20. See point 48) below for outputs to .jpg.
45) Link data annotated from two or more networks may now be calculated as
the GEH difference statistics between the flows on networks 1 and 2. See
11.6.2.3. 22/11/08. Release 10.8.20
46) A red bar has been added on individual node plots to indicate when an exit
and/or entry link is blocking back. 10.8.21. 24/01/0
47) An explicit option to print standard Node Table 2 (Flow and delay data) from
within Node Graphics has been added. 10.8.21. 27.01/09
48) The option to output screen images to .JPG files (in addition to importing
.JPG files; see 44) above) has now been added. 10.8.21. 01/02/09.
D.17.2 MX
1) XCL command line extensions removes the upper limit of 9 on the number
of arguments used on a command line. See 14.8
2) New procedures to stack and unstack .ufm matrices, UFMSTACK and
UFMUNSTACK, have been introduced to allow an unlimited number of
matrices to be stacked by listing their filenames as individual records with a
text “control file”. They provide an alternative to the use of XCL, See
10.20.17 and 10.20.18 09/03/07 and 14/02/08 for UFMUNSTACK.
3) Origin and destination totals for matrix Furnessing can be copied from one to
the other and/or swapped between them. 29/03/07.
4) Fortran Equations can now use TOT(n) as a function to denote the total
number of elements in matrix n. See 10.8.1. 10/07/07.
5) The compression of matrices via M5 (/MXM5) is now based on double
precision calculations to avoid possible loss of values due to rounding
errors. 22/10/07
6) An output .ufm matrix can be created containing 1/0 values to indicate
whether that cell has been selected or not. See 10.6.3. 13/11/07
7) With stacked matrices the “selection by location” rules have been extended
to include “multiple locations” so that, for example, rows 3 to 5 may be
selected in all levels of the matrix or, alternatively, only in a single level. See
10.6.1. 15/11/07.
8) The screen editing of “row-based vectors” such as origin trip ends, origin
factors, etc. etc. now takes proper account of levels within stacked matrices.
See 10.7.3. 15/11/07.
9) Various print formats have been changed so that matrices which have very
large individual cell values, e.g., which would require more than 7 digits to
write as an integer, or (more commonly) equally large row or column totals
will appear with a reduced number of decimal points to avoid values
appearing as ********. 04/01/08. 10.8.13 only.
10) The default number of decimals used in CSV output dumps has been
increased from 2 to 5 (parameter NDPS in the preferences file). This is in
response to the current trend to require trip matrices to be “in-filled” such
that all cells contain positive (if very small) numbers. See 10.15.2. Release
10.8.14 only. 25/01/08
11) At the same time the sum of the “rounding errors” caused by writing a “real”
variable to a CSV file with a finite number of decimal places is calculated
and printed. Increasing NDPS is designed to minimize this error. 10.8.14.
25/01/08.
12) The “matrix number”, e.g., mf45, used when creating an output matrix in
EMME format may now take values from 1 up to 999, not 1 to 999. 10.8.19.
29/08/08.
13) Option added to suppress the final 99999 record for matrices dumped to a
ascii/text file with the one line per cell format (effectively TUBA-1). 03/10/08.
Release 10.8.20.
14) The automatic factoring procedure MXFACTOR may now be applied to only
one level of a stacked matrix, See 10.20.3. 11/10/08. Release 10.8.20.
15) A new batch file MXAGG has been introduced in order to aggregate a
stacked matrix into a square matrix equal to the sum of all levels – with extra
options to select a subset of levels. See 10.20.20. 12/10/08. Release
10.8.20.
D.17.3 SATNET
1) Several new Warnings, Serious Warnings and Non-Fatal Errors have been
added and users are strongly recommended to check for “new” errors in
existing networks. More specifically, Warnings 90 – 96, Serious Warnings 49
– 63 and Non-Fatal Errors 72 – 76 have been added.
2) Bus route “names” input under 66666 previously were read from columns 2
to 5; they may now be read anywhere within columns 1 to 5 with a maximum
length of 4 characters. If all 5 columns are used column 1 is ignored (as
before). See 6.9.1.
3) The number of records per route has been increased from 20 to 78
(including elements such as timing points etc. in addition to per nodes). See
note (9), 6.9.2.
4) The list of Serious Warnings etc. that are upgraded to NAFF errors under
WRIGHT = T has been extended. Zero Tolerance! See 6.12.2 for a full list.
26/05/07
5) Single lane arms at signals which include a X-marked right turn are now
classified as a Serious Warning 152 (previously they were Warning 12) on
account of the severe problems they frequently cause for simulation
convergence. 26/05/07
6) Warning and/or Serious Warning introduced for node-specific values of NUC
which are judged to be too small. 15.15.2.
7) NUC may now, in effect, be disaggregated by node type such that NUCJT(j)
sets a default value of NUC for all simulation nodes of type j and therefore
over-rides the “global global” default set by NUC. 15.15.2
8) The upper limit on NUC (number of time units per cycle) has been increased
to 125. 15.15.2
9) A new logical parameter AUTNUC has been introduced to allow the program
to decide automatically on an “optimal” node-specific value of NUC
depending on, for example, stage times at signals. 15.15.2.
10) A potentially very useful extra error check (Non Fatal Error 273) has been
added to detect links A,B which have exit turns from B but no entry turns into
A,B at A. It would appear from looking at a number of existing networks that
this occurs not infrequently and almost certainly unintentionally. It may also
have been the cause of program crashes prior to 10.8; see note 20) in
Appendix E.5. 27/06/07.
11) DIADEM. Setting DIADEM = T in &PARAM allows the external control
procedures in the Diadem demand models to differentiate between when
UPDATE = T and/or WSTART = T are being used on the first supply-
demand loop and subsequent supply-demand loops. It avoids problems of
errors occurring on the first loop when essential files have not yet been
created. 15.51
12) The data extracted from the update .ufs network file under UPDATE = T has
been extended to include extra necessary information in order for the first
new simulation in SATALL to carry on as closely as possible from the final
simulation of the update network. Previously it essentially started from
scratch. With luck this should speed up convergence. 15.3. 12/08/07
13) Link counts under 77777 may now be read as Free Format by setting a
parameter FREE77 = T (although the A-node, B-node and C-node are still
read in fixed columns). Note (12), section 6.10. 22/08/07
14) If a GIS file is defined in the .dat file (via FILGIS) and that file contains
curved link data under 77777 then the crow-fly distances as used to
compare against input link distances (SHANDY = T) are calculated point-by-
point along the curved links rather than end-to-end directly. See 15.10.1.
23/11/07
15) KNOBS data read from an external KNOBS file (FILKNB) may now define
links using a “wildcard” principle whereby, if an A-node/zone is defined but
the B-node columns are left blank, then the program assumes that the
KNOBS data applies to all links out of the A-node/zone. Similarly, if the A-
node entry is blank but the B-node is defined it applies the data to all entry
links. In particular this facility is designed to enable users to set entry/exit
tolls on zones without having to precisely specify each individual centroid
connector to or from a zone. See 15.14.5. 26/11/07.
16) The “Parameter Examination” previously available within P1X Information is
now used in both SATNET and SATALL to critically evaluate the choice of
parameters and to “suggest” improved choices. The outputs appear in the
relevant .LP files. 04/12/07
17) Networks with Semi-Fatal or NAFF errors cause the program to terminate
with a stop code of 5. In normal SATURN applications this has no direct
effect but users who wish to create their own control .bat files may be able to
make use of this feature. 10.8.14. 23/01/08.
18) The parameter RB106 now defaults to .TRUE. See 8.7.3. 26/02/08.
19) A new option TOPUP introduced to allow new network coding to be added
without removing the existing coding in £INCLUDE files. See 6.15.2. 10.8.16
only. 28/03/08.
20) Warning 18 (zero sat flow turns included in green stages) has been
upgraded to a Serious Warning 128 while Non-Fatal-Error 251 (funny bus
route turns out of bus lanes) has been downgraded to Warning 18. 10.8.19.
26/08/08.
21) If you have a single user class (NOMADS = 1) and you set, say, MCGILL(1)
= 2 it is now treated the same way as defining MCGILL = 2; previously it
would be ignored.
22) A new logical parameter BANKER has been added which, if T (default is F),
outputs an ascii file with extension .BNT with a complete list of banned turns
including both U-turns and turns into non-exit 1-way roads in addition to
explicitly banned turns under either 11111 or 44444 data inputs. 10.8.21.
29/01/09.
D.17.4 SATALL
1) A “QUIET” option has been introduced into the Command Line such that,
e.g., “SATALL net QUIET” will run SATALL totally “in the background”; i.e., it
will not open any special reporting windows or “grab” the mouse. See
section 14.9.
2) The averaging of two OBA solutions under AUTOK has been improved in
order to improve assignment-simulation convergence.
3) The initial assignment under a Warm Start takes the input set of link flows
without any further re-assignment.
4) AUTONA introduced to automatically set NITA on each assignment iteration
and thereby reduce CPU time / improve convergence. (Although it defaults
to .FALSE. and is only used if re-set to T.) To date AUTONA has been
mostly tested with OBA where it shows considerable benefits; experience
with Frank-Wolfe is more limited. 9.5.4.
5) Default values of NITA_M and NITS_M (minimum number of iterations for
assignment and simulation respectively) now default to 3 and 5. Equally
NITA_S has been increased to 99. 10.8.14. 25/01/08
6) The use of the network namelist parameter CLIMAX to model flat speed-
flow curves for, e.g., HGVs under CLICKS has been introduced. 15.41.3.
31/01/08
7) An option to represent the “stochastic” valuation of tolls (i.e., variable values
of time) denoted STOLL which has actually been around since 10.6 is now
documented. See 20.6. 04/02/08.
8) The stopping rules have been modified when SIGOPT and/or SATOFF are
being used in conjunction with NIPS such that, every time the signals are
updated, the “counter” of successful loops is put back to zero such that
NISTOP successful loops are required after the last update. Previously it
was possible for the loops to terminate prematurely. 10.8.15. 05/03/08.
9) The output screen window that gives on-going convergence statistics now
prints the gap values rather than GEHBAR (except under stochastic
assignment, etc. when gap values are not defined). 10.8.16. 10/04/08.
10) The reported out-turn elasticities under elastic assignment are now split by
generalised cost bands (with the objective of detecting different elasticity
values between short and long trips). See 7.7.6. 22/11/08. Release 10.8.20.
P1X
11) Introduction of the Multi-Core algorithm add-on module enabled by the
MULTIC parameter (default = FALSE). Release 10.8.22 16/06/09.
D.17.5 SIMULATION
1) A highly unlikely bug affecting X-turns at signals which share a single lane
with traffic whose flow is almost but not quite zero (e.g., 0.001 pcu/hr) has
been corrected. See error 2) under Appendix E.5. 30/01/07.
2) Merges may now merge into “major” turns which do not use the inside lane.
See #12 under Appendix E.5 for a more complete explanation of the
problem and its correction. See 6.4.2.3. 05/07.
3) The procedures whereby the “choke factors” (section 8.4.4) applied to turn
capacities to bring link capacities into line with link speed flow curve
capacities have been modified to remove a discontinuity between over and
under capacity turns. This improves convergence, particularly in situations
where successive assignments were taking flows just above and just below
capacity. The new procedures are optional and may be de-selected by
setting a parameter LCR108 to F (in &PARAM); the default is T. 01/08/07
4) In addition the calculated “choke factors” are preserved on the .ufs files and
between internal loops rather than being calculated “on the fly” each time a
node is simulated. 01/08/07.
5) Finally, possible oscillations in the choking factors have been damped down.
The net effect of changes 2) to 4) has been to improve both the internal
convergence of the simulation as well as the convergence of the
assignment-simulation loops. 01/08/07
6) The lane choice rules have been slightly modified to make it easier for an
over-capacity turn with a choice of two or more lanes to use one lane
exclusively if that lane has a lower V/C ratio than the alternative lanes.
01/08/07.
7) Relatively minor changes have been made to the treatment of multiple X-
turns in a single lane so that a discontinuity in the algorithms applied above
and below capacity has been corrected. Delays and capacities are now
continuous functions of flows, etc. which improves convergence. The impact
should otherwise be small. 17/08/07
8) A new option MONACO has been introduced to allow more, e.g., straight-
ahead traffic to pass in an outside lane which may be partially blocked by X-
turners. Thus, if MONACO = T (default = F) it requires TAX + 1 queued X-
turns to block the lane; currently it only requires one. This increases the
number of straight-ahead pcus which are allowed to pass “at the head of the
queue” by a factor of TAX+1. See 8.2.5.
18) Various relatively minor corrections have been made to the simulation within
releases 10.8.16 and 10.8.17 such that, e.g., running 10.8.16 and/or 10.8.17
may give slightly different outputs from 10.8.15. (Although, inevitably, there
may be certain “pathological” cases where the differences are more
significant.)
19) A further minor simulation correction has been added in 10.8.19 to correct
an inconsistency which occurs when the initial queue at a roundabout arm
due to PASSQ flows takes much, much longer than LTP to clear and the
flow in the current time period is also much, much greater than the capacity.
The simulated delays are no longer restricted by MAXQCT as they should
be. Note that the problem only occurs if the demand is very much greater
than capacity and almost certainly means that there is a problem with the
trip matrix. 28/08/08.
D.17.6 SATLOOK
1) SATMECC is a new option to calculate the Marginal External Cost of
Congestion via simulation, i.e., the impact of adding 1 extra pcu per turn or
link. The outputs may then be used to calculate/.estimate optimum tolls. Full
documentation in Section 15.50.
2) The output TUBA format 2 for skimmed matrices now provides a “width” of
15 columns instead of 10 so that there is no longer a need to reduce the
number of decimal places NDPS to 2 to avoid overflow problems (as
originally recommended by DIADEM). Actually included in 10.6. 15.51.
3) Simulation Summary Statistics calculated internally (as opposed to simply
being read from a .ufs file) may now be disaggregated by properties other
than just Capacity Indices. For example, you may create a list of Traffic
Boroughs per link and disaggregate by boroughs. 11.11.4. 04/09/07.
4) Simulation Summary Statistics may now be output in full to a .CSV file such
all data for a single flow/index category is in a single record. 11.11.4.
04/09/07.
5) Simulation Summary Statistics which are created “on the fly” – option 2 -
may now be output to a .CSV file which contains the 14 basic statistics
disaggregated either by link or by node. 10.8.16 only. 04/04/08.
6) The standard data-printing options for a simulation node now include a
listing of all the standard “convergence” errors, e.g., the differences in delays
as calculated by the assignment and by the simulation. See also 41) under
P1X in D.1.7.1. 10.8.19. 04/08/08.
7) A facility to skim O-D time, distance and tolls simultaneously from a forest
(as opposed to carrying out 2 or 3 separate skims in order to reduce CPU
time by a factor of roughly 2 or 3) has been added. This may be called either
interactively under main option 9, via a standard batch file SKIM_ALL (cf
SKIMTIME, etc.) or in SATTUBA. It should be applicable to external
applications such as Diadem where multiple skims are repeatedly required.
See 15.27.7. 10.8.21. 24/01/09
D.17.8 SATME2/SATPIJA
1) Before and After Trip Length Distributions may be printed in the .LPM file in
order to compare the before (prior) and after (output) trip matrices.13.3.10
2) Extra checks have been included in SATPIJA to detect: (a) counts which are
totally or largely downstream of queued links which effectively “fix” the flow
through the count; (b) counts which are over capacity, (c) possible
inconsistencies between adjacent counts.
3) SATME2 will now accept (a) stacked matrices as input and (b) stacked
matrices as output. See 13.4.3. 24/08/07.
4) The standard array dimensions per release level have been increased so
that, e.g., the maximum number of ij matches per link is 50% greater. (Also
in 10.7.11) 10/08/07
5) SATPIJA can calculate weighted PIJA factors over all user classes within a
common vehicle class in order to update the total trip matrix for that vehicle
class. This means, for example, that you can update a total matrix of car
trips which, for assignment purposes, is sub-divided by purpose. See
sections 13.4.2 and 13.4.6. Version 10.8.13. 03/01/08.
6) SATPIJA now contains a series of checks to detect violations to Kirchoff’s
Rule, i.e., the sum of the counted flows into a node does not equal the sum
of the counted flows out of that node. It also detects “near” violations
whereby if, say, all input arms to a node and all but one output arms are
constrained then the :missing” arm is equally constrained and its implied
flow may be compared against the current assigned flows to detect large
discrepancies. See Section 13.3.3. Version 10.8.17. 18/06/08.
7) The most important error messages are now grouped together and re-
printed near the end of the .LP output files from both SATPIJA and
SATME2 in order to make them more obvious to users. 10.8.19 08/08.
8) Equally the summary of errors from SATPIJA is included in the .UFP files
and re-printed by SATME2. 10.8.19 08/08.
9) A new parameter SUBPQ has been introduced into SATME2 in order to
subtract only the PASSQ flows from the counts as opposed to SUBFIX
which removes all the fixed flows, including the PASSQ component.
Included in 10.8.15 but not fully documented until 24/07/08 and with certain
errors within MUC applications corrected at the same time. See 13.1.4,
13.3.1 and 13.4.9.
10) Further to 6) an option AVERK has been added such that if counts at a node
violate Kirchoff’s rule (flow in equals flow out) they may be automatically
corrected by averaging the input and output flows at the common node. The
updated flows may also be output to an ASCII file if a filename FILKP is set.
See 13.3.2. 10.8.20. 01/10/08.
11) A new method has been introduced to allow SATME2 to update multiple
levels in a stacked trip matrix as identified by their vehicle class IVC by (a)
updating the aggregated trip matrix for that vehicle class and then (b)
updating the individual matrix levels proportionately. Set parameter TURBO
= T in the SATPIJA Namelist parameters (Think TURBOprop!), See 13.4.6.
10.8.20. 14/10/08.
12) A new source of potential error has been identified in situations where the
“SAVEIT assignment and the “actual assignment” give significantly different
flows on counted links. This means that SATME2 will be trying to factor the
trip matrix based on incorrect PIJA factors. Appropriate Warning and Serious
Warning messages have been introduced into SATPIJA. See 13.3.12.
10.8.20. 21/11/08.
D.17.9 SATWIN
1) Command line length increased to 2048 characters. 15/10/07
2) The date of each .exe file which is run is now recorded within the header
records at the start of every .LP file. 17/12/07.
3) “Module Run” menu has been extended with more categorised menu items
so as to include “most” of the various SATURN programs and processes
available. Version 10.8.15 21/03/08;
4) The dialog box from the “Batch Run” menu has been extended with
categorised SATURN batch files available from a selection menu with
integrated ‘help’ function. Version 10.8.15 21/03/08;
5) The QUIET option, enabling SATURN, SATALL, SATNET, SATPIJA and
SATME2 to run in the background when using SATWIN, may be switched
ON/OFF via the main SATWIN toolbar. Version 10.8.15 21/03/08.
full name is defined on two or more input records. See Note 17) in Appendix
A. The previous upper limit was around 68. 14/10/07.
2) Files which are “read only” are now opened in such a way that, in principle at
least, the same file can be accessed by two or more SATURN programs
running concurrently. 10.8.14. 25/01/08
3) No .LOG files are created when interactive programs such as MX or P1X are
run in KEY + VDU mode. 10.8.21 12/01/09.
4) If the file sat10key.dat cannot be opened because it is temporarily in use by
another program running in parallel the program pauses briefly and tries
again, up to 6 times in total, before the program is finally terminated.
10.8.21. 15/01/09.
D.17.11 SATDB
1) The calculation of link travel times from flows may now use a column of
either demand or actual flows; previously the assumption was that the flows
were always demand flows and that they were therefore always factored
down to actual flows before doing the time v. flow calculations. 31/03/07
2) Actual flows by user class may be directly accessed via a DA code by using,
say, 3808 in place of 3803; i.e., replace the final 3 by an 8. See 15.21.4.
9/04/07
3) Miscellaneous ASCII data input files may now have the node numbers in
either fixed column blocks of 5 or 6. Previously only blocks of 5 were
permitted (or completely CSV free format input) whereas a number of
SATURN programs produce output with fixed blocks of 6 for easier
identification. 13/05/07
4) When dumping link data to an ascii (.txt) file an option has been added to
automatically suppress all links which contain nothing but missing values.
28/07/07.
5) Single trees can now be built from either nodes or links in addition to zones
and they can be built either out-bound or in-bound. In addition a vector of
trips may then be assigned to the calculated routes. See 11.10.7.1.
22/08/07.
6) The input of data from an ascii (e.g., txt) file now automatically distinguishes
Reals from Integers. 04/09/07
7) Copy/Cut/Paste functionality added to the link and/or node Display
Windows. 20/09/07.
8) When reading in a DA code which does not contain data on all possible links
(e.g., simulation link or simulation turn data as opposed to assignment link
data) and the other links are assigned missing values then an option has
been added to automatically select only those links. This makes it simpler to
suppress the output of “m’s” to terminal or ascii file outputs. See 11.10.2 (4).
19/01/07
9) Both the SATRAP and ONE SONG … options now explicitly store re-
assigned flows for individual user classes in internal data base columns in
addition to the total flow. 10.8.16 12/03/08.
10) The .ufa file output under One Song … now contains the name of the latest
trip matrix files, the total trips loaded and the individual updated user class
flows (see #9). 10.8.16. 12/03/08.
11) An option has been added under Select to easily de-select all links which
contain nothing but missing values. 10.8.16. 18/04/08.
12) An option has been included under Miscellaneous Inputs to automatically
input all items of KNOBS data into data base columns. 10.8.16. 18/04/08.
13) An external batch file KNOBDUMP has been created to automatically dump
all KNOBS data into an ascii file. This facility is intended to assist users who
currently have KNOBS data stored as extra lines within the 33333 data set
to transfer that data into an ascii file which can then be input to SATNET via
KNBFIL. See 15.14.7.10.8.16. 18/04/08
14) Stage definitions per signalised turn may now be created under
Miscellaneous Input / Packed Turn Data giving a series of data columns 1/0
to indicate green/red in the corresponding stage. 10.8.19. 29/07/08
D.17.13 Documentation
1) A full update has been carried out for the June 2009 release with
subsequent ongoing revisions.
D.18.1 SATNET
1) A check is made whether LTP has been explicitly set in the &PARAM
records in the network .dat file and, if not, a warning message is printed.
This follows from the fact that the default value, 30 minutes, is probably not
the preferred value for most applications. See 8.4.5.
network plots, the obvious way to define them. However, strictly speaking,
simulation centroid connectors need a zone number plus two node numbers
to define a link but this is difficult and counter-intuitive. Indeed the use of
“wildcard” entries (zone only) is strongly recommended. See 15.14.5.
20/03/09. 10.9.5.
15) A new &OPTION parameter PLFF3 has been introduced such that, if TRUE,
links in a text file containing pre-loaded flows (hence PLODFF = T) need
only be defined by an A-node and B-node; i.e., no 3rd field containing a 0 is
necessary in order to distinguish turns from links. See 15.5.4.
16) A new parameter DCSV allows default buffer speed-flow curves by capacity
index to be defined in free format within the 33333 data records. This
eliminates potential problems of column definitions when DUTCH = F or T.
See Note 4) in 15.9. 10.9.5. 07/04/09.
17) A new algorithm is used to estimate better values of XYUNIT by comparing
input coded distances with calculated crow-fly distances by excluding: (a)
links which only lead to zones and which may well have artificial distances
and (b) obvious outliers. 10.9.6. 25/04/09
18) A new method to interpolate missing X,Y node co-ordinates has been added
to cover the situation where there are two undefined nodes on links
between two defined nodes (as opposed to just one previously). 10.9.6.
26/04/09.
19) The default value of the &PARAM parameter CROWCC has been changed
to .FALSE. in order that, by default, buffer centroid connector distances
which are input as zero are not re-set by their crow-fly distances. See
15.10.3. 10.9.8. 10/07/09.
20) The network coding practice of sub-dividing a link into a short series of 2-
arm “artificial” nodes (e.g., to give it “shape”) has now been formally
identified as a “chain” of nodes with applications to blocking back, random
delays, etc. etc. where we expect the series of links to function as a single
link in some respects. More complicated examples of the same basic
phenomenon are also identified. See 5.1.12 and 8.5.5. Chained links may
also be displayed within P1X.
21) User-class specific values of SUET (virtually never used) may now be
defined as a subscripted &PARAM Namelist variable. E.g., SUET(2) = 0.5
sets the value of SUET for user class 2 only. See 7.3.3. 10.9.10. 12/08/09.
22) A new parameter FREE88 allows the values of PPM, PPK and KNOBS
weights per user class to be input in free format – so as to avoid problems
with trying to define values within 5 columns. See 6.11, note 12). 10.9.10.
12/08/09.
23) MYTVV, which selects the algorithm used for signal optimisation, now
defaults to 5 rather than 1. The differences should be slight. See 15.31.3.
10.9.10. 12/08/09.
24) Maximum free-flow speeds (CLICKS) disaggregated by both vehicle class
and capacity index (KLUNK = 1) may now also be defined by including
single records with a V in column 1 under the 33333 buffer data records as
an alternative to using an external FILVSD file. See 15.47.2. 10.9.10.
13/08/09.
25) An alternative algorithm for interpolating between two non-connected nodes
in a bus route based on minimum distance has been created. It may be
used if the normal direct-line method fails provided a parameter MINDER =
T. See 15.18. 10.9.10. 14/08/09. Equally the direct-line method has also
been improved, in particular to avoid “diversions” down spigot zone
connectors.
26) The simulation link record 2B, which previously has been used to define
simulation link speed-flow curves, may now also be used to define link-
specific values for TAX, FLAREF and FLAREX. See 6.4.14. 10.9.10.
17/08/09.
27) The default value of NITS (maximum number of simulation iterations) has
been increased from 10 to 20. See 8.1. 10.9.10. 29/08/09.
28) The default for NITA_M has been reduced to 1 under OBA (but is still 3
under Frank-Wolfe). 10.9.13. 30/11/09.
29) A new Serious Warning 138 has been added to detect roundabouts where,
e.g., the saturation flows coded for two or more arms are the same but the
number of lanes differs. Strictly speaking, it tests for significant differences
in saturation flow per lane between different arms. See 6.4.7. 10.9.13.
5/12/09.
30) Another new Serious Warning 167 tests for centroid connectors from a
buffer zone which are, e.g., coded as 2-way but the out-bound link(s) from
the buffer node is 1-way. See 16.6.4. 10.9.13. 5/12/09.
31) A new Warning detects possible simulation nodes where there appear to be
sufficient links on an outbound arm to justify using a Clear Priority Modifier
on an exit turn. See 6.4.2.6. 10.9.13. 06/12/09.
32) Incorrectly including &PARAM namelist variables within &OPTION now
results in a Fatal Error 486 (in the same way that including &OPTION
variables under &PARAM is currently FATAL 486). 10.9.14. 10/12/09.
33) The output .bus files produced if BUSKER = T are now consistently either
10 nodes per line or 13 nodes per line depending on whether there are 5-
digit nodes anywhere in the network or not, not just on the individual
routes. 10.9.14. 19/01/10.
34) Bus-lanes may now distinguish between bus-only lanes, tram-only lanes
and bus-or-tram lanes by using the letters B, S and T respectively on
simulation link records. 10.9.15. 01/02/10.
35) An alternative, more natural, set of TOPUP rules has been introduced
whereby the data input for simulation nodes may be duplicated in
$INCLUDE files via a parameter DOUBLE = T under &PARAM. This makes
it easier to create alternative scenario networks based on a master version.
The default value of T is strongly recommended. See 6.15.2 and 6.15.3.
10.9.15. 04/03/10.
36) Various Warning messages which create Semi-fatal errors under WRIGHT =
T have been upgraded and renumbered as Serious Warnings. Thus
Warning 13 becomes Serious Warning 168, 17 to 169, 76 to 176 and 77 to
177. Thus none of the remaining Warnings become Semi-Fatal under
WRIGHT = T, only certain Serious Warnings and Non-Fatal errors. 10.9.16.
07/04/10.
37) In addition the set of Serious Warnings and Non-Fatal Errors which are
upgraded to Semi-Fatal under WRIGHT = T has been increased
significantly. For a full list see Appendix L. 10.9.16. 07/04/10.
38) If a negative stacking capacity is input in field 1 (columns 1 – 5) on a
simulation link record for link A-B this is taken to imply that that link should
not be considered to be part of a set of in-series 2-arm links for blocking
back purposes but is to be allowed to block back in its own right. See
8.5.5.4. 10.9.18. 04/07/10.
39) Warning 24 – an input time or speed which is out of range – has been
expanded to distinguish the situation where the input value is zero as a
Serious Warning 170. 10.9.19. 21/08/10.
40) A range of values for ERRYES may be set in a single Namelist statement by
using a colon; e.g., ERRYES(33:66) = F “turns off” all warnings in the range
33 to 66. See Section 2.9 and Appendix A. 10.9.19. 22/08/10.
41) ERL files which contain a full list of errors found within SATNET and sorted
by node order are automatically output and may be subsequently processed
by users. They may also be used to help identify “new” error messages. See
15.58.
42) Timing point routes which have a frequency of zero (as is normal) are now
always modelled as beginning at the first coded (simulation) node and
terminating at the final coded node as if, in effect, UPBUS = T, independent
of the actual value of UPBUS. This is a more “natural” assumption but
means that the modelled timing points may differ within, e.g., Validation
statistics in P1X. However it also means that timing points defined at the
final node are always accepted. See 6.9.5 and 11.7.2.2. 10.9.24. 28/04/11.
D.18.2 SATALL
1) Extra warnings, Serious Warnings and Non-fatal errors identified within
SATALL have been added to the lists produced by SATNET so that the lists
of errors displayed in, say, P1X now includes errors from both SATNET and
SATALL.
2) If MASL = 1 and SAVEIT = T the output .UFC file is always based on the
actual (single) assignment, not an extra SAVEIT assignment; see also
UFC109 under 4). 15.23.2.
3) The default value for UNCRTS changed to 0.05 from 0.2.
4) A new option UFC109 has been introduced and set under namelist
&PARAM in network .dat files. If UFC109 = T (default = F) two things
happen.
Firstly, the output .UFC file under multiple user classes stores the sets of
link times per iteration as opposed to link (generalised) costs by both
iteration and user class. This is possible because the times per iteration are
constant between all user classes on the same Frank-Wolfe iteration; the
costs may differ but only because the fixed costs per user class differ
however, since the fixed costs are fixed throughout (by definition), it is
straightforward to construct the costs per iteration/UC by adding (stored)
times per iteration to fixed costs by user class. This means that the .UFC
files produced under UFC109 will be reduced in size by a factor of
1/NOMADS with only a very small overhead in reconstructing costs as
required for secondary analysis. Note that for a single user class we
continue to store costs, not times, since there is no difference in file size and
it would only save a small overhead.
Secondly, the costs/times may be stored as a rolling summation of all
Frank-Wolfe iterations over all simulation-assignment loops instead of re-
creating the assigned route flows by an extra SAVEIT iteration. This has the
benefit that any secondary analysis, e.g., skimming, based on routes is
exact, not an approximation. The dis-benefit is that there may be many more
rolling iterations in total than there would be in a SAVEIT assignment which
means that: (a) the.UFC files are larger and (b) any secondary analyses
take longer. However, if the number of rolling iterations becomes too large
(greater than NITA_C – see below) then we revert to an extra SAVEIT
assignment. See 15.23.3. 10.9.5. 04/04/09
5) A new &PARAM integer parameter NITA_C sets the maximum number of
rolling FW iteration costs/times which may be stored in a .UFC file when
UFC109 = T. See 15.23.3. 10.9.5. 04/04/09.
6) The choice of convergence rules set by KONSTP has been extended to
allow the combination of either the ISTOP link flow criterion with a maximum
cpu time or minimum GAP value with maximum cpu time. Both are more
sensible than simply setting a maximum cpu time on its own. See 9.3.2.
10.9.5. 05/04/09.
7) The possibility that a run of SATALL may terminate with error level 2
(indicating that it has converged only on the maximum number of loops
MASL, not, e.g., on ISTOP) has been removed. Previously STOP 2 might
cause a long batch file run to hang. 10.9.5 and also 10.8.22. 08/04/09.
8) A new command line parameter QUICK, if used, artificially reduces all loop
etc. counters such as MASL, NITA, NITS etc. to minimal values so that the
program runs in minimal CPU. Useful for checking if long batch files have
been set up correctly. See 14.10. 10.9.7. 13/05/09.
9) The option AUTONA, in addition to potentially adjusting NITA at each loop,
now also sets UNCRTS in order to allow the assignment to converge better.
10.9.8. 30/06/09.
10) New advice is now provided in the manual on the choice of stopping criteria
for the assignment-simulation loops. In brief our recommendation is to use a
Gap value rather than %FLOWS (although the preference is fairly marginal).
See the discussion in 9.2.3. 14/04/10.
11) Disaggregated cpu times broken down by, e.g., simulation and assignment,
now include explicit times before and after the main loops (basically inputs
and outputs). These are printed at the end of the .LPT files. 10.9.17.
12/06/10.
12) The calculation of the optimal step length used under AUTOK to average
two assignments based on the simulation has been “improved” so that it
should take fewer iterations to identify the optimum. See 9.3.2.1 10.9.17.
01/06/10.
13) The order in which the nodes are considered within a single internal
simulation iteration has been changed so that instead of simply taking them
in a pure numerical order a topologically-based strategy of working from the
outside of the network inwards has been adopted. In principle this should
reduce the number of required internal iterations. See 8.3.4. 10.9.17.
01/06/10.
14) If AUTONA = T the value of UNCRTS used during the SAVEIT assignment
is set equal to the minimum value of UNCRTS as adjusted (downwards) by
AUTONA during the assignment-simulation loops in order to make the
assignment convergence comparable to the minimum GAP value. This, in
turn, will therefore help to improve the convergence of the SAVEIT
assignment and make it more comparable to GAP as well (at the cost of
extra CPU time). See 9.5.4 and 15.23.2(4). 10.9.18. 03/08/10.
15) The method by which SATALL (and SATEASY) store trip matrices in
internal memory may be made more efficient by setting a network parameter
SPARSE = F if more than 50% of the trip matrix cells are likely to have
positive values (i.e., the matrix is not “sparse”). This avoids problems of
potential crashes due to insufficient array lengths. See 7.11.12. 10.9.21.
11/11/10.
16) If negative cells are found in the trip matrix and a Serious Warning
generated then, in addition to messages output in the .LPT file (which no
one ever looks at!), the warning 172 is recorded in the output .ufs file where
it could be printed by P1X etc along with all the other errors detected by
SATNET. 10.9.21. 19/11/10.
17) New rules are applied to the use of SATOFF = T coupled with MANOFF (a
fixed master node to define relative offsets) such that all signalised nodes
that do not have the same cycle time as MANOFF do not have their offsets
adjusted.10.9.23. 01/02/11.
18) If the input network .UF file was created by a program (i.e., SATNET) which
is from a later release version of SATURN then SATALL will fail with a fatal
error in order to avoid any possible problems of non-upwards compatibility.
10.9.23. 01/02/11.
19) The printing of simulation summary statistics to the .LPT file has been
reduced so that statistics disaggregated by, e.g., capacity index, are not
included. 10.9.23. 15/02/11.
20) The “sub-procedure” within SATALL which creates a .UFO after an
assignment has already been run has been extended for multiple user
classes so that a single user class .UFO file may be created. In particular
this option may be invoked by a distributed multiple processor procedure
SATUFO_MC which creates separate .UFO sub-files using separate
processors before merging them all into a single .UFO file. See 15.23.7 and
15.53.2.7. 10.9.24. 22/04/11.
21) A Multi-Core version of Network Aggregation (SPIDER=T) released to all
existing Multi-Core users as part of the standard SATALL release. 10.9.24
31/05/11
D.18.3 Simulation
1) The method for calculating random delays upstream of links which block
back has been modified so that the capacity used in the formula is the
capacity BEFORE blocking back was applied. This removes a possible
discontinuity when the link downstream goes from a state of blocking back
to not blocking back or vice versa. See 8.6.5.
2) Arrays of simulation turn delays broken down by: (a) V>C permanent
queues, (b) random delay and (c) CFP only have been created and may be
accessed within P1X.
3) Random delays are not included on links which are part of “internal” chains
of 2-arm “artificial” nodes. See 8.6.4. 10.9.7. 01/06/09
4) The equation used to define delays on Q-turns has now been
“parameterised” in the sense that the numerical constants 226 and 0.75
(see Equation (Q-10 in Appendix Q) may now be user-set via Namelist
parameters QDMAX and QVCMIN under &PARAM.
5) The rules for blocking back on links which have been artificially sub-divided
into one or more continuous sub-links (e.g., to provide a link “shape” via 2-
arm dummy nodes) have been made more general. Set BB109 = T to
invoke the new rules. See 5.1.12 and 8.5.5. 10.9.9. 25/07/09.
6) Blocking back may also now be “phased in” when the queue on the link is
only slightly smaller than the stacking capacity by setting BB109 = T and
BBKING < 1.0 See 8.5.6. 10.9.9. 25/07/09.
7) The calculation of capacities for X-turns at signals – and of any turns with
which they share lanes – has been extended by the introduction of an
explicit length of flared lane denoted by FLAREX. See 8.2.5.2 and 8.2.6 plus
notes 4) and 26) under SATNET D.18.1 above. 17/08/09.
8) The rules governing a Y-merge and whether or not it is subject to
“funnelling” have been slightly updated in 10.9.18 which will therefore give
slightly different results from previous releases. See 8.8.4.4. 25/07/10.
9) Flared lanes are now explicitly modelled in terms of increasing the capacity
of those turns which are allowed to use flared lanes. See 8.2.6. 10.9.20.
15/09/10.
10) The rules for the reductions in capacity due to weaving on links between
“motorway” junctions (see Section 15.40) have been extended such that if
there is more than one link between the entry and exit ramps (as illustrated
in Fig 15.3) than the reduction factor is applied to all those links; previously
it was only applied to the last link. 10.9.23. 20/02/11.
11) The rules for applying an additional delay at Q-turns (App. Q) have been
modified such that if the Q-marker is within a link weaving section then the
saturation flow used in equation (Q.1) is reduced by the weaving factor in
order to produce a larger delay. See also 15.40.4.5. 10.9.23. 20/02/11.
12) Post 10.9.23 the rules for modelling flared lanes (either X or F) at priority
junctions have been upgraded, basically increasing the capacity, in
particular when queues are near to or greater than flare lengths, and
correcting a potential instability (see note 44 in Appendix E-6). Equally other
modifications, possibly less extreme, have been made to the modelling of
flares at traffic signals. 10.9.23. 16/03/11.
D.18.4 SATME2/SATPIJA
1) Certain errors in input in the control file have been upgraded to semi-fatal
and result in the program being terminated once it has got to the end of the
inputs.
2) Extra warning messages have been added if (a) the number of frozen cells
appears to be too large and (b) if the total number of trips changes
significantly post ME2.
3) A summary table of stats per internal iteration – Table 9B – is included at
the end of the internal iterations. 15/01/09.
4) Zonal constraints (input data segments 22222 and/or 33333) may now be
duplicated in the sense that a GT and a LT constraint may now appear for
the same zone, effectively defining a range. 13.1.7. 10.9.6. 17/04/09
5) A new table (11.c) has been added to the output .LPM file to list all origin
and destination zonal totals before and after and to compare the two. 13.1.5.
10.9.6. 25/04/09.
6) The name of the output .ME2 file is now based on the output matrix filename
(change .UFM to .ME2) rather than the counts file. 13.8. 10.9.8 13/06/09
7) The contents of the output .ME2 file have also been extended so as to
include the link sensitivity variables as normally contained in Table 10 and
described in 13.3.11. Also in 10.8.22. 05/05/09.
8) The original input “actual” counts from SATPIJA are now included in the
.UFP file as well as the “demand” counts and passed to SATME2 where
they now appear in Table 1. They are also included within the .ME2 files
passed to P1X where they may be displaced under ME2 Analysis. 10.9.13.
15/10/09.
9) The .ME2 files created by SATME2 and passed to P1X now include
information on the various namelist parameters set within both SATME2 and
SATPIJA. They may be displayed as a text window under ME2 Analysis in
P1X. 10.9.13. 15/10/09.
10) The output .ME2 files contain the combined set number for counts that are
combined into “screen lines” under 6666 and these may therefore be
displayed in P1X. 10.9.18. 31/07/10.
11) SATPIJA now will correctly process PASSQ flows by individual user classes
if the “pre” and “current” networks have different link structures. 10.9.19.
14/08/10.
12) SATPIJA may now process subsets of origin zones in “segments” or “slices”
such that a full PIJA analysis may be broken down into multiple sub-steps,
the main objective being to run each sub-step simultaneously within a
separate core on a multi-core machine in order to save CPU. A subsequent
run of SATPIJA will then aggregate each sub-file to create a normal full
.UFP file. See 13.4.9. 10.9.21 24/11/10.
13) A new multi-core batch file SATPIJA_MC has been created in order to use
the “segmented” application of SATPIJA (see 12) above) in order to
calculate a .UFP file using multiple processors with a consequent reduction
in CPU time. See 15.53.2.2. 10.9.24. 20/04/11.
D.18.5 SATSUMA/SATTPX
1) QUIET option now allowed. See 14.9.
2) The first time period may now have a PASSQ flow input by defining PASSQ
= T and FILPLD under &OPTION in the base network .dat file. See ??
D.18.6 SATDB
1) The minimum-maximum number of columns allowed in the link data base
has been increased from 8 to 12. In other words if your network is at the
limit of the number of assignment links then you can create at least 12 data
columns, but if you are below the limit you may have up to 24 data columns.
2) The batch file satbuf has been updated to function properly for networks
where DUTCH = T and link A- and B-nodes need to occupy 10 columns
each, not 5, on the output file. See Section 15.8.2. 10.9.15. 05/02/10.
D.18.7 General
1) No .LOG files created when interactive programs such as MX or P1X are
run in KEY + VDU mode. Also in 10.8.21. 12/01/09.
2) If the file sat10key.dat cannot be opened because it is temporarily in use by
another program running in parallel the program pauses briefly and tries
again. Also in 10.8.21. 15/01/09.
3) Unidentified “tokens” on a command line now result in Fatal Errors; e.g.,
trying to invoke PASSQ under SATALL instead of within SATNET. 10.9.7.
28/05/09.
4) Default .LP files created under commands such as MX I or even $MX (to
simply run the .exe file directly) are assigned names such as mx1.lpx,
mx2.lpx, if the normal default file mx.lpx is currently open. This may occur if
several jobs are being launched simultaneously. 10.9.8. 05/07/09.
5) The program SATED is no longer included with the standard .exe files since
all its essential functions are embedded within P1X. 10.9.10.
6) LOG files have been made a bit more “robust” when converted to KEY files
by replacing certain blank lines by their equivalent defaults. For example, if
the reply to a Yes/No question was simply <return> implying the default of
Yes, then “Yes” is written to the LOG file rather than a blank line. This then
helps subsequent runs using KEY files to differentiate between certain
inputs. 10.9.19. 19/08/10.
7) As a general rule – but as yet not universally applied – if an output text file
has been given the extension .CSV then the output data is in “true” CSV
format in the sense that a comma is inserted at the end of each numerical
field. In particular this applies to the output of grand matrix totals in MX,
Section 10.14. 10.9.20. 12/09/10.
8) All complete listings of network namelist parameters (i.e., logicals, integers
and reals) now contain separate listings of just those parameters whose
values differ from the standard defaults; e.g., in SATNET, SATALL, P1X,
etc. 10.9.20. 20/09/10.
9) KEY files input to interactive programs previously had to have an extension
.key; this rule has now been relaxed such that the extension .log is also
permitted. This means that a LOG file produced by one program run may be
used directly as a KEY file in a later run without the necessity to rename it
with an extension .key. See 14.5.1. 10.9.21. 05/11/10.
10) In addition KEY and/or VDU files may be defined on a command line by
virtue of their extension without necessarily following the keyword KEY or
VDU. Thus instead of P1X net KEY jim one could write P!X net jim.key. Or
equally P1X net jim.log. See 14.5.1. 10.9.22 15/12/10.
D.18.8 P1X
1) A red bar has been added on individual node plots to indicate when an exit
and/or entry link is blocking back. Also in 10.8.21. See 11.2.2. 24/01/09
2) Blocking back values on both entry and exit links has been added to set 3 of
the link data as displayed under individual node graphics. 24/01/09
3) An explicit option to print standard Node Table 2 (Flow and delay data) from
within Node Graphics and/or the last table previously used has been added.
Also in 10.8.21. See 11.2.3. 27.01/09
4) Output to .JPG files should now be operational. Also in 10.8.21. 01/02/09.
5) Differences in network coding of individual simulation nodes between
networks 1 and 2 may now be “highlighted” and node graphics loops over
those nodes that differ may be initiated. This is a very useful option for
discovering what other people have done to your network and not
documented while you were on holiday! A complete table of differences per
node is printed out automatically to the .LPP file (but, for the moment, can
only be viewed by going to the .LPP file afterwards, not interactively). A
optimisation ranked by the amount by which the maximum V/C ratio could
be reduced. This helps to identify badly coded junctions which may be
impeding convergence. 10.9.13. 01/12/09.
17) Options have been added so that when a new file containing X,Y co-
ordinates is created the format may be changed (e.g., to CSV from fixed
column) and the factor XYUNIT may be explicitly added so that the co-
ordinates are output in units of metres. See 11.9.7. 10.9.14. 12/09/09.
18) The Select Link Analysis main menu now displays the filename of the trip
matrix being assigned and allows it to be re-defined (so that if you want to
do a SLA for network 2 you may also select the trip matrix from network 2).
See 11.8.1.8. 10.9.15. 05/02/10.
19) The node graphics displays now explicitly plot flared lanes, both nearside
and offside. See 11.12.2. 10.9.15. 01/02/10.
20) A new link data set consisting of “link properties” such as flare lengths may
now be selected within node graphics. 10.9.15. 01/02/10.
21) A new “resume” option automatically creates (/overwrites if necessary) a file
last_p1x0.dat containing all the relevant parameters and window information
at the point of exit from P1X such that that file may be picked up by the very
next run of P1X enabling the next run to resume with the same conditions as
the last. Extremely useful! See 11.4.4. 10.9.15. 13/02/10.
22) A link to the display of all individual bus routes has been added within the
Validation menu; at present only those with timing points may be accessed.
26/03/10. 10.9.16.
23) An option to print a full table of bus route summary statistics (currently
option 6 within SATLOOK) is now available under Information/Bus
Routes/Options. 26/03/10. 10.9.16.
24) The validation of timed routes now permits an average turn delay to be
included within the final simulation link of a timed route so as to be
consistent with the other definitions of timing points. See 11.7.2.1. 31/03/10.
10.9.16.
25) A text output file may be created containing a full list of all nodes formed by
the union of two topologically different networks with their common
sequential node numbers. See 11.4.2. In turn this may be used by
SATCOBA; see D.18.12. 10.9.16. 01/05/10.
26) The “double-click” option to select a node for node graphics is now entered
into the log files and will be correctly recognised in subsequent key files.
See 11.12.1. 10.9.17. 08/05/10.
27) The “resume option” (21 above) has been extended such that the file
last_p1x0.dat not only contains the co-ordinates of the last window used, it
also remembers all the previously saved windows from the previous run
(which might also be entered in a .WXY file). 10.9.17. 11/06/10.
28) Node graphics images may now be output as .JPG files. 10.9.17. 12/06/10.
29) The “resume option” (see 21) above) may also be invoked immediately on
entry by including the key word “RESUME” on the command line. 10.9.18.
03/07/10.
30) The definition of “stack” as used in the calculation of QoverS has been
changed so that it equals the value as used in blocking back calculations,
i.e., the combined stacking capacity of the chain if the link is part of a chain
of in-series links; otherwise the normal link stacking capacity. This avoids
the “presentational” problem of Q/S values appearing as greater than 100%
when in fact there is no blocking back on the link/chain. See 8.5.5.5.
10.9.18. 04/07/10.
31) The “vertical” or “global” editing of link data has been extended to include
the capacity indices which are stored on the second link record. See
11.9.17. 10.9.18. 05/07/10.
32) Destination zones which cannot be reached from a particular origin during a
“plot to all zones” tree build and which may be a consequence of a
disconnected network are indicated by a large red X. See 11.8.3, option c).
10.9.18. 22/07/10.
33) While editing individual simulation nodes it is now possible to move to an
adjacent node by clicking on its A-node number directly within the node plot
rather than having to “quit” the current node and then select another node.
10.9.19. 19/08/10.
34) In the editing of simulation node data (e.g., within PMAKE) it is now
assumed that any comment records that precede the node record the .dat
file are part of that node’s records and they are therefore included within the
editing process where they may be modified by screen editing. As
previously any comment records within the node data are also included
within editing but any comments at the end of the node records (i.e., beyond
the link or signal data) are assumed to refer to the following node. See
11.9.3. 10.9.19. 19/08/10.
35) New little green arrows in the middle of each boundary line have been
added to move the window up, down etc., along with arrows in the 4 corners
to shift the window at 45 degrees plus two small circles with plus/minus
signs to indicate zoom in/out. So the same functionality as appears on the
menu bar as Nav-L etc. but hopefully more intuitive. See 11.5.5. 10.9.20.
14/09/10.
36) Editing link and/or turn data within node graphics has been easier by
introducing small “target boxes” at the end of each arm to select a link or
later a turn. Subsequent data editing is then based on the use of Windows
edit boxes. See 11.12.4. 10.9.20. 14/09/10.
37) The “vertical field” editing may now use a single fixed value to be applied to
all (or a selected subset of) nodes and/or links as opposed to defining
individual values per node or link via an external data file or internal data
base column. 10.9.21. 23/10/10.
38) The “auxiliary network plot” which shows the position of the current window
within the full network now re-appears each time a new window is created.
See 11.5.4. 10.9.21. 27/10/10.
39) The criteria for “selecting” nodes for display have been extended in order to
select either (a) nodes which have been retained in a spider web
aggregated network (15.56) or (b) are treated as “moons” or “dependent
simulation nodes” within the simulation (8.5.3). See 11.6.5.3. 10.9.21.
21/11/10.
40) Within node graphics if two arms at a node are very near one another such
that any notation (e.g., A-node numbers) at the end of the arms overlaps,
the notation is moved sideways to eliminate the overlap. 10.9.21. 21/11/10.
41) The option to annotate bus flows on (nearside and/or offside) bus lanes has
been extended to include flows on bus-only links. 10.9.23. 24/01/11.
42) All bus flows may be optionally displayed in units of either vehicles (i.e.,
buses) per hour or PCUs per hour – provided, for the moment that all buses
have a common BUSPCU factor. 10.9.23. 25/01/11.
43) A “quick toggle” switch to swap between numerical and geometrical (e.g.,
bandwidth) link annotation is now provided. In most cases this will mean
either numbers on links or bandwidths but if, say, the option to print
numerical boxes was selected most recently from the full set of display
options then that becomes the default “numerical” toggle. Ditto with
alternative geometrical options such as variable intensity etc. 10.9.23.
19/02/11.
44) An option to temporarily “suspend” link selection has been added. Thus if
there is a link selection rule in force it can be turned “inactive” without losing
all the select information and therefore turned “active” at a later stage.
10.9.23. 20/02/11.
45) A number of “toggle options” have been added to the pull-down menus
under Display and Windows on the menu bar. For example both the
switches noted above under 43) and 44) are included under Display.
Equally, for example, the option to print node numbers offset is also
available under Display. 10.9.23. 19/02/11. The set of options available from
the pull-down menus has been further extended under 10.9.24.
46) New options have been introduced to process .ERL files in which the two
extra data fields have been used to distinguish, e.g., recently introduced
errors from older ones. Development is ongoing but the basic idea is to
allow a “selective” highlighting of various errors using information from the
.ERL files rather than the complete list of errors as detected by SATNET
and stored on the .UFS file. 10.9.23. 25/02/11.
47) Simulation zones which have identical centroid connectors may be
aggregated into single zones under network editing / PMAKE using the
lowest zone numbers. Common examples are multiple external zones all of
which are connected onto a single external simulation node. See 11.9.4.1.
10.9.23. 09/03/11.
48) The batch file procedure SIGOPT (15.31.6) which makes use of P1X now
edits stage times and/or offsets of those simulation nodes which have been
coded within $INCLUDE files by explicitly incorporating all such files within
the new output .dat file. At the same time the sigopt.bat file itself has been
upgraded to make it easier for the user to define the name of the new .dat
file. 10.9.24. 30/03/11.
49) Data contained in .ERL (Error Listing) files may now be used to highlight
those nodes that satisfy certain criteria based on the values in either of the
two “extra” fields which may be manipulated by the users. For example, it is
possible to externally assign different numerical values in the second field
(e.g., using Excel) to indicate the degree of “urgency” associated with each
particular error and to highlight these using different colours in P1X. See
11.6.5.4 and 15.58.2. 10.9.24. 22/04/11.
50) A command line such as “P1X network 485” causes the initial network
window to be opened with node (/zone) 485 in the middle. The option is
invoked whenever a pure numerical value is input on the command line. See
11.5.6. 10.9.24. 27/05/11.
D.18.9 SATLOOK
1) A facility to skim O-D time, distance and tolls simultaneously from a forest
(as opposed to carrying out 2 or 3 separate skims in order to reduce CPU
time by a factor of roughly 2 or 3) has been added. This may be called either
interactively under main option 9, via a standard batch file SKIM_ALL (cf
SKIMTIME, etc.) or in SATTUBA. See 15.27.7. Also in 10.8.21. 24/01/09.
2) An option has been included within SATTUBA to exclude all times and
distances on centroid connectors (which, in practice, means buffer centroid
connectors) from skims on the assumption that they are essentially arbitrary.
However toll skims continue to tolls on include centroid connectors. See
XCCSK under 15.41.4. 10.9.8. 10/07/09.
3) An option to print all differences in coding between common simulation
nodes in networks 1 and 2 is now available but only when SATLOOK is
called as a sub-component of P1X. See also note 5) under D.!8.8 above.
See 11.11.18. 10.9.10. 14/08/09.
4) The filename conventions used in SATTUBA and SKIM_ALL etc.have been
changed such that an output time file net.t.ufm becomes net_t.ufm; i.e., full
stop becomes an underscore. 10.9.13. 01/12/09.
5) SKIM_ALL now outputs up to 4 skimmed matrices by including a matrix of
time penalties (in seconds) if any exist. 15.27.7. 10.9.16. 21/04/10.
6) A new set of O-D skimming algorithms have been introduced under
standard batch procedures such as SKIM_TIME, SKIM_ALL, etc. etc which
are more CPU-efficient than the old versions and also form the basis for
new multi-core versions. On the other hand they use more RAM so, for that
reason, they are only available in the standalone batch version of
SATLOOK, not in the interactive versions and/or accessed via P1X. See
15.27.8. 10.9.17. 07/05/10.
7) Turning flows at (all) buffer nodes may now be output (a) to an external text
file (as opposed to just the .LPL file) and (b) in a one-record-per-turn format
(as opposed to an in-bound out-bound matrix format). See 11.11.12.
10.9.22. 28/12/10.
D.18.10 MX
1) The ratio of the maximum number of rows permitted relative to the
maximum number of columns permitted has been increased from 3 to 6.
This means that a matrix with 6 levels will always be accepted even if the
number of rows/zones exactly equals its maximum. However, if you have
fewer zones/rows than the maximum, the number of permitted levels will
increase in proportion. 10.9.5. 20/03/09.
2) The maximum number of rows has been further increased to 9 times the
columns/zones in order to provide even more “headroom” for stacked
matrices in 10.9.13. 25/10/09.
3) An option to define sectors by zone interactively added. 10.9.8. 18/06/09
4) Matrices dumped in EMME/2 format to ascii (.txt) files may now have their
number of decimal places defined. 10.9.8. 20/06/09.
5) The first matrix input into MX as part of standard matrix batch files MXADD,
UFM2CSV, etc. etc. is now closed immediately after it has been read in in
order to reduce the possibility that two separate applications of MX (or
indeed any programs) operating in different cores will both try to open the
same matrix file at the same time. 10.9.13. 23/10/09.
6) The QUIET option can now be included in the command line for M1 and
MXM1 so that a matrix can be created from a .dat file without grabbing the
screen at all. Release Version 10.9.14 09/12/09.
7) The standard batch files UFMSTACK and UFMUNSTACK now have an
option to run in QUIET mode. Release Version 10.9.17. 09/06/10.
8) Further to 3) above a further option has been added to define sectors by
zone using an explicit external text file which by default has the extension
.Z2S and consists of one record per zone giving the zone name and its
sector. See 10.2.5. 10.9.19. 27/08/10.
9) Equally a .Z2S filename may be included as a namelist parameter within a
matrix .dat file such that the zone-to-sector conversion is permanently
stored within the .ufm file structure. 10.9.19. 27/08/10.
10) Matrix row and/or column totals may now be output in a CSV format,
basically one record per zone with options to in/exclude sequential row
numbers, zone names, etc. etc. See Section 10.14. 10.9.20. 11/09/10.
11) “Cut” and “Paste” operations have been added such that an individual sub-
matrix may be extracted (cut) to a .ufm file from a stacked matrix or a
square input matrix may “over-write / paste” an existing level in an internal
stacked matrix. See 10.4.2 and 10.16. 10.9.20. 22/09/10.
D.18.11 SATCH
1) The default value of DEMAND has been changed to F; i.e., output trip
matrices are based on actual flows, not demand flows, by default. 10.9.6.
17/04/09.
2) A second table has been added comparing O/D totals in the output trip
matrix with the corresponding network flows after Furnessing has been
carried out. 10.9.6. 17/04/09.
3) The batch file has been extended so that a single user class output trip
matrix may be requested via the command line by including, eg., NOMAD 2
at the end of the line. Its primary function is to be used as part of a new
multi-core distributed batch file SATCH_MC described next. 10.9.24.
15/04/11.
4) Multiple user class matrices may now be produced “in parallel” using
multiple processors via the batch file SATCH_MC which allocates one user
class per processor to produce a series of individual user class (square) trip
matrices and then stacks them into the required multi-level trip matrix. (Yet
to be finalised). See 12.1.6 and 15.23.2.6. 10.9.24. 22/04/11
D.18.12 SATCOBA
1) Two new options have been added to (a) output flows from a single network
disaggregated by vehicle class (in addition to by user class) and b) to output
such flows in units of either PCUs/hr or vph. See 15.42.2. 10.9.10. 13/08/09.
2) A new option permits a node conversion file to be input so that 5-digit node
numbers may be converted to 4-digit numbers with the added benefit that
the same conversions may be applied across any number of networks which
may have different nodes included (e.g., do something vrs. Do-min). See
15.42.6. 10.9.16 01/05/10.
D.18.13 SATPIG
1) New options have been added to control (and in particular to increase) the
number of paths output. Thus if ALLOD = T at least one route is included for
every O-D pair whether or not it has any trips in its trip matrix cell. Equally a
new parameter PODMIN sets an inclusion test based on a minimum fractional
use of a path – in addition to FPHMIN which tests the absolute flow in pcu/hr.
See 12.6. 10.9.10. 14/08/09.
2) Output files under TRPFOR = T now include both the absolute flow in pcus/hr
and (new) the fractional flow on the first record for every route.
3) A option to output all path data in CSV format with all numbers on a single
record has been introduced. Set the new Namelist Parameter CSVFOR = T.
10.9.24. 19/03/11
D.18.14 CASSINI
1) A new program to enable Network parameters such as MASL, NITA etc. to
be adjusted between external demand loops dependent on the level of
convergence reported by the demand model (e.g., DIADEM) in order to
“relax” the convergence criteria for the SATURN assignment. See 15.54.
10.9.10 04/09/09
2) Renaming of the CASTXT options to either ‘DIADEM’ (the default value) or
‘Other’; previous versions had problems in selecting non-DIADEM formats
for CASSINI to correctly read-in. See 15.54 10.9.22 06/12/10
D.18.15 SATWIN
1) Option to link the various files used by SATURN to their respective
programs within Windows Explorer. See 3.6.6. 10.9.12 26/10/09.
2) Increase in the number of different sets of SATURN executables that may
be selected on the start-up screen from 10 to 15. See 3.6.1. 10.9.12
26/10/09.
3) For each event, the selected working folder and program folder are saved to
enable previous ‘events’ to be re-run more easily. Option to ‘save’ event log
for subsequent re-importing back into SATWIN. See 3.6.5. 10.9.12
26/10/09.
4) Location of temporary SATWIN.BAT files moved to core install directory (eg
C:\SATWIN\TEMP)
5) New options to select QUICK / QUIET = TRUE for all SATURN programs
through toggle option. See 15.55 10.9.10 04/09/09.
6) Introduction of a new ‘Non-Core Alternatives’ sub-menu that enables users
to run either:
• the previous v10.9.12 releases of SATNET and SATALL exe’s rather than
the new SATURN 10.9.17 versions (as called by SATNETX.BAT and
SATALLX.BAT separately or SATURNX.BAT combined); or
• a hybrid option of SATNET v10.9.17 and SATALL v10.9.12 (as accessed
by SATNET.BAT and SATALLX.BAT separately and SATURNH.BAT
combined) that will provide the benefits of more comprehensive network
coding checks whilst still using the earlier SATALL version.
D.18.16 Documentation
1) Full updates have been carried out for the November 2009 release of
10.9.12 as well as for 10.9.17 in June 2010, 10.9.22 in January 2011 and
10.9.24 in May 2011.
2) The 10.9.17 release contains new Appendices R, S and T which contain
print-outs of two recent ETC papers on OBA, CASSINI and Network
Aggregation plus a copy of a more ancient paper by DVV on tree-building
algorithms which is relevant to network aggregation.
DVV / IW 03/10/11
D.19.1 SATNET
1) APRESV has been made a link-dependent variable which may be set on the
second link record as currently done for TAX, FLAREX and FLAREF. See
6.4.14 and 8.8.3.1. 10/06/11
D.19.2 SATALL
1) The post-assignment procedure SATUFC which generates a .UFC file to
enable O-D paths to be examined has been extended to accept networks
which were originally run using OBA and for which the .UFO files are not
suitable for all possible analyses, e.g., SATPIG. See 15.23.5. 11.1.1
10/06/11
2) An extra parameter MASL_M (set under &PARAM in SATNET) sets a lower
limit on the number of simulation-assignment loops. See 9.2.3. 11.1.1.
13/06/11
3) The rules which determine the convergence parameter UNCRTS in the
extra SAVEIT assignment have been altered so that it equals the
assignment-simulation GAP value. This should ensure that the SAVEIT
assignment neither terminates prematurely nor takes excessive iterations.
See 15.23.4. 11.1.1. 13/06/11
4) Extra stopping criteria for the assignment-simulation loops with KONSTP = 5
and 6 have been added based on GAP and ISTOP (5) and GAP or ISTOP
(6). See 9.2.3. 11.1.1. 15/06/11.
5) An alternative REAL form of ISTOP, RSTOP, has been added which allows
the critical stopping criteria to take on values such as 97.3% rather than 97
or 98%. The stopping tests are now all based on the “real” value RSTOP
although, due to the way in which integer rounding took place before, the
end effect is the same. See 9.2.6.
6) The method by which a .UFO file is created following a “normal” Frank-
Wolfe assignment (i.e., not OBA) has been made considerably faster by
making use of a Spider network (assuming that SPIDER = T) plus an
improved internal algorithm. The same methods are also used when the
batch procedure SATUFO is run on its own. See 22.5.3. 11.1.6. 12/12/11.
D.19.3 Simulation
1) The “rules” for modelling Y-merges have been altered to allow APRESV to
have an impact on either arm. See 8.8.3.2. Note in addition that APRESV
may now be set as a link-specific value; see 6.4.14 and note 1) under
D.19.1. 11.1.1. 13/06/11.
2) BB109 is always .TRUE. now (Or, strictly speaking, its value is ignored
since wherever it was previously invoked the program now assumes it is
TRUE.) 28/08/11.
3) Simulation nodes with fixed cost-flow curves (FCF) introduced as well as an
improved method to convert intermediate simulation networks into buffer
(BST). See Section 15.1. 11.1.2. 09/09/11.
4) Blocking back has been “tightened up” on links where there is either (a)
traffic entering from centroid connectors at the downstream end of the link or
(b) buses exiting from the downstream end. The convergence of the
blocking back factors should be improved although the overall impact may
not be great. 11.1.3. 17/10/11
5) Random delays now contribute to extra queues on links but only if a new
parameter SIM111 = T. See 8.6.5. 11.1.3. 17/10/11.
6) Turns at signals which have been coded with an X but whose green phases
are terminated by stages where there are no opposing turns (i.e., by a late
cut-off) do not now qualify for an extra TAX capacity at the end of their
green phases. They are currently identified as Warning 79 in SATNET. See
6.4.2.2 and 8.2.4. 11.1.8. 19/01/12.
7) Capacity reductions caused by “weaving” between motorway junctions
(Section 15.40) may now be modelled even when network aggregation
(SPIDER = T) is being used; previously it could only be invoked if SPIDER
was not used. 11.1.8. See 15.56.7.
8) Blocking back rules have been substantially revised for links which are parts
of chain. Thus, rather than allowing “internal” blocking back as described in
Section 8.5.5.1 of the manual to “spread” the queue within the chain, the
“internal” blocking back has been removed in order to (empirically) improve
convergence. Thus the full queue is calculated and allocated at the most
downstream link in the chain, the blocking back factor is applied at the most
upstream link but there is now no blocking back and/or queues on any of the
intermediate links. The net impact should be much the same as at present
since the important blocking back factor which is at the upstream end of the
chain should be the same as before; the main differences are presentational
in terms of the distribution of the queue along the links in the chain. 11.1.9.
15/03/12.
D.19.4 P1X
1) Green arrows to change window positions made active during Joy Ride
calculations. 11.1.1. 23/06/11.
2) Right mouse click to move up one level on the banner menus; i.e.,
equivalent to Quit/Return/etc. 11.1.1. 16/08/11.
3) An option is now provided to directly enter the node selection procedures
from within Global Signal Optimisation within Network Editing, rather than
having to do node selection first. 11.1.2. 23/08/11.
4) The option to read node data into the SATDB node data base directly from
an external ASCII file has been extended such that the file need not contain
any node data, simply a list of node numbers which are used for selection
purposes only. Note, however, that a very similar option is already available
within the existing Node Selection procedures. 11.1.2. 23/08/11.
5) A text file network description corresponding to the map network links may
be output from within either Output Files (11.4.2.3) or Network Edits
(11.9.2.5). These files may optionally refer to a sub-set of all map links; e.g.,
simulation centroid connectors only. 11.1.2. 09/09/11.
6) All outputs from Node/Zone/Link Information now go to the .LPP file well as
to a separate window. 11.1.2. 26/09/11.
D.19.5 MX
1) An option has been included to output zero-value cells under Tuba 3 text file
outputs. See 10.15.1.5. Release 11.1. 20/07/11.
2) A new set of options has been added within Matrix Manipulation (Option 8
from the master menu) to deal specifically with intra-zonal cells. Either a
fixed value may be introduced or a value equal to 0.5 times the minimum
cell value within each (origin) row (where the latter application is specifically
designed to create an intra-zonal cost from an existing inter-zonal cost
matrix). See 10.8.7. 11.1.3. 22/10/11.
3) The batch procedure MXM5 has been extended to allow both row and
column (origin and destination) factors to be used and to be defined within
the control file. See Appendix W.3. 11.1.3. 22/10/11.
D.19.6 SATCH
1) Certain errors in Namelist inputs (e.g., unrecognised text names) are now
upgraded to Fatal. Release 11.1 31/07/11.
2) The SPINE option has been upgraded so that rather than just defining a
start and end node (NODES and NODEF) to define an interpolated “spine”
various intermediate nodes (NODEM) may also be set. See note 7), 12.1.4.
Release 11.1 31/07/11.
3) A new option ADDXZ has been added such that, if F, then eXternal Zones
are not ADDed within the 22222 simulation centroid connectors. See note
8), 12.1.4. Release 11.1.2. 14/09/11.
4) A new option to produce a new network .UF file with the simulation nodes
outside the cordon indicated as “fixed cost flow” nodes: set DOFCF = T.
See 12.1.11 and 15.1.4. Release 11.1.3. 14/09/11.
5) New option INCLUD = T now creates the various 11111, 22222 etc. data
sets as external files referenced by $INCLUDE within the main network .dat
file. See note 10), 12.1.4. Release 11.1.2. 21/09/11.
6) New option SZONE = T means that the new zones in the cordoned network
are assigned sequential numbers 1, 2, 3 … rather than the “names” used in
the old network. See note 8), 12.1.4. Release 11.1.2. 28/09/11.
7) The output 55555 data segment includes default co-ordinates for the newly
created zones at each cordon point. 11.1.3. 17/10/11.
8) If the original network .dat file used $INCLUDE files plus TOPUP = T so that
simulation nodes were allowed to appear twice they will now only appear
once in the cordoned network .dat files. 11.1.8. 26/01/12.
D.19.7 SATDB
1) The maximum number of potential data base columns has been increased
to 48 with a minimum of 24 (previously 24 and 12). 11.1.4. 01/11/11.
D.20.1 SATNET
1) The rules by which aggregated SPIDER networks are constructed have
been updated in several (relatively minor) respects. For example steps 5)
and 6) in Section 15.56. 3 where nodes with single exits/entries are treated
have been altered such that the nodes are completely aggregated as in
step 7); previously it was possible (though not very likely) for the central
node to remain which created problems for certain analysis functions.
D.20.2 SATALL
1) The post-assignment procedure SATUFC which generates a .UFC file to
enable O-D paths to be examined has been extended to accept networks
which were originally run using OBA and for which the .UFO files are not
suitable for all possible analyses, e.g., SATPIG. See 15.23.5. 11.1.1
10/06/11.
2) An “incremental assignment” variation on Frank-Wolfe assignment has been
included within the SAVEIT assignment with the objective of trying to reduce
“residual paths”. Its effectiveness is still under trial. See 7.11.13, 15.23.2
and 15.57.6. 11.2. 24/09/12.
3) The rules by which delays at very low flows are truncated to zero have been
changed by making the cut-off flow link dependent rather than a universal
value. This removes possible but extremely rare cases of “underflow” which
impact, for example on SATPIJA. The downside is very small differences in
outputs compared to earlier releases. 11.2. 06/10/12.
4) The algorithms used to calculate .UFO files from Frank-Wolfe have been
substantially improved both in terms of their accuracy but also in terms of
the required CPU time. In particular a multi-core element has been
introduced and enabled when MULTIC=T (and which effectively renders
SATUFO_MC redundant). See 15.53.
5) The option to use PARTAN assignment as part of the SAVEIT assignment
step has been extended to MUC by setting a Namelist parameter SPARTA
= T. See 7.11.7 and 15.23.4. An important benefit of using
PARTAN/SPARTA within SAVEIT is that, by (potentially) reducing the
number of Frank-Wolfe iterations required to produce a SAVEIT solution, all
subsequent analysis steps that use UFC files (e.g., SATPIJA, SLA, etc.) will
become correspondingly faster. 11.1.15. 15/11/12.
6) Simulation turns which have been assigned a nominally infinite capacity of
99,999 (which may be set by default) now must always have zero over-
capacity delays in the (unlikely?) event of an assigned flow exceeding
99,999 pcu/hr. 11.2.3. 20/02/13.
7) The format of the .UFO files has been extended to includet a representation
of both “normal” networks and “spider” networks so that the various analysis
functions (such as SLA, cordoning, etc.) have a choice of which
representation to use (with the spider .UFO format being generally much
faster). 11.2.1.
D.20.3 Simulation
1) A number of small alterations / corrections to the simulation code – mostly to
do with flares – means that 11.2 gives slightly different outputs from 11.1.
2) A form of “relaxed convergence” has been introduced whereby the cyclical
flow profiles (CFP) on early iterations are treated as “flat” at junctions where
there is relatively little variability between time units. This may happen at
roundabouts or priority junctions but never at signals. By temporarily
redefining NUC as 1 this may lead to a substantial reduction in cpu time.
See 8.?. N.B. Not yet finalised at the time of first release.
3) The “rules” by which a flared lane is modelled have been altered in terms of
what happens to capacities if both the flared lane and the main lane have
queues back to the flare point. This means that the simulation will give
different results, especially when the V/C ratio for the lane is high and/or the
flare is relatively short. 11.2.3. 26/01/13.
D.20.5 MX
1) The Statistical Options now include a series of options to print a table of the
standard univariate statistics over all matrices, not just a single matrix. See
10.9.1. Release 11.1.12. 03/09/12.
2) Similarly the M2 comparisons of two matrices may now be applied to two
different “levels” within an internal stacked matrix. See 10.9.2. Release
11.1.12. 03/09/12.
3) Equally univariate statistics may be displayed for a single level and/or a
table of comparative univariate statistics for all levels within a matrix may
also be printed. See 10.9.1. Release 11.1.12. 04/09/12.
4) The rules for selection now include options to select either a single level of a
stacked matrix or a range of levels. See 10.6.1. 11.1.13. 11/10/12.
5) Screen printing has added tool bar options to jump to the next level up or
down and the ease of selecting an individual level to be printed from the
menus has been improved. See 10.10.2. 11.1.14. 24/10/12.
6) Setting a new Logical parameter TFL = T in matrix .dat files indicates that
node and zone names obey the hierarchical rules appropriate to Transport
for London networks. E.g., that the first digit of a 4-digit zone name gives its
sector. See 5.1.7 and 8) under D.20.1 above for network files. 11.2.1.
27/11/12.
D.20.6 SATPIJA
1) Counts which are to be input on the control file (UFFLOW = F) may now be
defined using a $INCLUDE record to set the name of an external data file.
Release 11.2. 22/09/12.
2) The array dimensions for the maximum number of IJ pairs per link have
been increased in order to accommodate extremely large (i.e., LoHAM)
networks. 11.2.4. 02/03/13. Ditto for SATME2.
D.20.7 SATME2
1) An option to treat the input counts as pure demand flows, rather than as
actual flows which need to be potentially factored up to allow for flow
metering at queued junctions upstream, has been introduced via a Namelist
parameter DEMAND. See Sections 13.1.4.2 and 13.2.2. 11.1.12. 09/09/12.
2) A new parameter FREE6 = T permits the combined link data input under
section 66666 to be in free format, e.g., CSV. 11.2.3. 01/03/13.
3) In order to process combined count constraints (6666 data sets) more
efficiently the input .UFP file is first copied into two “true” direct access files
before the PIJA factors are added together. For large data sets (e.g. Loham)
speed up factors are of the order of 100! 11.2.4. 07/03/13.
4) In order to better monitor situations where combined constraint sets (66666
inputs) contain summed Pija factors > 1.0 due to multiple crossings and Pija
is capped at 1.0 a summation is kept of all Tij * (Pija – 1) to quantify the
extent of the problem. The information is printed to the .LPM files. See
13.1.8. 11.2.5. 29/03/13.
D.20.12 SATWIN
1) A new SATWIN graphical user interface (GUI) has been developed (using
Microsoft WPF) to replace the existing SATWIN version (after a decade of
good service!). The new SATWIN updates the existing workflows and
enables model specific set-up and operations and to be saved and re-
loaded. See section 3. In development for v11.2 release and made
available as a beta version.
B to N3
Unchanged – see Section 15.28
Standard
N3 ‘Large’ Bespoke
N4 23,000 200,000 4,000+
X7 Bespoke
Note: ‘+’ the maximum number of zones is 8,250 and it is available upon
request. (N.B. there is a risk that some of the Multi-Core versions of the
existing applications may not be available in the larger sizes).
E. SATURN Bugs
E.1 SATURN 10.4 Bugs
Date of last update: 5th October 2004
The following “problems” have been identified in SATURN Version 10.4.10 as
released in November 2003 and corrected in Version 10.4.11. (Although in
certain cases more comprehensive “fixes” have been added into 10.5 which users
may wish to “test drive”; all requests to DVV.)
1) P1X – Matrix cordoning in either P1X or SATCH may cause crashes or
illogical terminations. I say “may” rather than “will” since the problems involve
undefined variables in logical checks which may or may not yield the correct
results. Problems are worse with multiple user classes and/or stacked
matrices.
2) P1X – The 10.4 versions of GRAF.DAT included for the first time entry fields
for the “rotational shift” parameter for each device. Unfortunately the value for
device 1 (the terminal) over-writes all subsequent values (e.g., hard copy
outputs) so that choosing a different value for hard copy outputs still requires
an interactive change.
3) P1X – There is a problem in creating key files from any operation that
involves PMAKE setting node co-ordinates (e.g., creating a new node,
changing node co-ordinates, etc.) However the problem was also in 10.3 and
is clearly not the sort of operation that users are likely to use.
4) P1X – The window created for node screen editing (17 lines by 64 columns) is
not large enough to deal with some nodes, in particular signalised nodes with
many arms and./ or signal stages.
5) P1X/PMAKE – When adding buffer links to networks where KNOBS > 0 and
the KNOBS data is input as one extra record per buffer link on the 33333 data
set only a single new record is added to the 33333 data records by PMAKE,
i.e., an extra KNOBS record is not created. This means that every second
new buffer link is incorrectly read as the KNOBS record for the previous link
so roughly half the added (directional) links are missing. This can be
corrected manually by editing in blank records after each new buffer link
record. Corrected in 10.5 only.
6) P1X/PMAKE – Screen editing a “chunk” of the complete network file may lead
to errors if : (a), the section selected (as a first line plus number of lines)
extends beyond the end of the file (in which case it wraps back to the start of
the file); or, (b), extra lines are added via screen editing.
7) P1X/PMAKE – The frequency of a newly added bus route always defaults to
1 independent of the user’s input. Now corrected..
8) SATALL – The array 4053 which sets “average” link speeds including flow-
weighted delays at junctions for simulation links is incorrect for simulation
links which have a capacity – restraint or speed-flow curve included. Basically
the contribution to the delay from the speed-flow component was double
5109341 / Mar 13 E-1
11_2_05_App E.docx
SATURN MANUAL (V11.2)
counted resulting in speeds that were too low. However the problem does not
occur in the equivalent speeds reported by P1X which were calculated
correctly.
9) SATALL – The ROSIE option does not work - at all! Basically the problem
lies in transferring speed-flow curves from the simulation to the assignment
(one of the very clever improvements in 10.4 that works very well for ROSIE =
F is decidedly not very clever for ROSIE = T) and results in very poor
convergence. Fortunately the poor convergence is extremely evident so the
problem should be difficult to miss.
10) SATALL – The option to reproduce results as per 10.3 by setting NFT = 103
mostly does not work; i.e., most of the new facilities introduced in 10.4 are
“hard wired” in and cannot be by-passed by setting NFT = 103. Some will be
by-passable in 10.4.11 but the majority, mostly relatively minor, are extremely
difficult to exclude given the way in which they are programmed and most
likely never will be. Users are reminded, however, that the best way to
reproduce 10.3 runs is to use 10.3 SATALL! If you want the advantages of
10.4 you have to be using 10.4.
11) SATALL – An error has been found with links which (a) have simulation
centroid connectors attached, (b) block back and (c) have flows which enter at
the upstream end (e.g., from bus routes starting under UPBUS = T or bus
lanes terminating on the previous link). It is not yet clear exactly what impact
the error has, possibly it may affect the assignment-simulation convergence,
but it is corrected in 10.5.
12) SATSIM – Problems may occur when printing bus summary statistics if there
are no capacity-restrained links in the simulation network; i.e., it may crash or
it may just print silly numbers or no numbers (a problem of bus flows being
undefined).
13) SATBUF – The essential key file satbuf.key was omitted from the install cd
and may be obtained by direct request to DVV and/or downloaded from the
SATURN website.
14) MX – Undefined cells on the right hand side of the matrix display when the
“zero point” is very near the maximum column have been corrected.
15) SATALL / P1X – The values of ‘g’ (the “speed-flow elasticity as used by
VaDMA) have been overestimated since they were based on variable time
components only, i.e., the fixed time components were excluded. Including
them (correctly) reduces g values by, say, a factor of 2.
16) SATLOOK/MX – The maximum output length for a single record of CSV
output is 8192 bytes but the maximum input is only 4096. Hence SATLOOK
can produce CSV cost skins (as in SATTUBA) which MX cannot read.
Corrected.
17) P1X (Cordoning) - The option to produce a cordoned (i.e., sub-area) network
.dat file directly within P1X will not work if the cut links include a link which
joins two external simulation nodes but is itself part of the buffer network.
There are, however, no problems with doing exactly the same cordon in
SATCH. The soluton is therefore to create a control file for SATCH and run
that program to cordon the network instead.
18) SATCH (Multiple User Class Matrix Cordoning) – There may be problems
cordoning actual (i.e., DEMAND = F) trip matrices from networks with ALLUC
= T, several multiple user classes and/or a relatively large number of links.
The program may crash due to an array dimension being exceeded by the
product of classes times links. Corrected in 10.5 only.
19) SATED – Optimising signal green times leads to a crash with a message
saying “Missing segment UNPACK_STAGL_GREENS”. This is due to the
installed version of SATED not being correctly compiled. Atkins will supply a
replacement .exe.
20) SATEASY – As with 17 above SATEASY may also crash due to a missing
segment on compilation. Again Atkins will supply a replacement .exe.
21) P1X (Select Link Analysis) – If you have multiple user classes and request
that the SLA be carried out with ALL user classes and the exit from SLA you
may not be able to get back into SLA.
22) P1X (Edit External Simulation Nodes) – External simulation nodes may be
selected for editing as simulation nodes within network editing but not if
selected by number; i.e., you can point to them with the mouse but not enter
them numerically.
23) SATLOOK – The “Totals” line on the Lane Choice display for simulation
nodes was printing data for the last turn, not the totals. Corrected in 10.4.12.
24) SIMULATION (SATALL/SATSIM) – The lane choice mechanism has been
observed to misbehave when an even spread of traffic between all available
lanes leaves a shared lane over capacity and its (unshared) neighbours under
capacity. An over-enthusiastic re-allocation of traffic can leave the shared
lane empty. This results in an over-estimate of turn capacities used in the
cost-flow curves for assignment but link and road capacities as well as all
delays are virtually unaffected. However the incorrect capacity may add
marginally to convergence problems in the simulation – assignment loops
(along with lots and lots of other “correct” effects). A message saying “FUNNY
IN MIXLIN …” may also appear in the .lpt file. Corrected in 10.4.12.
25) SATNET – A slight inconsistency with FIFO = F (not its default) has been
corrected. Thus when a link to an external simulation node is assigned a link
speed-flow curve under the 11111 records and again under the 33333
records its capacity - if FIFO = F - should equal that from the 33333 record.
There are two DA codes in SATURN which store this information; one was
correctly set but not the other. They are now both correctly set.
To be honest I’m not sure whether this affects any of the simulation outputs
although it does affect the information output for that link. However it needs
to be stressed that the onus should be on the user in such situations to
remove one or the other of the conflicting data records in order to avoid any
possible ambiguity rather than relying on setting FIFO = F to do the job
automatically.
26) SATALL – Using the FREEZE keyword on the command line to set a frozen
trip matrix does not work when ICING = T. The program does not open the file
and proceeds with the full matrix elastic as though ICING = F. The option to
set the file through FILICE in the network .dat file however works – and in fact
this is the recommended method anyway.
27) SPATULA – If the network is relatively large so that the o-d paths contained
in the .trp files as passed to DRACULA occupy more than one line then
SPATULA produces a fist-full of errors.
28) SATALL – Doing extra continuation loops using the MASL parameter on the
command line does not do exactly what it is meant to do when ROSIE = T.
Thus the first extra assignment does not use ROSIE, it does a normal
assignment, but subsequent assignments use ROSIE. The end effect is small.
This is not really a proper error, just another (possibly less good) way of doing
extra loops. Corrected in 10.5.
29) SATALL – Using the command option “MASL n” in the command line
effectively terminates the command line; any following options are ignored. If
MASL n comes at the end of the command line there is no problem. N.B. This
problem does not affect the SATWIN Module run of SATALL since MASL is
not available there in the first place!
30) SATALL – The table which lists the 10 biggest differences between
“assigned” and “saveit” flows has the two sets of flows reversed.
31) SATALL – The comparison statistics between “assigned” and “saveit” flows
(see #30) are also incorrect for a number of different assignment techniques.
They are correct for basic Wardrop Equilibrium, fixed trip matrix and 1 user
class, but are certainly wrong for multiple user classes at least. They make
the SAVEIT flows look more different from the assigned than they really are.
However all the SAVEIT calculations themselves and any further calculations
based on them are otherwise correct, it is only the printed numbers which are
wrong. Corrected in 10.5 only.
32) SATALL (and SATLOOK) – The text names by capacity index (as set by
CINAME) as given in the tables of simulation summary statistics are out of
order if there are some indices which are only used by buffer links. The
numerical indices and all the tabulated data are correct. (30/06/04)
33) SATALL – An error has been spotted in the PASSQ flows passed from one
time period to the next if: (a) the first two nodes on a bus route are from an
internal simulation node to an external simulation node (and thence into the
buffer network) and (b) UPBUS = T. The full bus flow is incorrectly passed
whereas (unless there is capacity restraint on the link) the passed flow should
be zero. (06/07/04)
34) DALOAD -. Matrix zone sequential numbers and names are not carried
through to an output .ufm file. (9/07/04)
35) P1X – Forests calculated using the second network are incorrect in that they
(correctly) use the costs from the second network but (incorrectly) weight
them according to the first network. This may also result in fatal errors with a
DA code not found. (30/09/04)
36) P1X (Cordoning) – Using a cordon to select simulation turns either inside or
outside the cordon does not necessarily pick all such turns. (05/10/04)
In order to see what is happening in 10.5.12 users should view the column
headed “A/S Step” in Table 1 of the Convergence Statistics either in the .lpt
files or interactively via SATLOOK or P1X. If KOMBI is set to, say, 10, then
the first 10 loops should give 1.000/1 followed by 0.500/1 for subsequent
loops. If AUTOK is having an impact then these values will differ.
The problem may be partially circumvented by setting a (otherwise
undocumented) namelist parameter AKMIN = 1.0 under &PARAM. This sets
a lower step length of 1.0, i.e., no averaging of flows at all under AUTOK.
Therefore SATALL effectively ignores the fact the AUTOK = T up until the
KOMBI loop so that those initial loops are equivalent to the old methods.
The downside is that on later loops the averaging of 0.5 under KOMBI may
in fact not take place so therefore in this range KOMBI is being ignored.
7) P1X and/or SATLOOK – There is a potential problem created by assessing
errors at simulation nodes whereby, having requested a simulation node
numerically via SATLOOK or via Node Graphics in P1X, the program hangs.
The error only occurs with some priority junctions (in fact probably not very
many). Corrected 26/02/05.
8) SATNET – The use of ATLAS = T (or, strictly speaking, having ATLAS = T
and extra nodes being set under 55555 which are not connected to links)
may: (1) possibly cause problems in running SATNET by referencing
undefined variables (although empirically, it doesn’t seem very likely); and (2)
cause more serious problems in SATCH and (possibly) P1X (see below). You
will of course recall that ATLAS is a useful option in creating networks from
scratch using PMAKE but, once the networks are created, it should probably
be removed. Also present in 10.4. Corrected 02/03/05, partially in 10.5 and
more fully in 10.6.
9) SATCH - The use of ATLAS = T (or, strictly speaking, having ATLAS = T and
extra nodes being set under 55555 in SATNET) creates serious problems in
cordoning a trip matrix in SATCH. Basically it fails completely. Best advice: as
under 8, do not use ATLAS with final networks. N.B. The same problems may
or may not occur with cordoning matrices in P1X. Also present in 10.4.
Corrected in 10.6 02/03/05.
10) P1X – Network parameters reported for networks other than the primary
network (as requested under Information) all refer to the primary network.
Correct parameters may however be obtained within the Files option in
SATLOOK. Only corrected in 10.6 02/03/05.
11) SATALL – Roundabouts which have been defined with circulating capacities
of 99999 (five 9’s) – or indeed any value greater than 16384 – will cause a
floating point error in the first simulation.(NAOMI networks please note.)
Corrected 05/03/05.
12) SATNET – The test as to whether an input pre-load file is a binary .UFS file or
otherwise a text file is based on the file extension and is, incorrectly, case
sensitive. Thus .UFS is correctly identified as a binary file extension but not
.ufs. Trying to read a binary file as though it were text results in a very large
number of non-fatal errors. Also present in 10.4. Corrected 09/03/05.
N.B. The problem should not occur when using PLOD on the command line
since the extension should be correctly added with an upper case extension
.UFS by default; it is much more likely when using the Namelist parameter
PLDFIL under &OPTION (as you are recommended to do!).
13) SATALL – Although path-based assignment methods are now documented
(Section 21) the necessary array dimensions have not been increased in line
with other array dimensions per release level (on the assumption that, since
no one was using it, there was no point in increasing the RAM requirements.).
Hence it is only really possible to run path-based assignment on relatively
small networks (e.g., 80 zones or less) independent of the Level. Users
wishing to try out path-based methods on larger networks should contact
DVV. 16/03/05.
14) P1X – The option to select “Options” from the Choice of Link Display menu is
not available for buffer-only networks. Options is not always useful but is, for
example, if you have multiple user classes. Also in 10.4. Corrected 19/03/05.
15) MX – An error occurs when building a .ufm from an input text (.dat, .txt, etc.)
file if:
(i) the text file has a single line per cell (as described in 10.5.3);
(ii) each record references zone names (with or without the equivalent
sequential numbers);
(iii) the number of zones (N) is set before the records are pre-read in
order to establish the complete set of zone names.
Basically the program adds the zone names that it reads in to the input
number of rows N so that the matrix winds up with twice the number of rows
and columns desired with the first set of ‘N’ rows and columns all being
numbered as zone 0. Corrected 13/04/05.
The problem may be avoided by not setting the number of rows before
entering pre-read, in which case the program winds up with the correct
number of rows and columns.
16) SATSUMA – The program crashes with networks which contain either: bus
flows, pre-load flows or multiple user classes. Corrected in 10.5.14. 28/04/05.
17) SATLOOK/P1X – The simulation summary statistics which compare either
more than one input network or multiple user classes may contain some
numbers which are “undefined” and get printed as, for example, ??????? or
******. The numbers which are printed should, however, all be correct.
Corrected in 10.5.14. 28/04/05.
18) P1X – If you use the link-based Choice of Annotation to create and display a
data array such as actual user class flows it appears correctly on link plots.
However if you then look at the same data as turn flows in node graphics or
in SATDB screen displays the flows are not factored down from demand
flows. Corrected in 10.5.14. 02/05/05.
19) SATNET – Yet another problem with ATLAS = T! If your 55555 X,Y data
records define new zones which did not appear under either the simulation
11111 or buffer 33333 data sets then the zones in the assignment network
and the map network are incompatible which creates severe problems. In
addition the trip matrix may well have the wrong number of zones and/or be
based on the “wrong” system; in either case the assignment will be highly
problematic. To be safe this now becomes a semi-fatal error. Corrected in
10.5.15. 12/06/05.
ADVICE: Avoid using ATLAS = T with networks where it is no longer needed
to help build the network and where you are ready to go on to do the
assignment.
20) P1X – GIS files that contain a very large number of curved link records
(specifically if the total number of X,Y points exceeds 9999) give rise to
spurious lines heading off the screen to the “origin” lower left for all those links
beyond the point where the array dimension was exceeded. Corrected in
10.5.15. 15/06/05.
21) SATALL – Capacity reduction factors due to “weaving” on motorways are set
incorrectly when: (a) there is more than one link coded between the relevant
entry and exit ramps, say nodes A-B-C; and (b) the node number B is greater
than C. In this case the weaving factor is only applied to link B-C
(independent of whether B > or < C), not A-B. Corrected in 10.5.15. 21/06/05
22) P1X etc. – Analysis options such as Select Link Analysis which make use of
.ufc files may crash if very large values of NITA_S were used to create the
.ufc file in SATALL. Specifically a message appears saying that DA code
10003 cannot be found. The problem only occurs if NITA_S x NOMADS > 900
(so that mostly it will occur with multiple user classes). Corrected in 10.6.
23/06/05
23) SATALL – A “divide by zero” crash may occur within the simulation if an X-
turn at signals has been coded such that it overlaps with the adjacent straight-
ahead turns in 2 or more lanes and the X-turn is over capacity. For example,
straight-ahead traffic uses lanes 1 to 3 and the X-turners use lanes 2 and 3.
Since this is probably a traffic engineering no-no – since, in the above
example, turning traffic from lane 2 would have to cross straight-ahead
traffic from lane 3 – it should never happen in the first place. However, there
is, at the moment, no error check in SATNET to detect the possibility.
Corrected in 10.5.15. 30/06/05.
24) SATCH – The program may get stuck in an infinite loop when processing bus
route data if:
(iv) EZBUS = T,
(v) A $include file is being used,
(vi) The final record in the file does not have a <return> character
(carriage control/line feed) at the end of the record.
To correct simply add <return> at the end of the last record. Corrected in
10.6 only. 03/06/05.
25) SATALL – The total pcu-hrs for transient queues in the “next time period” as
printed in the .lpt file or via SATLOOK, P1X, etc. are inconsistent if your
network includes Q-markers (see Appendix Q). Basically the delays are
correctly included in the disaggregate statistics (e.g., by user class, bus flows,
etc.) but are not included in the aggregate (“total flows”) statistics which are
therefore lower than the sum of the disaggregate totals.
Conversely, if any of the Q-turns are over-capacity, then the queued times
“in the next time period” are double-counted on the Q-turns but correctly
calculated for the aggregate statistics.
Overall both effects are generally small – and clearly zero if you have no Q-
turns in your network. Corrected in 10.5.15. 05/07/05.
26) SATCH – The “interpolation” of non-adjacent nodes in bus routes is less
“clever” than in SATNET so that, for example, a network .dat file produced by
SATCH may send bus routes through a banned turn. This results in semi-fatal
(NAFF) errors in SATNET. Corrected in 10.5.15. 05/07/05.
27) P1X – The option to transplant stage timings via .rgs files works OK if the .rgs
file was produced pre 10.5 but, perversely, will not work if the .rgs file has
been produced by the latest (10.5) version of P1X. Corrected in 10.5.16.
09/09/05.
28) SATALL – If UPBUS = T errors can occur in calculating the queued up flows
(and therefore the difference between demand and actual flows) on links
where both bus routes terminate and there are other exit centroid
connectors. The effects are not expected to be appreciable except possibly in
very heavily congested networks. Corrected in 10.5.16. 10/09/05.
29) SATCH – The program may crash with a divide-by-zero (or equivalent) in
subroutine SATCH_MATRIX_FLOWS message if certain cordon crossings
links have been assigned zero flows in the matrix cordoning but had positive
flow in the full network. Corrected in 10.5.16. 17/09/05
30) MX – If a .ufm matrix is built from a text file in CSV format with the zone
numbers given as the first entry in each row no check is made that the zone
numbers are in sequential order. Therefore the output matrix may “fall over”
under certain matrix operations – but not all. Corrected in 10.6. 02/10/05
31) SATCH / P1X (Cordoning) – The treatment of unidentified nodes in a bus
route differs between SATNET and cordoning routines. In SATNET an
unidentified node is treated as a non-fatal error and ignored; within cordoning
it is treated as, in effect, a fatal error and further processing of the route is
terminated whenever such a node is detected.
If the unidentified node occurs before the route enters the cordoned
network (or within the cordoned network) the route is not included in the
cordoned network. However, if the node occurs after the route has entered
and exited from the cordon network, it will be included (since processing of
routes terminates at the point of exit).
The end effect is that the cordoned network may contain fewer buses than
the full network.
Indeed, their use is generally recommended over the more DIY application
of SATLOOK.
Finally the problem does not occur either with Option 14 – skim from a
single tree – where there is not an option to skim automatically over multiple
user classes.
The problem is corrected only in release 10.6.14. 29/01/06
37) SATALL – The program may crash with a message that talks about “illegal
floating point operation” or “divide by zero” or words to that effect, possibly in
a segment FLODEL_105. The root cause is a roundabout that somehow gets
stuck in a loop during simulation and winds up with one arm with zero
capacity; hence the eventual divide by zero. In principle CAPMIN is meant to
prevent this happening but it is not foolproof as it turns out.
The problem is corrected in 10.6 by setting a parameter RB106 = T which
prevents capacities going to zero in the first place by using CAPMIN
correctly. It is also corrected less satisfactorily in 10.5.19 by having an
absolute lower limit of 1.0 pcu/hr capacity on all roundabout arms. 07/03/06
38) SATALL – The program may also crash with messages similar to bug 37
above (but in a segment SETSSS more likely) due to junctions with Q priority
markers having zero total assigned flows. Corrected in 10.5.19 and 10.6.15
07/03/06..
intention) but the KNOBS data were converted into pence. Both are now
(post 10.6.15) correctly converted into metres.
Whether this situation has ever occurred in real-life is difficult to say. The
resulting assignment would be an all-or-nothing assignment to the minimum
generalised “distance” paths since there is no variable time component to
consider. With multiple user classes the problem could occur with any
individual user class where PPM = 0, PPK > 0 and KNOBS data were
included.
The same error occurred on previous release versions as far back as I can
easily trace. 07/04/06
7) SATALL – The warm start option (WSTART = T) does not work under a
number of possible scenarios as listed below. In effect WSTART should be
thought of as still being under Beta-test, although it does seem to work
properly and highly effectively in the most basic situations (e.g., single user
class, minimal fixed flows, etc.).
(i) Multiple user classes with changes to either the network or trip matrix
from the “update” network. Basically the resulting total flows and
delays are grossly underestimated.
(ii) Any differences in fixed flows (e.g., bus flows, pre-loads, etc.)
between the current network and its update network.
(iii) MUC, changed network and/or matrix and any fixed flows
All known bugs have been corrected in 10.6.15. 07/04/06.
In addition the documentation (Section 22) in the 10.6.14 release was very
much work-in-progress and not a great deal of use but this will be completed
ASAP and available through the website.
8) SATNET – The program may crash with a Floating Point Error (Divide by
zero) if (a) AUTOX = T and (b) ALEX = 0.0. The source of the problem is
trying to set a default stacking capacity at links to/from newly created external
simulation nodes by dividing a link length by ALEX. (Previously the stacking
capacity was just set to zero.) Corrected in 10.6.15 10/04/06
9) SATNET – Reading 44444 penalty/toll records with 21 user classes (so that
three input lines per link are needed) causes a program crash. 20 or 22
should be OK. The same problem might occur with 31 user classes.
Corrected in 10.6.15 11/04/06
10) SATALL – Using CLICKS with elastic multiple user classes causes SATALL
to crash with a reference to a device out of range. Corrected in 10.6.15
19/04/06
11) SATALL – The program may potentially crash with a floating point error in
the simulation due to a problem in the lane choice sub-model. It would appear
that the problem is very rare (and has been around in 10.5 at least and
possibly earlier releases) and may be triggered by a lane choice allocation
which would have been flagged as a Serious Warning within SATNET.
Corrected in 10.6.15 29/04/06
12) SATALL – The link weaving mechanisms (as described in section 15.40 of
the Manual) have not been fully activated under elastic multiple user class
assignment. Corrected in 10.6.15 29/04/06
13) SATTUBA – Not so much a bug but an omission, the definition of skimmed
times excludes: (a) any possible time penalties entered under 44444 and (b)
any extra times due to CLICKS. Both are now included optionally via logical
parameters USETP and CLICKY in the preferences file satlook0.dat. Both
default to .TRUE. Added in 10.6.16 05/05/06.
14) SATNET – A further problem with CLICKS: if you have more than 4 user
classes then the fixed penalties added for CLICKS(n) where n > 4 are
calculated for n modulo 4. In other words CLICKS(1) is used in place of
CLICKS(5) to calculate the extra time penalties (if any) for user class 5,
CLICKS(2) in place of CLICKS(6) for user class 6, etc. etc.
Note, however, that this error only affects the assignment and that, once
assigned, the extra pcu-hrs per user class due to any reduced maximum
speed are correctly calculated per user class and printed correctly in the
tables in the .lpt file. If, therefore, you have a network with limited route
choice the errors may be minimal. Corrected in 10.6.16 08/05/06
15) SATALL – The program may get stuck in an infinite loop if SATOFF and
SIGOPT are both .TRUE. and MANOFF is being used. This can occur if the
offset for the “master node” is reduced sufficiently such that start/end times of
a stage go negative. The problem was also present in previous releases. .
Corrected in 10.6.16 11/05/06
16) MXM5 – Terminating the list of zone correspondence records with a blank
record as opposed to a 99999 record does not work, although the manual,
Appendix W.3, says it does. Stick to 99999. Equally Appendix W gives the
default of CSV as T - it is, in fact, F. Corrected in 10.6.17 02/06/06
17) SATNET – Reading default speed-flow curves under 33333 with DUTCH = T
requires that the relevant data is contained in columns 21 to 55, not 11 to 45
as when (normally) DUTCH = F. However, if the data is in columns 11-45 with
DUTCH = T then it is very likely that the data will not be processed at all, no
default speed-flow curves are created and, most importantly, no error
messages result. Corrected in 10.7.1 09/06/06. N.B. This problem has been
around as long as default speed-flow curves have been around so it is not a
10.6 problem specifically.
18) SATNET – The parameter ILOVEU which controls whether U-turns are
“discouraged” at external nodes which lie between the buffer and simulation
networks (se 18.9) has been described in the documentation the wrong way
round. Thus the original documentation stated that, in order to discourage U-
turns, ILOVEU had to be set to F and that this was the (recommended)
default. The correct version is that ILOVEU has to be set to T to discourage
turns and this is the default. Hence, unless a user has explicitly set ILOVEU to
F in a network .dat file, the end effect will have been that U-turns have been
banned as generally recommended. Thus there have been no program
changes, only corrections to the Manual. This problem has been there ever
since ILOVEU was introduced in version 10.4.
19) VDU Option with KEY files – Interactive programs such as P1X, SATDB,
etc. which are run “in batch mode” using the VDU + KEY options on the
command line were “improved” in 10.6 so that any commands which were
entered under the Windows Bar, e.g., commands to move a display screen up
or down, were ignored on the assumption that all such commands were not
essential under VDU since all they did was to change a screen display which
was never viewed anyway. However, it turns out that this is not always the
case since commands such as &Order in SATDB displays may actually be an
integral part of a KEY file. The option has therefore been removed under
10.6.17. 10/07/06.
20) P1X – Actual and/or queued upstream flows as displayed are potentially
miscalculated for: (a) networks other than the base network which (b) have a
different topology from the base network. For the base network or identical
topology there is no problem. The basic problem is that the queue reduction
factors for a link in network 2 may pick up an additional factor from a turn with
the same number in network 1. Not all link data is therefore affected. The
problem was created in release 10.5.15. Corrected in 10.7.2 15/07/06.
21) P1X – Various relatively minor problems have been corrected in banner
displays of the link quantities being annotated. Mostly it was a question of the
banner being blank instead of displaying the correct data title. Corrected in
10.7.2 15/07/06.
22) MX – Building a .ufm file from ascii data input of the form “Name(I), Name(J),
Tij” fails to detect if either zone name is zero and therefore erroneously adds
a zone zero. (If I and J are sequential zeroes are ignored.) Corrected in
10.7.2. 27/07/06.
23) Matrix Stacking – If MX is used (either internally or with an external batch file
such as mxstack) to stack matrices which are themselves stacked the
number of levels in the output .ufm file is incorrectly specified. For example, if
you stack 4 square matrices into a fileM4A.ufm and another 4 square
matrices into M4B.ufm an then jointly stack M4A and M4B into M8.ufm – so
that M8 contains 8 square matrices – then M8 only registers 2 levels. This has
implications if M8.ufm is then used as a trip matrix for a network with 8 user
classes since SATALL may require a trip matrix with 8 levels specified. (N.B.
The number of rows and columns in M8.ufm would be fine; it is the only the
presumed number of levels which is wrong.) Corrected in 10.7.3 15/08/06
24) SATCOBA – Various problems have surfaced when running SATCOBA, in
particular with networks with 5-digit node numbers which are automatically
forced to use sequential node numbers (NAMES = F) due to the fact that
COBA only allows a maximum of 4 columns for input node numbers. Firstly,
the “towards node” in columns 47-50 COBA Key 056 was always output as
the “real” node number, not sequential, so failed whenever NAMES = F (i.e.,
definitely with 5-digit nodes). This has been corrected in 10.7.5. However if
SATCOBA is being used to output data from two input files which are
structurally different then it is not possible to match the networks based on
sequential node numbers since these will differ between the two networks. At
the moment there is no way around this problem; a solution could
undoubtedly be found within SATURN but the obvious solution is to change
COBA to accept 5-digit node numbers. So push them! 15/10/06
25) P1X – A long-standing problem with has been found with the reporting of
flows on links from an internal simulation node (I) to an external simulation
node (E) when PASSQ is being used. Basically any PASSQ (fixed) flows on I-
E are effectively removed immediately before they arrive at E so that the
reported downstream stop-line arrival flows (both demand and actual) do not
include PASSQ flows and therefore under-report the true arrivals. However
the “normal” annotation of (demand/actual) flows on the link are unaffected
and there is no affect on delays, total pcu-hours etc. etc. The problem only
really came to light in 10.6 when an option to annotate downstream arrivals
was added. Corrected in 10.7.5 14/11/06
26) SATALL – Quantities such as total pcu-hours, total pcu-kms etc. etc.
calculated within the simulation network may double-count the inputs from
bus flows which start upstream on simulation links E-I where E is an external
simulation node and I is internal. On the other hand the same quantities
calculated directly within SATLOOK are correct. N.B. the problem has no
effect whatsoever on assigned flows, calculated times, etc. etc., only
summary statistics. Corrected in 10.7.5 14/11/06
27) P1X – Creating a SLA trip matrix without having an input .ufm trip matrix but
using the option to run with a flat trip matrix crashes with a message about
accessing channel 0. Corrected in 10.7.6. 30/11/06
28) SATNET – Crashes if both BUSKER and FREDDY are .TRUE. since the
program attempts to output both a bus and a signals data file on the same
channel without closing the first file before going on to the second. Generates
a miscellaneous Fatal Error with parameters 0 and 7. A bug from way back.
Corrected in 10.7.6. 01/12/06
29) SATNET – Not so much a bug, more a possibly undesired outcome of using
crow-fly distances to define buffer-link distances if the input value on the
33333 records is zero and SHANDY = T. The problem is that this correction is
applied to all buffer links including centroid connectors. While it may be
sensible and highly desirable to calculate “correct” distances for “real” links it
may quite acceptable to have zero-length centroid connectors (in the same
way that they may quite legitimately have zero times). Therefore a new logical
parameter CROWCC has been introduced in 10.7 such that a distance of
zero for a buffer centroid connector is only replaced by its crow-fly distance if
SHANDY = T and CROWCC = T. The default value of CROWCC = T
maintains the status quo. Added in 10.7.6. See 15.10.3. 03/12/06.
30) MX – Dumping SATURN .UFM files to EMME-2 formatted text files currently
excludes any output for matrix rows which contain all zeros (as well as
excluding any non-zero cells in rows which otherwise contain one or more
positive cells). Whether or not EMME-2 can accept files with such missing
rows I do not know, but 10.7 adds a text record consisting of only the row
origin in the case of all-zero rows. 18/12/06.
31) P1X – Errors can occur while editing nodes under Node Graphics (i.e.,
temporary editing, not permanent editing as under PMAKE) if, after having
either added or deleted signal stages, you call both the options to Simulate
and to Process the new signal data. The errors only appear if you then move
reverses Warnings and Non-Fatal Errors. At all other points they are correctly
given. Corrected in 10.7.10.10/04/07.
8) SATSTAT - May not generate a full report if the network does not include any
links with Capacity Indices. Corrected in 10.7.10. 12/04/07.
9) P1Viewer/MXViewer – The initial release version only provided access to the
maintained level rather than Level ’N3’. Fixed in Release Patch #1 (21/03/07)
and included in all v10.7.9 released post 21/03/07.
10) SATWIN - Fortran File Opening Error 9016 may be generated when accessing
data files located outside the Working Folder with long path names and/or
embedded blanks. Corrected in 10.7.10. 14/04/07.
11) SATTUBA/MX etc. – There is a problem when producing skims for very large
matrices under Tuba Format 1 or any other format mechanism that produces a
full CSV record per origin in that the maximum record length is 8192
characters. If the required length exceeds this it may either cause a crash or
else simply truncate the output record to 8192 characters. The latter produces
a Non-Fatal Error message in the .LP file which may escape your notice. The
dimension has been doubled to 16384 in 10.8 but you will also need a similarly
extended version of TUBA. The same problem may also occur when
outputting large CSV files in MX. See 10.15.1. 14/05/07.
12) SATALL/SATSIM Simulation – Turning movements coded with a turn Priority
Marker M for merge may give unintended results with certain junction
geometries.
The basic intention of the M marker is to model merges, e.g., entry ramps onto
motorways. These would be coded as a 3-arm priority junction with two one-
way in-bound entry arms, the motorway and the ramp, one one-way out-bound
arm, the exit motorway, and two turns: ramp to motorway coded M and
motorway through to motorway. The assumption is that the outer lane of the
ramp-motorway turn would merge with the inside lane of the motorway-
motorway turn which would, by definition, be lane 1 on the motorway entry.
Problems occur if the ramp is, effectively, coded as two-way such that there is
an additional permitted left-hand turn off the motorway onto the ramp and that
turn has the exclusive use of the inside lane. In this situation there is no traffic
defined in lane 1 for the entry ramp traffic to merge with and the estimation of
gap acceptance for ramp entry traffic becomes ill defined and essentially
arbitrary. Most of the time there will be no reduction in the ramp entry capacity
below its saturation flow but it is also possible that the capacity will be reduced
to zero/CAPMIN with, consequently, very large delays.
In 10.8 this situation is: (a) detected as a Non-Fatal Error in SATNET but (b)
corrected in the simulation by merging the ramp entry traffic into the inside
lane as used by the motorway through traffic, not exclusively lane 1. With 10.7
the only solution – and probably the best solution in 10.8 as well - is simply not
to use M markers with such a geometry or, if you do, allow the motorway
through traffic to share lane 1 with the exit traffic from the motorway, in which
case the entry traffic has something to merge with.
Hopefully the coding as described above is fairly infrequent in practice.
The same problem occurs with junctions with more than 3 arms and/or with
merges “from the offside”. See 6.4.2.3. 03/05/07.
13) Using SATUFC to produce .UFC files post assignment may not allow
procedures such as forest skims to work subsequently since programs such
as SATLOOK or SATCH automatically think that there is no .UFC file in
existence. Corrected initially in 10.8.5 by letting the programs look for the
relevant .UFC files but more comprehensively in 10.8.6 (see point 2 in
Appendix D17.7) by automatically upgrading the .UFS files to register SAVEIT
= T etc. 07/06/07
14) SATALL/SATSIM/Simulation. It is possible – though probably extremely rare
– for roundabouts where one or more arms have link speed-flow curves which
do restrict arm capacities for the internal give-way calculations and the
“choking” from mid-link capacities to get locked into some form of positive
feedback loop which results in very extreme capacities and/or delays.
Corrected in 10.8.5. 17/07/07.
15) SATPIG/SATPIJA If the produce of NOMADS times NITER_S exceeds 999
an array dimension will be exceeded and the program will crash. The
correction dimension (as in all other programs) should be 4001. Note as well
that there is also an upper limit of 1001 on NITA_S for a single user class.
Corrected in 10.7.11 and 10.8.6. 20/07/07.
16) P1X, SATDB, etc. Various problems have been identified performing Select
Link Analysis based on .UFO files. Thus, (1), with MUC networks the user
class flows printed for UC > 1 are incorrect (To be more precise they show the
differences from the previous values.) (2) Screen line SLAs do not account
for the possibility of paths crossing 2 or more links in the screen line; if they do
their flows are double counted; (3) Spurious “CANT FIND …” messages in the
LP files have been removed. (1) has been corrected in 10.8.6, (2) is still under
review. 21/07/07
17) SATALL (Simulation) – It is possible – but highly unlikely – to generate an
Invalid Floating Point Operation (divide by zero) in SET BB TARGET_AVERQ.
Corrected in 10.8.6. 01/08/07.
18) SATALL (Simulation) – It is possible to generate a crash (undefined variable
in subroutine BBLIST) if QUEEN = T, but not consistently. The error has been
in existence for several years without ever being spotted. Corrected in 10.7.11
and 10.8.9. 27/09/07.
19) SATNET – Problems can occur if capacity-restraint speed-flow curves and/or
capacity indices are included in both the 11111 simulation data and the 33333
buffer data. The intention was that, if they differ, the initial 11111 would always
be used in preference to the buffer data but this is not always the case. In
particular this applies to speed-flow curves on simulation links from an internal
node to an external simulation node. Setting FIFO = F should help. Corrected
in 10.8.9. 27/09/07
20) SATALL/SATSIM/Simulation. It is possible for the program to terminate
prematurely with a Miscellaneous Fatal Error 29 message. The cause of the
problem is that described under 10) in Appendix D.17.3, Non-Fatal Error 273
(10.8 releases only). However it is not the case that all occurrences of NFE
5109341 / Mar 13 E-21
11_2_05_App E.docx
SATURN MANUAL (V11.2)
273 inevitably cause the crash; in fact relatively few of them do. However
correcting all such errors should remove the problem. Corrected in 10.7.11
28/10/07.
21) SATNET. If KNOBS data is being read with KONAL = T, i.e, with all the data
included at the end of each 33333 link data record, the data is incorrectly read
if DUTCH = T. Thus, rather than reading the data from column 56 onwards
(since with DUTCH = T the normal capacity index is in columns 53-55) it reads
it from column 46 onwards as it would normally do if DUTCH = F. Corrected in
10.7.11. 23/11/07.
22) Simulation. If a filter (Priority Marker F) has been coded at signals in,
presumably, lane 1 and another turn has also been allocated to lane 1 then
the simulation gives very strange results. This situation is detected as Serious
Warning 105 in SATNET but, arguably, it should be converted to a Semi-Fatal
error under WRIGHT = T. Corrected in 10.8.12 only. 17/12/07.
23) SATNET/Simulation. Any roundabout which has been coded with a circle
time of greater than 64 seconds will have its circle time taken modulo 64 –
which, if it is between 64 and 128 seconds, it will be reduced by 64. The
problem has been there since the year dot apparently. Note that there is an
upper limit of LCY set on the circle time so that the error cannot only occur if
LCY > 64. Corrected in 10.8.13. 10/01/08
24) SATME2 – If the input prior trip matrix contains negative cells (pretty unusual
but it has happened!) then those cells get confused with frozen cells and wind
up being output as a positive value. Another error that has been there forever.
Correct in 10.8.14. 06/02/08.
25) MX – Errors occur when reading in a stacked matrix which contains multiple
levels from a text file of the form: NI NJ Level Cell; i.e., the “zone names” of
the origin and destination, the level and the cell value. Basically the level is
ignored and the matrix created will be square. In particular this affects the
input of stacked matrix under TUBA Format 3. Corrected in 10.8.14. 10/02/08.
26) SATNET – The program crashes with KLUNK = 1 and more than 5 user
classes (NOMADS > 5) with an “end of file” message. Corrected in 10.7.11
and 10.8.15. 18/02/08
27) SATALL – One of the assumptions made in the calculation of total pcu-hrs to
come in later time periods is inconsistent with the assumptions normally made
in skimming average O-D times. The differences occur specifically on links
which: (a) block back and (b) are “spanned” by centroid connectors. The
assumption made in calculating skimmed times is that any trips queued on the
centroid connector will experience the maximum queue on the link in the
future whereas in the calculation of total pcu-hrs the queue to be experienced
is factored by AFTERS (whose default value is 0.5). If AFTERS = 1 the
differences are zero for these particular links but, equally, setting AFTERS = 1
leads to inconsistencies elsewhere. The problem only arises in very highly
congested networks where it is likely to be a few percent at most. The
skimmed times are currently “correct” (in so far as any assumptions made
about what happens to queues in later time periods can be thought of as
17) SATNET – You can get a crash – Divide by Zero in CHECK_IGL_NUC – if you
have a stage length of zero which would otherwise produce Semi-Fatal Error
227. It may be caused by having an incorrect number of stage definition
records / an incorrect value of the number of stages in the Node Record.
Corrected in 10.8.19. 04/08/08.
18) P1X – PMAKE fails when a new link is connected to a traffic signals node.
Corrected in 10.8.19. 22/08/08.
19) SATNET – The use of < or > symbols to set explicit upper and lower limits on
stage green times in network .dat files (see 6.4.13 in the Manual) has several
problems. Firstly, SATNET may crash with certain inputs. Secondly, various
analysis programs such as P1X may fail to read the limits correctly from .ufs
files (although they should be OK in SATALL). Corrected in 10.8.19. 04/09/08.
20) SATNET - Reading in an ascii file of pre-load flows under free format
(PLODFF) implicitly assumes that the data file consists of link records only,
i.e., A-node, B-node, flow. Hence pre-load flows on turns cannot be read and,
if your data records do consist of A,B,C,flow, A,B will be read as a link and C
will be incorrectly read as a flow. Corrected in 10.8.20 by adding a new
&OPTION logical parameter PLFF3. 20/10/09.
21) P1X – Certain semi-fatal errors detected in SATNET, in particular references
to otherwise undefined simulation nodes as a link A-node, may cause a crash
if the node in question is viewed using node graphics. Corrected in 10.8.20.
06/11/08.
22) P1X – Errors occur in node .dat file editing if you try to add more than one
extra speed-flow records at a single node; e.g., if you create new capacity
indices on two links. It tends to overwrite existing records rather than creating
new records. Corrected in 10.8.21 and 10.9. 23/12/08.
23) P1X, SATDB, SATLOOK, etc.– If a network has been through a multiple user
class elastic assignment in which not all user classes are elastic, and in
particular if the last user class was assumed to have a fixed trip matrix, then
the default trip matrix input to P1X etc. will be the reference trip matrix, not the
output trip matrix. (P1X “thinks” that the whole assignment was based on a
fixed trip matrix, not just the final user class. The error is actually in SATALL
which outputs an incorrect “global value of MCGILL = 0 in the .ufs file.) This
affects all options that make use of a trip matrix, for example Select Link
Analysis which will, by default, be based on an incorrect matrix. There is a
simple work-around: redefine the trip matrix to be assigned to be the correct
one. Corrected in 10.8.20 and 10.9.2. 27/12/08
24) P1X. A problem can occur with network editing. Thus if two external simulation
nodes A and B are joined by a link in the buffer network and A, say, is
converted to an internal simulation node then node B should have an extra
arm added from A in the 11111 data file. Currently this does not happen and
semi-fatal errors occur in SATNET with the updated network .dat file.
Corrected in 10.8.21 and 10.9. 28/01/09.
25) P1X. Node selection does not work for nodal data annotated as “boxes” within
the main network plots. Corrected in 10.8.21 and 10.9. 30/01/09.
26) SATLOOK. The batch file procedure SKIMTIME is meant to either include or
exclude 4444 penalty times in the definition of link times depending on
whether a parameter USETP is set T or F in SATLOOK0.DAT (See Section
15.27.7 in the Manual). However penalty times are always excluded
independent of USETP. Note that this problem does not occur with SATTUBA
or with forest skims carried out interactively/via a KEY file. Corrected in
10.8.21 and 10.9. 30/01/09.
27) SATALL/SATSIM. Messages may appear in the .LPT/.LPS files advising that
negative random delays have been calculated. These may be ignored and the
negative values have no effect on the simulation. The problem is due to
rounding errors in the calculations of random delay which may occur if a turn
saturation flow has been assigned an artificially high value such as 99999 but
not with “normal” saturation flows. Corrected in 10.9. 10/02/09.
28) SATALL. It is possible for the simulation to “hang” (i.e., to go into an infinite
loop internally) due to a calculation associated with blocking back. However
the bug has been there for over 20 years and, to the best of our knowledge,
has only “gone off” once. Corrected in 10.9 (N.B. not in 10.8 since the
correction may lead to differences in blocking back, possibly significant if the
blocking back is very “sensitive”.) 10/02/09.
29) SATPIG. The program can start to produce silly outputs and/or crash if a
(relatively) very large output file is produced due to an array dimension being
exceeded. This is most likely to happen with a large number of zones since
the array required increases in proportion to the number of zones squared
whereas the array dimension provided increases more like linearly with
network size. Correct in 10.8.21. 12/02/09.
30) SATALL. Warm starts (WSTART = T) do not work for: (a) Frank-Wolfe
assignment where either the network and/or trip matrix is changed and . UFO
file is used, (b) a single user class, and (c) some fixed flows present (e.g., bus
flows, PASSQ, etc.) Corrected in 10.8.22. 12/03/09.
31) SATNET. The logical &OPTION parameter DIADEM which is meant to permit
UPDATE and/or WSTART = T when there is no file to update does not work
when just UPDATE = T. And possibly not at all. Corrected in 10.8.22. 14/03/09
32) SATALL. It is possible for the program to crash at a very early stage if the
number of user classes (NOMADS) is relatively large. The problem occurs
while writing a list of all &PARAM REAL parameter values to .LPT when an
array dimension is exceeded. The critical maximum value of NOMADS is
probably about 14. The same error can occur in P1X under
Information/&PARAM Lists. Corrected in 10.8.22. 14/03/09.
33) SATCH. An error of long-standing may occur in cordoning a network .dat file if:
(a) the network .dat file set AUTOX = T; (b) a centroid connector of the form Z
A B is defined within the 22222 records where link A,B is inside the cordon;
and (c) A (or B) is an external simulation node which has not been explicitly
set within 11111 but only defined by AUTOX. I.e., A had been defined only as
an in-bound arm at B and then AUTOX assumes that it must be an external
simulation node. The error is that A will not now be identified by SATCH as a
node inside the cordon and the centroid connector will not be included in the
output cordoned .dat file. Warning messages (though not highly explicit)
appear in the .LPC file; search for “BOSS”. Corrected in 10.8.22 and 10.9.
19/03/09.
34) SATLOOK. Another long-standing error: the network summary statistics (e.g.,
total pcu-hrs/hr) comparing several different network files give certain
misleading statistics when the networks have been run with different values of
LTP. Basically the program assumes that the value of LTP for network 1
applies to all networks so that when converting rates to absolute totals or vice
versa (e.g., this is done for fuel consumption) errors result. Corrected in 10.9.
26/03/09.
35) SATPIJA. The combination of choosing IVC > 0 and ALLIJ = T leads to
nonsensical results – no Pija matches are identified and any subsequent runs
of SATME2 will not do anything. Generally speaking there is very little reason
to set ALLIJ = T so the obvious correction is to set it F. Corrected in 10.8.22.
25/04/09.
36) SATNET. Using the CLICKS option with the data defined in an external .VSD
file (i.e., disaggregated by vehicle class and capacity index) fails if the number
of vehicle classes in the network exceeds 5. This is now a semi-fatal (NAFF)
error. Corrected in 10.8.22 and 10.9. 16/05/09
37) SATSTAT. Erroneous reporting of User Class 1 summary statistics rather
than correct values for ALL User Classes combined. Corrected in 10.8.22.
25/06/09
38) SATCOBA. The user-class flows output from a single input network with MUC
= T are output in the wrong order and (for two-way links) with directional flows
only. Corrected in 10.8.22 and 10.9.8. 26/06/09.
39) SATSTAT. Limited reporting undertaken for simulation only networks.
Corrected in SATSTAT V3.1 (as part of later 10.8.22 releases and 10.9.10.
27/07/09
40) SATALL. The program may hang under multiple user class elastic assignment
in a network which makes use of both CLICKS and CLIMAX. Corrected in
10.8.23 and 10.9.13. 01/11/09.
41) SATALL. The multicore version does work for networks which include either
elastic assignment and/or weaving movements and no warning messages
appear. This has been corrected in 10.9 such that attempting either of the
above assignment methods with MULTIC = T results in a semi-fatal error.
Corrected in 10.9.16. 01/05/10.
28) SATLOOK: skimming forests for, e.g., time using the interactive options for
OBA plus multiple user classes fails in that it only skims the first user class.
However batch procedures such as skimtime work perfectly well in these
situations. Corrected in 10.9.22. 06/12/10.
29) MX: The new option to print all zone names from within the Files menu has
been assigned the fixed option number 9 which may conflict with the option
number to open the 9th input matrix. It has therefore been changed in 10.9.22
to option 14. 06/12/10.
30) Offset optimisation (SATOFF or SATALL with SATOFF = T) fails (possibly
crashes) if any signalised nodes have cycle times in excess of 256 seconds.
Corrected in 10.9.22. 13/01/11.
31) SATSUMA is likely to crash with the most recent .ufs files. Corrected in
10.9.23 (unfortunately just too late for the release of 10.9.22). 22/01/11.
32) SATPIJA may run extremely slowly under OBA for user classes which (a)
have (relatively) high numbers and (b) may have a large proportion of
“missing” origins (i.e., with zero trips which have therefore not been analysed
for best routes within OBA). The problem is due to having to rewind and reread
the .UFO file each time such an origin is encountered. N.B. There are no
problems with the output .UFP file, just the time it takes to correct it. Corrected
in 10.9.23. 21/01/11.
33) SATALL: The use of the offset optimiser SATOFF = T coupled with the use of
a fixed reference offset node MANOFF may (but not necessarily) cause the
program to hang if the signalised nodes do not all have a common cycle time.
Corrected in 10.9.23. 30/01/11.
34) P1X: The complete list of link variables that may be annotated and which is
displayed as a “selection box” is not long enough to hold the maximum set of
variables which occurs when there 3 or more user classes, fixed flows, bus
flows, etc. etc. Thus certain variables such as BBF may “fall off the end”. The
problem does not occur with sub-lists such as flows, times etc. etc. Corrected
in 10.9.23. 30/01/11.
35) SATALL may (possibly) give seriously incorrect results if the input .UFN file
was created by a later release version of SATNET; i.e., the two programs are
not backwards compatible. In particular 10.9.17 SATALL does not work
properly with .UFN files produced by 10.9.23 SATNET. Previously this was a
non-fatal error 127 in SATALL but it has now been upgraded to a Fatal Error.
Corrected. 31/01/11.
36) SATALL will not output a correct .UFC file with UFC109 = T and elastic
assignment. Corrected in 10.9.23. 14/02/11.
37) P1X The banner menu may temporarily disappear during Node Graphics
Editing if the mouse is clicked “incorrectly”, i.e., not on a valid item in the
banner or a valid “box” within the node plot. Running the mouse over where
the banner should be will reveal the available option lines but none of the
“supplementary” lines. Corrected in 10.9.23. 15/02/11.
38) SATNET. The FILERL option to read in an existing .ERL file is likely to fail if
the file has had an extra “title line” inserted at the top of the file. Since the title
line is now always included on output .ERL files this means that the program
will only work if (a) the title line is deleted or (b) the .ERL file is from a much
earlier version of SATNET. Corrected in 10.9.23. 25/02/11.
39) P1X. The option within PMAKE to “split” a link does not work if the link is
between an external and an internal simulation node. A long-standing problem.
Corrected in 10.9.23. 05/03/11.
40) P1X. There may be certain problems in deleting multiple simulation zones from
the 22222 data set under Network Editing / PMAKE. A long-standing problem.
Corrected in 10.9.23. 05/03/11.
41) P1X. Dumping .dat files from .ufs files may run into problems in the 88888
dumped records with a $ toll charge multiplier for a KNOBS record which is
numerically greater than 10.00 since the field gets dumped as $****. Corrected
in 10.9.23. 07/03/11.
42) P1X. A “glitch” has been corrected whereby, at present, if you select an option
from a pull-down menu from the Window Bar and that option “sits on top of”
one of the green arrows then the arrow is obeyed rather than the pull down
option. The pull down menu item now takes precedence. Corrected in 10.9.24.
18/03/11.
43) SATALL. The program may crash under MUC OBA with a Divide By Zero
error (which may actually appear on the screen as something else) if one of
the user classes has zero trips in total in the stacked .UFM matrix. Corrected
in 10.9.23. 15/03/11.
44) SATALL. A modelling “glitch” has been detected in the modelling of flared
lanes at priority junctions whereby, if the queue in either the flared lane or the
lane from which it originates is near the flare length, then it is possible for two
apparently stable solutions to exist which, inter alia, can badly affect
simulation-assignment convergence. Basically with an identical set of flows if
the simulation assumes initially that the lane is “blocking back” (queue
exceeds flare) then the outcome is that it does but if the initial assumption is
that it doesn’t then the outcome is that it doesn’t. A small change in flows may
cause the model to flip-flop between the two alternative solutions. Corrected in
10.9.23. 16/03/11.
45) P1X. The program will not run for buffer only networks (it reports an error for a
missing DA code 1993). Corrected in 10.9.23. 12/04/11.
46) PMAKE. Deleting nodes and/or links where there were comment cards before
the initial node record in the .dat file may lead to errors. Corrected in 10.9.24.
20/05/11.
47) SATCH. It is possible that if the original network contained very high 4-digit
zone numbers, e.g., up to 9901, then the newly created zone numbers at
cordon points will be 5-digit starting with 10001. While 5-digit zones may be
OK with simulation 22222 connectors, they do create problems with 33333
buffer networks if DUTCH = F. Detected as an error in 10.9.24. 20/05/11.
48) MX. When building stacked matrices from “one record per cell” input files
which contain: (a) sequential O-D numbers, (b) not their names, (c) the level
and (d) the cell value the level values are in fact ignored. Thus MX interprets
the sequential origin number as being the “stacked” value; i.e., if a record
refers to sequential origin, say, 5 cell in level 2 MX expects the input origin to
be Nzones + 5, not a sequential number in the range 1 to Nzones. Whether
level is input as 1 or 2 is irrelevant. This is probably counter-intuitive although it
is the rule that is adopted when a ufm matrix is dumped to text with one record
per cell. The simplest work-around is to keep the level defined but interpret the
O-D inputs as zone “names” in the range 1 to Nzones rather than sequential,
in which case the level is applied correctly. This is a long-standing problem, no
change has yet been applied. 16/06/11.
49) P1X. Select Link Analysis fails in release 10.9.24 if two or more networks are
currently defined. The problem is that a box that requires a Yes/No return after
a link has been defined does not have enough space to include all the printed
data so the Yes/No boxes don’t appear and the program crashes. Corrected in
10.9.25. 17/06/11. N.B. A corrected P1B exe will be released.
50) P1X. The program crashes with a SATURN Fatal Error 29 when performing a
Joy Ride if the route goes through a banned turn. Corrected in 10.9.25.
23/06/11.
51) P1X. Editing 55555 network co-ordinates runs into a problem, essentially an
infinite loop trying to create an infinitely big data file, if the 55555 data includes
an old $include record commented out as *$INCLUDE (i.e., with * (correctly) in
column 1). So if you need to comment out a $INCLUDE record use, say, **
instead of *, delete it entirely, etc. The same problem may possibly, but not
necessarily, occur in other data segments as well. This is a long standing
problem corrected in 10.9.25. 24/06/11.
52) P1X. Further to 51) P1X editing of 55555 records may also get stuck in an
infinite loop if $INCLUDE is entered in lower case, i.e., $include. So use upper
case $INCLUDE throughout – although the problem is probably only related to
55555 co-ordinate inputs. This is also a long standing problem corrected in
10.9.25. 24/06/11.
53) MX. When using a network .ufs file to rename, say, sequential row names in a
stacked (multiple level) .ufm matrix with, say, non-sequential zone names from
the network the transformation is only applied to the base level, not the higher
levels. In practical terms this may make very little difference, e.g., it does not
affect the assignment, but in some circumstances it might. It has therefore
been corrected in 11.1. A long standing error. See 10.3.3. 01/07/11.
54) P1X. Editing signal settings at simulation nodes does not work if applied after
extra lines have been added to the main body of the node .dat file by either
screen editing (add comment lines) or by adding second link records (e.g., by
defining flares). Basically internal pointers are not correctly updated. You may
however update signals prior to adding extra records. Corrected in 10.9.25.
17/07/11.
55) P1X. The 10.9.24 as-supplied preferences file P1X0.dat may contain a
misleading value for the parameter XYFORM = ‘2F10.1’. Ideally this should be
the same value as that used by SATNET when building networks, for which
the default is 2I5 although, in terms of values to be recommended as defaults,
2F10.1 is preferable. If the values of XYFORM differ between that used to
build a network and that used by default within P1X then problem arise in
editing X,Y co-ordinates and dumping them to a new .dat file in that the new
55555 entries will be in a different format I(i.e., 2F10.1) from the old (e.g.,2I5)
The simplest solution is simply to edit P1X0.DAT and replace 2F10.1 by a a
more appropriate local value. 17/07/11.
56) P1X. Joy rides which start at an external “spigot” node (i.e., a node which has
only one arm leading to a mid-link node plus one or more zone connectors)
and for which the second node selected is the mid-link node will fail to identify
that first link correctly. Instead the joy ride finds the second node correctly but
then adds an illegal U-turn at an adjacent node so that it creates three links
rather than one. There is a simple workaround which is to define the second
node further away than the mid-link node, in which case the joy ride will
correctly interpolate through second node. Corrected in 10.9.25. 25/07/11.
57) SATLOOK. The option to print turning flows at buffer nodes does not work at
all in release 10.9.24 (and possibly some slightly earlier releases). The
numbers printed are essentially random, probably zeros. Corrected in 10.9.25.
25/07/11.
58) P1X/SATDB. The input of actual link flows (e.g., user class flows based on the
3808 convention) from alternative networks may assign an incorrect data
column title, probably “Queue Reduction Factor”. This only affects the title, not
the content of the data read in. Corrected in 10.9.25. 02/08/11.
59) SATNET. The default value of NITA_S, documented as 99 in the Manual, is
actually 25. Upgraded to 99 in release 11.1 and in 10.9.25. 05/08/11.
60) SATALL. The combination of QUIET and REFFUB = T gives rise to a fatal
error of writing to an unopened file. Corrected in 10.9.25. 05/08/11.
61) SATLOOK. Incorrect skim matrices are produced with SKIM_TIME,
SKIM_DIST, SKIM_PEN and/or SKIM_TOLL batch files when both SPIDER
and Multi-core are used together. Skim matrices from SKIM_ALL.bat are not
affected. Corrected in 10.9.25. 13/08/11. N.B. Also available in SATLOOK
Beta within 10.9.24 as released 08/11.
62) SATNET. Spurious error messages may be generated for links which have
had flared lanes – either offside or nearside – coded. More specifically
Warning 91, Serious Warning 130 and Non-Fatal Error 226, all which involve
various levels of incompatibility between the lane allocation and the stage
definitions per turning movement, do not take account of the fact that the flared
lanes effectively provide an extra lane for certain turns which “corrects” the
incompatibility. Thus there is no problem in the simulation modelling of these
configuration and the errors should therefore be ignored. Or, alternatively,
suppressed by setting, e.g., ERRYES(91) = F (although this may also
suppress genuine examples of Warning 91. Corrected in 10.9.25. 25/08/11.
63) SATNET. Similarly Serious Warning 105 – a filter movement at signals should
have the exclusive use of lane 1 – is also spurious if a filter lane has been
coded. Since this is normally upgraded to a Semi-Fatal NAFF Error under
5109341 / Mar 13 E-35
11_2_05_App E.docx
SATURN MANUAL (V11.2)
WRIGHT = T it is slightly more annoying than 62) above but again may be
suppressed by setting ERRYES(105) = F. Corrected in 10.9.25. 25/08/11.
64) P1X. Spurious error messages as reported above under notes 62) and 63) are
also reported within node graphics. Corrections here are only included in
release 11.1. 25/08/11
65) SATPIJA_MC. The listing of error messages as generated by the first (partial)
run of SATPIJA is not included within the combined output .UFP file nor is it
printed within the final output .LPJ file. Corrected in 10.9.25 and 11.1.2.
05/09/11.
66) SATALL. If an origin has only one possible connected destination and that OD
pair has positive trips in the trip matrix and SPIDER = T then those trips are
not assigned. With SPIDER = F it is not a problem. Corrected in 10.9.25 and
11.1. 22/09/11.
67) P1X. Mid-link simulation capacities in excess of 9,999 are not currently
annotated (or are annotated as zero). They should, however, appear correctly
in print-outs of node data. Corrected in 11.1.2. 25/09/11.
68) SATNET. Similar to 67, input mid-link capacities in excess of 9,999 may, in
certain circumstances, be treated, effectively, as infinity and therefore printed
as either zero or blank. They should, however, be correctly recorded within the
.UFN file and therefore correctly used within all subsequent stages (e.g., within
the simulation) although it is probably worth checking the print-outs of node
data in P1X to see that they have been correctly recorded. Corrected in 11.1.2.
25/09/11.
69) P1X. A very, very longstanding problem. If a simulation zone Z has two or
more centroid connectors to the same simulation node A (this happens if Z has
connections to links A-B, A-C...) then each of these connectors becomes a
separate link in the map network. These are then plotted directly on top of one
another which, visually, is not a problem. However, if one tries to annotate,
say, flows the centroid connectors will display only the flow from a single
connector (which is clearly less than the total) or will display them all but over-
written. Corrected in 11.1.2 such that the total flow from all connectors is now
annotated. 28/09/11.
70) SATALL. The program may crash with an Illegal Operation (Divide by zero)
message in FLODEL in Simlib if a link with a flare coded (either nearside or
offside) has two additional turns in shared lanes which have both been
assigned zero flows. Corrected in 10.9.26 and 11.1.2. 02/10/11.
71) SATALL. If an offside flared lane at signals with an X-turn has its green times
in a totally separate and non-overlapping stage from the straight ahead traffic
then the resulting delays and capacities may be unreliable. N.B. This is also an
example of Non Fatal Error 226. Corrected in 11.1.3. 24/10/11.
72) MXM5. The matrix editing procedures may give incorrect results if the total
number of “transformations” (e,g., converting zones into sub-zones) exceeds
the maximum number of matrix zones permitted. Corrected in 11.1.3.
27/10/11.
73) P1X/PMAKE. Editing either the 44444 (penalised links) or 77777 (counts) data
sets causes a crash if the total number of records in either segment (including
those in $INCLUDE files) exceeds 399. See 11.9.6 and 11.9.9. Corrected in
11.1.4 (in the sense that it no longer crashes but there is now an upper limit on
the number of 444 or 777 records which can be text edited). 26/11/11.
74) SKIM_ALL (10.9.24). There appears to be a somewhat intermittent error with
the 10.9.24 release of SATLOOK used in matrix skims via SKIM_ALL which is
manifested by very large zone numbers being included on the output .UFM
files for certain rows (normally the lowest numbered rows). The problem
appears to be associated with the use of multi-core and/or Spider. The root
cause of the problem has not been identified but it does appear to have been
corrected in the 10.9.25 release of SATLOOKB in August 2011 so users are
recommended to replace their 10.9.24 $SATLOOK.EXE by 10.9.25
$SATLOOKB.exe. The problem is, however, relatively benign in that it does
not appear to affect any of the output skimmed cell values, only the zone
numbers which are only included for information purposes. 20/11/2011.
75) SATTUBA. If the network file to be skimmed via SATTUBA contains one or
more time penalties on links (e.g., as input under 44444) then, instead of
creating a separate .txt file of skimmed penalties, the penalties are included as
part of the distance skimmed .txt files. Thus the distance .txt file contains twice
the number of required origin rows with the 2nd, 4th, 6th, ... rows containing time
penalties skims ( which are mostly zeros). This may be corrected by setting
the parameter NUSKIM = F in the SATLOOK0.DAT preferences file. Note that
the same problem does not occur if skims are output as .ufm files or if there
are no time penalties. Corrected in 11.1.7. 09/01/2012.
E. SATURN Bugs
E.7 SATURN 11.1 Bugs
Date of last update: 1st March 2013
The following “problems” have been identified in SATURN Version 11.1 as
released in April 2012 and/or in later 11.1 releases.
Some of these (potentially) may pre-date 11.1 and would also have been present
in 10.9 or even much earlier releases.
1) P1X – SLA analyses using spider-based options may “double-count” certain
O-D movements through the selected link(s). The problem arises if the origin is
within a single aggregate link of the selected link; i.e., there is an aggregate
link whose A-node is the origin and which includes the selected link. There is
no problem if the origin and the selected link are well separated. N.B. The
problem applies primarily to total flows under multiple user class assignment;
individual UC flows are less affected. The problem does not occur if the control
parameter USESPI = F as may be set in P1X0.DAT or if the SPIDER option is
toggled off in the Analysis Menu. Corrected in 11.1.10. 23/05/12.
2) SATLOOK/P1X – The SATLOOK option to print total simulation statistics as
calculated within the program (Main menu option 4, then 2) does not work with
.UFT files representing multiple time period runs. Corrected in 11.1.11.
04/07/12.
3) SATALL – Using the Fixed Cost Flow (FCF) option with a network which
contains one or more Q-turns does not properly simulate those Q-turns witjin
the FCF network. In effect the capacity of the Q-turn becomes equal to the
point at which the Q delays start to kick in, i.e., 75% of the saturation flow
rather than the saturation flow. Corrected in 11.1.11. 15/07/12.
4) SATALL – Weaving segments on motorways containing more than one link
may give unreliable results with SPIDER = T. Corrected in 11.1.11. 15/07/12.
5) UFMSTACK – If the control file which lists the filenames of the matrices to be
stacked contains a blank line at the bottom that line is read as though it were
an additional filename and the procedure terminates with an error message
that (blank).ufm cannot be found. Suitable checks added in 11.1.11. 18/07/12.
6) SATALL – Various problems with the program crashing due to overflow have
occurred in a very small number of extreme situations and have been
corrected. They are all long-standing problems dating back to 10.9 and beyond
and – normally! – should have negligible effect on network results. 24/07/12.
7) SATLOOK/P1X – The routine to print out simulation+buffer summary statistics
will fail for .UFT files for greater than 5 multiple time periods. A long standing
problem which also occurred with 10.9.24 and probably for some time
previously. Corrected in 11.1.11 and also 11.1.09B. 06/08/12.
8) SATALL – The program may potentially crash while updating signal timings
(SIGOPT = T) if MYTVV = 2 or, possibly, 4. In addition the crashes only seem
to occur if certain arms have zero flow. The problems are very long standing.
Corrected in 11.1.12 and also 11.1.09b. 23/08/12.
9) SATALL – Crashes may occur relatively infrequently with FCF networks in a
subroutine SET_ESTUARY_FLOWS. Corrected in 11.1.12 and also 11.1.09b.
23/08/12.
10) SATPIJA – Crashes may occur very infrequently due to problems in the .UFC
files which were in turn created within SATALL whereby extremely low delays
might be evaluated at extremely low flows creating an underflow problem
which (bizarrely) is only manifested by times dumped to .UFC files. The
problem has been corrected in version 11.1.13 (aka 11.2) by introducing link-
dependent safeguards for very low flows/times. 06/10/12.
11) P1X – The program may stop unexpectedly during Select Link Analysis of
multiple nodes if the nodes include certain combinations of buffer and
simulation nodes. Corrected in 11.1.13. 06/10/12.
12) SATALL (RESTART) – The command line option RESTART does not work
with OBA (although it does with Frank-Wolfe). This has not yet been fixed.
Users are recommended to use a Warm Start option within SATNET.
10/10/12.
13) SATALL – UFO files produced by SATALL by OBA with SPIDER = T are
generally unusable by post-assignment analysis options such as SLA in P1X,
SATPIJA, etc. etc. Corrected in 11.1.13. 10/10/12.
14) MX – If a .GIS file is being used and which contains a 88888 section of co-
ordinates the program will potentially terminate with a “not enough RAM”
message if the matrix is stacked and the total number of stacked matrix rows
exceeds the normal limits on the maximum number of zones. Corrected in
11.1.14. 24/10/12.
15) SATUFO_MC may create a “truncated” .UFO file during its final stage when it
“merges” together the individual UC .UFO files into a single file if the network
is too large (in terms of the number of zones). Corrected in 11.2.4 – although
the 11.2 versions of SATUFO are now multi-core enabled so that
SATUFO_MC is effectively redundant. 01/03/13.
Appendix F - Unused
F. Unused
F.1 Version Control
γ pqr = ∏ α pa
a⊆r
Route flows are determined by the product of OD flow and route proportion, that
is:
h pqr = T pq ⋅ γ pqr
It can be shown (Bar-Gera, 2002; eq. 14) that if link a goes from node i to node j,
and if the total flow from origin p to node j is g pj , then the total flow from origin p
that arrive to node j through link a is
f pa = α pa ⋅ g pj
in that respect α pa is indeed the proportion of flow on approach a to node j for
origin p, as implied from the name of these variables.
The representation of the solution by origin-based approach proportions allows
storing a complete description of the route flows very efficiently. The efficiency of
the representation is further enhanced using the fact that at most nodes one link
receives approach proportion value of one, while the value of all other links ending
at the same node is zero. The availability of route flows can be useful for solution
analysis. It is also useful in searching for the equilibrium solution. This is a major
difference from many alternative solution procedures, including the most common
algorithm of Frank and Wolfe, which store only total link flows during the iterative
process.
A key point in this algorithm is that for every origin an a-cyclic restricting
subnetwork is chosen, A p , such that approach proportions for origin p of links that
are not included in A p are restricted to zero. Using the equation for route
proportions it can be seen that under these restrictions, for every origin, only
routes that are limited to the links in its restricted subnetwork can be used. In
particular, since A p is a-cyclic, meaning that it does not contain a directed cycle of
links, any cyclic route must contain at least one link that does not belong to A p ,
and hence the flow along any cyclic route must be zero. It is important to note that
the restriction to a-cyclic subnetworks, does exclude many solutions that do not
use cyclic routes, and are usually considered legitimate. It can be shown (for
example Bar-Gera, 2002; Lemma 3) that there is always an equilibrium solution
that is a-cyclic by origin. Therefore, this restriction does not prevent the algorithm
from converging to the true equilibrium solution.
The restriction to solutions that are a-cyclic by origin has several important
advantages. First, the simple route flow interpretation presented above is, in fact,
valid only for solutions that are a-cyclic by origin. Second, a-cyclic subnetworks
allow a definition of a topological order of the nodes, which is an origin-specific
ordering of the nodes, such that every link in the restricting subnetwork goes from
a node of lower topological order to a node of higher topological order. Most
computations in the proposed algorithm are done in a single pass over the nodes,
either in ascending or descending topological order. The time required by such
computations is a linear function of the number of links in the network. This
computational efficiency is the main reason for restricting to a-cyclic solutions.
In solving the traffic assignment problem, the algorithm starts with trees of
minimum cost routes as restricting subnetworks, leading to an all-or-nothing
assignment. Then, the algorithm considers all origins in a sequential order. For
each origin the restricting subnetwork is updated, and the origin-based approach
proportions are adjusted within the given restricting subnetwork.
INITIALIZATION:
for every origin p
Let A p be a tree of minimum cost routes under free flow conditions from p
MAIN LOOP:
for n=1 to number of main iterations
for every origin p
update restricting subnetwork A p
REFERENCES
Bar-Gera, H. (2002) Origin-Based Algorithm for the Traffic Assignment Problem.
Transportation Science, 36, 398-417.
Bar-Gera, H. and Boyce, D. (2003) Origin-based algorithms for combined travel
forecasting models, Transportation Research 37B (5), pp. 405-422, 2003.
Boyce, D. and Bar-Gera, H. (2003) Validation of urban travel forecasting models
combining origin-destination, mode and route choices, Journal of Regional
Science, 43 (2003): 517-540.
Kupsizewska, D and Van Vliet, D. (1999) UK 101 uses for path-based
assignment, European Transport Conference 1999
Xiang, Y, Wright, I, Van Vliet, D, Bar-Gera, H. and Boyce, D (2009) A new
implementation of origin-based assignment algorithm in SATURN, European
Transport Conference 2009
ABSTRACT
Traditionally traffic assignment models are based on flows per link as opposed to
flows per individual O-D pair although, in principle, the latter is the basic building
block. The basic issue is the computer RAM required. This paper proposes a set
of linked traffic assignment algorithms based on path flows which, it is shown have
many desirable properties and are computationally feasible with current-day PC's.
Thus they enable faster convergence rates and more accurate estimates of small
changes in flows to be achieved via "perturbation" techniques. They are also very
useful in situations where the trip matrix to be assigned is variable, not fixed, since
a good starting point for an assignment with an updated trip matrix may be
generated by factoring path flows pro rata (which is not possible with pure link
flows). This occurs with "elastic" assignment models linked to, e.g., distribution,
modal split or time-period choice models ("peak-spreading"). In such cases more
efficient algorithms may be developed. Their efficiency is demonstrated using a
set of real-life networks.
Finally, path flows easily and quickly provide useful information for the analyses of
traffic flow patterns, for example to determine which precise trips are on a
particular link or which paths a particular O-D pair uses. They also provide
essential linkages between aggregate assignment models and more detailed
vehicle-by-vehicle simulation models.
1. INTRODUCTION
Traditionally traffic assignment models based on the fundamental principle of
Wardrop Equilibrium have almost always used algorithms whose basic building
block is the set of flows on links. Alternatives do exist; algorithms may be based
explicitly on origin-destination path flows and several examples have been
proposed, notably in the formative years of algorithm development before the
Frank-Wolfe algorithm and variants thereto became established as the standard
technique. (Note that although Frank-Wolfe calculates O-D paths it does not
explicitly store flows on individual paths since it can function perfectly happily with
flows defined at the more aggregate link-flow level.)
The main pragmatic reason why path-based algorithms have not been widely
used is the fact that they require considerably more computer memory (RAM) than
link-based algorithms. Or, more to the point, they have required more memory
than has been available on standard computers for the sort of commonly-used
network dimensions. However to a large extent that problem has become less
critical with the phenomenal growth of the RAM available as standard in current-
day PCs. This paper therefore considers a number of alternative algorithms
related to Frank-Wolfe but which rely on the availability of path flow information.
We shall demonstrate that these new algorithms can be considerably more
efficient than link-based algorithms, both in terms of obtaining solutions and in
terms of analysing the solution once obtained.
Section 2 defines the problem, Section 3 describes a family of algorithms which
rely on the availability of path flows, Section 4 examines their performance in real-
life networks and Section 5 considers their potential applications for post-
assignment analysis. Finally Section 6 counts the uses and attempts to come to
101!
The descriptions are of necessity brief; longer explanations and full results are
given in a series of technical notes available on request from the authors.
subject to the assignment being "feasible" where feasibility is most easily defined
in terms of path flows:
Tpij ≥ 0 (3b)
With link flows the feasibility conditions are more implicit than explicit. Ensuring
that solutions are feasible is a critical issue in designing algorithms and one where
path-based algorithms have inherent advantages over link-based.
The standard algorithm used to solve for Wardrop Equilibrium is the Frank-Wolfe
algorithm, at whose heart is an iterative loop in which the current solution is
improved by generating a "descent direction" and moving an optimum distance λ
which minimises Z in that direction. The direction is set by calculating the current
minimum cost routes for each origin-destination pair ij, denoted pij*, and assigning
all ij trips to those routes, creating both a new set of path flows and a
corresponding set of link flows.
In terms of link flows the optimum solution may be written:
where V a (n) is the link flow on iteration n and F a (n) the all-or-nothing flow. In terms
of path flows we have:
n
= (1 − λPpij )Tpij pij ≠ pij*
( n +1)
Tpij (6)
(n ) n
= Tpij + ∑ λPqijTqij pij = pij *
q≠p
may not be directly affected by the network changes. Indeed they would indicate
differences even if the after network were completely unchanged.
We therefore need a technique which will, in effect, "freeze" the before solution
and allow only the "true" changes to occur in the after network. In theory this
could be done by reducing the cost on the more expensive routes to make them
equal to the minima, thus converting a non Wardrop equilibrium solution into an
equilibrium solution. An alternative and very elegant solution to this problem has
been recently provided in a paper by Hagstrom (1998) in which she showed how,
by associating "tolls" with links, the costs on used paths could be increased to
equal that on the maximum cost used path (as opposed to bringing all path costs
down to the minimum using reduced costs; the end result is the same).
However these tolls have to be "commodity specific", where a commodity is, e.g.,
flow for a particular O-D pair, or all flows from one origin or to one destination.
Hence each link would potentially need one toll per commodity which is fine in
theory but leads to practical problems of computer storage in large networks. A
further requirement is that the commodity flows must not form "cycles" in the
network, i.e. a series of links such as A-B, B-C, and C-A that form a closed loop or
cycle.
To make the algorithm practical it is essential to be able to define the commodities
at the zonal level (i.e. by origin or by destination), not the O-D level, and to
guarantee the absence of cycles per zone. This requires the development of two
new algorithmic techniques, the first to remove cycles and the second to calculate
the tolls (plus, strictly speaking, a third to do an assignment with commodity-
specific tolls in place but this, compared to the first two, is relatively simple).
4. RESULTS
This section evaluates the algorithms described in Section 3 via a series of tests
on real-life networks whose dimensions are listed in Table 1.
Table 1: Network Dimensions
The objective of the tests from 4.2 onwards is simply to see whether the new
algorithms can obtain the "correct" answer - or, more accurately, the correct
answer within specified error limits - to assignment problems using either fewer
iterations or less cpu time than conventional algorithms. As a general rule the
"answer" is assumed to be the total cost of vehicle travel within the network (Σ V a
C a ) such that differences between two networks may be interpreted as scheme
benefits.
of the network dimensions. On this reckoning a 500 zone network with 27,574
used cells, 11% occupancy, would need around 12 Mbytes).
We may also note that the programs have not been written with the explicit
objective of minimising RAM (particularly since it was not a problem); reducing cpu
was a greater concern. There remain a number of "tricks" which could be invoked
to reduce RAM if required.
Overall we conclude that while the methods described here may not yet be
feasible for the world's largest networks on the world's normal computers they are
certainly feasible for the majority of "normal" networks.
where T ij o and C ij o are the base year matrix and resulting cost matrix respectively
and C ij is the cost matrix consistent with T ij . The factor 1.6 represents an
exogenous 60% growth from the base year. The specific convergence of the
algorithms with respect to the trip matrix is given by:
the relative average absolute difference between the estimated road trip matrix
and the demand matrix resulting from the current minimum costs. The algorithms
tested involved two "half" steps per normal iteration, one with both the trip matrix
and the (all-or-nothing) path flows adjusted and one with the path flow proportions
fixed and the matrix variable (basically method 2 in section 3.4).
Broadly speaking the modified technique gave consistently improved RAAD
values although the improvements might be best described as "clear" rather than
spectacular. For example after 25 iterations the basic and improved algorithm
gave RAAD values of 2.14% and 1.49%; after 399 the figures were 0.12% and
0.06%.
and allow convergence to proceed unobstructed to near zero levels. More work
needed!
Experiments with other strategies were inconclusive. There was no clear-cut
"pecking order" amongst the different strategies in that the technique that worked
best in one network might not be best in a different network. This suggests that a
"mixed strategy" in which the different techniques were all used at different
intervals might be safest in terms of removing cycles.
Thus exhaustive before and after assignments - "∞" iterations - show that the
capacity reduction increases costs by 3.188. If we were to stop the before
assignment after 9 iterations (with cleaning to remove cycles), calculate tolls and
carry those tolls through to one perturbation iteration of the after network the cost
increase is 3.233 from 339.859 to 343.092 (excluding toll costs), an "error" of
1.4% from 3.188. Had we run 10 before iterations the difference would be 3.152,
a change of only 0.081 from 9 iterations even though the individual totals
themselves were changing by around 5.0. Comparing 20 and 21 before iterations
we find a constant error of 0.16% despite a change in the individual cost
components of 1.073.
We conclude that the differences obtained by this method are far more stable, by
around 2 orders of magnitude, than the individual totals. These excellent results
of course need further confirmation from other networks and other "schemes" as
well as examining how the results change over more than one after perturbation.
Table 2: Total Costs; Headingley; One extra tolled iteration
5. POST-ASSIGNMENT ANALYSIS
While the most important function of an assignment is to obtain estimates of the
link flows and costs it is very often equally important to be able to analyse in detail
the pattern of detailed path flows used to obtain these link flows. Examples
include:
1) Examining O-D routes to "validate" the assignment based on observed
routing patterns.
2) "Select link assignment"; i.e. which O-D movements have been assigned to
a particular link (or set of links as in a screen line or along a new road); also
used for validation.
3) "Cordoning" a network to obtain a trip matrix for a sub-area.
4) "P ija " data sets as used in matrix updates.
5) Transferring assignment information from "macroscopic" models to
"microscopic" models (e.g. from SATURN to DRACULA).
6) "Skimming"; e.g. obtaining the average O-D travel distance or time along
routes generated by minimum cost assignment.
7) Differentiating between "cold" and "warm" engines based on distance from
their origins in order to obtain emission estimates.
It is of course possible to obtain all the information above using conventional
models as long as it is possible to re-construct all the trees and the final
proportions by iteration used in the assignment. For example SATURN (Van Vliet
and Hall, 1998) does this by saving the costs used in each assignment iteration.
However this method is neither particularly efficient in terms of memory
(particularly if a large number of iterations are used to obtain accurate solutions)
or cpu time (since the analysis can take virtually as long as the original
assignment).
On the other hand with path flows stored a priori calculations such as those above
may be done perfectly naturally with minimal programming complexity and
efficient cpu. Moreover the methodology will be independent of the exact
algorithm used to generate the path flows; it will work equally well, for example,
with Social Pressure algorithms where each O-D pair will have its own set of path-
flow proportions and with Frank-Wolfe where the λ-generated proportions are the
same over all O-D pairs.
6. CONCLUSIONS
The most important outcome from this research has been to demonstrate the
feasibility of basing traffic assignment algorithms for realistic networks on path
flows rather than link flows. A number of the benefits of so doing have been
demonstrated; more will no doubt emerge in the future.
In terms of the benefits already established the most important has been the
capability to estimate the impact of small changes to either the network properties
or the trip matrix using perturbation techniques requiring a small number of
iterations - or even a single iteration. An improved version of the basic elastic
assignment algorithm has been devised and tested; further enhancements are
likely.
The next stage in the process - as far as the second author is concerned - is to
fully implement path-based algorithms within SATURN where, it is envisaged, they
will ultimately become the standard. Their role within the assignment process is
already operational; they are currently being implemented within the analysis
functions of SATURN where path flow analyses as described in Section 5 are
routinely carried out.
The other main strand of application in the near future is likely to be within the
area of Variable Demand Modelling linked to traffic assignment (Bates et al,
1999). A DETR sponsored project is investigating the practicality of introducing
more complex demand models (as opposed to the simpler elasticity models)
which will require a far greater number of repeated assignments within "outer
loops" of a complex demand model. It is our view that the best way to make these
complex models computationally feasible is to have assignment models which can
be run in a "perturbation mode" which, in turn, requires path flows.
ACKNOWLEDGEMENTS
We gratefully acknowledge a grant from EPSRC which supported this research. It
is also a pleasure to acknowledge many fruitful discussions over the years - and
ideas pinched from! - Mike Smith, Helmut Schittenhelm, Michael Patriksson,
Helena Cybis, Judith Wang, Sameiro Carvalho, Mike Hall and Jane Hagstrom.
BIBLIOGRAPHY
Bates, J.J., Coombe, D., Porter, S. and Van Vliet, D. (1999) Allowing for Variable
Demand in Highway Scheme Assessment. European Transport Conference.
Cambridge.
Dial, R.B. (1972) A Probabilistic Multipath Algorithm which Obviates Path
Enumeration. Transportation Research, 5, pp.83-111.
Hagstrom, J.N. (1998) Computing Tolls and Checking Equilibrium for Traffic
Flows, Submitted to Transportation Science.
Hall, M.D., Fashole-Luke, T., Van Vliet, D. and Watling, D.P. (1992) Demand
Responsive Assignment in SATURN. Proceedings of the 20th PTRC Summer
Annual Meeting, Manchester.
Janson, B.N. and Zozaya-Gorostiza, C. (1987) The Problem of Cyclic Flows in
Traffic Assignment. Transportation Research, 21B, pp.299-310.
Kupiszewska, D. and Van Vliet, D. (1998) Incremental Traffic Assignment: A
Perturbation Approach. In Mathematics in Transport Planning and Control.
Proceedings of the Third IMA International Conference on Mathematics in
Transport Planning and Control, Pergamon Press, pp.155-165.
Van Vliet, D. and Hall, M.D. (1998) The SATURN 9.4 User Manual, W.S. Atkins,
Epsom.
SUMMARY
This paper proposes a set of linked traffic assignment algorithms based on path
flows as opposed to flows per link. These algorithms are shown to converge
faster, particularly under "perturbation" conditions with small changes to the
network and/or the trip matrix. They are also computationally feasible with
current-day pc's.
1. INTRODUCTION
Traditionally traffic assignment models based on the fundamental principle of
Wardrop Equilibrium have almost always used algorithms whose basic building
block is the set of flows on links. Alternatives do exist; algorithms may be based
explicitly on origin-destination path flows and several examples have been
proposed, notably in the formative years of algorithm development before the
Frank-Wolfe algorithm and variants thereto became established as the standard
technique. More recently algorithms based on origin-specific flows have been
proposed.
The main pragmatic reason why path-based algorithms have not been widely
used is the fact that they require considerably more computer memory (RAM) than
link-based algorithms. Or, more to the point, they have required more memory
than has been available on standard computers for the sort of commonly-used
network dimensions. However to a large extent that problem has become less
critical with the phenomenal growth of the RAM available as standard in current-
day PCs. This paper therefore considers a number of alternative algorithms
related to Frank-Wolfe but which rely on the availability of path flow information.
We shall demonstrate that these new algorithms can be considerably more
efficient than link-based algorithms, both in terms of obtaining solutions and in
terms of analysing the solution once obtained.
Section 2 defines the problem, Section 3 describes a family of algorithms which
rely on the availability of path flows, with indications of their performance in real-
life networks, and Section 4 considers their potential applications for post-
assignment analysis. Finally Section 5 concludes.
More detailed results are given in a series of technical notes available on request
from the authors or in references [4, 5].
subject to the assignment being "feasible" where feasibility is most easily defined
in terms of path flows:
Tpij ≥ 0 (3b)
With link flows the feasibility conditions are more implicit than explicit. Ensuring
that solutions are feasible is a critical issue in designing algorithms and one where
path-based algorithms have inherent advantages over link-based.
The standard algorithm used to solve for Wardrop Equilibrium is the Frank-Wolfe
algorithm, at whose heart is an iterative loop in which the current solution is
improved by generating a "descent direction" and moving an optimum distance λ
which minimises Z in that direction. The direction is set by calculating the current
minimum cost routes for each origin-destination pair ij, denoted pij*, and assigning
all ij trips to those routes, creating both a new set of path flows and a
corresponding set of link flows.
In terms of path flows the optimum solution may be written:
n
= (1 − λPpij )Tpij pij ≠ pij*
( n +1)
Tpij (6)
(n ) n
= Tpij + ∑ λPqijTqij pij = pij *
q≠p
If all links in the before network are still present in the after network then a before
assignment, whether it be expressed in terms of link or path flows, will provide a
feasible starting solution for the after network. We can write either:
VaA = VaB (7a)
or T pij A = T pij B (7b)
where A and B denote "after" and "before" respectively.
However, if one or more links are removed from the before network to create the
after network, then the set of link V a B defined above is no longer feasible for the
after network and the corrections can only be done by resorting to path flows. By
contrast it is relatively simple to identify whether or not a before path exists in the
after network; if so, use (7b); if not, reassign those path flows to, say, a minimum
cost path.
Wolfe) but that in particular the trip matrix elements can become "stuck" relatively
far away (e.g. of the order of one or two per cent) from their ultimate equilibrium
values.
The problem, in a nutshell, is that the matrix "target" defined by the descent
direction is "near" to the current value such that large values of λ are optimal
whereas the target flows for links, being all-or-nothing, are "far away" such that
small values of λ are indicated. The inevitable compromise of small λ means that
the trip matrix can change only very slowly.
Two alternative choices of descent directions are:
♦ With the path flows fixed in proportion vary only the trip matrix (using equation
(9) to update path and therefore link flows).
The first option is possible with only link flows available, the second is only
possible with path flow information. Empirically option 2 is observed to improve
the trip matrix convergence with minimum impact on the path-flow convergence.
4. POST-ASSIGNMENT ANALYSIS
While the most important function of an assignment is to obtain estimates of the
link flows and costs it is very often equally important to be able to analyse in detail
the pattern of detailed path flows used to obtain these link flows. Examples
include:
♦ "Select link assignment"; i.e. which O-D movements have been assigned to a
particular link (or set of links as in a screen line or along a new road); also
used for validation.
♦ "Skimming"; e.g. obtaining the average O-D travel distance or time along
routes generated by minimum cost assignment.
5. CONCLUSIONS
The most important outcome from this research has been to demonstrate the
feasibility of basing traffic assignment algorithms for realistic networks on path
flows rather than link flows. A number of the benefits of so doing have been
demonstrated; more will no doubt emerge in the future.
In terms of the benefits already established the most important has been the
capability to estimate the impact of small changes to either the network properties
or the trip matrix using perturbation techniques requiring a small number of
iterations - or even a single iteration. An improved version of the basic elastic
assignment algorithm has been devised and tested; further enhancements are
likely.
6. ACKNOWLEDGEMENTS
We gratefully acknowledge a grant from EPSRC which supported this research. It
is also a pleasure to acknowledge many fruitful discussions over the years - and
ideas pinched from! - Mike Smith, Helmut Schittenhelm, Michael Patriksson,
Helena Cybis, Judith Wang, Sameiro Carvalho, Mike Hall, Bob Dial and Jane
Hagstrom.
7. REFERENCES
1) Dial, R.B. (1972) A Probabilistic Multipath Algorithm which Obviates Path
Enumeration. Transportation Research, 5, pp.83-111.
2) Hall, M.D., Fashole-Luke, T., Van Vliet, D. and Watling, D.P. (1992) Demand
Responsive Assignment in SATURN. Proceedings of the 20th PTRC
Summer Annual Meeting, Manchester.
3) Janson, B.N. and Zozaya-Gorostiza, C. (1987) The Problem of Cyclic Flows
in Traffic Assignment. In: Transportation Research, 21B, pp.299-310.
4) Kupiszewska, D. and Van Vliet, D. (1998) Incremental Traffic Assignment: A
Perturbation Approach. In Mathematics in Transport Planning and Control.
Proceedings of the Third IMA International Conference on Mathematics in
Transport Planning and Control, Pergamon Press, pp.155-165.
5) Kupiszewska, D. and Van Vliet, D. (1999) 101 Uses for Path-based
Assignment. European Transport Conference, Cambridge.
No Title Explanation
6 Distance (metres) As input in metres on the 11111 / 33333 data
records, not crow-fly (unless the original input
value was zero which was then replaced by a
crow-fly distance by SATNET). See 6.4.5. DA
1893.
1 Lanes Number of lanes at the downstream stop line
(simulation links only)
2 Stacking capacity The number of pcu’s which may “stack on a
simulation link before blocking back
commences; see 6.4.11. DA 363
3 Capacity Index A numerical index whose interpretation is
open to the user to decide. See 5.1.9 DA 604
33 Per cent green split Percentage of the cycle time for which a link
receives a green signal (flow weighted by
individual turns) DA 1598
No Title Explanation
38 TAX Number of X-priority-marker pcus which are
allowed to queue in the middle of the junction
prior to clearing at the end of a green phase.
See 6.4.2.2. DA 463
39 RBKS Factor to model the effect of entry flows on
exits from the same arm at roundabouts. See
8.7.2. DA 473
53 Weave Markers See 6.4.2.5
54 Merge Markers See 6.4.2.3.
98 Crow-fly Distance The link distance as calculated by the direct
crow-fly distance between its A and B nodes –
or, in the case of a .GIS file with curved link
data, the sum of the crow-fly distances of
each sub-link. See 15.10.1. (m)
99 Crow-Fly – Coded Distance The difference between the crow-fly distance
above and the distance coded in the network;
i.e., the “error”. (m)
100 % Diff Crow-fly v coded Distance The difference between the crow-fly distance
above and the distance coded in the network
expressed as a % difference relative to the
crow-fly.
101 Chained Stacking Capacity The total of all the stacking capacities of a
series of link which make up a “chain” (see
5.1.2), of which this link is one. DA 388. See
8.5.5.5.
102 FLAREX The length of the flared lane for X-turners at
signals (FLAREX); see 8.2.5.2. DA 468
103 FLAREF The length of the flared lane at traffic signals
(Priority modifier F; see 6.4.2.4) DA 478
104 Chained Links All links which are part of a “chain” (see 5.1.2)
are assigned a value 1; otherwise 0.
No Title Explanation
23 Demand flow (pcu/hr) See 17.2. Includes all flow components (e.g.
assigned from the trip matrix, bus flows etc.
but excludes all bus flows on bus lanes). For
simulation links with traffic entering/exiting at
either end it is the flow mid-link. DA 4503
24 Actual flow (pcu/hr) Flow (pcus/hr) which actually arrives during
the time period simulated. For simulation links
with traffic entering/exiting at either end it is
the flow mid-link. See 17.2. DA 4513
25 Queued flow (pcu/hr) Difference between demand and actual flows
No Title Explanation
(#23 - #24) and therefore the flow which is
due to arrive in the next time period. Pcus/hr.
64 Demand Flow Downstream As #23 but the demand flow which arrives at
the downstream stopline after any exit/entry
traffic, e.g., centroid connector flows, bus
routes, etc., has been allowed for. See 15.16.
65 Actual Flow Downstream As #24 but the actual flow which arrives at the
downstream stopline after any exit/entry
traffic, e.g., centroid connector flows, bus
routes, etc., has been allowed for. Aka arrival
flow. See 15.16
20 Pre-load flows (Demand or Actual) flows input under PLOD =
T. See 15.5. DA 2013
21 PASSQ flows (pcu/hr) – A/D Flows “passed” from a previous time slice due
to queues therein. May be optionally set to
either Demand or Actual within the current
time period. DA 2023
22 Fixed flows (pcu/hr) – A/D Total of all fixed flows; e.g., buses, preload,
passq. May be optionally set to either
Demand or Actual within the current time
period. DA 2093
40 UC n Flow (Demand) Refers to user class 1 by default but may be
changed interactively to any user class –
particularly useful if there are more than 3
user classes which are not explicitly included
under #66-71 below – or to all user classes.
41 UC n Flow (Actual) As #40 but actual flows, not demand,
obtained by factoring down the user-class
demand flow by the reduction factor for total
actual to demand flows per link. Strictly
speaking this is an approximation; see
15.21.4.
66 UC 1 Flows – Demand Always refers to flows from user class 1 DA
3803
67 UC 1 Flows - Actual As #67 but factored down to actual flows.
68 UC 2 Flows - Demand Etc. DA 3813
69 UC 2 Flows - Actual Etc.
70 UC 3 Flows - Demand Etc.
71 UC 3 Flows - Actual Etc. (For UC > 3 you need to set the user
class n and the use options 40/41)
42 Entry flows: CCs/bus/etc (Demand or Actual) Flows entering the link
either at the upstream and/or downstream
end due to centroid connectors, bus routes
starting, residual queues under PASSQ, etc.
etc. (pcus/hr) See 5.1.8.
No Title Explanation
43 Exit flows to CC/bus/etc As #42 but exit flows
50 Demand flow (+ bus lane) As #23 but with bus lane flows included
51 Actual flow (+ bus lane) As #50 but factored down to actual flows.
11 Capacity (pcu/hr) For simulation links capacity is a weighted
sum of turn capacities; for buffer links
(including CCs) it is the (fixed) input capacity;
for simulation CCs it is normally infinite
(99999) except when blocking back is present
on an entry link (8.5.2) DA 1863 / 1643
27 Mid link capacity (pcu/hr) Simulation links only: As defined on the
capacity-restraint speed-flow record. See
6.4.12. DA 393
12 V/C ratio (per cent) (Actual) Volume to Capacity (#11) ratio for the
link as a whole
87 Demand flow, vehicle class n The total (demand) link flow for vehicle class
n (i.e., the sum of all the user class flows in
vehicle class n). By default n = 1 but it may be
changed to any other single vehicle class
number. Pcu/hr
88 Actual flow, vehicle class n As above but factored down to an actual flow.
Pcu/hr
89 Demand flow, vehicle class 1 As 87 above but always for vehicle class 1
90 Actual flow, vehicle class 1 As 88 above but always for vehicle class 1
91 … ditto for class 2 … Demand/actual flows for vehicle classes 2
and 3 (explicitly). To view the flow for vehicle
class 4 it is necessary to use 87 above with
the single vehicle class set to 4.
105 Tij Demand flow The total flow assigned from all cells in the trip
matrix, equal to the total demand flow less the
fixed flow. I.e., the sum of all the individual
user class flows in a MUC model. Pcu/hr.
106 Tij Actual Flow As 105 but the actual flow Pcu/hr
107 Tij + PASSQ Demand flows The flow as assigned from the trip matrix plus
an estimate of the equivalent flows contained
in the PASSQ flows
108 Tij + PASSQ Actual flows As 107 but actual flows. Pcu/hr
34 Counts (pcu/hr) As input under the 77777 data records in the
network .dat file. With multiple count fields a
particular field is user-selected (default to 1).
35 Errors Difference between flows (#24) minus counts
(#34).
36 Relative errors (%) Error / flow per counted link expressed as a
No Title Explanation
percentage (with + or – signs)
75 Previous Demand Flow Taken from the previous assignment-
simulation loop (pcus/hr). DA 4493
76 Changes in Demand Flow Difference between #75 and #23 and
therefore an indication of convergence of the
assignment-simulation loops
37 GEH convergence GEH statistics comparing the link flows from
the last loop with those from the previous
loop. See 15.6.2.
72 SAVEIT Flows (Demand) Total demand flows as calculated by the
additional “saveit” assignment used to
reproduce route flows. See 15.23.1.
86 Bottleneck Capacity The “pinch-point” capacity (#27) set by a
simulation link speed-flow curve but only if
that capacity is “active”; i.e., only if it less than
the junction capacity which it therefore
restricts. See 6.4.12.
No Title Explanation
4 Free flow time (secs) Simulation links: Stopline to stopline travel
time under free flow conditions. Buffer links:
free flow travel time. DA 1803
5 Free flow speed (kph) Speed based on free-flow time #4
15 Cruise time (secs) Simulation links: Stopline to stopline time
allowing for speeds to decrease according to
a link capacity-restraint curve (otherwise
equals #4). Buffer links: congested travel
time.
16 Cruise Speed (kph) Speed based on cruise time #15
14 Delays (secs) Simulation links: Flow-weighted delay to
include: (a) transient delays, (b) V>C queuing
delays and (c) any delays associated with link
capacity restraint (speed-flow) curves.
Buffer links: Difference between congested
(speed-flow) and free-flow travel times.
N.B. Both exclude any 44444 time penalties
or extra CLICKS times.
77 Stopline Delays Simulation links: Same as 14 but without
element c), i.e., transient plus V/C delays but
without delays on the link arising from speed-
flow curves
78 Capacity Restraint Delays Simulation links: Delay arising from the link
capacity-restraint or speed-flow curve only.
No Title Explanation
Buffer links: Difference between congested
and free-flow travel times (same as #14).
17 Total time (+ Qs) secs Simulation links: Sum of delays #14 and free-
flow travel time on simulation links.
Buffer links: congested time
18 Net speed (+ Qs) kph Speed based on total simulation link travel
time #17 DA 4053
95 RTP delay The random delay per turning movement
weighted by flow to give an average per link.
See 8.6. DA 1658
96 V>C delay The delay due to over-capacity queues per
turning movement weighted by flow to give an
average per link. See 8.4.1. DA 1638
97 CFP delay The “transient” delay per turning movement
as associated with cyclical flow profiles
weighted by flow to give an average per link.
See 8.4.1. DA 1628
9 Average Queue Total (pcu) The sum of the average transient queues and
the average V>C queues as summed over all
turning movements and all lanes. See 8.4.8
DA 1433
13 Q at end of time period Permanent V > C queue (pcus) aggregated
over all lanes and/or turns at the end of the
simulated time period. Excludes any transient
queues.
8 QoverS % The average queue (#9) divided by the link
stacking capacity (6.4.11) and expressed as a
percent. N.B. The link stacking capacity is that
used in assessing blocking back so,
depending on the link properties and the
degree of blocking back, it may be either: (a)
the stacking capacity of the link on its own or
(b) the stacking capacity of its “chain”. See
8.5.5.5.
10 Blocking Back Factor % 100.0*(1.0 – BBF) In other words, if a link is
blocking back (in which case BBF < 1) a
positive value is displayed. If a link is not
blocking back (BBF = 1) a value of 0 is
displayed. See 8.5.1 DA 1443 x 100
73 BBF_IN Block Back Factor as input from the previous
simulation (defined as per #10). DA 1353
74 Changes in Blocking Back Differences between #10 and #73 above;
non-zero values indicate a lack of
convergence
No Title Explanation
57 Maximum trans Q (pcu) Based on the summation of all transient
queues over all lanes and all turning
movements. See 8.4.8. DA 1373
84 Q-bar (V > C) Average Queue – V > C (pcus) DA 1378
85 Q-bar (V>C) + max trans Q Average V>C Queue + Maximum Transient
Queue: DA 1378 + DA 1373
7 Power x 100 The power n as used in the link cost-flow
curve. See 5.4 and 8.4.2. DA 1823
47 Penalties – Time (secs) Time penalties as defined for links under
44444 data, but excluding any aggregates
turn penalties out of simulation links (for the
currently selected user class). See 6.7.
48 Monetary tolls (pence) Monetary tolls (e.g., in units of pence) levied
per link whether defined under 44444 or via a
KNOBS file (for the currently selected user
class). See 20.3.
56 Penalties - Banned turns A negative value to indicate a banned link (for
the currently selected user class). See 6.7
52 Weaving factors The reduction factor W applied to link
capacities due to weaving between entry and
exit ramps. Expressed as a percentage. See
15.40.2. DA 1563 x 100
55 Signal Co-ordination Ratio of the delay at signals given the normal
“platooned” arrival pattern to the delay if the
arrival pattern were flat. Expressed as a
percent and weighted by turning flow. See ?
79 Max Speed, UC n Maximum Speed, UC n: either the normal
speed at free flow or the maximum set by
CLICKS and/or CLIMAX for UC n.
80 CLICKS: UC n Cruise Time for UC n (seconds) including
the affect – if any – of CLICKS and/or
CLIMAX
81 Add Tim UC n Extra Cruise Time for UC n (seconds); i.e.,
the difference in the travel time between
“cars” and a particular user class due to
CLICKS/CLIMAX
82 Spd Dif UC n Speed Difference between UC n and “cars”
(kph) including the affect – if any – of
CLICKS/CLIMAX. N.B. Actual speeds are
used here, not free-flow speeds.
83 CrSpeed UC n Cruise Speed for UC n (kph) including the
affect – if any – of CLICKS/CLIMAX
No Title Explanation
104 Sim Convergence: Delays The difference in delay per simulation turn
between the simulation and assignment
weighted by flow to give an average per link.
(See 9.9.1.2)
105 Sim Convergence: Gap The difference in delay per simulation turn
between the simulation and assignment
multiplied by the flow weighted by flow to give
an average per link, (See 9.9.1.2)
106 Sim Convergence: Capacity The difference between turn capacity on
successive simulations weighted by flow to
give an average per link. (See 9.9.1.2)
107 Sim Convergence: Flows The difference between turn capacity on
successive simulations weighted by flow to
give an average per link. (See 9.9.1.2)
No Title Explanation
19 Bus flows (pcu/hr) – Demand N.B. In units of pcu’s, not buses, per hour.
58 Bus Flows (Actual) As #19 but factored down by ratio of total
actual flows to total demand flows
59 Bus Flows (Queued upstream) Difference between #19 and #58
44 Bus Lane flows – Nearside Demand flows in pcu/hr of buses in a
nearside bus lane
45 Bus flows (not bus lane) Bus which use a “middle” link in preference
(for whatever reason) to an available bus
lane.
46 Bus lane flows – Offside Demand flows in pcu/hr of buses in a offside
bus lane
49 Total Bus lane flows Sum of nearside and offside bus lanes
60 Bus Entry Flow Upstream Bus flows which start upstream on this link
Pcus/hr. DA 953.
61 Bus Entry Flow Downstream Pcus/hr.
62 Bus Exit Flow Upstream Pcus/hr
63 Bus Exit Flow Downstream Pcus/hr DA 963
No Title Explanation
26 Fuel consumption (l/hr) See 15.32. DA 1503
28 CO2 (kilos) See 15.33. DA 1713
29 CO (kilos) See 15.33. DA 1703
30 Nox (kilos) See 15.33. DA 1723
31 Hydrocarbons (kilos) See 15.33. DA 1733
32 Lead (kilos) See 15.33. DA 1743
No Title Explanation
1 Demand flow (pcu/hr) The demand flow to arrive at the downstream
stop-line.
2 Exit flow (pcu/hr) Flow which actually passes through the
downstream stop-line (e,g., limited by the
turn capacity).
3 Arrive flow (pcu/hr) “Actual” flow which arrives at the stop-line
4 Flow queued upstream (pcu/hr) The difference between #1 and #3.
5 Flow queuing here (pcu/hr) Rate at which a queue builds up at the stop-
line assuming that the arrival flow exceeds
the capacity. #3 - #7
6 Fixed flow (pcu/hr) Total of all fixed flows; e.g., buses, preload,
passq. Demand-based.
7 Capacity (pcu/hr) As calculated by the simulation.
8 Average queue total (pcu) The sum of the average transient queues and
the average V>C queues as summed over all
lanes. See 8.4.8
9 Delay (secs) Includes both: (a) transient delays and (b)
V>C queuing delays (but excludes any link-
based delay arising from link speed-flow
curves). See 8.4.1
10 V/C (percent) Arrive flow #3 divided by capacity #7
11 Queue at start of period Permanent queue at the start of the time
period as left by the previous time period
under PASSQ
No Title Explanation
12 Queue at end of period Permanent queue at the end of the time
period assuming that flow > capacity
(including the affect of any initial permanent
queue). Excludes any transient queues.
13 Saturation flow (pcu/hr) As input. See 6.4.6.
14 GAP Critical gap in seconds (which, in principle,
may be turn-dependent)
15 Turn Priority Markers Characters X, F, G, etc. See 6.4.2.
16 Counts (pcu/hr) As input under 77777. Count field 1 by
default
17 Errors (Count – Actual) Pcus/hr
18 % Errors (Counts – Actual) / Actual
19 GEH Errors (no sign) 15.6.2
20 GEH Errors (with sign) 15.6.2
21 Signal Coordination Factor Ratio of the delay at signals given the normal
“platooned” arrival pattern to the delay if the
arrival pattern were flat.
22 Bus Flows (Demand) Pcus/hr
23 Bus Lane Flows (Demand) Pcus/hr
24 Bus Flows excl bus lanes Pcus/hr
25 Demand + bus lane flow Pcus/hr
26 Exit + bus lane flow Pcus/hr
27 Arrive + bus lane flow Pcus/hr
28 Average V>C Queue (pcus) DA 1368
29 Maximum Transient Queue DA 1373
30 Av V>C + Max Trans Queue DA 1368 + DA 1373
31 Delay in SATALL The ‘original‘ delay per turn as calculated by
the final simulation in SATALL and therefore
unaffected by any node editing in P1X.
32 CFP Delay The “transient” delay per turning movement
as associated with cyclical flow profiles. See
8.4.1. DA 1628.
33 V>C Delay The delay due to over-capacity queues per
turning movement. See 8.4.1. DA 1638
34 RTP Delay The random delay per turning movement.
See 8.6. DA 1658.
35 Choke Factor The ‘choke factor‘ applied to simulation turns
to account for mid-link capacity restrictions.
No Title Explanation
See 8.4.4. DA 1668.
36 Simulation convergence : Delay The difference in delay per simulation turn
between the simulation and assignment.
(See 9.9.1.2)
37 Simulation convergence : Gap The difference in delay per simulation turn
between the simulation and assignment
multiplied by the flow, (See 9.9.1.2)
38 Simulation convergence : Capac The difference between turn capacity on
successive. (See 9.9.1.2)
39 Simulation convergence : Flows The difference between turn capacity on
successive. (See 9.9.1.2)
No Title Explanation
1 Node numbers “Numerical Name”, not sequential
2 V/C ratio (percent) The % ratio of the total actual flow arriving at
the stop line (#24 under I.1.2) summed over
each entry link divided by the sum of the
capacities per entry link (#11 under I.1.2).
Hence a very high (and unused) capacity on
one arm may “mask” a heavily overloaded
arm in terms of this measure.
3 Delay time (seconds) Flow-weighted average delay over all turning
movements at a simulation node / over all
entry links at a buffer node
4 Demand flow (pcu/hr) Summed over all entry arms.
5 Arrive flow (pcu/hr) Summed over all entry arms.
6 Capacity (pcu/hr) Summed over all entry arms
7 Actual flow (pcu/hr) Summed over all entry arms.
8 Fixed flow (pcu/hr) Summed over all entry arms
9 Flow from zones (pcu/hr) Summed over all entry arms
10 Flow to zones (pcu/hr) Summed over all entry arms
11 Queue here (pcu)
12 End queue (pcu)
13 Queue upstream (pcu)
14 Mean queue (pcus) Averaged over all entry arms
No Title Explanation
15 Start queue (pcu) Sum of all the permanent queues at the start
of the time period as left by the previous time
period under PASSQ.
16 Primary Stops See 15.32.
17 Secondary Stops See 15.32
18 NUC As input. See 8.1 and 15.15.2.
19 Cycle time LCY (seconds) As input. See 6.4.3.
20 Offsets (seconds) As input. See 6.4.3
21 GAP (seconds) Minimum acceptable gap for give-ways at
signals and priorities; GAPR at roundabouts.
See 15.22
22 GAPM (seconds) Minimum acceptable gap for merging. See
15.22
23 RB circle time (seconds) See 6.4.1
24 RB capacity (pcu/hr) Capacity of the roundabout circulating
section; see 6.4.7.
25 Convergence (out) Measure of the change in the OUT cyclical
flow profiles from one internal simulation to
the next. See 8.3.2
26 Errors + Warnings Total of all errors and warnings generated at
a simulation node during the network build in
SATNET. See 2.9.
27 Warnings As #26 but warnings only. See 2.9.
28 Serious Warnings As #26 but warnings only. See 2.9.
29 Non-Fatal Errors As #26 but warnings only. See 2.9.
30 NAFF Errors As #26 but warnings only. See 2.9.
31 U-turns at External Sim. nodes See 5.1.4.
32 Sector name The numerical sector name within which a
zone is included. See 5.1.7
33 Convergence (IN) Measure of the change in the IN cyclical flow
profiles from one internal simulation to the
next. See 8.3.3.
34 Junction Type 0 – External; 1 – Priority; 2/5 – Roundabout;
3 – Signals; 4 – Dummy. See 6.4.1.
35 Map Sequential Number Sequential number as used to set up network
plots including all zones, simulation and
buffer nodes
36 Number of arms Number of connected nodes/links per node
(excluding centroid connectors for simulation
nodes)
J. A Guide to DA Codes
We provide here a list of the “most useful” DA codes used in SATURN UF* files
with an explanation of their contents. “Most useful” means that the codes listed
are those that ordinary users might conceivably wish to access, e.g., through P1X
DA Code choices (11.6.2.1), as opposed to the more esoteric codes that only
programmers need to know about. See 15.21 for an explanation of the role of DA
codes.
The lists are subdivided into data based on simulation links, assignment links and
simulation turns respectively (although, strictly speaking, assignment links include
both simulation links and turns as subsets).
Note that in certain cases data contained in DA codes appears directly in the data
annotation lists in P1X as noted in Appendix I.
1543 TLQT The total pcu-hrs of delay per link within the
current time period, e.g., areas (1) and (2) in fig.
17.3 for an initial time period or areas (3) to (6)
for later time periods, plus any delays on
simulation links with speed-flow curves.
1553 FLOWUP(A) Actual flow upstream (pcu/hr)
1563 WOVEN Sat Flow reduction due to weaving
1573 BBF_OFF Flow removed by blocking back pcus/hr
4013 TIME(S) As 4003 but with the times for simulation links or
turns updated according to the simulation which
follows the assignment; i.e. using the data in 363
and 1633.
4033 Marginal Cost Marginal cost time or tolls ( in seconds) as given
(Time) Tolls by equation (7.47)
4043 Marginal cost /time For a single user class:
Total marginal cost (seconds) equal to the sum
of: (a) fixed link costs (i.e., 2603) and (b)
marginal time per link; i.e., equation (7.46)
For multiple user classes:
Total marginal time only (on the basis that the
fixed costs are UC-dependent and only one
“version” of 4043 is output)
4053 SPEED Congested link speed (including a weighted
junction delay) in kph
4493 P-FLOWS Demand flows as per 4503 calculated on the
previous assignment-simulation loop: pcus/hr
4503 D-FLOWS Demand flows per assignment link (summed
over all user classes, including fixed flows, etc.,
etc. as appropriate but excluding any flows on
bus-only lanes (see 2033)): pcus/hr
4513 A-FLOWS Actual flows in pcus/hr; see 17.2.
4523 W-FLOWS Weave (demand) flows; see 15.40
turn.
1523 P-STOPS Number of Primary stops per turn
1533 S-STOPS Number of Secondary stops per turn
1583 TP_TURN Time (secs) at which the initial Q clears
1593 TQ_TURN Time (secs) at which V>C Queue clears
1603 TURNF Fraction of (demand) link flow per simulation turn
1613 QIN Turn queue at start of each LCY cycle (pcus)
1623 QST Queued pcus per turn at the start of the time
period (LTP).
1628 DEL_CFP Delay per turn as calculated from the cyclical
flow profiles (CFP) including any random delays
(1658) but excluding any “fixed” delays i.e.,
TDEL or times to circle roundabouts (seconds).
See 8.4.1.
1633 DELAY The total turn delay per simulation turn including
both transient and over-capacity queuing effects
(secs). See 8.4.1.
1638 DEL_VGC Delay per turn due to over-capacity queues
(seconds). See 8.4.1.
1643 CAPACITY Total simulation turn capacity, pcus/hr
1648 PRE_GRAPH Capacity per turn calculated in the previous
assignment-simulation loop (PCUs/hr)
1653 DEL_TR The “transient” delay per simulation turn; i.e.
excluding any delays associated with over-
capacity queuing but including any “fixed” delays
i.e., TDEL or times to circle roundabouts.
(Seconds). See 8.4.1.
1658 DEL_RTP Delay per turn due to random arrival rates
(seconds); see 8.6.1.
1663 CAP_EQ Estimated capacity in the next time period
(pcus/hr)
1668 CHOKE_T Capacity reduction factor per turn due to
restricted mid-link capacities, See 8.4.4.
1693 SIGCOF Signal Co-ordination Factor defined as the ratio
of the delay assuming platooned arrivals to the
delay with a flat arrival profile.
1694 MOVE_BB Blocking back “status” per simulation turn; 0 –
turn does not block back; 1 – blocks back over
shared lanes; 2 – blocks back on its own
Miscellaneous
SATWINSYS.BAT Temporary internal operation file produced by SATWIN
Code Description
1 Rather high or low speed
2 Turn saturation flow less than the minimum
3 Some but not all turns coded as G – normally they should all be G
4 A marker X has been used for a turn at a simulation junction but there are
apparently no major links to oppose this turn
5 A marker X has been used for a turn at a simulation junction but there are
apparently two or more opposing major arms. this may create problems as only
the opposing flow from the first (clockwise) arm will be modelled.
6 A priority junction has no minor (give-way) arms and some major arms
7 No simulation data has been input after the 11111 record
8 Turn marker X has appeared for two or more turns on the same link
9 A turn is coded as a merge (M) but is the final possible turn; i.e., an offside merge
10 A turn is coded as a banned turn but has been assigned lanes
11 An empty data section encountered
12 More than one give-way turn sharing a single lane at a priority junction. See
Section 6.4.9.
Code Description
21 A very short red phase
22 A very short red phase (less than 1 time unit in duration)
23 The total upstream saturation entry flows seem to be inconsistent with the
number of lanes at the downstream end.
24 Input link time/speed out of range set by the speed-flow record
25 An input distance of zero is replaced by the crow-fly value
26 No ban/penalty (i.e., non-zero) entries in a 44444 input record
27 The initial columns on stage records should be blank
28 A zone is connected as a centroid connector to a one-way simulation link but the
(external) node appears in the buffer network. See Section 15.11, note 1.
29 You have requested speeds but the distance is zero.
30 The calculated speed is outside the expected range KPHMIN to KPHMAX
31 A buffer link was one-way in the opposite direction in the simulation network
32 Simulation link distances, times and/or speeds differ in reverse directions. Any
difference at all in distances triggers a warning but times must differ by 10% or
greater and/or speeds must differ by greater than 1.5 kph. The critical limits are
also namelist parameters under &PARAM with W32D = 0.0 by default for zero
differences in distances, W32T = 0.10 (i.e., 10%) for relative times and W32KPH
= 1.5 for speeds.
33 Suspicious link distance – the input value differs “significantly” from the crow-fly
value. See Serious Warning 136 for “highly significant” differences. A significant
difference is defined to be either greater than 10 metres or a relative difference of
either more than plus 10% or minus 5% relative to the crow-fly. Note that
differences between coded and crow-fly distances may also be displayed as link
annotation dat within P1X.
34 An off-side filter must be from a one-way entry to a one-way exit.
35 Capacity times (if defined) should equal free flow times for centroid connectors.
36 Infinite capacity assumed on centroid connectors
37 Co-ordinates for a node have occurred more than once; FIFO decides which of
the two is actually used
38 Not all nodes and centroids have been assigned co-ordinates
39 A bus route has the same name as a previous route this will cause problems if
you use SATLOOK etc
40 The initial link in a bus route is from an inner simulation node to an external node.
This causes problems in the simulation so we ignore this link.
41 The final link in a bus route is from an external node to an inner simulation node.
This causes headaches for the simulation so we must ignore this link.
42 A link with a count given is bridged by centroid connectors did you consider this
in working out the counted flow?
43 A turn is coded as a right turn but is not the last. E.g., the turn in question enters
from the south and exits to the east but there is also a one-way entry from the S-
E between the two.
44 A turn has been coded as a merge (M) but is not the first possible turn.
45 The total inter-green time exceeds the total stage time.
46 A centroid connector to an external link has been included twice; the second
Code Description
reference is unnecessary and is ignored.
47 Some assignment nodes cannot be reached from zone 1 – the network may
therefore be disconnected. On the other hand it may be caused by one-way
roads near the edge of the network around which there are no routes within the
coded network. See Section 18.10. See also Non-Fatal Errors 273 and175.
48 No trip matrix factor input – default of 1.0 assumed
49 A buffer link has both nodes in the simulation network
50 The saturation flow per lane is low (<MINLSF)
51 The saturation flow per lane is high (>MAXLSF)
52 An external simulation node with 2 arms
53 Two priority movements share the same exit but neither has a turn priority marker
54 Link capacity index defined twice (and differently)
55 Using an old value of NFT – are you sure?
56 PASSQ is being used but with buffer only networks – ok?
57 Using a T indicator on a default speed-flow record
58 A blank or zero node record in a (bus) route
59 Read error on simulation link time/speed
60 Read error on simulation link distance field
61 The value of a suspicious namelist parameter has been changed. See also
Serious Warning 171 where similar errors are upgraded to a semi-fatal error
under WRIGHT = T
62 Too many (comment) lines to define a single bus route
63 Not enough lines input in a bus route (EZBUS = F)
64 Final timing point not recorded, route stops upstream
65 Low stacking capacity per lane (< 3.0)
66 Link exists but only in the opposite direction
67 Sector 0 has been used both explicitly and by default
68 A priority marker G looks suspiciously like a merge! (M)
69 Elastic demand applied to user classes which share Tij levels
70 A link in the 33333 buffer network data has previously been defined with link
speed-flow data in the 11111 simulation data; please check for inconsistencies.
71 DUTCH = T but no buffer network; never used in simulation networks
72 Dummy nodes with 3 or more arms are not a good idea!
73 Bus routes with u-turns at non-simulation nodes
74 Suspiciously large input KNOBS data entry
75 Suspicious KNOBS data field (e.g., >1 entries or no decimal point)
76 See Serious Warning 176
77 See Serious Warning 177
78 Possibly strange bus turn from a reserved mid-link lane; e.g., a route turns
nearside and crosses other turns
79 An X-turn at signals is only in stages in which it is unopposed – hence it has
nothing to give way to. (N.B. This may fail to detect the situation where there are
Code Description
two opposed (X) right turns in a single stage but which – through the choice of
NOTUK and/or D Priority Modifiers – do not interfere because they do not hook;
see 6.4.2.7.). See also Serious Warning 111 which is more general and includes,
e.g., give-ways at priority junctions.
80 Incorrect data on a KNOBS record; spaces in the entry field
81 Cycle time is very low - < 10 seconds
82 Cycle time is very high - > 999 seconds
83 Using a W(eave) marker on a link but not capacity restraint. This may mean that
the weaving rule reduces the link capacity but without a link speed-flow curve it
will not reduce the link speed. See 15.40.4.5.
84 An inter-green time is redundant – all turns continuously green
85 Column 6 on a bus route must be blank, R or T
86 A $include file has a redundant header record, e.g., 66666 for bus routes, at the
start of the file
87 At least one value of CLICKS(UC) should equal zero
88 CLICKS(UC) should not be set for UC > NOMADS
89 CLICKS() should only be set for multiple user classes, NOMADS > 1.
90 Repeated link A,B records in a KNOBS data file
91 Two turns have the same lanes at signals but do not always appear together in
the same signal phases; hence one turn will potentially block the other. See also
Serious Warning 130 which is the same basic situation but judged to be a bit
more severe.
92 A zone connected under 33333 would be better coded under 22222; this
removes the possibility of U-turns. See Section 16.6.4 and 18.9.1. See also
Serious Warning 174 below.
93 More than one give way turn sharing a single lane at signals see Section 6.4.9.
94 AUTNUC: increase NUC to correct short signalised stage lengths
95 Unidentified node entry within 55555 data records
96 A give-way turn (priority marker G) has both shared and unshared lanes. While
this can occur commonly – and therefore “correctly” - in real life, it does cause
potential convergence problems with the lane choice algorithm so, if you are
otherwise undecided, code separate unshared lanes.
97 Opposing x-turns at signals hook; i.e., interfere. Since such turns can make
convergence more difficult it is worth checking to see if any such occurrences
should be converted to non-hooking. As a general rule in modern networks
hooked turns at signals are very much the exception rather than the rule
(although the defaults in SATURN may still indicate otherwise; see 15.7.1). See
Section 6.4.2.6.
98 The lane structure suggests that a minor turn might be given a clear exit priority
modifier C. See Section 6.4.2.6
Code Description
101 MTFLOW is set to True but there are no counts input
102 The speed or time is zero but the distance is non-zero
103 Due to a lack of convergence in the previous simulation fixed flows do not
balance. Solution: repeat previous SATSIM with increased NITS.
104 Turn coded as a filter (priority marker F) but is neither the first nor last turn
105* A turn is coded as a filter – F – but shares lanes
106 No green movements defined for a stage – either the first node entered is zero or
the number of nodes indicator is zero. (All red phases are coded as part of the
inter-green for the previous phase.)
107 A u-turn has been identified as a green movement but u-turns are not possible at
signals – input ignored
108* No capacity in either direction in a simulation link
109 Some of your in-links may not have been defined in strict clockwise order. A
series of left-hand turns (Ignoring one-way streets) through the following nodes
fails to return to Its starting point as it should, or else requires more than 20 steps
to do so. Please check these node sequences on a map. See Section 6.4.8. N.B.
If your network contains overpasses etc. this may be the explanation, in which
case ignore this error.
110 An input zone's sector exceeds the maximum allowed
111 No opposing turns found for a turn with a priority marker at either a priority or
signalised junction. See also Warning 79 which is specific to X-turns at signals
and which is effectively a sub-set of 111.
112 A zone has one or more centroid connectors connected to external simulation
nodes. Normally a zone is connected to a single external node or to one or more
internal links, but not both.
113 Simulation arms have (apparently) not been input in (counter-)clockwise order
according to the co-ordinates of the A-nodes. N.B. If your network contains
overpasses etc. this may be the explanation, in which case ignore this error.
114 The coded link distance was X in the simulation network and Y in the buffer
network. The simulation distance is therefore re-set to Y
115 The link simulation time was outside the range of travel times set in the buffer
network the simulation time is re-set
116 An external simulation node with more than 2 arms
117* Two priority movements cross at a priority junction but neither has a turn priority
marker
118 The named trip matrix cannot apparently be found
119* The number of columns in the trip matrix does not equal the number of zones in
the network
120* The number of rows in the trip matrix does not equal the number of zones in the
network
121* The level selected by a user class exceeds the number of stacked levels in the
trip matrix
122* A stacked level in the trip matrix is not selected
123* The maximum level selected by a user class exceeds the number of stacked
Code Description
levels in the trip matrix
124 A nearside turn which is all green but not a filter
125 A two-way route has been assigned (directional) timing points
126 Total intergreen stage times equals zero (but it may be that the user has explicitly
coded all intergreen periods when at least one movement overlaps as separate
stages, in which case ignore this message)
127* Equal free-flow and capacity speeds on a default S.F. record but a positive value
of the power
128 A turning movement has zero saturation flow but is coded as green during a
stage
129 Blank record read in – and skipped
130 Two turns have the same lanes at signals but do not always appear together in
the same signal phases; hence one turn will always block the other – bad for
convergence! Change either the lane or signal definitions. See also Warning 91
which is the same basic situation but judged to be a bit less severe.
131 A single lane merges with multiple lanes at a Y. Arguably the other turn should
not be an M but if this is, say, a 1-lane entry ramp onto a motorway then it’s
probably OK.
132 Multiple lanes merge with a single lane at a Y. Arguably this turn should not be an
M but if this is, say, a 1-lane entry ramp onto a multi-lane motorway then it’s
probably OK.
133 Setting KINKY = F with a simulation network included
134 The value of a suspicious NAMELIST parameter has been changed
135 More than one give-way turn sharing the single lane: major arm at a priority
junction; see Section 6.4.9.
136 Suspicious link distance – the input value differs ”highly significantly” from the
crow-fly value. See Warning 33 for a “significant” difference. A highly significant
difference is defined to be either greater than 50 metres or a relative difference of
either more than plus 30% or minus 25%.
137 The turn saturation flows per lane differ widely single arm at a signalised or
priority junction; see Section 6.4.6.3.
138 The maximum saturation flow per lane on one roundabout arm is more than 50%
greater than the minimum saturation flow per lane on another. One would
normally expect similar design standards on all arms at a roundabout.
139* Very strange priority junction X-marker – probably on wrong arm or else a minor
arm has not been defined (with G markers) See Section 6.4.2.2.
140* An X-Turn at signals has another turn "outside" it which is not an X
141* No suitable .OST file found; set IPERT = 0 / WSTART = F
142* An X-Turner shares 2 or more lanes with the turn inside it and therefore would be
forced to “weave” with other turns when turning from an inside lane. See Section
6.4.9.6 and also Serious Warning 162.
143* No suitable .UFO file found; set WSTART = F
144 An input field that is meant to contain real data (ie with a decimal point) only has
an integer; check it is read correctly.
145 Unacceptably high level of read errors from a data file
146 Pre-load flows should appear on both simulation links and turns
Code Description
147 A positive inter-green separates two identical stages
148 The rules for green during inter-green differ in 10.6
149 Repeated link A,B Records in a KNOBS file: different values
150 A nearside merge into a turn not in its inside lane. E.g., if turn A-B-C is an entry
ramp onto a motorway and turn D-B-C is the through movement on the motorway
then D-B-C does not use the inside lane. This almost certainly implies that there
is a turn D-B-A (i.e., an exit off the motorway onto the ramp) which does use the
inside lane.
151 An offside merge into a turn not in its outside lane. As 150 but on the opposite
side,
152 A single-lane arm at signals which includes an X-marked turn; see Section 6.4.
153 Increase NUC to deal with shortest signal stage lengths with X-turns
154 An X-turn shares identical lanes with the turn inside it but that turn could use
lanes further inside to avoid being blocked by the X-turn. E.g., a straight ahead
movement and an X-turn are both allocated to lane 2 only so it might be possible
to avoid the potential conflict by allowing the straight movement to use lane 1 as
well. N.B. If the X-turn has a flare the warning is ignored.
155 A merge turn has more lanes than the turn it merges into
156 The exit link from a merge has Equal/More lanes than the sum of the two merging
turns
157 Mid-link capacity either >> or << stop-line saturation flows; the critical ratios are
either 3 times or 1/3. See 6.4.12.1 and 8.4.4.
158* A turn is not coded as an X-Turn but maybe it should be since it hooks with turns
which are green in the same stages
159 CLICKS speed on a link is less than the normal capacity speed
160 The exit link from a merge has significantly fewer lanes than the sum of the two
merging turns
161 An X-turn at a priority junction has no major turns opposing it
162 Multiple turns sharing multiple lanes – so that, e.g., an offside turn from an inside
lane would inevitably have to cross an inside turn from an offside lane – disaster!
See also Serious Warning 142 and Section 6.4.9.6.
163 There are no time or speed entries on a 33333 buffer link but either the distance
and/or the capacity has been coded so it is not possible to use a default speed-
flow curve as might be expected by the absence of speed/time.
164 A buffer link has zero capacity (implying fixed speeds) but the free flow and
capacity times input differ
165* An X-turn at signals has both exclusive and shared lanes. See 6.4.9.4.
166* Two opposing X-turns at signals have different priority modifiers; e.g., one turn is
coded XD and the opposite is X-blank. Logically both should be XD or neither
have D.
167 The directionality of a buffer centroid connector and the link(s) to which it is
connected are different (e.g., 1-way out versus 2-way in)
168 A turn has been banned but other turns at the roundabout use the exit. E.g., the
turn from south to north has been banned but the turn from west to north is
allowed.
169* Incorrect signal stage specification: the number of nodes in the list must be even
Code Description
170 An input time/speed of 0.0 on a simulation link is replaced by the minimum time /
maximum speed from the speed-flow curve.
171* A highly suspicious /illegal value of an input Namelist parameter; this is upgraded
to a semi-fatal error under WRIGHT = T. See also Warning 61.
172 A negative trip matrix cell has been detected in either SATNET or SATALL and
will not be assigned. See note 6) in Section 4.3.
173 Using OBA without having FTN95_NEW_MEMORY turned on.
174 Positive flow making a U-turn at an external simulation node. See also Warning
92 which simply flags the possibility of a U-turn. See Section 16.6.3 and 18.9.1.
175 The coded flare length (either F or X) exceeds either the link length or 100 metres
176* The number of stage green node pairs exceeds the actual number of entries
177* Extra stage green node entries which will not be read
178 Very strange stage sequencing for an X-turn at signals. E.g., an opposing turn
continues at the end of the X-turn phase so that the (TAX) vehicles queued in the
centre of the junction cannot clear.
179 An offside filter FX shares 2 or more lanes with the turn inside it; see 6.4.9.6.
180 A nearside filter FF shares 2 or more lanes with the turn outside it; see 6.4.9.6.
181 A TfL node is entirely surrounded by nodes in different traffic boroughs. See
5.1.7.
182 A TfL zone is only connected to simulation nodes outside its traffic borough. See
5.1.7.
183 A simulation node has a LCY value of, say, 60 but all its neighbours have LCY =
70. See 15.15.3.
Code Description
201* Turn priority modifiers only allowed with markers X or G
202 No input is required in fields 4 and/or 5 for junctions other than signals and
roundabouts
203 Turn A is crossed by turn B and both are green during stage N e.g. one is north-
south and the other is east-west, and neither has a priority marker, e.g., X
204* Nodes in the assignment network have no entries to them which may indicate
that the network is disconnected in some way. N.B. This only applies to “real
nodes”, not zones, since it is quite permissible to have zones on the network
boundary which are exit only and therefore have no entries.
205 Two centroids may not be directly linked together in the buffer network.
206 Capacity travel times must exceed the free-flow times
207 A positive power-law flow-delay curve when the time at capacity equals the free-
flow time (or has been set equal to zero or left blank to imply equality
208 Negative co-ordinates - X and Y must be => 0
209 Duplicate count number
210 Zero flow defined for a count
211 No positive saturation flows coded for turns out of a dummy node
Code Description
212* No in-bound arms defined for a simulation node
213 Both free flow and capacity speeds, the capacity and the link index must all be
positive
214 The capacity speed must be less than the free flow speed
215 Duplicate capacity index in a (default) speed-flow data record
216 No suitable node co-ordinates identified - SHANDY option off
217* Numerical data beyond column 65 on a simulation CC record under 22222 which
may be intended to define another link. N.B. If there is non-numerical data, i.e.,
text, beyond column 65 it is assumed that it is some form of comment and is
therefore acceptable.
218* Repeated restricted link/turn data under 44444
219 A C (or E) priority modifier cannot refer to the first turn
220 A D (or E) priority modifier cannot be used for the first or second turn
221 No centroids defined
222 A bus route "stutters"; i.e., it goes twice through links A-B-A-B
223* User class out of range 1 to NOMADS
224* Matrix level out of range 1 to 36
225* Lanes on a give-way turn entirely enclose a non give-way turn
226* Two or more turns have lanes which are shared but do not appear in the same
signal phases; hence one turn will always block the other - catastrophe! Change
either the lane or signal definitions. See also Serious Warning 130 and Warning
91.
227* Zero length green stage
228 Fortran read error within 55555 data records (ie co-ordinates)
229 Invalid value for TAX in the XFILE
230 Invalid entry for link (A,B) in the XFILE 22222 records
231 Invalid value for RBKS in the XFILE
232 Invalid value for GAP in the XFILE
233 Invalid entry for turn (A,B,C) in the XFILE 33333 records
234* An X-Turn is green in every stage and therefore has no opportunity to clear at the
end of a green phase under TAX (which means that there is a possibility of zero
capacity)
235 Too many different capacity indices used
236* No turns allocated to a lane
237 Unidentified node in a (bus) route
238 * In column 11 (= capacity restraint) on an outbound-only link
239* Error in processing lanes input field
240* Error in processing an entry on a simulation node record in one or more data
fields due to a Fortran read error
241 Not currently in use. (The previous incarnation - too many lines to define a single
bus route; the maximum permitted is 78 – is now Semi Fatal 330.)
242 Error in defining a weaving segment on a simulation link; e.g., the entry link
cannot be matched to an exit link
Code Description
243 Error in defining a weaving segment on a simulation link; not used yet
244 Error in defining a weaving segment on a simulation link; not used yet
245 Error in defining a weaving segment on a simulation link; not used yet
246 Weaving (W) sequence not terminated by an entry link
247 Entry weave (W) link not matched to an exit link sequence
248 Middle weave (W) link not matched to an exit link sequence
249 Failure to identify a link/turn in the KNOBS data file
250 Fortran read error in the KNOBS data file
251 Possibly strange bus turn from a reserved nearside lane; e.g., a route turns
offside and crosses other turns
252* Turn coded as a merge (M) but is crossed by another turn
253 Number of possible u-turns at external simulation nodes exceeds number allowed
for checking in SATALL
254 FILKNB defined but KNOBS = 0
255 FILKNB as defined cannot be opened
256 Minimum stage green time exceeds the input green time
257 Maximum stage green time less than the input green time
258 An external simulation link has zero distance but +ve speed
259 More than 1 data inputs where there should be one; 1 2 not 12
260 Defining a GAP Value in an XFILE for a roundabout turn
261 Suspicious simulation link capacity restraint record - blanks not found where they
are expected (columns 1-10 and 26-35)
262 No zones have been created (so no assignment possible)
263 * Using WSTART = T without defining a trip matrix via FILTIJ
264 * Duplicate links on a single 22222 zonal centroid connector record
265 * Assigning monetary tolls to a user class where PPM = 0
266 Read error on a default S-F curve (D) record under 33333
267 Blank Capacity Index field on a default S-F D-record under 33333
268 Duplicate count: different 7777 sets but different values
269 Unidentifiable node, link or turn: link counts under 77777. See also Fatal Error
337 / Semi-Fatal 437 which may be downgraded to 269 by setting ERRYES(437)
= F. See Note 12) under 6.10.
270 Cannot set the power N from coba-10 speed-flow data
271* WSTART = T requires a .UFO File from the Update network
272 Data In the wrong columns on a node data record
A simulation link has downstream exits but no upstream entries. In other words a
link A-B exists at node B but at A there are no turning movements into A-B; e.g.,
273*
a turn has been left out at A. The same problem can occur if a 1-way simulation
link becomes 2-way at a 2-arm only junction.
Negative KNOBS weighting value used in 88888 Data; if you wish to introduce
274 negative cost components on links you must set negative link properties within
the KNOBS file with a positive 8888 weight.
Code Description
275* A buffer link has no entries apart from its own U-turn
A count field under 77777 has no data entries; possible corrections are to reduce
276
MCCS or to set FREE77 = T for free format entry
A disconnected O-D pair has positive trips in the trip matrix and therefore cannot
be assigned to a path from its origin to its destination. All user classes are
checked individually and potential paths take account of, e.g., banned turns. Note
that if the trip matrix is not specified as an input to SATNET then this particular
277* test is not carried out. Disconnected O-D pairs are also reported in SATALL but
not as semi-fatal errors. Note that destination zones that cannot be reached from
a particular origin are indicated by a large X in the “build a tree to all zones”
option in P1X (see 11.8.3) and that this is a very handy tool for positively
identifying disconnected O-D pairs.
The map network is disconnected; certain nodes cannot be reached from others
278*
and exist as a sort of “island”
The specified Update or Warm Start network (FILUP) cannot be found by
SATNET. Normally this will be a semi-fatal error but, if the file is designed to be
used as part of a supply-demand loop in which case the trip matrix is being
279
iteratively updated and the network on loop n is updated from loop n-1, then it
may well be that no update network yet exists on loop 1. In which case setting a
parameter DIADEM = T changes the NAFF to a NFE.
The PASSQ network has got a different topology from the network being built in
SATNET. This does not prevent flows being passed from one network to the
other since if a link (A,B) exists in the pre-network and has flows queued
upstream then the missing trips will be correctly transferred to link (A,B) in the
280 main network whether or not they have exactly the same link number. It is
possible that, say, a tidal flow system introduced in a later time period may affect
the link structure but a far more likely reason is that the user has input the wrong
filename under FILPQ. Or that the main network has been edited but not the pre-
network.
Column 11 on a simulation link record should be either a blank (normal) or a * to
indicate a second capacity-restraint record to follow. Anything else generates an
281
error, the most likely cause of which is the a-node number in columns 5-10 being
misplaced so it overspills into column 11.
282 Column 11 of a link simulation record must be 0 or blank.
283 Flare markers F or X may not be used on external simulation links
284 Flare markers F or X may not (yet) be used on roundabouts
285 The &OPTION Namelist marker is repeated in the .dat file.
286 The &PARAM Namelist marker is repeated in the .dat file.
287 SPIDER = T is ignored due to previous fatal errors
288 Buffer turns cannot be banned/penalised unless SPIDER = T
Code Description
301 Invalid simulation node number le zero; probably a link record is being read out of
synch
302 The offset exceeds the cycle time or the number of stages must be le 20
303 Junction type out of range
304 The number of legs out of range at a simulation node
305 Node/link/turn cannot be identified
306 The speed or time is non-zero but the distance is zero
307 An A-node has appeared twice at a simulation node
308 Positive turn saturation flow from a link with 0 lanes
309 Incorrect priority marker – cannot be identified
310 Priority marker X has appeared at the same time as G on the same link
311 Priority marker not allowed for a certain junction type
312 Incorrect allocation of lanes for a turn
313 A turn has been coded as a merge (M) but there appears to be no allowed
turning movement to merge with.
314 A turn has not been assigned the obvious lane for its priority code
315 Turn coded as a merge (M) but is crossed by another turn
316 The number of nodes listed as green for a stage exceeds the maximum number
of turning movements
317 A node cannot be identified within a stage definition record
318 An A-node has not been defined as a node itself.
319 A turn has a positive saturation flow but has not been coded as green in the 1
phase coded.
320 A turn is all red but has been assigned a non-zero saturation flow.
321 Something appears twice in the input simulation network data. Note such
problems may be removed by the (correct!) use of the TOPUP option; see 6.15.2.
322 A simulation link joins two external simulation nodes; it must be defined within the
buffer network
323 A simulation link A-B defined at B has not been defined in reverse at node A
324 A turn has a positive saturation flow but its exit link does not exist (i.e., it is one-
way in the other direction. Easily corrected by setting the turn saturation flow to
zero.
325 No connections given for a zone
326 A centroid is connected to a link which cannot be identified or has zero capacity
327 Each assignment node must have an exit – i.e. there must be no points in the
network that traffic can reach but then have no possible exits (see Section 18.10
of the SATURN manual.) N.B. Error 324 will give rise to this error as well but it is
not the only possible source of the problem.
328 Incorrectly formatted 333 buffer input record. For example, the data may have
been formatted using DUTCH = F conventions (5 column blocks) but DUTCH =
T, or vice-versa.
329 Exceeding the size condition on the number of assignment links
Code Description
330 Too many lines to define a single bus route; the maximum permitted is 78
331 Unidentifiable turn in a bus route
332 Zone has been defined twice
333 Unidentifiable node, link or turn: banned turns
334 The number of banned turns is too large
335 The number of nodes used to define the bus route must be >3 and <512
336 No possible path between 2 nodes in a bus route
337 Unidentifiable node, link or turn: link counts in the 77777 data segment. N.B. This
fatal error may be downgraded to a Non-Fatal error 269 if ERRYES(437) = F.
See Note 12) under 6.10.
338 Total green stage times equals zero
339 The number of lanes > 7
340 No turns allocated to a lane
341 Total of inter-greens exceeds the cycle time
342 An off-side filter must be from a one-way entry to a one-way exit
343 Incorrect link capacity restraint record: zero or negative speed, time or capacity
344 No in-bound arms defined
345 Incorrect link capacity restraint record: capacity time < free flow time (or speed >)
346 Duplicate assignment links
347 NUC value found less than NUCMIN
348 Incorrect use of a Q priority marker
349 Incorrectly paired W-marker (non-existent turn) or a Weave marker is being used
with an assignment method (e.g., OBA) which does not support weaves.
Logically the second error should have a distinct error code but at the present
time spare numbers are limited.
350 Incorrectly paired W-marker (other turn not W)
351 Incorrectly coded W-marker – must use either the inside or the outside lane
352 Multiple user classes (NOMADS > 1) but no 88888 records
353 Missing network title/history file too long
354 Same node appears twice in succession in a bus route
355 The number of default speed-flow curves is too large
356 Stack input could be confused with the 99999 records
357 Neither 11111 or 33333 data records found
358 Read error on simulation link time/speed
359 Read error on simulation link distance field
360 Incorrect value of number of signal green node entries
361 Incorrect simulation node record
362 Unidentified simulation A-node and AUTOX = F
363 Blank, zero or negative zone name in 22222 records
364 Repeated Namelist variable name in &OPTION or &PARAM
365 Unidentified capacity index on a simulation link record
Code Description
366 Syntax error in reading > or < entries in a stage green
367 Fortran read error in the KNOBS 33333 extra data line
368 Fortran read error in the stage green nodes
369 Nonsensical data on a simulation link capacity restraint record
370 Failure to open an input UPDATE file
371 Failure to open an input PASSQ file
372 A user class has not been defined within the 88888 records
373 A user class has been defined more than once within the 88888 records
374 Failure to define a CDF file when KOB = 3
375 Failure to open the pre-set CDF file (under KOB = 3)
376 Read failure from a CDF file (under KOB = 3)
377 Unacceptably high level of read errors from a data file
378 Incompatible zone names in the network and trip matrix
379 Time to circle roundabout exceeds/equals the cycle time
380 Using ATLAS = T defines extra zones which do not appear in the assignment
network: assignment is not recommended
381 Failure to open the defined XFILE
382 A near-side (first) turn has been coded as an X at signals
383 Totally incompatible NAMELIST parameters
384 A real number (with decimals) input in an integer-only field
385 KDF() for one U.C. references a non-existent CDF function
386 An &OPTION parameter appears within &PARAM
387 Both a 7777 data section and an external .MCC file are set
388 Negative weighting value (PPM or PPK) used in 88888 data
389 Read errors in all/most default S-F (D) records Under 33333
390 Warning upgraded to a semi-fatal error (WRIGHT = T). (Strictly speaking this
error only occurs as a Semi-Fatal error 490.)
391 Serious warning upgraded to a semi-fatal error (WRIGHT = T) (Strictly speaking
this error only occurs as a Semi-Fatal error 491.)
392 Non-fatal error upgraded to a semi-fatal error (WRIGHT = T) (Strictly speaking
this error only occurs as a Semi-Fatal error 492.)
393 Setting KLUNK > 0 with no indices/user or vehicles classes
394 Cannot open the defined KNOBS File (FILKNB)
395 Negative total fixed link costs; e.g., from setting negative tolls?
396 A filter at signals shares multiple lanes; it should have an exclusive lane
397 An external simulation node has been coded with no zone or buffer outlet
Appendix N - Unused
N. Unused
N.1 Version Control
Appendix O - Unused
O. Unused
O.1 Version Control
P. Unused
P.1 Version Control
=d 226 (V C − 0.75 )
1. INTRODUCTION
This paper presents a flexible, aggregate transport modelling framework with state-
of-the-art model design and implementation that takes advantage of recent
advances in computer power to provide robust demand forecasts within a
reasonable timeframe.
The Great Bristol Modelling Framework (GBMF) has been developed as a six-
stage, fully WebTAG-compliant (DfT, 2004 onwards) aggregate transport model
system to assess a range of potential transport interventions in the West of
England. The GBMF system has been successfully applied to assess a range of
transport interventions (including demand management) and has supported a
number of a Major Scheme Bid (MSB) submissions seeking UK Central
Government funding.
Within the UK, the majority of the transport modelling undertaken for large urban
areas continues to use aggregate models, reflecting the extensive experience in
developing and applying them coupled with the typically smaller data requirements.
Data collection in the UK for transport appraisal typically involves roadside
interview data (RSI), onboard public transport surveys, manual / automatic count
data, and journey time data etc rather than much larger, and more expensive,
household interview data and revealed / stated preference data required to support
disaggregate choice models.
The GBMF modelling system was developed using INRO’s EMME multi-modal and
SATURN (Van Vliet et al, 1980) highway assignment software suites and includes
a number of innovative features such as:
1
• A new P/A-based time of day choice implementation, derived specifically for
this study, that enables time period choice to be undertaken after main mode
choice but before destination choice;
2
The GBMF demand model is an incremental logit-based model following the
WebTAG guidance. Figure 1 shows the demand model hierarchical structure with
the frequency modelling placed at the top and the sub mode choice for both cars
and PT placed at the bottom.
Note that the non-motorised modes such as walk and cycles are not explicitly
modelled in GBMF. There potential impact on demand changes is represented
through the trip frequency sub-model as permitted by WebTAG.
Park and ride (P&R) is treated as a sub mode of car. P&R modelling uses an
absolute logit model of site choice to enable P&R users to choose between
competing sites within their catchment areas.
3
LEVEL OF SEGMENTATION
In addition, the GBMF separately represents light and heavy good vehicles but
these are not considered within the demand model.
4
A higher level of aggregation is undertaken in the public transport assignment
model with segmentation only applied by mode (ie bus, rail, BRT/LRT) reflecting
limitations within the EMME software.
The three (one-hour) supply-side models provide costs for the AM peak period
(07:00-10:00), Inter-peak period (10:00-16:00) and PM peak period (16:00-19:00).
Separate pre-peak hour models represent the travel conditions in the 07:00-08:00
and 16:00-17:00 time period for the AM and PM peak hours respectively. The
demand for these pre-peak hours is a proportion of the peak hours with the factor
derived from local traffic count profiles.
To reduce model runtimes, it is assumed that that the assignment costs for the Off-
Peak (19:00-07:00) representing the travel conditions in that period are a
proportion of the inter-peak period costs.
Convergence Targets
The GBMF demand model, highway and public transport assignment models are
linked together with demand and supply loops controlled in an automated fashion.
The traditional Cobweb averaging method was implemented to determine the
equilibrium point between the demand and supply models and the %GAP measure
(as defined in WebTAG Unit 3.10.4) was used to monitor the level of convergence
achieved. The %GAP measure (across all segments) is defined as:
∑ ijctm ( )
C ( X ijctm ) D C ( X ijctm ) − X ijctm
*100
∑ ijctm
C ( X ijctm ) X ijctm
where:
The GBMF model is run until the convergence level, as measured by the
aforementioned %GAP, is lower than 0.2%. Experimentation has shown that this
requires the highway convergence levels as defined by Wardrop’s equilibrium to be
less than 0.05%. This is a very high level of convergence and incurs a substantial
CPU overhead.
5
Model Runtimes
The largest of the GBMF models has 600 zones and on a standard high-spec
Pentium-4 based desktop PC required more than 100+ hours of CPU time to
achieve the required convergence target. The majority of the CPU time was
required to undertake the highway assignments (and subsequent skimming). To
reduce model runtimes, a number of changes were made including the use of the
latest Intel Quad-core Xeon (X5450) workstations, simultaneous skimming of time,
distance and tolls using the new SKIM_ALL option in SATURN and the
parallelization of the assignment and skimming by time period across the individual
CPU cores as illustrated below in Figure 2.
Demand Model
Not used* Not used*
(Loop n)
Demand Model
Not used* Not used*
(Loop n+1)
The control of the parallel process was undertaken by the new SATURN
MONITOR and WAIT programs called from within the EMME demand model.
Highway Convergence
The SATURN assignment algorithm uses the Frank-Wolfe algorithm (Frank and
Wolfe, 1956) to achieve an equilibrium solution. A characteristic of the algorithm is
a rapid initial decent before a gradual approach to a highly converged solution as
shown in Figure 3. For example, to achieve a %GAP value of 0.05 requires
around 20 times the CPU time to achieve a %GAP of 5.0, eight times the time to
achieve a %GAP of 1.0 and four times the time to achieve a %GAP of 0.5. Clearly,
significant CPU savings may be achieved by (appropriately) reducing the
convergence targets for the SATURN highway model where possible.
6
Figure 3 – SATURN Assignment: %CPU time to converge to %GAP=0.05
%CPU Time
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
9.00%
8.00%
7.00%
6.00%
5.00%
%GAP (Assignment)
4.00%
3.00%
2.00%
1.00%
0.75%
0.50%
0.25%
0.10%
0.05%
70%
60%
Demand Model (%GAP)
%GAP (Supply/Demand
50%
SATURN-CASSINI Convergence
(%GAP=Variable)
40%
30%
Standard SATURN Convergence
(%GAP=0.05)
20%
10%
0%
1 2 3 4 5 6 7 8 9 10 11
Demand Model Loop
7
SATURN-CASSINI
25.00
Standard
20.00 CASSINI
Cumulative SATURN CPU (hrs)
15.00
Time Saving
10.00
5.00
0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Demand Model Loops
With these innovations in optimising the CPU usage, CASSINI has reduced model
runtimes from around 30+ hours to around 18 hours per 2031 forecast year
scenario.
8
In other words, if an outward home-based trip retimed from the morning peak
period to the corresponding inter-peak period in response to the introduction of a
morning peak road pricing, when would the corresponding return leg be
undertaken?
Within the demand model, the challenge was to determine the appropriate travel
demand and associated costs of return-legs of home based trips in a coherent and
consistent manner given that the return-leg journeys were constrained by the
nature of their outward journeys. Whilst WebTAG requires that a PA functional
form should be adopted, it did not provide any guidance on how it may be
implemented.
Methodology
A new PA-based formulation with time period choice was proposed. The
fundamental assumptions underpinning this approach are the use of fixed return
proportions and time of day restriction:
• For outward trips leaving home within each time period, the proportions of
trips returning in subsequently time periods remain fixed by purpose over the
base year and future forecast years. In other words, if AM tolls were applied
and certain trips shifted to the IP period (for example), the return leg of these
transferred outward trips would have the same return patterns as those
already established in the base inter-peak period;
• The time of a day choice starts with the AM Peak period and that trips
departing over the course of the day will all return before the commencement
of the following AM Peak period the next day. In other words, for each
outbound from-home trip, there would be an equivalent trip returning home
during the day and the sum of outward journeys equals to the sum of return
journeys.
Accordingly therefore, only the outward from-home trips in each time period are
explicit modelling variables for the PA formulation within the GBMF demand model.
The return-leg demands were calculated from outward-leg demands with
associated return proportions. The following paragraphs describe the details of the
PA formulation when the time period choice is structured as previously shown in
Figure 1.
Time Periods
Denote the modelled time period as (t), outward from-home time period as (s), and
return to-home time period as (r) respectively. The four time periods (t) in a 24-
hour day are:
9
For each time period t (or s), there are multiple corresponding return time periods
(r) as defined below:
r ∈{op} if t = op.
The above relationship is illustrated below in Table 2 where symbol (√) indicates
available returning time periods for each outward time period:
10
Notation Description Source Data
Calibrated /
Validated
(OD ) 0 Reference OD assignment matrices from origin i to
Tijpcmt base
destination j in time period t by p.c.m (non directional).
assignment
matrices
(OD ) 0 Reference outward OD trips from origin i to destination j in
Tijpcms
time period s by p.c.m (directional from-home).
( PA ) 0
Tijpcmt Reference production-attraction (PA) trips from production
zone i to attraction zone j in time period t by p.c.m.
( PA ) 0 Reference production-attraction (PA) costs from production
Cijpcmt
zone i to attraction zone j in time period t by p.c.m.
Skimmed base OD generalised costs of travel for outward
(OD ) 0
Cijpcms trips in time period s from origin i to destination j by p.c.m
(directional from-home).
Given time period t, skimmed base OD generalised costs of
(OD ) 0
Cijpcmtr travel for trips returning home in time period r from origin i to
destination j by p.c.m (directional to-home)
( PA ) 0
Tijpcm Reference 24hr PA trips from production zone i to attraction
24 Fixed
zone j by p.c.m.
PA costs of travel for time period t converted from relevant
( PA )
Cijpcmt OD outward and return costs from production zone i to
attraction zone j by p.c.m.
Skimmed OD generalised costs of travel for outward trips in
(OD )
Cijpcms time period s from origin i to destination j by p.c.m
(directional from-home).
Given time period t, skimmed OD generalised costs of travel
(OD )
Cijpcmtr for trips returning home in time period r from origin i to
destination j by p.c.m (directional to-home)
The change of PA costs from the forecast year over the
∆Cijpcmt
( PA )
base year from production zone i to attraction zone j in time WebTAG
period t by p.c.m.
CC Composite costs (logsums) over IHL WebTAG
Subject to
λ A series of IHL Spreading parameters over FMTD stages
realism tests
Output
( PA ) Latest production-attraction (PA) trips from production zone directly from
Tijpcmt
i to attraction zone j in time period t by p.c.m. the demand
model
(OD ) Estimated OD outward trips from origin i to destination j in
Tijpcms
time period s by p.c.m (directional from-home).
Given time period t, estimated OD return trips that happen
(OD )
Tijpcmtr in time period r from origin i to destination j by p.c.m
(directional to-home).
Given time period t, the latest total OD trips estimated in the Send to the
(OD )
Tijpcmt current demand/supply loop from origin i to destination j in assignment
time period t by p.c.m (non directional). stage
11
Create Outward and Return Proportions
For a given time period t, the reference proportion of outward (from-home) trips
over total trips was calculated via RSI data, which should only be used once to
create reference PA matrices by time period and by segmentation:
( RSI )
TIJpcms
Pout 0
IJpcmt = ( RSI )
(1)
TIJpcmt
The fixed reference proportions by time period s for GBMF were based on National
Travel Survey (NTS) data supplied by DfT (as shown below in Table 5). Note that
for a given time period s, proportions for trips returning home in time period r are
subject to the following constraint:
∑ Pret
r
0
pcmsr =1 (2)
For a given time period t, reference demands and costs were calculated by the
following two formula respectively:
12
( PA ) 0
Tijpcmt = Tijpcms
( OD ) 0
= Tijpcmt
( OD ) 0 0
Poutijpcmt (3)
( PA ) 0
Cijpcmt = (Cijpcms
( OD ) 0
+ ∑ (Cijpcmtr
( OD ) 0
)' Pr et 0pcmsr ) / 2 (4)
r ≥s
where r ≥ s means that r ranges from the outward from-home time period (s) up to
the last time period (op) in a day, and the (·)’ means a transpose of a matrix. In
other words, the costs defined in (4) are a weighted average of the outward and
return legs.
The daily 24-hour reference demand was the sum of the time period PA demands
(which account for only an half of total OD demands):
24 = ∑ Tijpcmt
( PA ) 0 ( PA ) 0
Tijpcm (5)
t
For each demand / supply loop, the skims from the OD-based assignment by time
period (t) were converted to PA costs for feeding into the demand model. With the
same formulation as given by (4), the PA costs in forecasting considered both
outward and return journeys simultaneously as a weighted sum given below:
( PA )
Cijpcmt = (Cijpcms
( OD )
+ ∑ (Cijpcmtr
( OD )
)' Pr et 0pcmsr ) / 2 , (6)
r≥s
where r ≥ s means that r ranges from the outward from-home time period (s) up to
the last time period (op) in a day.
By adding the relevant return costs, say, any AM tolls will be appropriately
allocated to further to-home trips occurring in the same and subsequent time
periods (i.e. IP, PM and OP), and therefore the impact of AM tolls will be
distributed across all time periods rather than incorrectly allocated to the AM
demand calculation only.
∆Cijpcmt
( PA )
= Cijpcmt
( PA )
− Cijpcmt
( PA) 0
(7)
Based on ∆Cijpcmt
( PA )
, the composite costs i.e. the structured logsums over the various
stages of the demand model were calculated in the standard way:
CC = f (∆Cijpcmt
( PA ) ( PA ) 0
, Tijpcmt , λ) (8)
13
Based on the CC and others, the demand model calculated a new set of PA
outward-leg demands for each demand/supply loop, or simply
( PA )
Tijpcmt = f (CC , Tijpcmt
( PA ) 0
,λ)
( PA )
The outward PA demands Tijpcmt output from the demand model were then
converted to the OD form for assignment. The outward from-home OD demands
are simply the latest PA demands output from the demand model:
( OD )
Tijpcms = Tijpcmt
( PA )
(9)
For given time period (t), the formula to calculate to-home demands is given below
by applying the fixed return proportions over the latest outward from-home trips:
( OD )
Tijpcmtr = ∑ Pr et 0pcmsr (Tijpcms
( OD )
)' , (10)
s≤r
where s ≤ r means that s ranges from the first time period (AM) up to the current
time period t.
Finally, the OD assignment demands were simply the sum of from-home and to-
home trips:
( OD )
Tijpcmt = Tijpcms
( OD )
+ Tijpcmtr
( OD )
(11)
Final Comments
The demand model estimates the outward PA demands directly by standard IHL
technique. The return-leg demands were implicitly considered via the outward
journeys in the following way:
• Return OD costs were incorporated in formulas (4) and (6) above, i.e. the PA
costs are taken as the average OD costs between the outward and return
journeys;
• Return-leg trips were collected by formula (10) from their relevant outward
legs using fixed return proportions. Therefore, any reduction of AM trips
resulting from say, the introduction of AM tolls, would have been mapped
onto the corresponding return legs.
14
C OS T DAMP ENING : VALUE OF TIME VARIATION WITH DIS TANCE
Overview
To overcome this problem, a form of cost dampening was introduced (as now
outlined in the latest WebTAG Unit 3.10.4) whereby the Value of Time (VOT)
varied with distance for non-work trips. The adoption of VOT variation in the
subsequent version 2 enabled the model to successfully replicate the target
elasticities.
WebTAG Unit 3.12.2 (para 11.4.2) provides a formula to estimate local VOTs for
modelling road pricing schemes if the full distribution of income and distance of
trips is known. For GBMF, the average household income for all movements was
incomplete so an alternative expression of the WebTAG formula was derived as
presented below:
ηs ηs
D DC
VOT = max VOTC ,VOTC
D0 D0
where:
• VOT : value of time used in version 2 for non-work trips (which varies by
distance);
• VOTC : the central value of time derived from WebTAG for non-work trips;
• D0 , DC , and η s : parameters.
The formula provides a matrix of VOTs by distance for non-work trips with the trip
length D representing the distance between each i-j pair in typical free-flowing
conditions. The distance elasticity parameter (η s ) is provided in para 11.4.4 of
WebTAG Unit 3.12.2 and is set to: 0.314 for other trips (HBO / NHBO) and 0.421
for commuting trips (HBW), together with the distance parameter D0 as 7.58 miles
(12.2 kilometres). The value of DC was set to 4km to identify the very short
distance trips (including intra-zonal movements).
15
Table 6 below summaries the VOTs used in both GBMF v1 and v2 models by
income group and purpose – the VOT variation by distance used in the v2 model is
represented by the matrix average, minimum and maximum. Note that there was
no variation in VOTs for either car-based Home-Based Work (as the outturn
elasticities were already within the acceptable range defined in WebTAG) or work
trips (single income group).
MODEL C ALIBRATION
The following paragraphs compare the model sensitivity parameters and outturn
elasticities for the GBMF version 1 and version 2 implementations (ie before and
after the introduction of VOT variation with distance)
Table 7 compares the model scale parameters (Theta) between lower level
destination choice lambdas and upper level mode choice lambdas for version 1
and version 2 models alongside the range of illustrative WebTAG parameters for
each purpose. Note that time period choice scale parameters used the same
values as the main mode choice in GBMF as recommended by WebTAG and are,
in effect, undertaken simultaneously.
Table 7 shows that the introduction of variation in VOT by distance enabled the
calibrated Theta parameters for the version 2 model to match the median WebTAG
values. Conversely, several of the version 1 model values were significantly below
the minimum recommended WebTAG target values as indicated by (*).
16
Table 7 – Comparison of Scale Parameters in Mode Choice
WebTAG Theta
Purpose GBMF Theta
(Minimum / Median / Maximum)
GBMF Version 1 (Without VOT Variation)
HBO 0.27 / 0.53 / 1.00 0.51
NHBO 0.62 / 0.81 / 1.00 0.48(*)
NHBEB 0.73 / 0.73 / 0.73 0.46(*)
HBEB 0.26 / 0.45 / 0.65 0.55
HBW 0.50 / 0.68 / 0.83 0.54
GBMF Version 2 (With VOT Variation)
HBO 0.27 / 0.53 / 1.00 0.53
NHBO 0.62 / 0.81 / 1.00 0.81
NHBEB 0.73 / 0.73 / 0.73 0.73
HBEB 0.26 / 0.45 / 0.65 0.45
HBW 0.50 / 0.68 / 0.83 0.68
17
O UTTURN E LAS TICITIES
WebTAG suggests that the fuel cost elasticities should be within the range of -0.1
to -0.4, with the more discretional trips (ie HBO / NHBO) closer to -0.4 whilst more
compulsory trips such as Work (ie HBEB / NHBEB) close to -0.1. WebTAG also
recommends that overall, all-day elasticity should be within the range of around
-0.25 to -0.3, depending on the geographical location of the modelled are and the
relative affluence to the UK as a whole. Using the aforementioned model
parameters (ie lambda and theta values), outturn fuel-cost elasticities were
estimated for the two GBMF model formulations.
Model Performance
Table 9 presents the outturn fuel cost elasticities for the ‘Internal to
Internal/External (‘I to I&E’) movements by time period and purpose where I
represents the main modelled area and E represents the area outside. Note that in
GBMF, external to external movements (E to E) were excluded from the demand
model as the costs of those movements were not fully represented and were only
subject to external growth factors (as were the light and heavy good vehicle
movements).
Table 9 shows that for the version 1 model (without VOT variation with distance),
the outturn fuel cost elasticities were too high for the discretionary trips (HBO and
NHBO) which, in turn, result in overall outturn all-day elasticities noticeably greater
than the WebTAG target values. With the version 2 model, the introduction of VOT
variation with distance enabled the outturn elasticities to fall within the WebTAG
recommended range. The overall elasticity of -0.26 was lower than the maximum -
0.30 target value reflecting the high income levels in the Greater Bristol area
compared to the UK average.
18
5. SUMMARY
The GBMF has been used to support a number of Major Scheme Bid submission
for UK Central Government funding and provides a modular framework that has
been readily adapted to create a family of models of the Greater Bristol area.
6. REFERENCES
Van Vliet, D. Hall, M.D. and Willumsen, L.G. (1980) SATURN - A Simulation-
Assignment Model for the Evaluation of Traffic Management Schemes, Traffic
Engineering & Control, 21, 168-176, April 1980.
19
SATURN MANUAL (V11.2)
Ian Wright, Yanling Xiang, Liz Waller, Jenny Cross & Eric Norton, Atkins Limited
Dirck Van Vliet
1. INTRODUCTION
The first part of this follow-up paper describes the practical benefits of using ‘warm-starts’
with SATURN OBA whereby stored cost and/or flow information from a previously
converged network solution is used to start the current assignment in preference to free-
flow costs and default zero flows typically used. As with path-based algorithms, OBA may
readily use ‘warm-start’ techniques to transfer assigned flows from the ‘old’ network to the
‘new’ one to improve convergence and reduce model runtimes.
Whilst the 2009 release of the SATURN Multi-Core offered significant reductions in model
assignment runtimes, those performance gains have been more than matched by the
practical benefits of embedding origin-based assignments, such as SATURN OBA, within
a full Variable Demand Modelling (VDM) framework. In particular, the use of OBA - in
preference to existing Frank-Wolfe (FW) based algorithms (Frank and Wolfe, 1956) – has
demonstrated tangible benefits in terms of:
improvements in convergence in both the highway assignment and also the supply-
demand equilibrium loops;
the efficiency of the ’warm-start’ OBA (Ws-OBA) in building on stored flows from an
existing, converged solution rather than starting from free-flow conditions; and
faster secondary analysis using the path information retained by OBA.
These practical benefits, over existing FW algorithms, are quantified using two models
developed to support Major Scheme Bid (MSB) submissions and demonstrate that the
origin-based algorithm produces comparable economic (TUBA-based) benefits results to
the existing process. In both cases, the Ws-OBA algorithm achieved high levels of
convergence with substantial reductions in overall computational (CPU) time required.
The second part of the paper presents a new Network Aggregation (NA) Technique
undertaken in SATURN within the initial network building stage. The NA procedure
analyses the network structure to identify ‘chains of links’ that can be aggregated to
provide a much more compact network definition. In effect it may be thought of as a form
of “pre-tree” building in standard FW assignments; in other words, before a minimum cost
tree is built from a single origin a number of minimum cost “sections” are constructed from
existing links which then allow the actual tree building to proceed with larger steps.
Tests using the NA technique on a series of real-life networks reduced CPU times by
similar factors to those offered by SATURN Multi-Core and sometimes well in excess.
1
The development of the hybrid FW-OBA algorithm, previously referenced in the ETC 2009
paper, was subsequently discontinued as it became clear it could not effectively compete
against the latest SATURN multi-core techniques.
The SATURN OBA (along with ‘warm-start’ techniques) was made available to all
SATURN Users with the release of SATURN Version 10.9 in October 2009. The new
Network Aggregation techniques are already in use and will be officially released to the
SATURN User Community in January 2011.
The practical testing for Ws-OBA and Network Aggregation was undertaken using existing
transport models. The transport models used are briefly described below. All tests were
undertaken using SATURN v10.9.
Two MSB-compliant variable demand models were used to compare the performance of
the warm-start OBA and the multi-core FW algorithms:
Model A (A PT Scheme): a new public transport mode introduced in a large
conurbation to enhance the public transport provision; and
The two strategic transport models adopt a similar aggregate form to those previously
described (Xiang et al, 2009b) based around:
Five models were used to demonstrate the practical performance gains available with the
new Network Aggregation technique, implemented in SATURN for FW assignments.
These models are described below:
Model 1: Six user classes, 600 zones, 13515 / 19947 assignment nodes / links;
Model 2: Six user classes, 527 zones, 13342 / 20282 assignment nodes / links;
Model 3: Six user classes, 2520 zones, 57877 / 93905 assignment nodes / links;
Model 4: Two user classes, 229 zones, 4263 / 6440 assignment nodes / links; and
Model 5: Two user classes, 115 zones, 1964 / 3022 assignment nodes / links.
2
PC HARDWARE SPECIFICATION
All the computational results presented in the paper were obtained by using commercially
available standard desktop workstations based around an Intel Xeon Quad-Core CPU
X5450 @3.00GHz with 4 GB of RAM running Window XP 32-bit Operating System).
OBA Overview
Bar-Gera (2002) proved that there is always an equilibrium solution by origin for acyclic
sub-networks and the necessary restriction to using only acyclic sub-networks will not
prevent the algorithm from converging to the true equilibrium solution. The OBA algorithm
uses this concept by always working with acyclic sub-networks, continuously refining the
structure and the flows within each origin sub-network until a perfect Wardrop solution is
obtained.
A consequence of acyclic networks is that, at any stage, the current assignment per origin
may be specified in terms of: (a) a “topologically” ordered list of all nodes starting from the
“nearest” to the origin to the furthest, and (b) a set of “splitting factors” which define, for
each node, the division of flow into that node from each possible entry node. Thus, if node
N is “fed” by two entry nodes A and B then the splitting factors on links AN and BN specify
the relative fractions of origin trips using both those links. In addition both nodes A and B
must be before N in the ordered list. The OBA uses the data structure in order to assign
all traffic for that origin. Starting with the relevant O-D flows initially “loaded” at each
destination, the loading algorithm works from the most distant node back through the order
list of nodes until it eventually reaches the origin, at each node dividing all the
accumulated traffic between the permitted entry links and adding that traffic to the entry
nodes. Since the entry nodes are always lower down in the list, any accumulated flows
will be dealt with later on until all flow arrives back at the origin.
For SATURN-OBA, the node list and splitting factors are saved in an output binary file with
the (arbitrary) extension .UFO. Using the stored UFO files, it is relatively simple to re-
assign a different trip matrix to the same set of paths or, if the network has changed, to
create an alternative UFO structure which is as near as possible to the original but
respects the new network structure. These UFO solutions provide the necessary
information to warm-start another assignment.
To evaluate the performance of the SATURN FW and Warm-start OBA algorithms, Models
A and B were run with the same inputs with the two assignment algorithms. The runs
undertaken were:
Model A: With / Without Scheme scenarios were run for two forecast years; and
Model B: With / Without Scheme scenarios were modelled for one forecast year
(with the benefits extrapolated from a single forecast).
The model forecasts were appraised using DfT’s TUBA software package which
undertakes a full cost-benefit appraisal over a 60-year period.
The relative performance of the models was assessed by determining the supply-demand
convergence and the amount of CPU expenditure required. The %GAP measure (as
defined in WebTAG Unit 3.10.4) was used to monitor the level of convergence achieved.
3
The latest WebTAG (April 2010) suggested that the %GAP measure should be less than
0.01 or 0.1 times the ratio of any scheme benefits to the DM network costs, whichever is
the lower. The Supply-demand %GAP measure (referred to SD-%gap hereafter) is
defined as:
ijctm
C X ijctm D C X ijctm X ijctm
*100
ijctm
C X ijctm X ijctm
where:
- Xijctm is the current flow vector or matrix from the model
- C(Xijctm) is the generalised cost vector or matrix obtained by
assigning that matrix
- D(C(Xijctm)) is the flow vector or matrix output by the demand model,
using the costs C(Xijctm) as input; and
- ijctm represents origin i, destination j, demand segment/user class c,
time period t and mode m.
Supply-Demand Convergence
Figure 1 presents SD-%gap values by supply-demand loop from the later forecast year for
Model A With / Without Scheme using the existing multi-core FW algorithm. The SD
%gap target was set to 0.05 but neither the DM nor the DS scenarios achieved this target
before the maximum number of SD-loops was reached – previous testing had shown that
additional supply-demand loops would only result in further oscillation. The final SD-%gap
values were around 0.1 with oscillation starting to occur from loop 17.
100
With Scheme
Log (SD‐%Gap)
10 Without Scheme
1
1 3 5 7 9 11 13 15 17 19 21 23
0.1
0.01
SD‐Loop
4
CPU Time
To minimise CPU expenditure, the SATURN-CASSINI software (Atkins, 2010) was used to
automatically adjust the convergence targets set for each run of the SATURN assignment
to match the current level of SD convergence. A ‘relaxed’ set of SATURN convergence
criteria (e.g. %gap value of 1.0) were set for the initial loops when the SD convergence
was poor and the trip matrices were still highly uncertain but the criteria were subsequently
tightened (progressively increasing to a %gap value of 0.05) as the overall model
convergence improved.
As noted earlier, both the SATURN assignment and skimming were distributed across the
four available cores.
The largest CPU time was the SATURN assignment accounting for 44% of the total 29
hours required, with skimming accounting for 25% hours and the more complex demand
model only requiring the remaining 31%. Figure 2 clearly shows the potential reductions in
the overall model runtimes even if only small increases in the efficiency of the assignments
and skimming could be achieved.
120
SATURN Skimming
100 SATURN Assignment
Demand Model Process
CPU Time (mins)
80
60
40
20
0
1 3 5 7 9 11 13 15 17 19 21 23 End
SD‐Loop
5
MODEL A WITH WARM-START OBA
Supply-Demand Convergence
Model A was re-run with the same input files but using the Ws-OBA technique. Figure 3
shows the comparative performance of Ws-OBA and the FW algorithm (as previously
displayed in Figure 1). The Ws-OBA technique initially has a steeper descent profile as
well as continuing to descend towards the SD-%gap convergence target of 0.05; the target
was reached within only 15 loops.
100
Log (% SD‐Gap)
10 FW
OBA
1
1 3 5 7 9 11 13 15 17 19 21 23
0.1
0.01
SD‐Loop
CPU Time
Figure 4 shows the profiles of CPU expenditure by loop for Ws-OBA (and comparable to
Figure 2). Whilst the average CPU time for each iteration of the demand model
component remains unchanged, there are significant time savings in the highway
assignment and substantial reductions in the skimming time.
6
Figure 4 – Ws-OBA CPU Time by Model Component by SD-Loop (Model A)
120
SATURN Skimming
100 SATURN Assignment
Demand Model Process
CPU Time (mins)
80
60
40
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 End
SD‐Loop
As noted above, the Ws-OBA model run reached the stopping criteria in 15 loops whereas
the FW-based model run did not achieve the stopping criteria but was terminated after the
maximum number of loops (24). Table 1 compares the CPU time required to achieve the
lowest SD-%gap value (15 loops for Ws-OBA and 22 loops for FW). The table shows that
the Ws-OBA algorithm out-performed FW with a much lower SD-%gap value (0.048
versus 0.071), achieved in around half the CPU time.
Table 1 – CPU Time by Model Component (Model A, With Scheme)
Table 2 summarises the SD-%gap levels achieved and CPU expenditure after the 15 SD-
loops (when Ws-OBA had reached the SD convergence target). At this stage, the FW SD-
%gap value was twice the Ws-OBA value. In terms of the CPU time expended by each
VDM component, additional CPU time was required for the Ws-OBA assignment (+14%)
but this was more than offset by the 39% reduction in the CPU time required for skimming.
7
Table 2 – CPU Time by Model Component after 15 Loops (Mod A, With Scheme)
The OBA algorithm stores route information during the assignment and provides two
distinct advantages over the existing FW algorithm. Firstly, after the initial loop 1
assignment, the subsequent highway assignments may be continued from the previous
converged assignment rather than starting from free-flow network conditions. The
differences in the start and end %GAP values in the assignment between the two
algorithms are illustrated below in Figure 5 (FW) and Figure 6 (Ws-OBA). Ws-OBA
provides a significant reduction in the CPU time required in subsequent loops (as
highlighted in Table 1). Secondly, the highway costs are skimmed from the assignment by
simply summing the origin-based route proportions rather than re-building the paths from
the link information stored.
100
10
Log (Assignment %Gap)
1
1 3 5 7 9 11 13 15 17 19 21 23
%GAP ‐ Final Loop
0.01
SD‐Loop
8
Figure 6 – Ws-OBA Internal SATURN Convergence by SD-Loop (Model A)
100
%GAP ‐ 1st Loop
10
%GAP ‐ Final Loop
Log (Assignment %Gap)
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0.1
0.01
SD‐Loop
TUBA Results
The business case TUBA benefit analysis was undertaken for Model A to determine the
impact of the Ws-OBA on the final scheme benefits. The overall impact of the proposed
scheme – as indicated by the Present Value of Benefits (PVB) measure – is summarised
below in Table 3. The table shows that the overall PVB increased due to the higher levels
of convergence achieved (and hence, reduced assignment ‘noise’) in the OBA-based
highway model forecasts.
Supply-Demand Convergence
The Model B VDM tests evaluated a highway scheme for a single forecast year with the
comparisons undertaken for Model A repeated for Model B. Figure 7 compares the SD
convergence profile for the With Scheme scenario using the existing FW and Ws-OBA
algorithms. As with Model A, the Ws-OBA algorithm has a steeper descent profile as well
as continuing to decrease towards the SD-gap convergence target. The target
convergence was reached within only 15 loops using the Ws-OBA algorithm whereas the
FW algorithm started to oscillate from loop 18 with a SD-%gap value of around 0.1.
9
Figure 7 – Comparison of SD Convergence Profiles (Model B, With Scheme)
100.0
FW
10.0
OBA
Log (SD‐%Gap)
1.0
1 3 5 7 9 11 13 15 17 19 21 23
0.1
0.0
SD‐Loop
CPU Time
Table 4 compares the CPU expenditure required by the FW and Ws-OBA algorithms to
reach their lowest SD-%gap value. The relative performance of the two algorithms is
similar to that found in Model A. The FW algorithm required around 30 hours of CPU
expenditure to achieve its lowest SD-%gap value of 0.078 whereas the more efficient Ws-
OBA algorithm reached the target SD-%gap value of 0.050 in around 16 hours of CPU –
slightly more than half that of the FW algorithm.
TUBA Results
A TUBA evaluation was undertaken for the Model B highway scheme using both the FW
and Ws-OBA algorithms. The overall impacts of the scheme are given below in Table 5
(with the values normalised to the FW Total PVB). The analysis confirms that the project
benefits using the two algorithms were very similar.
10
Table 4 – Comparison of Projected Present Value of Benefits (Model B)
FW Ws-OBA
Total PVB 1.00 1.02
The results from the performance undertaken with Models A and B clearly demonstrate
the practical benefits gained with the new Ws-OBA when compared to the existing FW
algorithm. The Ws-OBA achieved far higher levels of supply-demand convergence and
within substantially less computational time (typically a factor of two lower).
With the saved path information always available, OBA is shown to provide substantial
time savings for undertaking cost skimming. (Similar performance gains would be
achieved for the other secondary analysis processes).
The TUBA economic evaluation demonstrated that the Present Value of Benefits for the
schemes were comparable between the two algorithms though, in the two networks
tested, that the projected highway benefits were higher.
4. NETWORK AGGREGATION
BASIC CONCEPTS
The total time required to carry out a single all-or-nothing assignment step, the basic
building block of the Frank-Wolfe algorithm for traffic assignment within SATURN, is an
increasing function of: (a) the number of (origin) zones; (b) the number of nodes; and (c)
the number of links (see Van Vliet (1978) for “typical” formulae). While (a) is fixed, any
reductions in either (b) or (c) should therefore lead to reduced CPU times and this is the
objective of a “network aggregation” technique proposed in Van Vliet (1978).
For example, a one-way link from A to B followed (in series) by a one-way link from B to C
(so that node B has only one entry and one exit) may be replaced by a one-way link from
A to C with a cost equal to the sum of the costs on A-B and B-C. Thus we have reduced
two links to one link and removed node B while at the same time retaining the same cost
of travel between A and C so that, if links A-B + B-C are part of a minimum cost path from
a particular origin in the original network, then so is A-C in the aggregated version of the
network. This geometry commonly occurs in SATURN networks with, e.g., network
shaping nodes, centroid connector stubs and separate bus lanes.
Less obviously a node with three arms may be removed entirely and its input and output
links replaced by pairs of links such that the total number of links is not increased.
Equally, nodes with four or more arms may also be removed although there is no
guarantee that the number of output links is reduced (which depends on how many links
are one-way).
A (semi-empirical) methodology has been introduced into the network building procedures
within SATNET to produce aggregated networks by removing nodes in a progressive
manner. Further information may be found in the SATURN User Manual (Atkins, 2010)
including a detailed description of the NA techniques with illustrated examples.
11
The Frank-Wolfe algorithm in SATALL proceeds as normal by optimally combining an
auxiliary all-or-nothing solution of basic link flows with the current solution but with one
major exception. Thus the NA technique uses the aggregated network (as a "shortcut") to
build and load minimum cost trees in order to obtain the all-or-nothing basic link flows,
rather than use the full network. This in turn involves three extra steps:
Prior to tree building calculate the current cost of each aggregated link by summing
the costs of its constituent basic links;
Remove the more costly of any duplicated aggregated links (i.e., links with the
same A-node and B-node, of which there may be a sizeable proportion); and
Post loading of the aggregated network, transfer the flows loaded onto the
aggregate links back onto their constituent basic links to obtain “auxiliary” all-or-
nothing flows on the basic links.
PERFORMANCE
Table 5 also describes the number of ‘Duplicates’ and ‘Equivalent’ links. ‘Duplicates’
refers to sets of links – see above – which may be replaced by a single link, thus saving
CPU time. ‘Equivalent links’ is the sum of all links in the underlying assignment network
which are included within individual links in the aggregated network.
12
Table 5 demonstrates the reductions in the number of nodes by factors of up to eight but
only modest reductions or even increases – sometimes appreciable - in the number of
links. Pure assignment runtimes were typically reduced five-fold but with reductions in
excess of ten times for certain networks, equivalent to or greater than the performance
gains offered by SATURN Multi-Core.
However, since SATURN incorporates both assignment and simulation sub-models and
the CPU time for the simulation is unaffected by network aggregation the overall
reductions for full runs are less spectacular than those demonstrated for pure assignment
sub-models. The following sections present full SATURN assignment CPU comparison
results based on the test models 1-5 (as presented in Section 2) by running:
Standard FW;
Multi-Core FW;
FW with NA technique; and
Multi-Core FW with NA technique.
The assignments were undertaken on the same desktop PC with up to four cores available
to the software package. The three main elements of the SATURN assignment are:
Path-building and loading with fixed flow-delay relationships (assignment);
Updating the flow-delay relationships representing vehicle interactions at modelled
junctions (simulation); and
Re-estimation of the final paths and costs for skimming (SAVEIT – if selected).
The first and third elements are multi-threaded whilst the simulation remains a sequential
process. Consequently, the reductions in CPU time arising from using both network
aggregation and multi-core processes do not directly translate into the same proportional
reduction in total CPU time.
Figure 8 presents the total CPU times for the FW algorithm combined with the NA and/or
Multi-core techniques using the five SATURN models. The total CPU time is normalised
with respect to the standard FW algorithm.
The results show that all three techniques - using either Multi-Core and/or Network
Aggregation - are at least twice as fast as the existing standard FW algorithm for all five
models and, in the best case found, virtually 20 times faster.
The reductions in CPU expenditure achieved by the Multi-Core algorithm or the Network
aggregation on its own are broadly comparable with CPU time reducing by a factor of 2 to
2.5 for Model 5, increasing to factors between 4 and 5 for Model 1. In most cases,
aggregating the network before assignment is more efficient than distributing the original
network across more than one CPU core – the exception is the very large Model 3
network.
13
Figure 8 – CPU Time by Algorithm (Normalised to Standard FW)
0.50
Model 5 0.40
0.33
0.44
Model 4 0.44
0.31
0.28
Model 3 0.36
0.07
0.27
Model 2 0.15
0.06
0.26
Model 1 0.18
0.05
Flow Differences
The different techniques were run to the same level of convergence. A standard
regression analysis was undertaken for Model 1 to compare the assigned link flows and
the analysis confirms that the assignments were virtually identical.
Despite the impressive reductions in CPU time achieved with the current techniques there
are almost certainly further improvements possible. The rules that are used to determine
when a node should be aggregated – and indeed the order in which nodes are considered
- are highly empirical and their efficiency is highly dependent on unknown factors, e.g.,
how many new links will form duplicates which may be subsequently removed. A more
“intelligent” set of rules would doubtlessly lead to further improvements in CPU times.
14
a minimum cost segment for multiple origins then replacing it by a single aggregate link A-
F reduces CPU. On the other hand if the aggregated link A-B-C-X-Y-Z never features as
part of a minimum cost path then its presence simply wastes CPU.
The “trick” therefore is to selectively aggregate “good” link sequences and to avoid the
“bad”; it should almost certainly be possible to improve the current rather simple-minded
procedure.
There may also be more efficient methods for combining links together which are
dependent on a particular set of link costs - as opposed to the current network aggregation
procedure which aggregates links without regard to costs.
It may also be possible to eliminate a greater number of aggregated links prior to tree
building, rather than just removing the more expensive duplicates. For example, one may
be able to apply a “triangle rule” which says that if nodes A, B and C form a triangle and
c(A,B) + c(B,C) < c(A,C) then link AC may be disregarded in terms of tree building (for that
particular set of costs, not necessarily universally).
The above thoughts on eliminating certain links are based on the empirical observation
that in most aggregated networks less than 50% of all aggregate links are assigned flows
so that, had they been eliminated a priori, the ultimate solution would be the same but
achieved more quickly.
WARM-START OBA
The performance results from Models A and B clearly demonstrate the benefits to be
gained with the new Warm Start OBA algorithm when compared to the FW. Ws-OBA
achieved far higher levels of supply-demand convergence in a VDM context, and within
substantially less computational times (typically half).
With the saved origin-based information always available, OBA is also shown to provide
substantial time savings for undertaking the cost skimming. (Similar performance gains
would be achieved for the other secondary analysis processes).
The TUBA economic evaluation demonstrated that the Present Value of Benefits for the
schemes were comparable between the two algorithms though, in the two networks
tested, the projected highway benefits were higher.
15
NETWORK AGGREGATION
Currently the NA technique has only been coded in SATURN for the FW assignment with
either single core or multi-core implementation, not OBA. In principle, the technique may
be applied to any assignment algorithm during the path building and loading stages which
are normally computationally intensive in terms of runtimes.
FUTURE DEVELOPMENTS
A natural extension of the NA technique is to the existing SATURN OBA and further
development is currently underway in this area. The introduction of NA into OBA is
theoretically guaranteed to mathematically converge (with the proof provided in Appendix
A). The mathematic proof shows that the Jacobian matrix of link costs in an aggregated
network is always symmetrical for the off-diagonal terms. It is well known that with
symmetrical Jacobian matrix, an traffic assignment problem can always be formed as an
equivalent minimisation problem with solutions (Dafermos,1971) that satisfy Wardrop user
equilibrium conditions. In the context of OBA, a unique global minimum solution was
mathematically proven by Bar-Gera (2002) and the use of a network, in aggregated form,
does not affect the properties of Bar-Gera’s algorithm.
The forthcoming extension of NA techniques to OBA will further enhance the practical
benefits of Origin-based assignments.
16
7. REFERENCES
Van Vliet, D. Hall, M.D. and Willumsen, L.G. (1980) SATURN - A Simulation-Assignment
Model for the Evaluation of Traffic Management Schemes, Traffic Engineering & Control,
21, 168-176, April 1980.
Van Vliet, D. (1978) Improved shortest path algorithms for transport networks,
Transportation Research Vol. 12, 7-20.
Atkins Limited (2010), The SATURN-CASSINI User Guide, SATURN Manual (v10.9),
Section 15.54 and Advanced SATURN Workshop, Day 2, Session 5 (Atkins, 2009).
Frank, M and Wolfe, P (1956), An algorithm for quadratic programming, Naval Research
Logistics Quarterly, No. 3 1956, pp. 95-110.
17
APPENDIX A – THEORETICAL PROOF OF EXTENDING NA TECHNIQUES TO OBA
Let a transport network represented by a direct graph G ( N , L) where N is the set of nodes and
L is the set of links. And, a spider web network is defined by another direct graph G' ( N ' , L' )
where N ' is the set of nodes and L ' is the set of links
Notation:
Proof
v V
C T c( V )
For a normal network a, link flow on it is then as:
v a S aS VS (1)
C S a Sa
T
c a (v a ) a Sa
T
c a (S aS VS ) (2)
Giving two spider web links A and B and from (1) and (2), we have
C A a Aa
T
c a ( A aAV A )
C B a Ba
T
c a ( B aBV B )
dv a
aS
dVS
The off-diagonal terms of Jacobian matrix of cost function of spider web network are:
C A T dc a dv a T dc a dc
a Aa a Aa aB a aA aB a (3)
V B dv a dV B dv a dv a
18
C B T dc a dv a T dc a dc
a Ba a Ba aA a aB aA a (4)
V A dv a dV A dv a dv a
Clearly, from the right hand side of (3) and (4), the following
C A C B
V B V A
Therefore, the Jacobian matrix of a spider web network is symmetric. Consequently, the traffic
assignment problem may be expressed as a minimisation problem (Dafermoss 1971).
C A T dc a dv a T dc a
a Aa a Aa aS (5)
V A dv a dV A dv a S
C B T dc a dv a T dc a
a Ba a Ba aS (6)
V B dv a dV B dv a S
C A C A C B C B
0 0
V A V B ,
V B V A
Therefore, for each row of the Jacobian matrix, the diagonal term is always larger than off-diagonal
terms and indeed it is the sum of all them. A specific example for a three-arm node N which is
aggregated is given below.
A
c1 A
c5 V1
c3 V6
N c6 C C
V4 V
2 V3
c2
c4 V6
19
B
B
A NEW IMPLEMENTATION OF ORIGIN-BASED ASSIGNMENT ALGORITHM IN
SATURN
1. INTRODUCTION
The most common traffic assignment algorithm used in practice is the link-based
Frank-Wolfe algorithm (Frank and Wolfe, 1957), which has been the principal
assignment algorithm (with various modifications) used in the SATURN highway
assignment suite since its first release in 1981 (Van Vliet et al, 1980). Whilst the
Frank-Wolfe (FW) algorithm is theoretically proven to produce a converged
solution (when the problem has a convex optimisation formulation) it fails to
achieve accurate solutions within any practical computation timeframe.
A secondary benefit of the OBA algorithm is that the secondary analysis that
requires route information (e.g. select-link analysis and cost skimming) may be
readily extracted from the route information stored during the assignment rather
than having to be subsequently re-built from the link information stored under FW.
This paper presents the subsequent developments of OBA within SATURN: (i) the
extension of the algorithm to handle multiple user class (MUC) assignments; and,
more recently, (ii) a hybrid algorithm combining the speed of Frank-Wolfe algorithm
with the accuracy of OBA. This development work continues and the latest results
presented show its potential. The recent release of multi-threaded implementation
of the existing FW algorithm (SATURN Multi-Core) provides further exciting
opportunities to combine the speed of FW with the subsequent accuracy of OBA
MUC.
1
This paper is organised as follows: Section 2 presents an overview of the OBA
algorithm (applicable to both SUC and MUC implementations) whilst Section 3
describes the extension of the existing OBA algorithm for the MUC problem as well
before providing a practical comparison of FW and OBA algorithms. Section 4
describes the hybrid algorithm with latest results whilst Section 5 provides a
summary of the findings.
Unlike the link-based FW algorithm, the routes created by the OBA path-building
process connecting the origin to all other origins cannot pass through the same
node more than once – the resulting subnetwork is described as ‘a-cyclic’. The
work undertaken by Bar-Gera (2002) proved that there is always an equilibrium
solution by origin for a-cyclic subnetworks and the restriction to using only a-cyclic
subnetworks will not prevent the algorithm from converging to the true equilibrium
solution.
The main solution variable in the OBA algorithm is the calculation of the origin-
based approach proportions for every origin and every link in the subnetwork, such
that for every origin p and node i contained therein:
• the sum of origin-based approach proportions, for each origin p over all
subnetwork links ending at node i is equal to one; and
• the approach proportions for origin p of links that are not included in the
subnetwork are restricted to zero.
Advantages
2
Most computations in the proposed algorithm are done in a single pass over the
nodes, either in ascending or descending topological order. The time required by
such computations is a linear function of the number of links in the network. This
computational efficiency is a major advantage of the restriction to a-cyclic
solutions.
TRAFFIC AS S IGNMENT
In solving the traffic assignment problem, the algorithm starts with trees of
minimum cost routes as restricting subnetworks, leading to an all-or-nothing
assignment. Then, the algorithm considers all origins in a sequential order. For
each origin the restricting subnetwork is updated, and the origin-based approach
proportions are adjusted within the given restricting subnetwork.
3
Achieving Convergence using ‘Social Pressure’
The search direction is beneficial in the sense that it always enjoys positive social
pressure for small step sizes but, as the step size increases, the social pressure
decreases, and eventually it may become negative. The objective is to determine
the largest step size with positive social pressure - this social pressure principle is
similar to the stopping condition of the line-search in the Frank-Wolfe algorithm.
O VERVIEW
The OBA algorithm was originally implemented for single user class problems but
the principle restriction to SUC related to the implementation rather than any
theoretical considerations. By its nature, OBA creates multiple copies of the same
network via its use of a-cyclic subnetworks and provides a flexible framework that
may be readily expanded.
Within OBA, the origin-based link flows are independent between origins and the
revisions to handle MUC problems naturally extends that principle such that the
origin-based link flows are independent by origin and user class. In theory, the
extension to MUC problems is simply achieved by considering the MUC network
as an enlarged SUC network, whereby the origins for each user class are arranged
sequentially in turn as if they were consecutive origins with the total number of
virtual origins equal to the number of user classes (UC) multiplied by the number of
zones.
P ROGRAMMING
4
The existing OBA was coded in the C language and linked to the existing SATURN
FORTRAN through object libraries. Whilst the majority of the changes were
(relatively) straightforward, the principle complication occurred in the calculation of
link costs for MUC networks. For the existing FW assignments implemented in
SATURN, SUC and MUC link costs are calculated differently – for MUC, link costs
are the summation of:
The cost function in the C programming for MUC OBA was implemented in a
similar way as that in FORTRAN for MUC FW assignments. The handling of
banned links in C was actually a translation of equivalent FORTRAN code. For the
calculation of cost derivatives, no special treatment was needed as they are a
function of congested link flows which are UC independent.
The following summarises key techniques and methods that were adopted for the
development of the MUC OBA in SATURN with C programming:
• The MUC OBA assignment initialisation was based on the same principle as
that of SUC OBA - an All-Or-Nothing (AON) shortest path calculation. The
only difference was that, in addition to the UC-independent free flow costs,
the UC-specific fixed costs formed the basis for MUC route initialisation; and
Figure 1 below presents the flow chart of the implementation of MUC OBA
algorithm in SATURN.
5
end for
Main loop:
for n=1 to number of main iterations
for every UC k
Get fixed costs and link/turn bans for UC k
for every origin p
update restricting subnetwork A p
update origin-based approach proportions α pa
end for
end for
for m=1 to number of inner iterations
for every UC k
Get fixed costs and link/turn bans for UC k
for every origin p
update origin-based approach proportions α pa
end for
end for
end for
end for
Update restricting subnetwork for UC k and origin p:
remove unused links from A p
for every node i compute the maximum cost ν i from p to i
for every link a=[i,j]
if ν i <ν j add link a to A p
find new topological order for new A p
update data structures
Update origin-based approach proportions for UC k and origin p:
compute average costs and Hessian approximations
for step size 1,1/2,1/4,1/8…
compute flow shifts and scale by step size
project and aggregate flow shifts
if social pressure is positive then stop
end for
apply flow shifts
update total link flows and link costs
The performance of the new OBA MUC algorithm against the existing FW-
implementation in SATURN is shown below for two real-life models:
• Model 1 was a relatively small SATURN assignment model with six user
classes, 216 zones, 3001 assignment nodes, and 4545 assignment links;
whilst
• Model 2 was a much larger SATURN model with nine user classes, 453
zones, 7063 assignment nodes, and 10285 assignment links.
6
The comparisons illustrate %GAP against total CPU time in hours. %GAP is a
normalised convergence indicator for Wardrop equilibrium - in SATURN it
measures the degree to which the routes assigned are minimum cost routes after
the simulation stage.
Figure 2 shows the convergence for the OBA MUC and FW algorithms for Model 1
whilst Figure 3 provides the same comparison for Model 2. For both models, whilst
the FW algorithm was more efficient in early stages, it did not reach the same low
level of convergence that OBA subsequently achieved within the equivalent CPU
time.
Figure 2 - SATURN Convergence (Model 1)
1.0
0.0 1.0 2.0 3.0 4.0 5.0 6.0
0.1
0.01
%GAP
FW
OBA
0.001
0.0001
0.00001
CPU Time (minutes)
0.1
%GAP
0.01 FW
OBA
0.001
0.0001
CPU Time (minutes)
7
S UMMARY
The analysis shows that the OBA MUC algorithm was able to achieve higher levels
of convergence than the FW algorithm within similar CPU expenditure. Whilst the
existing FW algorithm was much faster in the initial stages it eventually became
‘stuck’ and unable to reduce the convergence error within its assigned solution.
More recently, a new hybrid algorithm - combining the speed of Frank-Wolfe with
the accuracy of SATURN-OBA – has been developed to enable very highly
converged highway assignment solutions to be achieved without a significant
increase in CPU overheads. The current development work is focussing on the
optimal strategy for balancing the CPU time required and the level of convergence
achieved.
S ATURN AS S IGNMENT
The hybrid algorithm initially starts off with the FW algorithm before transferring to
the OBA MUC algorithm. The transfer point is determined by the level of
convergence between the assignment-simulation loops in SATURN.
Assignment-Simulation Loops
The SATURN assignment consists of two modules (Figure 4): (i) a pure
assignment module based on “separable” link cost-flow functions; and (ii) a
simulation stage which accounts for non-separable interactions between traffic
streams at junctions. The assignment provides link (and turn) flows to the
simulation which, in turn, produces an updated set of separable cost-flow functions
based on the junction interactions for use in the next assignment. These two
modules are run in an iterative loop until: (i) both modules have converged
internally; and (ii) the changes in the cost-flow functions and/or link flows are very
small.
8
Switching Between Algorithms
A key feature of the early assignment-simulation loops is the large changes in the
cost-flow functions between successive loops. These occur because of the large
imbalance in the assigned flows estimated in the current assignment and those
derived from the previous loop and used in the simulation. Consequently, at this
early stage, it is not necessary to estimate a highly converged assignment and it is
more efficient, in terms of CPU required, to use FW. However, once the
convergence between the assignment and simulation has begun to stabilise, it is
advantageous to have a highly convergent assignment available with OBA.
The performance of the hybrid algorithm against both the FW and OBA MUC
implementation in SATURN is shown below for three more real-life models using
the same comparisons previously shown in Section 3 with (Log) %GAP plotted
against total CPU times. The Hybrid algorithm was also tested using the earlier
models and the performance of the algorithm is also presented. The three new
models were:
• Model 3 was a SATURN model with nine user classes, 321 zones, 5678
assignment nodes, and 8354 assignment links;
• Model 4 was a larger SATURN model with five user classes, 510 zones,
15875 assignment nodes, and 22113 assignment links; and
• Model 5 is a SATURN model with a single user class, 846 zones, 15599
assignment nodes, and 26849 assignment links.
Different convergence targets were used depending on the overall size of the
model. A convergence target of %GAP < 0.0001 for four consecutive loops was
set for Model 3 whilst more relaxed targets of %GAP < 0.001 and %GAP < 0.01
(for four consecutive loops) was selected for the larger Models 4 and 5
respectively.
Figure 5 compares the profiles for the three algorithms for Model 3 with the
assignment terminated when the convergence criteria was met. As previously
described in Section 3, the FW algorithm was quicker in the early stages despite
the oscillations in performance. The MUC OBA algorithm was much slower to
achieve similar levels of convergence but less prone to oscillation as well as
having a more linear descent profile. If the assignment was continued beyond the
pre-defined convergence target, the algorithm would have converged to a lower
%GAP value than would be achieved by FW.
The hybrid algorithm combined the strengths of the two algorithms: the initial rapid
improvements in convergence from FW followed by a steady decent profile of OBA
MUC. Within these tests, the switch to MUC OBA was undertaken at an early
stage (i.e. %GAP < 0.1) – empirical testing showed that switching to OBA MUC at
this level of convergence enabled lower %GAP values to be subsequently
achieved. Further optimisation work is underway in this area.
9
Figure 5 - SATURN Convergence (Model 3)
1.0
0 5 10 15 20 25 30 35
Switch from FW to
OBA for Hybrid
0.1
0.01
FW
%GAP
OBA
Hybrid
0.001
0.0001
Figure 6 provides a similar comparison for the larger Model 4 with the assignment
also terminated when the convergence criteria (%GAP < 0.001) was achieved.
The MUC OBA and Hybrid algorithms performed less well with FW achieving the
convergence target much more quickly. The MUC OBA algorithm eventually
achieved a lower %GAP value but a considerable extra CPU overhead was
incurred. Conversely, the Hybrid algorithm incurred some oscillations in the
convergence caused by variations in flows and cost-delay functions in the
simulation between successive loops.
1.0
0 50 100 150 200 250
0.1
FW
%GAP
OBA
Hybrid
0.01
0.001
10
Figure 7 provides the same comparison for the Model 5 with the assignment
terminated when the convergence criteria (%GAP < 0.01) was achieved. Whilst
the MUC OBA converges much more slowly, the Hybrid algorithm is comparable to
the FW algorithm in terms of CPU expenditure to reach the same convergence.
Figure 7 - SATURN Convergence (Model 5)
10.0
Switch from FW to
OBA for Hybrid
1.0
0 10 20 30 40 50 60 70
FW
%GAP
0.1 OBA
Hybrid
0.01
For completeness, Figure 8 shows the performance of the Hybrid model for Model
2 previously tested in Section 3. As with the other models, the Hybrid algorithm
shared the initial characteristics of the FW algorithm before providing an OBA
solution to a higher level of accuracy.
1.0
0 10 20 30 40 50 60 70
Switch from FW to
OBA for Hybrid
0.1
%GAP
0.01 FW
OBA
Hybrid
0.001
0.0001
CPU Time (minutes)
11
S UMMARY
By combining the rapidity of the FW algorithm in the early stages and subsequently
switching over to OBA MUC algorithm, the Hybrid algorithm has shown
performance advantages and its potential in solving real-life traffic assignment
problems:
• It is (generally) faster than OBA MUC alone but also more accurate than FW
in assignment convergence; and
5. CONCLUSIONS
The hybrid FW-OBA MUC algorithm brings together the advantages of FW and
OBA MUC and has led to improvements in computer runtimes and/or assignment
accuracy. The switch to OBA guarantees greater accuracy in the final equilibrium
assignment such that the impact of assignment noise is significantly reduced
(compared to existing FW-based processes) and high levels of convergence.
Development work continues on the hybrid method already available in the latest
SATURN Beta versions with work focussing on further optimisation of the switch-
over strategy and associated controls.
The current OBA MUC development work has also reinforced the importance of
good quality network coding. Convergence within SATURN is sensitive to the
interactions between the assignment and simulation loops. New OBA algorithms
are able to achieve very high levels of convergence but only if the network coding
enables robust and stable estimates of flow and travel costs to be calculated.
12
6. REFERENCES
Kupsizewska, D and Van Vliet, D. (1999) UK 101 uses for path-based assignment,
European Transport Conference 1999.
Van Vliet, D. Hall, M.D. and Willumsen, L.G. (1980) SATURN - A Simulation-
Assignment Model for the Evaluation of Traffic Management Schemes, Traffic
Engineering & Control, 21, 168-176, April 1980.
13
SATURN MANUAL (V11.2)
Appendix U - Unused
U. Unused
U.1 Version Control
THE MODEL
In brief the number of trips from origin i to destination j in time period t, T ijt ,
(assuming, for the moment, a single user class) depends on 3 factors:
1) The value of T ijt in some base year;
2) A growth factor (either universal or i/j dependent) to reflect exogenous
growth in some forecast scenario;
3) A logit-style deterrence function of the form exp(-β(C ijt – C ijt 0)) where C ijt is
the cost from i to j in the forecast scenario and C ijt 0 is the equivalent in the
base year.
(In addition there is, in effect, a fourth term which constrains the total number of
trips from i to j to the total reflected by the growth factors in (2) above.)
Mathematically:
Equation V-1
( (
S ijt exp -β c*ijt − d ijt)) × S
exp (-β(c − d ))
Tijt =
∑ * ij
S ijτ ijτ ijτ
τ∈All t's
Where:
T ijt Demand flow on all paths from origin i to destination j in time slice t;
d ijt (C ijt 0) Generalised path cost, including any toll or road pricing charge,
from origin i to destination j in the base year for time slice t
S ijt Forecast trip demand, if costs remains fixed at d ijt , from origin i to
destination j in time slice t. equal to the base year matrix multiplied by
any growth factors; e.g., S ijt = 1.20 T ijt 0
S ij ∑S
t
ijt ; i.e., total forecast trip demand from i to j for all time slices
Thus if the costs in a par ticular time slice increase (and other costs remain the
same) then the third term above diverts trips to the alternative time periods;
conversely if costs are reduced this will lead to an increase in trips in that period. If
the costs are unchanged from the base year then the relative distribution across
time periods is also unchanged.
Note that the “current” path costs c ijt referred to above must be t he costs after
assigning T ijt . In other words c ijt and T ijt must be self-consistent or “in equilibrium”
in the same sense that an elastic demand model must be in equilibrium with its
assigned flows. We therefore require joint solution algorithms which are
guaranteed to converge to the correct equilibrium; see 1.3 below.
DISCUSSION
It can be ar gued that the use of a l ogit choice model is less than perfect in the
case of departure time choice, in particular when the time periods are relatively
short and there is a high degree of correlation between them. In addition there is
nothing in the above cost-based term to reflect the empirical fact that for certain
trips, in particular the journey to work, travellers prefer an ear lier departure to a
later in order that they may arrive “on time” (an effect which more recent and more
complex time choice models can incorporate).
However one major advantage of the above model is that it has been shown in a
PhD dissertation by KK Chin (based, in part, on research carried out for the then
DTp) that the departure time choice model and t he Wardrop-equilibrium
assignment per time period which follows may be represented by the minimisation
of a joint objective function so that, in effect, the joint problem of departure time
and route choice is equivalent to a Wardrop assignment problem over a “hyper
network” to which a c onvergent solution may be s olved using standard network
assignment algorithms such as Frank-Wolfe.
By contrast other forms of departure time choice models face algorithmic
difficulties in obtaining a guaranteed self-consistent and convergent solution
between time choice and route choice and need to resort to heuristic methods. In
the view of the author there is a lot to be said to starting with a model for which
convergent algorithms exist and t hen improving the demand model within that
convergent framework rather than trying to “work backwards” from a behaviourally
preferable demand model towards a convergent algorithm.
With respect to the particular point of early departures being preferred to late it
should be not ed that empirical tests using SATURN simulation networks with
PASSQ (see below) have shown a t endency for more trips to divert out of the
“peak” to the “pre-peak” rather than the “post-peak” since the impact of queues
which start in the pre-peak have a greater impact on costs in the post-peak; i.e.,
drivers can reduce their costs by joining a queue earlier rather than later.
In addition it should be possible to segment drivers in the base year into user
classes such that, e.g., a certain class will appear only in the pre-peak and the
peak, in which case it is not possible for peak trips to switch to the post-peak since
T ijt for the post-peak is zero by definition. Fo r example if the total base-year
“profile” in three periods is made up of:
0.8 1.2 1.0
it could be sub-divided into 4 “user classes” with base-year profiles:
(1) 0.6 0.0 0.0
(2) 0.2 1.0 0.0
(3) 0.0 0.2 0.1
(4) 0.0 0.0 0.9
in which case user classes (1) and (2) would be unabl e to change time periods
according to equation (1), user class (2) would preferentially change from peak to
pre-peak while (3) would go from peak to post-peak only. The split into the four
SATKK
SATKK is an en tirely new SATURN program which carries out an optimum
combination of two sets of multiple time period matrices plus assigned networks in
order to produce a ne w averaged trip matrix which (in combination with the
averaged link flows which are not explicitly output) minimizes the objective
function. Thus it is doing a l ine search to find an optimum lambda value in the
range 0 to 1.
The output from SATKK includes a set of convergence statistics which compare:
(a) the matrices and (b) the link flows for each time period using a range of basic
statistics. These are included both in the “main” line printer file .LPK as well as in
a “mini” line printer file .MLP which, as we shall see below, is automatically
displayed on screen by the SATTPKK macro bat file.
BETA_T
KK’s incremental logit formulae require a parameter β which represents the
sensitivity of trip makers to relative changes in costs. In SATURN β will be
represented (when required) by the parameter name BETA_T.
Beta is needed by both MXKK and SATKK. Since the latter program uses network
files it is possible to set BETA_T as a namelist parameter input under &PARAM in
the original network .dat files and thence passed through the ufs/uft files, although
it may also be set within SATKK itself. In general it is best to set it once and for all
within the .dat files.
However with MXKK which operates only with matrices there is no provision to set
and transfer such a parameter and therefore BETA_T needs to be set each time
MXKK is run; thus it is included as a command line parameter.
1) SATTPX: Assign the current matrices over all time periods to produce link
flows V at and costs C at by time period.
2) SATCOST: Use the time period specific costs to calculate minimum cost o-d
matrices by time period.
3) MXKK: Calculate the equilibrium trip demands by time period given the
latest minimum o-d costs.
4) SATTPX: Assign the "target" trip matrices F ijt over all time periods to
produce new "target" link flows W at (n) (N.B. the costs at W at are not needed).
5) SATKK: Calculate the optimum combination of the previous and t he target
matrices T ijt (n) and F ijt (n) to produce the next trip matrix. N .B. The
corresponding sets of link flows are also needed in these calculations.
MULTIPLE LOOPS
A “full” solution of the combined time period choice assignment model will require
running SATTPKK repeatedly until convergence is (hopefully – see below)
obtained.
SATTPKK NET T1 3 0.003 T2
SATTPKK NET T2 3 0.003 T3
…
where the “first” trip matrix T1.UFM would normally be eq uated to the base trip
matrix TIJ0.UFM.
N.B. We have chosen 3 time periods and a be ta value of 0.003 purely arbitrarily
above.
Note that at the end of the procedure we would need to carry out one more full
assignment with the “final” trip matrix in order to obtain the final link flows, etc. via:
SATTPX NET Tn 3
CONVERGENCE ISSUES
The procedures implied by the batch file SATTPKK are based on the joint strategy
of (a) calculating a new set of trip matrices based on t he current minimum o-d
costs and (b) re-assigning them using a full equilibrium assignment. While an
intuitively attractive strategy and one that progresses “most of the time” it is
unfortunately not necessarily guaranteed convergent; in other words at a certain
point it may be become “stuck” in the sense that SATKK generates an optimum
combination lambda parameter equal to zero.
The theoretical reasons for this potential non-convergence are now well
understood and appl y equal well to other forms of joint assignment-demand
models. E qually the correct solution is well understood and c onsists of (a)
calculating the new set of trip matrices based on the average o-d costs and (b) re-
assigning them to the existing paths and in the same proportions. This
guarantees a descent direction which, in terms of SATKK, translates into a non-
zero optimum value of lambda.
Unfortunately the necessary algorithmic steps within SATURN have yet to be
established in, e.g., a user-friendly set of procedures as per SATTPKK although
they could be carried out in a somewhat sledge-hammer approach whereby each
individual time slice would have to be treated individually.
Up to 5 new zones may be defined per record; if more than 5 new zones are
required further records may be included with the old zone number repeated in
columns 1-5. (N.B. records referring to the same zone MUST be sequential.)
Totally new zones may also be added in the output matrix, in which case the “old
zone” entry is blank and all new cell elements must be zero.
Cols. 1–5 The name of the old zone (Zero or blank for a totally new
zone defined in columns 6-10).
Cols. 6 – 10 The first new zone name corresponding to this zone (Zero or
blank if the old zone in columns 1-5 is to be removed)
Cols. 11 – 15 The fraction of the old zone lying in the new (with, by default,
a decimal point in col. 13, F5.2; but see 2.8.3 for alternative
decimal places.)
(If omitted (i.e., blank) a value of 1.0 is assumed.)
Cols. 16 – 20 The second new zone (if any)
Cols. 21 – 25 The fraction in the second zone
(decimal in col. 23)
exception which is that a zone may be copied into itself with a fraction of 0.0,
the end effect being that the old zone is retained in the new system but with
all zero cells (unless, of course, another zone is being copied into it at the
same time),
3) If INCLUD is TRUE all zones NOT specifically mentioned on the
correspondence records are retained in the same form on the output matrix.
If INCLUD is FALSE it is assumed that any zones not explicitly mentioned
are to be removed or deleted from the output matrix.
4) The elements in the output matrix are derived from the input elements as
follows.
where
T2 ij is the output matrix element i,j on channel 2;
T1 ij is the input matrix element i,j on channel 1; and
F ki is the fraction of old zone k in new zone i as given on the zonal
correspondence records.
For example if the matrix elements are O-D trips which are being divided
into a finer zoning system then trips from one sub-zone to another equal the
zone-to-zone trips factored down by both an origin factor and a destination
factor. Provided that the fractions given for each zone add up to 1.0 the
sum of the matrix elements in the new matrix should equal the sum of the
old.
The one exception to the above equation is that if M5ZERO = T then all
intra-zonal cells for new cells are set to zero. (Since, even if all old intra-
zonal cells were zero, if the new zone is an aggregation of several old zones
its intra-zonal value may be the sum of several previous non-zero inter-
zonal cells.)
5) If the old zone in columns 1-5 is NEGATIVE then it is assumed that ALL
zones from the previous entry up to and including the current (negative)
zone are treated in the same way. E.g.,
50 7 1.0
-100
implies that all zones from 50 through 100 are mapped into the new
zone 7.
6) If columns 1 to 5 are blank - implying that a totally new zone is to be defined
- then only columns 6 to 10, the name of the new zone are processed. Thus
each new zone is contained in columns 6 to 10 on separate records. These
may be in any order. The cell values used for any newly created zones are:
(a) DEFROW along its row(s), (b) DEFCOL along its column(s) and (c)
DEFINT for its intra-zonal cell.
* Renumber zones 9905, 9906 and 9907 to be 9900, 9901 and 9101
respectively
9905 9900 1.00
9906 9901 1.00
9907 9101 1.00
99999
Removing Penlink and adding Busway zones (New matrix title)
Appendix X - Unused
X. Unused
X.1 Version Control
LOGICAL VARIABLES
CHARACTER VARIABLES
Cols 1 5 11111
Record 1.2.1 Start of a new polygon (FORMAT (2F10.2, 3I5, 3X, A12)
Cols 11- 20 Y coordinate of the first “corner” (decimal point in col. 18)
Cols 21- 25 Pen colour (in range 1 to 16)
Cols 26- 30 A non-zero if the area is to be “in-filled”
Cols 31- 35 An equivalent zone number if the area represents a zonal
boundary (N.B. use the zone “name” as opposed to its “sequential
number”.)
Cols 36- 40 Line width in mm. (Real – decimal place in col. 39)
Cols 41 - 60 An alphanumeric title for the area (as yet not used)
where a polygon is terminated either by the next 20 columns for (X,Y) being blank
or, if the final corner is the 4th on a record, by a blank record following. A new
polygon commences on the next record (1.2.1) or is terminated by:
Record 1.3 End of Polygons
Cols 1- 5 99999
BLOCK 2 - POLYLINES
These records define a set of “points” making up a “polyline”. They may be
plotted either as a line joining successive points or as a “bandwidth” joining those
points. The latter might be used to represent a river.
Record 2.1
Cols 1- 5 22222
where the polyline is terminated either by the next 20 columns for (X,Y) being
blank or, if the final corner is the 4th on a record, by a blank record following. A
new line then commences on the next record (2.2.1) or is terminated by:
Record 2.3 End of polylines
Cols 1- 5 99999
BLOCK 3 - IKONS
These records define a set of “ikons” and their co-ordinates, where an “ikon” is
one of a standard set given below.
Record 3.1
Cols 1- 5 33333
Cols 36- 40 Background pen colour for ikon 7 (in range 1 to 16)
Col 45 The letter used in ikon 7 (text)
Cols 1- 5 99999
BLOCK 4 - TEXT
These records define a set of co-ordinates and of text to appear centred at those
points
Record 4.1
Cols 1- 5 44444
Cols 1- 5 99999
Cols 1- 5 55555
Record 5.3
Cols 1- 5 99999
Cols 1- 5 66666
Record 6.3
Cols 1- 5 99999
Cols 1- 5 77777
where the points are terminated either by the next 20 columns for (X,Y) being
blank or, if the final point is the 4th on a record, by a blank record following. A
new line then commences on the next record (7.2.1) or is terminated by:
Record 7.3
Cols 1- 5 99999
N.B. With version 10.6 it is no longer necessary to include a blank record if, as
noted above, the number of X,Y points is a multiple of 4. The program scans the
following line and, if it contains a valid A-node and B-node in columns 1-20, the
assumption is that this must be the start of a new link record and the previous set
of curved points is terminated. Data using the older convention is still of course
acceptable.
Notes:
If a link is entered twice within the 77777 records (including one entry as (A,B) and
a second as (B,A)) then the first is ignored and a warning message generated.
Cols 1- 5 88888
Cols 1- 5 99999