Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MapChef

Master branch Build Status Coverage Status

Adds geospatial data to an ArcMap MXD file based on a recipe from a cookbook configuration file and a product name.

Prerequisites

Installing

To install the lastest stable release via PyPi:

pip install mapactionpy-controller
pip install mapactionpy-arcmap

To install a specific version for testing see the relevant commandline from here: https://pypi.org/project/mapactionpy-arcmap/#history

Optional Installation of ArcMap ESRI Addin

In additiona to the commandline the MapChef tool can also optionally be driven from an ArcMap Addin. To install this:

  1. If required, uninstall any previous version of the ArcMap Esri Add-In.
  2. Reinstall ArcMap Esri Add-In using file here: https://drive.google.com/drive/u/0/folders/1qzR6UvqA_RjxK9D2U9_AXi3EW4cXnuP7
  3. Restart ArcMap and ensure the 'Map Generation Tool' is available within the MapAction toolbar.
  4. To run the 'Map Generation Tool' the standardised Crash Move Folder must be in place, see:

https://github.com/mapaction/default-crash-move-folder/blob/master/20YYiso3nn

Integration with MapAction Toolbar

In order to integrate this MapActionPy_ArcMap module with the MapAction Toolbar, the following steps need to be carried out:

Configuration Files

Cookbook File

The mapCookbook.json file is a static configuration file which contains "recipes" for each map product, e.g.:

{ 
   "recipes":[ 
      { 
         "mapnumber":"MA001",
         "category":"Reference",
         "product":"Country Overview with Admin 1 Boundaries & P-Codes",
         "export": true,
         "layers":[ 
            "mainmap-s0-pt-settlements",
            "mainmap-s0-py-surroundingcountries",
            "mainmap-s0-ln-admin1",
            "mainmap-s0-ln-coastline",
            "mainmap-s0-py-feather",
            "mainmap-s0-py-surroundingcountries",
            "mainmap-s0-py-admin1",
            "mainmap-s0-py-sea",
            "locationmap-s0-ln-admin1",
            "locationmap-s0-ln-affectedcountry",
            "locationmap-s0-ln-coastline",
            "locationmap-s0-py-surroundingcountries"
         ]
      },
...
    }
  ]
}

The layer names in the "layers" array MUST correlate to layer files (.lyr) in the specified layer directory:

[GIS/3_Mapping/31_Resources/312_Layer_files] (https://github.com/mapaction/default-crash-move-folder/tree/master/20YYiso3nn/GIS/3_Mapping/31_Resources/312_Layer_files)

layerConfig File

The Layer Config file (layerProperties.json) is a static file which defines how to add a particular layer.

      "MapFrame": "Main Map",
      "LayerName": "mainmap-s0-pt-settlements",
      "RegExp": "^[a-z]{3}_stle_stl_pt_(.*?)_(.*?)_([phm][phm])(.*?).shp$",
      "DefinitionQuery": "place IN ('national_capital', 'city', 'capital')",
      "Display": true,
      "AddToLegend": true,
      "LabelClasses": [
        {
          "className": "National Capital",
          "expression": "[name]",
          "SQLQuery": "(\"place\" = 'national_capital')"
        },
        {
          "className": "Admin 1 Capital",
          "expression": "[name]",
          "SQLQuery": "(\"place\" = 'city')"
        }
      ]
    },

Fields

# Field Description
1 MapFrame Name of the Map Frame that the layer is to be added to
2 LayerName Name of the Layer. This must correlate with the names of the layers in the layers field in the mapCookbook.json file.
3 RegExp Regular Expression. Used when selecting files to display
4 DefinitionQuery Definition Query
5 AddToLegend Includes this layer in the legend if set to true
6 Display Shows if set to true
7 LabelClasses Details for displaying labels

Execution

Key

# Icon Meaning
1 :heavy_check_mark: Must always be supplied
2 :zap: If not supplied, this parameter can be inferred if the cmf_description.json and the event_description.json files are in he root of the Crash Move Folder.

Parameters

