Maria Map Maker CLI
From version 4.4
MariaMapMakerCLI (command line interface) is a tool to create and update products and datasets. It offers a subset of the functionality of Maria Map Maker. It can be used in scripts to automate the process of frequently updating datasets. It can also be integrated into other systems to produce Maria GDK compatible products and datasets.
The tool is distributed with the main Maria Map Maker application.
Commands
The tool divides functionality into 4 main commands. Each of these have a set of options, listed below. All commands and options are case insensitive. To see an overview of all commands, run MariaMapMakerCLI.exe without any arguments.
New-Product
Create a new product. This command should write the full path to the new product, as well as its product ID, to StdOut, so it can be piped to a subsequent command.
-n
, --name
The name of the new product.
-p
, --path
Path where the new product will be created.
-pmd
, --productmetadata
Product metadata. Enter a valid product metadata key and value on the form -pmd "key=value"
. Valid keys are:
displayname
displayversion
previewimage
description
virtualpath
Update-Product
Update the metadata of a product, or change its status. The command should write the full path to the updated product, as well as its product ID, to StdOut, so it can be piped to a subsequent command.
-p
, --path
Path to a valid product to update, or the path to a workspace containing products. If the path is a workspace, then option --productid
must also be specified.
-id
, --productid
The product ID to update. Requires that --path
is specified to a workspace containing the specified product ID.
-pmd
, --productmetadata
Product metadata. Enter a valid product metadata key and value on the form -pmd "key=value"
. Valid keys are:
displayname
displayversion
source
previewimage
description
virtualpath
-s
, --setstatus
Set the status of the product to draft
or released
.
-m
, --generatemanifest
Generate a new manifest in the product. This can be done on a released product without changing its status. Valid values are true
or false
. Default true
.
-acl
, --generateacl
Generate a new accompanying letter with a summary of the product content. This can be done on a released product without changing its status. Valid values are true
or false
. Default true
.
New-Dataset
Create a new dataset by importing a georeferenced dataset. The MapPreparation add-in will be used to convert the source data to the selected output format. An overlay referencing the dataset will also be created.
-n
, --name
The name of the new dataset.
-p
, --path
Path to a valid product to create the dataset in, or the path to a workspace containing products. If the path is a workspace, then option --productid
must also be specified.
-id
, --productid
The product ID to create a new dataset in. Requires that --path
is specified to a workspace containing the specified product ID.
-s
, --sourcedata
File or directory containing supported georeferenced data to import.
-dmd
, --datasetmetadata
Dataset metadata. Enter a metadata key and value on the form -dmd "key=value"
.
-ps, --prepscript
The MapPreparation script to use when importing the data. The names are found in the displayname attribute in the MapPreparation script XML's. Default behaviour is to use the first valid script for the chosen source data.
-pp, --prepparam
The value of a parameter for the chosen --prepscript
. Should be on the form --prepparam "key=value"
.
-i, --includesourcedata
Include the source data in a sub-folder "sourcedata" in the dataset folder. This folder will always be cleaned out before updating a dataset. Valid values are true
or false
. Default is false
.
--addto
The type of template to create to reference the dataset. Valid values are overlay
, basemap
and none
. Default is overlay
.
--elevationdatatype
The elevation data type. Valid values are undefined
, terrainmodel
, surfacemodel
and bathymetry
. Default is terrainmodel
.
--tags
Comma separated list of text tags applicable to elevation data only.
--epsg
EPSG code of the source dataset if this information is not embedded.
Update-Dataset
Import source data, overwriting the data file in an existing dataset. This command shares many of the options of the New-Dataset
command.
--signature
The unique map signature of the dataset to update.
-p
, --path
Path to a valid product where the specified dataset can be found. If the path is a workspace, then option --productid
must also be specified.
-id
, --productid
The product ID where the specified dataset can be found. Requires that --path
is specified to a workspace containing the specified product ID.
-s
, --sourcedata
File or directory containing supported georeferenced data to import.
-dmd
, --datasetmetadata
Dataset metadata. Enter a metadata key and value on the form -dmd key=value
.
--prepscript
The MapPreparation script to use when importing the data. The names are found in the displayname attribute in the MapPreparation script XML's. Default behaviour is to use the first valid script for the chosen source data.
--prepparam
The value of a parameter for the chosen --prepscript
. Should be on the form --prepparam "key=value"
. For an overview of the most common parameters, see #Preparation parameters
--includesourcedata
Include the source data in a sub-folder "sourcedata" in the dataset folder. This folder will always be cleaned out before updating a dataset. Valid values are true
or false
. Default is false
.
--elevationdatatype
The elevation data type. Valid values are undefined
, terrainmodel
, surfacemodel
and bathymetry
. Default is terrainmodel
.
--tags
Comma separated list of text tags applicable to elevation data only.
--epsg
EPSG code of the source dataset if this information is not embedded.
Preparation parameters
Preparation parameters (--prepparam
) are key/value pairs which affect the result of the map import with the New-Dataset and Update-Dataset commands. The available parameters depend on the type of source data being imported. They are defined in the various map preparation scripts, which can be found at {MariaMapMakerInstallDirectory}\ServiceHoster\AddInRoot\AddIns\Preparation\scripts
The table below lists some of the most commonly used parameters along with valid values. For a more detailed explanation of these parameters, see Importing data
Import type | Parameter | Valid values |
---|---|---|
vector | minzoom | 0-18
|
vector | maxzoom | 0-18
|
vector | selectedlayerlist | Comma-separated list of layers to include |
raster | srcnodata | "R G B " values to make transparent in imported data
|
raster | tile_format | auto , png , png8
|
raster | quality | 10-100
|
coverage | datatype | 16,32
|
*coverage/elevation/raster | proccount | light , moderate , aggressive , extreme
|
*coverage/elevation/raster | clippingdataset | Path to vector dataset to clip imported data |
*coverage/elevation/raster | resampling | Average ,Nearest , Bilinear , Cubic , Lanczos , Gauss , CubicSpline
|
* Available for coverage/elevation imports from version 4.6
Exit codes
Exit codes are output from MariaMapMakerCLI to indicate the result of the command.
Code | Description |
---|---|
0 | OK |
1 | Command options error |
2 | Unknown product |
3 | Service error |
4 | Service settings error |
5 | Illegal operation on released product |
6 | Missing source data |
7 | Uknown error |
Examples
Create a new product and then import a dataset into it:
MariaMapMakerCLI.exe New-Product --name "AIRAC export" -pmd "displayversion=2023-04" -pmd "virtualpath=Norway\Aeronautical" -pmd "previewimage=c:\work\airac_preview.png" --path "c:\myproduct\"
MariaMapMakerCLI.exe New-Dataset --path "c:\myproduct\AIRAC_export_v1_asf45345" --sourcedata "c:\srcfiles\airac\airac.tif" -dmd "datadate=2023-04-15" -dmd "description=Aearonautical charts covering Norway"
Set a released product to "Draft", update a dataset, and set to "Released":
MariaMapMakerCLI.exe Update-Product --path "c:\products\" --productid "9075c2fb-ef9f-4300-9008-83f4ecef0ec5" --setstatus "draft"
MariaMapMakerCLI.exe Update-Dataset --path "c:\products\" --productid "9075c2fb-ef9f-4300-9008-83f4ecef0ec5" --signature "IskantSat_456afe46346" --sourcedata "c:\iskant-2023-05-20.tif" -dmd "datadate=2023-05-20" --prepscript "Geopackage (Scale to 8bit)" --prepparam "srcnodata=255 255 252" --includesourcedata "true"
MariaMapMakerCLI.exe Update-Product --path "c:\products\" --productid "9075c2fb-ef9f-4300-9008-83f4ecef0ec5" --setstatus "released" -pmd "displayversion=2023-05"
The following example is a Powershell script which sets a specified product to "Draft", updates each dataset with new data, updates metadata, and finally sets the product to "Released".
$m3cli = "MariaMapMakerCLI.exe"
$productpath = "F:\workspace\NorwayTopo-update-test\NorwayTopoRaster_v32_859f2d06"
# Hashtable of map signatures in the product and corresponding source data folder
$updates = @{ N5000 = "F:\Geotiff_hovedkartserien\N5000 Raster TIFF-format";
N2000 = "F:\Geotiff_hovedkartserien\N2000 Raster TIFF-format";
N1000 = "F:\Geotiff_hovedkartserien\N1000 Raster TIFF-format";
N500 = "F:\Geotiff_hovedkartserien\N500 Raster TIFF-format";
N250 = "F:\Geotiff_hovedkartserien\N250 Raster TIFF-format";}
# Set product to draft. This command returns two values:
# the new product path [0] and the product ID [1].
[array]$product = . $m3cli Update-Product --path $productpath --setstatus "draft"
# Update each dataset in turn
foreach($signature in $updates.Keys)
{
Write-host "Updating $signature with data from $($updates[$signature])"
. $m3cli Update-Dataset `
--path $product[0] `
--sourcedata $($updates[$signature]) `
--prepparam "srcnodata=255 255 252" `
--prepparam "tile_format=PNG8" `
--datasetmetadata "datadate=2023-11-01" `
--datasetmetadata "metadatadate=2023-11-15"
}
# Update product metadata and release
. $m3cli Update-Product --path $product[0] --productmetadata "displayversion=2023-11"
. $m3cli Update-Product --path $product[0] --setstatus "released"