Board index FlightGear Development Scenery

LOWI city buildings

Questions and discussion about enhancing and populating the FlightGear world.

Re: LOWI city buildings

Postby Philosopher » Tue Aug 27, 2013 7:21 pm

Philosopher
 
Posts: 1593
Joined: Sun Aug 12, 2012 7:29 pm

Re: LOWI city buildings

Postby radi » Tue Aug 27, 2013 9:54 pm

Thanks guys, I'll give it a try.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby adrian » Wed Aug 28, 2013 6:06 am

Yeah, that's my simgear. also clone git@gitorious.org:fg/kantooons-flightgear.git and switch to radio_next.
Please report back if you have issues with compiling or running this branch. The stable code is based on 2.10, but this branch is rebased onto July's next so is the most recent.

Hooray: there's still an issue left unsolved in my code: the tower view. I still need to disable that view when tower distance > view distance / 2 .
Otherwise, testers are welcome. The core developers are too busy to test this besides fixing bugs for the release, so I won't make further waves on the ML. I'm kind of busy with other stuff myself.
Radi, if you manage to get it to work, I'd be curious about differences in memory footprints with your buildings. My code is related to the random buildings and trees spawned when loading a tile, not with static objects. Still, you should see a decrease, even with random buildings disabled.
adrian
 
Posts: 362
Joined: Wed Sep 15, 2010 3:15 pm

Re: LOWI city buildings

Postby radi » Sun Oct 27, 2013 11:53 pm

Updated download. Number of buildings reduced, but now more of them have a sloped roof. Hope this makes the scene look slightly more Austrian. Also, some prototype procedural bridges included.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby radi » Thu Jan 02, 2014 12:14 pm

Updated download for FG Scenery 2.0 (no bridges, though). I've made the textures a separate download. See first post.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby radi » Sat May 31, 2014 7:52 am

Image

34k buidings, plus residential roads, merged into only a few objects.
Should improve frame rate (a lot). Requires more memory than the previous release, but you get more buildings :)
Some new textures. Uses texture atlas (tex/atlas_facades.png), you no longer need the separate texture download.
Known bugs:
    - some roofs/roads not properly textured
    - roads might float above ground
    - no bridges
    - night lighting broken

Also, I think this looks best if you replace the city textures with one of more uniform color. Check $FG_ROOT/Docs/README.materials on how to do that.

Download first post.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby f-ojac » Sun Jun 01, 2014 8:30 am

Very impressive!
f-ojac
 
Posts: 1304
Joined: Fri Mar 07, 2008 10:50 am
Version: GIT
OS: GNU/Linux

Re: LOWI city buildings

Postby surpii » Sun Jun 01, 2014 1:43 pm

wow, are all the buildings based on real life?
surpii
 
Posts: 245
Joined: Wed Apr 23, 2014 5:41 am

Re: LOWI city buildings

Postby radi » Sun Jun 01, 2014 1:49 pm

The building's footprints and roads come from openstreetmap.org, so, yes. If a building has height or number of levels tagged in OSM, it'll get the correct height in FG too. Otherwise we guess. Roof shapes are guessed, too. Textures however are generic.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby ot-666 » Sat Aug 02, 2014 7:26 pm

The frame rate improved a lot in the last version...
Awesome work :D

Callsign: ot-666
Working on LOWI and other stuff - Custom Scenery Overlay Repo: http://gitorious.org/fgfs-custom-scenery/custom-scenery-overlay/
VMX22 - Osprey... sometimes in 2014
ot-666
 
Posts: 746
Joined: Sun Nov 08, 2009 6:14 pm
Location: Germany, Konstanz
Callsign: ot-666
IRC name: ot666
Version: GIT
OS: win7 64bit

Re: LOWI city buildings

Postby dutchguy » Tue Aug 05, 2014 4:43 pm

Hello all,

