.create_reader(+)
Description
The factory method that allows you to create (manufacture) zoning reader instances of a chosen type. Currently, the following options are supported:
ZoningReaderType:TNTP
generates aTntpZoningReader
instance to parse zoning (origin-destination zones) in TNTP formatZoningReaderType:PLANIT
generates aPlanitZoningReader
instance to parse zoning (od and transfer zones) in the native PLANit format
Each network reader can be configured further via its settings, where each type of network reader exposes different settings depending on its type
Zoning readers require a network reader as a prerequisite as network and zoning are tightly coupled. This network reader is expected to be made available upon construction of the zoning reader.
Signature
.create_reader(zoning_reader_type: ZoningReaderType, reference_reader: NetworkReaderWrapper)
with
Parameter | Type | Unit | Compulsory | Description |
---|---|---|---|---|
zoning_reader_type |
ZoningReaderType.<enum> |
None |
YES | Type of network reader to create |
reference_reader |
NetworkReader |
None |
YES | The reference network reader to use |
Return type
ZoningReader
implementation
Example 1
from planit import *
zoning_converter = planit.converter_factory.create(ConverterType.ZONING)
####### NETWORK PREP
#
# TNTP net reader
tntp_net_reader: TntpNetworkReaderWrapper =
planit.converter_factory.create(ConverterType.NETWORK).create_reader(NetworkReaderType.TNTP)
network_settings = tntp_net_reader.settings
network_settings.set_network_file(NETWORK_FILE_PATH)
network_settings.set_node_coordinate_file(NODE_COORD_FILE_PATH)
network_settings.set_network_file_columns(create_tntp_network_file_cols())
network_settings.set_speed_units(SpeedUnits.MILES_H)
network_settings.set_length_units(LengthUnits.MILES)
network_settings.set_capacity_period(1, TimeUnits.HOURS)
network_settings.set_free_flow_travel_time_units(TimeUnits.MINUTES)
network_settings.set_default_maximum_speed(DEFAULT_MAXIMUM_SPEED_KM_H)
network_settings.set_coordinate_reference_system("EPSG:26971")
# TNTP zoning reader - (pass in net_reader)
tntp_reader: TntpNetworkReaderWrapper = zoning_converter.create_reader(ZoningReaderType.TNTP, tntp_net_reader)
zoning_settings = tntp_reader.settings
zoning_settings.set_network_file_location(NETWORK_FILE_PATH)
# PLANit writer
planit_writer = zoning_converter.create_writer(ZoningWriterType.PLANIT)
planit_writer.settings.set_output_directory(OUTPUT_PATH)
planit_writer.settings.set_country(AUSTRALIA)
# perform conversion
zoning_converter.convert(tntp_reader, planit_writer)
See also
ZoningReaderType.<enum>
for the various network reader types available
TntpZoningReader
for more information on the TNTP zoning reader
PlanitZoningReader
for more information on the PLANit zoning reader
Source code
Class ZoningConverter
in converter.py