GeoHelm/docs/components/osm2pgsql/index.rst

215 lines
6.7 KiB
ReStructuredText

.. This is a comment. Note how any initial comments are moved by
transforms to after the document title, subtitle, and docinfo.
.. demo.rst from: http://docutils.sourceforge.net/docs/user/rst/demo.txt
.. |EXAMPLE| image:: static/yi_jing_01_chien.jpg
:width: 1em
**********************
osm2pgsql
**********************
.. contents:: Table of Contents
OSM Loader Tool
=================
There are two ways to load OSM file into PostGIS.
1. Load using the OSM Loader in Webmin.
2. Load using command line.
.. Note:: In our examples, we will be loading the PBF for Andorra available from GeoFabrik (https://download.geofabrik.de/europe/andorra.html).
Load via OSM File Loader
==========================
Click the osm2pgsql tab as shown below
.. image:: _static/osm2pgsql-tab.png
The load options are displayed below.
.. image:: _static/OSM-default.png
For our example, we'll load the smallest PDF availabel from GeoFabrick, Andorra
**1. Go to the Europe section of the GeoFabrik Download Server:**
https://download.geofabrik.de/europe.html
**2. Locate the file for Andorra**
.. image:: _static/osm-Andorra.png
.. image:: _static/spacer.png
**3. On the PBF link, right click and select "Copy Link Location"**
.. image:: _static/osm-Andorra-2.png
.. image:: _static/spacer.png
**4. Paste the copied link into the 'FTP or HTTP URL' field**
.. image:: _static/OSM-main.png
- For database, select postgisftw.
- For user, select pgis
- For EPSG Projection, enter 4326
- Select both the Slim and Hstore options
**5. Click the Load button**
Confirm Data Load
==================
If we examine the tables in our postgisftw database, we see that 4 new tables were added:
.. image:: _static/OSM-feature-view.png
We can also now view our data using pg_featursrv (or pg_tileserv)
Go to :9000 and note that 4 items have been added to the available Feature Collections (Line, Point, Polygon, and Roads):
.. image:: _static/OSM-feature-1.png
.. image:: _static/spacer.png
Click the View link for the Polygon:
.. image:: _static/OSM-feature-2.png
The layer is displayed as below
.. image:: _static/OSM-feature-3.png
.. image:: _static/spacer.png
OSM Tool Options
==================
**1. General Options**
*Database*: select the database you wish to load the shape file to.
*Database Username*: The postgres user who will load the file.
*Schema*: Select a schema from the drop-down or create a new schema.
*OSM source (.pbf)*: The options are Local file, Uploaded file, or FTP or HTTP URL
**2. Load options**:
*Store temporary data in the database ( --slim )*: Enable the slim option
*Add tags without column to an additional hstore (key/value) column ( --hstore )*
*Coordinate format*: Options are Mercator or Lat&Lon
*EPSG Projection*: Set ESPG projection (e.g. 4326)
*Memory for caching nodes*: Default options are 200 MB, 800 MB, 1000 MB, along with increments depending on available RAM.
*Number of parallel processes*: The drop-down will display the number available based on your hardware.
Load via Comamnd Line
=====================
Usage
To load the same PBF we loaded above via osm2pgsql command line, we could use below:
.. code-block:: console
osm2pgsql --slim --hstore -C 200 --username postgres --database demodb /opt/rhode-island-latest.osm.pbf
The full usage commands are show in the help section below.
osm2pgsql usage can be found using the 'osm2pgsl --help' command:
.. code-block:: console
[root@postgis ~]# osm2pgsql --help
osm2pgsql: /usr/pgsql-12/lib/libpq.so.5: no version information available (required by osm2pgsql)
osm2pgsql version 1.2.0
Usage:
osm2pgsql [options] planet.osm
osm2pgsql [options] planet.osm.{pbf,gz,bz2}
osm2pgsql [options] file1.osm file2.osm file3.osm
This will import the data from the OSM file(s) into a PostgreSQL database
suitable for use by the Mapnik renderer.
Common options:
-a|--append Add the OSM file into the database without removing
existing data.
-c|--create Remove existing data from the database. This is the
default if --append is not specified.
-l|--latlong Store data in degrees of latitude & longitude.
-m|--merc Store data in proper spherical mercator (default).
-E|--proj num Use projection EPSG:num.
-s|--slim Store temporary data in the database. This greatly
reduces the RAM usage but is much slower. This switch is
required if you want to update with --append later.
-S|--style Location of the style file. Defaults to
/usr/share/osm2pgsql/default.style.
-C|--cache Use up to this many MB for caching nodes (default: 800)
-F|--flat-nodes Specifies the flat file to use to persistently store node
information in slim mode instead of in PostgreSQL.
This file is a single > 40Gb large file. Only recommended
for full planet imports. Default is disabled.
Database options:
-d|--database The name of the PostgreSQL database to connect to.
-U|--username PostgreSQL user name (specify passsword in PGPASSWORD
environment variable or use -W).
-W|--password Force password prompt.
-H|--host Database server host name or socket location.
-P|--port Database server port.
A typical command to import a full planet is
osm2pgsql -c -d gis --slim -C <cache size> -k \
--flat-nodes <flat nodes> planet-latest.osm.pbf
where
<cache size> should be equivalent to the size of the
pbf file to be imported if there is enough RAM
or about 75% of memory in MB on machines with less
<flat nodes> is a location where a 50+GB file can be saved.
A typical command to update a database imported with the above command is
osmosis --rri workingDirectory=<osmosis dir> --simc --wxc - \
| osm2pgsql -a -d gis --slim -k --flat-nodes <flat nodes> -r xml -
where
<flat nodes> is the same location as above.
<osmosis dir> is the location osmosis replication was initialized to.
Run osm2pgsql --help --verbose (-h -v) for a full list of options.
Troubleshooting
===============
If the above commands produce 'osm2pgsql command not found', close your existing SSH session and create a new one.
Documentation
=============
Below are resources to get started with ogr2ogr and gdal_translate:
* `OSM OSM2PGSQL Wiki`_
* `Learn OSM Website: OSM2PGSQL`_
.. _`OSM OSM2PGSQL Wiki`: https://wiki.openstreetmap.org/wiki/Osm2pgsql
.. _`Learn OSM Website: OSM2PGSQL`: https://learnosm.org/en/osm-data/osm2pgsql/