Recently I've tried to populate a piece of land with OSM buildings, following radi's instructions at http://wiki.flightgear.org/Osm2city.py. Running tools.py went fine, and seemed to output realistic elevations. However when I run osm2city.py, the output says it skipped all buildings because there was no elevation available. Does anyone know what I'm doing wrong? I'd like to populate this area so that I can perhaps help with the piers. I live quite close to a harbour, so it'd be easy for me to get some pictures of a typical pier (typical at least to Holland).

My system is ubuntu 14.04 with fg git version from a couple of days ago. Below are the contents of some files that were mentioned in radi's instructions, plus the output from osm2city.py.

Elev.nas:
Code: Select all
var get_elevation = func {
#Set via setup.py
  setprop("/osm2city/tiles", 0);
  var in = "/home/govert/FG-install/data/Nasal/elev.in";
  var out = /home/govert/.fgfs/Export";

  print( "Checking if tile is loaded");
 
  var lat = getprop("/position/latitude-deg");
  var lon = getprop("/position/longitude-deg");
#  var info = geodinfo(lat, lon);
 
  print( "Position " ~ getprop("/position/latitude-deg") ~ " " ~ getprop("/position/longitude-deg") );
 
#  if (info != nil) {
#    print("the terrain under the aircraft is at elevation ", info[0], " m");
#    if (info[1] != nil)
#        print("and it is ", info[1].solid ? "solid ground" : "covered by water");
#  }
#  else {
#    print( "Info is nil! Tile not loaded." );
#  } 
 
  print( "Reading File " ~ in);

  var raw_str = io.readfile(in);
  var delimitter = "\r\n";
  var line = 0;
  print( "Splitting File " ~ in);
  if (-1 == find(delimitter, raw_str)) delimitter = "\n";
  var raw_list = split(delimitter, raw_str);
  raw_str = nil;
  var allLines = size(raw_list);
  print("Read " ~ allLines ~ " records");
  var file_out = io.open(out ~ "elev.out", "w");
  var header = subvec(raw_list, 0, 1);
  print("Writing " ~ allLines ~ " records");
  var record = 0;
  foreach(var l; raw_list) {
     line = line + 1;
     var l_list = split(" ", l);
     setprop("/osm2city/record", record);
     record = record + 1;
     if (size(l_list) == 4) {
        var terrain_elev = geo.elevation(l_list[1], l_list[0]);
        var elev_str = sprintf("%.3f", (terrain_elev));
#        print( l_list[0] ~" "~ l_list[1] ~" "~ l_list[2] ~" "~ l_list[3] ~" "~ elev_str);
        io.write(file_out, l_list[0] ~" "~ l_list[1] ~" "~ l_list[2] ~" "~ l_list[3] ~" "~ elev_str ~"\n");
     } else {
        io.write(file_out, l ~"\n");
     }
  }
#  io.write(file_out, "-- END -- ");
  io.close(file_out);
  print("Wrote " ~ allLines ~ " records");
 
  raw_list = nil;
  setprop("/osm2city/tiles", 1);
  print("Signalled Success");
}

var get_threaded = func {
 
  thread.newthread(get_elevation);
}

# Make accessible from Telnet
addcommand("get-elevation", get_threaded);


params.ini:
Code: Select all
# List of parameters for osm2city

# -- Scenery folder (typically a geographic name or the ICAO code of the airport
PREFIX = LOWI

# -- Boundary of the scenery in degrees (use "." not ","). The example below is from LSZR.
BOUNDARY_WEST = 3.83354
BOUNDARY_SOUTH = 51.71703
BOUNDARY_EAST = 3.93414
BOUNDARY_NORTH = 51.74638

# -- Distance between raster points for the derived elevation map (x is horizontal, y is vertical)
ELEV_RASTER_X = 10
ELEV_RASTER_Y = 10

# -- Full path to the scenery folder without trailing slash. There must be
#    an OBJECTS/ folder below PATH_TO_SCENERY
PATH_TO_SCENERY = /home/govert/.fgfs/TerraSync/

