mtk2garmin
mtk2garmin copied to clipboard
WIP: Getting started
Vaiheessa, ei ole missään vaiheessa valmis, mutta teen valmiiksi, jos vaikka jotain keskustelua asioista on tarpeellista.
Tuo miten nuo WFS jutut kuuluu käyttää on edelleen vähän hakusessa, vaikka tuo national grid dataset:tiä sain ladattua. Tästä ehkä käy ilmi että WFS /GIS jutut ole niin tuttuja.
Progress so far:
- Finnish national grid dataset ladattuna
- National topographic database from NLS ladattuna
- OSM ladattuna
- MTKToGarminConverter käännetty, ei vielä ajettu, täytynee säätää vähän polkuja jne ja varmaankin hakea kaikki tarvittava materiaalia.
(tällä hetkellä Mac:in ääressä, löytyy toki windowsia myös. Ensialkuun ajattelin yrittää saada toimimaan osx:lla, sillä tavoin saataisiin maksimoitua "kohdeyleisöä")
Hienoa, kiitoksia. Näyttää hyvältä. Ehkä tässä tosiaan on toivoa saada pyörimään jonkun muunkin toimesta.
WFS:stä saa tosiaan pääsääntöisesti ladattua koko halutun datasetin oletusformaatissa (käytännössä GML) tuolla ?request=GetFeature&typeName=Grid
-loitsulla. Retkikartan aineistojen ja syvyystietojen osalta käytössä on ollut shp-formaatti, joka on hiukan tehokkaampi tilankäytön suhteen. Shp:n lataaminen onnistuu lisäämällä outputFormat=shape-zip
parametrin kutsuun. Itse MTKToGarminConverterin pitäisi hyväksyä kaikki OGR:n lukemat formaatit (tosin kovakoodatut polut on spesifejä zip-pakatuille aineistoille).
Kyselyllä ?request=GetCapabilities
saa WFS palvelimen listaamaan mm. kaikki käytössä olevat tasot, eli http://www.retkikartta.fi/wfs/a9e9a1840ee69e32d59af86dd1ffeb44/?request=GetCapabilities antaa ulos Retkikartan WFS:ltä saatavat aineistot ja sieltä johdettuna esimerkiksi http://www.retkikartta.fi/wfs/a9e9a1840ee69e32d59af86dd1ffeb44/?request=GetFeature&typeName=retkikartta_euref:kesaretkeilyreitit&outputFormat=shape-zip
antaa kaikki kesäretkeilyreitit shp-muodossa zippinä.
Tilannepäivitystä:
Juu huomasin itse kun yritin ajaa MTKToGarminConverter että tuota GDAL ei toiminutkaan tuolla yrittämäni tavalla. (swig natiivijutut uupuivat..) "hetken" säätämisen jälkeen sain kuitenkin ohjelma ajoon ja jopa valmiiksi asti.
Tosin:
- syvyyskäyrä data, lataamassani zippissä oli syvyyskayra_v.shp eikä syvyyskayrat.zip
Pientä säätöä koodiin jouduin tekemään, pääosin polkuihin ja path separator liittyen. Tulossa kunhan saan hiukan siistittyä ja toivon mukaan myös backward compatible
osmconvert64 ei erikseen löydy, joten käytin osmconvert
Siinä tulikin seuraava ongelma:
➜ mtk2garmin git:(getting-started) ✗ ./merge_all.bat
osmconvert Error: node key string index overflow: 2,635>=428
osmconvert Error: node key string index overflow: 55,636>=428
osmconvert Error: node key string index overflow: 634,637>=428
Mitään selkeää kuvaa miten tuota pitäisi lähte debuggaamaan minulla ei ole.
Erikoista. Syystä tai toisesta pbf tiedostoissa on siis viittauksia merkkijonotaulukossa olemattomiin merkkijonoihin. Gitissä olevalla versiolla olen viimeksi eilen luonut aineistot ihan onnistuneesti, testailen hiukan mistä voisi olla kyse. Osaatko toistuuko virheet kaikilla karttalehdillä vai vain jollain tietyllä?
Nyt olen ihmetellyt tarkemmin:
osmconvert suomi/P3421L.osm.pbf --out-o5m|osmconvert - suomi/P3421R.osm.pbf --out-o5m|osmconvert - suomi/P3422L.osm.pbf --out-o5m|osmconvert - suomi/P3422R.osm.pbf --out-o5m|osmconvert - suomi/P3423L.osm.pbf --out-o5m|osmconvert - suomi/P3423R.osm.pbf --out-o5m|osmconvert - suomi/P3424L.osm.pbf --out-o5m|osmconvert - suomi/P3424R.osm.pbf -o=suomi/P342.osm.pbf
osmconvert Error: node key string index overflow: 2,635>=428
osmconvert Error: node key string index overflow: 55,636>=428
osmconvert Error: node key string index overflow: 634,637>=428
Kaikki tuohon asti on mennyt herjaamatta. Mutta voisin toki ottaa ottaa viimeisin versio koodista ja kokeilla sillä.
Tämä liittyy tuohon pbf-formaatin stringtableen ja sen muodostamiseen muutospalikassa. Tuon osuuden toteutus kieltämättä on varsin surkea ja sama ongelma esiintyi myös itselläni aikaisemmin, mutta sain sen jotenkuten silloin korjattua.
Viimeisimmällä koodilla en saa tuota toistettua, mutta tässä voi hyvin olla jotakin käytettyyn alustaan ja aineistoihin liittyvää henkimaailman asiaa.
Voisin koittaa järkeistää tuota stringtablen muodostamista, menee tosin ensi viikon puolelle.
Nyt uusimmalla koodilla ajettu tuo MTKToGarminConverter uudestaan.
Edelleen osmconvert herjaa välillä, tämä nyt osmconvert 0.8.5
Elikkä ehkä minun ympäristössäni joku bitti poikittain tms jonka syystä ilmestyy herkemmin. Mahdollisesti ihmettelen hiukan tuota koodia.
Sellaisen testin voisin vielä tehdä, jos ajaisi merge_all.bat uudestaan ja varmistaisi että edelleen tulee virheviestiä samoista asioista.
osmconvert suomi/U5131L.osm.pbf --out-o5m|osmconvert - suomi/U5131R.osm.pbf --out-o5m|osmconvert - suomi/U5132L.osm.pbf --out-o5m|osmconvert - suomi/U5132R.osm.pbf --out-o5m|osmconvert - suomi/U5133L.osm.pbf --out-o5m|osmconvert - suomi/U5133R.osm.pbf --out-o5m|osmconvert - suomi/U5134L.osm.pbf --out-o5m|osmconvert - suomi/U5134R.osm.pbf -o=suomi/U513.osm.pbf
osmconvert Error: node key string index overflow: 1,889>=532
osmconvert Error: node key string index overflow: 14,897>=532
osmconvert Error: node key string index overflow: 888,890>=532
osmconvert Error: node key string index overflow: 1,889>=494
osmconvert Error: node key string index overflow: 14,897>=494
osmconvert Error: node key string index overflow: 888,890>=494
osmconvert suomi/U5141L.osm.pbf --out-o5m|osmconvert - suomi/U5141R.osm.pbf --out-o5m|osmconvert - suomi/U5142L.osm.pbf --out-o5m|osmconvert - suomi/U5142R.osm.pbf --out-o5m|osmconvert - suomi/U5143L.osm.pbf --out-o5m|osmconvert - suomi/U5143R.osm.pbf --out-o5m|osmconvert - suomi/U5144L.osm.pbf --out-o5m|osmconvert - suomi/U5144R.osm.pbf -o=suomi/U514.osm.pbf
osmconvert Error: node key string index overflow: 1,889>=313
osmconvert Error: node key string index overflow: 14,897>=313
osmconvert Error: node key string index overflow: 888,890>=313
osmconvert suomi/S5311L.osm.pbf --out-o5m|osmconvert - suomi/S5311R.osm.pbf --out-o5m|osmconvert - suomi/S5312L.osm.pbf --out-o5m|osmconvert - suomi/S5312R.osm.pbf --out-o5m|osmconvert - suomi/S5313L.osm.pbf --out-o5m|osmconvert - suomi/S5313R.osm.pbf --out-o5m|osmconvert - suomi/S5314L.osm.pbf --out-o5m|osmconvert - suomi/S5314R.osm.pbf -o=suomi/S531.osm.pbf
osmconvert Error: node key string index overflow: 1,660>=412
osmconvert Error: node key string index overflow: 14,669>=412
osmconvert Error: node key string index overflow: 659,665>=412
osmconvert Error: node key string index overflow: 1,660>=432
osmconvert Error: node key string index overflow: 14,669>=432
osmconvert Error: node key string index overflow: 659,665>=432
osmconvert suomi/K4221L.osm.pbf --out-o5m|osmconvert - suomi/K4221R.osm.pbf --out-o5m|osmconvert - suomi/K4222L.osm.pbf --out-o5m|osmconvert - suomi/K4222R.osm.pbf --out-o5m|osmconvert - suomi/K4223L.osm.pbf --out-o5m|osmconvert - suomi/K4223R.osm.pbf --out-o5m|osmconvert - suomi/K4224L.osm.pbf --out-o5m|osmconvert - suomi/K4224R.osm.pbf -o=suomi/K422.osm.pbf
osmconvert Error: node key string index overflow: 14,1461>=1452
osmconvert suomi/P5341L.osm.pbf --out-o5m|osmconvert - suomi/P5341R.osm.pbf --out-o5m|osmconvert - suomi/P5342L.osm.pbf --out-o5m|osmconvert - suomi/P5342R.osm.pbf --out-o5m|osmconvert - suomi/P5343L.osm.pbf --out-o5m|osmconvert - suomi/P5343R.osm.pbf --out-o5m|osmconvert - suomi/P5344L.osm.pbf --out-o5m|osmconvert - suomi/P5344R.osm.pbf -o=suomi/P534.osm.pbf
osmconvert Error: node key string index overflow: 1,1628>=1510
osmconvert Error: node key string index overflow: 14,1642>=1510
osmconvert Error: node key string index overflow: 1627,1639>=1510
osmconvert suomi/X4341L.osm.pbf --out-o5m|osmconvert - suomi/X4341R.osm.pbf --out-o5m|osmconvert - suomi/X4343L.osm.pbf --out-o5m|osmconvert - suomi/X4343R.osm.pbf --out-o5m|osmconvert - suomi/X4344L.osm.pbf --out-o5m|osmconvert - suomi/X4344R.osm.pbf -o=suomi/X434.osm.pbf
osmconvert Error: node key string index overflow: 14,534>=278
osmconvert Error: node key string index overflow: 17,461>=278
osmconvert suomi/X5121L.osm.pbf --out-o5m|osmconvert - suomi/X5121R.osm.pbf --out-o5m|osmconvert - suomi/X5122L.osm.pbf --out-o5m|osmconvert - suomi/X5122R.osm.pbf --out-o5m|osmconvert - suomi/X5123L.osm.pbf --out-o5m|osmconvert - suomi/X5123R.osm.pbf --out-o5m|osmconvert - suomi/X5124L.osm.pbf --out-o5m|osmconvert - suomi/X5124R.osm.pbf -o=suomi/X512.osm.pbf
osmconvert Error: node key string index overflow: 14,658>=426
osmconvert Error: node key string index overflow: 17,659>=426
osmconvert suomi/R5421L.osm.pbf --out-o5m|osmconvert - suomi/R5421R.osm.pbf --out-o5m|osmconvert - suomi/R5422L.osm.pbf --out-o5m|osmconvert - suomi/R5422R.osm.pbf --out-o5m|osmconvert - suomi/R5423L.osm.pbf --out-o5m|osmconvert - suomi/R5423R.osm.pbf --out-o5m|osmconvert - suomi/R5424L.osm.pbf --out-o5m|osmconvert - suomi/R5424R.osm.pbf -o=suomi/R542.osm.pbf
osmconvert Error: node key string index overflow: 1,660>=607
osmconvert Error: node key string index overflow: 14,669>=607
osmconvert Error: node key string index overflow: 659,665>=607
osmconvert suomi/P4241L.osm.pbf --out-o5m|osmconvert - suomi/P4241R.osm.pbf --out-o5m|osmconvert - suomi/P4242L.osm.pbf --out-o5m|osmconvert - suomi/P4242R.osm.pbf --out-o5m|osmconvert - suomi/P4243L.osm.pbf --out-o5m|osmconvert - suomi/P4243R.osm.pbf --out-o5m|osmconvert - suomi/P4244L.osm.pbf --out-o5m|osmconvert - suomi/P4244R.osm.pbf -o=suomi/P424.osm.pbf
osmconvert Error: node key string index overflow: 1,765>=725
osmconvert Error: node key string index overflow: 14,834>=725
osmconvert Error: node key string index overflow: 764,833>=725
osmconvert Error: node key string index overflow: 14,834>=809
osmconvert Error: node key string index overflow: 764,833>=809
osmconvert suomi/T5241L.osm.pbf --out-o5m|osmconvert - suomi/T5241R.osm.pbf --out-o5m|osmconvert - suomi/T5242L.osm.pbf --out-o5m|osmconvert - suomi/T5242R.osm.pbf --out-o5m|osmconvert - suomi/T5243L.osm.pbf --out-o5m|osmconvert - suomi/T5243R.osm.pbf --out-o5m|osmconvert - suomi/T5244L.osm.pbf --out-o5m|osmconvert - suomi/T5244R.osm.pbf -o=suomi/T524.osm.pbf
osmconvert Error: node key string index overflow: 1,889>=407
osmconvert Error: node key string index overflow: 14,897>=407
osmconvert Error: node key string index overflow: 888,890>=407
osmconvert Error: node key string index overflow: 1,889>=720
osmconvert Error: node key string index overflow: 14,897>=720
osmconvert Error: node key string index overflow: 888,890>=720
osmconvert Error: node key string index overflow: 1,889>=538
osmconvert Error: node key string index overflow: 14,897>=538
osmconvert Error: node key string index overflow: 888,890>=538
osmconvert suomi/L3331L.osm.pbf --out-o5m|osmconvert - suomi/L3331R.osm.pbf --out-o5m|osmconvert - suomi/L3332L.osm.pbf --out-o5m|osmconvert - suomi/L3332R.osm.pbf --out-o5m|osmconvert - suomi/L3333L.osm.pbf --out-o5m|osmconvert - suomi/L3333R.osm.pbf --out-o5m|osmconvert - suomi/L3334L.osm.pbf --out-o5m|osmconvert - suomi/L3334R.osm.pbf -o=suomi/L333.osm.pbf
osmconvert Error: node key string index overflow: 1,1997>=1518
osmconvert Error: node key string index overflow: 14,2002>=1518
osmconvert Error: node key string index overflow: 1996,2003>=1518
osmconvert suomi/W5241L.osm.pbf --out-o5m|osmconvert - suomi/W5241R.osm.pbf --out-o5m|osmconvert - suomi/W5242L.osm.pbf --out-o5m|osmconvert - suomi/W5242R.osm.pbf --out-o5m|osmconvert - suomi/W5243L.osm.pbf --out-o5m|osmconvert - suomi/W5243R.osm.pbf --out-o5m|osmconvert - suomi/W5244L.osm.pbf --out-o5m|osmconvert - suomi/W5244R.osm.pbf -o=suomi/W524.osm.pbf
osmconvert Error: node key string index overflow: 14,333>=306
osmconvert Error: node key string index overflow: 17,334>=306
osmconvert suomi/W4323L.osm.pbf --out-o5m|osmconvert - suomi/W4323R.osm.pbf --out-o5m|osmconvert - suomi/W4324L.osm.pbf --out-o5m|osmconvert - suomi/W4324R.osm.pbf -o=suomi/W432.osm.pbf
osmconvert Error: node key string index overflow: 14,325>=320
osmconvert suomi/W3441L.osm.pbf --out-o5m|osmconvert - suomi/W3441R.osm.pbf -o=suomi/W344.osm.pbf
osmconvert Error: node key string index overflow: 1,511>=203
osmconvert Error: node key string index overflow: 14,527>=203
osmconvert Error: node key string index overflow: 510,523>=203
Hämmentävä ongelma, yritän tutkia tarkemmin mistä tuo voisi johtua ja saada toistettua. Millaisella alustalla ja java-versiolla tuota ajat?
OSX
java 1.8.0_92 ja olen ajanut nyt suoraan IntelliJ:stä
➜ ~ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
jos keksit jotain lisää mistä voisi olla apua niin kerro.
Model Name: MacBook Pro
Processor Name: Intel Core i7
Processor Speed: 2,8 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 6 MB
Memory: 16 GB
Ajamalla osmconvert:ia --out-statistics noille virhettä antaville paloille pystyt löytämään tarkan tiedoston mihin tuo virheellinen stringtable on muodostunut. Ajamalla mtktogarminconverterin vain kyseiselle karttalehdelle saattaa tulla hiukan viisaammaksi, ainakin tällä tavalla pystyy tarkastelemaan paremmin mitä tapahtuu konvertterissa.
On Thu, 10 Nov 2016, 21:58 Simon Dahlbacka, [email protected] wrote:
OSX
java 1.8.0_92 ja olen ajanut nyt suoraan IntelliJ:stä
➜ ~ java -version java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
jos keksit jotain lisää mistä voisi olla apua niin kerro.
Model Name: MacBook Pro Processor Name: Intel Core i7 Processor Speed: 2,8 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Memory: 16 GB
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/pailakka/mtk2garmin/pull/14#issuecomment-259791330, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRZddEEbR_uNUFHu1Eg0CjrkLRNKx_Aks5q83dQgaJpZM4KmdRP .
yes, hyvä idea, kokeilen.
Tässä nyt listan alkupuolelta
➜ mtk2garmin git:(getting-started) ✗ osmconvert --out-statistics suomi/U5133R.osm.pbf
osmconvert Error: node key string index overflow: 1,889>=532
osmconvert Error: node key string index overflow: 14,897>=532
osmconvert Error: node key string index overflow: 888,890>=532
➜ mtk2garmin git:(getting-started) ✗ osmconvert --out-statistics suomi/U5134R.osm.pbf
osmconvert Error: node key string index overflow: 1,889>=494
osmconvert Error: node key string index overflow: 14,897>=494
osmconvert Error: node key string index overflow: 888,890>=494
Seuraavaksi varmaankin tuo convertointihärveli luomaan just noi tiedostot uudestaan ja ilmettelemään mitä se sanoo niitä tehdessä.
Nyt olen ajanut noi kaksi erikseen tyyliin
for (String fn : filenames) {
if (!fn.contains("U5134R")) {
continue;
}
...
Ja lisännyt vähän outputtia, en ole löytänyt mitään ihmeellistä.
MUTTA, nyt kun taas ajan osmconvert --out-statistics
noille niin ei enää tuu tuota herjaa. Voisiko olla joku tila joka jää siivoamatta jos ajaa enemmän kun yksi kerrallaan?
Kokeilin ajaa myös noi kaksi palaa samassa ajossa, en saanut ongelmaa toistettua.
Se on ihan hyvin mahdollista, jopa todennäköistä .
-Teemu
On Thu, 10 Nov 2016, 23:17 Simon Dahlbacka, [email protected] wrote:
Nyt olen ajanut noi kaksi erikseen tyyliin
for (String fn : filenames) { if (!fn.contains("U5134R")) { continue; }...
Ja lisännyt vähän outputtia, en ole löytänyt mitään ihmeellistä.
MUTTA, nyt kun taas ajan osmconvert --out-statistics noille niin ei enää tuu tuota herjaa. Voisiko olla joku tila joka jää siivoamatta jos ajaa enemmän kun yksi kerrallaan?
Kokeilin ajaa myös noi kaksi palaa samassa ajossa, en saanut ongelmaa toistettua.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/pailakka/mtk2garmin/pull/14#issuecomment-259809967, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRZdRdL6iTAm8ldI2DFiS6q55ptNMz0ks5q84nYgaJpZM4KmdRP .
Tämä on näköjään tarpeeksi saada virhettä toistumaan.
if (!fn.contains("/T5") && !fn.contains("/U5")) continue;
Onko hyviä ideoita mitä seuraavaksi?
Syynä tuohon taitaa olla ajatusvirhe siinä, että nyt noden tagit tallennetaan shortteina sen karttalehden stringtablen mukaan, missä node ensimmäisen kerran tuli vastaan. Jos/kun sama node tulee toistamiseen vastaan toisen karttalehden alueella, ei nuo ensimmäisen karttalehden stringtablen mukaiset string id:t enää täsmää.
Hyvinkin mysteeriseksi jää miksei tuota virhettä tullut itselläni vastaan kun vasta nyt kun muutin tuota rakennetta muutenkin järkevämmäksi. Alkuperäinen ajatusvirhe on vielä korjailematta, mutta palaan asiaan pikimmiten kun keksin toteutuskelpoisen korjauksen.
Dodiin, juuri pushatulla versiolla sain ensin toistettua ongelman omassakin ympäristössä ja parin korjauksen jälkeen ei virhettä enää näkynyt. Lopputuloskin näyttää ehjältä.
Kuulostaa hyvältä!
Mutta: Koitin päivittää uuteen masteriin, mutta tuosta StringTable
tulee käännösvirheitä. Onkohan niin että tuo on uusi tiedosto joka on lisäämättä versiohallintaan? Koitin myös crosby.binary.Osmformat.StringTable
mutta api ei täsmännyt.
Pahoittelut, tuo oli tosiaan jäänyt pois. Nyt pitäisi löytyä.