brouter icon indicating copy to clipboard operation
brouter copied to clipboard

Smaller segment files

Open FaFre opened this issue 2 years ago • 1 comments

I plan to integrate brouter into my App. The segments will be pulled accordingly on demand from a hosted source. Some of the segments for very dense regions do have a pretty big filesize, that will be both taking up (probably) unnecessary space on the device and are also costly in terms of time and size to transfer over the network.

I was thinking about reducing the resolution to 1x1 lat/lon, which would be more suitable for my use case.

Yet, I havent looked deeply into the file structure and checked the code in detail. There might be some good arguments why 5x5 has been chosen :)

Will it be suitable for brouter to consume smaller lon/lat files, or will this result worse/unoptimized performance when computing routes?

Would this work well considering possible internal compressions for the rd5 files which will result in inefficient storage usage, or bad loading times?

FaFre avatar Feb 21 '23 07:02 FaFre

Actually the RD5 Files do contain 25 "logical 1dx1d files" so switching to 1dx1d is straight forward.

Watch out for the number of open file-handles the Router is holding ( see NodesCache.fileCache )

There's no concept for closing them before the RoutingEngine instance is closed, so you might touch a file-handle limit for long-distance routings. Or add some LRU-Caching logic for these file-handles (nasty stuff)

So yes 5x5 is a natural choice, first because SRTM data comes in that format, and because the Preprocessor can cut the Planet into 5x5 Tiles in 2 Runs ( 360x180 ---> 45x30 ---> 5x5 ) with no more then 54 parallel open files at a time.

abrensch avatar Feb 21 '23 10:02 abrensch