![]() |
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. More... | |
Protected Member Functions | |
void | load () |
Parses the VISUM-network file storing the parsed structures within myNetBuilder. More... | |
NIImporter_VISUM (NBNetBuilder &nb, const std::string &file, NBCapacity2Lanes capacity2Lanes, bool useVisumPrio) | |
constructor More... | |
~NIImporter_VISUM () | |
destructor More... | |
Private Types | |
typedef std::map< std::string, NIVisumTL * > | NIVisumTL_Map |
Definition of a map for loaded traffic lights (id->tls) More... | |
typedef std::vector< TypeParser > | ParserVector |
Definition of the list of known parsers. More... | |
typedef void(NIImporter_VISUM::* | ParsingFunction) () |
Definition of a function for parsing a single line from a certain db. More... | |
typedef std::map< std::string, std::string > | VSysTypeNames |
Definition of a storage for vsystypes. More... | |
Private Member Functions | |
void | addParser (const std::string &name, ParsingFunction function) |
Adds a parser into the sorted list of parsers to use. More... | |
NBNode * | buildDistrictNode (const std::string &id, NBNode *dest, bool isSource) |
Builds a node for the given district and returns it. More... | |
bool | checkNodes (NBNode *from, NBNode *to) |
Returns whether both nodes are a valid combination of from/to-nodes. More... | |
NBEdge * | getEdge (NBNode *FromNode, NBNode *ToNode) |
Returns the edge that connects both nodes. More... | |
NBEdge * | getNamedEdge (const std::string &fieldName) |
Tries to get the edge which name is stored in the given field. More... | |
NBEdge * | getNamedEdge (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. More... | |
NBEdge * | getNamedEdgeContinuating (const std::string &fieldName, NBNode *node) |
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. More... | |
NBEdge * | getNamedEdgeContinuating (const std::string &fieldName1, const std::string &fieldName2, NBNode *node) |
The same, but two different names for the field are allowed. More... | |
NBEdge * | getNamedEdgeContinuating (NBEdge *begin, NBNode *node) |
The same, but for an already given edge. More... | |
double | getNamedFloat (const std::string &fieldName) |
Returns the value from the named column as a float. More... | |
double | getNamedFloat (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. More... | |
double | getNamedFloat (const std::string &fieldName, double defaultValue) |
Returns the value from the named column as a float or the default value if an error occurs. More... | |
double | getNamedFloat (const std::string &fieldName1, const std::string &fieldName2, double defaultValue) |
The same, but two different names for the field are allowed. More... | |
NBNode * | getNamedNode (const std::string &fieldName) |
Tries to get the node which name is stored in the given field. More... | |
NBNode * | getNamedNode (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. More... | |
std::string | getNamedString (const std::string &fieldName) |
Returns the value from the named column as a normalised string. More... | |
std::string | getNamedString (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. More... | |
NBEdge * | getReversedContinuating (NBEdge *edge, NBNode *node) |
Returns the opposite direction of the given edge. More... | |
bool | getWeightedBool (const std::string &name) |
tries to get a bool which is possibly assigned to a certain modality More... | |
double | getWeightedFloat (const std::string &name) |
tries to get a double which is possibly assigned to a certain modality More... | |
void | parse_AreaSubPartElement () |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER. More... | |
void | parse_Connectors () |
Parses ANBINDUNG. More... | |
void | parse_Districts () |
Parses BEZIRK. More... | |
void | parse_EdgePolys () |
Parses STRECKENPOLY. More... | |
void | parse_Edges () |
Parses STRECKE/STRECKEN. More... | |
void | parse_Kante () |
Parses FLAECHENELEMENT. More... | |
void | parse_Lanes () |
Parses FAHRSTREIFEN. More... | |
void | parse_LanesConnections () |
Parses FAHRSTREIFENABBIEGER. More... | |
void | parse_Nodes () |
Parses KNOTEN. More... | |
void | parse_NodesToTrafficLights () |
Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN. More... | |
void | parse_PartOfArea () |
Parses FLAECHENELEMENT. More... | |
void | parse_Phases () |
Parses LSAPHASE/PHASE. More... | |
void | parse_Point () |
Parses PUNKT. More... | |
void | parse_SignalGroups () |
Parses LSASIGNALGRUPPE/SIGNALGRUPPE. More... | |
void | parse_SignalGroupsToPhases () |
Parses LSASIGNALGRUPPEZULSAPHASE. More... | |
void | parse_TrafficLights () |
Parses LSA/SIGNALANLAGE. More... | |
void | parse_Turns () |
Parses ABBIEGEBEZIEHUNG/ABBIEGER. More... | |
void | parse_TurnsToSignalGroups () |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER. More... | |
void | parse_Types () |
Parses STRECKENTYP. More... | |
void | parse_VSysTypes () |
Parses VSYS. More... | |
Private Attributes | |
NBCapacity2Lanes | myCapacity2Lanes |
The converter to compute the lane number of edges from their capacity. More... | |
std::string | myCurrentID |
The name of the currently parsed item used for error reporting. More... | |
std::map< NBDistrict *, PositionVector > | myDistrictShapes |
A temporary storage for district shapes as they are filled incrementally. More... | |
std::map< long long int, std::pair< long long int, long long int > > | myEdges |
A map of edge (not road, but "edge" in this case) ids to from/to-points. More... | |
std::string | myFileName |
The name of the parsed file, for error reporting. More... | |
NamedColumnsParser | myLineParser |
the parser to parse the information from the data lines More... | |
LineReader | myLineReader |
The line reader to use to read from the file. More... | |
NBNetBuilder & | myNetBuilder |
The network builder to fill with loaded values. More... | |
std::map< long long int, Position > | myPoints |
A map of point ids to positions. More... | |
std::map< long long int, NBDistrict * > | myShapeDistrictMap |
A map from district shape definition name to the district. More... | |
ParserVector | mySingleDataParsers |
List of known parsers. More... | |
std::map< long long int, std::vector< long long int > > | mySubPartsAreas |
A map from area parts to area ids. More... | |
NIVisumTL_Map | myTLS |
List of visum traffic lights. More... | |
std::vector< std::string > | myTouchedEdges |
Already read edges. More... | |
bool | myUseVisumPrio |
Information whether VISUM priority information shall be used. More... | |
VSysTypeNames | myVSysTypes |
The used vsystypes. More... | |
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.
|
private |
Definition of a map for loaded traffic lights (id->tls)
Definition at line 490 of file NIImporter_VISUM.h.
|
private |
Definition of the list of known parsers.
Definition at line 485 of file NIImporter_VISUM.h.
|
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.
|
private |
Definition of a storage for vsystypes.
Definition at line 480 of file NIImporter_VISUM.h.
|
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 72 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().
|
protected |
|
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 137 of file NIImporter_VISUM.cpp.
References NIImporter_VISUM::TypeParser::function, mySingleDataParsers, NIImporter_VISUM::TypeParser::name, and NIImporter_VISUM::TypeParser::position.
Referenced by NIImporter_VISUM().
|
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 1256 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().
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 1279 of file NIImporter_VISUM.cpp.
References WRITE_ERROR.
Referenced by parse_EdgePolys(), and parse_Edges().
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 1181 of file NIImporter_VISUM.cpp.
References NBNode::getOutgoingEdges().
Referenced by parse_TurnsToSignalGroups().
|
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 1061 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), and WRITE_ERROR.
Referenced by getNamedEdge(), and parse_Lanes().
|
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 1072 of file NIImporter_VISUM.cpp.
References getNamedEdge(), NamedColumnsParser::know(), and myLineParser.
|
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 1159 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), and WRITE_ERROR.
Referenced by getNamedEdgeContinuating(), getReversedContinuating(), parse_Lanes(), parse_LanesConnections(), and parse_TurnsToSignalGroups().
|
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 1170 of file NIImporter_VISUM.cpp.
References getNamedEdgeContinuating(), NamedColumnsParser::know(), and myLineParser.
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 1098 of file NIImporter_VISUM.cpp.
References NBEdge::getFromNode(), Named::getID(), NBNode::getIncomingEdges(), NBNode::getOutgoingEdges(), and NBEdge::getToNode().
|
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 1194 of file NIImporter_VISUM.cpp.
References TplConvert::_2double(), StringUtils::endsWith(), NamedColumnsParser::get(), and myLineParser.
Referenced by getNamedFloat(), parse_Districts(), parse_EdgePolys(), parse_Nodes(), parse_Phases(), parse_SignalGroups(), parse_TrafficLights(), and parse_Types().
|
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 1214 of file NIImporter_VISUM.cpp.
References getNamedFloat(), NamedColumnsParser::know(), and myLineParser.
|
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 1204 of file NIImporter_VISUM.cpp.
References TplConvert::_2double(), NamedColumnsParser::get(), and myLineParser.
|
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 1224 of file NIImporter_VISUM.cpp.
References getNamedFloat(), NamedColumnsParser::know(), and myLineParser.
|
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 1040 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBNodeCont::retrieve(), and WRITE_ERROR.
Referenced by getNamedNode(), parse_Connectors(), parse_EdgePolys(), parse_Edges(), parse_Lanes(), parse_LanesConnections(), parse_Turns(), and parse_TurnsToSignalGroups().
|
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 1051 of file NIImporter_VISUM.cpp.
References getNamedNode(), NamedColumnsParser::know(), and myLineParser.
|
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 1235 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and NBHelpers::normalIDRepresentation().
Referenced by getNamedString(), and parse_TurnsToSignalGroups().
|
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 1241 of file NIImporter_VISUM.cpp.
References getNamedString(), NamedColumnsParser::know(), and myLineParser.
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 1083 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getEdgeCont(), Named::getID(), getNamedEdgeContinuating(), myNetBuilder, and NBEdgeCont::retrieve().
Referenced by parse_Lanes(), and parse_LanesConnections().
|
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 1028 of file NIImporter_VISUM.cpp.
References TplConvert::_2bool(), NamedColumnsParser::get(), and myLineParser.
|
private |
tries to get a double which is possibly assigned to a certain modality
When the double 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 1016 of file NIImporter_VISUM.cpp.
References TplConvert::_2double(), NamedColumnsParser::get(), and myLineParser.
Referenced by parse_Connectors().
|
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 147 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getEdgeCont(), 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().
|
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 55 of file NIImporter_VISUM.cpp.
References OptionsCont::getBool(), OptionsCont::getFloat(), OptionsCont::getString(), OptionsCont::isSet(), and load().
Referenced by NILoader::load().
|
private |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
Definition at line 847 of file NIImporter_VISUM.cpp.
References TplConvert::_2long(), NamedColumnsParser::get(), myCurrentID, myDistrictShapes, myEdges, myLineParser, myPoints, myShapeDistrictMap, mySubPartsAreas, PositionVector::reverse(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses ANBINDUNG.
Definition at line 434 of file NIImporter_VISUM.cpp.
References NBDistrictCont::addSink(), NBDistrictCont::addSource(), buildDistrictNode(), NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), getNamedNode(), OptionsCont::getOptions(), getWeightedFloat(), NBEdgeCont::insert(), NamedColumnsParser::know(), LANESPREAD_RIGHT, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), NBEdge::setAsMacroscopicConnector(), NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, WRITE_ERROR, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
|
private |
Parses BEZIRK.
Definition at line 264 of file NIImporter_VISUM.cpp.
References TplConvert::_2long(), NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), getNamedFloat(), NBDistrictCont::insert(), NamedColumnsParser::know(), myCurrentID, myLineParser, myNetBuilder, myShapeDistrictMap, NBHelpers::normalIDRepresentation(), NBNetBuilder::transformCoordinate(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses STRECKENPOLY.
Definition at line 584 of file NIImporter_VISUM.cpp.
References TplConvert::_2int(), NBEdge::addGeometryPoint(), checkNodes(), NamedColumnsParser::get(), NBNode::getConnectionTo(), Named::getID(), getNamedFloat(), getNamedNode(), OptionsCont::getOptions(), myLineParser, NBNetBuilder::transformCoordinate(), WRITE_ERROR, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
|
private |
Parses STRECKE/STRECKEN.
Definition at line 308 of file NIImporter_VISUM.cpp.
References TplConvert::_2bool(), TplConvert::_2doubleSec(), TplConvert::_2intSec(), 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(), NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses FLAECHENELEMENT.
Definition at line 414 of file NIImporter_VISUM.cpp.
References TplConvert::_2long(), NamedColumnsParser::get(), myEdges, and myLineParser.
Referenced by NIImporter_VISUM().
|
private |
Parses FAHRSTREIFEN.
Definition at line 628 of file NIImporter_VISUM.cpp.
References TplConvert::_2double(), TplConvert::_2int(), 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::positionAtOffset(), NBEdgeCont::retrieve(), NBEdgeCont::splitAt(), toString(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses FAHRSTREIFENABBIEGER.
Definition at line 920 of file NIImporter_VISUM.cpp.
References TplConvert::_2int(), 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().
|
private |
Parses KNOTEN.
Definition at line 245 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NBNetBuilder::getNodeCont(), NBNodeCont::insert(), myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBNetBuilder::transformCoordinate(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN.
Definition at line 769 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, myTLS, and NBNodeCont::retrieve().
Referenced by NIImporter_VISUM().
|
private |
Parses FLAECHENELEMENT.
Definition at line 423 of file NIImporter_VISUM.cpp.
References TplConvert::_2long(), NamedColumnsParser::get(), myLineParser, and mySubPartsAreas.
Referenced by NIImporter_VISUM().
|
private |
Parses LSAPHASE/PHASE.
Definition at line 896 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NamedColumnsParser::know(), myLineParser, myTLS, and NBHelpers::normalIDRepresentation().
Referenced by NIImporter_VISUM().
|
private |
Parses PUNKT.
Definition at line 294 of file NIImporter_VISUM.cpp.
References TplConvert::_2double(), TplConvert::_2long(), NamedColumnsParser::get(), myLineParser, myPoints, toString(), NBNetBuilder::transformCoordinate(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses LSASIGNALGRUPPE/SIGNALGRUPPE.
Definition at line 778 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NamedColumnsParser::know(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses LSASIGNALGRUPPEZULSAPHASE.
Definition at line 907 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and NIVisumTL::SignalGroup::phases().
Referenced by NIImporter_VISUM().
|
private |
Parses LSA/SIGNALANLAGE.
Definition at line 755 of file NIImporter_VISUM.cpp.
References TplConvert::_2bool(), NamedColumnsParser::get(), getNamedFloat(), NamedColumnsParser::know(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and TIME2STEPS.
Referenced by NIImporter_VISUM().
|
private |
Parses ABBIEGEBEZIEHUNG/ABBIEGER.
Definition at line 543 of file NIImporter_VISUM.cpp.
References NBEdge::addEdge2EdgeConnection(), NamedColumnsParser::get(), OptionsCont::getBool(), NBNode::getConnectionTo(), Named::getID(), getNamedNode(), OptionsCont::getOptions(), NamedColumnsParser::know(), myLineParser, myVSysTypes, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
|
private |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
Definition at line 794 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().
|
private |
Parses STRECKENTYP.
Definition at line 226 of file NIImporter_VISUM.cpp.
References TplConvert::_2int(), NBCapacity2Lanes::get(), NamedColumnsParser::get(), getNamedFloat(), NBNetBuilder::getTypeCont(), NBTypeCont::insert(), NBTypeCont::markAsSet(), myCapacity2Lanes, myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), SUMO_ATTR_NUMLANES, SUMO_ATTR_ONEWAY, SUMO_ATTR_PRIORITY, SUMO_ATTR_SPEED, SVCAll, and NBEdge::UNSPECIFIED_WIDTH.
Referenced by NIImporter_VISUM().
|
private |
Parses VSYS.
Definition at line 218 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NamedColumnsParser::know(), myLineParser, and myVSysTypes.
Referenced by NIImporter_VISUM().
|
private |
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().
|
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().
|
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().
|
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().
|
private |
The name of the parsed file, for error reporting.
Definition at line 466 of file NIImporter_VISUM.h.
Referenced by load().
|
private |
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 getNamedEdge(), getNamedEdgeContinuating(), getNamedFloat(), getNamedNode(), getNamedString(), 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().
|
private |
The line reader to use to read from the file.
Definition at line 469 of file NIImporter_VISUM.h.
Referenced by load().
|
private |
The network builder to fill with loaded values.
Definition at line 463 of file NIImporter_VISUM.h.
Referenced by buildDistrictNode(), getNamedEdge(), getNamedEdgeContinuating(), getNamedNode(), getReversedContinuating(), load(), parse_Connectors(), parse_Districts(), parse_Edges(), parse_Lanes(), parse_LanesConnections(), parse_Nodes(), parse_NodesToTrafficLights(), parse_TurnsToSignalGroups(), and parse_Types().
|
private |
A map of point ids to positions.
Definition at line 505 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_Point().
|
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().
|
private |
List of known parsers.
Definition at line 487 of file NIImporter_VISUM.h.
Referenced by addParser(), and load().
|
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().
|
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().
|
private |
|
private |
Information whether VISUM priority information shall be used.
Definition at line 498 of file NIImporter_VISUM.h.
Referenced by parse_Edges().
|
private |
The used vsystypes.
Definition at line 482 of file NIImporter_VISUM.h.
Referenced by parse_Turns(), and parse_VSysTypes().