NO_ELEV = False             # -- skip elevation interpolation
ELEV_MODE = Fgelev          # uses manual process with copy elev.in and elev.out through Nasal. Otherwise experimental direct FG invocation
FG_ELEV = /home/govert/FG-install/bin/fgelev

# -- check for overlap with static models. The scenery folder must contain an "Objects" folder
OVERLAP_CHECK = False
OVERLAP_RADIUS = 5

TILE_SIZE = 1000            # -- tile size in meters for clustering of buildings

OSM_FILE =  buildings.osm   # -- file name of the file with OSM data. Must reside in $PREFIX
MAX_OBJECTS = 50000         # -- maximum number of buildings to read from OSM data
CONCURRENCY = 1             # -- number of parallel OSM parsing threads
USE_PKL = False             # -- instead of parsing the OSM file, read a previously created cache file $PREFIX/buildings.pkl

# -- skip reading named buildings from OSM (in case there's already a static model for these, and the overlap check fails)
SKIP_LIST = ["Dresden Hauptbahnhof", "Semperoper", "Zwinger", "Hofkirche",
  "Frauenkirche", "Coselpalais", "Palais im Großen Garten",
  "Residenzschloss Dresden", "Fernsehturm", "Fernsehturm Dresden"]

# -- 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_AREA = 50.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_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_SIMPLIFY_TOLERANCE = 1.0   # -- all points in the simplified building will be within the tolerance distance of the original geometry.

# -- 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)
BUILDING_CITY_LEVELS_LOW = 2.0
BUILDING_CITY_LEVELS_MODE = 3.5
BUILDING_CITY_LEVELS_HEIGH = 5.0
BUILDING_CITY_LEVEL_HEIGHT_LOW = 3.1
BUILDING_CITY_LEVEL_HEIGHT_MODE = 3.3
BUILDING_CITY_LEVEL_HEIGHT_HEIGH = 3.6
# FIXME: same parameters for place = town, village, suburb

# -- 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.
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_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_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,
                                    #    the rest will be LOD rough.
                                   
OBSTRUCTION_LIGHT_MIN_LEVELS = 15   # -- put obstruction lights on buildings with >= given levels
EXPERIMENTAL_USE_SKEL = 1         # -- use experimental skel based roofs for non square buildings


