Release log
0.3.0
PLANitAll
- updated artifact id to conform with how this generally is setup, i.e.
- #5 - updated project references to conform to new domain org.goplanit.* #6
PLANit
enhancements
- refactored infrastructure layers (container and network): parameterise it and introduce a new TopologicalLayer with configurable vertices,edges, edgesegments containers #47
- support stops, platforms and other PT related infrastructure in PLANit memory model via service network and transfer zone implementations (PLANitOSM/#8)
- modifications to network, zoning or other core components that have managedids, are now handled via a dedicated modifier classes to ensure ids remain consistent #51
- breaking links causes XML ids to no longer be unique and no option to fix this. Now we can add listeners to fix this on the flye in a generic way #55
- improved choices for default outputproperties on output configurations #6
- outputProperty LinkCost renamed to LinkSegmentCost #9
- outputProperty LinkType not correctly defined, should be segment based
- updated artifact id to conform with how this generally is setup, i.e.
- #57 - creation of paths now supported through PathBuilder like other id dependent components #58
- refactored the way we can track read input entities by their (original) source id when parsing and converting into PLANit entities via converter readers. this was not proper and has been improved #63
- added service network that can be defined on top of a physical network to represent service legs and service nodes #62
- added physical cost implementation based on free flow travel time only #64
- added norm based gap function #65
- linkSegmentTypes should not define speed limits per mode within the access element but via an accessgroup. This has been changed (planitxml/#20)
- initialCosts are not properly implemented. They require more flexibility (period agnostic/specific parsing, registration on assignment separate and again timeperiod specific or agnostic and unrelated to parsing) (planit/#68)
- added new PhysicalCost imlementation: SteadyStateTravelTimeCost based on Raadsen and Bliemer 2019 for sLTM #67
- added support for overriding units in output type configuration (planitpy2j/#10)
- parameters in fired create event for each traffic assignment component needs documentation (handled by creating dedicated classes) #16
- add support for user based setting of the used gapfunction (planitpy2j/#9)
- update packages to conform to new domain org.goplanit.* #72
bug fixes
- Tampere node model input is not properly setup for checking making it possible for asymmetric intersections to fail verification if correctly specified. this has been fixed #48
- Copy constructor of edge and vertex does not copy inputproperties -> should be deep copied by default. this has been fixed #50
- When a mode is not supported on a link its cost now defaults to maxvalue and not infinity #52
- When a link is not accessible to a mode, we now use Double.MAX_VALUE as cost and not infinity because infinity cost results in NaN when multiplied with zero flow #53
- collecting link segments by startnode id in core is WRONG! This has been removed #2
PLANitGTFS
- added support for warning messages conditional on the availability requirements of the GTFS file #1
- update packages to conform to new domain org.goplanit.* #2
PLANitIntegrationTest
- updated artifact id to conform with how this generally is setup, i.e.
- #2 - update packages to conform to new domain org.goplanit.* #3
PLANitIO
- refactored tests so we have a runner class that wraps the assignment and a helper class for the csv comparisons #14
- update default mode to car and use factory method in PLANit + update xsd so this can be persisted as well #8
- add support for parsing/writing transferzonegroups #16
- network writer does not persist crs properly. Should store epsg code, but stores name instead. this has been fixed #19
- coordinate reference system on zoning XML element is never parsed nor is content converted to network CRS. this has been fixed #12
- added tests for validating the correctness of reader/writer of intermodal component of zoning #15
- implemented intermodal writer to support direct persistence of both network and (transfer)zoning analogous to intermodal reader #18
- updated artifact id to conform with how this generally is setup, i.e.
- #21 - parsing of initial costs is unnecessarily slow. this has been improved #5
- add service network that can be defined on top of a physical network to represent service legs and service nodes (planit/#62)
- update packages to conform to new domain org.goplanit.* #23
PLANitJ2Py
- updated artifact id to conform with how this generally is setup, i.e.
- #2 - updated packages to conform to new domain org.goplanit.* #3
PLANitMATSIM
- mapping of default modes should be based on common matsim modes: car, pt. This has been added #3
- updated artifact id to conform with how this generally is setup, i.e.
- #5 - it was not possible to map pedestrian and bicycle PLANit modes to MATSim modes. This has now been added as an option #6
- update packages to conform to new domain org.goplanit.* #7
PLANitOSM
- edge segments of broken edges are not properly removed from vertices when updating them, leading to too many entry and exit edge segments. This has been fixed #10
- OSM access:
tags are not yet parsed causing some links to not have support for modes included this way. this has been fixed #12 - parse stops, platforms and other PT related infrastructure and support them in PLANit memory model #8
- add support to remove dangling transfer zones in the end stage of parsing as well as recreating ids (to remain contiguous), because we parsed almost all transfer zones to avoid missing some that are incorrectly tagged #15
- modes on parsed transfer zones are now cross-referenced with stop_positions/connectoids to reduce the matches in case modes are incompatible #14
- creation of connectoids for transfer zones on roads now map only to one side of the road (edge segment), unless specific stop_positions are referenced on multiple nodes #13
- be able to specify smaller bounding box to only parse parts of an OSM file #19
- mode access by highway type (road type) configuration for specific countries/applications now parsable from file #4
- default speed limits globally and per country now parsed from resource files #1
- added support for parsing OSM streams rather than files #24
- updated artifact id to conform with how this generally is setup, i.e.
- #25 - update packages to conform to new domain org.goplanit.* #27
- permissibe ways should not obtain all available modes as allowed, but only the modes supported by the way type (and layer). This has been fixed #26
PLANitParentPom
- updated artifact id to conform with how this generally is setup, i.e.
- #2 - update project references to conform to new domain org.goplanit.* #3
PLANitPy2J
- Rename PLANit() to Planit() to keep things simple #6
- Split PLANit() from project, instead make it a property. Now instantiating PLANit() creates a project and reads network etc. This should not be the case since we are adding more functionality to PLANit which might not result in a project, i.e. converters #5
- Added support for creating converters so that we can convert networks etc in python from XtoY #4
- OutputProperty LinkCost renamed to LinkSegmentCost (planit/#9)
- OutputProperty LinkType not correctly defined, should be segment based (planit/#8)
- added norm based gap function (planit/#65)
- added support for inflow/outflow properties alongside the already existing flow property (planit/#66)
- initialCosts are not properly implemented. They require more flexibility (period agnostic/specific parsing, registration on assignment separate and again timeperiod specific or agnostic and unrelated to parsing) (planit/#68)
- added support for overriding units in output type configuration #10
- added support for user based setting of the used gapfunction #9
- update packages to conform to new domain org.goplanit.* #11
PLANitTNTP
- parser is not compliant with reader/writer/converter paradigm. This has been fixed #4
- updated artifact id to conform with how this generally is setup, i.e.
- #5 - updated packages to conform to new domain org.goplanit.* #6
PLANitUtils
- support stops, platforms and other PT related infrastructure in PLANit memory model via service network and transfer zone interfaces (PLANitOSM/#8)
- added clone utility so we can deep copy objects of any type using serialisation mechanism #4
- items that are (external)idable now have: long id, String xmlId, (String externalId) #3
- update artifact id to conform with how this generally is setup, i.e.
- #6 - units reimplemented to support combined units #8
- update packages to conform to new domain org.goplanit.* #9
PLANitXMLGenerator
- length of connectoids is now a double instead of a float #9
- crs of zoning is now placed on root element, not on zones element, since we now have intermodal element as well #10
- unknown and none added to options for transferzonetype, with default none if not provided #11
- update default mode to car by updating xsd so this can be persisted as well (planitio/#8)
- add support for transferzonegroups (planitio/#16)
- add support for intermodal component of zoning (planitio/#15)
- document transfer zone groups in expanded examples + documentation + xsd on website based on newly added functionality that is now active (planitio/#17)
- allow transferzones to have not only polygon geometries but also linestring alternatively #8
- added id attributes to main components (zoning, network, demands etc.) #17
- added support for service networks built on top of a physical network #18
- linkSegmentTypes should not define speed limits per mode within the access element but via an accessgroup. This has been changed #20
- added support for inflow/outflow properties alongside the already existing flow property #66
- update packages to conform to new domain org.goplanit.* #21
- added support for routed services that route on the service network #19
0.2.0
PLANitAll
- moved parent pom to PLANitParentPom
PLANit
enhancements
- rename everything related to routes to path in the memory model for consistency reasons (planit/#29)
- rename RotueIdType to PathIdType (planitpy2j/#1)
- results of shortest path calculations now provided in separate class ShortestPathResults (planit/#30)
- A* shortest path algorithm implementation now available (planit/#27)
- support for a overarching Graph interface/implementation as a basic building block for networks (planit/#31)
- move eLTM code from separate repository to core as it is an assignment method we want to provide out-of-the-box (planit/#32)
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- edge segments,edges, and vertices of the physical network should be connected while creating them (not when creating the final transport network) (planit/#35)
- flows per mode map and modeData in traditionalstatictrafficassignment seem to overlap. Refactored (planit/#15)
- refactored the configuration of all traffic assignment components using configurators (planit/#4), only network, demands, and zoning are treated differently still. This avoids user access to internals of algorithm classes.
- traffic assignment builder delays building the traffic assignment until build is triggered (planit/#17)
- costs using interactor no longer use convoluted event mechanism, this is simplified (planit/#36)
- Add support for predefined modes and physical and usability features (planitxmlgenerator #2)
- Refactor outputmanager and outputconfiguration especially on setting it up, this was not done correctly (planit/#12)
- add generic support for parsing/persisting networks and using PLANit as a converter between formats (planit/#37)
- add maximum speed to mode so we have an upperbound regardless of any link(segment(types)) (planit/#39)
- create a number of predefined default modes + add basic features to these modes (planit/#38)
- add support for creation and transformation of coordinate reference systems on networks and its geometry (planit/#41)
- move geometry from link to edge to be consistent with vertex and make it available at a lower level (planitutils/#2)
- internal id is long, xml id is string, and external id is also string now, with their own base implementation class (planitxmlgenerator/#6)
- change default properties of output configuration to use XML_ID rather than EXTERNAL_ID (planit/#42)
- support intermodal trips by creating an additional layer for networks where we allow for separate infrastructure networks and interactions between these networks (planit/#43)
- add support for custom PLANit modes in network (planit/#1)
bug fixes
- max speed (without mode) on link segment was never placed in memory model, this is fixed (planit/#34)
- setting of mode specific max speed on link segment type (after initial creation) did not function properly (planit/#46). (Impacts MetroScan and TNTP input builders only)
PLANitIntegrationTest
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- add tests for OSM2planit and OSM2Matsim network conversions
PLANitIO
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- add support for parsing/persisting predefined modes
- add support for parsing default allowed link segment type modes based on their track type (road/rail) (planitio/#9)
- separated reading of network from inputbuilder into networkreader class such that we can separately parse networks consistent with the converter classes (planitio/#10)
- allow an option to include XML validation in the Java if the user wishes (planitio/#4)
- allow External Ids (and xml ids) to be of String type (planitio/#1)
- centroid element must become optional, since it is not strictly needed (planitio/#2)
- support multi-layer networks in parser
PLANitJ2Py
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- changes to be compatible, i.e., compilable, with PLANit changes for version 0.2.0
PLANitMATSIM
- first implementation of matsim network writer based on planit network memory model (single network layer support only)
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- verify if external id’s are unique when used as id mapper when writing networks (planitmatsim/#2)
PLANitOSM
- first implementation to parse OSM network from xml/pbf files (no public transport routes/services/stops)
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- be able to process access restrictions and additional mode specific tags on ways that highlight mode access (planitosm/#6)
PLANitParentPom
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- Extract parent pom from PLANitAll and move it to its own repository (planitall/#3)
PLANitPy2J
- rename RouteIdType to PathIdType (PlanitPy2J/#1)
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- changes to be compatible, i.e., compilable, with PLANit changes for version 0.2.0
PLANitTNTP
enhancements
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- changes to be compatible, i.e., compilable, with PLANit changes for version 0.2.0
** bug fixes**
- jam density on link segment not properly set (max speed is used), this is fixed (PlanitTNTP/#1)
- setting of mode specific maximum speed was not properly mutliplied with multiplier on link segment types (planittntp/#2)
PLANitUtils
- rename everything related to routes to path in the memory model for consistency reasons (PlanitUtils/#1)
- support for a over arching Graph interface/implementation as a basic building block for networks (Planit/#31)
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- add support for predefined modes and physical and usability features (planitxmlgenerator/#2)
- add maximum speed to mode so we have an upperbound regardless of any link(segment(types)) (planit/#39)
- move geometry from link to edge to be consistent with vertex and make it available at a lower level (planitutils/#2)
- internal id is long, xml id is string, and external id is also string now, with their own base implementation class (planitxmlgenerator/#6)
PLANitXMLGenerator
** enhancements**
- add LICENSE.TXT to each repository so it is clearly licensed (planit/#33)
- move geometry from link segment to link (planitxmlgenerator/#1)
- Add support for predefined modes and physical and usability features to be persisted in the xml/xsd/xjb (planitxmlgenerator #2)
- update default mode to car + update xsd so this can be persisted as well (planitxmlgenerator/#8)
- add externalid element of type string as optional to all elements with an id (planitxxmlgenerator/#4)
- make all xsd schemas to be publiclly available (planitxmlgenerator/#1)
- id element must be string rather than number so that in the memory model we can add xmlId (planitxmlgenerator/#6)
- centroid element must become optional, since it is not strictly needed (planitio/#2)
- Document the currently implemented intermodal extension to the Zoning XML/XSD (planitxmlgenerator/#7)
** bugs**
- change all link segment properties to double as memory model only utilises doubles (planitxmlgenerator/#3)
0.1.0
PLANitAll
- created build scripts
PLANit
- Moved to new repository (www.github.com/trafficplanit/PLANit
- Create website (#21) - https://trafficplanit.github.io/PLANitManual
- Add third party licenses to setup process and releases, as well as website (#25)
- Ids generated for PLANit objects can now be grouped in a generic way by using IdTokens (#24)
- Tampere node model available as stand-alone functionality (#1)
PLANitIO
- Moved to new repository (www.github.com/trafficplanit/PLANitIO
- Split JAXB code generation off in its own repository (#7) - new repository is PLANitXMLGenerator
- separated out integration tests in separate files
PLANitJ2Py
- Moved to new repository (www.github.com/trafficplanit/PLANitJ2Py
PLANitLTM
- Moved to new repository (www.github.com/trafficplanit/PLANitLTM
PLANitPy2J
- Move repository to new location (www.github.com/trafficplanit/PLANitPy2J)
- Create Python library installer (#3)
PLANitTNTP
- Move repository to new location (www.github.com/trafficplanit/PLANitTNTP)
PLANitUtils
- Move repository to new location (www.github.com/trafficplanit/PLANitUtils)
- Added functionality for group and token based id generation (#24)
- Added functionality for stack walking
- Added functionality for logging prefixes for various PLANit components
PLANitXMLGenerator
- Created repository by splitting it off from PLANitIO (www.github.com/trafficplanit/PLANitXMLGenerator)
0.0.4
PLANit
- Logger created for each class as private static member (#63)
- Logger configuration revised (#59)
- External Ids refactored and treated differently when parsing (#54)
- Time periods and user classes now registered on a traffic assignment component (#61)
- Iterator implementation on memory outputformatter refactored (#8)
- Added output property PathId which should be added by default (#66)
- Simplified collection of the position of output key and value properties on memoryoutputformatter (#77)
- Check if needed and if so update all project readme.MDs based on new features available (#47)
- Removed toList() methodson inner classes of main inputs. Made them iterable instead (#83)
- Created Maximum Density input property and Density output property (#80)
- Created documentation for integration tests (#69)
- Python can call time period, mode and link segment type by external Id (#81)
- Added defaults for traditional static assignment components upon creation of the assignment (#79)
MetroScan
- Fixed Logging (#10)
PLANitIO
- PLANitIO now reads the value of
from and and uses the smaller if they are both present and different (#12) - Creation of bulky JAR file now done in PLANitALL project (#25)
- Refactor org.planit.planitio to org.planit.io (#4)
- Fixed bugs in Logging (#5)
- Generated JAR file contains all dependencies in full including PLANit and PLANitUtils (#6)
- PLANitIO now reads
from element (#12) - When link segment has no link segment type specified, added a check if this is allowed (#14)
- Fixed inconsistency in auto-generated file names for csv and xml (use of underscores and spaces) (#19)
- Changed content of
path in xml meta-data output to relative path to XML (#22) - Demand configuration defaults are now verified and populated correctly (#16)
- XSD reference added for OD and path output types (#18)
- Added a description property to the outputconfiguration in Java and recorded in the metadata XML output file (#20)
- Location information on centroid no longer mandatory, default behaviour implemented (#17)
- Default link segment type now created (#11)
- Default mode now created (#10)
- Check that both link segments in a single link are in opposite directions (#13)
PLANitTNTP
Fixed Logging (PLANitTNTP JIRA Task #1)
PLANitPy2J
- Create tests that set/get every configurable option of every component on Python side (#1)
- Renamed project to PLANitJ2Py and rename PLANitPythonRunner to PLANitPy2J (#2)
- Support all user configurable java options in Python interface (#3)
- Technical documentation PLANitPy2J/PLANitJ2Py (#4)
- Python library installer added (#5)
- Output formatter can be activated before assignment is set (#6)
- Accessing any output type configuration activates the corresponding output type if it is not already active (#7)
- Deactivate output types added (#8)
- Initial costs no longer require assignment to be set (#12)
0.0.3
PLANit
- Refactor setting of OutputKeys and OutputProperties in BaseOutputFormatter (#29)
- Activate ODSkimOutputTypes before saving OD skim data (#34)
- Refactor OutputAdapter and OutputTypeConfiguration (#35)
- Create OD Path output type adapter and output type configuration (#37)
- Link costs were an iteration behind the flow values (#38)
- Computation of costs is inefficient -> store costs used in iteration i as costs of i-1 (#40)
- Create Path object to store OD path of LinkSegment objects (#41)
- Allow options for Path outputs (#42)
- Create ODPathMatrix object (#43)
- TraditionalStaticAssignmentPathOutputTypeAdapter: Construction of Strings from paths in the wrong place (#45)
- Common functionality in collecting outputPropertyValues from outputtypeadapters should be common (#46)
- Maximum speed on LinkSegment should be stored by Mode object (#48)
- When activating an outputtype it should return the created outputtypeconfiguration (#49)
- When creating a new traffic assignment, we should only gain access to the builder and not the assignment object itself (#50)
- Opening and closing of outputformatters is a general task and not one for TraditionalStaticAssignment (#51)
- SpeedConnectoidTravelTimeCost default should not be infinite speed (#52) (now use FixedConnectoidTravelTimeCost instead)
- Iterator functionality required for MemoryOutputFormatter ( #55)
- BPR parameters parsed in TNTP should not be stored on network in core (#62)
MetroScan
- Bug Fix: Demands JSON file now correctly read in by MetroScan (#7)
- Bug Fix in reading UserClass in MetroScan (#8)
- Update parser based on new format provided by MetroScanTeam (#9)
PLANitIO
- Restructure resources directory to create easier to understand hierarchy (#1)
0.0.2
PLANit
- Added OD OutputType to capture and record Skim matrices
- Added writing of Skim matrices to output formatters
- Common approach to adding and removing output properties from output formatters
- Some code refactored, particularly in BaseOutputFormatter and FileOutputFormatter to reuse common code for managing output between different output formatters
- Added new OutputProperty values in enum to use external Ids
- Moved setting of OutputKeys to loop through into OutputTypeConfiguration
- Moved common logic for writing output into BaseOutputFormatter
MetroScan
- Bug Fix: There was an error in the setting of link speed and capacity properties. Only one LinkSegmentType object was being defined, and assigned to all links. Now each LinkSegment is given its own LinkSegmentType, which takes values from the network input JSON file.
- Bug Fix: The default values for alpha and beta in the BPR function were wrong. These have now been set to the correct values (alpha=0.87, beta=4.0).
- Added OUTPUTTIMEUNIT to argument list to allow user to specify whether output link costs should be presented in hours, minutes or seconds.
- Created demandOneMode.json input file, which only uses Mode 1. This generates the output file results.csv, which is also included as an example output.
- Added OD OutputType to capture and record Skim matrices
- Added writing of Skim matrices to output formatters
- Common approach to adding and removing output properties from output formatters
- Some code refactored, particularly in BaseOutputFormatter and FileOutputFormatter to reuse common code for managing output between different output formatters
PLANitIO
- Renamed PLANitXML to PLANitIO
- Refactored package names
- Added OD OutputType to capture and record Skim matrices
- Added writing of Skim matrices to output formatters
- Common approach to adding and removing output properties from output formatters
- Some code refactored, particularly in BaseOutputFormatter and FileOutputFormatter to reuse common code for managing output between different output formatters
- Updated standard results files in unit tests to match updated output property names
BasicCsv
- Added OD OutputType to capture and record Skim matrices
- Added writing of Skim matrices to output formatters
- Common approach to adding and removing output properties from output formatters
- Some code refactored, particularly in BaseOutputFormatter and FileOutputFormatter to reuse common code for managing output between different output formatters
0.0.1
First Release for all projects
Last modified January 1, 0001