.create_reader(+)

ZoningConverter reader factory method
Description

The factory method that allows you to create (manufacture) zoning reader instances of a chosen type. Currently, the following options are supported:

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