This release is a pre-release and may not be stable for production use.
MapChef
Adds geospatial data to an ArcMap MXD file based on a recipe from a cookbook configuration file and a product name.
Prerequisites
-
Python and ArcPy
C:\Python27\ArcGIS10.6\python.exe -
ArcMap MapAction templates.
-
Complete data scramble using Crash Move Folder Version xx.
Packaging
python setup.py bdist_wheel
Installing
-
Clone
git clone https://github.com/mapaction/mapactionpy_arcmap/ -
Change Directory at the command line
cd mapactionpy_arcmap -
Run package
python setup.py bdist_wheel -
Install
python -m pip install pycountry python -m pip install jsonpickle python -m pip install mapactionpy_controller python -m pip install --user -e .To install for use non-development purposes: Clone the github repo then from the root of your local clone:
python -m pip install . -
If required, uninstall the ArcMap Esri Add-In.
-
Reinstall ArcMap Esri Add-In using file here: https://drive.google.com/open?id=1kV1_6r8RzQ2fzA28AEQv9tpET-qZPIN-
-
Restart ArcMap and ensure the 'Map Generation Tool' is available within the MapAction toolbar.
-
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:
ℹ️ The "Automation" add-in is in development in the automation branch at: https://github.com/mapaction/mapaction-toolbox/tree/automation):
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.
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 | ✔️ | Must always be supplied |
| 2 | ⚡ | 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 | ⚡ | Path to the cookbook mapCookbook.json file. |
| 2 | --layerConfig | ⚡ | Path to the layerProperties.json file. |
| 3 | --cmf | ✔️ | Path to the Crash Move Folder root. |
| 4 | --template | ⚡ | Path to the MXD file. |
| 5 | --product | ✔️ | Name of product (must correlate with a product in the cookbook file). |
| 6 | --country | ⚡ | 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:
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
- Steve Hurst - https://github.com/mapaction/mapactionpy_arcmap
todo: [] enable installation via pypi.
Metadata
Release files for mapactionpy-arcmap 0.3.dev124
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mapactionpy_arcmap-0.3.dev124.tar.gz | 16.0 kB | Without provenance | Details for mapactionpy_arcmap-0.3.dev124.tar.gz |
Release files / mapactionpy_arcmap-0.3.dev124.tar.gz
| Download URL | mapactionpy_arcmap-0.3.dev124.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed5a93a04ba831ac4c90c0c737364b5cecbb57a378d15bdebb27bdf612943589
|
|
BLAKE2b-256 checksum How to use checksums |
f2b437a7b85538060ec0960bad5a24d5b6e829cd858fd6571322ee8e6d52c67a
|
| 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/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/2.7.15
|
Security for mapactionpy-arcmap 0.3.dev124
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.