<div class=WordSection1><p class=MsoNormal>Hi Gerd,</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>added <a href="http://files.mkgmap.org.uk/detail/367">http://files.mkgmap.org.uk/detail/367</a> which cause</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C:\Garmin\FAMILY_6371.gmap\Product1>(java -ea -Xmx1000m -cp c:\garmin\bin\display.jar;c:\garmin\bin\mkgmap.jar test.display.DemDisplay 63710081\63710081.DEM  1>63710081\dem_decode.txt )<o:p></o:p></p><p class=MsoNormal>Exception in thread "main" java.lang.ArithmeticException: / by zero<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay$DemSection.decodeBitstreams(DemDisplay.java:862)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.readFileHeader(DemDisplay.java:925)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.print(DemDisplay.java:882)<o:p></o:p></p><p class=MsoNormal>        at test.display.CommonDisplay.display(CommonDisplay.java:171)<o:p></o:p></p><p class=MsoNormal>        at test.display.CommonDisplay.display(CommonDisplay.java:196)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.main(DemDisplay.java:946)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C:\Garmin\FAMILY_6371.gmap\Product1>(java -ea -Xmx1000m -cp c:\garmin\bin\display.jar;c:\garmin\bin\mkgmap.jar test.display.DemDisplay 63710082\63710082.DEM  1>63710082\dem_decode.txt )<o:p></o:p></p><p class=MsoNormal>Exception in thread "main" java.lang.ArithmeticException: / by zero<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay$DemSection.decodeBitstreams(DemDisplay.java:862)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.readFileHeader(DemDisplay.java:925)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.print(DemDisplay.java:882)<o:p></o:p></p><p class=MsoNormal>        at test.display.CommonDisplay.display(CommonDisplay.java:171)<o:p></o:p></p><p class=MsoNormal>        at test.display.CommonDisplay.display(CommonDisplay.java:196)<o:p></o:p></p><p class=MsoNormal>        at test.display.DemDisplay.main(DemDisplay.java:946)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>regards</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Andreas</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Gesendet von <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> für Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Von: </b><a href="mailto:gpetermann_muenchen@hotmail.com">Gerd Petermann</a><br><b>Gesendet: </b>Mittwoch, 6. Dezember 2017 10:52<br><b>An: </b><a href="mailto:mkgmap-dev@lists.mkgmap.org.uk">Development list for mkgmap</a><br><b>Betreff: </b>Re: [mkgmap-dev] DEM File Format and mkgmap</p></div><p class=MsoNormal><o:p> </o:p></p></div>OK , with r508 I fixed the problems that showed up in the files from Nick and Andreas, bot were related to the meaning of header info.<br>I've also changed the program so that it doesn't produce so much output unless option --verbose is given as 1st arg to speed up the error hunt ;-)<br>See http://files.mkgmap.org.uk/download/366/display.jar<br><br>Unfortunately it still fails to read all Garmin demo files. Obviously the prediction implemented in DemDisplay is not always<br>in sync with Garmins algo. Maybe this is related to the fact that Garmin maps use values in feet instead of metres.<br><br>Gerd<br><br>________________________________________<br>Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von osm@pinns <osm@pinns.co.uk><br>Gesendet: Dienstag, 5. Dezember 2017 14:33:14<br>An: mkgmap-dev@lists.mkgmap.org.uk<br>Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br><br>Hi Gerd<br><br>Excellent, will do so more hunting!<br><br>Nick<br><br><br>On 05/12/2017 13:27, Gerd Petermann wrote:<br>> Hi Nick,<br>><br>> yes, that one was special because it contained 4 byte offsets. DemDisplay r507 supports only up to 3 bytes. Fixed soon.<br>><br>> Gerd<br>><br>> ________________________________________<br>> Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von osm@pinns <osm@pinns.co.uk><br>> Gesendet: Dienstag, 5. Dezember 2017 13:33:16<br>> An: mkgmap-dev@lists.mkgmap.org.uk<br>> Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br>><br>> Gert<br>><br>> I think I may have a dem that causes a problem<br>><br>> http://files.mkgmap.org.uk/download/364/12345684.zip<br>><br>> C:\Users\Owner\Desktop\mkgmap-r3997>java -cp display.jar;mkgmap.jar test.display<br>> .DemDisplay 12345684.DEM  1>log12345684.txt<br>> Exception in thread "main" java.lang.RuntimeException: did not read all avalaibl<br>> e bytes<br>>          at test.display.DemDisplay$DemTile.decodeBitStreamData(DemDisplay.java:4<br>> 98)<br>>          at test.display.DemDisplay$DemSection.decodeBitstreams(DemDisplay.java:8<br>> 02)<br>>          at test.display.DemDisplay.readFileHeader(DemDisplay.java:859)<br>>          at test.display.DemDisplay.print(DemDisplay.java:816)<br>>          at test.display.CommonDisplay.display(CommonDisplay.java:171)<br>>          at test.display.CommonDisplay.display(CommonDisplay.java:196)<br>>          at test.display.DemDisplay.main(DemDisplay.java:875)<br>><br>> It is part of OSM Greece<br>><br>> r<br>><br>> Nick<br>><br>><br>> On 05/12/2017 10:17, Gerd Petermann wrote:<br>><br>> Hi all,<br>><br>> I've changed my strategy now. I've modified DemDisplay to display the decoded height together with lat/lon. If a new value differs by more than a few meters from the value left or above it is probably wrong. Hope this helps me to find the remaining special cases.<br>><br>> Gerd<br>><br>> ________________________________________<br>> Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Gerd Petermann <gpetermann_muenchen@hotmail.com><mailto:gpetermann_muenchen@hotmail.com><br>> Gesendet: Dienstag, 5. Dezember 2017 09:26:37<br>> An: Development list for mkgmap<br>> Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br>><br>> Hi Nick,<br>> yes, I know that.<br>><br>> I've fixed some problem in DemDisplay, so here is r507:<br>> http://files.mkgmap.org.uk/download/363/display.jar<br>><br>> It seems I was not clear about my strategy. I am searching for DEM files created by Franks program which display tool cannot parse.<br>> Please don't post data from Garmin if that doesn't come from free demo maps. I have quite a few DEM files from those demo maps, but<br>> the problem with that data is that I don't know for sure what values they contain.<br>> If you find a DEM produced by Franks program which r507 still cannot read I need the options for BuildDEMFile and the *.TRE file so that I can<br>> reproduce the DEM file and finally trace what values Franks program creates.<br>> With a bit of luck this will help to fix the problems with the demo data.<br>><br>> Gerd<br>><br>> ________________________________________<br>> Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von osm@pinns <osm@pinns.co.uk><mailto:osm@pinns.co.uk><br>> Gesendet: Montag, 4. Dezember 2017 16:27:20<br>> An: mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br>><br>> Hi Gerd<br>><br>> I think all the dem files from the very old GBTopo can only be parsed up to a certain point<br>><br>> I've included 3 excmples with tre<br>><br>> http://files.mkgmap.org.uk/download/362/00145336.zip<br>><br>> Nick<br>><br>> On 04/12/2017 15:02, osm@pinns wrote:<br>> Hi Gerd<br>><br>> Thanks for letting me know<br>><br>> That is probably why eventually it stopped   with repeated plateau len 64 messages on one of the dems builddemfile created<br>><br>> I have some 'old' non nt Garmin Topo maps with dem and will have a go using your display.jar<br>><br>> r<br>><br>> Nick<br>><br>><br>><br>> On 04/12/2017 13:49, Gerd Petermann wrote:<br>> Hi Nick,<br>><br>> I just found out that display tool can not yet read DEM tiles with multiple zoom levels. Working on it now...<br>><br>> Gerd<br>><br>> ________________________________________<br>> Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von osm@pinns <osm@pinns.co.uk><mailto:osm@pinns.co.uk><mailto:osm@pinns.co.uk><mailto:osm@pinns.co.uk><br>> Gesendet: Montag, 4. Dezember 2017 14:35:15<br>> An: mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br>><br>> Many thanks Gerd<br>><br>> Will have a go at it today and let you know my findings, if any !<br>><br>> Nick<br>><br>><br>> On 04/12/2017 13:27, Gerd Petermann wrote:<br>> Hi Nick,<br>><br>> My understanding is that the prediction starts with the values from the header (min and max height in the tile)<br>> The first row is indeed rather easy to decode. Frank has described many more details in his pdf, and his program<br>> seems to create valid DEM data since Basecamp displays it, I just try to reduce the number of special cases now.<br>><br>> A compiled display.jar r505 is here:<br>> http://files.mkgmap.org.uk/download/361/display.jar<br>> If you also download and unzip this mkgmap package http://www.mkgmap.org.uk/download/mkgmap-r3997.zip<br>> you can run e.g.<br>> java -cp display.jar;mkgmap-r3997\mkgmap.jar test.display.DemDisplay 12345678.DEM > log.txt<br>><br>> I am interested in those files created by BuildDemFile which create a run time exception. If you find one or more, I need the original *.TRE file(s)<br>> which were the input for BuildDemFile .<br>><br>> Gerd<br>> ________________________________________<br>> Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk><mailto:mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von osm@pinns <osm@pinns.co.uk><mailto:osm@pinns.co.uk><mailto:osm@pinns.co.uk><mailto:osm@pinns.co.uk><br>> Gesendet: Montag, 4. Dezember 2017 13:00:27<br>> An: mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> Betreff: Re: [mkgmap-dev] DEM File Format and mkgmap<br>><br>> Hi Gerd<br>><br>> Presumably some hgt data gets stored in a tile from which other data is<br>> predicted? Perhaps the first 'row'?<br>><br>> Would be great if you could  compile the DemDisplay.java so we can do<br>> ome testing as well.<br>><br>> I'm glad you are almost 'getting there'!<br>><br>> r<br>><br>> Nick<br>><br>><br>> On 03/12/2017 11:16, Gerd Petermann wrote:<br>> Hi all,<br>><br>> I think I understand now much more about this format. I used Frank Stinners code for BuildDEMFile and his pdf to write a decoder in the display tool.<br>> I still fails to read some Garmin DEM files but seems to work with the files produced by  BuildDEMFile.<br>> My current work flow is to generate DEM files with BuildDEMFile and read them with my decoder. If the decoder fails I can find out why because I can trace step by step what BuildDEMFile does.<br>> I guess that I did not yet hit all special cases identified by Frank, but I am making good progress now, so I hope I'll be able to start implementing a DEM encoder in mkgmap soon.<br>><br>> Reg. the format:<br>> It is quite different to those used in other GARMIN sub files like NOD, NET, RGN etc.  In short: The data is organized in tiles, typically 64*64 values. Instead of storing each value<br>> Garmin uses some statistics to predict the next value based on the already processed values. This predicted value is subtracted from the real value and only the delta is stored.<br>> The better the prediction, the closer to 0 is the delta. The prediction also calculates the error-probability of the prediction and uses this to select the number of bits which are<br>> needed to store the value.  If the delta is larger than expected the so called BigBin encoding is used.<br>> The format to store the delta is optimized for values close to 0, so that many deltas are stored with only 1 or 2 bits.<br>> A 2nd trick to save space is to use run length encoding for repeated values.<br>> So, the tricky part is to find out exactly how the prediction algo by Garmin works.<br>> Frank has done really great work here.<br>><br>> For those who want to try the display tool:<br>> You have to compile on your own and you also need an installed mgkmap.jar.<br>> If that is available a command like this (replace d:\... with your paths) should produce a large txt file:<br>> java -ea -Xmx1000m -cp d:\display\dist\display.jar;d:\mkgmap\dist\mkgmap.jar test.display.DemDisplay test.DEM > dem_decode.txt<br>><br>> I am now searching for DEM files produced by BuildDEMFile  which are not properly processed by display tool. When it fails you'll see a traceback like this<br>> Exception in thread "main" java.lang.RuntimeException: did not read all avalaible bytes<br>>             at test.display.DemDisplay$DemTile.decodeBitStreamData(DemDisplay.java:532)<br>>             at test.display.DemDisplay$DemSection.decodeBitstream(DemDisplay.java:831)<br>>             at test.display.DemDisplay.readFileHeader(DemDisplay.java:887)<br>>             at test.display.DemDisplay.print(DemDisplay.java:845)<br>>             at test.display.CommonDisplay.display(CommonDisplay.java:171)<br>>             at test.display.CommonDisplay.display(CommonDisplay.java:196)<br>>             at test.display.DemDisplay.main(DemDisplay.java:903)<br>><br>> Gerd<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>><br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>><br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<mailto:mkgmap-dev@lists.mkgmap.org.uk><br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>><br>><br>> _______________________________________________<br>> mkgmap-dev mailing list<br>> mkgmap-dev@lists.mkgmap.org.uk<br>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br><br>_______________________________________________<br>mkgmap-dev mailing list<br>mkgmap-dev@lists.mkgmap.org.uk<br>http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>_______________________________________________<br>mkgmap-dev mailing list<br>mkgmap-dev@lists.mkgmap.org.uk<br>http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev<br>