# Field Mandatory Description
1 --cookbook :zap: Path to the cookbook mapCookbook.json file.
2 --layerConfig :zap: Path to the layerProperties.json file.
3 --cmf :heavy_check_mark: Path to the Crash Move Folder root.
4 --template :zap: Path to the MXD file.
5 --product :heavy_check_mark: Name of product (must correlate with a product in the cookbook file).
6 --country :zap: Name of country.

Example 1

For a specified MXD using the --template parameter:

   --cookbook "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\316_Automation\mapCookbook.json" \
   --layerConfig "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\316_Automation\layerProperties.json" \
   --cmf "D:\MapAction\2019-06-25 - Automation - El Salvador" \
   --template "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\32_MXD_Templates\arcgis_10_2\MapAction\01 Reference mapping\arcgis_10_2_ma000_reference_landscape_bottom_DEV.mxd" \
   --layerDirectory "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\312_Layer_files" \
   --product "Country Overview with Admin 1 Boundaries & P-Codes" \
   --country "El Salvador"

Result

This Country Overview map was generated:

alt text

Example 2

   --cookbook "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\316_Automation\mapCookbook.json" \
   --layerConfig "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\316_Automation\layerProperties.json" \
   --cmf "D:\MapAction\2019-06-25 - Automation - El Salvador" \
   --layerDirectory "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\312_Layer_files" \
   --product "Country Overview with Admin 1 Boundaries & P-Codes" \
   --country "El Salvador"

If an MXD is not supplied with the --template parameter as above, then the tool will decide the orientation of the map (landscape or portrait) and it will take a copy of the appropriate MXD from:

<crash move folder>\GIS\3_Mapping\32_MXD_Templates\arcgis_10_6\

Using the mapnumber from the mapCookbook.json file, the Automation Tool will create a copy of the MXD under the following directory:

<crash move folder>\GIS\3_Mapping\33_MXD_Maps\<map number>

For example:

D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\33_MXD_Maps\MA001

The MXD name will be <map number>_<product name>.mxd

... (but with any characters removed that upset Windows Explorer)

For example:

MA001_country-overview-with-admin-1-boundaries-p-codes.mxd

Example 3

C:\Python27\ArcGIS10.6\python.exe -m mapactionpy_arcmap.arcmap_runner \
   --cmf "D:\MapAction\2019-06-25 - Automation - El Salvador" \
   --product "Country Overview with Admin 1 Boundaries & P-Codes"

In this example, the following parameters were not provided:

--cookbook
--layerConfig
--layerDirectory
--country

The values for these parameters were inferred from the event_description.json and the cmf_description.json files.
These files were provided at the root of the Crash Move Folder, i.e. the directory supplied by the --cmf parameter.

Author

Metadata

Release files for mapactionpy-arcmap 0.9.dev212

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mapactionpy-arcmap 0.9.dev212
File Size Uploaded Provenance Actions
mapactionpy_arcmap-0.9.dev212.tar.gz 22.6 kB Without provenance Details for mapactionpy_arcmap-0.9.dev212.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mapactionpy-arcmap 0.9.dev212
File Interpreter ABI Platform Actions
mapactionpy_arcmap-0.9.dev212-py2-none-any.whl Python 2 none any Details for mapactionpy_arcmap-0.9.dev212-py2-none-any.whl

Total release size: 50.0 kB

Release files / mapactionpy_arcmap-0.9.dev212.tar.gz

Download URL mapactionpy_arcmap-0.9.dev212.tar.gz
Size 22.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4bdef191a1b58cd2dd83739d01e862ed003871a1bded77bdfa68d3e532b64c53
BLAKE2b-256 checksum
How to use checksums
c33ad6b64713247c0d60eae2d5fce4440956e330df1db27acef64d7b85100a65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/2.7.15

Release files / mapactionpy_arcmap-0.9.dev212-py2-none-any.whl

Download URL mapactionpy_arcmap-0.9.dev212-py2-none-any.whl
Size 27.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
c982583a43c250a0c87b27b4a19997053489f00775109413c3f0a76e07692582
BLAKE2b-256 checksum
How to use checksums
954775373919aefa8d599f438144ee80d4911f2a29813f44971c5bd376b8f524
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/2.7.15

Security for mapactionpy-arcmap 0.9.dev212

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page