Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generating segments by process_pbf_planet.sh fails #691

Open
MarekSven opened this issue Apr 24, 2024 · 5 comments
Open

Generating segments by process_pbf_planet.sh fails #691

MarekSven opened this issue Apr 24, 2024 · 5 comments

Comments

@MarekSven
Copy link

Hi all,

I was trying to generate my own segments with just a subset of elements so that the size of segments is smaller.

For my initial attempts I downloaded a map of Germany from https://download.geofabrik.de/ and run the script with this.

Running the script fails with:
Exception occurred: we need one lat/lon point at least!

Inspecting the code a bit it seems to me that it has to fail on the following lines of the script:
${JAVA} -jar ${BROUTER_JAR} segments 16.917636 51.040949 seed 0 ${BROUTER_PROFILES}/car-traffic_analysis.brf

Lat and lon are provided as arg[2] and arg[3] with this line, while BRouter.java expectes a pair of lat and lon as a single arg[4].
Maybe I am missing something but I do not have a clue how this could ever work?

What is a purpose of those lines with car-traffic_analysis.brf?

Nevertheless, at the time of failure, after all the way-cutting, node-cutting and way-linking, all the generated subdirectories of the ./tmp directory are empty, with the exception of ./tmp/nodetiles.

@noname09051989
Copy link

I am facing the same issue and just stumbled across this issue.

I tried to run the process_pbf_planet.sh directly in Ubuntu OS. Creating the fatJar worked fine. However, when running the segment creation process no segment files are generated.

Looking forward for a short feedback. :)

@afischerdev
Copy link
Collaborator

Please use only the short form;

...
JDBC="jdbc:postgresql://localhost/osm?user=postgres&password=xyz&ssl=false"

${JAVA} -cp ../postgresql-42.6.0.jar:../brouter.jar -Ddeletetmpfiles=true -DuseDenseMaps=true  btools.mapcreator.OsmFastCutter ../lookups.dat nodetiles waytiles nodes55 waytiles55  bordernids.dat  relations.dat  restrictions.dat  ../all.brf ../trekking.brf ../softaccess.brf ../planet-new.osm.pbf $(JDBC)

rm ../planet-latest.osm.pbf
mv ../planet-new.osm.pbf ../planet-latest.osm.pbf

mkdir unodes55
${JAVA} -cp ../brouter.jar -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.PosUnifier nodes55 unodes55 bordernids.dat bordernodes.dat /srtm3_bef

mkdir segments
${JAVA} -cp ../brouter.jar -DuseDenseMaps=true -DskipEncodingCheck=true btools.mapcreator.WayLinker unodes55 waytiles55 bordernodes.dat restrictions.dat ../lookups.dat ../all.brf segments rd5

...

The traffic is now done via the database generator, please see here and database generation

And yes, we need an update for the documention and the script.

@MarekSven
Copy link
Author

Thank you for your reply. I am trying to continue based on the information on https://github.com/abrensch/brouter/blob/master/misc/scripts/mapcreation/readme_database.md.

As someone who has never used postgres on Linux, I would like to know what kind of command-line tool is "postgres".
There seems to be just "psql".
Typing "postgres" in bash fails, no matter what user I log in (sudo su) as.
Ok, so assumed it is just a typo.
I managed to create the "osm" db, granted access to it for my user "developer" in pgAdmin, launched the "import to database and create" command and got:

postgres@debian11:/home/developer/Dev/github/brouter/misc/scripts/mapcreation$ osm2pgsql -c -s -d osm -U developer -W -H localhost -P 5432 -O flex -S brouter_cfg.lua /home/developer/brouter/germany-latest.osm.pbf

2024-04-26 12:02:29  osm2pgsql version 1.4.1
Password:
2024-04-26 12:02:35  Database version: 13.14 (Debian 13.14-0+deb11u1)
2024-04-26 12:02:35  PostGIS version: 3.1
2024-04-26 12:02:35  Node-cache: cache=800MB, maxblocks=12800*65536, allocation method=11
2024-04-26 12:02:35  node cache: stored: 83244(100.00%), storage efficiency: 47.69% (dense blocks: 1, sparse nodes: 83181), hit rate: 0.00%
2024-04-26 12:02:35  ERROR: Failed to execute Lua function 'osm2pgsql.process_node': brouter_cfg.lua:121: unknown field 'as_point'
stack traceback:
	[C]: in function 'error'
	[string "..."]:178: in metamethod '__index'
	brouter_cfg.lua:121: in function <brouter_cfg.lua:112>.

@MarekSven
Copy link
Author

Ok, due to this: https://stackoverflow.com/questions/75687110/lua-config-throwing-error-in-metamethods , it seems a version 1.6.0 of osm2pgsql is required.

@zod
Copy link
Collaborator

zod commented Apr 26, 2024

For a first creation of segment data you can leave out the traffic estimations to get you started. @mjaschen also created a docker image which simplifies the creation of segment data.

I already have some ideas how we could simplify the creation and will create a PR soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants