SUMO - Simulation of Urban MObility

NIImporter_VISUM Class Reference

A VISUM network importer. More...

#include <NIImporter_VISUM.h>

Data Structures

struct  TypeParser
 A complete call description for parsing a single db. More...

Static Public Member Functions

static void loadNetwork (const OptionsCont &oc, NBNetBuilder &nb)
 Loads network definition from the assigned option and stores it in the given network builder.

Protected Member Functions

void load ()
 Parses the VISUM-network file storing the parsed structures within myNetBuilder.
 NIImporter_VISUM (NBNetBuilder &nb, const std::string &file, NBCapacity2Lanes capacity2Lanes, bool useVisumPrio)
 constructor
 ~NIImporter_VISUM ()
 destructor

Private Types

typedef std::map< std::string,
NIVisumTL * > 
NIVisumTL_Map
 Definition of a map for loaded traffic lights (id->tls)
typedef std::vector< TypeParser > ParserVector
 definition of the list of known parsers
typedef void(NIImporter_VISUM::* ParsingFunction )()
 Definition of a function for parsing a single line from a certain db.
typedef std::map< std::string,
std::string > 
VSysTypeNames
 Definition of a storage for vsystypes.

Private Member Functions

void addParser (const std::string &name, ParsingFunction function)
 Adds a parser into the sorted list of parsers to use.
NBNode * buildDistrictNode (const std::string &id, NBNode *dest, bool isSource)
 Builds a node for the given district and returns it.
bool checkNodes (NBNode *from, NBNode *to)
 Returns whether both nodes are a valid combination of from/to-nodes.
NBEdge * getEdge (NBNode *FromNode, NBNode *ToNode)
 Returns the edge that connects both nodes.
