Initial implementation of GeoTIFF import functionality

This commit is contained in:
Tareq Al-Ahdal
2022-07-06 08:16:41 +02:00
committed by Sarah Hoffmann
parent 3381a92d92
commit c85b74497b
9 changed files with 78 additions and 4 deletions

View File

@@ -75,6 +75,7 @@ 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')
conn.commit()
_require_version('PostGIS',
@@ -246,3 +247,8 @@ 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)

View File

@@ -146,6 +146,25 @@ 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):
""" Replaces the OSM views table with new data.
Returns 0 if all was well and 1 if the GeoTIFF file could not
be found. Throws an exception if there was an error reading the file.
"""
datafile = data_path / 'osmviews.tiff'
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)
return 0
def recompute_importance(conn: Connection) -> None:
""" Recompute wikipedia links and importance for all entries in placex.