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

  1. The map file expands a lot when loaded into memory. No longer the case.
  2. 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.