Output from osm2city.py (The part where it says that it skipped all buildings is just before the end):
Code: Select all
Reading parameters from file: LOWI/params.ini
--- Using the following parameters: ---
BOUNDARY_EAST = 3.93414
BOUNDARY_NORTH = 51.74638
BOUNDARY_SOUTH = 51.71703
BOUNDARY_WEST = 3.83354
BUILDING_CITY_LEVELS_HEIGH = 5.0
BUILDING_CITY_LEVELS_LOW = 2.0
BUILDING_CITY_LEVELS_MODE = 3.5
BUILDING_CITY_LEVEL_HEIGHT_HEIGH = 3.6
BUILDING_CITY_LEVEL_HEIGHT_LOW = 3.1
BUILDING_CITY_LEVEL_HEIGHT_MODE = 3.3
BUILDING_COMPLEX_ROOFS = 1
BUILDING_COMPLEX_ROOFS_MAX_AREA = 2000
BUILDING_COMPLEX_ROOFS_MAX_LEVELS = 5
BUILDING_MIN_AREA = 50.0
BUILDING_MIN_HEIGHT = 3.4
BUILDING_NEVER_SKIP_LEVELS = 6
BUILDING_REDUCE_CHECK_TOUCH = False
BUILDING_REDUCE_RATE = 0.5
BUILDING_REDUCE_THRESHOLD = 200.0
BUILDING_SIMPLIFY_TOLERANCE = 1.0
C2P_CABLES_NO_SHADOW = True
C2P_CATENARY_A_AERIALWAY_CABLE_CAR = 1500
C2P_CATENARY_A_AERIALWAY_CHAIR_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_DRAG_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_GONDOLA = 1500
C2P_CATENARY_A_AERIALWAY_GOODS = 1500
C2P_CATENARY_A_OVERHEAD_LINE = 600
C2P_CATENARY_A_POWER_LINE = 1500
C2P_CATENARY_A_POWER_MINOR_LINE = 1200
C2P_CATENARY_MIN_DISTANCE = 30
C2P_CLUSTER_AERIALWAY_MAX_LENGTH = 300
C2P_CLUSTER_OVERHEAD_LINE_MAX_LENGTH = 130
C2P_CLUSTER_POWER_LINE_MAX_LENGTH = 300
C2P_EXTRA_VERTICES_AERIALWAY_CABLE_CAR = 5
C2P_EXTRA_VERTICES_AERIALWAY_CHAIR_LIFT = 3
C2P_EXTRA_VERTICES_AERIALWAY_DRAG_LIFT = 0
C2P_EXTRA_VERTICES_AERIALWAY_GONDOLA = 3
C2P_EXTRA_VERTICES_AERIALWAY_GOODS = 5
C2P_EXTRA_VERTICES_OVERHEAD_LINE = 2
C2P_EXTRA_VERTICES_POWER_LINE = 3
C2P_EXTRA_VERTICES_POWER_MINOR_LINE = 3
C2P_POWER_LINE_ALLOW_100M = False
C2P_PROCESS_AERIALWAYS = True
C2P_PROCESS_OVERHEAD_LINES = True
C2P_PROCESS_POWERLINES = True
C2P_PROCESS_STREETLAMPS = True
C2P_RADIUS_AERIALWAY_CABLE_CAR = 0.05
C2P_RADIUS_AERIALWAY_CHAIR_LIFT = 0.05
C2P_RADIUS_AERIALWAY_DRAG_LIFT = 0.03
C2P_RADIUS_AERIALWAY_GONDOLA = 0.05
C2P_RADIUS_AERIALWAY_GOODS = 0.03
C2P_RADIUS_OVERHEAD_LINE = 0.02
C2P_RADIUS_POWER_LINE = 0.1
C2P_RADIUS_POWER_MINOR_LINE = 0.05
C2P_RADIUS_TOP_LINE = 0.02
CLUSTER_MIN_OBJECTS = 5
CONCURRENCY = 1
ELEV_MODE = Fgelev
ELEV_RASTER_X = 10
ELEV_RASTER_Y = 10
EXPERIMENTAL_INNER = 0
EXPERIMENTAL_USE_SKEL = 1
FG_ELEV = /home/govert/FG-install/bin/fgelev
IGNORE_PKL_OVERWRITE = True
LIGHTMAP_ENABLE = 0
LOD_ALWAYS_BARE_ABOVE_LEVELS = 10
LOD_ALWAYS_DETAIL_BELOW_AREA = 150
LOD_ALWAYS_DETAIL_BELOW_LEVELS = 3
LOD_ALWAYS_ROUGH_ABOVE_AREA = 500
LOD_ALWAYS_ROUGH_ABOVE_LEVELS = 6
LOD_PERCENTAGE_DETAIL = 0.5
MAX_OBJECTS = 50000
NO_ELEV = False
OBSTRUCTION_LIGHT_MIN_LEVELS = 15
OSM_FILE = buildings.osm
OVERLAP_CHECK = False
OVERLAP_RADIUS = 5
PATH_TO_OUTPUT =
PATH_TO_SCENERY = /home/govert/.fgfs/TerraSync/
PREFIX = LOWI
SKEL_MAX_HEIGHT_RATIO = 0.7
SKEL_MAX_NODES = 10
SKIP_LIST = ["Dresden Hauptbahnhof, Semperoper, Zwinger, Hofkirche, Frauenkirche, Coselpalais, Palais im Großen Garten, Residenzschloss Dresden, Fernsehturm, Fernsehturm Dresden"]
TILE_SIZE = 1000
TRAFFIC_SHADER_ENABLE = False
USE_PKL = False
vec2d = <class 'vec2d.vec2d'>
------
textures: init
tools: init <tools.Stats object at 0x7f0f45a72b90>
dx, dy 0.0 0.0
cluster:  13.0000000 9.0000000
  delta:  12499.9292087 8380.2504124
  min:  -4406.4215837 -2790.8355199
  max:  8093.5076250 5589.4148924
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
-9999
clusters 13.0000000 9.0000000

