Playing around with data from OvertureMaps.
- Download OvertureMaps and Daylight data
- Extract data from OvertureMaps and Daylight for a country and convert to geoparquet
- Create PMTiles from extracted data
- Notebook with some queries and a map to display some data
Demo viewer for generated PMTiles: https://tebben.github.io/overture-maps/
For the notebook and scripts to create extracts, geoparquet and PMTiles we need all the data locally. Run scripts/download_overture_data.sh
to download all overture parquet files from AWS without needing to login. This will take some time to run since this is around 200GB. This script will install AWS cli if not found on the system.
./scripts/download_overture_data.sh
Notebook to have a closer look at the data and see if we can show something on a map.
Install miniconda if not installed yet.
./scripts/install_miniconda.sh
Create a conda environment and install some dependencies.
conda create -n overture python=3.10
conda activate overture
conda install pip
pip install -r requirements.txt
Open ./notebooks/hello_overture.ipynb and select kernel overture from our conda environment.
Make sure DuckDB, gpq, tippecanoe and pmtiles are installed
sudo ./scripts/install_duckdb.sh
sudo ./scripts/install_gpq.sh
sudo ./scripts/install_pmtiles.sh
sudo ./scripts/install_tippecanoe.sh
In our test we don't want to do the whole world so we create some bounds, in this case country bounds of The Netherlands, supply the country code to the script. In the next example we create bounds for The Netherlands.
./scripts/create_country_bounds.sh NL
The following script will create geoparquet files for all overture-maps themes with only data inside our given bounds, for pmtiles we don't need geoparquet but it's nice to have anyways. This can take some time, no fancy things are done such as spatial partitioning/indexing.
./scripts/convert/overture/to_geoparquet.sh
For the PMTiles creation we need GeoJSON files, the script parquet_to_geojson.sh
creates geojson files for each theme from our geoparquet files which than can feeded into tippecanoe. Not every field is added to the GeoJSON feature properties at the moment.
./scripts/convert/overture/parquet_to_geojson.sh
When we have the GeoJSON files we can create our PMTiles using tippecanoe and pmtiles.
./scripts/convert/overture/geojson_to_pmtiles.sh
This will create mbtiles for each theme, merge them and convert to PMTiles. Directly creating pmtiles with tippecanoe resulted in a PMTiles V2 file which could not be converted to v3, therefore mbtiles are created and later converted into PMTiles using pmtiles convert
In the folder viewer
a maplibre-gl viewer can be found which loads the PMTiles file locally.
cd viewer
npm install
npm run dev