[mkgmap-dev] Error when running splitter with several input files, could there be keep-complete=single mode?
From Felix Hartmann extremecarver at gmail.com on Mon Aug 30 20:41:53 BST 2021
Sorry - the last error was a bug in my script. I actually chose the mapid for splitter too low and while mkgmap did overwrite the .img file without warning, it did not overwrite the gmapi files without warning (due to a bug in finding out the highest number of tiles created). So with o5m input this all works fine. Seems I have to beef up my server by another NVME disk to accommodate for the larger o5m vs osm.pbf files. I need to store all splitter created files - because I run mkgmap several times... Just convenience. On Mon, 30 Aug 2021 at 12:50, Felix Hartmann <extremecarver at gmail.com> wrote: > Well I'm not fully sure this works as intended - though at first glance I > cannot find a problem - but running mkgmap on the split files gives an: > > C:\openmtbmap\maps>start /belownormal /b /wait java -jar > -XX:+AggressiveHeap -XX:StringTableSize=1000003 -Xms5000M -Xmx43000M > C:\openmtbmap\mkgmap.jar --max-jobs=12 --order-by-decreasing-area > --code-page=1252 "--style-file=C:\openmtbmap\buildings_style" > --levels="0:24, 1:23, 2:22, 3:21" --ignore-osm-bounds > --ignore-turn-restrictions --merge-lines --allow-reverse-merge > --transparent --draw-priority=28 --add-pois-to-areas > --simplify-polygons=23:4,22:7,21:8 > --copyright-file="C:\openmtbmap\openmtbmap_svn\copyrightopm.txt" > --license-file="C:\openmtbmap\openmtbmap_svn\licenseopm.txt" > --add-boundary-nodes-at-admin-boundaries=2 > --poi-excl-index=0x6405,0x4316,0x2f00 --ignore-fixme-values > --polygon-size-limits="24:16, 23:14, 22:12, 21:11" > --ignore-turn-restrictions --description=buildings_fr --country-abbr=fr > --country-name=france --mapname=83910046 --family-id=8391 --product-id=1 > --series-name="buildings_france_30.08.2021" --keep-going > --family-name="buildings_fr_30.08.2021" --tdbfile --gmapi --gmapsupp > --overview-mapname=mapsetb --area-name="france_30.08.2021_buildings" -c > D:\openmtbmap\maps\template.franceb1 8391*.img buildfr.typ 1>NUL > Mkgmap version 4806M > Time started: Mon Aug 30 12:34:48 CEST 2021 > Number of MapFailedExceptions: 0 > WARNING (global): Could not copy 83910046.RGN > uk.me.parabola.imgfmt.FileExistsException: File 83910046.RGN already exists > WARNING (global): Could not copy 83910046.TRE > uk.me.parabola.imgfmt.FileExistsException: File 83910046.TRE already exists > WARNING (global): Could not copy 83910046.LBL > uk.me.parabola.imgfmt.FileExistsException: File 83910046.LBL already exists > Number of ExitExceptions: 0 > Time finished: Mon Aug 30 12:35:28 CEST 2021 > Total time taken: 39 seconds > > > Now of course there has been no file at all called 83910046* in the > directory except 83910046.o5m (referenced via > D:\openmtbmap\maps\template.franceb1 input file option). Google spits out > no mention at all concerning this error. I would guess there is an error in > the --gmapi file? > > On Mon, 30 Aug 2021 at 12:38, Felix Hartmann <extremecarver at gmail.com> > wrote: > >> okay - well the only working solution to this problem is to use o5m >> output format with mkgmap, and then use osmconvert to join the files before >> splitting them again. >> Would it be possible for mkgmap to have a mode to split the files one by >> one without the detour via osmconvert? >> >> o5m uses a lot more hdd space, and mkgmap.jar is only marginally faster >> with 05m input vs osm.pbf (splitter works quite a lot faster on big o5m >> files vs osm.pbf - but small input files make not much time difference)... >> >> On Mon, 30 Aug 2021 at 02:25, Felix Hartmann <extremecarver at gmail.com> >> wrote: >> >>> I split france.osm.pbf with D:\openmtbmap\maps>if france == legend start >>> /belownormal /b /wait java -jar -XX:+AggressiveHeap -Xms1000m -Xmx3800m >>> C:\openmtbmap\splitter.jar --max-nodes=9600000 --max-threads=12 >>> --search-limit=1000000 --output=pbf "--keep-complete" --max-areas=1024 >>> --geonames-file=D:\openmtbmap\osmpbf_geofabrik\cities5000.zip >>> --description=france --mapid=83910000 france.osm 1>NUL >>> >>> Then I compiled the map using mgkamp.jar - and want to resplit all >>> remaining files that did not compile with smaller max-nodes value. However >>> splitter.jar chokes if I pass several files... Is there any way to have >>> splitter just working with several files without trying to merge them? I >>> just need the files split to the new max-nodes value and incrementing the >>> map id. If I pass only one file at a time, it is a PITA to script this (is >>> already hard enough figuring out the new map-id and creating a list of the >>> tiles). >>> >>> D:\openmtbmap\maps>if yes EQU yes start /belownormal /b /wait java >>> -XX:+AggressiveHeap -Xms5000M -Xmx54000M -jar C:\openmtbmap\splitter.jar >>> --max-nodes=4800000 --max-threads=12 --search-limit=1000000 --output=pbf >>> --geonames-file=D:\openmtbmap\osmpbf_geofabrik\cities5000.zip >>> --description=france --mapid=83910046 "83910015.osm.pbf" >>> "83910025.osm.pbf" "83910026.osm.pbf" "83910042.osm.pbf" 1>NUL >>> Warning: --keep-complete is only used for the first input file. Further >>> files must use higher ids. >>> Error: Node ids are not sorted. Use e.g. osmosis to sort the input data. >>> This is not supported with keep-complete=true or --problem-list >>> uk.me.parabola.splitter.SplitFailedException: Node ids are not sorted >>> at >>> uk.me.parabola.splitter.MultiTileProcessor.storeCoord(MultiTileProcessor.java:497) >>> at >>> uk.me.parabola.splitter.MultiTileProcessor.processNode(MultiTileProcessor.java:126) >>> at >>> uk.me.parabola.splitter.AbstractMapProcessor.consume(AbstractMapProcessor.java:82) >>> at >>> uk.me.parabola.splitter.OSMFileHandler.execute(OSMFileHandler.java:157) >>> at >>> uk.me.parabola.splitter.ProblemLists.calcMultiTileElements(ProblemLists.java:255) >>> at uk.me.parabola.splitter.Main.useProblemLists(Main.java:503) >>> at uk.me.parabola.splitter.Main.start(Main.java:127) >>> at uk.me.parabola.splitter.Main.main(Main.java:81) >>> >>> >>> The option to first join the files with osmconvert - is a PITA - as you >>> cannot parse several osm.pbf files to osmconvert (it only supports joining >>> osm or o5m files). >>> The option to supply splitter.jar with each file on it's own - is also a >>> PITA that would require horrendous for loops because after each split you >>> need to check which new map-id to use for the next file! >>> >>> So it would be great to have a keep-complete option that for each input >>> file, but not for all input files, uses keep-complete. Actually I think >>> this should be the default mode when supplying several input files. Even if >>> mkgmap actually cannot run this in parallel / multithreading it would be >>> way better than parsing each file on it's own... >>> Or am I dumbstruck in finding a way to resplit too big input files? >>> >>> -- >>> Felix Hartman - Openmtbmap.org & VeloMap.org >>> >>> >> >> -- >> Felix Hartman - Openmtbmap.org & VeloMap.org >> >> > > -- > Felix Hartman - Openmtbmap.org & VeloMap.org > > -- Felix Hartman - Openmtbmap.org & VeloMap.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20210830/d769715e/attachment.html>
- Previous message: [mkgmap-dev] Error when running splitter with several input files, could there be keep-complete=single mode?
- Next message: [mkgmap-dev] Error when running splitter with several input files, could there be keep-complete=single mode?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list