Untitled diff

Created Diff never expires
17 removals
178 lines
17 additions
178 lines
#=============================================================================
#=============================================================================
# PARAMETERS FOR ALL osm2city MODULES
# PARAMETERS FOR ALL osm2city MODULES
#=============================================================================
#=============================================================================
# -- Scenery folder, typically a geographic name or the ICAO code of the airport
# -- Scenery folder, typically a geographic name or the ICAO code of the airport
PREFIX = "LSZR"
PREFIX = LFRS
# -- Boundary of the scenery in degrees (use "." not ","). The example below is from LSZR.
# -- Boundary of the scenery in degrees (use "." not ","). The example below is from LSZR.
BOUNDARY_WEST = 9.54
BOUNDARY_WEST = -1.45362
BOUNDARY_SOUTH = 47.48
BOUNDARY_SOUTH = 47.16837
BOUNDARY_EAST = 9.58
BOUNDARY_EAST = -1.65362
BOUNDARY_NORTH = 47.50
BOUNDARY_NORTH = 47.26837
# -- Full path to the scenery folder without trailing slash. There must be
# -- Full path to the scenery folder without trailing slash. There must be
# an OBJECTS/ folder below PATH_TO_SCENERY
# an OBJECTS/ folder below PATH_TO_SCENERY
PATH_TO_SCENERY = "/home/user/fgfs/scenery"
PATH_TO_SCENERY = /mnt/c/fgdata/Scenery
OSM_FILE = "buildings.osm" # -- file name of the file with OSM data. Must reside in $PREFIX
OSM_FILE = buildings.osm # -- file name of the file with OSM data. Must reside in $PREFIX
USE_PKL = False # -- instead of parsing the OSM file, read a previously created cache file $PREFIX/buildings.pkl
USE_PKL = False # -- instead of parsing the OSM file, read a previously created cache file $PREFIX/buildings.pkl
IGNORE_PKL_OVERWRITE = True # -- Ignore overwriting of Cache File
IGNORE_PKL_OVERWRITE = True # -- Ignore overwriting of Cache File
# -- write .stg, .ac, .xml to this path. If empty, data is automatically written to correct location
# -- write .stg, .ac, .xml to this path. If empty, data is automatically written to correct location
# in $PATH_TO_SCENERY
# in $PATH_TO_SCENERY
PATH_TO_OUTPUT = ""
PATH_TO_OUTPUT =
NO_ELEV = False # -- skip elevation probing
NO_ELEV = False # -- skip elevation probing
ELEV_MODE = "FgelevCaching" # -- elev probing mode. Possible values are FgelevCaching (recommended), Manual, or Telnet
ELEV_MODE = FgelevCaching # -- elev probing mode. Possible values are FgelevCaching (recommended), Manual, or Telnet
ELEV_RASTER_X = 10 # -- Distance between raster points for the derived
ELEV_RASTER_X = 10 # -- Distance between raster points for the derived
ELEV_RASTER_Y = 10 # elevation map (x is horizontal, y is vertical)
ELEV_RASTER_Y = 10 # elevation map (x is horizontal, y is vertical)
FG_ELEV = '"D:/Program Files/FlightGear/bin/Win64/fgelev.exe"'
FG_ELEV = 'fgelev'
#=============================================================================
#=============================================================================
# PARAMETERS RELATED TO BUILDINGS IN osm2city
# PARAMETERS RELATED TO BUILDINGS IN osm2city
#=============================================================================
#=============================================================================
# -- check for overlap with static models. The scenery folder must contain an "Objects" folder
# -- check for overlap with static models. The scenery folder must contain an "Objects" folder
OVERLAP_CHECK = True
OVERLAP_CHECK = True
OVERLAP_RADIUS = 5
OVERLAP_RADIUS = 5
BUILDING_REMOVE_WITH_PARTS = False
BUILDING_REMOVE_WITH_PARTS = False
TILE_SIZE = 2000 # -- tile size in meters for clustering of buildings
TILE_SIZE = 2000 # -- tile size in meters for clustering of buildings
MAX_OBJECTS = 50000 # -- maximum number of buildings to read from OSM data
MAX_OBJECTS = 170699 # -- maximum number of buildings to read from OSM data
CONCURRENCY = 1 # -- number of parallel OSM parsing threads. Unused ATM.
CONCURRENCY = 1 # -- number of parallel OSM parsing threads. Unused ATM.
# -- skip buildings based on their OSM name tag or OSM ID, in case there's already a static model for these, and the overlap check fails.
# -- skip buildings based on their OSM name tag or OSM ID, in case there's already a static model for these, and the overlap check fails.
SKIP_LIST = ["Dresden Hauptbahnhof", "Semperoper", "Zwinger", "Hofkirche",
SKIP_LIST = ["Dresden Hauptbahnhof", "Semperoper", "Zwinger", "Hofkirche",
"Frauenkirche", "Coselpalais", "Palais im Großen Garten",
"Frauenkirche", "Coselpalais", "Palais im Großen Garten",
"Residenzschloss Dresden", "Fernsehturm", "Fernsehturm Dresden", "87807683"]
"Residenzschloss Dresden", "Fernsehturm", "Fernsehturm Dresden", "87807683"]
# -- Parameters which influence the number of buildings from OSM taken to output
# -- Parameters which influence the number of buildings from OSM taken to output
BUILDING_MIN_HEIGHT = 3.4 # -- minimum height of a building to be included in output (does not include roof)
building_min_height = 0 # -- minimum height of a building to be included in output (does not include roof)
BUILDING_MIN_AREA = 50.0 # -- minimum area for a building to be included in output
BUILDING_MIN_AREA = 0 # -- minimum area for a building to be included in output
BUILDING_REDUCE_THRESHOLD = 200.0 # -- threshold area of a building below which a rate of buildings gets reduced from output
BUILDING_REDUCE_THRESHOLD = 200.0 # -- threshold area of a building below which a rate of buildings gets reduced from output
BUILDING_REDUCE_RATE = 0.5 # -- rate (between 0 and 1) of buildings below a threshold which get reduced randomly in output
BUILDING_REDUCE_RATE = 0.5 # -- rate (between 0 and 1) of buildings below a threshold which get reduced randomly in output
BUILDING_REDUCE_CHECK_TOUCH = False # -- before removing a building due to area, check whether it is touching another building and therefore should be kept
BUILDING_REDUCE_CHECK_TOUCH = False # -- before removing a building due to area, check whether it is touching another building and therefore should be kept
BUILDING_SIMPLIFY_TOLERANCE = 1.0 # -- all points in the simplified building will be within the tolerance distance of the original geometry.
BUILDING_SIMPLIFY_TOLERANCE = 1.0 # -- all points in the simplified building will be within the tolerance distance of the original geometry.
BUILDING_NEVER_SKIP_LEVELS = 6 # -- buildings that tall will never be skipped
BUILDING_NEVER_SKIP_LEVELS = 6 # -- buildings that tall will never be skipped
BUILDING_COMPLEX_ROOFS = 1 # -- generate complex roofs on buildings?
BUILDING_COMPLEX_ROOFS = 1 # -- generate complex roofs on buildings?
BUILDING_COMPLEX_ROOFS_MAX_LEVELS = 5 # -- don't put complex roofs on buildings taller than this
BUILDING_COMPLEX_ROOFS_MAX_LEVELS = 5 # -- don't put complex roofs on buildings taller than this
BUILDING_COMPLEX_ROOFS_MAX_AREA = 2000 # -- don't put complex roofs on buildings larger than this
BUILDING_COMPLEX_ROOFS_MAX_AREA = 2000 # -- don't put complex roofs on buildings larger than this
# -- Parameters which influence the height of buildings if no info from OSM is available.
# -- Parameters which influence the height of buildings if no info from OSM is available.
# It uses a triangular distribution (see http://en.wikipedia.org/wiki/Triangular_distribution)
# It uses a triangular distribution (see http://en.wikipedia.org/wiki/Triangular_distribution)
BUILDING_CITY_LEVELS_LOW = 2.0
BUILDING_CITY_LEVELS_LOW = 2.0
BUILDING_CITY_LEVELS_MODE = 3.5
BUILDING_CITY_LEVELS_MODE = 3.5
BUILDING_CITY_LEVELS_HEIGH = 5.0
BUILDING_CITY_LEVELS_HEIGH = 5.0
BUILDING_CITY_LEVEL_HEIGHT_LOW = 3.1
BUILDING_CITY_LEVEL_HEIGHT_LOW = 3.1
BUILDING_CITY_LEVEL_HEIGHT_MODE = 3.3
BUILDING_CITY_LEVEL_HEIGHT_MODE = 3.3
BUILDING_CITY_LEVEL_HEIGHT_HEIGH = 3.6
BUILDING_CITY_LEVEL_HEIGHT_HEIGH = 3.6
# FIXME: same parameters for place = town, village, suburb
# FIXME: same parameters for place = town, village, suburb
# -- The more buildings end up in LOD rough or bare, the more work for your GPU.
# -- The more buildings end up in LOD rough or bare, the more work for your GPU.
# Increasing any of the following parameters will decrease GPU load.
# Increasing any of the following parameters will decrease GPU load.
LOD_ALWAYS_DETAIL_BELOW_AREA = 150 # -- below this area, buildings will always be LOD detail
LOD_ALWAYS_DETAIL_BELOW_AREA = 150 # -- below this area, buildings will always be LOD detail
LOD_ALWAYS_ROUGH_ABOVE_AREA = 500 # -- above this area, buildings will always be LOD rough
LOD_ALWAYS_ROUGH_ABOVE_AREA = 500 # -- above this area, buildings will always be LOD rough
LOD_ALWAYS_ROUGH_ABOVE_LEVELS = 6 # -- above this number of levels, buildings will always be LOD rough
LOD_ALWAYS_ROUGH_ABOVE_LEVELS = 6 # -- above this number of levels, buildings will always be LOD rough
LOD_ALWAYS_BARE_ABOVE_LEVELS = 10 # -- really tall buildings will be LOD bare
LOD_ALWAYS_BARE_ABOVE_LEVELS = 10 # -- really tall buildings will be LOD bare
LOD_ALWAYS_DETAIL_BELOW_LEVELS = 3 # -- below this number of levels, buildings will always be LOD detail
LOD_ALWAYS_DETAIL_BELOW_LEVELS = 3 # -- below this number of levels, buildings will always be LOD detail
LOD_PERCENTAGE_DETAIL = 0.5 # -- of the remaining buildings, this percentage will be LOD detail,
LOD_PERCENTAGE_DETAIL = 0.5 # -- of the remaining buildings, this percentage will be LOD detail,
# the rest will be LOD rough.
# the rest will be LOD rough.
LIGHTMAP_ENABLE = 1 # -- include lightmap in xml
LIGHTMAP_ENABLE = 1 # -- include lightmap in xml
OBSTRUCTION_LIGHT_MIN_LEVELS = 15 # -- put obstruction lights on buildings with >= given levels
OBSTRUCTION_LIGHT_MIN_LEVELS = 15 # -- put obstruction lights on buildings with >= given levels
EXPERIMENTAL_USE_SKEL = 0 # -- generate complex roofs with pySkeleton?
EXPERIMENTAL_USE_SKEL = 0 # -- generate complex roofs with pySkeleton?
SKEL_MAX_NODES = 10 # -- max number of nodes for which we generate complex roofs
SKEL_MAX_NODES = 10 # -- max number of nodes for which we generate complex roofs
SKEL_MAX_HEIGHT_RATIO = 0.7 # --
SKEL_MAX_HEIGHT_RATIO = 0.7 # --
EXPERIMENTAL_INNER = 0
EXPERIMENTAL_INNER = 0
CLUSTER_MIN_OBJECTS = 5 # -- discard cluster if to little objects
CLUSTER_MIN_OBJECTS = 5 # -- discard cluster if to little objects
#=============================================================================
#=============================================================================
# EXPERIMENTAL PARAMETERS, work in progress, YMMV
# EXPERIMENTAL PARAMETERS, work in progress, YMMV
#=============================================================================
#=============================================================================
#=============================================================================
#=============================================================================
# PARAMETERS RELATED TO PYLONS, POWERLINES, AERIALWAYS IN osm2pylons.py
# PARAMETERS RELATED TO PYLONS, POWERLINES, AERIALWAYS IN osm2pylons.py
#=============================================================================
#=============================================================================
C2P_PROCESS_POWERLINES = True
C2P_PROCESS_POWERLINES = True
C2P_PROCESS_AERIALWAYS = True
C2P_PROCESS_AERIALWAYS = True
C2P_PROCESS_OVERHEAD_LINES = True
C2P_PROCESS_OVERHEAD_LINES = True
C2P_PROCESS_STREETLAMPS = True
C2P_PROCESS_STREETLAMPS = True
# Each powerline and aerialway has segments delimited by pylons. The longer the value the better clustering and
# Each powerline and aerialway has segments delimited by pylons. The longer the value the better clustering and
# the better the performance. However due to rounding errors the longer the length per cluster the larger the
# the better the performance. However due to rounding errors the longer the length per cluster the larger the
# error.
# error.
C2P_CLUSTER_POWER_LINE_MAX_LENGTH = 300
C2P_CLUSTER_POWER_LINE_MAX_LENGTH = 300
C2P_CLUSTER_AERIALWAY_MAX_LENGTH = 300
C2P_CLUSTER_AERIALWAY_MAX_LENGTH = 300
C2P_CLUSTER_OVERHEAD_LINE_MAX_LENGTH = 130
C2P_CLUSTER_OVERHEAD_LINE_MAX_LENGTH = 130
C2P_CABLES_NO_SHADOW = True
C2P_CABLES_NO_SHADOW = True
# The radius for the cable. The cable will be a triangle with side length 2*radius.
# The radius for the cable. The cable will be a triangle with side length 2*radius.
# In order to be better visible the radius might be chosen larger than in real life
# In order to be better visible the radius might be chosen larger than in real life
C2P_RADIUS_POWER_LINE = 0.1
C2P_RADIUS_POWER_LINE = 0.1
C2P_RADIUS_POWER_MINOR_LINE = 0.05
C2P_RADIUS_POWER_MINOR_LINE = 0.05
C2P_RADIUS_AERIALWAY_CABLE_CAR = 0.05
C2P_RADIUS_AERIALWAY_CABLE_CAR = 0.05
C2P_RADIUS_AERIALWAY_CHAIR_LIFT = 0.05
C2P_RADIUS_AERIALWAY_CHAIR_LIFT = 0.05
C2P_RADIUS_AERIALWAY_DRAG_LIFT = 0.03
C2P_RADIUS_AERIALWAY_DRAG_LIFT = 0.03
C2P_RADIUS_AERIALWAY_GONDOLA = 0.05
C2P_RADIUS_AERIALWAY_GONDOLA = 0.05
C2P_RADIUS_AERIALWAY_GOODS = 0.03
C2P_RADIUS_AERIALWAY_GOODS = 0.03
C2P_RADIUS_TOP_LINE = 0.02
C2P_RADIUS_TOP_LINE = 0.02
C2P_RADIUS_OVERHEAD_LINE = 0.02
C2P_RADIUS_OVERHEAD_LINE = 0.02
# The number of extra points between 2 pylons to simulate sagging of the cable.
# The number of extra points between 2 pylons to simulate sagging of the cable.
# If 0 is chosen or if CATENARY_A is 0 then no sagging is calculated, which is better for performances (less realistic)
# If 0 is chosen or if CATENARY_A is 0 then no sagging is calculated, which is better for performances (less realistic)
# 3 is normally a good compromise - for cable cars or major power lines with very long distances a value of 5
# 3 is normally a good compromise - for cable cars or major power lines with very long distances a value of 5
# or higher might be suitable
# or higher might be suitable
C2P_EXTRA_VERTICES_POWER_LINE = 3
C2P_EXTRA_VERTICES_POWER_LINE = 3
C2P_EXTRA_VERTICES_POWER_MINOR_LINE = 3
C2P_EXTRA_VERTICES_POWER_MINOR_LINE = 3
C2P_EXTRA_VERTICES_AERIALWAY_CABLE_CAR = 5
C2P_EXTRA_VERTICES_AERIALWAY_CABLE_CAR = 5
C2P_EXTRA_VERTICES_AERIALWAY_CHAIR_LIFT = 3
C2P_EXTRA_VERTICES_AERIALWAY_CHAIR_LIFT = 3
C2P_EXTRA_VERTICES_AERIALWAY_DRAG_LIFT = 0
C2P_EXTRA_VERTICES_AERIALWAY_DRAG_LIFT = 0
C2P_EXTRA_VERTICES_AERIALWAY_GONDOLA = 3
C2P_EXTRA_VERTICES_AERIALWAY_GONDOLA = 3
C2P_EXTRA_VERTICES_AERIALWAY_GOODS = 5
C2P_EXTRA_VERTICES_AERIALWAY_GOODS = 5
C2P_EXTRA_VERTICES_OVERHEAD_LINE = 2
C2P_EXTRA_VERTICES_OVERHEAD_LINE = 2
# The value for catenary_a can be experimentally determined by using osm2pylon.test_catenary
# The value for catenary_a can be experimentally determined by using osm2pylon.test_catenary
C2P_CATENARY_A_POWER_LINE = 1500
C2P_CATENARY_A_POWER_LINE = 1500
C2P_CATENARY_A_POWER_MINOR_LINE = 1200
C2P_CATENARY_A_POWER_MINOR_LINE = 1200
C2P_CATENARY_A_AERIALWAY_CABLE_CAR = 1500
C2P_CATENARY_A_AERIALWAY_CABLE_CAR = 1500
C2P_CATENARY_A_AERIALWAY_CHAIR_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_CHAIR_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_DRAG_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_DRAG_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_GONDOLA = 1500
C2P_CATENARY_A_AERIALWAY_GONDOLA = 1500
C2P_CATENARY_A_AERIALWAY_GOODS = 1500
C2P_CATENARY_A_AERIALWAY_GOODS = 1500
C2P_CATENARY_A_OVERHEAD_LINE = 600
C2P_CATENARY_A_OVERHEAD_LINE = 600
C2P_CATENARY_MIN_DISTANCE = 30
C2P_CATENARY_MIN_DISTANCE = 30
C2P_POWER_LINE_ALLOW_100M = False
C2P_POWER_LINE_ALLOW_100M = False
C2P_STREETLAMPS_MAX_DISTANCE_LANDUSE = 100
C2P_STREETLAMPS_MAX_DISTANCE_LANDUSE = 100
C2P_STREETLAMPS_RESIDENTIAL_DISTANCE = 40
C2P_STREETLAMPS_RESIDENTIAL_DISTANCE = 40
C2P_STREETLAMPS_OTHER_DISTANCE = 70
C2P_STREETLAMPS_OTHER_DISTANCE = 70
C2P_STREETLAMPS_MIN_STREET_LENGTH = 20
C2P_STREETLAMPS_MIN_STREET_LENGTH = 20
#=============================================================================
#=============================================================================
# PARAMETERS RELATED TO landuse.py
# PARAMETERS RELATED TO landuse.py
#=============================================================================
#=============================================================================
LU_LANDUSE_GENERATE_LANDUSE = True
LU_LANDUSE_GENERATE_LANDUSE = True
LU_LANDUSE_BUILDING_BUFFER_DISTANCE = 25
LU_LANDUSE_BUILDING_BUFFER_DISTANCE = 25
LU_LANDUSE_BUILDING_BUFFER_DISTANCE_MAX = 50
LU_LANDUSE_BUILDING_BUFFER_DISTANCE_MAX = 50
LU_LANDUSE_MIN_AREA = 5000
LU_LANDUSE_MIN_AREA = 5000
#=============================================================================
#=============================================================================
# PARAMETERS RELATED TO roads.py
# PARAMETERS RELATED TO roads.py
#=============================================================================
#=============================================================================
TRAFFIC_SHADER_ENABLE = False
TRAFFIC_SHADER_ENABLE = False
MAX_SLOPE_MOTORWAY = 0.03 # max slope for motorways
MAX_SLOPE_MOTORWAY = 0.03 # max slope for motorways
MAX_SLOPE_ROAD = 0.08
MAX_SLOPE_ROAD = 0.08
MAX_TRANSVERSE_GRADIENT = 0.1 #
MAX_TRANSVERSE_GRADIENT = 0.1 #
BRIDGE_MIN_LENGTH = 20. # discard short bridges, draw road instead
BRIDGE_MIN_LENGTH = 20. # discard short bridges, draw road instead
DEBUG_PLOT = 0
DEBUG_PLOT = 0