total buildings 4366
parse errors    0
written         0
skipped
  small         0
  nearby        0
  no elevation  4366
  no texture    0
roof-types
  complex       0
  roof_errors   0
ground nodes    23264
  simplified    3272
vertices        0
surfaces        0
repeated tex x  0 out of 0 ( 0 %)
    LOD bare        0 ( 0 %)
    LOD rough       0 ( 0 %)
    LOD detail      0 ( 0 %)
above
     1 m^2      0 |
    10 m^2      0 |
    20 m^2      0 |
    50 m^2      0 |
   100 m^2      0 |
   200 m^2      0 |
   500 m^2      0 |
  1000 m^2      0 |
  2000 m^2      0 |
  5000 m^2      0 |
 10000 m^2      0 |
 20000 m^2      0 |
 50000 m^2      0 |
dutchguy
 
Posts: 108
Joined: Mon Mar 31, 2014 5:16 pm

Re: LOWI city buildings

Postby radi » Wed Aug 06, 2014 4:30 am

Hi dutchguy,

Thanks for testing and the bug report.
1. Please post your osm2city command line.
2. Did you c&p the complete osm2city log? I am missing a line saying "reading elevation data" . From reading the code, that is only possible if you change the log level, which is currently hard-coded. I assume you did not touch the code yet?
3. Please post the first 10 lines of your elev.out
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby dutchguy » Wed Aug 06, 2014 4:19 pm

Hey Radi,

Thank you for the quick reply. The command I used for osm2city is:

./osm2city -f LOWI/params.ini >> log

The first part is just copied from http://wiki.flightgear.org/Osm2city.py, and the last part should to my knowledge output everything that would have ended up on the command line to the file "log". I posted the contents of log above. If it doesn't output everything then there is a problem, because the list of -9999s is so long that I can't scroll back far enough in my terminal to view the first part. I didn't touch the code yet, apart from the files that your instructions said I should alter.

Here are the first 10 lines of elev.out:
Code: Select all
# -3036.01 -2565.07 6072.02 5130.15 10 10
5.03860000 51.53331000 -3036.01 -2565.07 -0.406
5.03874419 51.53331000 -3026.01 -2565.07 -0.405
5.03888837 51.53331000 -3016.01 -2565.07 -0.404
5.03903256 51.53331000 -3006.01 -2565.07 -0.404
5.03917674 51.53331000 -2996.01 -2565.07 -0.401
5.03932093 51.53331000 -2986.01 -2565.07 -0.402
5.03946512 51.53331000 -2976.01 -2565.07 -0.4
5.03960930 51.53331000 -2966.01 -2565.07 -0.4
5.03975349 51.53331000 -2956.01 -2565.07 -0.4


P.S. The land I'm trying to populate is below sea level, so if there is something in the code which doesn't accept negative elevations, that might be a possible cause.
dutchguy
 
Posts: 108
Joined: Mon Mar 31, 2014 5:16 pm

Re: LOWI city buildings

Postby radi » Thu Aug 07, 2014 4:00 am

Thanks dutchguy! Please try the latest version from git/master. I had fixed this bug before in a different branch, but apparently forgot to merge this with master. A couple of notes though:

