SUMO - Simulation of Urban MObility
|
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 &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. | |
SUMOReal | getNamedFloat (const std::string &fieldName1, const std::string &fieldName2, SUMOReal defaultValue) |
The same, but two different names for the field are allowed. | |
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. | |
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. | |
NIVisumTL_Map | myTLS |
List of visum traffic lights. | |
std::vector< std::string > | myTouchedEdges |
Already read edges. | |
bool | myUseVisumPrio |
Information whether VISUM priority information shall be used. | |
VSysTypeNames | myVSysTypes |
The used vsystypes. |
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.
typedef std::map<std::string, NIVisumTL*> NIImporter_VISUM::NIVisumTL_Map [private] |
Definition of a map for loaded traffic lights (id->tls)
Definition at line 490 of file NIImporter_VISUM.h.
typedef std::vector<TypeParser> NIImporter_VISUM::ParserVector [private] |
Definition of the list of known parsers.
Definition at line 485 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 480 of file NIImporter_VISUM.h.
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.
[in,out] | nb | the network builder (storage) to fill with parsed values |
[in] | file | The name of the file to parse |
[in] | capacity2Lanes | The converter from flow to lanes |
[in] | useVisumPrio | Information 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] |
void NIImporter_VISUM::addParser | ( | const std::string & | name, |
ParsingFunction | function | ||
) | [private] |
Adds a parser into the sorted list of parsers to use.
[in] | name | db name to assign the parser to |
[in] | function | The function to use for parsing the named db |
Definition at line 141 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.
[in] | id | Name of the district |
[in] | dest | Name of the according network node |
[in] | isSource | Information whether this node will be used as a source |
Definition at line 1284 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getDistrictCont(), Named::getID(), NBNetBuilder::getNodeCont(), NBDistrict::getPosition(), NBNodeCont::insert(), myNetBuilder, NBDistrictCont::retrieve(), NBNodeCont::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.
[in] | from | The from-node |
[in] | from | The to-node |
Definition at line 1307 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.
[in] | FromNode | Name of the node the edge shall start at |
[in] | ToNode | Name of the node the edge shall end at |
!!
Definition at line 1211 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.
[in] | fieldName | Name of the column to extract the edge's name from |
OutOfBoundsException | If the current data line has less entries than the edge id's position |
NumberFormatException | If the edge id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1091 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.
[in] | fieldName1 | Name of the first column to extract the edge's name from |
[in] | fieldName2 | Name of the second column to extract the edge's name from |
OutOfBoundsException | If the current data line has less entries than the edge id's position |
NumberFormatException | If the edge id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1102 of file NIImporter_VISUM.cpp.
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.
[in] | fieldName | Name of the column to extract the edge's name from |
[in] | node | The node the consecutive edge must end at in order to be returned |
OutOfBoundsException | If the current data line has less entries than the edge id's position |
NumberFormatException | If the edge id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1189 of file NIImporter_VISUM.cpp.
References NBHelpers::normalIDRepresentation(), and WRITE_ERROR.
Referenced by getReversedContinuating(), parse_Lanes(), parse_LanesConnections(), and parse_TurnsToSignalGroups().
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.
[in] | fieldName1 | Name of the first column to extract the edge's name from |
[in] | fieldName2 | Name of the second column to extract the edge's name from |
[in] | node | The node the consecutive edge must end at in order to be returned |
OutOfBoundsException | If the current data line has less entries than the edge id's position |
NumberFormatException | If the edge id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1200 of file NIImporter_VISUM.cpp.
NBEdge * NIImporter_VISUM::getNamedEdgeContinuating | ( | NBEdge * | begin, |
NBNode * | node | ||
) | [private] |
The same, but for an already given edge.
[in] | begin | The edge to get the continuation of |
[in] | node | The node the consecutive edge must end at in order to be returned |
Definition at line 1128 of file NIImporter_VISUM.cpp.
References NBEdge::getFromNode(), Named::getID(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), and NBEdge::getToNode().
SUMOReal NIImporter_VISUM::getNamedFloat | ( | const std::string & | fieldName | ) | throw (OutOfBoundsException, NumberFormatException, UnknownElement) [private] |
Returns the value from the named column as a float.
[in] | fieldName | Name of the column to extract the float from |
OutOfBoundsException | If the current data line has less entries than the float's position |
NumberFormatException | If the float is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1224 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().
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.
[in] | fieldName1 | Name of the first column to extract the float from |
[in] | fieldName2 | Name of the second column to extract the efloat from |
OutOfBoundsException | If the current data line has less entries than the float's position |
NumberFormatException | If the float is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1242 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.
[in] | fieldName | Name of the column to extract the float from |
[in] | defaultValue | The default to return in the case of an error |
Definition at line 1231 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.
[in] | fieldName1 | Name of the first column to extract the float from |
[in] | fieldName2 | Name of the second column to extract the efloat from |
[in] | defaultValue | The default to return in the case of an error |
Definition at line 1252 of file NIImporter_VISUM.cpp.
References getNamedFloat(), NamedColumnsParser::know(), and myLineParser.
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.
[in] | fieldName | Name of the column to extract the node's name from |
OutOfBoundsException | If the current data line has less entries than the node id's position |
NumberFormatException | If the node id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1070 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.
[in] | fieldName1 | Name of the first column to extract the node's name from |
[in] | fieldName2 | Name of the second column to extract the node's name from |
OutOfBoundsException | If the current data line has less entries than the node id's position |
NumberFormatException | If the node id is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1081 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.
[in] | fieldName | Name of the column to extract the string from |
OutOfBoundsException | If the current data line has less entries than the string's position |
NumberFormatException | If the string is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1263 of file NIImporter_VISUM.cpp.
References NBHelpers::normalIDRepresentation().
Referenced by parse_TurnsToSignalGroups().
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.
[in] | fieldName1 | Name of the first column to extract the string from |
[in] | fieldName2 | Name of the second column to extract the string from |
OutOfBoundsException | If the current data line has less entries than the string's position |
NumberFormatException | If the string is not numeric |
UnknownElement | If the named data field is not in the line |
Definition at line 1269 of file NIImporter_VISUM.cpp.
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.
[in] | edge | Name of the edge to find the opposite of |
[in] | node | Name of the node the opposite edge's continuation must end at |
Definition at line 1113 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.
[in] | name | Name of the column to extract the bool from |
Definition at line 1058 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.
[in] | name | Name of the column to extract the real from |
Definition at line 1046 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.
ProcessError | If the file could not be opened |
Definition at line 151 of file NIImporter_VISUM.cpp.
References LineReader::getPosition(), NBNetBuilder::getTLLogicCont(), LineReader::hasMore(), myCurrentID, myDistrictShapes, myFileName, myLineParser, myLineReader, myNetBuilder, mySingleDataParsers, myTLS, 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.
[in] | oc | The options to use |
[in] | nb | The 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] |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
Definition at line 876 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myCurrentID, myDistrictShapes, myEdges, myLineParser, myPoints, myShapeDistrictMap, mySubPartsAreas, NBHelpers::normalIDRepresentation(), PositionVector::push_back(), PositionVector::reverse(), toString(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Connectors | ( | ) | [private] |
Parses ANBINDUNG.
Definition at line 433 of file NIImporter_VISUM.cpp.
References NBDistrictCont::addSink(), NBDistrictCont::addSource(), buildDistrictNode(), NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), getNamedFloat(), getNamedNode(), OptionsCont::getOptions(), getWeightedFloat(), NBEdgeCont::insert(), NamedColumnsParser::know(), LANESPREAD_RIGHT, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), NBEdge::setAsMacroscopicConnector(), SUMOReal, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, WRITE_ERROR, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Districts | ( | ) | [private] |
Parses BEZIRK.
Definition at line 265 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), getNamedFloat(), NBDistrictCont::insert(), NamedColumnsParser::know(), myCurrentID, myLineParser, myNetBuilder, myShapeDistrictMap, NBHelpers::normalIDRepresentation(), SUMOReal, NILoader::transformCoordinates(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_EdgePolys | ( | ) | [private] |
Parses STRECKENPOLY.
Definition at line 596 of file NIImporter_VISUM.cpp.
References NBEdge::addGeometryPoint(), checkNodes(), NamedColumnsParser::get(), OptionsCont::getBool(), NBNode::getConnectionTo(), Named::getID(), getNamedFloat(), getNamedNode(), OptionsCont::getOptions(), myLineParser, SUMOReal, NILoader::transformCoordinates(), WRITE_ERROR, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Edges | ( | ) | [private] |
Parses STRECKE/STRECKEN.
Definition at line 309 of file NIImporter_VISUM.cpp.
References checkNodes(), NBCapacity2Lanes::get(), NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), getNamedNode(), NBTypeCont::getNumLanes(), OptionsCont::getOptions(), NBTypeCont::getPriority(), NBTypeCont::getSpeed(), NBNetBuilder::getTypeCont(), NBEdgeCont::insert(), NamedColumnsParser::know(), LANESPREAD_CENTER, LANESPREAD_RIGHT, myCapacity2Lanes, myCurrentID, myLineParser, myNetBuilder, myTouchedEdges, myUseVisumPrio, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), NBEdge::setLaneSpreadFunction(), SUMOReal, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Kante | ( | ) | [private] |
Parses FLAECHENELEMENT.
Definition at line 413 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myEdges, and myLineParser.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Lanes | ( | ) | [private] |
Parses FAHRSTREIFEN.
Definition at line 647 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), NBEdge::getFromNode(), NBEdge::getGeometry(), Named::getID(), NBNode::getIncomingEdges(), NBEdge::getLength(), getNamedEdge(), getNamedEdgeContinuating(), getNamedNode(), NBNetBuilder::getNodeCont(), NBEdge::getNumLanes(), NBNode::getOutgoingEdges(), getReversedContinuating(), NBEdge::getToNode(), NBNode::hasIncoming(), NBNode::hasOutgoing(), NBEdge::incLaneNo(), NBNodeCont::insert(), NamedColumnsParser::know(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), PositionVector::positionAtLengthPosition(), NBEdgeCont::retrieve(), NBEdgeCont::splitAt(), SUMOReal, toString(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_LanesConnections | ( | ) | [private] |
Parses FAHRSTREIFENABBIEGER.
Definition at line 950 of file NIImporter_VISUM.cpp.
References NBEdge::addLane2LaneConnection(), NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), Named::getID(), getNamedEdgeContinuating(), getNamedNode(), NBEdge::getNumLanes(), getReversedContinuating(), NBNode::hasIncoming(), NBNode::hasOutgoing(), NBEdge::L2L_VALIDATED, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Nodes | ( | ) | [private] |
Parses KNOTEN.
Definition at line 246 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NBNetBuilder::getNodeCont(), NBNodeCont::insert(), myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), SUMOReal, NILoader::transformCoordinates(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_NodesToTrafficLights | ( | ) | [private] |
Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN.
Definition at line 796 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, myTLS, and NBNodeCont::retrieve().
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_PartOfArea | ( | ) | [private] |
Parses FLAECHENELEMENT.
Definition at line 422 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and mySubPartsAreas.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Phases | ( | ) | [private] |
Parses LSAPHASE/PHASE.
Definition at line 924 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and SUMOReal.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Point | ( | ) | [private] |
Parses PUNKT.
Definition at line 295 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, myPoints, SUMOReal, toString(), NILoader::transformCoordinates(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_SignalGroups | ( | ) | [private] |
Parses LSASIGNALGRUPPE/SIGNALGRUPPE.
Definition at line 805 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), SUMOReal, and WRITE_ERROR.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_SignalGroupsToPhases | ( | ) | [private] |
Parses LSASIGNALGRUPPEZULSAPHASE.
Definition at line 937 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and NIVisumTL::SignalGroup::phases().
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_TrafficLights | ( | ) | [private] |
Parses LSA/SIGNALANLAGE.
Definition at line 779 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NamedColumnsParser::know(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and SUMOReal.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Turns | ( | ) | [private] |
Parses ABBIEGEBEZIEHUNG/ABBIEGER.
Definition at line 542 of file NIImporter_VISUM.cpp.
References NBEdge::addEdge2EdgeConnection(), NamedColumnsParser::get(), OptionsCont::getBool(), NBNode::getConnectionTo(), Named::getID(), getNamedNode(), OptionsCont::getOptions(), OptionsCont::isSet(), NamedColumnsParser::know(), myLineParser, myVSysTypes, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_TurnsToSignalGroups | ( | ) | [private] |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
Definition at line 823 of file NIImporter_VISUM.cpp.
References NIVisumTL::SignalGroup::connections(), getEdge(), NBNetBuilder::getEdgeCont(), Named::getID(), getNamedEdgeContinuating(), getNamedNode(), getNamedString(), NBNode::hasIncoming(), NBNode::hasOutgoing(), NamedColumnsParser::know(), myLineParser, myNetBuilder, myTLS, and NBEdgeCont::retrieve().
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_Types | ( | ) | [private] |
Parses STRECKENTYP.
Definition at line 230 of file NIImporter_VISUM.cpp.
References NBCapacity2Lanes::get(), NamedColumnsParser::get(), getNamedFloat(), NBNetBuilder::getTypeCont(), NBTypeCont::insert(), myCapacity2Lanes, myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), and SUMOReal.
Referenced by NIImporter_VISUM().
void NIImporter_VISUM::parse_VSysTypes | ( | ) | [private] |
Parses VSYS.
Definition at line 222 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NamedColumnsParser::know(), myLineParser, and myVSysTypes.
Referenced by NIImporter_VISUM().
The converter to compute the lane number of edges from their capacity.
Definition at line 477 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 501 of file NIImporter_VISUM.h.
Referenced by load(), parse_AreaSubPartElement(), parse_Districts(), parse_Edges(), parse_Nodes(), parse_SignalGroups(), parse_TrafficLights(), and parse_Types().
std::map<NBDistrict*, PositionVector> NIImporter_VISUM::myDistrictShapes [private] |
A temporary storage for district shapes as they are filled incrementally.
Definition at line 517 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 508 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 466 of file NIImporter_VISUM.h.
Referenced by load().
the parser to parse the information from the data lines
the order of columns within the visum format seems to vary, so a named parser is needed
Definition at line 474 of file NIImporter_VISUM.h.
Referenced by getNamedFloat(), getWeightedBool(), getWeightedFloat(), load(), 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().
LineReader NIImporter_VISUM::myLineReader [private] |
The line reader to use to read from the file.
Definition at line 469 of file NIImporter_VISUM.h.
Referenced by load().
NBNetBuilder& NIImporter_VISUM::myNetBuilder [private] |
The network builder to fill with loaded values.
Definition at line 463 of file NIImporter_VISUM.h.
Referenced by buildDistrictNode(), getReversedContinuating(), load(), parse_Connectors(), parse_Districts(), parse_Edges(), parse_Lanes(), parse_LanesConnections(), parse_Nodes(), parse_NodesToTrafficLights(), parse_TurnsToSignalGroups(), and parse_Types().
std::map<long, Position> NIImporter_VISUM::myPoints [private] |
A map of point ids to positions.
Definition at line 505 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_Point().
std::map<long, NBDistrict*> NIImporter_VISUM::myShapeDistrictMap [private] |
A map from district shape definition name to the district.
Definition at line 511 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_Districts().
List of known parsers.
Definition at line 487 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 514 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_PartOfArea().
NIVisumTL_Map NIImporter_VISUM::myTLS [private] |
List of visum traffic lights.
Definition at line 492 of file NIImporter_VISUM.h.
Referenced by load(), parse_NodesToTrafficLights(), parse_Phases(), parse_SignalGroups(), parse_SignalGroupsToPhases(), parse_TrafficLights(), parse_TurnsToSignalGroups(), and ~NIImporter_VISUM().
std::vector<std::string > NIImporter_VISUM::myTouchedEdges [private] |
bool NIImporter_VISUM::myUseVisumPrio [private] |
Information whether VISUM priority information shall be used.
Definition at line 498 of file NIImporter_VISUM.h.
Referenced by parse_Edges().
VSysTypeNames NIImporter_VISUM::myVSysTypes [private] |
The used vsystypes.
Definition at line 482 of file NIImporter_VISUM.h.
Referenced by parse_Turns(), and parse_VSysTypes().