NBEdge * getNamedEdge (const std::string &fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 Tries to get the edge which name is stored in the given field.
NBEdge * getNamedEdge (const std::string &fieldName1, const std::string &fieldName2) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 The same, but two different names for the field are allowed.
NBEdge * getNamedEdgeContinuating (const std::string &fieldName, NBNode *node) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 Tries to get the edge which name is stored in the given field continuating the search for a subedge that ends at the given node.
NBEdge * getNamedEdgeContinuating (const std::string &fieldName1, const std::string &fieldName2, NBNode *node) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 The same, but two different names for the field are allowed.
NBEdge * getNamedEdgeContinuating (NBEdge *begin, NBNode *node)
 The same, but for an already given edge.
SUMOReal getNamedFloat (const std::string &fieldName1, const std::string &fieldName2, SUMOReal defaultValue)
 The same, but two different names for the field are allowed.
SUMOReal getNamedFloat (const std::string &fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 Returns the value from the named column as a float.
SUMOReal getNamedFloat (const std::string &fieldName1, const std::string &fieldName2) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 The same, but two different names for the field are allowed.
SUMOReal getNamedFloat (const std::string &fieldName, SUMOReal defaultValue)
 Returns the value from the named column as a float or the default value if an error occurs.
NBNode * getNamedNode (const std::string &fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 Tries to get the node which name is stored in the given field.
NBNode * getNamedNode (const std::string &fieldName1, const std::string &fieldName2) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 The same, but two different names for the field are allowed.
std::string getNamedString (const std::string &fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 Returns the value from the named column as a normalised string.
std::string getNamedString (const std::string &fieldName1, const std::string &fieldName2) throw (OutOfBoundsException, NumberFormatException, UnknownElement)
 The same, but two different names for the field are allowed.
NBEdge * getReversedContinuating (NBEdge *edge, NBNode *node)
 Returns the opposite direction of the given edge.
bool getWeightedBool (const std::string &name)
 tries to get a bool which is possibly assigned to a certain modality
SUMOReal getWeightedFloat (const std::string &name)
 tries to get a SUMOReal which is possibly assigned to a certain modality
void parse_AreaSubPartElement ()
 Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
void parse_Connectors ()
 Parses ANBINDUNG.
void parse_Districts ()
 Parses BEZIRK.
void parse_EdgePolys ()
 Parses STRECKENPOLY.
void parse_Edges ()
 Parses STRECKE/STRECKEN.
void parse_Kante ()
 Parses FLAECHENELEMENT.
void parse_Lanes ()
 Parses FAHRSTREIFEN.
void parse_LanesConnections ()
 Parses FAHRSTREIFENABBIEGER.
void parse_Nodes ()
 Parses KNOTEN.
void parse_NodesToTrafficLights ()
 Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN.
void parse_PartOfArea ()
 Parses FLAECHENELEMENT.
void parse_Phases ()
 Parses LSAPHASE/PHASE.
void parse_Point ()
 Parses PUNKT.
void parse_SignalGroups ()
 Parses LSASIGNALGRUPPE/SIGNALGRUPPE.
void parse_SignalGroupsToPhases ()
 Parses LSASIGNALGRUPPEZULSAPHASE.
void parse_TrafficLights ()
 Parses LSA/SIGNALANLAGE.
void parse_Turns ()
 Parses ABBIEGEBEZIEHUNG/ABBIEGER.
void parse_TurnsToSignalGroups ()
 Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
void parse_Types ()
 Parses STRECKENTYP.
void parse_VSysTypes ()
 Parses VSYS.

Private Attributes

NBCapacity2Lanes myCapacity2Lanes
 the converter to compute the lane number of edges from their capacity
std::string myCurrentID
 The name of the currently parsed item used for error reporting.
std::map< NBDistrict
*, PositionVector > 
myDistrictShapes
 A temporary storage for district shapes as they are filled incrementally.
std::map< long, std::pair
< long, long > > 
myEdges
 A map of edge (not road, but "edge" in this case) ids to from/to-points.
std::string myFileName
 The name of the parsed file, for error reporting.
NamedColumnsParser myLineParser
 the parser to parse the information from the data lines
LineReader myLineReader
 the line reader to use to read from the file
NBNetBuilder & myNetBuilder
 the network builder to fill with loaded values
NIVisumTL_Map myNIVisumTLs
std::map< long, Position > myPoints
 A map of point ids to positions.
std::map< long, NBDistrict * > myShapeDistrictMap
 A map from district shape definition name to the district.
ParserVector mySingleDataParsers
 list of known parsers
std::map< long, std::vector
< long > > 
mySubPartsAreas
 A map from area parts to area ids.
std::vector< std::string > myTouchedEdges
 Already read edges.
bool myUseVisumPrio
 Information whether VISUM priority information shall be used.
VSysTypeNames myVSysTypes
 the used vsystypes

Detailed Description

A VISUM network importer.

This class build an internal list of those VISUM-db entries which are supported, first. This list is sorted in a way that the parsed dbs can build upon each other as their related structures within the XML-input. So, nodes are loaded first, then edges, etc.

Because these structures may have a different order within the VISUM-file than we need, at first the file is scanned and any occurence of one of the searched dbs is saved. That's where the "Found $XXX at YYY" are printed. "YYY" is the character position within the file.

In a second step, the dbs are parsed in the order we need. It is asked for each subsequently whether it was found and if so, the proper parse_XXX() method is called.

Definition at line 76 of file NIImporter_VISUM.h.


Member Typedef Documentation

typedef std::map<std::string, NIVisumTL*> NIImporter_VISUM::NIVisumTL_Map [private]

Definition of a map for loaded traffic lights (id->tls)

Definition at line 489 of file NIImporter_VISUM.h.

typedef std::vector<TypeParser> NIImporter_VISUM::ParserVector [private]

definition of the list of known parsers

Definition at line 484 of file NIImporter_VISUM.h.

typedef void(NIImporter_VISUM::* NIImporter_VISUM::ParsingFunction)() [private]

Definition of a function for parsing a single line from a certain db.

This function may assume that both the LineParser is initialised with the current line.

Definition at line 358 of file NIImporter_VISUM.h.

typedef std::map<std::string, std::string> NIImporter_VISUM::VSysTypeNames [private]

Definition of a storage for vsystypes.

Definition at line 479 of file NIImporter_VISUM.h.


Constructor & Destructor Documentation

NIImporter_VISUM::NIImporter_VISUM ( NBNetBuilder &  nb,
const std::string &  file,
NBCapacity2Lanes  capacity2Lanes,
bool  useVisumPrio 
) [protected]

constructor

Builds the list of typed db parsers ("TypeParser") and stores them in mySingleDataParsers in the order the according db values must be parsed.

Parameters:
[in,out]nbthe network builder (storage) to fill with parsed values
[in]fileThe name of the file to parse
[in]capacity2LanesThe converter from flow to lanes
[in]useVisumPrioInformation whether the VISUM type's priority shall be used

Definition at line 76 of file NIImporter_VISUM.cpp.

References addParser(), parse_AreaSubPartElement(), parse_Connectors(), parse_Districts(), parse_EdgePolys(), parse_Edges(), parse_Kante(), parse_Lanes(), parse_LanesConnections(), parse_Nodes(), parse_NodesToTrafficLights(), parse_PartOfArea(), parse_Phases(), parse_Point(), parse_SignalGroups(), parse_SignalGroupsToPhases(), parse_TrafficLights(), parse_Turns(), parse_TurnsToSignalGroups(), parse_Types(), and parse_VSysTypes().

NIImporter_VISUM::~NIImporter_VISUM ( ) [protected]

destructor

Definition at line 136 of file NIImporter_VISUM.cpp.

References myNIVisumTLs.


Member Function Documentation

void NIImporter_VISUM::addParser ( const std::string &  name,
ParsingFunction  function 
) [private]

Adds a parser into the sorted list of parsers to use.

Parameters:
[in]namedb name to assign the parser to
[in]functionThe function to use for parsing the named db

Definition at line 144 of file NIImporter_VISUM.cpp.

References NIImporter_VISUM::TypeParser::function, mySingleDataParsers, NIImporter_VISUM::TypeParser::name, and NIImporter_VISUM::TypeParser::position.

Referenced by NIImporter_VISUM().

NBNode * NIImporter_VISUM::buildDistrictNode ( const std::string &  id,
NBNode *  dest,
bool  isSource 
) [private]

Builds a node for the given district and returns it.

If the district does not exist, an error is generated and 0 returned. Otherwise a position for the new node is computed and the new node is built using a combination of the district name and the node name as id. If Inserting this node into the net builder fails, zero is returned.

Parameters:
[in]idName of the district
[in]destName of the according network node
[in]isSourceInformation whether this node will be used as a source
Returns:
The built node, zero if an error occured

Definition at line 1291 of file NIImporter_VISUM.cpp.

References NBNetBuilder::getDistrictCont(), Named::getID(), NBNetBuilder::getNodeCont(), NBDistrict::getPosition(), NBNodeCont::insert(), myNetBuilder, NBNodeCont::retrieve(), NBDistrictCont::retrieve(), and WRITE_ERROR.

Referenced by parse_Connectors().

bool NIImporter_VISUM::checkNodes ( NBNode *  from,
NBNode *  to 
) [private]

Returns whether both nodes are a valid combination of from/to-nodes.

They are valid if both are !=0 and differ.

Parameters:
[in]fromThe from-node
[in]fromThe to-node
Returns:
Whether the nodes may be used

Definition at line 1314 of file NIImporter_VISUM.cpp.

References WRITE_ERROR.

Referenced by parse_EdgePolys(), and parse_Edges().

NBEdge * NIImporter_VISUM::getEdge ( NBNode *  FromNode,
NBNode *  ToNode 
) [private]

Returns the edge that connects both nodes.

Parameters:
[in]FromNodeName of the node the edge shall start at
[in]ToNodeName of the node the edge shall end at
Returns:
The edge connecting both nodes, 0 if no such edge exists

!!

Definition at line 1218 of file NIImporter_VISUM.cpp.

References NBNode::getOutgoingEdges().

Referenced by parse_TurnsToSignalGroups().

NBEdge * NIImporter_VISUM::getNamedEdge ( const std::string &  fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

Tries to get the edge which name is stored in the given field.

If the field can not be parsed, an exception is thrown. Prints an error if the edge could not be found, returning 0. Otherwise, if the field could be parsed and the edge was found, this edge is returned.

Parameters:
[in]fieldNameName of the column to extract the edge's name from
Returns:
An already known edge with the found name
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the edge id's position
NumberFormatExceptionIf the edge id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1098 of file NIImporter_VISUM.cpp.

References NBHelpers::normalIDRepresentation(), and WRITE_ERROR.

Referenced by parse_Lanes().

NBEdge * NIImporter_VISUM::getNamedEdge ( const std::string &  fieldName1,
const std::string &  fieldName2 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the edge's name from
[in]fieldName2Name of the second column to extract the edge's name from
Returns:
An already known edge with the found name
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the edge id's position
NumberFormatExceptionIf the edge id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1109 of file NIImporter_VISUM.cpp.

NBEdge * NIImporter_VISUM::getNamedEdgeContinuating ( const std::string &  fieldName1,
const std::string &  fieldName2,
NBNode *  node 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the edge's name from
[in]fieldName2Name of the second column to extract the edge's name from
[in]nodeThe node the consecutive edge must end at in order to be returned
Returns:
The edge's continuation up to the given node, 0 if not found
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the edge id's position
NumberFormatExceptionIf the edge id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1207 of file NIImporter_VISUM.cpp.

NBEdge * NIImporter_VISUM::getNamedEdgeContinuating ( NBEdge *  begin,
NBNode *  node 
) [private]

The same, but for an already given edge.

Parameters:
[in]beginThe edge to get the continuation of
[in]nodeThe node the consecutive edge must end at in order to be returned
Returns:
The edge's continuation up to the given node, 0 if not found

Definition at line 1135 of file NIImporter_VISUM.cpp.

References NBEdge::getFromNode(), Named::getID(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), and NBEdge::getToNode().

NBEdge * NIImporter_VISUM::getNamedEdgeContinuating ( const std::string &  fieldName,
NBNode *  node 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

Tries to get the edge which name is stored in the given field continuating the search for a subedge that ends at the given node.

If the field can not be parsed, an exception is thrown. Prints an error if the edge could not be found, returning 0. Otherwise, if the field could be parsed and the edge was found, this edge is returned.

Parameters:
[in]fieldNameName of the column to extract the edge's name from
[in]nodeThe node the consecutive edge must end at in order to be returned
Returns:
The edge's continuation up to the given node, 0 if not found
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the edge id's position
NumberFormatExceptionIf the edge id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1196 of file NIImporter_VISUM.cpp.

References NBHelpers::normalIDRepresentation(), and WRITE_ERROR.

Referenced by getReversedContinuating(), parse_Lanes(), parse_LanesConnections(), and parse_TurnsToSignalGroups().

SUMOReal NIImporter_VISUM::getNamedFloat ( const std::string &  fieldName1,
const std::string &  fieldName2 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the float from
[in]fieldName2Name of the second column to extract the efloat from
Returns:
The parsed real
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the float's position
NumberFormatExceptionIf the float is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1249 of file NIImporter_VISUM.cpp.

SUMOReal NIImporter_VISUM::getNamedFloat ( const std::string &  fieldName,
SUMOReal  defaultValue 
) [private]

Returns the value from the named column as a float or the default value if an error occurs.

Parameters:
[in]fieldNameName of the column to extract the float from
[in]defaultValueThe default to return in the case of an error
Returns:
The parsed real or the default value if an error while parsing occured

Definition at line 1238 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), myLineParser, and NBHelpers::normalIDRepresentation().

SUMOReal NIImporter_VISUM::getNamedFloat ( const std::string &  fieldName1,
const std::string &  fieldName2,
SUMOReal  defaultValue 
) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the float from
[in]fieldName2Name of the second column to extract the efloat from
[in]defaultValueThe default to return in the case of an error
Returns:
The parsed real or the default value if an error while parsing occured

Definition at line 1259 of file NIImporter_VISUM.cpp.

References getNamedFloat(), NamedColumnsParser::know(), and myLineParser.

SUMOReal NIImporter_VISUM::getNamedFloat ( const std::string &  fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

Returns the value from the named column as a float.

Parameters:
[in]fieldNameName of the column to extract the float from
Returns:
The parsed real
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the float's position
NumberFormatExceptionIf the float is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1231 of file NIImporter_VISUM.cpp.

References TplConvert< E >::_2SUMOReal(), and NBHelpers::normalIDRepresentation().

Referenced by getNamedFloat(), parse_Connectors(), parse_Districts(), parse_EdgePolys(), parse_Nodes(), parse_Phases(), parse_SignalGroups(), parse_TrafficLights(), and parse_Types().

NBNode * NIImporter_VISUM::getNamedNode ( const std::string &  fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

Tries to get the node which name is stored in the given field.

If the field can not be parsed, an exception is thrown. Prints an error if the node could not be found, returning 0. Otherwise, if the field could be parsed and the node was found, this node is returned.

Parameters:
[in]fieldNameName of the column to extract the node's name from
Returns:
An already known node with the found name
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the node id's position
NumberFormatExceptionIf the node id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1077 of file NIImporter_VISUM.cpp.

References NBHelpers::normalIDRepresentation(), and WRITE_ERROR.

Referenced by parse_Connectors(), parse_EdgePolys(), parse_Edges(), parse_Lanes(), parse_LanesConnections(), parse_Turns(), and parse_TurnsToSignalGroups().

NBNode * NIImporter_VISUM::getNamedNode ( const std::string &  fieldName1,
const std::string &  fieldName2 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the node's name from
[in]fieldName2Name of the second column to extract the node's name from
Returns:
An already known node with the found name
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the node id's position
NumberFormatExceptionIf the node id is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1088 of file NIImporter_VISUM.cpp.

std::string NIImporter_VISUM::getNamedString ( const std::string &  fieldName1,
const std::string &  fieldName2 
) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

The same, but two different names for the field are allowed.

Parameters:
[in]fieldName1Name of the first column to extract the string from
[in]fieldName2Name of the second column to extract the string from
Returns:
The parsed, normalised string
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the string's position
NumberFormatExceptionIf the string is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1276 of file NIImporter_VISUM.cpp.

std::string NIImporter_VISUM::getNamedString ( const std::string &  fieldName) throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private]

Returns the value from the named column as a normalised string.

"Normalised" means herein that the leading '0' (zeros) are prunned.

Parameters:
[in]fieldNameName of the column to extract the string from
Returns:
The parsed, normalised string
Exceptions:
OutOfBoundsExceptionIf the current data line has less entries than the string's position
NumberFormatExceptionIf the string is not numeric
UnknownElementIf the named data field is not in the line

Definition at line 1270 of file NIImporter_VISUM.cpp.

References NBHelpers::normalIDRepresentation().

Referenced by parse_TurnsToSignalGroups().

NBEdge * NIImporter_VISUM::getReversedContinuating ( NBEdge *  edge,
NBNode *  node 
) [private]

Returns the opposite direction of the given edge.

Because the opposite direction edge may be split, not the the plain opposite edge, the one which name is obtained by adding/removing the leading '-', is returned, but its continuation until the named node.

Parameters:
[in]edgeName of the edge to find the opposite of
[in]nodeName of the node the opposite edge's continuation must end at
Returns:
The found opposite edge's continuation, 0 if not found

Definition at line 1120 of file NIImporter_VISUM.cpp.

References NBNetBuilder::getEdgeCont(), Named::getID(), getNamedEdgeContinuating(), myNetBuilder, and NBEdgeCont::retrieve().

Referenced by parse_Lanes(), and parse_LanesConnections().

bool NIImporter_VISUM::getWeightedBool ( const std::string &  name) [private]

tries to get a bool which is possibly assigned to a certain modality

When the bool cannot be extracted using the given name, "IV" is appended to the begin of the name. Note that this function does not yet support public traffic.

Parameters:
[in]nameName of the column to extract the bool from
Returns:
The bool stored under the named column, or if not found the one from "(IV)"+name, or if not found false

Definition at line 1065 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), and myLineParser.

SUMOReal NIImporter_VISUM::getWeightedFloat ( const std::string &  name) [private]

tries to get a SUMOReal which is possibly assigned to a certain modality

When the SUMOReal cannot be extracted using the given name, "(IV)" is appended to the begin of the name. Note that this function does not yet support public traffic.

Parameters:
[in]nameName of the column to extract the real from
Returns:
The real stored under the named column, or if not found the one from "(IV)"+name, or if not found -1

Definition at line 1053 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), and myLineParser.

Referenced by parse_Connectors().

void NIImporter_VISUM::load ( ) [protected]

Parses the VISUM-network file storing the parsed structures within myNetBuilder.

At first, it is checked whether the file can be opened. A ProcessError is thrown if not. Otherwise, the file is scanned for occurences of db table begins. For each found db, its position within the file, and the column names are stored in the according TypeParser. After this, the sorted list of type parsers is one through and each found is used to parse the entries at the found positions using the found column names.

Exceptions:
ProcessErrorIf the file could not be opened

Definition at line 154 of file NIImporter_VISUM.cpp.

References LineReader::getPosition(), NBNetBuilder::getTLLogicCont(), LineReader::hasMore(), myCurrentID, myDistrictShapes, myFileName, myLineParser, myLineReader, myNetBuilder, myNIVisumTLs, mySingleDataParsers, NamedColumnsParser::parseLine(), PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, LineReader::readLine(), NamedColumnsParser::reinit(), LineReader::reinit(), LineReader::setFile(), LineReader::setPos(), WRITE_ERROR, and WRITE_MESSAGE.

Referenced by loadNetwork().

void NIImporter_VISUM::loadNetwork ( const OptionsCont &  oc,
NBNetBuilder &  nb 
) [static]

Loads network definition from the assigned option and stores it in the given network builder.

If the option "visum" is set, the file stored therein is read and the network definition stored therein is stored within the given network builder.

If the option "visum" is not set, this method simply returns.

Parameters:
[in]ocThe options to use
[in]nbThe network builder to fill

Definition at line 59 of file NIImporter_VISUM.cpp.

References OptionsCont::getBool(), OptionsCont::getFloat(), OptionsCont::getString(), OptionsCont::isSet(), and load().

Referenced by NILoader::load().

void NIImporter_VISUM::parse_AreaSubPartElement ( ) [private]
void NIImporter_VISUM::parse_Kante ( ) [private]

Parses FLAECHENELEMENT.

Definition at line 416 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), myEdges, and myLineParser.

Referenced by NIImporter_VISUM().

void NIImporter_VISUM::parse_NodesToTrafficLights ( ) [private]

Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN.

Definition at line 799 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, myNIVisumTLs, and NBNodeCont::retrieve().

Referenced by NIImporter_VISUM().

void NIImporter_VISUM::parse_PartOfArea ( ) [private]

Parses FLAECHENELEMENT.

Definition at line 425 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), myLineParser, and mySubPartsAreas.

Referenced by NIImporter_VISUM().

void NIImporter_VISUM::parse_Phases ( ) [private]
void NIImporter_VISUM::parse_Point ( ) [private]
void NIImporter_VISUM::parse_SignalGroups ( ) [private]

Parses LSASIGNALGRUPPE/SIGNALGRUPPE.

Definition at line 808 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), getNamedFloat(), myCurrentID, myLineParser, myNIVisumTLs, NBHelpers::normalIDRepresentation(), SUMOReal, and WRITE_ERROR.

Referenced by NIImporter_VISUM().

void NIImporter_VISUM::parse_SignalGroupsToPhases ( ) [private]
void NIImporter_VISUM::parse_TrafficLights ( ) [private]
void NIImporter_VISUM::parse_VSysTypes ( ) [private]

Parses VSYS.

Definition at line 225 of file NIImporter_VISUM.cpp.

References NamedColumnsParser::get(), NamedColumnsParser::know(), myLineParser, and myVSysTypes.

Referenced by NIImporter_VISUM().


Field Documentation

the converter to compute the lane number of edges from their capacity

Definition at line 476 of file NIImporter_VISUM.h.

Referenced by parse_Edges(), and parse_Types().

std::string NIImporter_VISUM::myCurrentID [private]

The name of the currently parsed item used for error reporting.

Definition at line 500 of file NIImporter_VISUM.h.

Referenced by load(), parse_AreaSubPartElement(), parse_Districts(), parse_Edges(), parse_Nodes(), parse_SignalGroups(), parse_TrafficLights(), and parse_Types().

A temporary storage for district shapes as they are filled incrementally.

Definition at line 516 of file NIImporter_VISUM.h.

Referenced by load(), and parse_AreaSubPartElement().

std::map<long, std::pair<long, long> > NIImporter_VISUM::myEdges [private]

A map of edge (not road, but "edge" in this case) ids to from/to-points.

Definition at line 507 of file NIImporter_VISUM.h.

Referenced by parse_AreaSubPartElement(), and parse_Kante().

std::string NIImporter_VISUM::myFileName [private]

The name of the parsed file, for error reporting.

Definition at line 465 of file NIImporter_VISUM.h.

Referenced by load().

the line reader to use to read from the file

Definition at line 468 of file NIImporter_VISUM.h.

Referenced by load().

std::map<long, Position> NIImporter_VISUM::myPoints [private]

A map of point ids to positions.

Definition at line 504 of file NIImporter_VISUM.h.

Referenced by parse_AreaSubPartElement(), and parse_Point().

A map from district shape definition name to the district.

Definition at line 510 of file NIImporter_VISUM.h.

Referenced by parse_AreaSubPartElement(), and parse_Districts().

list of known parsers

Definition at line 486 of file NIImporter_VISUM.h.

Referenced by addParser(), and load().

std::map<long, std::vector<long> > NIImporter_VISUM::mySubPartsAreas [private]

A map from area parts to area ids.

Definition at line 513 of file NIImporter_VISUM.h.

Referenced by parse_AreaSubPartElement(), and parse_PartOfArea().

std::vector<std::string > NIImporter_VISUM::myTouchedEdges [private]

Already read edges.

Definition at line 494 of file NIImporter_VISUM.h.

Referenced by parse_Edges().

Information whether VISUM priority information shall be used.

Definition at line 497 of file NIImporter_VISUM.h.

Referenced by parse_Edges().

the used vsystypes

Definition at line 481 of file NIImporter_VISUM.h.

Referenced by parse_Turns(), and parse_VSysTypes().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines