Eclipse 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 Types | |
enum | VISUM_KEY { VISUM_SYS , VISUM_LINKTYPE , VISUM_NODE , VISUM_DISTRICT , VISUM_POINT , VISUM_LINK , VISUM_V0 , VISUM_TYPES , VISUM_RANK , VISUM_CAPACITY , VISUM_XCOORD , VISUM_YCOORD , VISUM_FROMNODE , VISUM_TONODE , VISUM_TYPE , VISUM_TYP , VISUM_ID , VISUM_CODE , VISUM_DISTRICT_CONNECTION , VISUM_SOURCE_DISTRICT , VISUM_FROMNODENO , VISUM_DIRECTION , VISUM_SURFACEID , VISUM_FACEID , VISUM_FROMPOINTID , VISUM_TOPOINTID , VISUM_EDGE , VISUM_VIANODENO , VISUM_NUMLANES , VISUM_TURN , VISUM_INDEX , VISUM_LINKPOLY , VISUM_SURFACEITEM , VISUM_FACEITEM , VISUM_EDGEID , VISUM_ORIGIN , VISUM_DESTINATION , VISUM_STOPPOINT , VISUM_NAME , VISUM_LINKNO , VISUM_RELPOS , VISUM_CATID , VISUM_EDGEITEM , VISUM_POICATEGORY , VISUM_NO } |
Protected Member Functions | |
void | load () |
Parses the VISUM-network file storing the parsed structures within myNetBuilder. | |
void | loadLanguage (const std::string &file) |
NIImporter_VISUM (NBNetBuilder &nb, const std::string &file, NBCapacity2Lanes capacity2Lanes, bool useVisumPrio, const std::string &languageFile) | |
constructor | |
~NIImporter_VISUM () | |
destructor | |
Static Protected Attributes | |
static StringBijection< VISUM_KEY > | KEYS |
link directions | |
static StringBijection< VISUM_KEY >::Entry | KEYS_DE [] |
Strings for the keywords. | |
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) |
Tries to get the edge which name is stored in the given field. | |
NBEdge * | getNamedEdge (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. | |
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. | |
NBEdge * | getNamedEdgeContinuating (const std::string &fieldName1, const std::string &fieldName2, NBNode *node) |
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. | |
double | getNamedFloat (const std::string &fieldName) |
Returns the value from the named column as a float. | |
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. | |
double | getNamedFloat (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. | |
double | getNamedFloat (const std::string &fieldName1, const std::string &fieldName2, double defaultValue) |
The same, but two different names for the field are allowed. | |
NBNode * | getNamedNode (const std::string &fieldName) |
Tries to get the node which name is stored in the given field. | |
NBNode * | getNamedNode (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. | |
NBNode * | getNamedNodeSecure (const std::string &fieldName, NBNode *fallback=0) |
std::string | getNamedString (const std::string &fieldName) |
Returns the value from the named column as a normalised string. | |
std::string | getNamedString (const std::string &fieldName1, const std::string &fieldName2) |
The same, but two different names for the field are allowed. | |
SVCPermissions | getPermissions (const std::string &name, bool warn=false, SVCPermissions unknown=SVCAll) |
parse permissions | |
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 | |
double | getWeightedFloat (const std::string &name, const std::string &suffix) |
tries to get a double which is possibly assigned to a certain modality | |
double | getWeightedFloat2 (const std::string &name, const std::string &name2, const std::string &suffix) |
as above but with two alternative names | |
void | parse_AreaSubPartElement () |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER. | |
void | parse_Connectors () |
Parses ANBINDUNG. | |
void | parse_Connectors_legacy () |
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_stopPoints () |
Parses HALTEPUNKT (public transport stop locations) | |
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. | |
Static Private Member Functions | |
static bool | isSplitEdge (NBEdge *edge, NBNode *node) |
whether the edge id ends with _nodeID | |
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 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. | |
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 long int, Position > | myPoints |
A map of point ids to positions. | |
std::map< long long int, NBDistrict * > | myShapeDistrictMap |
A map from district shape definition name to the district. | |
ParserVector | mySingleDataParsers |
List of known parsers. | |
std::map< long long int, std::vector< long long int > > | 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 occurrence 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 66 of file NIImporter_VISUM.h.
|
private |
Definition of a map for loaded traffic lights (id->tls)
Definition at line 495 of file NIImporter_VISUM.h.
|
private |
Definition of the list of known parsers.
Definition at line 490 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 355 of file NIImporter_VISUM.h.
|
private |
Definition of a storage for vsystypes.
Definition at line 485 of file NIImporter_VISUM.h.
|
protected |
Definition at line 529 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 116 of file NIImporter_VISUM.cpp.
References addParser(), OptionsCont::getOptions(), StringBijection< T >::getString(), KEYS, loadLanguage(), parse_AreaSubPartElement(), parse_Connectors(), parse_Connectors_legacy(), 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_stopPoints(), parse_TrafficLights(), parse_Turns(), parse_TurnsToSignalGroups(), parse_Types(), parse_VSysTypes(), VISUM_DISTRICT, VISUM_DISTRICT_CONNECTION, VISUM_EDGE, VISUM_FACEITEM, VISUM_LINK, VISUM_LINKPOLY, VISUM_LINKTYPE, VISUM_NODE, VISUM_POINT, VISUM_STOPPOINT, VISUM_SURFACEITEM, VISUM_SYS, and VISUM_TURN.
|
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 192 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 1496 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getDistrictCont(), Named::getID(), NBNetBuilder::getNodeCont(), NBDistrict::getPosition(), NBNodeCont::insert(), myNetBuilder, NBDistrictCont::retrieve(), NBNodeCont::retrieve(), TL, and WRITE_ERRORF.
Referenced by parse_Connectors_legacy().
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 1519 of file NIImporter_VISUM.cpp.
References TL, and 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 1421 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 1301 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), TL, and WRITE_ERRORF.
Referenced by getNamedEdge(), parse_Lanes(), parse_LanesConnections(), and parse_stopPoints().
|
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 1312 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 1399 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), getNamedEdgeContinuating(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), TL, and WRITE_ERRORF.
Referenced by getNamedEdgeContinuating(), 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 1410 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 1338 of file NIImporter_VISUM.cpp.
References NBEdge::getFromNode(), NBEdge::getID(), 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 1434 of file NIImporter_VISUM.cpp.
References StringUtils::endsWith(), NamedColumnsParser::get(), myLineParser, and StringUtils::toDouble().
Referenced by getNamedFloat(), getNamedFloat(), parse_Connectors(), parse_Connectors_legacy(), parse_Districts(), parse_EdgePolys(), parse_Nodes(), parse_Phases(), parse_SignalGroups(), and parse_Types().
|
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 1444 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and StringUtils::toDouble().
|
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 1454 of file NIImporter_VISUM.cpp.
References getNamedFloat(), NamedColumnsParser::know(), 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 1464 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 1270 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBNodeCont::retrieve(), TL, and WRITE_ERRORF.
Referenced by getNamedNode(), parse_Connectors(), parse_Connectors_legacy(), parse_EdgePolys(), parse_Edges(), 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 1291 of file NIImporter_VISUM.cpp.
References getNamedNode(), NamedColumnsParser::know(), and myLineParser.
|
private |
Definition at line 1280 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), and NBNodeCont::retrieve().
Referenced by parse_Lanes(), and parse_stopPoints().
|
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 1475 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and NBHelpers::normalIDRepresentation().
Referenced by getNamedString(), 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 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 1481 of file NIImporter_VISUM.cpp.
References getNamedString(), NamedColumnsParser::know(), and myLineParser.
|
private |
parse permissions
Definition at line 1239 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), StringTokenizer::getVector(), KEYS, myLineParser, SVC_BICYCLE, SVC_BUS, SVC_PASSENGER, SVC_PEDESTRIAN, SVC_RAIL, SVC_TRAM, SVC_TRUCK, StringUtils::to_lower_case(), VISUM_NO, and WRITE_WARNINGF.
Referenced by parse_Edges(), parse_stopPoints(), and parse_Types().
Returns the opposite direction of the given edge.
Because the opposite direction edge may be split, not 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 1323 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getEdgeCont(), NBEdge::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 1228 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and StringUtils::toBool().
|
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 1205 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), myLineParser, and StringUtils::toDouble().
Referenced by getWeightedFloat2(), and parse_TrafficLights().
|
private |
as above but with two alternative names
Definition at line 1218 of file NIImporter_VISUM.cpp.
References getWeightedFloat().
Referenced by parse_TrafficLights(), and parse_Types().
whether the edge id ends with _nodeID
Definition at line 1533 of file NIImporter_VISUM.cpp.
References NBEdge::getID(), and Named::getID().
Referenced by parse_Lanes().
|
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 occurrences 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 202 of file NIImporter_VISUM.cpp.
References NBNetBuilder::getEdgeCont(), LineReader::getLineNumber(), LineReader::getPosition(), NBNetBuilder::getTLLogicCont(), LineReader::hasMore(), myCurrentID, myDistrictShapes, myFileName, myLineParser, myLineReader, myNetBuilder, mySingleDataParsers, myTLS, NamedColumnsParser::parseLine(), PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, LineReader::readLine(), NBEdgeCont::reduceGeometries(), LineReader::reinit(), NamedColumnsParser::reinit(), LineReader::setFile(), LineReader::setPos(), TL, TLF, WRITE_ERRORF, and WRITE_MESSAGE.
Referenced by loadNetwork().
|
protected |
Definition at line 1539 of file NIImporter_VISUM.cpp.
References StringBijection< T >::get(), StringBijection< T >::hasString(), StringBijection< T >::insert(), KEYS, StringBijection< T >::remove(), TL, TLF, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
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 98 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 983 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), KEYS, myCurrentID, myDistrictShapes, myEdges, myLineParser, myPoints, myShapeDistrictMap, mySubPartsAreas, PositionVector::reverse(), TL, StringUtils::toLong(), VISUM_DIRECTION, VISUM_EDGEID, VISUM_FACEID, WRITE_ERROR, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses ANBINDUNG.
Definition at line 503 of file NIImporter_VISUM.cpp.
References NBDistrictCont::addSink(), NBDistrictCont::addSource(), NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNode::getIncomingEdges(), getNamedFloat(), getNamedNode(), NBNode::getOutgoingEdges(), StringBijection< T >::getString(), KEYS, NamedColumnsParser::know(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), VISUM_DESTINATION, VISUM_DIRECTION, VISUM_FROMNODENO, VISUM_ORIGIN, and VISUM_SOURCE_DISTRICT.
Referenced by NIImporter_VISUM().
|
private |
Definition at line 538 of file NIImporter_VISUM.cpp.
References NBDistrictCont::addSink(), NBDistrictCont::addSource(), buildDistrictNode(), NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), Named::getID(), NBNode::getIncomingEdges(), getNamedFloat(), getNamedNode(), OptionsCont::getOptions(), NBNode::getOutgoingEdges(), StringBijection< T >::getString(), NBEdgeCont::insert(), KEYS, NamedColumnsParser::know(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), RIGHT, NBEdge::setAsMacroscopicConnector(), TL, NBEdge::UNSPECIFIED_FRICTION, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, VISUM_DESTINATION, VISUM_DIRECTION, VISUM_FROMNODENO, VISUM_ORIGIN, VISUM_SOURCE_DISTRICT, VISUM_TYP, WRITE_ERRORF, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
private |
Parses BEZIRK.
Definition at line 332 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), getNamedFloat(), StringBijection< T >::getString(), NBDistrictCont::insert(), KEYS, NamedColumnsParser::know(), myCurrentID, myLineParser, myNetBuilder, myShapeDistrictMap, NBHelpers::normalIDRepresentation(), TL, StringUtils::toLong(), NBNetBuilder::transformCoordinate(), VISUM_NO, VISUM_SURFACEID, VISUM_XCOORD, VISUM_YCOORD, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses STRECKENPOLY.
Definition at line 683 of file NIImporter_VISUM.cpp.
References NBEdge::addGeometryPoint(), checkNodes(), NamedColumnsParser::get(), NBNode::getConnectionTo(), Named::getID(), getNamedFloat(), getNamedNode(), OptionsCont::getOptions(), StringBijection< T >::getString(), KEYS, myLineParser, TL, StringUtils::toInt(), NBNetBuilder::transformCoordinate(), VISUM_FROMNODE, VISUM_INDEX, VISUM_TONODE, VISUM_XCOORD, VISUM_YCOORD, WRITE_ERRORF, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
private |
Parses STRECKE/STRECKEN.
Definition at line 376 of file NIImporter_VISUM.cpp.
References CENTER, checkNodes(), NamedColumnsParser::get(), NBCapacity2Lanes::get(), NBNetBuilder::getEdgeCont(), NBTypeCont::getEdgeTypeNumLanes(), NBTypeCont::getEdgeTypePermissions(), NBTypeCont::getEdgeTypePriority(), NBTypeCont::getEdgeTypeSpeed(), getNamedNode(), OptionsCont::getOptions(), getPermissions(), StringBijection< T >::getString(), NBNetBuilder::getTypeCont(), NBEdgeCont::insert(), KEYS, NamedColumnsParser::know(), StringUtils::latin1_to_utf8(), myCapacity2Lanes, myCurrentID, myLineParser, myNetBuilder, myTouchedEdges, myUseVisumPrio, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), RIGHT, NBEdge::setLaneSpreadFunction(), NBEdge::setPermissions(), TL, StringUtils::toBool(), StringUtils::toDouble(), StringUtils::toInt(), NBEdge::UNSPECIFIED_FRICTION, NBEdge::UNSPECIFIED_OFFSET, NBEdge::UNSPECIFIED_WIDTH, VISUM_CAPACITY, VISUM_FROMNODE, VISUM_NAME, VISUM_NO, VISUM_NUMLANES, VISUM_TONODE, VISUM_TYP, VISUM_TYPE, VISUM_TYPES, VISUM_V0, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses FLAECHENELEMENT.
Definition at line 483 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), KEYS, myEdges, myLineParser, StringUtils::toLong(), VISUM_FROMPOINTID, VISUM_ID, and VISUM_TOPOINTID.
Referenced by NIImporter_VISUM().
|
private |
Parses FAHRSTREIFEN.
Definition at line 727 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getDistrictCont(), NBNetBuilder::getEdgeCont(), NBEdge::getFromNode(), NBEdge::getGeometry(), NBEdge::getID(), Named::getID(), NBNode::getIncomingEdges(), NBEdge::getLength(), getNamedEdge(), getNamedEdgeContinuating(), getNamedNodeSecure(), NBNetBuilder::getNodeCont(), NBEdge::getNumLanes(), NBNode::getOutgoingEdges(), getReversedContinuating(), StringBijection< T >::getString(), NBEdge::getToNode(), NBNode::hasIncoming(), NBNode::hasOutgoing(), NBEdge::incLaneNo(), NBNodeCont::insert(), isSplitEdge(), KEYS, NamedColumnsParser::know(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), PositionVector::positionAtOffset(), NBEdgeCont::retrieve(), NBEdgeCont::splitAt(), TL, StringUtils::toDouble(), StringUtils::toInt(), toString(), VISUM_LINKNO, WRITE_ERRORF, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
private |
Parses FAHRSTREIFENABBIEGER.
Definition at line 1056 of file NIImporter_VISUM.cpp.
References NBEdge::addLane2LaneConnection(), NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), NBEdge::getID(), getNamedEdge(), getNamedEdgeContinuating(), getNamedNode(), getNamedString(), NBEdge::getNumLanes(), getReversedContinuating(), NBEdge::getToNode(), NBNode::hasIncoming(), NBNode::hasOutgoing(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), NBEdgeCont::retrieve(), TL, StringUtils::toInt(), NBEdge::VALIDATED, WRITE_ERRORF, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
|
private |
Parses KNOTEN.
Definition at line 313 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), NBNetBuilder::getNodeCont(), StringBijection< T >::getString(), NBNodeCont::insert(), KEYS, myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), TL, NBNetBuilder::transformCoordinate(), VISUM_NO, VISUM_XCOORD, VISUM_YCOORD, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses KNOTENZULSA/SIGNALANLAGEZUKNOTEN.
Definition at line 889 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getNodeCont(), myLineParser, myNetBuilder, myTLS, NBNodeCont::retrieve(), and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses FLAECHENELEMENT.
Definition at line 492 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), KEYS, myLineParser, mySubPartsAreas, StringUtils::toLong(), VISUM_FACEID, and VISUM_SURFACEID.
Referenced by NIImporter_VISUM().
|
private |
Parses LSAPHASE/PHASE.
Definition at line 1032 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), StringBijection< T >::getString(), KEYS, NamedColumnsParser::know(), myLineParser, myTLS, NBHelpers::normalIDRepresentation(), TIME2STEPS, and VISUM_NO.
Referenced by NIImporter_VISUM().
|
private |
Parses PUNKT.
Definition at line 362 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), KEYS, myLineParser, myPoints, TL, StringUtils::toDouble(), StringUtils::toLong(), toString(), NBNetBuilder::transformCoordinate(), VISUM_ID, VISUM_XCOORD, VISUM_YCOORD, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses LSASIGNALGRUPPE/SIGNALGRUPPE.
Definition at line 909 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), getNamedFloat(), StringBijection< T >::getString(), KEYS, NamedColumnsParser::know(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), TIME2STEPS, TL, VISUM_NO, and WRITE_ERRORF.
Referenced by NIImporter_VISUM().
|
private |
Parses LSASIGNALGRUPPEZULSAPHASE.
Definition at line 1043 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NIVisumTL::getPhases(), NIVisumTL::getSignalGroup(), myLineParser, myTLS, NBHelpers::normalIDRepresentation(), and NIVisumTL::SignalGroup::phases().
Referenced by NIImporter_VISUM().
|
private |
Parses HALTEPUNKT (public transport stop locations)
Definition at line 1154 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBNetBuilder::getEdgeCont(), OptionsCont::getFloat(), NBEdge::getFromNode(), NBEdge::getGeometry(), NBEdge::getID(), Named::getID(), NBEdge::getLength(), getNamedEdge(), getNamedNodeSecure(), OptionsCont::getOptions(), getPermissions(), NBNetBuilder::getPTStopCont(), StringBijection< T >::getString(), NBEdge::getToNode(), NBPTStopCont::insert(), KEYS, StringUtils::latin1_to_utf8(), myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), PositionVector::positionAtOffset(), NBEdgeCont::retrieve(), TL, StringUtils::toDouble(), VISUM_FROMNODE, VISUM_FROMNODENO, VISUM_LINKNO, VISUM_NAME, VISUM_NO, VISUM_RELPOS, VISUM_TYPES, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
private |
Parses LSA/SIGNALANLAGE.
Definition at line 875 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), getWeightedFloat(), getWeightedFloat2(), KEYS, NamedColumnsParser::know(), myCurrentID, myLineParser, myTLS, NBHelpers::normalIDRepresentation(), TIME2STEPS, StringUtils::toBool(), and VISUM_NO.
Referenced by NIImporter_VISUM().
|
private |
Parses ABBIEGEBEZIEHUNG/ABBIEGER.
Definition at line 642 of file NIImporter_VISUM.cpp.
References NBEdge::addEdge2EdgeConnection(), NamedColumnsParser::get(), NBNode::getConnectionTo(), Named::getID(), getNamedNode(), OptionsCont::getOptions(), StringBijection< T >::getString(), KEYS, NamedColumnsParser::know(), myLineParser, myVSysTypes, TL, VISUM_FROMNODE, VISUM_TONODE, VISUM_TYPES, VISUM_VIANODENO, and WRITE_WARNINGF.
Referenced by NIImporter_VISUM().
|
private |
Parses ABBZULSASIGNALGRUPPE/SIGNALGRUPPEZUABBIEGER.
XXX could be retrieved from context
Definition at line 925 of file NIImporter_VISUM.cpp.
References NIVisumTL::SignalGroup::connections(), getEdge(), NBNetBuilder::getEdgeCont(), NBEdge::getID(), getNamedEdgeContinuating(), getNamedNode(), getNamedString(), NBNode::hasIncoming(), NBNode::hasOutgoing(), NamedColumnsParser::know(), myLineParser, myNetBuilder, myTLS, NBEdgeCont::retrieve(), TL, and WRITE_WARNING.
Referenced by NIImporter_VISUM().
|
private |
Parses STRECKENTYP.
Definition at line 283 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), NBCapacity2Lanes::get(), getNamedFloat(), getPermissions(), StringBijection< T >::getString(), NBNetBuilder::getTypeCont(), getWeightedFloat2(), NBTypeCont::insertEdgeType(), KEYS, NBTypeCont::markEdgeTypeAsSet(), myCapacity2Lanes, myCurrentID, myLineParser, myNetBuilder, NBHelpers::normalIDRepresentation(), RIGHT, SUMO_ATTR_ALLOW, SUMO_ATTR_NUMLANES, SUMO_ATTR_ONEWAY, SUMO_ATTR_PRIORITY, SUMO_ATTR_SPEED, SUMO_ATTR_SPREADTYPE, StringUtils::toInt(), toString(), NBEdge::UNSPECIFIED_WIDTH, VISUM_CAPACITY, VISUM_NO, VISUM_RANK, VISUM_TYPES, VISUM_V0, and WRITE_ERROR.
Referenced by NIImporter_VISUM().
|
private |
Parses VSYS.
Definition at line 275 of file NIImporter_VISUM.cpp.
References NamedColumnsParser::get(), StringBijection< T >::getString(), KEYS, NamedColumnsParser::know(), myLineParser, myVSysTypes, VISUM_CODE, and VISUM_TYP.
Referenced by NIImporter_VISUM().
|
staticprotected |
link directions
Definition at line 582 of file NIImporter_VISUM.h.
Referenced by getPermissions(), loadLanguage(), NIImporter_VISUM(), parse_AreaSubPartElement(), parse_Connectors(), parse_Connectors_legacy(), parse_Districts(), parse_EdgePolys(), parse_Edges(), parse_Kante(), parse_Lanes(), parse_Nodes(), parse_PartOfArea(), parse_Phases(), parse_Point(), parse_SignalGroups(), parse_stopPoints(), parse_TrafficLights(), parse_Turns(), parse_Types(), and parse_VSysTypes().
|
staticprotected |
Strings for the keywords.
Definition at line 39 of file NIImporter_VISUM.h.
|
private |
The converter to compute the lane number of edges from their capacity.
Definition at line 482 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 506 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 522 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 513 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 471 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 479 of file NIImporter_VISUM.h.
Referenced by getNamedEdge(), getNamedEdge(), getNamedEdgeContinuating(), getNamedEdgeContinuating(), getNamedFloat(), getNamedFloat(), getNamedFloat(), getNamedFloat(), getNamedNode(), getNamedNode(), getNamedNodeSecure(), getNamedString(), getNamedString(), getPermissions(), getWeightedBool(), getWeightedFloat(), load(), parse_AreaSubPartElement(), parse_Connectors(), parse_Connectors_legacy(), 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_stopPoints(), 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 474 of file NIImporter_VISUM.h.
Referenced by load().
|
private |
The network builder to fill with loaded values.
Definition at line 468 of file NIImporter_VISUM.h.
Referenced by buildDistrictNode(), getNamedEdge(), getNamedEdgeContinuating(), getNamedNode(), getNamedNodeSecure(), getReversedContinuating(), load(), parse_Connectors(), parse_Connectors_legacy(), parse_Districts(), parse_Edges(), parse_Lanes(), parse_LanesConnections(), parse_Nodes(), parse_NodesToTrafficLights(), parse_stopPoints(), parse_TurnsToSignalGroups(), and parse_Types().
|
private |
A map of point ids to positions.
Definition at line 510 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 516 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_Districts().
|
private |
List of known parsers.
Definition at line 492 of file NIImporter_VISUM.h.
Referenced by addParser(), and load().
|
private |
A map from area parts to area ids.
Definition at line 519 of file NIImporter_VISUM.h.
Referenced by parse_AreaSubPartElement(), and parse_PartOfArea().
|
private |
List of visum traffic lights.
Definition at line 497 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 503 of file NIImporter_VISUM.h.
Referenced by parse_Edges().
|
private |
The used vsystypes.
Definition at line 487 of file NIImporter_VISUM.h.
Referenced by parse_Turns(), and parse_VSysTypes().