mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Enhanced the implementation of OSM views GeoTIFF import functionality
This commit is contained in:
committed by
Sarah Hoffmann
parent
c85b74497b
commit
ac467c7a2d
@@ -75,7 +75,11 @@ def setup_database_skeleton(dsn: str, rouser: Optional[str] = None) -> None:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute('CREATE EXTENSION IF NOT EXISTS hstore')
|
||||
cur.execute('CREATE EXTENSION IF NOT EXISTS postgis')
|
||||
cur.execute('CREATE EXTENSION IF NOT EXISTS postgis_raster')
|
||||
|
||||
postgis_version = conn.postgis_version_tuple()
|
||||
if postgis_version[0] >= 3:
|
||||
cur.execute('CREATE EXTENSION IF NOT EXISTS postgis_raster')
|
||||
|
||||
conn.commit()
|
||||
|
||||
_require_version('PostGIS',
|
||||
@@ -247,8 +251,3 @@ def create_search_indices(conn: Connection, config: Configuration,
|
||||
|
||||
sql.run_parallel_sql_file(config.get_libpq_dsn(),
|
||||
'indices.sql', min(8, threads), drop=drop)
|
||||
|
||||
|
||||
def import_osm_views_geotiff():
|
||||
"""Import OSM views GeoTIFF file"""
|
||||
subprocess.run("raster2pgsql -s 4326 -I -C -t 100x100 -e osmviews.tiff public.osmviews | psql nominatim", shell=True, check=True)
|
||||
|
||||
@@ -9,6 +9,7 @@ Functions for bringing auxiliary data in the database up-to-date.
|
||||
"""
|
||||
from typing import MutableSequence, Tuple, Any, Type, Mapping, Sequence, List, cast
|
||||
import logging
|
||||
import subprocess
|
||||
from textwrap import dedent
|
||||
from pathlib import Path
|
||||
|
||||
@@ -146,10 +147,10 @@ def import_wikipedia_articles(dsn: str, data_path: Path, ignore_errors: bool = F
|
||||
|
||||
return 0
|
||||
|
||||
def import_osm_views_geotiff(dsn, data_path, ignore_errors=False):
|
||||
def import_osm_views_geotiff(conn: Connection, data_path: Path) -> int:
|
||||
""" Replaces the OSM views table with new data.
|
||||
|
||||
Returns 0 if all was well and 1 if the GeoTIFF file could not
|
||||
|
||||
Returns 0 if all was well and 1 if the OSM views GeoTIFF file could not
|
||||
be found. Throws an exception if there was an error reading the file.
|
||||
"""
|
||||
datafile = data_path / 'osmviews.tiff'
|
||||
@@ -157,12 +158,17 @@ def import_osm_views_geotiff(dsn, data_path, ignore_errors=False):
|
||||
if not datafile.exists():
|
||||
return 1
|
||||
|
||||
pre_code = """BEGIN;
|
||||
DROP TABLE IF EXISTS "osmviews";
|
||||
"""
|
||||
post_code = "COMMIT"
|
||||
execute_file(dsn, datafile, ignore_errors=ignore_errors,
|
||||
pre_code=pre_code, post_code=post_code)
|
||||
postgis_version = conn.postgis_version_tuple()
|
||||
if postgis_version[0] < 3:
|
||||
return 2
|
||||
|
||||
with conn.cursor() as cur:
|
||||
cur.execute('DROP TABLE IF EXISTS "osm_views"')
|
||||
conn.commit()
|
||||
|
||||
cmd = f"raster2pgsql -s 4326 -I -C -t 100x100 {datafile} \
|
||||
public.osm_views | psql nominatim > /dev/null"
|
||||
subprocess.run(["/bin/bash", "-c" , cmd], check=True)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user