basemap/workflow.js (493 lines of code) (raw):

/** Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. **/ import config from "./config.js"; export default { "steps": [ { "id": "natural-earth", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": "https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip", "path": "data/natural_earth_vector.gpkg.zip" }, { "type": "UnzipFile", "file": "data/natural_earth_vector.gpkg.zip", "directory": "data/natural_earth_vector" }, { "type": "ImportGeoPackage", "file": "data/natural_earth_vector/packages/natural_earth_vector.gpkg", "database": config.database, "sourceSRID": 4326, "targetSRID": 3857 }, { "type": "ExecuteSql", "file": "queries/ne_index.sql", "database": config.database, "parallel": true, } ] }, { "id": "globaladm0", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": "https://github.com/wmgeolab/geoBoundaries/raw/main/releaseData/CGAZ/geoBoundariesCGAZ_ADM0.gpkg", "path": "data/geoBoundariesCGAZ_ADM0.gpkg" }, { "type": "ImportGeoPackage", "file": "data/geoBoundariesCGAZ_ADM0.gpkg", "database": config.database, "sourceSRID": 4326, "targetSRID": 3857 }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm0_clean.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm0_simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm0_index.sql", "database": config.database, "parallel": true, } ] }, { "id": "globaladm1", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": "https://github.com/wmgeolab/geoBoundaries/raw/main/releaseData/CGAZ/geoBoundariesCGAZ_ADM1.gpkg", "path": "data/geoBoundariesCGAZ_ADM1.gpkg" }, { "type": "ImportGeoPackage", "file": "data/geoBoundariesCGAZ_ADM1.gpkg", "database": config.database, "sourceSRID": 4326, "targetSRID": 3857 }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm1_clean.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm1_simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/boundary/globaladm1_index.sql", "database": config.database, "parallel": true, } ] }, { "id": "water-polygons", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": "https://osmdata.openstreetmap.de/download/water-polygons-split-3857.zip", "path": "data/water-polygons-split-3857.zip" }, { "type": "UnzipFile", "file": "data/water-polygons-split-3857.zip", "directory": "data" }, { "type": "ImportShapefile", "file": "data/water-polygons-split-3857/water_polygons.shp", "database": config.database, "sourceSRID": 3857, "targetSRID": 3857 }, ] }, { "id": "simplified-water-polygons", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": "https://osmdata.openstreetmap.de/download/simplified-water-polygons-split-3857.zip", "path": "data/simplified-water-polygons-split-3857.zip" }, { "type": "UnzipFile", "file": "data/simplified-water-polygons-split-3857.zip", "directory": "data" }, { "type": "ImportShapefile", "file": "data/simplified-water-polygons-split-3857/simplified_water_polygons.shp", "database": config.database, "sourceSRID": 3857, "targetSRID": 3857 }, ] }, { "id": "openstreetmap-ocean", "needs": [ "water-polygons", "simplified-water-polygons", ], "tasks": [ { "type": "ExecuteSql", "file": "layers/ocean/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/ocean/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/ocean/index.sql", "database": config.database, }, ] }, { "id": "openstreetmap-data", "needs": [], "tasks": [ { "type": "DownloadUrl", "url": config.osmPbfUrl, "path": "data/data.osm.pbf" }, { "type": "ImportOpenStreetMap", "file": "data/data.osm.pbf", "database": config.database, "databaseSrid": 3857 }, ] }, { "id": "openstreetmap-nodes", "needs": [ "openstreetmap-data" ], "tasks": [ { "type": "ExecuteSql", "file": "queries/osm_nodes.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-ways", "needs": [ "openstreetmap-data" ], "tasks": [ { "type": "ExecuteSql", "file": "queries/osm_ways.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-relations", "needs": [ "openstreetmap-data" ], "tasks": [ { "type": "ExecuteSql", "file": "queries/osm_relations.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-member", "needs": [ "openstreetmap-data" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/member/prepare.sql", "database": config.database, }, ] }, { "id": "openstreetmap-point", "needs": [ "openstreetmap-nodes" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/point/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/point/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/point/index.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-linestring", "needs": [ "openstreetmap-member" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/linestring/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/linestring/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/linestring/index.sql", "database": config.database, }, ] }, { "id": "openstreetmap-polygon", "needs": [ "openstreetmap-member", ], "tasks": [ { "type": "ExecuteSql", "file": "layers/polygon/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/polygon/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/polygon/index.sql", "database": config.database, }, ] }, { "id": "openstreetmap-highway", "needs": [ "openstreetmap-linestring" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/highway/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/highway/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/highway/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/highway/index.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-railway", "needs": ["openstreetmap-linestring"], "tasks": [ { "type": "ExecuteSql", "file": "layers/railway/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/railway/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/railway/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/railway/index.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-route", "needs": ["openstreetmap-linestring"], "tasks": [ { "type": "ExecuteSql", "file": "layers/route/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/route/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/route/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/route/index.sql", "database": config.database, "parallel": true, }, ] }, { "id": "openstreetmap-natural", "needs": ["openstreetmap-polygon"], "tasks": [ { "type": "ExecuteSql", "file": "layers/natural/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/natural/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/natural/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/natural/index.sql", "database": config.database, "parallel": true }, ] }, { "id": "openstreetmap-landuse", "needs": [ "openstreetmap-polygon" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/landuse/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/landuse/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/landuse/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/landuse/index.sql", "database": config.database, "parallel": true }, ] }, { "id": "openstreetmap-waterway", "needs": [ "openstreetmap-linestring" ], "tasks": [ { "type": "ExecuteSql", "file": "layers/waterway/clean.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/waterway/prepare.sql", "database": config.database, }, { "type": "ExecuteSql", "file": "layers/waterway/simplify.sql", "database": config.database, "parallel": true, }, { "type": "ExecuteSql", "file": "layers/waterway/index.sql", "database": config.database, "parallel": true }, ] }, ] }