1. Most terminals allow you to increase the number of scrollback lines. I usually set mine to something like 30k.
2. You should also re-direct stderr to the log file, i.e.
./osm2city -f LOWI/params.ini >& log
osm2city is currently not quite consistent in this regard: some messages go to stderr, some to stdout. Using >> for the redirect will only save stdout. That's why some lines I expected were missing in your log.
3. What still strikes me odd is that your elev.out starts at 5.0 51.53, whereas your params.ini says 3.9 51.7 -- that's quite off. I haven't re-created elev.out in quite a while though. I'll look into that once my main FG machine is back -- hopefully this weekend.
OSM buildings for LOWI, EDDC
Custom scenery for VHXX YMML
Edit .stg via the FG Object Placement Tool
radi
 
Posts: 659
Joined: Mon Aug 25, 2008 5:24 pm
Location: YMML, EDDC

Re: LOWI city buildings

Postby dutchguy » Thu Aug 07, 2014 12:06 pm

Hey Radi,

The script runs fine now, but I was wondering, is there a minimum size for buildings? Because about 80% of the buildings are now skipped because they are small. When I fly in the area, I do see roads, but I only see very few buildings (as in 1 or 2). They can't be random buildings, since I disabled those. I don't know whether they are osm2city buildings, since there should be around 1912 of those, and I certainly don't see that many.

The discrepancies in elev.out are because I tried another area, and I forgot that the elev.out was changed. Sorry if it caused you to look for an error!

Output from osm2city.py (created with >& log, so it contains everything):
Code: Select all
INFO:root:Skipping non-existing texture tex.src/castle.jpg
INFO:root:Saving tex/atlas_facades.pkl
INFO:root:<tex.src/DSCF9495_pow2.png> x0,1 0.00 1.00  y0,1 0.94 1.00  sh,v 14.00m 19.40m
 <tex.src/LZ_old_bright_bc2.png> x0,1 0.00 1.00  y0,1 0.88 0.94  sh,v 17.90m 14.80m
 <tex.src/facade_modern_21x42m.jpg> x0,1 0.00 1.00  y0,1 0.75 0.88  sh,v 43.00m 88.00m
 <tex.src/facade_modern_black_46x60m.jpg> x0,1 0.00 1.00  y0,1 0.67 0.75  sh,v 45.90m 60.50m
 <tex.src/facade_industrial_white_26x14m.jpg> x0,1 0.00 1.00  y0,1 0.63 0.67  sh,v 25.70m 13.50m
 <tex.src/facade_modern_commercial_35x20m.jpg> x0,1 0.00 1.00  y0,1 0.60 0.63  sh,v 34.60m 20.40m
 <tex.src/facade_modern36x36_12.png> x0,1 0.00 1.00  y0,1 0.53 0.60  sh,v 36.00m 36.00m
 <tex.src/DSCF9503_noroofsec_pow2.png> x0,1 0.00 1.00  y0,1 0.47 0.53  sh,v 12.85m 17.66m
 <tex.src/DSCF9710.png> x0,1 0.00 1.00  y0,1 0.44 0.47  sh,v 29.90m 19.80m
 <tex.src/DSCF9678_pow2.png> x0,1 0.00 1.00  y0,1 0.38 0.44  sh,v 10.40m 15.50m
 <tex.src/DSCF9726_noroofsec_pow2.png> x0,1 0.00 1.00  y0,1 0.35 0.38  sh,v 15.10m 9.60m
 <tex.src/wohnheime_petersburger.png> x0,1 0.00 1.00  y0,1 0.28 0.35  sh,v 15.60m 15.60m

