.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:TNTPgenerates aTntpZoningReaderinstance to parse zoning (origin-destination zones) in TNTP formatZoningReaderType:PLANITgenerates aPlanitZoningReaderinstance 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