The following instructions explain how to create a Nominatim database
from an OSM planet file and how to keep the database up to date. It
-is assumed that you have already sucessfully installed the Nominatim
+is assumed that you have already successfully installed the Nominatim
software itself, if not return to the [installation page](Installation.md).
Configuration setup in settings/local.php
OSM housenumber data in the US. You can add TIGER data to your own Nominatim
instance by following these steps:
- 1. Install the GDAL library and python bindings
+ 1. Install the GDAL library and python bindings and the unzip tool
- * Ubuntu: `sudo apt-get install python-gdal`
- * CentOS: `sudo yum install gdal-python`
+ * Ubuntu: `sudo apt-get install python-gdal unzip`
+ * CentOS: `sudo yum install gdal-python unzip`
2. Get the TIGER 2015 data. You will need the EDGES files
(3,234 zip files, 11GB total). Choose one of the two sources:
=======
There are many different possibilities to update your Nominatim database.
-The following section describes how to keep it up-to-date with osmosis.
+The following section describes how to keep it up-to-date with Pyosmium.
For a list of other methods see the output of `./utils/update.php --help`.
-Installing the newest version of osmosis
-----------------------------------------
+Installing the newest version of Pyosmium
+-----------------------------------------
+
+It is recommended to install Pyosmium via pip:
+
+ pip install --user osmium
-The version of osmosis that comes with your distribution should be sufficient
-in most cases.
+Nominatim needs a tool called `pyosmium-get-updates` that comes with
+Pyosmium. You need to tell Nominatim where to find it. Add the
+following line to your `settings/local.php`:
-If you want to install it by hand, get the latest version from the
-[Osmosis website](http://wiki.openstreetmap.org/wiki/Osmosis). Then
-tell Nominatim to use this version by adding the following line to
-your `settings/local.php`:
+ @define('CONST_Pyosmium_Binary', '/home/user/.local/bin/pyosmium-get-changes');
- @define('CONST_Osmosis_Binary', '/usr/local/bin/osmosis');
+The path above is fine if you used the `--user` parameter with pip.
+Replace `user` with your user name.
Setting up the update process
-----------------------------
// base URL of the replication service
@define('CONST_Replication_Url', 'http://download.geofabrik.de/europe/ireland-and-northern-ireland-updates');
- // Process each update separately, osmosis cannot merge multiple updates
- @define('CONST_Replication_MaxInterval', '40000');
// How often upstream publishes diffs
@define('CONST_Replication_Update_Interval', '86400');
// How long to sleep if no update found yet
@define('CONST_Replication_Recheck_Interval', '900');
+To set up the update process now run the following command:
-Delete any existing `settings/configuration.txt`, then run the following command
-to create the osmosis configuration files:
-
- ./utils/setup.php --osmosis-init
-
-Enabling hierarchical updates
------------------------------
+ ./utils/update --init-updates
-When a place is updated in the database, all places that contain this place
-in their address need to be updated as well. These hierarchical updates are
-disabled by default because they slow down the initial import.
-Enable them with the following command:
+It outputs the date where updates will start. Recheck that this date is
+what you expect.
- ./utils/setup.php --create-functions --enable-diff-updates
+The --init-updates command needs to be rerun whenever the replication service
+is changed.
Updating Nominatim
------------------
The following command will keep your database constantly up to date:
- ./utils/update.php --import-osmosis-all --no-npi
+ ./utils/update.php --import-osmosis-all
If you have imported multiple country extracts and want to keep them
up-to-date, have a look at the script in
-[issue #60](https://github.com/twain47/Nominatim/issues/60).
+[issue #60](https://github.com/openstreetmap/Nominatim/issues/60).