INFO:root:reading elevation data
INFO:root:Reading the OSM file might take some time ...
./osm2city.py:281: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  if name in parameters.SKIP_LIST:
INFO:root:min/max 3.6768609 51.6627056 4.1554606 51.8581250
INFO:root:parsed 5970 buildings.
Reading parameters from file: LOWI/params.ini
--- Using the following parameters: ---
BOUNDARY_EAST = 4.01138
BOUNDARY_NORTH = 51.77251
BOUNDARY_SOUTH = 51.70916
BOUNDARY_WEST = 3.82599
BUILDING_CITY_LEVELS_HEIGH = 5.0
BUILDING_CITY_LEVELS_LOW = 2.0
BUILDING_CITY_LEVELS_MODE = 3.5
BUILDING_CITY_LEVEL_HEIGHT_HEIGH = 3.6
BUILDING_CITY_LEVEL_HEIGHT_LOW = 3.1
BUILDING_CITY_LEVEL_HEIGHT_MODE = 3.3
BUILDING_COMPLEX_ROOFS = 1
BUILDING_COMPLEX_ROOFS_MAX_AREA = 2000
BUILDING_COMPLEX_ROOFS_MAX_LEVELS = 5
BUILDING_MIN_AREA = 50.0
BUILDING_MIN_HEIGHT = 3.4
BUILDING_NEVER_SKIP_LEVELS = 6
BUILDING_REDUCE_CHECK_TOUCH = False
BUILDING_REDUCE_RATE = 0.5
BUILDING_REDUCE_THRESHOLD = 200.0
BUILDING_SIMPLIFY_TOLERANCE = 1.0
C2P_CABLES_NO_SHADOW = True
C2P_CATENARY_A_AERIALWAY_CABLE_CAR = 1500
C2P_CATENARY_A_AERIALWAY_CHAIR_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_DRAG_LIFT = 1500
C2P_CATENARY_A_AERIALWAY_GONDOLA = 1500
C2P_CATENARY_A_AERIALWAY_GOODS = 1500
C2P_CATENARY_A_OVERHEAD_LINE = 600
C2P_CATENARY_A_POWER_LINE = 1500
C2P_CATENARY_A_POWER_MINOR_LINE = 1200
C2P_CATENARY_MIN_DISTANCE = 30
C2P_CLUSTER_AERIALWAY_MAX_LENGTH = 300
C2P_CLUSTER_OVERHEAD_LINE_MAX_LENGTH = 130
C2P_CLUSTER_POWER_LINE_MAX_LENGTH = 300
C2P_EXTRA_VERTICES_AERIALWAY_CABLE_CAR = 5
C2P_EXTRA_VERTICES_AERIALWAY_CHAIR_LIFT = 3
C2P_EXTRA_VERTICES_AERIALWAY_DRAG_LIFT = 0
C2P_EXTRA_VERTICES_AERIALWAY_GONDOLA = 3
C2P_EXTRA_VERTICES_AERIALWAY_GOODS = 5
C2P_EXTRA_VERTICES_OVERHEAD_LINE = 2
C2P_EXTRA_VERTICES_POWER_LINE = 3
C2P_EXTRA_VERTICES_POWER_MINOR_LINE = 3
C2P_POWER_LINE_ALLOW_100M = False
C2P_PROCESS_AERIALWAYS = True
C2P_PROCESS_OVERHEAD_LINES = True
C2P_PROCESS_POWERLINES = True
C2P_PROCESS_STREETLAMPS = True
C2P_RADIUS_AERIALWAY_CABLE_CAR = 0.05
C2P_RADIUS_AERIALWAY_CHAIR_LIFT = 0.05
C2P_RADIUS_AERIALWAY_DRAG_LIFT = 0.03
C2P_RADIUS_AERIALWAY_GONDOLA = 0.05
C2P_RADIUS_AERIALWAY_GOODS = 0.03
C2P_RADIUS_OVERHEAD_LINE = 0.02
C2P_RADIUS_POWER_LINE = 0.1
C2P_RADIUS_POWER_MINOR_LINE = 0.05
C2P_RADIUS_TOP_LINE = 0.02
CLUSTER_MIN_OBJECTS = 5
CONCURRENCY = 1
ELEV_MODE = Fgelev
ELEV_RASTER_X = 10
ELEV_RASTER_Y = 10
EXPERIMENTAL_INNER = 0
EXPERIMENTAL_USE_SKEL = 1
FG_ELEV = /home/govert/FG-install/bin/fgelev
IGNORE_PKL_OVERWRITE = True
LIGHTMAP_ENABLE = 0
LOD_ALWAYS_BARE_ABOVE_LEVELS = 10
LOD_ALWAYS_DETAIL_BELOW_AREA = 150
LOD_ALWAYS_DETAIL_BELOW_LEVELS = 3
LOD_ALWAYS_ROUGH_ABOVE_AREA = 500
LOD_ALWAYS_ROUGH_ABOVE_LEVELS = 6
LOD_PERCENTAGE_DETAIL = 0.5
MAX_OBJECTS = 50000
NO_ELEV = False
OBSTRUCTION_LIGHT_MIN_LEVELS = 15
OSM_FILE = buildings.osm
OVERLAP_CHECK = False
OVERLAP_RADIUS = 5
PATH_TO_OUTPUT =
PATH_TO_SCENERY = /home/govert/.fgfs/TerraSync/
PREFIX = LOWI
SKEL_MAX_HEIGHT_RATIO = 0.7
SKEL_MAX_NODES = 10
SKIP_LIST = ["Dresden Hauptbahnhof, Semperoper, Zwinger, Hofkirche, Frauenkirche, Coselpalais, Palais im Großen Garten, Residenzschloss Dresden, Fernsehturm, Fernsehturm Dresden"]
TILE_SIZE = 1000
TRAFFIC_SHADER_ENABLE = False
USE_PKL = False
vec2d = <class 'vec2d.vec2d'>
------
textures: init
tools: init <tools.Stats object at 0x7fd1e3fe8b50>
dx, dy 0.00014477 8.98800000044e-05
cluster:  34.0000000 22.0000000
  delta:  33058.7506934 21742.8360979
  min:  -16703.7351540 -8692.8664126
  max:  16355.0155395 13049.9696853
