Editing PBF files for ALPR avoidance
A (step by step) guide to running the Big B-router ipynb. For offline ALPR avoidance in the Osmand mobile app.
Prereqs:
1. Conda to manage python environment, I used miniconda3, AUR link
2. Some IDE to run python notebooks (using said conda env), I used vscodium with jupyter and jupyter notebook renderer extensions
3. Java to run osmandmapcreator.jar
4?. Osmium tool should work through conda, if not you may have to manually run the commands in pbf-prep , AUR link, conda-forge
We start by creating the python environment, under the name gis-py312 (can be changed)
conda create -n gis-py312 -c conda-forge geopandas folium pyrosm pyosmium notebook ipyleaflet osmium-tool jupyter
Last tested Oct. 5 26
_openmp_mutex conda-forge/linux-64::_openmp_mutex-4.5-20_gnu _python_abi3_supp~ conda-forge/noarch::_python_abi3_support-1.0-hd8ed1ab_3 anyio conda-forge/noarch::anyio-4.15.1-pyh5ded981_1 argon2-cffi conda-forge/noarch::argon2-cffi-25.1.0-pyhd8ed1ab_0 argon2-cffi-bindi~ conda-forge/linux-64::argon2-cffi-bindings-26.1.0-py314h89acca1_2 arrow conda-forge/noarch::arrow-1.4.0-pyhcf101f3_0 asttokens conda-forge/noarch::asttokens-3.0.2-pyhd8ed1ab_0 async-lru conda-forge/noarch::async-lru-2.3.0-pyhcf101f3_0 attrs conda-forge/noarch::attrs-26.1.0-pyhcf101f3_0 babel conda-forge/noarch::babel-2.18.0-pyhcf101f3_1 backports.zstd conda-forge/noarch::backports.zstd-1.7.0-py314h680f03e_1 beautifulsoup4 conda-forge/noarch::beautifulsoup4-4.15.0-pyha770c72_0 bleach conda-forge/noarch::bleach-6.4.0-pyhcf101f3_0 bleach-with-css conda-forge/noarch::bleach-with-css-6.4.0-hac0b51c_0 blosc conda-forge/linux-64::blosc-1.21.6-he440d0b_1 branca conda-forge/noarch::branca-0.8.2-pyhd8ed1ab_0 brotli conda-forge/linux-64::brotli-1.2.0-h505cf86_4 brotli-bin conda-forge/linux-64::brotli-bin-1.2.0-h9908984_4 brotli-python conda-forge/linux-64::brotli-python-1.2.0-py314hcd2bdb6_4 bzip2 conda-forge/linux-64::bzip2-1.0.8-hda65f42_10 c-ares conda-forge/linux-64::c-ares-1.34.8-hebe6cf0_2 ca-certificates conda-forge/noarch::ca-certificates-2026.7.22-hbd8a1cb_0 cairo conda-forge/linux-64::cairo-1.18.6-h3c89d7e_0 certifi conda-forge/noarch::certifi-2026.7.22-pyhd8ed1ab_0 cffi conda-forge/linux-64::cffi-2.1.1-py314h8d76f0c_3 charset-normalizer conda-forge/linux-64::charset-normalizer-3.5.2-h1114479_0 cloudpickle conda-forge/noarch::cloudpickle-3.1.2-pyhcf101f3_1 comm conda-forge/noarch::comm-0.2.3-pyhe01879c_0 contourpy conda-forge/linux-64::contourpy-1.4.0-py314h5383ef5_1 cpython conda-forge/noarch::cpython-3.14.7-py314hd8ed1ab_106 cycler conda-forge/noarch::cycler-0.12.1-pyhcf101f3_2 cykhash conda-forge/linux-64::cykhash-2.0.1-py314ha160325_3 debugpy conda-forge/linux-64::debugpy-1.8.22-py314hf3b331d_0 defusedxml conda-forge/noarch::defusedxml-0.7.1-pyhd8ed1ab_0 executing conda-forge/noarch::executing-2.2.1-pyhd8ed1ab_0 folium conda-forge/noarch::folium-0.20.0-pyhd8ed1ab_0 font-ttf-dejavu-s~ conda-forge/noarch::font-ttf-dejavu-sans-mono-2.37-hab24e00_0 font-ttf-inconsol~ conda-forge/noarch::font-ttf-inconsolata-3.000-h77eed37_0 font-ttf-source-c~ conda-forge/noarch::font-ttf-source-code-pro-2.038-h77eed37_0 font-ttf-ubuntu conda-forge/noarch::font-ttf-ubuntu-0.83-h77eed37_3 fontconfig conda-forge/linux-64::fontconfig-2.18.3-h4db4eae_1 fonts-conda-ecosy~ conda-forge/noarch::fonts-conda-ecosystem-1-0 fonts-conda-forge conda-forge/noarch::fonts-conda-forge-1-hc364b38_1 fonttools conda-forge/linux-64::fonttools-4.66.1-py314hd42368d_0 fqdn conda-forge/noarch::fqdn-1.6.0-pyh5ded981_0 freetype conda-forge/linux-64::freetype-2.14.3-ha770c72_2 freexl conda-forge/linux-64::freexl-2.0.0-h1f12c17_3 fribidi conda-forge/linux-64::fribidi-1.0.17-h7cc23a3_0 geopandas conda-forge/noarch::geopandas-1.2.0-pyhd8ed1ab_0 geopandas-base conda-forge/noarch::geopandas-base-1.2.0-pyha770c72_0 geos conda-forge/linux-64::geos-3.14.1-h55b0958_0 giflib conda-forge/linux-64::giflib-6.1.3-hebe6cf0_2 graphite2 conda-forge/linux-64::graphite2-1.3.15-h54a6638_1 h11 conda-forge/noarch::h11-0.16.0-pyhcf101f3_1 h2 conda-forge/noarch::h2-4.4.1-pyhcf101f3_0 hpack conda-forge/noarch::hpack-4.2.0-pyhd8ed1ab_0 httpcore conda-forge/noarch::httpcore-1.0.9-pyh29332c3_0 httpx conda-forge/noarch::httpx-0.28.1-pyhd8ed1ab_0 hyperframe conda-forge/noarch::hyperframe-6.1.0-pyhd8ed1ab_0 icu conda-forge/linux-64::icu-78.3-py310h44b86e0_2 idna conda-forge/noarch::idna-3.20-pyh5ded981_0 importlib-metadata conda-forge/noarch::importlib-metadata-9.0.1-pyhcf101f3_0 ipykernel conda-forge/noarch::ipykernel-7.4.0-pyh4a3486f_0 ipyleaflet conda-forge/noarch::ipyleaflet-0.20.0-pyhd8ed1ab_0 ipython conda-forge/noarch::ipython-9.17.1-pyh53cf698_0 ipython_pygments_~ conda-forge/noarch::ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0 ipywidgets conda-forge/noarch::ipywidgets-8.1.9-pyhd8ed1ab_0 isoduration conda-forge/noarch::isoduration-20.11.0-pyhd8ed1ab_1 jedi conda-forge/noarch::jedi-0.20.0-pyhcf101f3_0 jinja2 conda-forge/noarch::jinja2-3.1.6-pyhcf101f3_1 joblib conda-forge/noarch::joblib-1.6.0-pyhcf101f3_0 json-c conda-forge/linux-64::json-c-0.18-hebe6cf0_2 json5 conda-forge/noarch::json5-0.15.0-pyhd8ed1ab_0 jsonpointer conda-forge/noarch::jsonpointer-3.1.1-pyhcf101f3_0 jsonschema conda-forge/noarch::jsonschema-4.26.0-pyhcf101f3_1 jsonschema-specif~ conda-forge/noarch::jsonschema-specifications-2025.9.1-pyhcf101f3_0 jsonschema-with-f~ conda-forge/noarch::jsonschema-with-format-nongpl-4.26.0-hcf101f3_1 jupyter conda-forge/noarch::jupyter-1.1.1-pyhd8ed1ab_1 jupyter-builder conda-forge/noarch::jupyter-builder-1.2.3-pyh5ded981_0 jupyter-lsp conda-forge/noarch::jupyter-lsp-2.3.1-pyhcf101f3_0 jupyter_client conda-forge/noarch::jupyter_client-8.10.0-pyhcf101f3_0 jupyter_console conda-forge/noarch::jupyter_console-6.6.3-pyhd8ed1ab_1 jupyter_core conda-forge/noarch::jupyter_core-5.9.1-pyhc90fa1f_0 jupyter_events conda-forge/noarch::jupyter_events-0.12.1-pyhcf101f3_0 jupyter_leaflet conda-forge/noarch::jupyter_leaflet-0.20.0-pyhd8ed1ab_0 jupyter_server conda-forge/noarch::jupyter_server-2.21.1-pyh5ded981_0 jupyter_server_te~ conda-forge/noarch::jupyter_server_terminals-0.5.4-pyhcf101f3_0 jupyterlab conda-forge/noarch::jupyterlab-4.6.4-pyhd8ed1ab_0 jupyterlab_pygmen~ conda-forge/noarch::jupyterlab_pygments-0.3.0-pyhd8ed1ab_2 jupyterlab_server conda-forge/noarch::jupyterlab_server-2.28.1-pyh5ded981_0 jupyterlab_widgets conda-forge/noarch::jupyterlab_widgets-3.0.17-pyhcf101f3_0 keyutils conda-forge/linux-64::keyutils-1.6.3-h7cc23a3_1 kiwisolver conda-forge/linux-64::kiwisolver-1.5.1-py314h5383ef5_3 krb5 conda-forge/linux-64::krb5-1.22.2-hbc21106_2 lark conda-forge/noarch::lark-1.3.1-pyhd8ed1ab_0 lcms2 conda-forge/linux-64::lcms2-2.19.1-h9073bf1_3 ld_impl_linux-64 conda-forge/linux-64::ld_impl_linux-64-2.46.1-default_hbd61a6d_102 lerc conda-forge/linux-64::lerc-4.2.0-hdb68285_0 libabseil conda-forge/linux-64::libabseil-20260526.0-cxx17_h0dc7533_2 libarchive conda-forge/linux-64::libarchive-3.8.9-gpl_h3152399_101 libblas conda-forge/linux-64::libblas-3.11.0-11_h4a7cf45_openblas libboost conda-forge/linux-64::libboost-1.90.0-h1101c1b_3 libbrotlicommon conda-forge/linux-64::libbrotlicommon-1.2.0-h39a168f_4 libbrotlidec conda-forge/linux-64::libbrotlidec-1.2.0-ha411449_4 libbrotlienc conda-forge/linux-64::libbrotlienc-1.2.0-h018ffa1_4 libcblas conda-forge/linux-64::libcblas-3.11.0-11_h0358290_openblas libcurl conda-forge/linux-64::libcurl-8.22.0-ha042cf0_0 libdeflate conda-forge/linux-64::libdeflate-1.25-hd45a770_1 libedit conda-forge/linux-64::libedit-3.1.20250104-pl5321h373387f_1 libev conda-forge/linux-64::libev-4.33-h280c20c_3 libexpat conda-forge/linux-64::libexpat-2.8.5-hd2095e1_0 libffi conda-forge/linux-64::libffi-3.7.0-h81df57d_1 libfreetype conda-forge/linux-64::libfreetype-2.14.3-ha770c72_2 libfreetype6 conda-forge/linux-64::libfreetype6-2.14.3-h5e6c136_2 libgcc conda-forge/linux-64::libgcc-16.2.0-ha9f2e26_7 libgcc-ng conda-forge/linux-64::libgcc-ng-16.2.0-h69a702a_7 libgdal-core conda-forge/linux-64::libgdal-core-3.13.3-h7fa801c_3 libgfortran conda-forge/linux-64::libgfortran-16.2.0-h69a702a_7 libgfortran5 conda-forge/linux-64::libgfortran5-16.2.0-h6b99dfc_7 libglib conda-forge/linux-64::libglib-2.90.0-h569388d_0 libgomp conda-forge/linux-64::libgomp-16.2.0-he0feb66_7 libharfbuzz conda-forge/linux-64::libharfbuzz-14.5.1-h23af247_0 libhwy conda-forge/linux-64::libhwy-1.4.0-h57c4cff_2 libiconv conda-forge/linux-64::libiconv-1.18-h0cb94f2_3 libjpeg-turbo conda-forge/linux-64::libjpeg-turbo-3.2.0-hb03c661_1 libjxl conda-forge/linux-64::libjxl-0.12.0-heb2dce7_4 libkml conda-forge/linux-64::libkml-1.3.0-haa4a5bd_1023 liblapack conda-forge/linux-64::liblapack-3.11.0-11_h47877c9_openblas liblzma conda-forge/linux-64::liblzma-5.8.3-hb03c661_1 libmpdec conda-forge/linux-64::libmpdec-4.0.0-hb03c661_2 libnghttp2 conda-forge/linux-64::libnghttp2-1.68.1-h74cf4be_1 libnsl conda-forge/linux-64::libnsl-2.0.1-hb9d3cd8_1 libopenblas conda-forge/linux-64::libopenblas-0.3.34-pthreads_hf13c14d_2 libpng conda-forge/linux-64::libpng-1.6.59-h922cc85_0 libpsl conda-forge/linux-64::libpsl-0.23.1-hd9e3e90_1 libpython conda-forge/linux-64::libpython-3.14.7-hdc7f604_106_cp314 libraqm conda-forge/linux-64::libraqm-0.11.0-h6406941_0 librttopo conda-forge/linux-64::librttopo-1.1.0-h55b0958_21 libsodium conda-forge/linux-64::libsodium-1.0.22-hebe6cf0_3 libspatialite conda-forge/linux-64::libspatialite-5.1.0-gpl_h2988700_122 libsqlite conda-forge/linux-64::libsqlite-3.53.4-h0737f62_102 libssh2 conda-forge/linux-64::libssh2-1.11.1-h6154650_1 libstdcxx conda-forge/linux-64::libstdcxx-16.2.0-h934c35e_7 libstdcxx-ng conda-forge/linux-64::libstdcxx-ng-16.2.0-hdf11a46_7 libtiff conda-forge/linux-64::libtiff-4.7.2-hcc2c06a_1 libuuid conda-forge/linux-64::libuuid-2.42.4-hcfc3c73_0 libwebp-base conda-forge/linux-64::libwebp-base-1.6.0-hd42ef1d_1 libxcb conda-forge/linux-64::libxcb-1.17.0-hb83e432_2 libxml2 conda-forge/linux-64::libxml2-2.15.4-h7df9aa5_0 libxml2-16 conda-forge/linux-64::libxml2-16-2.15.4-hf3af7cc_0 libxml2-devel conda-forge/linux-64::libxml2-devel-2.15.4-h7df9aa5_0 libzlib conda-forge/linux-64::libzlib-1.3.2-h25fd6f3_3 lz4-c conda-forge/linux-64::lz4-c-1.10.0-hee9eb32_2 lzo conda-forge/linux-64::lzo-2.10-hebe6cf0_1003 mapclassify conda-forge/noarch::mapclassify-2.11.0-pyhd8ed1ab_0 markupsafe conda-forge/linux-64::markupsafe-3.0.4-py314hd42368d_0 matplotlib-base conda-forge/linux-64::matplotlib-base-3.11.2-py314h9124352_1 matplotlib-inline conda-forge/noarch::matplotlib-inline-0.2.2-pyhd8ed1ab_0 minizip conda-forge/linux-64::minizip-4.2.2-haac24f3_1 mistune conda-forge/noarch::mistune-3.3.4-pyhcf101f3_0 munkres conda-forge/noarch::munkres-1.1.4-pyhd8ed1ab_1 muparser conda-forge/linux-64::muparser-2.3.5-hee9eb32_1 narwhals conda-forge/noarch::narwhals-2.27.0-pyh5ded981_0 nbclient conda-forge/noarch::nbclient-0.11.0-pyhcf101f3_1 nbconvert-core conda-forge/noarch::nbconvert-core-7.17.1-pyhcf101f3_0 nbformat conda-forge/noarch::nbformat-5.11.1-pyhcf101f3_0 ncurses conda-forge/linux-64::ncurses-6.6-hdb14827_1 nest-asyncio2 conda-forge/noarch::nest-asyncio2-1.7.3-pyh5ded981_0 networkx conda-forge/noarch::networkx-3.7-pyhc364b38_0 notebook conda-forge/noarch::notebook-7.6.3-pyh5ded981_0 notebook-shim conda-forge/noarch::notebook-shim-0.2.4-pyhd8ed1ab_1 numpy conda-forge/linux-64::numpy-2.5.3-py314hd3a7d6b_0 openjpeg conda-forge/linux-64::openjpeg-2.5.4-heb1ab33_2 openssl conda-forge/linux-64::openssl-3.6.5-h781a0a9_0 osmium-tool conda-forge/linux-64::osmium-tool-1.19.1-h7ac1ec8_0 overrides conda-forge/noarch::overrides-7.7.0-pyhd8ed1ab_1 packaging conda-forge/noarch::packaging-26.3-pyhc364b38_0 pandas conda-forge/linux-64::pandas-3.0.6-np2py314h9e1d7c2_0 pandocfilters conda-forge/noarch::pandocfilters-1.5.1-pyh5ded981_0 parso conda-forge/noarch::parso-0.8.7-pyhcf101f3_0 pcre2 conda-forge/linux-64::pcre2-10.47-h8b3dc9c_1 pexpect conda-forge/noarch::pexpect-4.9.0-pyhd8ed1ab_1 pillow conda-forge/linux-64::pillow-12.3.0-py314h50bfbbb_4 pip conda-forge/noarch::pip-26.2.1-pyh145f28c_0 pixman conda-forge/linux-64::pixman-0.46.4-h54a6638_3 platformdirs conda-forge/noarch::platformdirs-4.12.3-pyh5ded981_0 proj conda-forge/linux-64::proj-9.9.0-h3767062_0 prometheus_client conda-forge/noarch::prometheus_client-0.26.0-pyhd8ed1ab_0 prompt-toolkit conda-forge/noarch::prompt-toolkit-3.0.53-pyha770c72_0 prompt_toolkit conda-forge/noarch::prompt_toolkit-3.0.53-hd8ed1ab_0 protobuf conda-forge/linux-64::protobuf-7.35.1-py314h0469dc4_3 psutil conda-forge/linux-64::psutil-7.2.2-py314hfe1a184_3 pthread-stubs conda-forge/linux-64::pthread-stubs-0.4-h7cc23a3_1004 ptyprocess conda-forge/noarch::ptyprocess-0.7.0-pyhd8ed1ab_1 pure_eval conda-forge/noarch::pure_eval-0.2.4-pyhd8ed1ab_0 pycparser conda-forge/noarch::pycparser-3.0-pyhcf101f3_0 pygments conda-forge/noarch::pygments-2.21.0-pyhcf101f3_0 pyogrio conda-forge/linux-64::pyogrio-0.13.0-py314hab130c5_0 pyosmium conda-forge/linux-64::pyosmium-4.3.1-py314he8f858b_1 pyparsing conda-forge/noarch::pyparsing-3.3.3-pyh5ded981_0 pyproj conda-forge/linux-64::pyproj-3.8.0-py314h08533f4_2 pyrosm conda-forge/linux-64::pyrosm-0.15.0-py314hc75f4c6_0 pysocks conda-forge/noarch::pysocks-1.7.1-pyha55dd90_7 python conda-forge/linux-64::python-3.14.7-hcd007b5_106_cp314 python-abi3 conda-forge/noarch::python-abi3-3.14-hab9af60_3 python-dateutil conda-forge/noarch::python-dateutil-2.9.0.post0-pyhe01879c_2 python-fastjsonsc~ conda-forge/noarch::python-fastjsonschema-2.22.2-pyhcf101f3_0 python-gil conda-forge/noarch::python-gil-3.14.7-h4df99d1_106 python-json-logger conda-forge/noarch::python-json-logger-4.2.0-pyhd8ed1ab_0 python-rapidjson conda-forge/linux-64::python-rapidjson-1.25-py314hc75f4c6_1 python-tzdata conda-forge/noarch::python-tzdata-2026.5-pyh5ded981_0 python_abi conda-forge/noarch::python_abi-3.14-9_cp314 pyyaml conda-forge/linux-64::pyyaml-6.0.3-py314h67df5f8_1 pyzmq conda-forge/linux-64::pyzmq-27.2.0-py312h8a5ba0d_2 qhull conda-forge/linux-64::qhull-2020.2-h434a139_5 readline conda-forge/linux-64::readline-8.3-hd6e31c0_1 referencing conda-forge/noarch::referencing-0.37.0-pyhcf101f3_0 requests conda-forge/noarch::requests-2.34.2-pyhcf101f3_0 rfc3339-validator conda-forge/noarch::rfc3339-validator-0.1.4-pyhd8ed1ab_1 rfc3986-validator conda-forge/noarch::rfc3986-validator-0.1.1-pyh9f0ad1d_0 rfc3987-syntax conda-forge/noarch::rfc3987-syntax-1.1.0-pyhe01879c_1 rpds-py conda-forge/linux-64::rpds-py-2026.9.1-py314h7e8cd81_0 scikit-learn conda-forge/linux-64::scikit-learn-1.9.1-np2py314h9e1d7c2_1 scipy conda-forge/linux-64::scipy-1.18.1-py314h36f0660_1 send2trash conda-forge/noarch::send2trash-2.1.0-pyha191276_1 setuptools conda-forge/noarch::setuptools-84.0.0-pyh332efcf_0 shapely conda-forge/linux-64::shapely-2.1.2-py314he501186_3 six conda-forge/noarch::six-1.17.0-pyhe01879c_1 snappy conda-forge/linux-64::snappy-1.2.2-h34e00bb_2 sniffio conda-forge/noarch::sniffio-1.3.1-pyhd8ed1ab_2 soupsieve conda-forge/noarch::soupsieve-2.10-pyhd8ed1ab_0 sqlite conda-forge/linux-64::sqlite-3.53.4-h6e79ffa_102 stack_data conda-forge/noarch::stack_data-0.6.3-pyhd8ed1ab_1 terminado conda-forge/noarch::terminado-0.18.1-pyhc90fa1f_1 threadpoolctl conda-forge/noarch::threadpoolctl-3.7.0-pyhc455866_0 tinycss2 conda-forge/noarch::tinycss2-1.4.0-pyhd8ed1ab_0 tk conda-forge/linux-64::tk-8.6.13-noxft_h1df4ec4_4 tomli conda-forge/noarch::tomli-2.4.1-pyhcf101f3_0 tornado conda-forge/linux-64::tornado-6.5.10-py314h89acca1_0 traitlets conda-forge/noarch::traitlets-5.16.1-pyhcf101f3_0 traittypes conda-forge/noarch::traittypes-0.2.3-pyh332efcf_0 typing-extensions conda-forge/noarch::typing-extensions-4.16.0-h69aa097_0 typing_extensions conda-forge/noarch::typing_extensions-4.16.0-pyhcf101f3_0 typing_utils conda-forge/noarch::typing_utils-0.1.0-pyhd8ed1ab_1 tzdata conda-forge/noarch::tzdata-2026c-h151e31d_0 uri-template conda-forge/noarch::uri-template-1.3.0-pyhd8ed1ab_1 uriparser conda-forge/linux-64::uriparser-0.9.8-hac33072_0 urllib3 conda-forge/noarch::urllib3-2.8.0-pyhd8ed1ab_0 wcwidth conda-forge/linux-64::wcwidth-0.9.2-py311hd139983_0 webcolors conda-forge/noarch::webcolors-25.10.0-pyhd8ed1ab_0 webencodings conda-forge/noarch::webencodings-0.5.1-pyhd8ed1ab_3 websocket-client conda-forge/noarch::websocket-client-1.9.2-pyh5ded981_1 widgetsnbextension conda-forge/noarch::widgetsnbextension-4.0.16-pyhd8ed1ab_0 xerces-c conda-forge/linux-64::xerces-c-3.3.0-h78fed68_2 xorg-libice conda-forge/linux-64::xorg-libice-1.1.2-h280c20c_0 xorg-libsm conda-forge/linux-64::xorg-libsm-1.2.6-h0d788c3_1 xorg-libx11 conda-forge/linux-64::xorg-libx11-1.8.13-he1eb515_1 xorg-libxau conda-forge/linux-64::xorg-libxau-1.0.12-h7cc23a3_2 xorg-libxdmcp conda-forge/linux-64::xorg-libxdmcp-1.1.5-h7cc23a3_2 xorg-libxext conda-forge/linux-64::xorg-libxext-1.3.7-h7cc23a3_1 xorg-libxrender conda-forge/linux-64::xorg-libxrender-0.9.12-hb03c661_1 xyzservices conda-forge/noarch::xyzservices-2026.9.1-pyhd8ed1ab_0 yaml conda-forge/linux-64::yaml-0.2.5-hebe6cf0_3 zeromq conda-forge/linux-64::zeromq-4.3.5-h901266b_12 zipp conda-forge/noarch::zipp-4.1.1-pyh5ded981_0 zlib conda-forge/linux-64::zlib-1.3.2-h25fd6f3_3 zlib-ng conda-forge/linux-64::zlib-ng-2.3.3-hce19668_1 zstd conda-forge/linux-64::zstd-1.5.7-hb78ec9c_7
Clone or unzip the files from github
Download the osm.pbf file for your state through geofabrik.de
Open the python notebook pbf-prep.ipynb, and set the kernel to the one we created gis-py312
Run the first cell
Select a bounding box around the area of interest
The map file expands a lot when loaded into memory.No longer the case.
- Converting from pbf to obf is slower for larger files.
Adjust startingfile to point to the file you downloaded from geofabrike.de
rename outputfile if you want
and run the cell
Open the python notebook big-b-router.ipynb
Run the first cell to import libraries and define functions
Edit the filenames to match what was created with pbf-prep.ipynb
Run the second cell to load in the ALPR data
Run the third cell to create the projection of the ALPRs
\‾‾‾|‾‾‾/ |\ | /| | \_|_/ | _|_ is the angle |__\|/__| __ __ is the base width (m) | / | in the middle is the direction / is the vis range (m)
Run the fourth cell to load in the road data
This uses a bit of ram. Probably around 3~4GB
Run the fifth cell to determine which ID’s to drop/edit
Adjust the output filename, if desired
Run the last cell to generate the new pbf file
Now we transition to osmandmapcreator. dl link
Download, unzip, and navigate to the folder containing OsmAndMapCreator.jar
Run java -jar -Xms1G -Xmx6G OsmAndMapCreator.jar
The -Xmx6G sets the maximum RAM amount to 6GB (it will use more RAM than needed if you set this too high)
6GB should be enough for most use cases
The file will be output to the “specified working directory”
Which is likely ~/osmand/
Select the output file from big-b-router.ipynb and wait for it to process (takes a while)
Once complete move/copy the .obf file to your phone
Within the osmand app import the obf file and you now have offline anti-ALPR routing.
Benefits of using Osmand:
- cross platform (ios & android)
- android auto/carplay (in the paid version)
- course correction/re-routing
- turn-by-turn directions
- works fully offline
- deep ui customization
- routing customization
- plugins
- privacy respecting (downloadable from F-droid)
- open source!
Downsides of Osmand:
- lack of traffic data (not compatible with privacy respecting)
- too many customization options is intimidating
Check out the BC (Bad Cams) articles to see how to OSM data can be improved.