clusters 34.0000000 22.0000000
.....................................................................70
.....................................................................140
.....................................................................210
.....................................................................280
.....................................................................350
.....................................................................420
.....................................................................490
.....................................................................560
.....................................................................630
.....................................................................700
.....................................................................770
.........................................ERROR:root:Error while creating 3d roof (OSM_ID 276113651, math domain error)
WARNING:root:Skipping tile elev = -9999 at lat 51.703 and lon 3.945
INFO:root:done.
............................840
.....................................................................910
.....................................................................980
.....................................................................1050
.....................................................................1120
.....................................................................1190
.....................................................................1260
.....................................................................1330
.....................................................................1400
.....................................................................1470
.....................................................................1540
.....................................................................1610
.....................................................................1680
.....................................................................1750
.....................................................................1820
..........................................................
total buildings 5970
parse errors    0
written         1912
skipped
  small         4051
  nearby        0
  no elevation  7
  no texture    0
roof-types
  unknown   1878
  complex       1019
  roof_errors   1
ground nodes    32600
  simplified    5154
vertices        40104
surfaces        21883
repeated tex x  0 out of 0 ( 0 %)
    LOD bare        0 ( 0 %)
    LOD rough       277 (14 %)
    LOD detail      1635 ( 0 %)
above
     1 m^2      0 |
    10 m^2      0 |
    20 m^2      0 |
    50 m^2   1206 |########################################################
   100 m^2    350 |################
   200 m^2    183 |########
   500 m^2     88 |####
  1000 m^2     33 |#
  2000 m^2     15 |
  5000 m^2      3 |
 10000 m^2      0 |
 20000 m^2      0 |
 50000 m^2      0 |
dutchguy
 
Posts: 108
Joined: Mon Mar 31, 2014 5:16 pm

PreviousNext

Return to Scenery

Who is online

Users browsing this forum: No registered users and 6 guests